@pisell/pisellos 2.3.74 → 2.3.76
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.
- package/dist/core/index.js +6 -10
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/strategy-example.js +5 -19
- package/dist/modules/Cart/index.js +0 -3
- package/dist/modules/Cart/utils/cartProduct.js +0 -1
- package/dist/modules/Date/index.js +1 -5
- package/dist/modules/Discount/index.js +2 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +75 -91
- package/dist/modules/Order/types.d.ts +3 -1
- package/dist/modules/Payment/index.js +97 -162
- package/dist/modules/Rules/index.js +1 -4
- package/dist/modules/Schedule/index.js +0 -1
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.js +97 -129
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/order/index.js +2 -4
- package/dist/server/modules/products/index.js +24 -42
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +3 -4
- package/dist/server/modules/schedule/index.js +27 -35
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BaseSales/index.js +100 -72
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
- package/dist/solution/BookingByStep/index.js +7 -59
- package/dist/solution/BookingByStep/utils/capacity.js +1 -11
- package/dist/solution/BookingByStep/utils/resources.js +1 -3
- package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
- package/dist/solution/BookingTicket/index.js +0 -2
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
- package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
- package/dist/solution/BuyTickets/index.js +9 -12
- package/dist/solution/Checkout/index.js +177 -252
- package/dist/solution/Checkout/utils/index.js +4 -16
- package/dist/solution/RegisterAndLogin/index.js +30 -76
- package/dist/solution/ScanOrder/index.js +50 -60
- package/dist/solution/ShopDiscount/index.js +2 -7
- package/dist/solution/VenueBooking/index.js +45 -55
- package/dist/utils/task.js +15 -18
- package/dist/utils/watch.js +0 -1
- package/lib/apis/picoding.js +2 -0
- package/lib/core/index.js +134 -134
- package/lib/effects/index.js +46 -57
- package/lib/index.js +82 -49
- package/lib/model/index.js +14 -21
- package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
- package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
- package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
- package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
- package/lib/model/strategy/adapter/index.js +100 -64
- package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
- package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
- package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
- package/lib/model/strategy/adapter/itemRule/index.js +83 -57
- package/lib/model/strategy/adapter/itemRule/type.js +97 -36
- package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
- package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
- package/lib/model/strategy/adapter/promotion/examples.js +222 -234
- package/lib/model/strategy/adapter/promotion/index.js +1 -0
- package/lib/model/strategy/adapter/promotion/type.js +243 -36
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
- package/lib/model/strategy/adapter/walletPass/example.js +217 -190
- package/lib/model/strategy/adapter/walletPass/index.js +75 -51
- package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
- package/lib/model/strategy/adapter/walletPass/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
- package/lib/model/strategy/engine.js +270 -168
- package/lib/model/strategy/index.js +49 -34
- package/lib/model/strategy/strategy-example.js +243 -239
- package/lib/model/strategy/type.js +100 -40
- package/lib/modules/Account/index.js +39 -53
- package/lib/modules/Account/types.js +20 -33
- package/lib/modules/AccountList/index.js +116 -154
- package/lib/modules/AccountList/types.js +30 -31
- package/lib/modules/AccountList/utils.js +18 -30
- package/lib/modules/BaseModule.js +23 -42
- package/lib/modules/BookingContext/index.js +158 -136
- package/lib/modules/BookingContext/types.js +46 -32
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
- package/lib/modules/BookingContext/utils/flexible.js +38 -55
- package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
- package/lib/modules/BookingContext/utils/index.js +124 -41
- package/lib/modules/BookingContext/utils/noResource.js +58 -70
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
- package/lib/modules/BookingContext/utils/productExtend.js +202 -155
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
- package/lib/modules/BookingContext/utils/resources.js +209 -167
- package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
- package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
- package/lib/modules/Cart/index.js +170 -124
- package/lib/modules/Cart/types.js +46 -51
- package/lib/modules/Cart/utils/cartAccount.js +40 -39
- package/lib/modules/Cart/utils/cartDate.js +56 -61
- package/lib/modules/Cart/utils/cartDiscount.js +28 -33
- package/lib/modules/Cart/utils/cartNote.js +27 -32
- package/lib/modules/Cart/utils/cartProduct.js +321 -251
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +70 -78
- package/lib/modules/Cart/utils/changePrice.js +22 -50
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +235 -172
- package/lib/modules/Customer/types.js +38 -35
- package/lib/modules/Date/index.js +116 -115
- package/lib/modules/Date/types.js +16 -28
- package/lib/modules/Date/utils.js +174 -123
- package/lib/modules/Discount/index.js +122 -127
- package/lib/modules/Discount/types.js +9 -31
- package/lib/modules/Guests/index.js +30 -56
- package/lib/modules/Guests/types.js +23 -33
- package/lib/modules/Holder/index.js +209 -189
- package/lib/modules/Holder/types.js +4 -16
- package/lib/modules/Holder/utils.js +20 -49
- package/lib/modules/OpenData/index.js +70 -76
- package/lib/modules/OpenData/types.js +4 -16
- package/lib/modules/OpenData/utils.js +44 -78
- package/lib/modules/Order/index.d.ts +1 -1
- package/lib/modules/Order/index.js +1733 -2121
- package/lib/modules/Order/payment-utils.js +77 -120
- package/lib/modules/Order/types.d.ts +3 -1
- package/lib/modules/Order/types.js +88 -35
- package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
- package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
- package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
- package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
- package/lib/modules/Order/utils.js +814 -647
- package/lib/modules/Payment/cash.js +20 -33
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
- package/lib/modules/Payment/eftpos.js +16 -30
- package/lib/modules/Payment/index.js +532 -399
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +230 -108
- package/lib/modules/Payment/utils.js +52 -51
- package/lib/modules/Payment/walletpass.js +485 -660
- package/lib/modules/Product/index.js +51 -46
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.js +113 -123
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.js +81 -118
- package/lib/modules/Quotation/types.js +4 -16
- package/lib/modules/Resource/index.js +27 -59
- package/lib/modules/Resource/types.js +22 -32
- package/lib/modules/Resource/utils.js +30 -38
- package/lib/modules/ResourcePlanner/index.js +25 -23
- package/lib/modules/ResourcePlanner/localClock.js +54 -119
- package/lib/modules/ResourcePlanner/planner.js +589 -770
- package/lib/modules/ResourcePlanner/types.js +10 -29
- package/lib/modules/Rules/index.js +1218 -959
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +85 -90
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +355 -430
- package/lib/modules/ScanOrderLogger/index.js +59 -79
- package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
- package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
- package/lib/modules/ScanOrderLogger/types.js +4 -16
- package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
- package/lib/modules/Schedule/index.js +100 -114
- package/lib/modules/Schedule/type.js +4 -16
- package/lib/modules/Schedule/types.js +4 -16
- package/lib/modules/Schedule/utils.js +433 -291
- package/lib/modules/Step/index.js +40 -52
- package/lib/modules/Step/tyeps.js +4 -16
- package/lib/modules/Summary/index.js +66 -71
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +773 -418
- package/lib/modules/SurchargeList/index.js +46 -60
- package/lib/modules/SurchargeList/types.js +4 -16
- package/lib/modules/index.js +245 -63
- package/lib/plugins/app.js +4 -16
- package/lib/plugins/index.js +36 -25
- package/lib/plugins/request.js +137 -126
- package/lib/plugins/shopStore.js +4 -16
- package/lib/plugins/user.js +4 -16
- package/lib/plugins/window.js +171 -179
- package/lib/server/index.js +3050 -2665
- package/lib/server/modules/floor-plan/index.js +118 -134
- package/lib/server/modules/floor-plan/types.js +15 -30
- package/lib/server/modules/index.js +106 -68
- package/lib/server/modules/menu/index.js +142 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.js +784 -1002
- package/lib/server/modules/order/types.js +122 -33
- package/lib/server/modules/order/utils/filterBookings.js +219 -194
- package/lib/server/modules/order/utils/filterOrders.js +118 -92
- package/lib/server/modules/payment/index.js +59 -83
- package/lib/server/modules/payment/types.js +4 -16
- package/lib/server/modules/products/index.js +583 -471
- package/lib/server/modules/products/types.js +44 -34
- package/lib/server/modules/quotation/index.js +137 -172
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +220 -186
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +135 -123
- package/lib/server/modules/schedule/types.js +14 -21
- package/lib/server/modules/schedule/utils.js +334 -163
- package/lib/server/types.js +4 -16
- package/lib/server/utils/index.js +25 -23
- package/lib/server/utils/product.js +196 -139
- package/lib/server/utils/schedule.js +34 -41
- package/lib/server/utils/small-ticket.js +479 -456
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BaseSales/index.js +1220 -1412
- package/lib/solution/BaseSales/types.js +42 -38
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
- package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
- package/lib/solution/BaseSales/utils.js +158 -143
- package/lib/solution/BookingByStep/index.js +1527 -1340
- package/lib/solution/BookingByStep/types.js +40 -99
- package/lib/solution/BookingByStep/utils/capacity.js +192 -160
- package/lib/solution/BookingByStep/utils/products.js +42 -52
- package/lib/solution/BookingByStep/utils/resources.js +527 -330
- package/lib/solution/BookingByStep/utils/stock.js +65 -44
- package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
- package/lib/solution/BookingTicket/index.js +607 -522
- package/lib/solution/BookingTicket/types.js +99 -77
- package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
- package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
- package/lib/solution/BookingTicket/utils/cartView.js +114 -99
- package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
- package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
- package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
- package/lib/solution/BuyTickets/index.js +67 -70
- package/lib/solution/BuyTickets/types.js +22 -38
- package/lib/solution/Checkout/index.js +1451 -1158
- package/lib/solution/Checkout/types.js +91 -61
- package/lib/solution/Checkout/utils/index.js +228 -156
- package/lib/solution/PlaceOrder/index.js +55 -0
- package/lib/solution/RegisterAndLogin/config.js +493 -460
- package/lib/solution/RegisterAndLogin/index.js +633 -630
- package/lib/solution/RegisterAndLogin/types.js +189 -76
- package/lib/solution/RegisterAndLogin/utils.js +183 -125
- package/lib/solution/Sales/index.js +328 -324
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +832 -864
- package/lib/solution/ScanOrder/types.js +33 -34
- package/lib/solution/ScanOrder/utils.js +409 -374
- package/lib/solution/ShopDiscount/index.js +226 -232
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +300 -172
- package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
- package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
- package/lib/solution/UnifiedBookingSales/types.js +10 -32
- package/lib/solution/VenueBooking/index.js +811 -879
- package/lib/solution/VenueBooking/types.js +19 -39
- package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
- package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +124 -41
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/payment-number.js +26 -46
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
|
@@ -1,51 +1,64 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__export(formatGlobalScan_exports, {
|
|
22
|
-
formatGlobalScanResult: () => formatGlobalScanResult
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
23
5
|
});
|
|
24
|
-
|
|
6
|
+
exports.formatGlobalScanResult = formatGlobalScanResult;
|
|
7
|
+
/**
|
|
8
|
+
* 全局扫码搜索结果格式化(对齐 ticketBooking `formatScanGlobal`)。
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* 将 handleGlobalScan 返回的原始结构格式化为 UI/OS 统一结构。
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const formatted = formatGlobalScanResult(
|
|
17
|
+
* { searchType: 'wallet', response: { code: 200, data: { customer: {...} } } },
|
|
18
|
+
* 'WL123',
|
|
19
|
+
* );
|
|
20
|
+
* // => { searchType: 'wallet', data: customerObj, scanCode: 'WL123' }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
25
23
|
function formatGlobalScanResult(raw, scanCode) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const {
|
|
31
|
-
|
|
24
|
+
if (!raw?.searchType) return null;
|
|
25
|
+
const {
|
|
26
|
+
searchType
|
|
27
|
+
} = raw;
|
|
28
|
+
const {
|
|
29
|
+
data: resultData,
|
|
30
|
+
code
|
|
31
|
+
} = raw.response || {};
|
|
32
|
+
if (code !== 200 && searchType !== 'local_product') {
|
|
32
33
|
return null;
|
|
33
34
|
}
|
|
34
|
-
if (searchType ===
|
|
35
|
-
return {
|
|
35
|
+
if (searchType === 'wallet') {
|
|
36
|
+
return {
|
|
37
|
+
searchType,
|
|
38
|
+
data: resultData?.customer,
|
|
39
|
+
scanCode
|
|
40
|
+
};
|
|
36
41
|
}
|
|
37
|
-
if (searchType ===
|
|
38
|
-
return {
|
|
42
|
+
if (searchType === 'walletPass') {
|
|
43
|
+
return {
|
|
44
|
+
searchType,
|
|
45
|
+
data: resultData?.[0]?.customer,
|
|
46
|
+
scanCode
|
|
47
|
+
};
|
|
39
48
|
}
|
|
40
|
-
if (searchType ===
|
|
41
|
-
return {
|
|
49
|
+
if (searchType === 'product' || searchType === 'local_product') {
|
|
50
|
+
return {
|
|
51
|
+
searchType,
|
|
52
|
+
data: resultData,
|
|
53
|
+
scanCode
|
|
54
|
+
};
|
|
42
55
|
}
|
|
43
|
-
if (searchType ===
|
|
44
|
-
return {
|
|
56
|
+
if (searchType === 'order') {
|
|
57
|
+
return {
|
|
58
|
+
searchType,
|
|
59
|
+
data: resultData,
|
|
60
|
+
scanCode
|
|
61
|
+
};
|
|
45
62
|
}
|
|
46
63
|
return null;
|
|
47
|
-
}
|
|
48
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
49
|
-
0 && (module.exports = {
|
|
50
|
-
formatGlobalScanResult
|
|
51
|
-
});
|
|
64
|
+
}
|
|
@@ -1,56 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
28
2
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
__export(handleScan_exports, {
|
|
32
|
-
handleCustomerScan: () => handleCustomerScan,
|
|
33
|
-
handleGlobalScan: () => handleGlobalScan,
|
|
34
|
-
handleUniversalScan: () => handleUniversalScan
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
35
5
|
});
|
|
36
|
-
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
|
|
6
|
+
exports.handleUniversalScan = exports.handleGlobalScan = exports.handleCustomerScan = void 0;
|
|
7
|
+
var _cloudSearch = require("./cloudSearch");
|
|
8
|
+
var _scanCache = _interopRequireDefault(require("./scanCache"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
/**
|
|
11
|
+
* Promise.any 的替代实现
|
|
12
|
+
* 返回第一个成功解析的 Promise,如果所有 Promise 都失败则抛出错误
|
|
13
|
+
* @param promises Promise 数组
|
|
14
|
+
* @returns 第一个成功的结果
|
|
15
|
+
*/
|
|
16
|
+
const promiseAny = async promises => {
|
|
40
17
|
if (promises.length === 0) {
|
|
41
|
-
throw new Error(
|
|
18
|
+
throw new Error('No promises provided');
|
|
42
19
|
}
|
|
43
20
|
const errors = [];
|
|
44
21
|
let completedCount = 0;
|
|
45
22
|
return new Promise((resolve, reject) => {
|
|
46
23
|
promises.forEach((promise, index) => {
|
|
47
|
-
promise.then(
|
|
24
|
+
promise.then(result => {
|
|
48
25
|
resolve(result);
|
|
49
|
-
}).catch(
|
|
26
|
+
}).catch(error => {
|
|
50
27
|
errors[index] = error;
|
|
51
28
|
completedCount++;
|
|
29
|
+
|
|
30
|
+
// 如果所有 Promise 都失败了,抛出包含所有错误的错误
|
|
52
31
|
if (completedCount === promises.length) {
|
|
53
|
-
const errorMessage = `All promises were rejected. Errors: ${errors.map(
|
|
32
|
+
const errorMessage = `All promises were rejected. Errors: ${errors.map(e => e.message).join(', ')}`;
|
|
54
33
|
const combinedError = new Error(errorMessage);
|
|
55
34
|
combinedError.errors = errors;
|
|
56
35
|
reject(combinedError);
|
|
@@ -59,75 +38,99 @@ var promiseAny = async (promises) => {
|
|
|
59
38
|
});
|
|
60
39
|
});
|
|
61
40
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* 处理扫码
|
|
44
|
+
* @param getRequestList 获取请求列表
|
|
45
|
+
* @returns 处理结果
|
|
46
|
+
*/
|
|
47
|
+
const handleScanFn = (getRequestList, localSearch) => {
|
|
48
|
+
return async scanResult => {
|
|
49
|
+
const {
|
|
50
|
+
value
|
|
51
|
+
} = scanResult || {};
|
|
52
|
+
|
|
53
|
+
// 本地解析识别码
|
|
65
54
|
if (localSearch) {
|
|
66
55
|
try {
|
|
67
|
-
const localResult = localSearch
|
|
68
|
-
if (
|
|
69
|
-
console.log("本地搜索到数据>>>>>>>", localResult);
|
|
56
|
+
const localResult = localSearch?.(value);
|
|
57
|
+
if (localResult?.length > 0) {
|
|
70
58
|
return {
|
|
71
|
-
searchType:
|
|
72
|
-
response: {
|
|
59
|
+
searchType: 'local_product',
|
|
60
|
+
response: {
|
|
61
|
+
data: {
|
|
62
|
+
list: localResult
|
|
63
|
+
}
|
|
64
|
+
}
|
|
73
65
|
};
|
|
74
|
-
} else {
|
|
75
|
-
console.log("本地搜索无数据>>>>>>>");
|
|
76
|
-
}
|
|
66
|
+
} else {}
|
|
77
67
|
} catch (error) {
|
|
78
|
-
console.error(
|
|
68
|
+
console.error('本地搜索到数据失败>>>>>>>', error);
|
|
79
69
|
}
|
|
80
70
|
}
|
|
71
|
+
|
|
72
|
+
// 检查缓存中是否已有数据
|
|
81
73
|
try {
|
|
82
|
-
if (
|
|
83
|
-
const result =
|
|
84
|
-
console.log("缓存中搜索到数据>>>>>>>", result);
|
|
74
|
+
if (_scanCache.default.has(value)) {
|
|
75
|
+
const result = _scanCache.default.get(value);
|
|
85
76
|
return result;
|
|
86
|
-
} else {
|
|
87
|
-
console.log("缓存中无数据>>>>>>>");
|
|
88
|
-
}
|
|
77
|
+
} else {}
|
|
89
78
|
} catch (error) {
|
|
90
|
-
console.error(
|
|
79
|
+
console.error('缓存中搜索数据失败>>>>>>>', error);
|
|
91
80
|
}
|
|
92
|
-
const requestList =
|
|
81
|
+
const requestList = getRequestList?.(value) || [];
|
|
93
82
|
if (requestList.length === 0) {
|
|
94
|
-
throw new Error(
|
|
83
|
+
throw new Error('requestList is empty');
|
|
95
84
|
}
|
|
96
85
|
try {
|
|
97
86
|
const result = await promiseAny(requestList);
|
|
98
|
-
|
|
87
|
+
// 将结果缓存
|
|
88
|
+
_scanCache.default.set(value, result);
|
|
99
89
|
return result;
|
|
100
90
|
} catch (error) {
|
|
101
91
|
throw error;
|
|
102
92
|
}
|
|
103
93
|
};
|
|
104
94
|
};
|
|
105
|
-
|
|
106
|
-
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* 处理全局扫码
|
|
98
|
+
* @param request 请求插件
|
|
99
|
+
* @param localSearch 本地商品搜索
|
|
100
|
+
* @param channel 当前销售渠道
|
|
101
|
+
* @returns 处理结果
|
|
102
|
+
*/
|
|
103
|
+
const handleGlobalScan = (request, localSearch, channel) => {
|
|
104
|
+
const getRequestList = value => {
|
|
107
105
|
let requestList = [];
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
// 如果value是已WL开头的,则认为是钱包识别码
|
|
107
|
+
if (value.startsWith('WL')) {
|
|
108
|
+
requestList = [(0, _cloudSearch.searchWallet)(request, value)];
|
|
110
109
|
} else {
|
|
111
|
-
requestList = [
|
|
112
|
-
...channel === "kiosk" ? [] : [(0, import_cloudSearch.searchOrder)(request, value)],
|
|
113
|
-
(0, import_cloudSearch.searchWalletPass)(request, value),
|
|
114
|
-
(0, import_cloudSearch.searchWallet)(request, value),
|
|
115
|
-
(0, import_cloudSearch.searchProduct)(request, value)
|
|
116
|
-
];
|
|
110
|
+
requestList = [...(channel === 'kiosk' ? [] : [(0, _cloudSearch.searchOrder)(request, value)]), (0, _cloudSearch.searchWalletPass)(request, value), (0, _cloudSearch.searchWallet)(request, value), (0, _cloudSearch.searchProduct)(request, value)];
|
|
117
111
|
}
|
|
118
112
|
return requestList;
|
|
119
113
|
};
|
|
120
114
|
return handleScanFn(getRequestList, localSearch);
|
|
121
115
|
};
|
|
122
|
-
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* 处理客户扫码
|
|
119
|
+
* @param request 请求插件
|
|
120
|
+
* @returns 处理结果
|
|
121
|
+
*/
|
|
122
|
+
exports.handleGlobalScan = handleGlobalScan;
|
|
123
|
+
const handleCustomerScan = () => {
|
|
123
124
|
return () => Promise.resolve({});
|
|
124
125
|
};
|
|
125
|
-
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* 处理钱包扫码
|
|
129
|
+
* @param request 请求插件
|
|
130
|
+
* @returns 处理结果
|
|
131
|
+
*/
|
|
132
|
+
exports.handleCustomerScan = handleCustomerScan;
|
|
133
|
+
const handleUniversalScan = () => {
|
|
126
134
|
return () => Promise.resolve({});
|
|
127
135
|
};
|
|
128
|
-
|
|
129
|
-
0 && (module.exports = {
|
|
130
|
-
handleCustomerScan,
|
|
131
|
-
handleGlobalScan,
|
|
132
|
-
handleUniversalScan
|
|
133
|
-
});
|
|
136
|
+
exports.handleUniversalScan = handleUniversalScan;
|
|
@@ -1,46 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
28
2
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
__export(scan_exports, {
|
|
32
|
-
default: () => Scan
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
33
5
|
});
|
|
34
|
-
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _watch = _interopRequireDefault(require("../../../../utils/watch"));
|
|
8
|
+
var _task = _interopRequireDefault(require("../../../../utils/task"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
var ScanResultType = /*#__PURE__*/function (ScanResultType) {
|
|
11
|
+
ScanResultType["Scanner"] = "scanner";
|
|
12
|
+
ScanResultType["NFC"] = "nfc";
|
|
13
|
+
ScanResultType["NativeScanner"] = "nativeScanner";
|
|
14
|
+
return ScanResultType;
|
|
15
|
+
}(ScanResultType || {});
|
|
16
|
+
class Scan {
|
|
17
|
+
static scanInstances = new Set();
|
|
18
|
+
static peripheralsListenerMounted = false;
|
|
19
|
+
solution;
|
|
20
|
+
watchKey;
|
|
21
|
+
listenerConfig = new Map();
|
|
38
22
|
constructor(solution, watchKey) {
|
|
39
|
-
this.listenerConfig = /* @__PURE__ */ new Map();
|
|
40
23
|
this.solution = solution;
|
|
41
24
|
this.watchKey = watchKey;
|
|
42
|
-
|
|
25
|
+
Scan.scanInstances.add(this);
|
|
26
|
+
|
|
27
|
+
// 初始化扫码监听
|
|
28
|
+
// this.initPeripheralsListener();
|
|
43
29
|
}
|
|
30
|
+
|
|
44
31
|
/**
|
|
45
32
|
* 初始化外设扫码结果监听
|
|
46
33
|
*
|
|
@@ -48,34 +35,27 @@ var _Scan = class {
|
|
|
48
35
|
* scan.initPeripheralsListener();
|
|
49
36
|
*/
|
|
50
37
|
initPeripheralsListener() {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
(
|
|
60
|
-
|
|
61
|
-
const result = JSON.parse(strVal);
|
|
62
|
-
console.log("nativeScannerResult>>>>>>>", result);
|
|
63
|
-
_Scan.scanInstances.forEach((instance) => {
|
|
64
|
-
instance.handleScan(result);
|
|
65
|
-
});
|
|
66
|
-
} catch (err) {
|
|
67
|
-
console.error(err);
|
|
68
|
-
}
|
|
38
|
+
if (Scan.peripheralsListenerMounted) return;
|
|
39
|
+
Scan.peripheralsListenerMounted = true;
|
|
40
|
+
this.solution?.window?.interaction?.utils?.mountFunction?.('global', 'peripheralsResult', strVal => {
|
|
41
|
+
try {
|
|
42
|
+
const result = JSON.parse(strVal);
|
|
43
|
+
Scan.scanInstances.forEach(instance => {
|
|
44
|
+
instance.handleScan(result);
|
|
45
|
+
});
|
|
46
|
+
} catch (err) {
|
|
47
|
+
console.error(err);
|
|
69
48
|
}
|
|
70
|
-
);
|
|
49
|
+
});
|
|
71
50
|
}
|
|
51
|
+
|
|
72
52
|
/**
|
|
73
53
|
* 处理扫码事件
|
|
74
54
|
* @param eventKey 事件key
|
|
75
55
|
* @param value 扫码结果
|
|
76
56
|
*/
|
|
77
57
|
handleScan(result) {
|
|
78
|
-
const lastEnableEventKey =
|
|
58
|
+
const lastEnableEventKey = _watch.default.getLastEnableEventKey(this.watchKey);
|
|
79
59
|
if (lastEnableEventKey) {
|
|
80
60
|
const listenerConfig = this.listenerConfig.get(lastEnableEventKey);
|
|
81
61
|
if (listenerConfig) {
|
|
@@ -90,115 +70,131 @@ var _Scan = class {
|
|
|
90
70
|
}
|
|
91
71
|
}
|
|
92
72
|
}
|
|
73
|
+
|
|
93
74
|
/**
|
|
94
75
|
* 生成uuid
|
|
95
76
|
* @returns uuid
|
|
96
77
|
*/
|
|
97
78
|
generateUuid() {
|
|
79
|
+
// 需要加入时间戳,避免重复
|
|
98
80
|
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15) + Date.now().toString(36);
|
|
99
81
|
}
|
|
82
|
+
|
|
100
83
|
/**
|
|
101
84
|
* 添加扫码信息监听
|
|
102
85
|
* @param watchKey 监听的key
|
|
103
86
|
* @param event 事件
|
|
104
87
|
*/
|
|
105
88
|
addListener(event, scanCallback) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
89
|
+
// 订阅事件
|
|
90
|
+
_watch.default.subscribe(this.watchKey, event);
|
|
91
|
+
// 创建任务
|
|
92
|
+
const task = new _task.default();
|
|
93
|
+
task.addAction(event.key, (...args) => this.scanTaskAction(event.key, ...args));
|
|
94
|
+
|
|
95
|
+
// 创建监听配置
|
|
96
|
+
this.listenerConfig.set(event.key, {
|
|
97
|
+
scanCallback,
|
|
98
|
+
task
|
|
99
|
+
});
|
|
113
100
|
return {
|
|
114
101
|
remove: () => {
|
|
115
102
|
this.removeListener(event);
|
|
116
103
|
}
|
|
117
104
|
};
|
|
118
105
|
}
|
|
106
|
+
|
|
119
107
|
/**
|
|
120
108
|
* 移除扫码信息监听
|
|
121
109
|
* @param watchKey 监听的key
|
|
122
110
|
* @param event 事件
|
|
123
111
|
*/
|
|
124
112
|
removeListener(event) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
(_b = (_a = this.listenerConfig.get(event.key)) == null ? void 0 : _a.task) == null ? void 0 : _b.clear();
|
|
113
|
+
_watch.default.unsubscribe(this.watchKey, event);
|
|
114
|
+
this.listenerConfig.get(event.key)?.task?.clear();
|
|
128
115
|
this.listenerConfig.delete(event.key);
|
|
129
116
|
}
|
|
117
|
+
|
|
130
118
|
/**
|
|
131
119
|
* 移除所有监听
|
|
132
120
|
*/
|
|
133
121
|
removeAllListeners() {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
var _a2;
|
|
139
|
-
(_a2 = item == null ? void 0 : item.task) == null ? void 0 : _a2.clear();
|
|
122
|
+
Scan.scanInstances.delete(this);
|
|
123
|
+
_watch.default.clearEvent(this.watchKey);
|
|
124
|
+
this.listenerConfig?.forEach?.(item => {
|
|
125
|
+
item?.task?.clear();
|
|
140
126
|
});
|
|
141
|
-
|
|
127
|
+
this.listenerConfig?.clear?.();
|
|
142
128
|
}
|
|
129
|
+
|
|
143
130
|
/**
|
|
144
131
|
* 启用所有监听
|
|
145
132
|
*/
|
|
146
133
|
enableAllListeners() {
|
|
147
|
-
|
|
134
|
+
_watch.default.enableAllEventByWatchKey(this.watchKey);
|
|
148
135
|
}
|
|
136
|
+
|
|
149
137
|
/**
|
|
150
138
|
* 禁用所有监听,并清空任务执行队列
|
|
151
139
|
*/
|
|
152
140
|
disableAllListeners() {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
(_a2 = item == null ? void 0 : item.task) == null ? void 0 : _a2.clearTaskQueue();
|
|
141
|
+
_watch.default.disabledAllEventByWatchKey(this.watchKey);
|
|
142
|
+
// 清空任务
|
|
143
|
+
this.listenerConfig?.forEach?.(item => {
|
|
144
|
+
item?.task?.clearTaskQueue();
|
|
158
145
|
});
|
|
159
146
|
}
|
|
147
|
+
|
|
160
148
|
/**
|
|
161
149
|
* 清空监听对应的任务执行队列,不传入eventKey则清空所有监听对应的任务执行队列
|
|
162
150
|
* @param eventKey 事件key
|
|
163
151
|
*/
|
|
164
152
|
clearTaskQueue(eventKey) {
|
|
165
|
-
var _a, _b, _c;
|
|
166
|
-
console.log("clearTaskQueue>>>>>>>", eventKey);
|
|
167
153
|
if (eventKey) {
|
|
168
|
-
|
|
154
|
+
this.listenerConfig.get(eventKey)?.task.clearTaskQueue();
|
|
169
155
|
} else {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
(_a2 = item == null ? void 0 : item.task) == null ? void 0 : _a2.clearTaskQueue();
|
|
156
|
+
this.listenerConfig?.forEach?.(item => {
|
|
157
|
+
item?.task?.clearTaskQueue();
|
|
173
158
|
});
|
|
174
159
|
}
|
|
175
160
|
}
|
|
161
|
+
|
|
176
162
|
/**
|
|
177
163
|
* 获取监听配置
|
|
178
164
|
* @param eventKey 事件key
|
|
179
165
|
* @returns 监听配置
|
|
180
166
|
*/
|
|
181
167
|
getListenerConfig(eventKey) {
|
|
182
|
-
|
|
183
|
-
return (_a = this.listenerConfig) == null ? void 0 : _a.get(eventKey);
|
|
168
|
+
return this.listenerConfig?.get(eventKey);
|
|
184
169
|
}
|
|
170
|
+
|
|
185
171
|
/**
|
|
186
172
|
* 扫码任务执行函数
|
|
187
173
|
* @param args 参数
|
|
188
174
|
*/
|
|
189
175
|
async scanTaskAction(...args) {
|
|
190
176
|
const [eventKey, other] = args;
|
|
191
|
-
const {
|
|
192
|
-
|
|
193
|
-
|
|
177
|
+
const {
|
|
178
|
+
type,
|
|
179
|
+
value,
|
|
180
|
+
data
|
|
181
|
+
} = other?.scanResult || {};
|
|
182
|
+
const taskItemUuid = other?.uuid;
|
|
183
|
+
const {
|
|
184
|
+
scanCallback,
|
|
185
|
+
task
|
|
186
|
+
} = this.getListenerConfig(eventKey) || {};
|
|
194
187
|
if (scanCallback) {
|
|
195
188
|
try {
|
|
196
|
-
const result = await scanCallback({
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
189
|
+
const result = await scanCallback({
|
|
190
|
+
type,
|
|
191
|
+
value
|
|
192
|
+
});
|
|
193
|
+
// 如果任务存在,则发布结果
|
|
194
|
+
if (taskItemUuid && task?.isTaskExist(taskItemUuid)) {
|
|
195
|
+
_watch.default.publishByEventKey(this.watchKey, eventKey, {
|
|
200
196
|
type: eventKey,
|
|
201
|
-
status:
|
|
197
|
+
status: 'success',
|
|
202
198
|
scanType: type,
|
|
203
199
|
scanCode: value,
|
|
204
200
|
scanData: data,
|
|
@@ -208,11 +204,11 @@ var _Scan = class {
|
|
|
208
204
|
console.warn(`${eventKey}_result_task_not_exist>>>>>>>`, task);
|
|
209
205
|
}
|
|
210
206
|
} catch (error) {
|
|
211
|
-
|
|
212
|
-
if (taskItemUuid &&
|
|
213
|
-
|
|
207
|
+
// 如果任务存在,则发布结果
|
|
208
|
+
if (taskItemUuid && task?.isTaskExist(taskItemUuid)) {
|
|
209
|
+
_watch.default.publishByEventKey(this.watchKey, eventKey, {
|
|
214
210
|
type: eventKey,
|
|
215
|
-
status:
|
|
211
|
+
status: 'failed',
|
|
216
212
|
scanType: type,
|
|
217
213
|
scanCode: value,
|
|
218
214
|
scanData: data
|
|
@@ -223,7 +219,5 @@ var _Scan = class {
|
|
|
223
219
|
}
|
|
224
220
|
}
|
|
225
221
|
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
Scan.scanInstances = /* @__PURE__ */ new Set();
|
|
229
|
-
Scan.peripheralsListenerMounted = false;
|
|
222
|
+
}
|
|
223
|
+
exports.default = Scan;
|