@delicity/client-cart 1.2.12 → 1.2.14

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 (54) hide show
  1. package/classes/Cart.d.ts +129 -0
  2. package/classes/Cart.d.ts.map +1 -0
  3. package/classes/Cart.js +482 -0
  4. package/classes/Cart.js.map +1 -0
  5. package/index.d.ts +4 -0
  6. package/index.d.ts.map +1 -0
  7. package/index.js +20 -0
  8. package/index.js.map +1 -0
  9. package/package.json +1 -1
  10. package/service/CartService.d.ts +14 -0
  11. package/service/CartService.d.ts.map +1 -0
  12. package/service/CartService.js +130 -0
  13. package/service/CartService.js.map +1 -0
  14. package/service/CategoryAvailabilityService.d.ts +23 -0
  15. package/service/CategoryAvailabilityService.d.ts.map +1 -0
  16. package/service/CategoryAvailabilityService.js +103 -0
  17. package/service/CategoryAvailabilityService.js.map +1 -0
  18. package/service/DeliveryService.d.ts +4 -0
  19. package/service/DeliveryService.d.ts.map +1 -0
  20. package/service/DeliveryService.js +30 -0
  21. package/service/DeliveryService.js.map +1 -0
  22. package/service/HelperService.d.ts +2 -0
  23. package/service/HelperService.d.ts.map +1 -0
  24. package/service/HelperService.js +14 -0
  25. package/service/HelperService.js.map +1 -0
  26. package/README.md +0 -1
  27. package/coverage/clover.xml +0 -71
  28. package/coverage/coverage-final.json +0 -3
  29. package/coverage/lcov-report/base.css +0 -224
  30. package/coverage/lcov-report/block-navigation.js +0 -87
  31. package/coverage/lcov-report/classes/Cart.ts.html +0 -340
  32. package/coverage/lcov-report/classes/index.html +0 -116
  33. package/coverage/lcov-report/favicon.png +0 -0
  34. package/coverage/lcov-report/index.html +0 -131
  35. package/coverage/lcov-report/prettify.css +0 -1
  36. package/coverage/lcov-report/prettify.js +0 -2
  37. package/coverage/lcov-report/service/CartService.ts.html +0 -238
  38. package/coverage/lcov-report/service/index.html +0 -116
  39. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  40. package/coverage/lcov-report/sorter.js +0 -196
  41. package/coverage/lcov.info +0 -129
  42. package/jest.config.js +0 -8
  43. package/src/classes/Cart.ts +0 -563
  44. package/src/index.ts +0 -3
  45. package/src/service/CartService.ts +0 -139
  46. package/src/service/CategoryAvailabilityService.ts +0 -121
  47. package/src/service/DeliveryService.ts +0 -17
  48. package/src/service/HelperService.ts +0 -9
  49. package/src/test/availability.test.ts +0 -346
  50. package/src/test/class.test.ts +0 -497
  51. package/src/test/data/CartData.json +0 -244
  52. package/src/test/data/menu.json +0 -5875
  53. package/src/test/data/merchant.json +0 -186
  54. package/tsconfig.json +0 -24
package/index.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./classes/Cart"), exports);
18
+ __exportStar(require("./service/CartService"), exports);
19
+ __exportStar(require("./service/CategoryAvailabilityService"), exports);
20
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
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.2.12",
3
+ "version": "1.2.14",
4
4
  "description": "Cart Client Package",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -0,0 +1,14 @@
1
+ import { ICart, ICartItem, ICartModifierGroup, IClientConfig, Menu, MenuItem, OrderModesEnum } from "@delicity/client-types";
2
+ export declare function getProductPriceSum(cart: ICart): number;
3
+ export declare function getProductCount(cart: ICart): number;
4
+ export declare function getItemModifierValue(item: ICartItem): string;
5
+ export declare function getItemModifierValueArray(item: ICartItem): string[];
6
+ export declare function mandatoryModifierCheck(item: MenuItem, cartModifier: ICartModifierGroup[], menu: Menu): boolean;
7
+ export declare function isItemAvailable(item: MenuItem, menu: Menu): boolean;
8
+ export declare function getProductPrice(item: MenuItem, mode: OrderModesEnum): number;
9
+ export declare function getTotalModifiersUnitPrice(modifierGroup: ICartModifierGroup[]): number;
10
+ export declare function isItemAlreadyInCart(item: MenuItem, modifierGroups: ICartModifierGroup[], cart: ICart, comment?: string): number;
11
+ export declare function synchronizeCart(config: IClientConfig, cart: ICart): Promise<unknown>;
12
+ export declare function addDiscountCode(config: IClientConfig, cart: ICart, code: string): Promise<unknown>;
13
+ export declare function removeDiscountCode(config: IClientConfig, cart: ICart, discountId: number): Promise<unknown>;
14
+ //# sourceMappingURL=CartService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartService.d.ts","sourceRoot":"","sources":["../../src/service/CartService.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,cAAc,EACjB,MAAM,wBAAwB,CAAC;AAGhC,wBAAgB,kBAAkB,CAAC,IAAI,EAAC,KAAK,GAAG,MAAM,CAErD;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAC,KAAK,GAAG,MAAM,CAElD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAC,SAAS,GAAG,MAAM,CAE3D;AACD,wBAAgB,yBAAyB,CAAC,IAAI,EAAC,SAAS,GAAG,MAAM,EAAE,CAMlE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAgB9G;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,WAIzD;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAC,QAAQ,EAAE,IAAI,EAAC,cAAc,GAAG,MAAM,CAiB1E;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAC,kBAAkB,EAAE,GAAG,MAAM,CAErF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAC,QAAQ,EAAE,cAAc,EAAC,kBAAkB,EAAE,EAAE,IAAI,EAAC,KAAK,EAAE,OAAO,CAAC,EAAC,MAAM,GAAG,MAAM,CAoB3H;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAC,aAAa,EAAE,IAAI,EAAE,KAAK,oBAUhE;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAC,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,oBAU9E;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,EAAC,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAUvF"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeDiscountCode = exports.addDiscountCode = exports.synchronizeCart = exports.isItemAlreadyInCart = exports.getTotalModifiersUnitPrice = exports.getProductPrice = exports.isItemAvailable = exports.mandatoryModifierCheck = exports.getItemModifierValueArray = exports.getItemModifierValue = exports.getProductCount = exports.getProductPriceSum = void 0;
4
+ function getProductPriceSum(cart) {
5
+ return cart.items.reduce((acc, item) => acc + item.totalPrice, 0);
6
+ }
7
+ exports.getProductPriceSum = getProductPriceSum;
8
+ function getProductCount(cart) {
9
+ return cart.items.reduce((acc, item) => acc + item.quantity, 0);
10
+ }
11
+ exports.getProductCount = getProductCount;
12
+ function getItemModifierValue(item) {
13
+ return getItemModifierValueArray(item).join(', ');
14
+ }
15
+ exports.getItemModifierValue = getItemModifierValue;
16
+ function getItemModifierValueArray(item) {
17
+ return item.modifierGroups
18
+ .filter(mg => mg.modifiers.length > 0)
19
+ .map(mg => {
20
+ return mg.item.name + ': ' + mg.modifiers.map(m => m.item.name).join(', ');
21
+ });
22
+ }
23
+ exports.getItemModifierValueArray = getItemModifierValueArray;
24
+ function mandatoryModifierCheck(item, cartModifier, menu) {
25
+ if (!item.children)
26
+ return true;
27
+ // get all mandatory modifiers in this item.
28
+ const modifierGroups = menu.modifierGroups.filter((m) => { var _a; return ((_a = item.children) === null || _a === void 0 ? void 0 : _a.includes(m.uid)) && m.min > 0 && m.min; });
29
+ for (let modifier of modifierGroups) {
30
+ const m = cartModifier.find((m) => m.item.uid === modifier.uid);
31
+ if (!m)
32
+ return false;
33
+ if (modifier.min === null)
34
+ continue;
35
+ const selectedOption = m.modifiers.reduce((acc, m) => acc + m.quantity, 0);
36
+ if (selectedOption < modifier.min)
37
+ return false;
38
+ }
39
+ return true;
40
+ }
41
+ exports.mandatoryModifierCheck = mandatoryModifierCheck;
42
+ function isItemAvailable(item, menu) {
43
+ const menuItem = menu.items.find((i) => i.uid === item.uid);
44
+ if (!menuItem)
45
+ return false;
46
+ return !menuItem.unavailable;
47
+ }
48
+ exports.isItemAvailable = isItemAvailable;
49
+ function getProductPrice(item, mode) {
50
+ if (!item.price) {
51
+ throw new Error('price_not_set');
52
+ }
53
+ if (typeof item.price === 'number') {
54
+ return item.price;
55
+ }
56
+ if (mode === 'delivery') {
57
+ return item.price.delivery;
58
+ }
59
+ else if (mode === 'pickup') {
60
+ return item.price.pickup;
61
+ }
62
+ else if (mode === 'on_site_counter') {
63
+ return item.price.onsite;
64
+ }
65
+ return item.price.delivery;
66
+ }
67
+ exports.getProductPrice = getProductPrice;
68
+ function getTotalModifiersUnitPrice(modifierGroup) {
69
+ return modifierGroup.reduce((acc, mg) => acc + mg.modifiers.reduce((bcc, m) => bcc + m.price, 0), 0);
70
+ }
71
+ exports.getTotalModifiersUnitPrice = getTotalModifiersUnitPrice;
72
+ function isItemAlreadyInCart(item, modifierGroups, cart, comment) {
73
+ // Check if item is already in cart
74
+ const sameCartProducts = cart.items
75
+ .filter((i) => i.item.uid === item.uid)
76
+ .filter((i) => i.comment === (comment || null))
77
+ .filter((c) => {
78
+ if (c.modifierGroups.length !== modifierGroups.length)
79
+ return false;
80
+ const newItemModifierGroupsKey = modifierGroups.flatMap((m) => {
81
+ return m.modifiers.map((o) => { return { id: o.item.id, quantity: o.quantity }; });
82
+ }).sort((a, b) => a.id - b.id).map((m) => m.id + ':' + m.quantity).join('|');
83
+ const CartItemModifierGroupsKey = c.modifierGroups.flatMap((m) => {
84
+ return m.modifiers.map((o) => { return { id: o.item.id, quantity: o.quantity }; });
85
+ }).sort((a, b) => a.id - b.id).map((m) => m.id + ':' + m.quantity).join('|');
86
+ return newItemModifierGroupsKey === CartItemModifierGroupsKey;
87
+ });
88
+ // If not existing in cart, return -1
89
+ if (sameCartProducts.length === 0)
90
+ return -1;
91
+ return cart.items.findIndex((c) => c.uuid === sameCartProducts[0].uuid);
92
+ }
93
+ exports.isItemAlreadyInCart = isItemAlreadyInCart;
94
+ function synchronizeCart(config, cart) {
95
+ return new Promise(((resolve, reject) => {
96
+ config.axiosClient.post(config.apiUrl + '/v1/client/cart/' + cart.uuid, cart)
97
+ .then((response) => {
98
+ resolve(response.data);
99
+ })
100
+ .catch((error) => {
101
+ reject(error);
102
+ });
103
+ }));
104
+ }
105
+ exports.synchronizeCart = synchronizeCart;
106
+ function addDiscountCode(config, cart, code) {
107
+ return new Promise(((resolve, reject) => {
108
+ config.axiosClient.put(config.apiUrl + '/v1/client/cart/' + cart.uuid + "/coupon", { code })
109
+ .then((response) => {
110
+ resolve(response.data);
111
+ })
112
+ .catch((error) => {
113
+ reject(error);
114
+ });
115
+ }));
116
+ }
117
+ exports.addDiscountCode = addDiscountCode;
118
+ function removeDiscountCode(config, cart, discountId) {
119
+ return new Promise(((resolve, reject) => {
120
+ config.axiosClient.delete(config.apiUrl + '/v1/client/cart/' + cart.uuid + '/coupon/' + discountId)
121
+ .then((response) => {
122
+ resolve(response.data);
123
+ })
124
+ .catch((error) => {
125
+ reject(error);
126
+ });
127
+ }));
128
+ }
129
+ exports.removeDiscountCode = removeDiscountCode;
130
+ //# sourceMappingURL=CartService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartService.js","sourceRoot":"","sources":["../../src/service/CartService.ts"],"names":[],"mappings":"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"}
@@ -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":"AAAA,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAEzC,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AAGvE,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,CA+DvJ;AAGD,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA0BvJ"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getAvailabilityNextInterval = exports.categoryAvailable = void 0;
7
+ const luxon_1 = require("luxon");
8
+ //@ts-ignore
9
+ const backend_schedule_management_1 = __importDefault(require("@delicity/backend-schedule-management"));
10
+ const ScheduleMerger_1 = __importDefault(require("@delicity/backend-schedule-management/ScheduleMerger"));
11
+ function categoryAvailable(availability, atDate, merchantSchedule) {
12
+ const category = new backend_schedule_management_1.default(availability.slots);
13
+ const categorySchedule = (0, ScheduleMerger_1.default)(category, merchantSchedule);
14
+ // If merchant is open
15
+ if (availability.type === 'some_days') {
16
+ if (categorySchedule.isOpenAt(atDate)) {
17
+ return {
18
+ isAvailable: true,
19
+ willBeAvailableInTheFuture: true
20
+ };
21
+ }
22
+ }
23
+ else if (availability.type === 'some_shifts') {
24
+ if (categorySchedule.isOpenAt(atDate)) {
25
+ return {
26
+ isAvailable: true,
27
+ willBeAvailableInTheFuture: true
28
+ };
29
+ }
30
+ }
31
+ else if (availability.type === 'timetable') {
32
+ if (categorySchedule.isOpenAt(atDate)) {
33
+ return {
34
+ isAvailable: true,
35
+ willBeAvailableInTheFuture: true
36
+ };
37
+ }
38
+ }
39
+ // if category is open only at one date
40
+ else if (availability.type === 'one_date') {
41
+ // only this day ?
42
+ if (luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd').hasSame(atDate, 'day')) {
43
+ if (categorySchedule.isOpenAt(atDate)) {
44
+ return {
45
+ isAvailable: true,
46
+ willBeAvailableInTheFuture: false
47
+ };
48
+ }
49
+ }
50
+ }
51
+ else if (availability.type === 'between_two_date') {
52
+ const start = luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
53
+ const end = luxon_1.DateTime.fromFormat(availability.endDate, 'yyyy-LL-dd').endOf('day');
54
+ if (start.toSeconds() < atDate.toSeconds() && end.toSeconds() >= atDate.toSeconds()) {
55
+ if (categorySchedule.isOpenAt(atDate)) {
56
+ return {
57
+ isAvailable: true,
58
+ willBeAvailableInTheFuture: false
59
+ };
60
+ }
61
+ }
62
+ }
63
+ let willBeAvailableInTheFuture = true;
64
+ if (availability.type === 'between_two_date' || availability.type === 'one_date') {
65
+ willBeAvailableInTheFuture = luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd').toSeconds() > atDate.toSeconds();
66
+ }
67
+ return {
68
+ isAvailable: false,
69
+ willBeAvailableInTheFuture
70
+ };
71
+ }
72
+ exports.categoryAvailable = categoryAvailable;
73
+ function getAvailabilityNextInterval(availability, merchantSchedule, atDate) {
74
+ const category = new backend_schedule_management_1.default(availability.slots);
75
+ const categorySchedule = (0, ScheduleMerger_1.default)(category, merchantSchedule);
76
+ if (availability.type === 'some_days' || availability.type === 'some_shifts' || availability.type === 'timetable') {
77
+ const nextOpen = categorySchedule.getNextOpen(atDate);
78
+ if (nextOpen) {
79
+ const dateIntervals = categorySchedule.getNextOpeningHoursInterval(luxon_1.Interval.fromDateTimes(nextOpen.startOf('day'), nextOpen.endOf('day')));
80
+ if (dateIntervals.length === 0)
81
+ return null;
82
+ return dateIntervals[0];
83
+ }
84
+ }
85
+ else if (availability.type === 'one_date') {
86
+ const date = luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
87
+ const dateIntervals = categorySchedule.getNextOpeningHoursInterval(luxon_1.Interval.fromDateTimes(date.startOf('day'), date.endOf('day')));
88
+ if (dateIntervals.length === 0)
89
+ return null;
90
+ return dateIntervals[0];
91
+ }
92
+ else if (availability.type === 'between_two_date') {
93
+ const start = luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
94
+ const end = luxon_1.DateTime.fromFormat(availability.endDate, 'yyyy-LL-dd');
95
+ const dateIntervals = categorySchedule.getNextOpeningHoursInterval(luxon_1.Interval.fromDateTimes(start.startOf('day'), end.endOf('day')));
96
+ if (dateIntervals.length === 0)
97
+ return null;
98
+ return dateIntervals[0];
99
+ }
100
+ return null;
101
+ }
102
+ exports.getAvailabilityNextInterval = getAvailabilityNextInterval;
103
+ //# 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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"}
@@ -0,0 +1,4 @@
1
+ import { Point } from "geojson";
2
+ import { ICartDelivery, IClientConfig } from "@delicity/client-types";
3
+ export declare function getDeliveryDetails(config: IClientConfig, merchantId: number, position: Point): Promise<ICartDelivery>;
4
+ //# sourceMappingURL=DeliveryService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryService.d.ts","sourceRoot":"","sources":["../../src/service/DeliveryService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAEpE,wBAAsB,kBAAkB,CAAC,MAAM,EAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAE,OAAO,CAAC,aAAa,CAAC,CAazH"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getDeliveryDetails = void 0;
13
+ function getDeliveryDetails(config, merchantId, position) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ return new Promise(((resolve, reject) => {
16
+ config.axiosClient.post(config.apiUrl + '/v1/client/cart/delivery/infos', {
17
+ merchantId,
18
+ position
19
+ })
20
+ .then((response) => {
21
+ resolve(response.data);
22
+ })
23
+ .catch((error) => {
24
+ reject(error);
25
+ });
26
+ }));
27
+ });
28
+ }
29
+ exports.getDeliveryDetails = getDeliveryDetails;
30
+ //# sourceMappingURL=DeliveryService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryService.js","sourceRoot":"","sources":["../../src/service/DeliveryService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,SAAsB,kBAAkB,CAAC,MAAoB,EAAE,UAAkB,EAAE,QAAe;;QAC9F,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,gCAAgC,EAAE;gBACtE,UAAU;gBACV,QAAQ;aACX,CAAC;iBACG,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACf,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC,CAAC,CAAA;QACV,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;CAAA;AAbD,gDAaC"}
@@ -0,0 +1,2 @@
1
+ export declare function formatPrice(price: number | string | null): string;
2
+ //# sourceMappingURL=HelperService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelperService.d.ts","sourceRoot":"","sources":["../../src/service/HelperService.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,KAAK,EAAC,MAAM,GAAC,MAAM,GAAC,IAAI,UAQnD"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatPrice = void 0;
4
+ function formatPrice(price) {
5
+ if (typeof price == 'string') {
6
+ price = parseFloat(price);
7
+ }
8
+ if (!price && typeof price !== 'number') {
9
+ return '--,-- €';
10
+ }
11
+ return new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(price / 100);
12
+ }
13
+ exports.formatPrice = formatPrice;
14
+ //# sourceMappingURL=HelperService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelperService.js","sourceRoot":"","sources":["../../src/service/HelperService.ts"],"names":[],"mappings":";;;AAAA,SAAgB,WAAW,CAAC,KAAwB;IAChD,IAAG,OAAO,KAAK,IAAI,QAAQ,EAAC;QACxB,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;KAC7B;IACD,IAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAC;QACnC,OAAO,SAAS,CAAA;KACnB;IACD,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAC,GAAG,CAAC,CAAA;AACnG,CAAC;AARD,kCAQC"}
package/README.md DELETED
@@ -1 +0,0 @@
1
- # DelicityCart
@@ -1,71 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1695651364386" clover="3.2.0">
3
- <project timestamp="1695651364386" name="All files">
4
- <metrics statements="53" coveredstatements="41" conditionals="20" coveredconditionals="7" methods="19" coveredmethods="17" elements="92" coveredelements="65" complexity="0" loc="53" ncloc="53" packages="2" files="2" classes="2"/>
5
- <package name="classes">
6
- <metrics statements="25" coveredstatements="20" conditionals="2" coveredconditionals="0" methods="9" coveredmethods="7"/>
7
- <file name="Cart.ts" path="/var/www/packages 📦/DelicityCart/src/classes/Cart.ts">
8
- <metrics statements="25" coveredstatements="20" conditionals="2" coveredconditionals="0" methods="9" coveredmethods="7"/>
9
- <line num="2" count="1" type="stmt"/>
10
- <line num="3" count="1" type="stmt"/>
11
- <line num="21" count="1" type="stmt"/>
12
- <line num="27" count="1" type="stmt"/>
13
- <line num="28" count="1" type="stmt"/>
14
- <line num="29" count="1" type="stmt"/>
15
- <line num="40" count="1" type="cond" truecount="0" falsecount="1"/>
16
- <line num="41" count="0" type="stmt"/>
17
- <line num="44" count="1" type="cond" truecount="0" falsecount="1"/>
18
- <line num="45" count="0" type="stmt"/>
19
- <line num="47" count="1" type="stmt"/>
20
- <line num="55" count="1" type="stmt"/>
21
- <line num="56" count="1" type="stmt"/>
22
- <line num="57" count="1" type="stmt"/>
23
- <line num="58" count="1" type="stmt"/>
24
- <line num="62" count="1" type="stmt"/>
25
- <line num="63" count="1" type="stmt"/>
26
- <line num="64" count="1" type="stmt"/>
27
- <line num="65" count="1" type="stmt"/>
28
- <line num="69" count="0" type="stmt"/>
29
- <line num="70" count="0" type="stmt"/>
30
- <line num="74" count="0" type="stmt"/>
31
- <line num="77" count="3" type="stmt"/>
32
- <line num="80" count="2" type="stmt"/>
33
- <line num="83" count="2" type="stmt"/>
34
- </file>
35
- </package>
36
- <package name="service">
37
- <metrics statements="28" coveredstatements="21" conditionals="18" coveredconditionals="7" methods="10" coveredmethods="10"/>
38
- <file name="CartService.ts" path="/var/www/packages 📦/DelicityCart/src/service/CartService.ts">
39
- <metrics statements="28" coveredstatements="21" conditionals="18" coveredconditionals="7" methods="10" coveredmethods="10"/>
40
- <line num="3" count="1" type="stmt"/>
41
- <line num="4" count="2" type="stmt"/>
42
- <line num="6" count="1" type="stmt"/>
43
- <line num="7" count="2" type="stmt"/>
44
- <line num="11" count="1" type="stmt"/>
45
- <line num="12" count="1" type="cond" truecount="0" falsecount="1"/>
46
- <line num="15" count="33" type="cond" truecount="6" falsecount="1"/>
47
- <line num="17" count="1" type="stmt"/>
48
- <line num="18" count="1" type="stmt"/>
49
- <line num="19" count="1" type="cond" truecount="0" falsecount="1"/>
50
- <line num="20" count="1" type="cond" truecount="0" falsecount="1"/>
51
- <line num="22" count="1" type="stmt"/>
52
- <line num="23" count="1" type="cond" truecount="0" falsecount="1"/>
53
- <line num="26" count="1" type="stmt"/>
54
- <line num="29" count="1" type="stmt"/>
55
- <line num="30" count="1" type="stmt"/>
56
- <line num="34" count="1" type="stmt"/>
57
- <line num="35" count="2" type="cond" truecount="0" falsecount="1"/>
58
- <line num="36" count="0" type="stmt"/>
59
- <line num="38" count="2" type="cond" truecount="0" falsecount="1"/>
60
- <line num="39" count="0" type="stmt"/>
61
- <line num="41" count="2" type="cond" truecount="1" falsecount="1"/>
62
- <line num="42" count="2" type="stmt"/>
63
- <line num="44" count="0" type="cond" truecount="0" falsecount="2"/>
64
- <line num="45" count="0" type="stmt"/>
65
- <line num="47" count="0" type="cond" truecount="0" falsecount="1"/>
66
- <line num="48" count="0" type="stmt"/>
67
- <line num="50" count="0" type="stmt"/>
68
- </file>
69
- </package>
70
- </project>
71
- </coverage>
@@ -1,3 +0,0 @@
1
- {"/var/www/packages 📦/DelicityCart/src/classes/Cart.ts": {"path":"/var/www/packages 📦/DelicityCart/src/classes/Cart.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":36}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":null}},"2":{"start":{"line":27,"column":8},"end":{"line":27,"column":null}},"3":{"start":{"line":28,"column":8},"end":{"line":28,"column":null}},"4":{"start":{"line":29,"column":8},"end":{"line":35,"column":19}},"5":{"start":{"line":40,"column":8},"end":{"line":42,"column":null}},"6":{"start":{"line":41,"column":12},"end":{"line":41,"column":55}},"7":{"start":{"line":44,"column":8},"end":{"line":46,"column":null}},"8":{"start":{"line":45,"column":12},"end":{"line":45,"column":50}},"9":{"start":{"line":47,"column":36},"end":{"line":54,"column":null}},"10":{"start":{"line":55,"column":8},"end":{"line":55,"column":39}},"11":{"start":{"line":56,"column":8},"end":{"line":56,"column":58}},"12":{"start":{"line":57,"column":8},"end":{"line":57,"column":65}},"13":{"start":{"line":58,"column":8},"end":{"line":58,"column":20}},"14":{"start":{"line":62,"column":8},"end":{"line":62,"column":88}},"15":{"start":{"line":62,"column":59},"end":{"line":62,"column":86}},"16":{"start":{"line":63,"column":8},"end":{"line":63,"column":58}},"17":{"start":{"line":64,"column":8},"end":{"line":64,"column":65}},"18":{"start":{"line":65,"column":8},"end":{"line":65,"column":20}},"19":{"start":{"line":69,"column":8},"end":{"line":69,"column":38}},"20":{"start":{"line":70,"column":8},"end":{"line":70,"column":70}},"21":{"start":{"line":74,"column":8},"end":{"line":74,"column":25}},"22":{"start":{"line":77,"column":8},"end":{"line":77,"column":31}},"23":{"start":{"line":80,"column":8},"end":{"line":80,"column":36}},"24":{"start":{"line":83,"column":8},"end":{"line":83,"column":40}},"25":{"start":{"line":21,"column":0},"end":{"line":21,"column":13}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":16}},"loc":{"start":{"line":26,"column":73},"end":{"line":36,"column":5}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":13}},"loc":{"start":{"line":38,"column":83},"end":{"line":59,"column":5}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":61,"column":4},"end":{"line":61,"column":18}},"loc":{"start":{"line":61,"column":38},"end":{"line":66,"column":5}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":62,"column":49},"end":{"line":62,"column":50}},"loc":{"start":{"line":62,"column":59},"end":{"line":62,"column":86}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":68,"column":4},"end":{"line":68,"column":14}},"loc":{"start":{"line":68,"column":88},"end":{"line":71,"column":5}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":73,"column":4},"end":{"line":73,"column":11}},"loc":{"start":{"line":73,"column":11},"end":{"line":75,"column":5}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":76,"column":4},"end":{"line":76,"column":12}},"loc":{"start":{"line":76,"column":12},"end":{"line":78,"column":5}}},"7":{"name":"(anonymous_7)","decl":{"start":{"line":79,"column":4},"end":{"line":79,"column":17}},"loc":{"start":{"line":79,"column":17},"end":{"line":81,"column":5}}},"8":{"name":"(anonymous_8)","decl":{"start":{"line":82,"column":4},"end":{"line":82,"column":21}},"loc":{"start":{"line":82,"column":21},"end":{"line":84,"column":5}}}},"branchMap":{"0":{"loc":{"start":{"line":40,"column":8},"end":{"line":42,"column":null}},"type":"if","locations":[{"start":{"line":40,"column":8},"end":{"line":42,"column":null}}]},"1":{"loc":{"start":{"line":44,"column":8},"end":{"line":46,"column":null}},"type":"if","locations":[{"start":{"line":44,"column":8},"end":{"line":46,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":0,"7":1,"8":0,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":0,"20":0,"21":0,"22":3,"23":2,"24":2,"25":1},"f":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":3,"7":2,"8":2},"b":{"0":[0],"1":[0]}}
2
- ,"/var/www/packages 📦/DelicityCart/src/service/CartService.ts": {"path":"/var/www/packages 📦/DelicityCart/src/service/CartService.ts","statementMap":{"0":{"start":{"line":4,"column":4},"end":{"line":4,"column":70}},"1":{"start":{"line":4,"column":44},"end":{"line":4,"column":65}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":16}},"3":{"start":{"line":7,"column":4},"end":{"line":7,"column":68}},"4":{"start":{"line":7,"column":44},"end":{"line":7,"column":63}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":16}},"6":{"start":{"line":12,"column":4},"end":{"line":12,"column":35}},"7":{"start":{"line":12,"column":23},"end":{"line":12,"column":35}},"8":{"start":{"line":15,"column":27},"end":{"line":15,"column":116}},"9":{"start":{"line":15,"column":65},"end":{"line":15,"column":116}},"10":{"start":{"line":17,"column":4},"end":{"line":24,"column":null}},"11":{"start":{"line":18,"column":18},"end":{"line":18,"column":75}},"12":{"start":{"line":18,"column":47},"end":{"line":18,"column":74}},"13":{"start":{"line":19,"column":8},"end":{"line":19,"column":28}},"14":{"start":{"line":19,"column":15},"end":{"line":19,"column":28}},"15":{"start":{"line":20,"column":8},"end":{"line":20,"column":43}},"16":{"start":{"line":20,"column":34},"end":{"line":20,"column":43}},"17":{"start":{"line":22,"column":31},"end":{"line":22,"column":90}},"18":{"start":{"line":22,"column":70},"end":{"line":22,"column":86}},"19":{"start":{"line":23,"column":8},"end":{"line":23,"column":55}},"20":{"start":{"line":23,"column":42},"end":{"line":23,"column":55}},"21":{"start":{"line":26,"column":4},"end":{"line":26,"column":16}},"22":{"start":{"line":11,"column":0},"end":{"line":11,"column":16}},"23":{"start":{"line":30,"column":4},"end":{"line":30,"column":37}},"24":{"start":{"line":29,"column":0},"end":{"line":29,"column":16}},"25":{"start":{"line":35,"column":4},"end":{"line":37,"column":null}},"26":{"start":{"line":36,"column":8},"end":{"line":36,"column":41}},"27":{"start":{"line":38,"column":4},"end":{"line":40,"column":null}},"28":{"start":{"line":39,"column":8},"end":{"line":39,"column":26}},"29":{"start":{"line":41,"column":4},"end":{"line":49,"column":null}},"30":{"start":{"line":42,"column":8},"end":{"line":42,"column":35}},"31":{"start":{"line":44,"column":9},"end":{"line":49,"column":null}},"32":{"start":{"line":45,"column":8},"end":{"line":45,"column":33}},"33":{"start":{"line":47,"column":9},"end":{"line":49,"column":null}},"34":{"start":{"line":48,"column":8},"end":{"line":48,"column":33}},"35":{"start":{"line":50,"column":4},"end":{"line":50,"column":31}},"36":{"start":{"line":34,"column":0},"end":{"line":34,"column":16}}},"fnMap":{"0":{"name":"getProductPriceSum","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":34}},"loc":{"start":{"line":3,"column":45},"end":{"line":5,"column":1}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":29},"end":{"line":4,"column":30}},"loc":{"start":{"line":4,"column":44},"end":{"line":4,"column":65}}},"2":{"name":"getProductCount","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":31}},"loc":{"start":{"line":6,"column":42},"end":{"line":8,"column":1}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":7,"column":29},"end":{"line":7,"column":30}},"loc":{"start":{"line":7,"column":44},"end":{"line":7,"column":63}}},"4":{"name":"mandatoryModifierCheck","decl":{"start":{"line":11,"column":16},"end":{"line":11,"column":38}},"loc":{"start":{"line":11,"column":101},"end":{"line":27,"column":1}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":15,"column":54},"end":{"line":15,"column":55}},"loc":{"start":{"line":15,"column":64},"end":{"line":15,"column":116}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":18,"column":36},"end":{"line":18,"column":37}},"loc":{"start":{"line":18,"column":47},"end":{"line":18,"column":74}}},"7":{"name":"(anonymous_7)","decl":{"start":{"line":22,"column":50},"end":{"line":22,"column":51}},"loc":{"start":{"line":22,"column":70},"end":{"line":22,"column":86}}},"8":{"name":"isItemAvailable","decl":{"start":{"line":29,"column":16},"end":{"line":29,"column":31}},"loc":{"start":{"line":29,"column":58},"end":{"line":31,"column":1}}},"9":{"name":"getProductPrice","decl":{"start":{"line":34,"column":16},"end":{"line":34,"column":31}},"loc":{"start":{"line":34,"column":66},"end":{"line":51,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":4},"end":{"line":12,"column":35}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":12,"column":35}}]},"1":{"loc":{"start":{"line":15,"column":65},"end":{"line":15,"column":115}},"type":"binary-expr","locations":[{"start":{"line":15,"column":65},"end":{"line":15,"column":95}},{"start":{"line":15,"column":99},"end":{"line":15,"column":106}},{"start":{"line":15,"column":110},"end":{"line":15,"column":115}}]},"2":{"loc":{"start":{"line":15,"column":65},"end":{"line":15,"column":95}},"type":"cond-expr","locations":[{"start":{"line":15,"column":78},"end":{"line":15,"column":80}},{"start":{"line":15,"column":78},"end":{"line":15,"column":95}}]},"3":{"loc":{"start":{"line":15,"column":65},"end":{"line":15,"column":80}},"type":"binary-expr","locations":[{"start":{"line":15,"column":65},"end":{"line":15,"column":80}},{"start":{"line":15,"column":78},"end":{"line":15,"column":80}}]},"4":{"loc":{"start":{"line":19,"column":8},"end":{"line":19,"column":28}},"type":"if","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":28}}]},"5":{"loc":{"start":{"line":20,"column":8},"end":{"line":20,"column":43}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":20,"column":43}}]},"6":{"loc":{"start":{"line":23,"column":8},"end":{"line":23,"column":55}},"type":"if","locations":[{"start":{"line":23,"column":8},"end":{"line":23,"column":55}}]},"7":{"loc":{"start":{"line":35,"column":4},"end":{"line":37,"column":null}},"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":37,"column":null}}]},"8":{"loc":{"start":{"line":38,"column":4},"end":{"line":40,"column":null}},"type":"if","locations":[{"start":{"line":38,"column":4},"end":{"line":40,"column":null}}]},"9":{"loc":{"start":{"line":41,"column":4},"end":{"line":49,"column":null}},"type":"if","locations":[{"start":{"line":41,"column":4},"end":{"line":49,"column":null}},{"start":{"line":44,"column":9},"end":{"line":49,"column":null}}]},"10":{"loc":{"start":{"line":44,"column":9},"end":{"line":49,"column":null}},"type":"if","locations":[{"start":{"line":44,"column":9},"end":{"line":49,"column":null}},{"start":{"line":47,"column":9},"end":{"line":49,"column":null}}]},"11":{"loc":{"start":{"line":47,"column":9},"end":{"line":49,"column":null}},"type":"if","locations":[{"start":{"line":47,"column":9},"end":{"line":49,"column":null}}]}},"s":{"0":2,"1":1,"2":1,"3":2,"4":1,"5":1,"6":1,"7":0,"8":1,"9":33,"10":1,"11":1,"12":1,"13":1,"14":0,"15":1,"16":0,"17":1,"18":1,"19":1,"20":0,"21":1,"22":1,"23":1,"24":1,"25":2,"26":0,"27":2,"28":0,"29":2,"30":2,"31":0,"32":0,"33":0,"34":0,"35":0,"36":1},"f":{"0":2,"1":1,"2":2,"3":1,"4":1,"5":33,"6":1,"7":1,"8":1,"9":2},"b":{"0":[0],"1":[33,1,1],"2":[0,33],"3":[33,33],"4":[0],"5":[0],"6":[0],"7":[0],"8":[0],"9":[2,0],"10":[0,0],"11":[0]}}
3
- }