@pisell/pisellos 2.3.73 → 2.3.75
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.d.ts +7 -0
- package/dist/core/index.js +111 -71
- 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 +36 -64
- package/dist/modules/Payment/index.js +97 -162
- package/dist/modules/Quotation/index.d.ts +6 -0
- package/dist/modules/Quotation/index.js +75 -19
- 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.d.ts +1 -0
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.d.ts +8 -2
- package/dist/server/index.js +303 -269
- package/dist/server/modules/floor-plan/index.d.ts +4 -0
- package/dist/server/modules/floor-plan/index.js +240 -98
- package/dist/server/modules/menu/index.js +75 -59
- package/dist/server/modules/order/index.d.ts +17 -7
- package/dist/server/modules/order/index.js +421 -211
- package/dist/server/modules/products/index.d.ts +8 -2
- package/dist/server/modules/products/index.js +191 -117
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +24 -17
- package/dist/server/modules/schedule/index.js +27 -35
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BaseSales/index.js +38 -41
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- 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.d.ts +7 -0
- package/lib/core/index.js +149 -131
- 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 +1713 -2118
- package/lib/modules/Order/payment-utils.js +77 -120
- 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.d.ts +6 -0
- package/lib/modules/Quotation/index.js +110 -103
- 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.d.ts +1 -0
- 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.d.ts +8 -2
- package/lib/server/index.js +3083 -2663
- package/lib/server/modules/floor-plan/index.d.ts +4 -0
- package/lib/server/modules/floor-plan/index.js +159 -127
- 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 +170 -124
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.d.ts +17 -7
- package/lib/server/modules/order/index.js +916 -977
- 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.d.ts +8 -2
- package/lib/server/modules/products/index.js +656 -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 +225 -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 +1186 -1410
- package/lib/solution/BaseSales/types.js +42 -38
- package/lib/solution/BaseSales/utils/cartPromotion.js +642 -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.d.ts +1 -1
- 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,70 +1,52 @@
|
|
|
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(localClock_exports, {
|
|
22
|
-
addLocalCalendarDays: () => addLocalCalendarDays,
|
|
23
|
-
addLocalHours: () => addLocalHours,
|
|
24
|
-
addLocalMinutes: () => addLocalMinutes,
|
|
25
|
-
captureRuntimeOffsetMinutes: () => captureRuntimeOffsetMinutes,
|
|
26
|
-
ceilLocalScalarToTenMinutes: () => ceilLocalScalarToTenMinutes,
|
|
27
|
-
dateOrdinalFromLocalDate: () => dateOrdinalFromLocalDate,
|
|
28
|
-
extractFixedOffsetMinutes: () => extractFixedOffsetMinutes,
|
|
29
|
-
formatFixedOffset: () => formatFixedOffset,
|
|
30
|
-
formatLocalDate: () => formatLocalDate,
|
|
31
|
-
formatLocalDateTime: () => formatLocalDateTime,
|
|
32
|
-
formatLocalTime: () => formatLocalTime,
|
|
33
|
-
localDateTimeToScalar: () => localDateTimeToScalar,
|
|
34
|
-
localDateToScalar: () => localDateToScalar,
|
|
35
|
-
localDateToScalarStart: () => localDateToScalarStart,
|
|
36
|
-
nextDate: () => nextDate,
|
|
37
|
-
parseLocalDate: () => parseLocalDate,
|
|
38
|
-
parseLocalDateTime: () => parseLocalDateTime,
|
|
39
|
-
scalarToLocalDateParts: () => scalarToLocalDateParts,
|
|
40
|
-
scalarToLocalDateTimeParts: () => scalarToLocalDateTimeParts,
|
|
41
|
-
weekdayFromLocalDate: () => weekdayFromLocalDate
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
42
5
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
6
|
+
exports.addLocalCalendarDays = addLocalCalendarDays;
|
|
7
|
+
exports.addLocalHours = addLocalHours;
|
|
8
|
+
exports.addLocalMinutes = addLocalMinutes;
|
|
9
|
+
exports.captureRuntimeOffsetMinutes = captureRuntimeOffsetMinutes;
|
|
10
|
+
exports.ceilLocalScalarToTenMinutes = ceilLocalScalarToTenMinutes;
|
|
11
|
+
exports.dateOrdinalFromLocalDate = dateOrdinalFromLocalDate;
|
|
12
|
+
exports.extractFixedOffsetMinutes = extractFixedOffsetMinutes;
|
|
13
|
+
exports.formatFixedOffset = formatFixedOffset;
|
|
14
|
+
exports.formatLocalDate = formatLocalDate;
|
|
15
|
+
exports.formatLocalDateTime = formatLocalDateTime;
|
|
16
|
+
exports.formatLocalTime = formatLocalTime;
|
|
17
|
+
exports.localDateTimeToScalar = localDateTimeToScalar;
|
|
18
|
+
exports.localDateToScalar = localDateToScalar;
|
|
19
|
+
exports.localDateToScalarStart = localDateToScalarStart;
|
|
20
|
+
exports.nextDate = nextDate;
|
|
21
|
+
exports.parseLocalDate = parseLocalDate;
|
|
22
|
+
exports.parseLocalDateTime = parseLocalDateTime;
|
|
23
|
+
exports.scalarToLocalDateParts = scalarToLocalDateParts;
|
|
24
|
+
exports.scalarToLocalDateTimeParts = scalarToLocalDateTimeParts;
|
|
25
|
+
exports.weekdayFromLocalDate = weekdayFromLocalDate;
|
|
26
|
+
const MINUTE_MS = 60 * 1000;
|
|
27
|
+
const HOUR_MS = 60 * MINUTE_MS;
|
|
46
28
|
function pad(value, size = 2) {
|
|
47
|
-
return String(value).padStart(size,
|
|
29
|
+
return String(value).padStart(size, '0');
|
|
48
30
|
}
|
|
49
31
|
function isFiniteInteger(value) {
|
|
50
32
|
return Number.isInteger(value) && Number.isFinite(value);
|
|
51
33
|
}
|
|
52
34
|
function assertDateParts(parts) {
|
|
53
35
|
if (!isFiniteInteger(parts.year) || !isFiniteInteger(parts.month) || !isFiniteInteger(parts.day)) {
|
|
54
|
-
throw new Error(
|
|
36
|
+
throw new Error('Invalid local date parts');
|
|
55
37
|
}
|
|
56
38
|
const probe = new Date(Date.UTC(parts.year, parts.month - 1, parts.day));
|
|
57
39
|
if (probe.getUTCFullYear() !== parts.year || probe.getUTCMonth() !== parts.month - 1 || probe.getUTCDate() !== parts.day) {
|
|
58
|
-
throw new Error(
|
|
40
|
+
throw new Error('Invalid local date');
|
|
59
41
|
}
|
|
60
42
|
}
|
|
61
43
|
function assertTimeParts(parts) {
|
|
62
44
|
if (!isFiniteInteger(parts.hour) || !isFiniteInteger(parts.minute) || !isFiniteInteger(parts.second) || parts.hour < 0 || parts.hour > 23 || parts.minute < 0 || parts.minute > 59 || parts.second < 0 || parts.second > 59) {
|
|
63
|
-
throw new Error(
|
|
45
|
+
throw new Error('Invalid local time');
|
|
64
46
|
}
|
|
65
47
|
}
|
|
66
48
|
function localDateInputToParts(value) {
|
|
67
|
-
if (typeof value !==
|
|
49
|
+
if (typeof value !== 'string') {
|
|
68
50
|
assertDateParts(value);
|
|
69
51
|
return value;
|
|
70
52
|
}
|
|
@@ -72,7 +54,7 @@ function localDateInputToParts(value) {
|
|
|
72
54
|
}
|
|
73
55
|
function scalarToDate(value) {
|
|
74
56
|
if (!Number.isFinite(value)) {
|
|
75
|
-
throw new Error(
|
|
57
|
+
throw new Error('Invalid local scalar');
|
|
76
58
|
}
|
|
77
59
|
return new Date(value);
|
|
78
60
|
}
|
|
@@ -100,44 +82,37 @@ function parseLocalDateTime(value) {
|
|
|
100
82
|
day: Number(match[3]),
|
|
101
83
|
hour: Number(match[4]),
|
|
102
84
|
minute: Number(match[5]),
|
|
103
|
-
second: Number(match[6] ||
|
|
85
|
+
second: Number(match[6] || '0')
|
|
104
86
|
};
|
|
105
87
|
assertDateParts(parts);
|
|
106
88
|
assertTimeParts(parts);
|
|
107
89
|
return parts;
|
|
108
90
|
}
|
|
109
91
|
function extractFixedOffsetMinutes(value) {
|
|
110
|
-
if (!value)
|
|
111
|
-
return null;
|
|
92
|
+
if (!value) return null;
|
|
112
93
|
const trimmed = value.trim();
|
|
113
|
-
if (trimmed.toUpperCase() ===
|
|
114
|
-
return 0;
|
|
94
|
+
if (trimmed.toUpperCase() === 'Z') return 0;
|
|
115
95
|
const directMatch = /^([+-])(\d{2}):(\d{2})$/.exec(trimmed);
|
|
116
96
|
const suffixMatch = /([zZ]|[+-]\d{2}:\d{2})$/.exec(trimmed);
|
|
117
|
-
const target = directMatch ? trimmed : suffixMatch
|
|
118
|
-
if (!target)
|
|
119
|
-
|
|
120
|
-
if (target.toUpperCase() === "Z")
|
|
121
|
-
return 0;
|
|
97
|
+
const target = directMatch ? trimmed : suffixMatch?.[1];
|
|
98
|
+
if (!target) return null;
|
|
99
|
+
if (target.toUpperCase() === 'Z') return 0;
|
|
122
100
|
const match = /^([+-])(\d{2}):(\d{2})$/.exec(target);
|
|
123
|
-
if (!match)
|
|
124
|
-
return null;
|
|
101
|
+
if (!match) return null;
|
|
125
102
|
const minutes = Number(match[2]) * 60 + Number(match[3]);
|
|
126
|
-
return match[1] ===
|
|
103
|
+
return match[1] === '-' ? -minutes : minutes;
|
|
127
104
|
}
|
|
128
|
-
function captureRuntimeOffsetMinutes(value =
|
|
105
|
+
function captureRuntimeOffsetMinutes(value = new Date()) {
|
|
129
106
|
return -value.getTimezoneOffset();
|
|
130
107
|
}
|
|
131
108
|
function formatFixedOffset(offsetMinutes) {
|
|
132
|
-
if (offsetMinutes === null || offsetMinutes ===
|
|
133
|
-
return "";
|
|
109
|
+
if (offsetMinutes === null || offsetMinutes === undefined) return '';
|
|
134
110
|
if (!Number.isFinite(offsetMinutes)) {
|
|
135
|
-
throw new Error(
|
|
111
|
+
throw new Error('Invalid fixed offset');
|
|
136
112
|
}
|
|
137
113
|
const normalized = Math.trunc(offsetMinutes);
|
|
138
|
-
if (normalized === 0)
|
|
139
|
-
|
|
140
|
-
const sign = normalized >= 0 ? "+" : "-";
|
|
114
|
+
if (normalized === 0) return 'Z';
|
|
115
|
+
const sign = normalized >= 0 ? '+' : '-';
|
|
141
116
|
const absolute = Math.abs(normalized);
|
|
142
117
|
return `${sign}${pad(Math.floor(absolute / 60))}:${pad(absolute % 60)}`;
|
|
143
118
|
}
|
|
@@ -147,15 +122,7 @@ function localDateTimeToScalar(value) {
|
|
|
147
122
|
return Date.UTC(value.year, value.month - 1, value.day, value.hour, value.minute, value.second, 0);
|
|
148
123
|
}
|
|
149
124
|
function localDateToScalar(value) {
|
|
150
|
-
return Date.UTC(
|
|
151
|
-
value.getFullYear(),
|
|
152
|
-
value.getMonth(),
|
|
153
|
-
value.getDate(),
|
|
154
|
-
value.getHours(),
|
|
155
|
-
value.getMinutes(),
|
|
156
|
-
value.getSeconds(),
|
|
157
|
-
0
|
|
158
|
-
);
|
|
125
|
+
return Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), 0);
|
|
159
126
|
}
|
|
160
127
|
function localDateToScalarStart(value) {
|
|
161
128
|
const parts = localDateInputToParts(value);
|
|
@@ -189,11 +156,11 @@ function weekdayFromLocalDate(value) {
|
|
|
189
156
|
return new Date(Date.UTC(parts.year, parts.month - 1, parts.day)).getUTCDay();
|
|
190
157
|
}
|
|
191
158
|
function formatLocalDate(value) {
|
|
192
|
-
const parts = typeof value ===
|
|
159
|
+
const parts = typeof value === 'number' ? scalarToLocalDateParts(value) : localDateInputToParts(value);
|
|
193
160
|
return `${pad(parts.year, 4)}-${pad(parts.month)}-${pad(parts.day)}`;
|
|
194
161
|
}
|
|
195
162
|
function formatLocalTime(value, includeSeconds = true) {
|
|
196
|
-
const parts = typeof value ===
|
|
163
|
+
const parts = typeof value === 'number' ? scalarToLocalDateTimeParts(value) : typeof value === 'string' ? parseLocalDateTime(value) : value;
|
|
197
164
|
assertTimeParts(parts);
|
|
198
165
|
if (!includeSeconds) {
|
|
199
166
|
return `${pad(parts.hour)}:${pad(parts.minute)}`;
|
|
@@ -201,37 +168,29 @@ function formatLocalTime(value, includeSeconds = true) {
|
|
|
201
168
|
return `${pad(parts.hour)}:${pad(parts.minute)}:${pad(parts.second)}`;
|
|
202
169
|
}
|
|
203
170
|
function formatLocalDateTime(value, fixedOffsetMinutes) {
|
|
204
|
-
const parts = typeof value ===
|
|
171
|
+
const parts = typeof value === 'number' ? scalarToLocalDateTimeParts(value) : typeof value === 'string' ? parseLocalDateTime(value) : value;
|
|
205
172
|
assertDateParts(parts);
|
|
206
173
|
assertTimeParts(parts);
|
|
207
174
|
return `${formatLocalDate(parts)}T${formatLocalTime(parts)}${formatFixedOffset(fixedOffsetMinutes)}`;
|
|
208
175
|
}
|
|
209
176
|
function addLocalMinutes(value, minutes) {
|
|
210
177
|
if (!Number.isFinite(minutes)) {
|
|
211
|
-
throw new Error(
|
|
178
|
+
throw new Error('Invalid minute delta');
|
|
212
179
|
}
|
|
213
180
|
return value + Math.trunc(minutes) * MINUTE_MS;
|
|
214
181
|
}
|
|
215
182
|
function addLocalHours(value, hours) {
|
|
216
183
|
if (!Number.isFinite(hours)) {
|
|
217
|
-
throw new Error(
|
|
184
|
+
throw new Error('Invalid hour delta');
|
|
218
185
|
}
|
|
219
186
|
return value + Math.trunc(hours) * HOUR_MS;
|
|
220
187
|
}
|
|
221
188
|
function addLocalCalendarDays(value, days) {
|
|
222
189
|
if (!Number.isFinite(days)) {
|
|
223
|
-
throw new Error(
|
|
190
|
+
throw new Error('Invalid day delta');
|
|
224
191
|
}
|
|
225
192
|
const parts = scalarToLocalDateTimeParts(value);
|
|
226
|
-
return Date.UTC(
|
|
227
|
-
parts.year,
|
|
228
|
-
parts.month - 1,
|
|
229
|
-
parts.day + Math.trunc(days),
|
|
230
|
-
parts.hour,
|
|
231
|
-
parts.minute,
|
|
232
|
-
parts.second,
|
|
233
|
-
0
|
|
234
|
-
);
|
|
193
|
+
return Date.UTC(parts.year, parts.month - 1, parts.day + Math.trunc(days), parts.hour, parts.minute, parts.second, 0);
|
|
235
194
|
}
|
|
236
195
|
function nextDate(value) {
|
|
237
196
|
return formatLocalDate(addLocalCalendarDays(localDateToScalarStart(value), 1));
|
|
@@ -239,32 +198,8 @@ function nextDate(value) {
|
|
|
239
198
|
function ceilLocalScalarToTenMinutes(value) {
|
|
240
199
|
const parts = scalarToLocalDateTimeParts(value);
|
|
241
200
|
const minuteRemainder = parts.minute % 10;
|
|
242
|
-
if (minuteRemainder === 0 && parts.second === 0)
|
|
243
|
-
return value;
|
|
201
|
+
if (minuteRemainder === 0 && parts.second === 0) return value;
|
|
244
202
|
const deltaMinutes = parts.second === 0 ? 10 - minuteRemainder : minuteRemainder === 0 ? 10 : 10 - minuteRemainder;
|
|
245
203
|
const roundedBase = Date.UTC(parts.year, parts.month - 1, parts.day, parts.hour, parts.minute, 0, 0);
|
|
246
204
|
return addLocalMinutes(roundedBase, deltaMinutes);
|
|
247
|
-
}
|
|
248
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
249
|
-
0 && (module.exports = {
|
|
250
|
-
addLocalCalendarDays,
|
|
251
|
-
addLocalHours,
|
|
252
|
-
addLocalMinutes,
|
|
253
|
-
captureRuntimeOffsetMinutes,
|
|
254
|
-
ceilLocalScalarToTenMinutes,
|
|
255
|
-
dateOrdinalFromLocalDate,
|
|
256
|
-
extractFixedOffsetMinutes,
|
|
257
|
-
formatFixedOffset,
|
|
258
|
-
formatLocalDate,
|
|
259
|
-
formatLocalDateTime,
|
|
260
|
-
formatLocalTime,
|
|
261
|
-
localDateTimeToScalar,
|
|
262
|
-
localDateToScalar,
|
|
263
|
-
localDateToScalarStart,
|
|
264
|
-
nextDate,
|
|
265
|
-
parseLocalDate,
|
|
266
|
-
parseLocalDateTime,
|
|
267
|
-
scalarToLocalDateParts,
|
|
268
|
-
scalarToLocalDateTimeParts,
|
|
269
|
-
weekdayFromLocalDate
|
|
270
|
-
});
|
|
205
|
+
}
|