@unchainedshop/api 4.2.2 → 4.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.
Files changed (42) hide show
  1. package/lib/resolvers/type/delivery-provider-interface.d.ts +18 -0
  2. package/lib/resolvers/type/delivery-provider-interface.d.ts.map +1 -0
  3. package/lib/resolvers/type/delivery-provider-interface.js +48 -0
  4. package/lib/resolvers/type/delivery-provider-interface.js.map +1 -0
  5. package/lib/resolvers/type/delivery-provider-pickup-types.d.ts +20 -0
  6. package/lib/resolvers/type/delivery-provider-pickup-types.d.ts.map +1 -0
  7. package/lib/resolvers/type/delivery-provider-pickup-types.js +10 -0
  8. package/lib/resolvers/type/delivery-provider-pickup-types.js.map +1 -0
  9. package/lib/resolvers/type/delivery-provider-shipping-types.d.ts +17 -0
  10. package/lib/resolvers/type/delivery-provider-shipping-types.d.ts.map +1 -0
  11. package/lib/resolvers/type/delivery-provider-shipping-types.js +5 -0
  12. package/lib/resolvers/type/delivery-provider-shipping-types.js.map +1 -0
  13. package/lib/resolvers/type/delivery-provider-types.d.ts +7 -11
  14. package/lib/resolvers/type/delivery-provider-types.d.ts.map +1 -1
  15. package/lib/resolvers/type/delivery-provider-types.js +17 -43
  16. package/lib/resolvers/type/delivery-provider-types.js.map +1 -1
  17. package/lib/resolvers/type/index.d.ts +39 -10
  18. package/lib/resolvers/type/index.d.ts.map +1 -1
  19. package/lib/resolvers/type/index.js +4 -0
  20. package/lib/resolvers/type/index.js.map +1 -1
  21. package/lib/resolvers/type/price-types.d.ts.map +1 -1
  22. package/lib/resolvers/type/price-types.js +19 -5
  23. package/lib/resolvers/type/price-types.js.map +1 -1
  24. package/lib/schema/types/delivery.d.ts.map +1 -1
  25. package/lib/schema/types/delivery.js +38 -1
  26. package/lib/schema/types/delivery.js.map +1 -1
  27. package/lib/schema/types/order/delivery.d.ts.map +1 -1
  28. package/lib/schema/types/order/delivery.js +3 -2
  29. package/lib/schema/types/order/delivery.js.map +1 -1
  30. package/lib/schema/types/order/pick-up-location.d.ts.map +1 -1
  31. package/lib/schema/types/order/pick-up-location.js +1 -2
  32. package/lib/schema/types/order/pick-up-location.js.map +1 -1
  33. package/package.json +8 -8
  34. package/src/resolvers/type/delivery-provider-interface.ts +55 -0
  35. package/src/resolvers/type/delivery-provider-pickup-types.ts +12 -0
  36. package/src/resolvers/type/delivery-provider-shipping-types.ts +5 -0
  37. package/src/resolvers/type/delivery-provider-types.ts +22 -68
  38. package/src/resolvers/type/index.ts +4 -0
  39. package/src/resolvers/type/price-types.ts +19 -5
  40. package/src/schema/types/delivery.ts +38 -1
  41. package/src/schema/types/order/delivery.ts +3 -2
  42. package/src/schema/types/order/pick-up-location.ts +1 -2
@@ -0,0 +1,18 @@
1
+ import { Context } from '../../context.js';
2
+ export declare const DeliveryProviderInterface: {
3
+ isActive(deliveryProvider: any, _: any, context: Context): Promise<boolean>;
4
+ configurationError(deliveryProvider: any, _: any, context: Context): Promise<import("@unchainedshop/core").DeliveryError | null>;
5
+ interface(deliveryProvider: any): {
6
+ _id: string;
7
+ label: string;
8
+ version: string;
9
+ } | null;
10
+ simulatedPrice(deliveryProvider: any, args: any, context: Context): Promise<{
11
+ amount: number;
12
+ currencyCode: string;
13
+ countryCode: string;
14
+ isTaxable: boolean;
15
+ isNetPrice: any;
16
+ } | null>;
17
+ };
18
+ //# sourceMappingURL=delivery-provider-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-provider-interface.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/delivery-provider-interface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,eAAO,MAAM,yBAAyB;qDACS,OAAO;+DAKG,OAAO;;;;;;8DAeR,OAAO;;;;;;;CA8B9D,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { DeliveryDirector, DeliveryPricingDirector } from '@unchainedshop/core';
2
+ export const DeliveryProviderInterface = {
3
+ async isActive(deliveryProvider, _, context) {
4
+ const director = await DeliveryDirector.actions(deliveryProvider, {}, context);
5
+ return Boolean(director.isActive());
6
+ },
7
+ async configurationError(deliveryProvider, _, context) {
8
+ const director = await DeliveryDirector.actions(deliveryProvider, {}, context);
9
+ return director.configurationError();
10
+ },
11
+ interface(deliveryProvider) {
12
+ const Adapter = DeliveryDirector.getAdapter(deliveryProvider.adapterKey);
13
+ if (!Adapter)
14
+ return null;
15
+ return {
16
+ _id: Adapter.key,
17
+ label: Adapter.label,
18
+ version: Adapter.version,
19
+ };
20
+ },
21
+ async simulatedPrice(deliveryProvider, args, context) {
22
+ const { loaders, countryCode, user } = context;
23
+ const { currencyCode: forcedCurrencyCode, orderId, useNetPrice, context: providerContext } = args;
24
+ const order = await loaders.orderLoader.load({ orderId });
25
+ const currencyCode = forcedCurrencyCode || order?.currencyCode || context.currencyCode;
26
+ const pricingContext = {
27
+ countryCode,
28
+ currencyCode,
29
+ provider: deliveryProvider,
30
+ order,
31
+ providerContext,
32
+ user: user,
33
+ };
34
+ const calculated = await DeliveryPricingDirector.rebuildCalculation(pricingContext, context);
35
+ if (!calculated?.length)
36
+ return null;
37
+ const pricing = DeliveryPricingDirector.calculationSheet(pricingContext, calculated);
38
+ const orderPrice = pricing.total({ useNetPrice });
39
+ return {
40
+ amount: orderPrice.amount,
41
+ currencyCode: orderPrice.currencyCode,
42
+ countryCode,
43
+ isTaxable: pricing.taxSum() > 0,
44
+ isNetPrice: useNetPrice,
45
+ };
46
+ },
47
+ };
48
+ //# sourceMappingURL=delivery-provider-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-provider-interface.js","sourceRoot":"","sources":["../../../src/resolvers/type/delivery-provider-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGhF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,EAAE,OAAgB;QAClD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/E,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,EAAE,OAAgB;QAC5D,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,gBAAgB;QACxB,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO;YACL,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAgB;QAC3D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAC/C,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QAElG,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,kBAAkB,IAAI,KAAK,EAAE,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;QAEvF,MAAM,cAAc,GAAG;YACrB,WAAW;YACX,YAAY;YACZ,QAAQ,EAAE,gBAAgB;YAC1B,KAAK;YACL,eAAe;YACf,IAAI,EAAE,IAAK;SACZ,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,kBAAkB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC7F,IAAI,CAAC,UAAU,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QAErC,MAAM,OAAO,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACrF,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAElD,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,WAAW;YACX,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;YAC/B,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Context } from '../../context.js';
2
+ import { DeliveryProvider } from '@unchainedshop/core-delivery';
3
+ export declare const DeliveryProviderPickUp: {
4
+ pickUpLocations(provider: DeliveryProvider, _: never, context: Context): Promise<import("@unchainedshop/core-delivery").DeliveryLocation[]>;
5
+ isActive(deliveryProvider: any, _: any, context: Context): Promise<boolean>;
6
+ configurationError(deliveryProvider: any, _: any, context: Context): Promise<import("@unchainedshop/core").DeliveryError | null>;
7
+ interface(deliveryProvider: any): {
8
+ _id: string;
9
+ label: string;
10
+ version: string;
11
+ } | null;
12
+ simulatedPrice(deliveryProvider: any, args: any, context: Context): Promise<{
13
+ amount: number;
14
+ currencyCode: string;
15
+ countryCode: string;
16
+ isTaxable: boolean;
17
+ isNetPrice: any;
18
+ } | null>;
19
+ };
20
+ //# sourceMappingURL=delivery-provider-pickup-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-provider-pickup-types.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/delivery-provider-pickup-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,eAAO,MAAM,sBAAsB;8BAED,gBAAgB,KAAK,KAAK,WAAW,OAAO;;;;;;;;;;;;;;;CAI7E,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { DeliveryDirector } from '@unchainedshop/core';
2
+ import { DeliveryProviderInterface } from './delivery-provider-interface.js';
3
+ export const DeliveryProviderPickUp = {
4
+ ...DeliveryProviderInterface,
5
+ async pickUpLocations(provider, _, context) {
6
+ const director = await DeliveryDirector.actions(provider, {}, context);
7
+ return director.pickUpLocations() || [];
8
+ },
9
+ };
10
+ //# sourceMappingURL=delivery-provider-pickup-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-provider-pickup-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/delivery-provider-pickup-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,GAAG,yBAAyB;IAC5B,KAAK,CAAC,eAAe,CAAC,QAA0B,EAAE,CAAQ,EAAE,OAAgB;QAC1E,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;CACF,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare const DeliveryProviderShipping: {
2
+ isActive(deliveryProvider: any, _: any, context: import("../../context.js").Context): Promise<boolean>;
3
+ configurationError(deliveryProvider: any, _: any, context: import("../../context.js").Context): Promise<import("@unchainedshop/core").DeliveryError | null>;
4
+ interface(deliveryProvider: any): {
5
+ _id: string;
6
+ label: string;
7
+ version: string;
8
+ } | null;
9
+ simulatedPrice(deliveryProvider: any, args: any, context: import("../../context.js").Context): Promise<{
10
+ amount: number;
11
+ currencyCode: string;
12
+ countryCode: string;
13
+ isTaxable: boolean;
14
+ isNetPrice: any;
15
+ } | null>;
16
+ };
17
+ //# sourceMappingURL=delivery-provider-shipping-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-provider-shipping-types.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/delivery-provider-shipping-types.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;CAEpC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { DeliveryProviderInterface } from './delivery-provider-interface.js';
2
+ export const DeliveryProviderShipping = {
3
+ ...DeliveryProviderInterface,
4
+ };
5
+ //# sourceMappingURL=delivery-provider-shipping-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-provider-shipping-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/delivery-provider-shipping-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,GAAG,yBAAyB;CAC7B,CAAC"}
@@ -1,24 +1,20 @@
1
1
  import { Context } from '../../context.js';
2
- import { DeliveryProvider as DeliveryProviderType } from '@unchainedshop/core-delivery';
2
+ import { DeliveryProvider as DeliveryProviderActual } from '@unchainedshop/core-delivery';
3
3
  export declare const DeliveryProvider: {
4
- interface(deliveryProvider: DeliveryProviderType): {
4
+ isActive(deliveryProvider: any, _: any, context: Context): Promise<boolean>;
5
+ configurationError(deliveryProvider: any, _: any, context: Context): Promise<import("@unchainedshop/core").DeliveryError | null>;
6
+ interface(deliveryProvider: any): {
5
7
  _id: string;
6
8
  label: string;
7
9
  version: string;
8
10
  } | null;
9
- isActive(deliveryProvider: DeliveryProviderType, _: never, requestContext: Context): Promise<boolean>;
10
- configurationError(deliveryProvider: DeliveryProviderType, _: never, requestContext: Context): Promise<import("@unchainedshop/core").DeliveryError | null>;
11
- simulatedPrice(deliveryProvider: DeliveryProviderType, { currencyCode: forcedCurrencyCode, orderId, useNetPrice, context: providerContext, }: {
12
- currencyCode?: string;
13
- orderId: string;
14
- useNetPrice?: boolean;
15
- context: any;
16
- }, requestContext: Context): Promise<{
11
+ simulatedPrice(deliveryProvider: any, args: any, context: Context): Promise<{
17
12
  amount: number;
18
13
  currencyCode: string;
19
14
  countryCode: string;
20
15
  isTaxable: boolean;
21
- isNetPrice: boolean | undefined;
16
+ isNetPrice: any;
22
17
  } | null>;
18
+ __resolveType: (obj: DeliveryProviderActual, { loaders }: Context) => Promise<string>;
23
19
  };
24
20
  //# sourceMappingURL=delivery-provider-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-provider-types.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/delivery-provider-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGxF,eAAO,MAAM,gBAAgB;gCACC,oBAAoB;;;;;+BAUf,oBAAoB,KAAK,KAAK,kBAAkB,OAAO;yCAK7C,oBAAoB,KAAK,KAAK,kBAAkB,OAAO;qCAM9E,oBAAoB,yFAMnC;QACD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC;KACd,kBACe,OAAO;;;;;;;CAkC1B,CAAC"}
1
+ {"version":3,"file":"delivery-provider-types.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/delivery-provider-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EACL,gBAAgB,IAAI,sBAAsB,EAE3C,MAAM,8BAA8B,CAAC;AAStC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;yBACA,sBAAsB,eAAe,OAAO;CAYxE,CAAC"}
@@ -1,47 +1,21 @@
1
- import { DeliveryDirector, DeliveryPricingDirector } from '@unchainedshop/core';
1
+ import { DeliveryProviderType, } from '@unchainedshop/core-delivery';
2
+ import { objectInvert } from '@unchainedshop/utils';
3
+ import { DeliveryProviderInterface } from './delivery-provider-interface.js';
4
+ const DeliveryProviderMap = {
5
+ DeliveryProviderShipping: DeliveryProviderType.SHIPPING,
6
+ DeliveryProviderPickUp: DeliveryProviderType.PICKUP,
7
+ };
2
8
  export const DeliveryProvider = {
3
- interface(deliveryProvider) {
4
- const Adapter = DeliveryDirector.getAdapter(deliveryProvider.adapterKey);
5
- if (!Adapter)
6
- return null;
7
- return {
8
- _id: Adapter.key,
9
- label: Adapter.label,
10
- version: Adapter.version,
11
- };
12
- },
13
- async isActive(deliveryProvider, _, requestContext) {
14
- const director = await DeliveryDirector.actions(deliveryProvider, {}, requestContext);
15
- return Boolean(director.isActive());
16
- },
17
- async configurationError(deliveryProvider, _, requestContext) {
18
- const director = await DeliveryDirector.actions(deliveryProvider, {}, requestContext);
19
- return director.configurationError();
20
- },
21
- async simulatedPrice(deliveryProvider, { currencyCode: forcedCurrencyCode, orderId, useNetPrice, context: providerContext, }, requestContext) {
22
- const { loaders, countryCode, user } = requestContext;
23
- const order = await loaders.orderLoader.load({ orderId });
24
- const currencyCode = forcedCurrencyCode || order?.currencyCode || requestContext.currencyCode;
25
- const pricingContext = {
26
- countryCode,
27
- currencyCode,
28
- provider: deliveryProvider,
29
- order,
30
- providerContext,
31
- user: user,
32
- };
33
- const calculated = await DeliveryPricingDirector.rebuildCalculation(pricingContext, requestContext);
34
- if (!calculated || !calculated.length)
35
- return null;
36
- const pricing = DeliveryPricingDirector.calculationSheet(pricingContext, calculated);
37
- const orderPrice = pricing.total({ useNetPrice });
38
- return {
39
- amount: orderPrice.amount,
40
- currencyCode: orderPrice.currencyCode,
41
- countryCode,
42
- isTaxable: pricing.taxSum() > 0,
43
- isNetPrice: useNetPrice,
44
- };
9
+ __resolveType: async (obj, { loaders }) => {
10
+ const provider = await loaders.deliveryProviderLoader.load({
11
+ deliveryProviderId: obj._id,
12
+ });
13
+ const invertedProductTypes = objectInvert(DeliveryProviderMap);
14
+ if (provider) {
15
+ return invertedProductTypes[provider.type];
16
+ }
17
+ return invertedProductTypes[DeliveryProviderType.SHIPPING];
45
18
  },
19
+ ...DeliveryProviderInterface,
46
20
  };
47
21
  //# sourceMappingURL=delivery-provider-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-provider-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/delivery-provider-types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEhF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS,CAAC,gBAAsC;QAC9C,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO;YACL,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,gBAAsC,EAAE,CAAQ,EAAE,cAAuB;QACtF,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QACtF,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,gBAAsC,EAAE,CAAQ,EAAE,cAAuB;QAChG,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QACtF,OAAO,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,gBAAsC,EACtC,EACE,YAAY,EAAE,kBAAkB,EAChC,OAAO,EACP,WAAW,EACX,OAAO,EAAE,eAAe,GAMzB,EACD,cAAuB;QAEvB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;QAEtD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,kBAAkB,IAAI,KAAK,EAAE,YAAY,IAAI,cAAc,CAAC,YAAY,CAAC;QAC9F,MAAM,cAAc,GAAG;YACrB,WAAW;YACX,YAAY;YACZ,QAAQ,EAAE,gBAAgB;YAC1B,KAAK;YACL,eAAe;YACf,IAAI,EAAE,IAAK;SACZ,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,kBAAkB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAEpG,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEnD,MAAM,OAAO,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAErF,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAG/C,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,WAAW;YACX,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;YAC/B,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"delivery-provider-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/delivery-provider-types.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,MAAM,mBAAmB,GAAG;IAC1B,wBAAwB,EAAE,oBAAoB,CAAC,QAAQ;IACvD,sBAAsB,EAAE,oBAAoB,CAAC,MAAM;CACpD,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,aAAa,EAAE,KAAK,EAAE,GAA2B,EAAE,EAAE,OAAO,EAAW,EAAE,EAAE;QACzE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC;YACzD,kBAAkB,EAAE,GAAG,CAAC,GAAG;SAC5B,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,oBAAoB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IACD,GAAG,yBAAyB;CAC7B,CAAC"}
@@ -167,24 +167,53 @@ declare const types: {
167
167
  decimals: (currency: any) => any;
168
168
  };
169
169
  DeliveryProvider: {
170
- interface(deliveryProvider: import("@unchainedshop/core-delivery").DeliveryProvider): {
170
+ isActive(deliveryProvider: any, _: any, context: import("../../context.js").Context): Promise<boolean>;
171
+ configurationError(deliveryProvider: any, _: any, context: import("../../context.js").Context): Promise<import("@unchainedshop/core").DeliveryError | null>;
172
+ interface(deliveryProvider: any): {
171
173
  _id: string;
172
174
  label: string;
173
175
  version: string;
174
176
  } | null;
175
- isActive(deliveryProvider: import("@unchainedshop/core-delivery").DeliveryProvider, _: never, requestContext: import("../../context.js").Context): Promise<boolean>;
176
- configurationError(deliveryProvider: import("@unchainedshop/core-delivery").DeliveryProvider, _: never, requestContext: import("../../context.js").Context): Promise<import("@unchainedshop/core").DeliveryError | null>;
177
- simulatedPrice(deliveryProvider: import("@unchainedshop/core-delivery").DeliveryProvider, { currencyCode: forcedCurrencyCode, orderId, useNetPrice, context: providerContext, }: {
178
- currencyCode?: string;
179
- orderId: string;
180
- useNetPrice?: boolean;
181
- context: any;
182
- }, requestContext: import("../../context.js").Context): Promise<{
177
+ simulatedPrice(deliveryProvider: any, args: any, context: import("../../context.js").Context): Promise<{
183
178
  amount: number;
184
179
  currencyCode: string;
185
180
  countryCode: string;
186
181
  isTaxable: boolean;
187
- isNetPrice: boolean | undefined;
182
+ isNetPrice: any;
183
+ } | null>;
184
+ __resolveType: (obj: import("@unchainedshop/core-delivery").DeliveryProvider, { loaders }: import("../../context.js").Context) => Promise<string>;
185
+ };
186
+ DeliveryProviderPickUp: {
187
+ pickUpLocations(provider: import("@unchainedshop/core-delivery").DeliveryProvider, _: never, context: import("../../context.js").Context): Promise<import("@unchainedshop/core-delivery").DeliveryLocation[]>;
188
+ isActive(deliveryProvider: any, _: any, context: import("../../context.js").Context): Promise<boolean>;
189
+ configurationError(deliveryProvider: any, _: any, context: import("../../context.js").Context): Promise<import("@unchainedshop/core").DeliveryError | null>;
190
+ interface(deliveryProvider: any): {
191
+ _id: string;
192
+ label: string;
193
+ version: string;
194
+ } | null;
195
+ simulatedPrice(deliveryProvider: any, args: any, context: import("../../context.js").Context): Promise<{
196
+ amount: number;
197
+ currencyCode: string;
198
+ countryCode: string;
199
+ isTaxable: boolean;
200
+ isNetPrice: any;
201
+ } | null>;
202
+ };
203
+ DeliveryProviderShipping: {
204
+ isActive(deliveryProvider: any, _: any, context: import("../../context.js").Context): Promise<boolean>;
205
+ configurationError(deliveryProvider: any, _: any, context: import("../../context.js").Context): Promise<import("@unchainedshop/core").DeliveryError | null>;
206
+ interface(deliveryProvider: any): {
207
+ _id: string;
208
+ label: string;
209
+ version: string;
210
+ } | null;
211
+ simulatedPrice(deliveryProvider: any, args: any, context: import("../../context.js").Context): Promise<{
212
+ amount: number;
213
+ currencyCode: string;
214
+ countryCode: string;
215
+ isTaxable: boolean;
216
+ isNetPrice: any;
188
217
  } | null>;
189
218
  };
190
219
  Dimensions: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/index.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,8 @@ import { Web3Address } from './web3-address.js';
67
67
  import { LoginMethodResponse } from './login-method-response-types.js';
68
68
  import { ProductSearchResult } from './product-search-result-types.js';
69
69
  import { OrderStatistics } from './order/order-statistics-types.js';
70
+ import { DeliveryProviderPickUp } from './delivery-provider-pickup-types.js';
71
+ import { DeliveryProviderShipping } from './delivery-provider-shipping-types.js';
70
72
  const types = {
71
73
  Assortment,
72
74
  AssortmentFilter,
@@ -80,6 +82,8 @@ const types = {
80
82
  Country,
81
83
  Currency,
82
84
  DeliveryProvider,
85
+ DeliveryProviderPickUp,
86
+ DeliveryProviderShipping,
83
87
  Dimensions,
84
88
  Enrollment,
85
89
  EnrollmentDelivery,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resolvers/type/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resolvers/type/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"price-types.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/price-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,KAAK;6BACS,SAAS;+BAGP,SAAS;sBAGlB,SAAS;gBAGf,SAAS;CAUtB,CAAC"}
1
+ {"version":3,"file":"price-types.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/price-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,KAAK;6BACS,SAAS;+BAGP,SAAS;sBAGlB,SAAS;gBAGf,SAAS;CAwBtB,CAAC"}
@@ -10,11 +10,25 @@ export const Price = {
10
10
  },
11
11
  amount(obj) {
12
12
  if (obj.amount) {
13
- return Number(obj.amount).toLocaleString(undefined, {
14
- minimumFractionDigits: 0,
15
- maximumFractionDigits: 0,
16
- useGrouping: false,
17
- });
13
+ /*
14
+ Why toFixed(0) Is Actually Reliable
15
+ For integer rounding specifically:
16
+
17
+ Half-values are exact: Numbers like 0.5, 1.5, 2.5 can be represented exactly in binary floating-point (they're powers of 2), so they round correctly.
18
+ Floating-point errors are tiny: Even with calculation errors, they're usually on the order of 0.0000000001, which won't affect rounding to the nearest integer.
19
+ Integer boundaries are far apart: Unlike toFixed(2) where the difference between 1.004 and 1.005 matters, for toFixed(0) you need errors approaching 0.5 to cause problems.
20
+
21
+ Theoretical Edge Cases
22
+ The only cases where toFixed(0) might fail would be:
23
+ javascript// Extremely contrived calculation that should equal exactly 0.5
24
+ // but might be 0.49999999999999994 (would round to 0 instead of 1)
25
+
26
+ // Very large numbers where precision is lost entirely
27
+ (9007199254740992.5).toFixed(0) // Might have issues past MAX_SAFE_INTEGER
28
+
29
+ // But in practice, these are incredibly rare
30
+ */
31
+ return Math.round(obj.amount).toFixed(0);
18
32
  }
19
33
  return 0;
20
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"price-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/price-types.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,SAAS,CAAC,EAAE,SAAS,EAAa;QAChC,OAAO,SAAS,IAAI,KAAK,CAAC;IAC5B,CAAC;IACD,UAAU,CAAC,EAAE,UAAU,EAAa;QAClC,OAAO,UAAU,IAAI,KAAK,CAAC;IAC7B,CAAC;IACD,YAAY,CAAC,GAAc;QACzB,OAAO,GAAG,EAAE,YAAY,CAAC;IAC3B,CAAC;IACD,MAAM,CAAC,GAAc;QACnB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE;gBAClD,qBAAqB,EAAE,CAAC;gBACxB,qBAAqB,EAAE,CAAC;gBACxB,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"price-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/price-types.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,SAAS,CAAC,EAAE,SAAS,EAAa;QAChC,OAAO,SAAS,IAAI,KAAK,CAAC;IAC5B,CAAC;IACD,UAAU,CAAC,EAAE,UAAU,EAAa;QAClC,OAAO,UAAU,IAAI,KAAK,CAAC;IAC7B,CAAC;IACD,YAAY,CAAC,GAAc;QACzB,OAAO,GAAG,EAAE,YAAY,CAAC;IAC3B,CAAC;IACD,MAAM,CAAC,GAAc;QACnB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf;;;;;;;;;;;;;;;;;cAiBE;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../src/schema/types/delivery.ts"],"names":[],"mappings":";AAAA,wBA6CE"}
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../src/schema/types/delivery.ts"],"names":[],"mappings":";AAAA,wBAkFE"}
@@ -25,7 +25,44 @@ export default [
25
25
  WRONG_CREDENTIALS
26
26
  }
27
27
 
28
- type DeliveryProvider @cacheControl(maxAge: 60) {
28
+ interface DeliveryProvider {
29
+ _id: ID!
30
+ created: DateTime
31
+ updated: DateTime
32
+ deleted: DateTime
33
+ type: DeliveryProviderType
34
+ interface: DeliveryInterface
35
+ configuration: JSON
36
+ configurationError: DeliveryProviderError
37
+ isActive: Boolean
38
+ simulatedPrice(
39
+ currencyCode: String
40
+ useNetPrice: Boolean = false
41
+ orderId: ID
42
+ context: JSON
43
+ ): Price @cacheControl(scope: PRIVATE, maxAge: 10)
44
+ }
45
+
46
+ type DeliveryProviderPickUp implements DeliveryProvider @cacheControl(maxAge: 60) {
47
+ _id: ID!
48
+ created: DateTime
49
+ updated: DateTime
50
+ deleted: DateTime
51
+ type: DeliveryProviderType
52
+ interface: DeliveryInterface
53
+ configuration: JSON
54
+ configurationError: DeliveryProviderError
55
+ isActive: Boolean
56
+ simulatedPrice(
57
+ currencyCode: String
58
+ useNetPrice: Boolean = false
59
+ orderId: ID
60
+ context: JSON
61
+ ): Price @cacheControl(scope: PRIVATE, maxAge: 10)
62
+ pickUpLocations: [PickUpLocation!]!
63
+ }
64
+
65
+ type DeliveryProviderShipping implements DeliveryProvider @cacheControl(maxAge: 60) {
29
66
  _id: ID!
30
67
  created: DateTime
31
68
  updated: DateTime
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/schema/types/delivery.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2Cb;CACF,CAAC"}
1
+ {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/schema/types/delivery.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFb;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/order/delivery.ts"],"names":[],"mappings":";AAAA,wBAiDE"}
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/order/delivery.ts"],"names":[],"mappings":";AAAA,wBAkDE"}
@@ -33,8 +33,9 @@ export default [
33
33
  delivered: DateTime
34
34
  fee: Price
35
35
  discounts: [OrderDeliveryDiscount!]
36
- pickUpLocations: [OrderPickUpLocation!]!
37
- activePickUpLocation: OrderPickUpLocation
36
+ pickUpLocations: [PickUpLocation!]!
37
+ @deprecated(reason: "Use DeliveryProvider.pickupLocations instead")
38
+ activePickUpLocation: PickUpLocation
38
39
  }
39
40
 
40
41
  type OrderDeliveryShipping implements OrderDelivery {
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../../src/schema/types/order/delivery.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+Cb;CACF,CAAC"}
1
+ {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../../src/schema/types/order/delivery.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDb;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pick-up-location.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/order/pick-up-location.ts"],"names":[],"mappings":";AAAA,wBAUE"}
1
+ {"version":3,"file":"pick-up-location.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/order/pick-up-location.ts"],"names":[],"mappings":";AAAA,wBASE"}
@@ -1,8 +1,7 @@
1
1
  export default [
2
2
  /* GraphQL */ `
3
- type OrderPickUpLocation {
3
+ type PickUpLocation {
4
4
  _id: ID!
5
- order: Order!
6
5
  name: String!
7
6
  address: Address
8
7
  geoPoint: GeoPosition
@@ -1 +1 @@
1
- {"version":3,"file":"pick-up-location.js","sourceRoot":"","sources":["../../../../src/schema/types/order/pick-up-location.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;GAQb;CACF,CAAC"}
1
+ {"version":3,"file":"pick-up-location.js","sourceRoot":"","sources":["../../../../src/schema/types/order/pick-up-location.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;GAOb;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/api",
3
- "version": "4.2.2",
3
+ "version": "4.3.0",
4
4
  "main": "lib/api-index.js",
5
5
  "types": "lib/api-index.d.ts",
6
6
  "type": "module",
@@ -64,7 +64,7 @@
64
64
  "@noble/curves": "^2.0.0",
65
65
  "@noble/hashes": "^2.0.0",
66
66
  "ai": ">= 5 < 6",
67
- "@ai-sdk/mcp": "^0.0.7",
67
+ "@ai-sdk/mcp": "^0.0.8",
68
68
  "connect-mongo": ">= 5.1 < 6",
69
69
  "express": ">= 5 < 6",
70
70
  "express-session": ">= 1.18 < 2",
@@ -124,11 +124,11 @@
124
124
  }
125
125
  },
126
126
  "dependencies": {
127
- "@unchainedshop/core": "^4.2.0",
128
- "@unchainedshop/events": "^4.2.0",
129
- "@unchainedshop/logger": "^4.2.0",
130
- "@unchainedshop/roles": "^4.2.0",
131
- "@unchainedshop/utils": "^4.2.0",
127
+ "@unchainedshop/core": "^4.3.0",
128
+ "@unchainedshop/events": "^4.3.0",
129
+ "@unchainedshop/logger": "^4.3.0",
130
+ "@unchainedshop/roles": "^4.3.0",
131
+ "@unchainedshop/utils": "^4.3.0",
132
132
  "dataloader": "^2.2.3",
133
133
  "expiry-map": "^2.0.0",
134
134
  "mime": ">= 4 < 5",
@@ -147,7 +147,7 @@
147
147
  "@noble/hashes": "^2.0.0",
148
148
  "@types/express": "^5.0.3",
149
149
  "@types/node": "^24.0.13",
150
- "@ai-sdk/mcp": "^0.0.7",
150
+ "@ai-sdk/mcp": "^0.0.8",
151
151
  "ai": "^5.0.80",
152
152
  "express": "^5.1.0",
153
153
  "express-session": "^1.18.1",
@@ -0,0 +1,55 @@
1
+ import { DeliveryDirector, DeliveryPricingDirector } from '@unchainedshop/core';
2
+ import { Context } from '../../context.js';
3
+
4
+ export const DeliveryProviderInterface = {
5
+ async isActive(deliveryProvider, _, context: Context) {
6
+ const director = await DeliveryDirector.actions(deliveryProvider, {}, context);
7
+ return Boolean(director.isActive());
8
+ },
9
+
10
+ async configurationError(deliveryProvider, _, context: Context) {
11
+ const director = await DeliveryDirector.actions(deliveryProvider, {}, context);
12
+ return director.configurationError();
13
+ },
14
+
15
+ interface(deliveryProvider) {
16
+ const Adapter = DeliveryDirector.getAdapter(deliveryProvider.adapterKey);
17
+ if (!Adapter) return null;
18
+ return {
19
+ _id: Adapter.key,
20
+ label: Adapter.label,
21
+ version: Adapter.version,
22
+ };
23
+ },
24
+
25
+ async simulatedPrice(deliveryProvider, args, context: Context) {
26
+ const { loaders, countryCode, user } = context;
27
+ const { currencyCode: forcedCurrencyCode, orderId, useNetPrice, context: providerContext } = args;
28
+
29
+ const order = await loaders.orderLoader.load({ orderId });
30
+ const currencyCode = forcedCurrencyCode || order?.currencyCode || context.currencyCode;
31
+
32
+ const pricingContext = {
33
+ countryCode,
34
+ currencyCode,
35
+ provider: deliveryProvider,
36
+ order,
37
+ providerContext,
38
+ user: user!,
39
+ };
40
+
41
+ const calculated = await DeliveryPricingDirector.rebuildCalculation(pricingContext, context);
42
+ if (!calculated?.length) return null;
43
+
44
+ const pricing = DeliveryPricingDirector.calculationSheet(pricingContext, calculated);
45
+ const orderPrice = pricing.total({ useNetPrice });
46
+
47
+ return {
48
+ amount: orderPrice.amount,
49
+ currencyCode: orderPrice.currencyCode,
50
+ countryCode,
51
+ isTaxable: pricing.taxSum() > 0,
52
+ isNetPrice: useNetPrice,
53
+ };
54
+ },
55
+ };
@@ -0,0 +1,12 @@
1
+ import { DeliveryDirector } from '@unchainedshop/core';
2
+ import { Context } from '../../context.js';
3
+ import { DeliveryProvider } from '@unchainedshop/core-delivery';
4
+ import { DeliveryProviderInterface } from './delivery-provider-interface.js';
5
+
6
+ export const DeliveryProviderPickUp = {
7
+ ...DeliveryProviderInterface,
8
+ async pickUpLocations(provider: DeliveryProvider, _: never, context: Context) {
9
+ const director = await DeliveryDirector.actions(provider, {}, context);
10
+ return director.pickUpLocations() || [];
11
+ },
12
+ };
@@ -0,0 +1,5 @@
1
+ import { DeliveryProviderInterface } from './delivery-provider-interface.js';
2
+
3
+ export const DeliveryProviderShipping = {
4
+ ...DeliveryProviderInterface,
5
+ };
@@ -1,73 +1,27 @@
1
1
  import { Context } from '../../context.js';
2
- import { DeliveryProvider as DeliveryProviderType } from '@unchainedshop/core-delivery';
3
- import { DeliveryDirector, DeliveryPricingDirector } from '@unchainedshop/core';
2
+ import {
3
+ DeliveryProvider as DeliveryProviderActual,
4
+ DeliveryProviderType,
5
+ } from '@unchainedshop/core-delivery';
6
+ import { objectInvert } from '@unchainedshop/utils';
7
+ import { DeliveryProviderInterface } from './delivery-provider-interface.js';
8
+
9
+ const DeliveryProviderMap = {
10
+ DeliveryProviderShipping: DeliveryProviderType.SHIPPING,
11
+ DeliveryProviderPickUp: DeliveryProviderType.PICKUP,
12
+ };
4
13
 
5
14
  export const DeliveryProvider = {
6
- interface(deliveryProvider: DeliveryProviderType) {
7
- const Adapter = DeliveryDirector.getAdapter(deliveryProvider.adapterKey);
8
- if (!Adapter) return null;
9
- return {
10
- _id: Adapter.key,
11
- label: Adapter.label,
12
- version: Adapter.version,
13
- };
14
- },
15
-
16
- async isActive(deliveryProvider: DeliveryProviderType, _: never, requestContext: Context) {
17
- const director = await DeliveryDirector.actions(deliveryProvider, {}, requestContext);
18
- return Boolean(director.isActive());
19
- },
20
-
21
- async configurationError(deliveryProvider: DeliveryProviderType, _: never, requestContext: Context) {
22
- const director = await DeliveryDirector.actions(deliveryProvider, {}, requestContext);
23
- return director.configurationError();
24
- },
25
-
26
- async simulatedPrice(
27
- deliveryProvider: DeliveryProviderType,
28
- {
29
- currencyCode: forcedCurrencyCode,
30
- orderId,
31
- useNetPrice,
32
- context: providerContext,
33
- }: {
34
- currencyCode?: string;
35
- orderId: string;
36
- useNetPrice?: boolean;
37
- context: any;
38
- },
39
- requestContext: Context,
40
- ) {
41
- const { loaders, countryCode, user } = requestContext;
42
-
43
- const order = await loaders.orderLoader.load({ orderId });
44
- const currencyCode = forcedCurrencyCode || order?.currencyCode || requestContext.currencyCode;
45
- const pricingContext = {
46
- countryCode,
47
- currencyCode,
48
- provider: deliveryProvider,
49
- order,
50
- providerContext,
51
- user: user!,
52
- };
53
-
54
- const calculated = await DeliveryPricingDirector.rebuildCalculation(pricingContext, requestContext);
55
-
56
- if (!calculated || !calculated.length) return null;
57
-
58
- const pricing = DeliveryPricingDirector.calculationSheet(pricingContext, calculated);
59
-
60
- const orderPrice = pricing.total({ useNetPrice }) as {
61
- amount: number;
62
- currencyCode: string;
63
- };
64
-
65
- return {
66
- amount: orderPrice.amount,
67
- currencyCode: orderPrice.currencyCode,
68
- countryCode,
69
- isTaxable: pricing.taxSum() > 0,
70
- isNetPrice: useNetPrice,
71
- };
15
+ __resolveType: async (obj: DeliveryProviderActual, { loaders }: Context) => {
16
+ const provider = await loaders.deliveryProviderLoader.load({
17
+ deliveryProviderId: obj._id,
18
+ });
19
+
20
+ const invertedProductTypes = objectInvert(DeliveryProviderMap);
21
+ if (provider) {
22
+ return invertedProductTypes[provider.type];
23
+ }
24
+ return invertedProductTypes[DeliveryProviderType.SHIPPING];
72
25
  },
26
+ ...DeliveryProviderInterface,
73
27
  };
@@ -67,6 +67,8 @@ import { Web3Address } from './web3-address.js';
67
67
  import { LoginMethodResponse } from './login-method-response-types.js';
68
68
  import { ProductSearchResult } from './product-search-result-types.js';
69
69
  import { OrderStatistics } from './order/order-statistics-types.js';
70
+ import { DeliveryProviderPickUp } from './delivery-provider-pickup-types.js';
71
+ import { DeliveryProviderShipping } from './delivery-provider-shipping-types.js';
70
72
 
71
73
  const types = {
72
74
  Assortment,
@@ -81,6 +83,8 @@ const types = {
81
83
  Country,
82
84
  Currency,
83
85
  DeliveryProvider,
86
+ DeliveryProviderPickUp,
87
+ DeliveryProviderShipping,
84
88
  Dimensions,
85
89
  Enrollment,
86
90
  EnrollmentDelivery,
@@ -19,11 +19,25 @@ export const Price = {
19
19
  },
20
20
  amount(obj: PriceType) {
21
21
  if (obj.amount) {
22
- return Number(obj.amount).toLocaleString(undefined, {
23
- minimumFractionDigits: 0,
24
- maximumFractionDigits: 0,
25
- useGrouping: false,
26
- });
22
+ /*
23
+ Why toFixed(0) Is Actually Reliable
24
+ For integer rounding specifically:
25
+
26
+ Half-values are exact: Numbers like 0.5, 1.5, 2.5 can be represented exactly in binary floating-point (they're powers of 2), so they round correctly.
27
+ Floating-point errors are tiny: Even with calculation errors, they're usually on the order of 0.0000000001, which won't affect rounding to the nearest integer.
28
+ Integer boundaries are far apart: Unlike toFixed(2) where the difference between 1.004 and 1.005 matters, for toFixed(0) you need errors approaching 0.5 to cause problems.
29
+
30
+ Theoretical Edge Cases
31
+ The only cases where toFixed(0) might fail would be:
32
+ javascript// Extremely contrived calculation that should equal exactly 0.5
33
+ // but might be 0.49999999999999994 (would round to 0 instead of 1)
34
+
35
+ // Very large numbers where precision is lost entirely
36
+ (9007199254740992.5).toFixed(0) // Might have issues past MAX_SAFE_INTEGER
37
+
38
+ // But in practice, these are incredibly rare
39
+ */
40
+ return Math.round(obj.amount).toFixed(0);
27
41
  }
28
42
  return 0;
29
43
  },
@@ -25,7 +25,44 @@ export default [
25
25
  WRONG_CREDENTIALS
26
26
  }
27
27
 
28
- type DeliveryProvider @cacheControl(maxAge: 60) {
28
+ interface DeliveryProvider {
29
+ _id: ID!
30
+ created: DateTime
31
+ updated: DateTime
32
+ deleted: DateTime
33
+ type: DeliveryProviderType
34
+ interface: DeliveryInterface
35
+ configuration: JSON
36
+ configurationError: DeliveryProviderError
37
+ isActive: Boolean
38
+ simulatedPrice(
39
+ currencyCode: String
40
+ useNetPrice: Boolean = false
41
+ orderId: ID
42
+ context: JSON
43
+ ): Price @cacheControl(scope: PRIVATE, maxAge: 10)
44
+ }
45
+
46
+ type DeliveryProviderPickUp implements DeliveryProvider @cacheControl(maxAge: 60) {
47
+ _id: ID!
48
+ created: DateTime
49
+ updated: DateTime
50
+ deleted: DateTime
51
+ type: DeliveryProviderType
52
+ interface: DeliveryInterface
53
+ configuration: JSON
54
+ configurationError: DeliveryProviderError
55
+ isActive: Boolean
56
+ simulatedPrice(
57
+ currencyCode: String
58
+ useNetPrice: Boolean = false
59
+ orderId: ID
60
+ context: JSON
61
+ ): Price @cacheControl(scope: PRIVATE, maxAge: 10)
62
+ pickUpLocations: [PickUpLocation!]!
63
+ }
64
+
65
+ type DeliveryProviderShipping implements DeliveryProvider @cacheControl(maxAge: 60) {
29
66
  _id: ID!
30
67
  created: DateTime
31
68
  updated: DateTime
@@ -33,8 +33,9 @@ export default [
33
33
  delivered: DateTime
34
34
  fee: Price
35
35
  discounts: [OrderDeliveryDiscount!]
36
- pickUpLocations: [OrderPickUpLocation!]!
37
- activePickUpLocation: OrderPickUpLocation
36
+ pickUpLocations: [PickUpLocation!]!
37
+ @deprecated(reason: "Use DeliveryProvider.pickupLocations instead")
38
+ activePickUpLocation: PickUpLocation
38
39
  }
39
40
 
40
41
  type OrderDeliveryShipping implements OrderDelivery {
@@ -1,8 +1,7 @@
1
1
  export default [
2
2
  /* GraphQL */ `
3
- type OrderPickUpLocation {
3
+ type PickUpLocation {
4
4
  _id: ID!
5
- order: Order!
6
5
  name: String!
7
6
  address: Address
8
7
  geoPoint: GeoPosition