@delicity/client-cart 1.1.47 → 1.1.49
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/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +7 -2
- package/service/CategoryAvailabilityService.d.ts +23 -0
- package/service/CategoryAvailabilityService.d.ts.map +1 -0
- package/service/CategoryAvailabilityService.js +100 -0
- package/service/CategoryAvailabilityService.js.map +1 -0
package/index.d.ts
CHANGED
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,uCAAuC,CAAA"}
|
package/index.js
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./classes/Cart"), exports);
|
|
18
18
|
__exportStar(require("./service/CartService"), exports);
|
|
19
|
+
__exportStar(require("./service/CategoryAvailabilityService"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,wDAAqC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,wDAAqC;AACrC,wEAAqD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@delicity/client-cart",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.49",
|
|
4
4
|
"description": "Cart Client Package",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
"build": "npx tsc",
|
|
9
9
|
"pub": "npx tsc && cp package.json dist/package.json && cd dist/ && npm publish && cd ../ && rm -rf dist/"
|
|
10
10
|
},
|
|
11
|
+
"exports": {
|
|
12
|
+
".": "./index.js",
|
|
13
|
+
"./CategoryAvailabilityService": "./service/CategoryAvailabilityService.js"
|
|
14
|
+
},
|
|
11
15
|
"author": "",
|
|
12
16
|
"license": "ISC",
|
|
13
17
|
"devDependencies": {
|
|
@@ -19,7 +23,8 @@
|
|
|
19
23
|
"typescript": "^4.9.4"
|
|
20
24
|
},
|
|
21
25
|
"dependencies": {
|
|
22
|
-
"@delicity/
|
|
26
|
+
"@delicity/backend-schedule-management": "^1.0.21",
|
|
27
|
+
"@delicity/client-types": "^2.0.50",
|
|
23
28
|
"@types/geojson": "^7946.0.11",
|
|
24
29
|
"@types/luxon": "^3.3.2",
|
|
25
30
|
"axios": "^1.5.1",
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DateTime, Interval } from "luxon";
|
|
2
|
+
import ScheduleManagement from "@delicity/backend-schedule-management";
|
|
3
|
+
export interface CategoryAvailabilitySlot {
|
|
4
|
+
id: number;
|
|
5
|
+
day: number;
|
|
6
|
+
start: string;
|
|
7
|
+
end: string;
|
|
8
|
+
}
|
|
9
|
+
export interface CategoryAvailability {
|
|
10
|
+
type: 'some_days' | 'some_shifts' | 'timetable' | 'one_date' | 'between_two_date';
|
|
11
|
+
slots: CategoryAvailabilitySlot[];
|
|
12
|
+
startDate: string;
|
|
13
|
+
endDate: string;
|
|
14
|
+
weekNumber: number;
|
|
15
|
+
weekYear: number;
|
|
16
|
+
}
|
|
17
|
+
export interface CategoryAvailableResponse {
|
|
18
|
+
isAvailable: boolean;
|
|
19
|
+
willBeAvailableInTheFuture: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function categoryAvailable(availability: CategoryAvailability, atDate: DateTime, merchantSchedule: ScheduleManagement): CategoryAvailableResponse;
|
|
22
|
+
export declare function getAvailabilityNextInterval(availability: CategoryAvailability, merchantSchedule: ScheduleManagement, atDate: DateTime): Interval | null;
|
|
23
|
+
//# sourceMappingURL=CategoryAvailabilityService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryAvailabilityService.d.ts","sourceRoot":"","sources":["../../src/service/CategoryAvailabilityService.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACzC,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AAIvE,MAAM,WAAW,wBAAwB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,kBAAkB,CAAC;IAClF,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,0BAA0B,EAAE,OAAO,CAAC;CACvC;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,GAAG,yBAAyB,CA2DvJ;AAGD,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA0BvJ"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
// @todo maybe one day make a @delicity/client package for link @delicity/cart and the menue ?
|
|
4
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
|
+
};
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.getAvailabilityNextInterval = exports.categoryAvailable = void 0;
|
|
9
|
+
const luxon_1 = require("luxon");
|
|
10
|
+
const backend_schedule_management_1 = __importDefault(require("@delicity/backend-schedule-management"));
|
|
11
|
+
const ScheduleMerger_1 = __importDefault(require("@delicity/backend-schedule-management/ScheduleMerger"));
|
|
12
|
+
function categoryAvailable(availability, atDate, merchantSchedule) {
|
|
13
|
+
const category = new backend_schedule_management_1.default(availability.slots);
|
|
14
|
+
const categorySchedule = (0, ScheduleMerger_1.default)(category, merchantSchedule);
|
|
15
|
+
// If merchant is open
|
|
16
|
+
if (availability.type === 'some_days') {
|
|
17
|
+
if (categorySchedule.isOpenAt(atDate)) {
|
|
18
|
+
return {
|
|
19
|
+
isAvailable: true,
|
|
20
|
+
willBeAvailableInTheFuture: true
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else if (availability.type === 'some_shifts') {
|
|
25
|
+
if (categorySchedule.isOpenAt(atDate)) {
|
|
26
|
+
return {
|
|
27
|
+
isAvailable: true,
|
|
28
|
+
willBeAvailableInTheFuture: true
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else if (availability.type === 'timetable') {
|
|
33
|
+
if (categorySchedule.isOpenAt(atDate)) {
|
|
34
|
+
return {
|
|
35
|
+
isAvailable: true,
|
|
36
|
+
willBeAvailableInTheFuture: true
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// if category is open only at one date
|
|
41
|
+
else if (availability.type === 'one_date') {
|
|
42
|
+
// only this day ?
|
|
43
|
+
if (luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd').hasSame(atDate, 'day')) {
|
|
44
|
+
if (categorySchedule.isOpenAt(atDate)) {
|
|
45
|
+
return {
|
|
46
|
+
isAvailable: true,
|
|
47
|
+
willBeAvailableInTheFuture: false
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else if (availability.type === 'between_two_date') {
|
|
53
|
+
const start = luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
|
|
54
|
+
const end = luxon_1.DateTime.fromFormat(availability.endDate, 'yyyy-LL-dd').endOf('day');
|
|
55
|
+
if (start.toSeconds() < atDate.toSeconds() && end.toSeconds() >= atDate.toSeconds()) {
|
|
56
|
+
if (categorySchedule.isOpenAt(atDate)) {
|
|
57
|
+
return {
|
|
58
|
+
isAvailable: true,
|
|
59
|
+
willBeAvailableInTheFuture: false
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
isAvailable: false,
|
|
66
|
+
willBeAvailableInTheFuture: false
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
exports.categoryAvailable = categoryAvailable;
|
|
70
|
+
function getAvailabilityNextInterval(availability, merchantSchedule, atDate) {
|
|
71
|
+
const category = new backend_schedule_management_1.default(availability.slots);
|
|
72
|
+
const categorySchedule = (0, ScheduleMerger_1.default)(category, merchantSchedule);
|
|
73
|
+
if (availability.type === 'some_days' || availability.type === 'some_shifts' || availability.type === 'timetable') {
|
|
74
|
+
const nextOpen = categorySchedule.getNextOpen(atDate);
|
|
75
|
+
if (nextOpen) {
|
|
76
|
+
const dateIntervals = categorySchedule.getNextOpeningHoursInterval(luxon_1.Interval.fromDateTimes(nextOpen.startOf('day'), nextOpen.endOf('day')));
|
|
77
|
+
if (dateIntervals.length === 0)
|
|
78
|
+
return null;
|
|
79
|
+
return dateIntervals[0];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else if (availability.type === 'one_date') {
|
|
83
|
+
const date = luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
|
|
84
|
+
const dateIntervals = categorySchedule.getNextOpeningHoursInterval(luxon_1.Interval.fromDateTimes(date.startOf('day'), date.endOf('day')));
|
|
85
|
+
if (dateIntervals.length === 0)
|
|
86
|
+
return null;
|
|
87
|
+
return dateIntervals[0];
|
|
88
|
+
}
|
|
89
|
+
else if (availability.type === 'between_two_date') {
|
|
90
|
+
const start = luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
|
|
91
|
+
const end = luxon_1.DateTime.fromFormat(availability.endDate, 'yyyy-LL-dd');
|
|
92
|
+
const dateIntervals = categorySchedule.getNextOpeningHoursInterval(luxon_1.Interval.fromDateTimes(start.startOf('day'), end.endOf('day')));
|
|
93
|
+
if (dateIntervals.length === 0)
|
|
94
|
+
return null;
|
|
95
|
+
return dateIntervals[0];
|
|
96
|
+
}
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
exports.getAvailabilityNextInterval = getAvailabilityNextInterval;
|
|
100
|
+
//# sourceMappingURL=CategoryAvailabilityService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryAvailabilityService.js","sourceRoot":"","sources":["../../src/service/CategoryAvailabilityService.ts"],"names":[],"mappings":"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"}
|