@pisell/pisellos 2.3.94 → 2.3.96

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 (88) hide show
  1. package/dist/model/strategy/adapter/dataVariant/evaluator.js +13 -2
  2. package/dist/model/strategy/adapter/itemRule/adapter.d.ts +4 -1
  3. package/dist/model/strategy/adapter/itemRule/adapter.js +135 -35
  4. package/dist/model/strategy/adapter/itemRule/evaluator.d.ts +8 -1
  5. package/dist/model/strategy/adapter/itemRule/evaluator.js +25 -1
  6. package/dist/model/strategy/adapter/itemRule/type.d.ts +44 -0
  7. package/dist/model/strategy/adapter/itemRule/type.js +19 -1
  8. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  9. package/dist/modules/Order/index.d.ts +20 -3
  10. package/dist/modules/Order/index.js +931 -508
  11. package/dist/modules/Order/salesNotes.d.ts +31 -0
  12. package/dist/modules/Order/salesNotes.js +492 -0
  13. package/dist/modules/Order/types.d.ts +91 -5
  14. package/dist/modules/Order/types.js +5 -0
  15. package/dist/modules/Order/utils.d.ts +12 -0
  16. package/dist/modules/Order/utils.js +75 -26
  17. package/dist/modules/ProductList/index.d.ts +2 -1
  18. package/dist/modules/ProductList/index.js +100 -20
  19. package/dist/modules/ProductList/types.d.ts +10 -0
  20. package/dist/modules/SalesSummary/index.js +6 -4
  21. package/dist/server/index.d.ts +6 -0
  22. package/dist/server/index.js +57 -11
  23. package/dist/server/modules/products/index.d.ts +2 -2
  24. package/dist/server/modules/products/index.js +10 -9
  25. package/dist/server/utils/product.d.ts +1 -1
  26. package/dist/server/utils/product.js +186 -22
  27. package/dist/server/utils/small-ticket.js +23 -2
  28. package/dist/solution/BaseSales/index.d.ts +9 -1
  29. package/dist/solution/BaseSales/index.js +894 -706
  30. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +3 -2
  31. package/dist/solution/BookingByStep/index.d.ts +2 -2
  32. package/dist/solution/BookingTicket/utils/orderCustomer.js +3 -2
  33. package/dist/solution/RegisterAndLogin/config.d.ts +9 -3
  34. package/dist/solution/RegisterAndLogin/config.js +95 -40
  35. package/dist/solution/RegisterAndLogin/index.js +4 -1
  36. package/dist/solution/ScanOrder/index.d.ts +1 -0
  37. package/dist/solution/ScanOrder/index.js +31 -27
  38. package/dist/solution/ScanOrder/utils.d.ts +1 -0
  39. package/dist/solution/ScanOrder/utils.js +2 -0
  40. package/dist/solution/UnifiedBookingSales/index.d.ts +15 -2
  41. package/dist/solution/UnifiedBookingSales/index.js +751 -483
  42. package/dist/solution/UnifiedBookingSales/types.d.ts +14 -1
  43. package/dist/solution/VenueBooking/index.d.ts +1 -0
  44. package/dist/solution/VenueBooking/index.js +8 -4
  45. package/lib/model/strategy/adapter/dataVariant/evaluator.js +12 -2
  46. package/lib/model/strategy/adapter/itemRule/adapter.d.ts +4 -1
  47. package/lib/model/strategy/adapter/itemRule/adapter.js +73 -4
  48. package/lib/model/strategy/adapter/itemRule/evaluator.d.ts +8 -1
  49. package/lib/model/strategy/adapter/itemRule/evaluator.js +23 -1
  50. package/lib/model/strategy/adapter/itemRule/type.d.ts +44 -0
  51. package/lib/model/strategy/adapter/itemRule/type.js +19 -1
  52. package/lib/modules/Order/index.d.ts +20 -3
  53. package/lib/modules/Order/index.js +358 -42
  54. package/lib/modules/Order/salesNotes.d.ts +31 -0
  55. package/lib/modules/Order/salesNotes.js +382 -0
  56. package/lib/modules/Order/types.d.ts +91 -5
  57. package/lib/modules/Order/types.js +4 -0
  58. package/lib/modules/Order/utils.d.ts +12 -0
  59. package/lib/modules/Order/utils.js +68 -16
  60. package/lib/modules/ProductList/index.d.ts +2 -1
  61. package/lib/modules/ProductList/index.js +47 -2
  62. package/lib/modules/ProductList/types.d.ts +10 -0
  63. package/lib/modules/SalesSummary/index.js +3 -1
  64. package/lib/server/index.d.ts +6 -0
  65. package/lib/server/index.js +47 -9
  66. package/lib/server/modules/products/index.d.ts +2 -2
  67. package/lib/server/modules/products/index.js +5 -4
  68. package/lib/server/utils/product.d.ts +1 -1
  69. package/lib/server/utils/product.js +163 -3
  70. package/lib/server/utils/small-ticket.js +22 -1
  71. package/lib/solution/BaseSales/index.d.ts +9 -1
  72. package/lib/solution/BaseSales/index.js +105 -1
  73. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +3 -2
  74. package/lib/solution/BookingByStep/index.d.ts +2 -2
  75. package/lib/solution/BookingTicket/utils/orderCustomer.js +2 -1
  76. package/lib/solution/RegisterAndLogin/config.d.ts +9 -3
  77. package/lib/solution/RegisterAndLogin/config.js +49 -8
  78. package/lib/solution/RegisterAndLogin/index.js +4 -1
  79. package/lib/solution/ScanOrder/index.d.ts +1 -0
  80. package/lib/solution/ScanOrder/index.js +5 -1
  81. package/lib/solution/ScanOrder/utils.d.ts +1 -0
  82. package/lib/solution/ScanOrder/utils.js +1 -0
  83. package/lib/solution/UnifiedBookingSales/index.d.ts +15 -2
  84. package/lib/solution/UnifiedBookingSales/index.js +125 -1
  85. package/lib/solution/UnifiedBookingSales/types.d.ts +14 -1
  86. package/lib/solution/VenueBooking/index.d.ts +1 -0
  87. package/lib/solution/VenueBooking/index.js +5 -1
  88. package/package.json +1 -1
@@ -197,8 +197,9 @@ export function transformBaseProductToOrderProduct(params) {
197
197
  metadata.unique_identification_number = String(uniqueIdentificationNumber);
198
198
  }
199
199
  // 从源头补充商品多语言标题
200
- var productTitle = _objectSpread(_objectSpread({}, (sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title_i18n) || {}), {}, {
201
- original: (sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.original_title) || (sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title) || ''
200
+ var productTitleI18n = (sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title_i18n) || {};
201
+ var productTitle = _objectSpread(_objectSpread({}, productTitleI18n), {}, {
202
+ original: productTitleI18n.original || (sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.original_title) || (sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title) || ''
202
203
  });
203
204
  return _objectSpread(_objectSpread({
204
205
  product_id: productId,
@@ -326,7 +326,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
326
326
  date: string;
327
327
  status: string;
328
328
  week: string;
329
- weekNum: 0 | 1 | 2 | 5 | 4 | 3 | 6;
329
+ weekNum: 0 | 2 | 1 | 3 | 4 | 5 | 6;
330
330
  }[]>;
331
331
  submitTimeSlot(timeSlots: TimeSliceItem): void;
332
332
  private getScheduleDataByIds;
@@ -345,7 +345,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
345
345
  count: number;
346
346
  left: number;
347
347
  summaryCount: number;
348
- status: "sold_out" | "lots_of_space" | "filling_up_fast";
348
+ status: "lots_of_space" | "filling_up_fast" | "sold_out";
349
349
  }[];
350
350
  /**
351
351
  * 找到多个资源的公共可用时间段
@@ -18,8 +18,9 @@ function resolveCustomerDisplayName(customer) {
18
18
 
19
19
  /** 将 ICustomer 格式化为写入 tempOrder 的协议字段。 */
20
20
  export function formatOrderCustomerPatch(customer) {
21
- var _customer$phone, _customer$email, _country_calling_code, _country_calling_code2;
22
- var rawId = customer.id;
21
+ var _ref, _c$customer_id, _customer$phone, _customer$email, _country_calling_code, _country_calling_code2;
22
+ var c = customer;
23
+ var rawId = (_ref = (_c$customer_id = c.customer_id) !== null && _c$customer_id !== void 0 ? _c$customer_id : c.customerId) !== null && _ref !== void 0 ? _ref : customer.id;
23
24
  var numericId = typeof rawId === 'number' ? rawId : rawId !== undefined && rawId !== null && rawId !== '' ? Number(rawId) : null;
24
25
  return {
25
26
  customer_id: Number.isFinite(numericId) ? numericId : null,
@@ -10,7 +10,11 @@ export interface ApiConfig {
10
10
  method: 'GET' | 'POST' | 'PUT' | 'DELETE';
11
11
  transformParams?: (params: any) => any;
12
12
  transformResponse?: (response: any) => any;
13
- options?: Record<string, any>;
13
+ options?: Record<string, any> | ((params: any) => Record<string, any>);
14
+ }
15
+ export interface ApiCallerOptions {
16
+ baseUrl?: string;
17
+ shopDomain?: string;
14
18
  }
15
19
  /**
16
20
  * 渠道配置接口
@@ -65,12 +69,14 @@ export declare function getChannelConfig(channel: string): ChannelConfig;
65
69
  export declare class ApiCaller {
66
70
  private request;
67
71
  private config;
72
+ private options;
68
73
  constructor(request: {
69
74
  get: <T = any>(url: string, data?: any, options?: any) => Promise<T>;
70
75
  post: <T = any>(url: string, data?: any, options?: any) => Promise<T>;
71
76
  put: <T = any>(url: string, data?: any, options?: any) => Promise<T>;
72
77
  delete: <T = any>(url: string, options?: any) => Promise<T>;
73
- }, config: ChannelConfig);
78
+ }, config: ChannelConfig, options?: ApiCallerOptions);
79
+ private resolveUrl;
74
80
  /**
75
81
  * 执行 API 调用
76
82
  */
@@ -84,4 +90,4 @@ export declare function createApiCaller(request: {
84
90
  post: <T = any>(url: string, data?: any, options?: any) => Promise<T>;
85
91
  put: <T = any>(url: string, data?: any, options?: any) => Promise<T>;
86
92
  delete: <T = any>(url: string, options?: any) => Promise<T>;
87
- }, channel: string): ApiCaller;
93
+ }, channel: string, options?: ApiCallerOptions): ApiCaller;
@@ -1,15 +1,24 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["withCredentials"];
2
3
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
4
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
7
5
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
8
6
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
7
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
10
8
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
9
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
14
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
12
15
  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); }
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
21
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
22
  /**
14
23
  * 注册登录解决方案配置
15
24
  * 根据不同渠道配置不同的接口地址和参数
@@ -19,6 +28,8 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
19
28
  * API 配置接口
20
29
  */
21
30
 
31
+ var h5CustomerAuthApiNames = new Set(['sendEmailVerificationCode', 'sendEmailLoginCode', 'sendSmsRegisterCode', 'sendEmailRegisterLink', 'verifyEmailRegistrationLink', 'emailPasswordLogin', 'emailCodeRegister', 'phoneCodeRegister', 'resendEmailRegisterLink', 'checkEmailLinkCode', 'sendSmsLoginCode', 'phoneCodeLogin', 'guestLogin', 'checkEmailExists', 'checkEmailCode', 'checkMobileCode', 'phonePasswordLogin', 'sendPasswordResetEmail', 'sendPasswordResetSms', 'sendResetPasswordLink', 'checkResetPasswordCode', 'resetPasswordByCode', 'resetPasswordByEmail', 'resetPasswordByPhone', 'verifyCode', 'register', 'login', 'oauthLogin', 'facebookLogin', 'appleLogin']);
32
+
22
33
  /**
23
34
  * 渠道配置接口
24
35
  */
@@ -350,6 +361,31 @@ var onlineStoreConfig = {
350
361
  }
351
362
  }
352
363
  };
364
+ function withH5AuthPrefix(config) {
365
+ var nextConfig = {};
366
+ Object.entries(config).forEach(function (_ref) {
367
+ var _ref2 = _slicedToArray(_ref, 2),
368
+ key = _ref2[0],
369
+ apiConfig = _ref2[1];
370
+ if (!apiConfig.url.startsWith('/auth/')) {
371
+ nextConfig[key] = apiConfig;
372
+ return;
373
+ }
374
+ nextConfig[key] = _objectSpread(_objectSpread({}, apiConfig), {}, {
375
+ url: apiConfig.url.startsWith('/h5/') ? apiConfig.url : "/h5".concat(apiConfig.url),
376
+ options: function options(params) {
377
+ var _ref3 = (typeof apiConfig.options === 'function' ? apiConfig.options(params) : apiConfig.options) || {},
378
+ withCredentials = _ref3.withCredentials,
379
+ baseOptions = _objectWithoutProperties(_ref3, _excluded);
380
+ return _objectSpread(_objectSpread({}, baseOptions), {}, {
381
+ prefix: false
382
+ });
383
+ }
384
+ });
385
+ });
386
+ return nextConfig;
387
+ }
388
+ var h5OnlineStoreConfig = withH5AuthPrefix(onlineStoreConfig);
353
389
 
354
390
  /**
355
391
  * 默认配置(通用配置)
@@ -1346,6 +1382,7 @@ var shopWebposConfig = {
1346
1382
  */
1347
1383
  export var channelConfigMap = {
1348
1384
  'online-store': onlineStoreConfig,
1385
+ 'online-store-h5': h5OnlineStoreConfig,
1349
1386
  'default': defaultConfig,
1350
1387
  'webpos': webposConfig,
1351
1388
  'shop.webpos': shopWebposConfig
@@ -1364,15 +1401,25 @@ export function getChannelConfig(channel) {
1364
1401
  */
1365
1402
  export var ApiCaller = /*#__PURE__*/function () {
1366
1403
  function ApiCaller(request, config) {
1404
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1367
1405
  _classCallCheck(this, ApiCaller);
1368
1406
  this.request = request;
1369
1407
  this.config = config;
1408
+ this.options = options;
1370
1409
  }
1371
-
1372
- /**
1373
- * 执行 API 调用
1374
- */
1375
1410
  _createClass(ApiCaller, [{
1411
+ key: "resolveUrl",
1412
+ value: function resolveUrl(url) {
1413
+ if (!this.options.baseUrl || !url.startsWith('/h5/auth/')) {
1414
+ return url;
1415
+ }
1416
+ return "".concat(this.options.baseUrl.replace(/\/$/, '')).concat(url);
1417
+ }
1418
+
1419
+ /**
1420
+ * 执行 API 调用
1421
+ */
1422
+ }, {
1376
1423
  key: "call",
1377
1424
  value: (function () {
1378
1425
  var _call = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(apiName, params, additionalOptions) {
@@ -1397,7 +1444,15 @@ export var ApiCaller = /*#__PURE__*/function () {
1397
1444
  }
1398
1445
 
1399
1446
  // 构建请求选项
1400
- requestOptions = _objectSpread(_objectSpread({}, options), additionalOptions); // 处理动态 headers
1447
+ requestOptions = _objectSpread(_objectSpread({}, options), additionalOptions);
1448
+ if (apiConfig.url.startsWith('/h5/auth/') && h5CustomerAuthApiNames.has(apiName)) {
1449
+ requestOptions.h5CustomerAuth = true;
1450
+ if (this.options.shopDomain) {
1451
+ requestOptions.h5AuthShopDomain = this.options.shopDomain;
1452
+ }
1453
+ }
1454
+
1455
+ // 处理动态 headers
1401
1456
  if (requestOptions.headers && typeof requestOptions.headers === 'function') {
1402
1457
  requestOptions.headers = requestOptions.headers(params);
1403
1458
  }
@@ -1405,49 +1460,49 @@ export var ApiCaller = /*#__PURE__*/function () {
1405
1460
 
1406
1461
  // 根据 HTTP 方法调用对应的请求方法
1407
1462
  _context.t0 = apiConfig.method;
1408
- _context.next = _context.t0 === 'GET' ? 12 : _context.t0 === 'POST' ? 22 : _context.t0 === 'PUT' ? 26 : _context.t0 === 'DELETE' ? 30 : 34;
1463
+ _context.next = _context.t0 === 'GET' ? 13 : _context.t0 === 'POST' ? 23 : _context.t0 === 'PUT' ? 27 : _context.t0 === 'DELETE' ? 31 : 35;
1409
1464
  break;
1410
- case 12:
1465
+ case 13:
1411
1466
  if (!(transformedParams && Object.keys(transformedParams).length > 0)) {
1412
- _context.next = 18;
1467
+ _context.next = 19;
1413
1468
  break;
1414
1469
  }
1415
- _context.next = 15;
1416
- return this.request.get(apiConfig.url, transformedParams, requestOptions);
1417
- case 15:
1470
+ _context.next = 16;
1471
+ return this.request.get(this.resolveUrl(apiConfig.url), transformedParams, requestOptions);
1472
+ case 16:
1418
1473
  response = _context.sent;
1419
- _context.next = 21;
1474
+ _context.next = 22;
1420
1475
  break;
1421
- case 18:
1422
- _context.next = 20;
1423
- return this.request.get(apiConfig.url, undefined, requestOptions);
1424
- case 20:
1425
- response = _context.sent;
1476
+ case 19:
1477
+ _context.next = 21;
1478
+ return this.request.get(this.resolveUrl(apiConfig.url), undefined, requestOptions);
1426
1479
  case 21:
1427
- return _context.abrupt("break", 35);
1480
+ response = _context.sent;
1428
1481
  case 22:
1429
- _context.next = 24;
1430
- return this.request.post(apiConfig.url, transformedParams, requestOptions);
1431
- case 24:
1482
+ return _context.abrupt("break", 36);
1483
+ case 23:
1484
+ _context.next = 25;
1485
+ return this.request.post(this.resolveUrl(apiConfig.url), transformedParams, requestOptions);
1486
+ case 25:
1432
1487
  response = _context.sent;
1433
- return _context.abrupt("break", 35);
1434
- case 26:
1435
- _context.next = 28;
1436
- return this.request.put(apiConfig.url, transformedParams, requestOptions);
1437
- case 28:
1488
+ return _context.abrupt("break", 36);
1489
+ case 27:
1490
+ _context.next = 29;
1491
+ return this.request.put(this.resolveUrl(apiConfig.url), transformedParams, requestOptions);
1492
+ case 29:
1438
1493
  response = _context.sent;
1439
- return _context.abrupt("break", 35);
1440
- case 30:
1441
- _context.next = 32;
1442
- return this.request.delete(apiConfig.url, requestOptions);
1443
- case 32:
1494
+ return _context.abrupt("break", 36);
1495
+ case 31:
1496
+ _context.next = 33;
1497
+ return this.request.delete(this.resolveUrl(apiConfig.url), requestOptions);
1498
+ case 33:
1444
1499
  response = _context.sent;
1445
- return _context.abrupt("break", 35);
1446
- case 34:
1447
- throw new Error("\u4E0D\u652F\u6301\u7684 HTTP \u65B9\u6CD5: ".concat(apiConfig.method));
1500
+ return _context.abrupt("break", 36);
1448
1501
  case 35:
1449
- return _context.abrupt("return", apiConfig.transformResponse ? apiConfig.transformResponse(response) : response);
1502
+ throw new Error("\u4E0D\u652F\u6301\u7684 HTTP \u65B9\u6CD5: ".concat(apiConfig.method));
1450
1503
  case 36:
1504
+ return _context.abrupt("return", apiConfig.transformResponse ? apiConfig.transformResponse(response) : response);
1505
+ case 37:
1451
1506
  case "end":
1452
1507
  return _context.stop();
1453
1508
  }
@@ -1465,7 +1520,7 @@ export var ApiCaller = /*#__PURE__*/function () {
1465
1520
  /**
1466
1521
  * 创建 API 调用器
1467
1522
  */
1468
- export function createApiCaller(request, channel) {
1523
+ export function createApiCaller(request, channel, options) {
1469
1524
  var config = getChannelConfig(channel);
1470
- return new ApiCaller(request, config);
1525
+ return new ApiCaller(request, config, options);
1471
1526
  }
@@ -323,7 +323,10 @@ export var RegisterAndLoginImpl = /*#__PURE__*/function (_BaseModule) {
323
323
  throw new Error('RegisterAndLogin 模块需要 window 插件支持');
324
324
  case 10:
325
325
  // 创建 API 调用器
326
- this.apiCaller = createApiCaller(this.request, this.channel);
326
+ this.apiCaller = createApiCaller(this.request, this.channel, {
327
+ baseUrl: this.otherParams.h5AuthBaseUrl,
328
+ shopDomain: this.otherParams.h5AuthShopDomain
329
+ });
327
330
 
328
331
  // 尝试从本地存储恢复登录状态
329
332
  _context4.next = 13;
@@ -13,6 +13,7 @@ interface ScanOrderItemRuleRuntimeConfig {
13
13
  pax?: Partial<PaxInfo>;
14
14
  historicalItems?: CartItemSummary[];
15
15
  serviceType?: string;
16
+ channel?: string;
16
17
  submissionIndex?: number;
17
18
  custom?: Record<string, any>;
18
19
  }
@@ -2023,7 +2023,11 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
2023
2023
  }, {
2024
2024
  key: "getItemRuleRuntimeConfig",
2025
2025
  value: function getItemRuleRuntimeConfig() {
2026
- return this.itemRuleRuntimeConfig || {};
2026
+ var _ref7, _runtimeConfig$channe, _runtimeConfig$custom, _this$otherParams13;
2027
+ var runtimeConfig = this.itemRuleRuntimeConfig || {};
2028
+ return _objectSpread(_objectSpread({}, runtimeConfig), {}, {
2029
+ channel: (_ref7 = (_runtimeConfig$channe = runtimeConfig.channel) !== null && _runtimeConfig$channe !== void 0 ? _runtimeConfig$channe : (_runtimeConfig$custom = runtimeConfig.custom) === null || _runtimeConfig$custom === void 0 ? void 0 : _runtimeConfig$custom.channel) !== null && _ref7 !== void 0 ? _ref7 : (_this$otherParams13 = this.otherParams) === null || _this$otherParams13 === void 0 ? void 0 : _this$otherParams13.channel
2030
+ });
2027
2031
  }
2028
2032
  }, {
2029
2033
  key: "ensureItemRuleConfigsLoaded",
@@ -2510,14 +2514,14 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
2510
2514
  }, {
2511
2515
  key: "normalizeResourceState",
2512
2516
  value: function normalizeResourceState(detail, resourceSelectType, hasOrderId) {
2513
- var _detail$form_record, _this$otherParams13, _detail$resource_capa, _detail$resource_capa2;
2517
+ var _detail$form_record, _this$otherParams14, _detail$resource_capa, _detail$resource_capa2;
2514
2518
  var currentOrderId = toPositiveString(detail === null || detail === void 0 ? void 0 : detail.order_id);
2515
2519
  var lastOrderId = toPositiveString(detail === null || detail === void 0 ? void 0 : detail.last_order_id);
2516
2520
  var relationId = toPositiveString(detail === null || detail === void 0 ? void 0 : detail.form_record_id);
2517
2521
  var tableFormId = toPositiveString(detail === null || detail === void 0 ? void 0 : detail.form_id);
2518
2522
  var formRecord = (_detail$form_record = detail === null || detail === void 0 ? void 0 : detail.form_record) !== null && _detail$form_record !== void 0 ? _detail$form_record : null;
2519
2523
  // 是否允许加餐
2520
- var allowSnack = ((_this$otherParams13 = this.otherParams) === null || _this$otherParams13 === void 0 || (_this$otherParams13 = _this$otherParams13.dineInConfig) === null || _this$otherParams13 === void 0 ? void 0 : _this$otherParams13['sale.allow_add_items']) || false;
2524
+ var allowSnack = ((_this$otherParams14 = this.otherParams) === null || _this$otherParams14 === void 0 || (_this$otherParams14 = _this$otherParams14.dineInConfig) === null || _this$otherParams14 === void 0 ? void 0 : _this$otherParams14['sale.allow_add_items']) || false;
2521
2525
  // 开启同桌验证 - 本期没有这个配置,默认关掉
2522
2526
  var deskmateValid = false;
2523
2527
  var isExclusive = resourceSelectType === 'single';
@@ -2600,7 +2604,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
2600
2604
  key: "fetchResourceOccupyDetailsByResourceId",
2601
2605
  value: function () {
2602
2606
  var _fetchResourceOccupyDetailsByResourceId = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee36(resourceId) {
2603
- var _this$otherParams14, _this$otherParams14$g, _response$data$occupy, _response$data;
2607
+ var _this$otherParams15, _this$otherParams15$g, _response$data$occupy, _response$data;
2604
2608
  var formRecordId, shopId, response;
2605
2609
  return _regeneratorRuntime().wrap(function _callee36$(_context36) {
2606
2610
  while (1) switch (_context36.prev = _context36.next) {
@@ -2612,7 +2616,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
2612
2616
  }
2613
2617
  throw new Error("[ScanOrder] \u975E\u6CD5\u684C\u53F0 resourceId: ".concat(resourceId));
2614
2618
  case 3:
2615
- shopId = (_this$otherParams14 = this.otherParams) === null || _this$otherParams14 === void 0 || (_this$otherParams14$g = _this$otherParams14.getStateData) === null || _this$otherParams14$g === void 0 ? void 0 : _this$otherParams14$g.call(_this$otherParams14, 'shop_id');
2619
+ shopId = (_this$otherParams15 = this.otherParams) === null || _this$otherParams15 === void 0 || (_this$otherParams15$g = _this$otherParams15.getStateData) === null || _this$otherParams15$g === void 0 ? void 0 : _this$otherParams15$g.call(_this$otherParams15, 'shop_id');
2616
2620
  if (shopId) {
2617
2621
  _context36.next = 6;
2618
2622
  break;
@@ -2706,18 +2710,18 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
2706
2710
  var hasOrderId,
2707
2711
  normalizedResourceId,
2708
2712
  _this$otherParams$bus,
2709
- _this$otherParams15,
2710
- _this$otherParams$cha,
2711
2713
  _this$otherParams16,
2714
+ _this$otherParams$cha,
2712
2715
  _this$otherParams17,
2713
- _this$otherParams17$g,
2716
+ _this$otherParams18,
2717
+ _this$otherParams18$g,
2714
2718
  _occupyDetails$,
2715
2719
  _occupyDetail$form_re,
2716
2720
  _occupyDetail$form_re2,
2717
2721
  _this$store$order6,
2718
2722
  _this$store$order7,
2719
2723
  _this$store$order7$ge,
2720
- _this$otherParams18,
2724
+ _this$otherParams19,
2721
2725
  _this$store$resource3,
2722
2726
  _this$store$resource4,
2723
2727
  businessCode,
@@ -2775,11 +2779,11 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
2775
2779
  resourceId: normalizedResourceId
2776
2780
  });
2777
2781
  _context37.prev = 3;
2778
- businessCode = String((_this$otherParams$bus = (_this$otherParams15 = this.otherParams) === null || _this$otherParams15 === void 0 ? void 0 : _this$otherParams15.businessCode) !== null && _this$otherParams$bus !== void 0 ? _this$otherParams$bus : '').trim();
2779
- channel = String((_this$otherParams$cha = (_this$otherParams16 = this.otherParams) === null || _this$otherParams16 === void 0 ? void 0 : _this$otherParams16.channel) !== null && _this$otherParams$cha !== void 0 ? _this$otherParams$cha : '').trim();
2782
+ businessCode = String((_this$otherParams$bus = (_this$otherParams16 = this.otherParams) === null || _this$otherParams16 === void 0 ? void 0 : _this$otherParams16.businessCode) !== null && _this$otherParams$bus !== void 0 ? _this$otherParams$bus : '').trim();
2783
+ channel = String((_this$otherParams$cha = (_this$otherParams17 = this.otherParams) === null || _this$otherParams17 === void 0 ? void 0 : _this$otherParams17.channel) !== null && _this$otherParams$cha !== void 0 ? _this$otherParams$cha : '').trim();
2780
2784
  openDataTarget = businessCode && channel ? "".concat(businessCode, "+").concat(channel) : 'dine_in+scan_to_order';
2781
2785
  _context37.next = 9;
2782
- return (_this$otherParams17 = this.otherParams) === null || _this$otherParams17 === void 0 || (_this$otherParams17$g = _this$otherParams17.getOpenData) === null || _this$otherParams17$g === void 0 ? void 0 : _this$otherParams17$g.call(_this$otherParams17, {
2786
+ return (_this$otherParams18 = this.otherParams) === null || _this$otherParams18 === void 0 || (_this$otherParams18$g = _this$otherParams18.getOpenData) === null || _this$otherParams18$g === void 0 ? void 0 : _this$otherParams18$g.call(_this$otherParams18, {
2783
2787
  scope: 'board',
2784
2788
  target: openDataTarget,
2785
2789
  section_code: ['basic', 'fulfillment', 'reservation', 'sale', 'menu', 'availability', 'workflow']
@@ -3043,7 +3047,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
3043
3047
  }, []) : []; // pax 由 setEntryPaxNumber 负责写入 itemRuleRuntimeConfig.pax
3044
3048
  _context37.next = 79;
3045
3049
  return this.setItemRuleRuntimeConfig({
3046
- serviceType: (_this$otherParams18 = this.otherParams) === null || _this$otherParams18 === void 0 ? void 0 : _this$otherParams18.businessCode,
3050
+ serviceType: (_this$otherParams19 = this.otherParams) === null || _this$otherParams19 === void 0 ? void 0 : _this$otherParams19.businessCode,
3047
3051
  submissionIndex: isAdditionalOrderMode ? 1 : 0,
3048
3052
  historicalItems: historicalItems
3049
3053
  });
@@ -3169,14 +3173,14 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
3169
3173
  key: "getProductList",
3170
3174
  value: function () {
3171
3175
  var _getProductList = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee40() {
3172
- var _this$otherParams19;
3176
+ var _this$otherParams20;
3173
3177
  var associatedMenus, menu_list_ids, res, productList, formattedRes;
3174
3178
  return _regeneratorRuntime().wrap(function _callee40$(_context40) {
3175
3179
  while (1) switch (_context40.prev = _context40.next) {
3176
3180
  case 0:
3177
3181
  this.logMethodStart('getProductList');
3178
3182
  // 可以直接通过配置里的 menu 读取
3179
- associatedMenus = (_this$otherParams19 = this.otherParams) === null || _this$otherParams19 === void 0 || (_this$otherParams19 = _this$otherParams19.dineInConfig) === null || _this$otherParams19 === void 0 ? void 0 : _this$otherParams19['menu.associated_menus'];
3183
+ associatedMenus = (_this$otherParams20 = this.otherParams) === null || _this$otherParams20 === void 0 || (_this$otherParams20 = _this$otherParams20.dineInConfig) === null || _this$otherParams20 === void 0 ? void 0 : _this$otherParams20['menu.associated_menus'];
3180
3184
  menu_list_ids = associatedMenus.map(function (n) {
3181
3185
  return Number(n.value);
3182
3186
  }) || [];
@@ -3235,14 +3239,14 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
3235
3239
  key: "setOtherParams",
3236
3240
  value: function () {
3237
3241
  var _setOtherParams = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee41(params) {
3238
- var _ref8,
3239
- _ref8$cover,
3242
+ var _ref9,
3243
+ _ref9$cover,
3240
3244
  cover,
3241
3245
  _args41 = arguments;
3242
3246
  return _regeneratorRuntime().wrap(function _callee41$(_context41) {
3243
3247
  while (1) switch (_context41.prev = _context41.next) {
3244
3248
  case 0:
3245
- _ref8 = _args41.length > 1 && _args41[1] !== undefined ? _args41[1] : {}, _ref8$cover = _ref8.cover, cover = _ref8$cover === void 0 ? false : _ref8$cover;
3249
+ _ref9 = _args41.length > 1 && _args41[1] !== undefined ? _args41[1] : {}, _ref9$cover = _ref9.cover, cover = _ref9$cover === void 0 ? false : _ref9$cover;
3246
3250
  if (cover) {
3247
3251
  this.otherParams = params;
3248
3252
  } else {
@@ -3393,7 +3397,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
3393
3397
  key: "syncAdditionalOrderFromResource",
3394
3398
  value: function () {
3395
3399
  var _syncAdditionalOrderFromResource = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee43(resourceId) {
3396
- var _ref9, _ref10, _ref11, _this$store$resource5, _this$store$resource6, _occupyDetails$2, _this$store$resource7, _this$otherParams20, _this$store$order8;
3400
+ var _ref10, _ref11, _ref12, _this$store$resource5, _this$store$resource6, _occupyDetails$2, _this$store$resource7, _this$otherParams21, _this$store$order8;
3397
3401
  var tempOrder, normalizedResourceId, _result, occupyDetails, occupyDetail, resourceSelectType, allowAddItems, result;
3398
3402
  return _regeneratorRuntime().wrap(function _callee43$(_context43) {
3399
3403
  while (1) switch (_context43.prev = _context43.next) {
@@ -3405,7 +3409,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
3405
3409
  throw new Error('order 模块未初始化');
3406
3410
  case 2:
3407
3411
  tempOrder = this.store.order.ensureTempOrder();
3408
- normalizedResourceId = String((_ref9 = (_ref10 = (_ref11 = resourceId !== null && resourceId !== void 0 ? resourceId : tempOrder.resource_id) !== null && _ref11 !== void 0 ? _ref11 : (_this$store$resource5 = this.store.resource) === null || _this$store$resource5 === void 0 ? void 0 : _this$store$resource5.relationId) !== null && _ref10 !== void 0 ? _ref10 : (_this$store$resource6 = this.store.resource) === null || _this$store$resource6 === void 0 ? void 0 : _this$store$resource6.relation_id) !== null && _ref9 !== void 0 ? _ref9 : '').trim();
3412
+ normalizedResourceId = String((_ref10 = (_ref11 = (_ref12 = resourceId !== null && resourceId !== void 0 ? resourceId : tempOrder.resource_id) !== null && _ref12 !== void 0 ? _ref12 : (_this$store$resource5 = this.store.resource) === null || _this$store$resource5 === void 0 ? void 0 : _this$store$resource5.relationId) !== null && _ref11 !== void 0 ? _ref11 : (_this$store$resource6 = this.store.resource) === null || _this$store$resource6 === void 0 ? void 0 : _this$store$resource6.relation_id) !== null && _ref10 !== void 0 ? _ref10 : '').trim();
3409
3413
  this.logMethodStart('syncAdditionalOrderFromResource', {
3410
3414
  resourceId: normalizedResourceId
3411
3415
  });
@@ -3426,7 +3430,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
3426
3430
  occupyDetails = _context43.sent;
3427
3431
  occupyDetail = (_occupyDetails$2 = occupyDetails[0]) !== null && _occupyDetails$2 !== void 0 ? _occupyDetails$2 : null;
3428
3432
  resourceSelectType = ((_this$store$resource7 = this.store.resource) === null || _this$store$resource7 === void 0 ? void 0 : _this$store$resource7.resourceSelectType) || this.resolveResourceSelectType(toPositiveString(occupyDetail === null || occupyDetail === void 0 ? void 0 : occupyDetail.form_id));
3429
- allowAddItems = toBoolean((_this$otherParams20 = this.otherParams) === null || _this$otherParams20 === void 0 || (_this$otherParams20 = _this$otherParams20.dineInConfig) === null || _this$otherParams20 === void 0 ? void 0 : _this$otherParams20['sale.allow_add_items']);
3433
+ allowAddItems = toBoolean((_this$otherParams21 = this.otherParams) === null || _this$otherParams21 === void 0 || (_this$otherParams21 = _this$otherParams21.dineInConfig) === null || _this$otherParams21 === void 0 ? void 0 : _this$otherParams21['sale.allow_add_items']);
3430
3434
  result = this.resolveAdditionalOrderFromOccupyDetail(occupyDetail, resourceSelectType, allowAddItems);
3431
3435
  if (!(!result.matched || !result.order_id)) {
3432
3436
  _context43.next = 19;
@@ -3484,9 +3488,9 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
3484
3488
  }, {
3485
3489
  key: "checkAllowAddItems",
3486
3490
  value: function checkAllowAddItems() {
3487
- var _this$otherParams21;
3491
+ var _this$otherParams22;
3488
3492
  this.logMethodStart('checkAllowAddItems');
3489
- var dineInConfig = ((_this$otherParams21 = this.otherParams) === null || _this$otherParams21 === void 0 ? void 0 : _this$otherParams21.dineInConfig) || {};
3493
+ var dineInConfig = ((_this$otherParams22 = this.otherParams) === null || _this$otherParams22 === void 0 ? void 0 : _this$otherParams22.dineInConfig) || {};
3490
3494
  var result = {
3491
3495
  enabled: toBoolean(dineInConfig['sale.allow_add_items'])
3492
3496
  };
@@ -3499,9 +3503,9 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
3499
3503
  }, {
3500
3504
  key: "getFulfillmentModes",
3501
3505
  value: function getFulfillmentModes() {
3502
- var _this$otherParams22;
3506
+ var _this$otherParams23;
3503
3507
  this.logMethodStart('getFulfillmentModes');
3504
- var dineInConfig = ((_this$otherParams22 = this.otherParams) === null || _this$otherParams22 === void 0 ? void 0 : _this$otherParams22.dineInConfig) || {};
3508
+ var dineInConfig = ((_this$otherParams23 = this.otherParams) === null || _this$otherParams23 === void 0 ? void 0 : _this$otherParams23.dineInConfig) || {};
3505
3509
  var result = {
3506
3510
  enablePickup: Boolean(dineInConfig['fulfillment.enable_pickup']),
3507
3511
  enableTableService: Boolean(dineInConfig['fulfillment.enable_table_service'])
@@ -3515,9 +3519,9 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseSalesImpl) {
3515
3519
  }, {
3516
3520
  key: "checkManualPickupRef",
3517
3521
  value: function checkManualPickupRef() {
3518
- var _this$otherParams23;
3522
+ var _this$otherParams24;
3519
3523
  this.logMethodStart('checkManualPickupRef');
3520
- var dineInConfig = ((_this$otherParams23 = this.otherParams) === null || _this$otherParams23 === void 0 ? void 0 : _this$otherParams23.dineInConfig) || {};
3524
+ var dineInConfig = ((_this$otherParams24 = this.otherParams) === null || _this$otherParams24 === void 0 ? void 0 : _this$otherParams24.dineInConfig) || {};
3521
3525
  var refMode = dineInConfig['fulfillment.fulfillment_ref_mode'];
3522
3526
  var manualInputType = dineInConfig['fulfillment.manual_input_type'];
3523
3527
  var enabled = refMode === 'manual_input';
@@ -78,6 +78,7 @@ export declare function buildItemRuleBusinessData(params: {
78
78
  pax?: Partial<PaxInfo>;
79
79
  historicalItems?: CartItemSummary[];
80
80
  serviceType?: string;
81
+ channel?: string;
81
82
  submissionIndex?: number;
82
83
  custom?: Record<string, any>;
83
84
  };
@@ -309,6 +309,7 @@ export function aggregateItemRuleLimit(matchedLimits) {
309
309
  };
310
310
  }
311
311
  export function buildItemRuleBusinessData(params) {
312
+ var _runtimeConfig$channe, _runtimeConfig$custom;
312
313
  var tempOrder = params.tempOrder,
313
314
  runtimeConfig = params.runtimeConfig,
314
315
  itemRuleConfigs = params.itemRuleConfigs;
@@ -345,6 +346,7 @@ export function buildItemRuleBusinessData(params) {
345
346
  cartItems: cartItems,
346
347
  historicalItems: historicalItems,
347
348
  serviceType: runtimeConfig.serviceType || 'dine-in',
349
+ channel: (_runtimeConfig$channe = runtimeConfig.channel) !== null && _runtimeConfig$channe !== void 0 ? _runtimeConfig$channe : (_runtimeConfig$custom = runtimeConfig.custom) === null || _runtimeConfig$custom === void 0 ? void 0 : _runtimeConfig$custom.channel,
348
350
  submissionIndex: typeof runtimeConfig.submissionIndex === 'number' ? toNonNegativeInt(runtimeConfig.submissionIndex) : tempOrder.order_id ? 1 : 0,
349
351
  custom: runtimeConfig.custom || {},
350
352
  strategyConfigs: itemRuleConfigs
@@ -2,10 +2,11 @@ import type { Module, ModuleOptions, PisellCore } from '../../types';
2
2
  import type { ProductData } from '../../modules';
3
3
  import type { OpenDataConfig } from '../../modules/OpenData';
4
4
  import type { LoadScheduleAvailableDateParams, ScheduleItem } from '../../modules/Schedule/types';
5
- import type { ProductListLoadProductsParams } from '../../modules/ProductList';
5
+ import type { ProductListLoadProductsParams, ProductListStoreQueryParams } from '../../modules/ProductList';
6
6
  import type { AvailabilityDateRange, AvailabilityOccupancy, AvailabilityProduct, AvailabilityResource, GetProductTimeRangesRequest } from '../../modules/ResourcePlanner';
7
- import type { AvailabilityContextRef, ContextualAvailabilityQuery, ContextualAvailabilityQueryResult, ContextualCommitAvailabilitySelectionParams, ContextualProductTimeRangeGroup, UnifiedBookingSalesAddRetailProductParams, UnifiedBookingSalesApplyPlannerDiscountsParams, UnifiedBookingSalesCommitAvailabilitySelectionResult, UnifiedBookingSalesDiscountResult, UnifiedBookingSalesLoadProductsByScheduleDateParams, UnifiedBookingSalesLoadOpenDataParams, UnifiedBookingSalesPrepareAvailabilityProjectionParams, UnifiedBookingSalesPolicyResponse, UnifiedBookingSalesStageRetailProductsParams, UnifiedBookingSalesState } from './types';
7
+ import type { AvailabilityContextRef, ContextualAvailabilityQuery, ContextualAvailabilityQueryResult, ContextualCommitAvailabilitySelectionParams, ContextualProductTimeRangeGroup, UnifiedBookingSalesAddRetailProductParams, UnifiedBookingSalesApplyPlannerDiscountsParams, UnifiedBookingSalesCommitAvailabilitySelectionResult, UnifiedBookingSalesDiscountResult, UnifiedBookingSalesLoadProductsByScheduleDateParams, UnifiedBookingSalesLoadOpenDataParams, UnifiedBookingSalesPrepareAvailabilityProjectionParams, UnifiedBookingSalesPolicyResponse, UnifiedBookingSalesResolveProductAllergyRequirementParams, UnifiedBookingSalesStageRetailProductsParams, UnifiedBookingSalesState } from './types';
8
8
  import { BookingTicket } from '../BookingTicket';
9
+ import type { AllergyRequirement } from '../../model/strategy/adapter/itemRule';
9
10
  export * from './types';
10
11
  export { AvailabilityError } from '../../modules/ResourcePlanner';
11
12
  /**
@@ -76,6 +77,9 @@ export declare class UnifiedBookingSalesImpl extends BookingTicket {
76
77
  private availabilityRemoteResourceQuerySequence;
77
78
  private availabilityRemoteResourceEpoch;
78
79
  private availabilityCommitLocks;
80
+ private allergyItemRuleEvaluator;
81
+ private allergyItemRuleConfigs;
82
+ private allergyItemRuleConfigsPromise;
79
83
  initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
80
84
  protected getSubmitOrderSalesChannel(): string;
81
85
  private createAvailabilityFacadeError;
@@ -147,6 +151,14 @@ export declare class UnifiedBookingSalesImpl extends BookingTicket {
147
151
  */
148
152
  loadOpenData(params: UnifiedBookingSalesLoadOpenDataParams): Promise<OpenDataConfig>;
149
153
  getOpenData(): Promise<OpenDataConfig | null>;
154
+ private resetAllergyItemRuleState;
155
+ private fetchAllergyItemRuleConfigs;
156
+ private ensureAllergyItemRuleConfigsLoaded;
157
+ /**
158
+ * 评估当前渠道与商品是否命中 ALLERGY_CHECK。
159
+ * 只返回优先级最高 Action 中当前商品 Target 的 dataSource,不跨商品或 Action 合并。
160
+ */
161
+ resolveProductAllergyRequirement(params: UnifiedBookingSalesResolveProductAllergyRequirementParams): Promise<AllergyRequirement | null>;
150
162
  /**
151
163
  * Load a resource policy without depending on the legacy appointmentBooking solution.
152
164
  */
@@ -159,6 +171,7 @@ export declare class UnifiedBookingSalesImpl extends BookingTicket {
159
171
  callback?: (result: any) => void;
160
172
  subscriberId?: string;
161
173
  }): Promise<ProductData[]>;
174
+ queryProducts(params?: ProductListStoreQueryParams): Promise<ProductData[]>;
162
175
  /** Date-first entry point. It delegates protocol details and cache ownership to ScheduleModule. */
163
176
  loadScheduleAvailableDate(params: LoadScheduleAvailableDateParams): Promise<import("../../modules/Date/types").ITime[]>;
164
177
  /**