@unchainedshop/core-warehousing 2.2.2 → 2.3.0

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.
@@ -21,10 +21,9 @@ export const WarehousingDirector = {
21
21
  ...unchainedAPI,
22
22
  };
23
23
  const adapter = Adapter.actions(warehousingProvider.configuration, context);
24
- const throughputTime = async () => {
24
+ const throughputTime = async (referenceDate) => {
25
25
  try {
26
26
  const { quantity } = context;
27
- const referenceDate = getReferenceDate(context);
28
27
  const stock = await adapter.stock(referenceDate);
29
28
  const notInStockQuantity = Math.max(quantity - stock, 0);
30
29
  const productionTime = await adapter.productionTime(notInStockQuantity);
@@ -33,7 +32,7 @@ export const WarehousingDirector = {
33
32
  }
34
33
  catch (error) {
35
34
  log(error.message, { level: LogLevel.Error, ...error });
36
- return 0;
35
+ return NaN;
37
36
  }
38
37
  };
39
38
  return {
@@ -72,14 +71,25 @@ export const WarehousingDirector = {
72
71
  try {
73
72
  const { deliveryProvider } = context;
74
73
  const referenceDate = getReferenceDate(context);
75
- const warehousingThroughputTime = await throughputTime();
74
+ const warehousingThroughputTime = await throughputTime(referenceDate);
75
+ if (!Number.isFinite(warehousingThroughputTime)) {
76
+ return {
77
+ shipping: null,
78
+ earliestDelivery: null,
79
+ };
80
+ }
81
+ // Calculate shipping date
82
+ const shippingTimestamp = referenceDate.getTime() + warehousingThroughputTime;
83
+ const shipping = new Date(shippingTimestamp);
84
+ // Calculate earliest delivery date
76
85
  const actions = await DeliveryDirector.actions(deliveryProvider, context, unchainedAPI);
77
86
  const deliveryThroughputTime = await actions.estimatedDeliveryThroughput(warehousingThroughputTime);
78
- const shippingTimestamp = referenceDate.getTime() + warehousingThroughputTime;
79
- const earliestDeliveryTimestamp = deliveryThroughputTime !== null ? shippingTimestamp + deliveryThroughputTime : null;
87
+ const earliestDelivery = Number.isFinite(deliveryThroughputTime)
88
+ ? new Date(shippingTimestamp + deliveryThroughputTime)
89
+ : null;
80
90
  return {
81
- shipping: shippingTimestamp && new Date(shippingTimestamp),
82
- earliestDelivery: earliestDeliveryTimestamp && new Date(earliestDeliveryTimestamp),
91
+ shipping,
92
+ earliestDelivery,
83
93
  };
84
94
  }
85
95
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"WarehousingDirector.js","sourceRoot":"","sources":["../../src/director/WarehousingDirector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WarehousingDirector.js","sourceRoot":"","sources":["../../src/director/WarehousingDirector.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ export var WarehousingError;
4
4
  WarehousingError["NOT_IMPLEMENTED"] = "NOT_IMPLEMENTED";
5
5
  WarehousingError["INCOMPLETE_CONFIGURATION"] = "INCOMPLETE_CONFIGURATION";
6
6
  WarehousingError["WRONG_CREDENTIALS"] = "WRONG_CREDENTIALS";
7
- })(WarehousingError = WarehousingError || (WarehousingError = {}));
7
+ })(WarehousingError || (WarehousingError = {}));
8
8
  //# sourceMappingURL=WarehousingError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WarehousingError.js","sourceRoot":"","sources":["../../src/director/WarehousingError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,2DAAuC,CAAA;IACvC,uDAAmC,CAAA;IACnC,yEAAqD,CAAA;IACrD,2DAAuC,CAAA;AACzC,CAAC,EALW,gBAAgB,GAAhB,gBAAgB,KAAhB,gBAAgB,QAK3B"}
1
+ {"version":3,"file":"WarehousingError.js","sourceRoot":"","sources":["../../src/director/WarehousingError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,2DAAuC,CAAA;IACvC,uDAAmC,CAAA;IACnC,yEAAqD,CAAA;IACrD,2DAAuC,CAAA;AACzC,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B"}
@@ -2,5 +2,5 @@ export var WarehousingProviderType;
2
2
  (function (WarehousingProviderType) {
3
3
  WarehousingProviderType["PHYSICAL"] = "PHYSICAL";
4
4
  WarehousingProviderType["VIRTUAL"] = "VIRTUAL";
5
- })(WarehousingProviderType = WarehousingProviderType || (WarehousingProviderType = {}));
5
+ })(WarehousingProviderType || (WarehousingProviderType = {}));
6
6
  //# sourceMappingURL=WarehousingProviderType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WarehousingProviderType.js","sourceRoot":"","sources":["../../src/director/WarehousingProviderType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;AACrB,CAAC,EAHW,uBAAuB,GAAvB,uBAAuB,KAAvB,uBAAuB,QAGlC"}
1
+ {"version":3,"file":"WarehousingProviderType.js","sourceRoot":"","sources":["../../src/director/WarehousingProviderType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;AACrB,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-warehousing",
3
- "version": "2.2.2",
3
+ "version": "2.3.0",
4
4
  "main": "lib/warehousing-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/warehousing-index.js",
@@ -31,17 +31,17 @@
31
31
  },
32
32
  "homepage": "https://github.com/unchainedshop/unchained#readme",
33
33
  "dependencies": {
34
- "@unchainedshop/events": "^2.2.2",
35
- "@unchainedshop/logger": "^2.2.2",
36
- "@unchainedshop/utils": "^2.2.2",
37
- "lru-cache": "^7.14.1",
34
+ "@unchainedshop/events": "^2.3.0",
35
+ "@unchainedshop/logger": "^2.3.0",
36
+ "@unchainedshop/utils": "^2.3.0",
37
+ "lru-cache": "^10.0.0",
38
38
  "simpl-schema": "=3.2.0"
39
39
  },
40
40
  "devDependencies": {
41
- "@types/node": "^18.16.16",
42
- "@unchainedshop/types": "^2.2.2",
43
- "jest": "^29.5.0",
44
- "ts-jest": "^29.1.0",
45
- "typescript": "^4.9.5"
41
+ "@types/node": "^18.16.19",
42
+ "@unchainedshop/types": "^2.3.0",
43
+ "jest": "^29.6.0",
44
+ "ts-jest": "^29.1.1",
45
+ "typescript": "^5.1.6"
46
46
  }
47
47
  }
@@ -32,10 +32,9 @@ export const WarehousingDirector: IWarehousingDirector = {
32
32
  };
33
33
  const adapter = Adapter.actions(warehousingProvider.configuration, context);
34
34
 
35
- const throughputTime = async () => {
35
+ const throughputTime = async (referenceDate) => {
36
36
  try {
37
37
  const { quantity } = context;
38
- const referenceDate = getReferenceDate(context);
39
38
  const stock = await adapter.stock(referenceDate);
40
39
  const notInStockQuantity = Math.max(quantity - stock, 0);
41
40
  const productionTime = await adapter.productionTime(notInStockQuantity);
@@ -43,7 +42,7 @@ export const WarehousingDirector: IWarehousingDirector = {
43
42
  return Math.max(commissioningTime + productionTime, 0);
44
43
  } catch (error) {
45
44
  log(error.message, { level: LogLevel.Error, ...error });
46
- return 0;
45
+ return NaN;
47
46
  }
48
47
  };
49
48
 
@@ -83,20 +82,31 @@ export const WarehousingDirector: IWarehousingDirector = {
83
82
  try {
84
83
  const { deliveryProvider } = context;
85
84
  const referenceDate = getReferenceDate(context);
86
- const warehousingThroughputTime = await throughputTime();
87
85
 
86
+ const warehousingThroughputTime = await throughputTime(referenceDate);
87
+ if (!Number.isFinite(warehousingThroughputTime)) {
88
+ return {
89
+ shipping: null,
90
+ earliestDelivery: null,
91
+ };
92
+ }
93
+
94
+ // Calculate shipping date
95
+ const shippingTimestamp = referenceDate.getTime() + warehousingThroughputTime;
96
+ const shipping = new Date(shippingTimestamp);
97
+
98
+ // Calculate earliest delivery date
88
99
  const actions = await DeliveryDirector.actions(deliveryProvider, context, unchainedAPI);
89
100
  const deliveryThroughputTime = await actions.estimatedDeliveryThroughput(
90
101
  warehousingThroughputTime,
91
102
  );
92
-
93
- const shippingTimestamp = referenceDate.getTime() + warehousingThroughputTime;
94
- const earliestDeliveryTimestamp =
95
- deliveryThroughputTime !== null ? shippingTimestamp + deliveryThroughputTime : null;
103
+ const earliestDelivery = Number.isFinite(deliveryThroughputTime)
104
+ ? new Date(shippingTimestamp + deliveryThroughputTime)
105
+ : null;
96
106
 
97
107
  return {
98
- shipping: shippingTimestamp && new Date(shippingTimestamp),
99
- earliestDelivery: earliestDeliveryTimestamp && new Date(earliestDeliveryTimestamp),
108
+ shipping,
109
+ earliestDelivery,
100
110
  };
101
111
  } catch (error) {
102
112
  log(error.message, { level: LogLevel.Error, ...error });