@unchainedshop/api 4.0.0-rc.10 → 4.0.0-rc.12

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 (179) hide show
  1. package/lib/mcp/index.d.ts.map +1 -1
  2. package/lib/mcp/index.js +6 -0
  3. package/lib/mcp/index.js.map +1 -1
  4. package/lib/mcp/tools/delivery/createDeliveryProviderHandler.d.ts +44 -0
  5. package/lib/mcp/tools/delivery/createDeliveryProviderHandler.d.ts.map +1 -0
  6. package/lib/mcp/tools/delivery/createDeliveryProviderHandler.js +50 -0
  7. package/lib/mcp/tools/delivery/createDeliveryProviderHandler.js.map +1 -0
  8. package/lib/mcp/tools/delivery/deliveryInterfacesHandler.d.ts +20 -0
  9. package/lib/mcp/tools/delivery/deliveryInterfacesHandler.d.ts.map +1 -0
  10. package/lib/mcp/tools/delivery/deliveryInterfacesHandler.js +45 -0
  11. package/lib/mcp/tools/delivery/deliveryInterfacesHandler.js.map +1 -0
  12. package/lib/mcp/tools/delivery/deliveryProvider.d.ts +20 -0
  13. package/lib/mcp/tools/delivery/deliveryProvider.d.ts.map +1 -0
  14. package/lib/mcp/tools/delivery/deliveryProvider.js +43 -0
  15. package/lib/mcp/tools/delivery/deliveryProvider.js.map +1 -0
  16. package/lib/mcp/tools/delivery/deliveryProvidersCountHandler.d.ts +20 -0
  17. package/lib/mcp/tools/delivery/deliveryProvidersCountHandler.d.ts.map +1 -0
  18. package/lib/mcp/tools/delivery/deliveryProvidersCountHandler.js +36 -0
  19. package/lib/mcp/tools/delivery/deliveryProvidersCountHandler.js.map +1 -0
  20. package/lib/mcp/tools/delivery/deliveryProvidersListHandler.d.ts +24 -0
  21. package/lib/mcp/tools/delivery/deliveryProvidersListHandler.d.ts.map +1 -0
  22. package/lib/mcp/tools/delivery/deliveryProvidersListHandler.js +44 -0
  23. package/lib/mcp/tools/delivery/deliveryProvidersListHandler.js.map +1 -0
  24. package/lib/mcp/tools/delivery/index.d.ts +4 -0
  25. package/lib/mcp/tools/delivery/index.d.ts.map +1 -0
  26. package/lib/mcp/tools/delivery/index.js +17 -0
  27. package/lib/mcp/tools/delivery/index.js.map +1 -0
  28. package/lib/mcp/tools/delivery/removeDeliveryProviderHandler.d.ts +20 -0
  29. package/lib/mcp/tools/delivery/removeDeliveryProviderHandler.d.ts.map +1 -0
  30. package/lib/mcp/tools/delivery/removeDeliveryProviderHandler.js +37 -0
  31. package/lib/mcp/tools/delivery/removeDeliveryProviderHandler.js.map +1 -0
  32. package/lib/mcp/tools/delivery/updateDeliveryProviderHandler.d.ts +96 -0
  33. package/lib/mcp/tools/delivery/updateDeliveryProviderHandler.d.ts.map +1 -0
  34. package/lib/mcp/tools/delivery/updateDeliveryProviderHandler.js +54 -0
  35. package/lib/mcp/tools/delivery/updateDeliveryProviderHandler.js.map +1 -0
  36. package/lib/mcp/tools/order/getMonthlySalesBreakdownHandler.d.ts +36 -0
  37. package/lib/mcp/tools/order/getMonthlySalesBreakdownHandler.d.ts.map +1 -0
  38. package/lib/mcp/tools/order/getMonthlySalesBreakdownHandler.js +89 -0
  39. package/lib/mcp/tools/order/getMonthlySalesBreakdownHandler.js.map +1 -0
  40. package/lib/mcp/tools/order/getSalesSummaryHandler.d.ts +40 -0
  41. package/lib/mcp/tools/order/getSalesSummaryHandler.d.ts.map +1 -0
  42. package/lib/mcp/tools/order/getSalesSummaryHandler.js +90 -0
  43. package/lib/mcp/tools/order/getSalesSummaryHandler.js.map +1 -0
  44. package/lib/mcp/tools/order/getTopCustomersHandler.d.ts +52 -0
  45. package/lib/mcp/tools/order/getTopCustomersHandler.d.ts.map +1 -0
  46. package/lib/mcp/tools/order/getTopCustomersHandler.js +114 -0
  47. package/lib/mcp/tools/order/getTopCustomersHandler.js.map +1 -0
  48. package/lib/mcp/tools/order/getTopSellingProductsHandler.d.ts +28 -0
  49. package/lib/mcp/tools/order/getTopSellingProductsHandler.d.ts.map +1 -0
  50. package/lib/mcp/tools/order/getTopSellingProductsHandler.js +99 -0
  51. package/lib/mcp/tools/order/getTopSellingProductsHandler.js.map +1 -0
  52. package/lib/mcp/tools/order/index.d.ts +4 -0
  53. package/lib/mcp/tools/order/index.d.ts.map +1 -0
  54. package/lib/mcp/tools/order/index.js +13 -0
  55. package/lib/mcp/tools/order/index.js.map +1 -0
  56. package/lib/mcp/tools/order/ordersListHandler.d.ts +108 -0
  57. package/lib/mcp/tools/order/ordersListHandler.d.ts.map +1 -0
  58. package/lib/mcp/tools/order/ordersListHandler.js +91 -0
  59. package/lib/mcp/tools/order/ordersListHandler.js.map +1 -0
  60. package/lib/mcp/tools/payment/createPaymentProviderHandler.d.ts.map +1 -1
  61. package/lib/mcp/tools/payment/createPaymentProviderHandler.js +5 -2
  62. package/lib/mcp/tools/payment/createPaymentProviderHandler.js.map +1 -1
  63. package/lib/mcp/tools/payment/index.js +1 -1
  64. package/lib/mcp/tools/payment/index.js.map +1 -1
  65. package/lib/mcp/tools/payment/paymentInterfacesHandler.d.ts +2 -2
  66. package/lib/mcp/tools/payment/paymentInterfacesHandler.d.ts.map +1 -1
  67. package/lib/mcp/tools/payment/paymentInterfacesHandler.js +7 -5
  68. package/lib/mcp/tools/payment/paymentInterfacesHandler.js.map +1 -1
  69. package/lib/mcp/tools/payment/paymentProviderByIdHandler.js +1 -1
  70. package/lib/mcp/tools/payment/paymentProviderByIdHandler.js.map +1 -1
  71. package/lib/mcp/tools/payment/paymentProvidersListHandler.d.ts +4 -0
  72. package/lib/mcp/tools/payment/paymentProvidersListHandler.d.ts.map +1 -1
  73. package/lib/mcp/tools/payment/paymentProvidersListHandler.js +12 -3
  74. package/lib/mcp/tools/payment/paymentProvidersListHandler.js.map +1 -1
  75. package/lib/mcp/tools/payment/removePaymentProviderHandler.d.ts.map +1 -1
  76. package/lib/mcp/tools/payment/removePaymentProviderHandler.js +5 -4
  77. package/lib/mcp/tools/payment/removePaymentProviderHandler.js.map +1 -1
  78. package/lib/mcp/tools/payment/updatePaymentProviderHandler.d.ts +66 -10
  79. package/lib/mcp/tools/payment/updatePaymentProviderHandler.d.ts.map +1 -1
  80. package/lib/mcp/tools/payment/updatePaymentProviderHandler.js +18 -3
  81. package/lib/mcp/tools/payment/updatePaymentProviderHandler.js.map +1 -1
  82. package/lib/mcp/tools/warehousing/createWarehousingProviderHandler.d.ts +44 -0
  83. package/lib/mcp/tools/warehousing/createWarehousingProviderHandler.d.ts.map +1 -0
  84. package/lib/mcp/tools/warehousing/createWarehousingProviderHandler.js +48 -0
  85. package/lib/mcp/tools/warehousing/createWarehousingProviderHandler.js.map +1 -0
  86. package/lib/mcp/tools/warehousing/index.d.ts +4 -0
  87. package/lib/mcp/tools/warehousing/index.d.ts.map +1 -0
  88. package/lib/mcp/tools/warehousing/index.js +17 -0
  89. package/lib/mcp/tools/warehousing/index.js.map +1 -0
  90. package/lib/mcp/tools/warehousing/removeWarehousingProviderHandler.d.ts +20 -0
  91. package/lib/mcp/tools/warehousing/removeWarehousingProviderHandler.d.ts.map +1 -0
  92. package/lib/mcp/tools/warehousing/removeWarehousingProviderHandler.js +39 -0
  93. package/lib/mcp/tools/warehousing/removeWarehousingProviderHandler.js.map +1 -0
  94. package/lib/mcp/tools/warehousing/updateWarehousingProviderHandler.d.ts +96 -0
  95. package/lib/mcp/tools/warehousing/updateWarehousingProviderHandler.d.ts.map +1 -0
  96. package/lib/mcp/tools/warehousing/updateWarehousingProviderHandler.js +58 -0
  97. package/lib/mcp/tools/warehousing/updateWarehousingProviderHandler.js.map +1 -0
  98. package/lib/mcp/tools/warehousing/warehousingInterfacesHandler.d.ts +20 -0
  99. package/lib/mcp/tools/warehousing/warehousingInterfacesHandler.d.ts.map +1 -0
  100. package/lib/mcp/tools/warehousing/warehousingInterfacesHandler.js +45 -0
  101. package/lib/mcp/tools/warehousing/warehousingInterfacesHandler.js.map +1 -0
  102. package/lib/mcp/tools/warehousing/warehousingProviderHandler.d.ts +20 -0
  103. package/lib/mcp/tools/warehousing/warehousingProviderHandler.d.ts.map +1 -0
  104. package/lib/mcp/tools/warehousing/warehousingProviderHandler.js +45 -0
  105. package/lib/mcp/tools/warehousing/warehousingProviderHandler.js.map +1 -0
  106. package/lib/mcp/tools/warehousing/warehousingProvidersCountHandler.d.ts +20 -0
  107. package/lib/mcp/tools/warehousing/warehousingProvidersCountHandler.d.ts.map +1 -0
  108. package/lib/mcp/tools/warehousing/warehousingProvidersCountHandler.js +36 -0
  109. package/lib/mcp/tools/warehousing/warehousingProvidersCountHandler.js.map +1 -0
  110. package/lib/mcp/tools/warehousing/warehousingProvidersListHandler.d.ts +24 -0
  111. package/lib/mcp/tools/warehousing/warehousingProvidersListHandler.d.ts.map +1 -0
  112. package/lib/mcp/tools/warehousing/warehousingProvidersListHandler.js +44 -0
  113. package/lib/mcp/tools/warehousing/warehousingProvidersListHandler.js.map +1 -0
  114. package/lib/mcp/utils/orderFilters.d.ts +22 -0
  115. package/lib/mcp/utils/orderFilters.d.ts.map +1 -0
  116. package/lib/mcp/utils/orderFilters.js +34 -0
  117. package/lib/mcp/utils/orderFilters.js.map +1 -0
  118. package/lib/mcp/utils/sharedSchemas.d.ts +11 -0
  119. package/lib/mcp/utils/sharedSchemas.d.ts.map +1 -0
  120. package/lib/mcp/utils/sharedSchemas.js +11 -0
  121. package/lib/mcp/utils/sharedSchemas.js.map +1 -0
  122. package/lib/resolvers/queries/delivery/deliveryInterfaces.d.ts +2 -2
  123. package/lib/resolvers/queries/delivery/deliveryInterfaces.d.ts.map +1 -1
  124. package/lib/resolvers/queries/delivery/deliveryInterfaces.js +6 -4
  125. package/lib/resolvers/queries/delivery/deliveryInterfaces.js.map +1 -1
  126. package/lib/resolvers/queries/orders/orders.d.ts.map +1 -1
  127. package/lib/resolvers/queries/orders/orders.js +21 -4
  128. package/lib/resolvers/queries/orders/orders.js.map +1 -1
  129. package/lib/resolvers/queries/orders/ordersCount.d.ts.map +1 -1
  130. package/lib/resolvers/queries/orders/ordersCount.js +17 -1
  131. package/lib/resolvers/queries/orders/ordersCount.js.map +1 -1
  132. package/lib/resolvers/queries/payment/paymentInterfaces.d.ts.map +1 -1
  133. package/lib/resolvers/queries/payment/paymentInterfaces.js +5 -3
  134. package/lib/resolvers/queries/payment/paymentInterfaces.js.map +1 -1
  135. package/lib/resolvers/queries/warehousing/warehousingInterfaces.d.ts.map +1 -1
  136. package/lib/resolvers/queries/warehousing/warehousingInterfaces.js +5 -3
  137. package/lib/resolvers/queries/warehousing/warehousingInterfaces.js.map +1 -1
  138. package/lib/schema/query.d.ts.map +1 -1
  139. package/lib/schema/query.js +14 -4
  140. package/lib/schema/query.js.map +1 -1
  141. package/package.json +1 -1
  142. package/src/mcp/index.ts +6 -1
  143. package/src/mcp/tools/delivery/createDeliveryProviderHandler.ts +62 -0
  144. package/src/mcp/tools/delivery/deliveryInterfacesHandler.ts +56 -0
  145. package/src/mcp/tools/delivery/deliveryProvider.ts +51 -0
  146. package/src/mcp/tools/delivery/deliveryProvidersCountHandler.ts +46 -0
  147. package/src/mcp/tools/delivery/deliveryProvidersListHandler.ts +54 -0
  148. package/src/mcp/tools/delivery/index.ts +74 -0
  149. package/src/mcp/tools/delivery/removeDeliveryProviderHandler.ts +45 -0
  150. package/src/mcp/tools/delivery/updateDeliveryProviderHandler.ts +68 -0
  151. package/src/mcp/tools/order/getMonthlySalesBreakdownHandler.ts +106 -0
  152. package/src/mcp/tools/order/getSalesSummaryHandler.ts +103 -0
  153. package/src/mcp/tools/order/getTopCustomersHandler.ts +124 -0
  154. package/src/mcp/tools/order/getTopSellingProductsHandler.ts +112 -0
  155. package/src/mcp/tools/order/index.ts +50 -0
  156. package/src/mcp/tools/order/ordersListHandler.ts +119 -0
  157. package/src/mcp/tools/payment/createPaymentProviderHandler.ts +7 -2
  158. package/src/mcp/tools/payment/index.ts +1 -1
  159. package/src/mcp/tools/payment/paymentInterfacesHandler.ts +13 -10
  160. package/src/mcp/tools/payment/paymentProviderByIdHandler.ts +1 -1
  161. package/src/mcp/tools/payment/paymentProvidersListHandler.ts +14 -4
  162. package/src/mcp/tools/payment/removePaymentProviderHandler.ts +6 -8
  163. package/src/mcp/tools/payment/updatePaymentProviderHandler.ts +23 -4
  164. package/src/mcp/tools/warehousing/createWarehousingProviderHandler.ts +61 -0
  165. package/src/mcp/tools/warehousing/index.ts +81 -0
  166. package/src/mcp/tools/warehousing/removeWarehousingProviderHandler.ts +46 -0
  167. package/src/mcp/tools/warehousing/updateWarehousingProviderHandler.ts +72 -0
  168. package/src/mcp/tools/warehousing/warehousingInterfacesHandler.ts +58 -0
  169. package/src/mcp/tools/warehousing/warehousingProviderHandler.ts +55 -0
  170. package/src/mcp/tools/warehousing/warehousingProvidersCountHandler.ts +46 -0
  171. package/src/mcp/tools/warehousing/warehousingProvidersListHandler.ts +55 -0
  172. package/src/mcp/utils/orderFilters.ts +52 -0
  173. package/src/mcp/utils/sharedSchemas.ts +12 -0
  174. package/src/resolvers/queries/delivery/deliveryInterfaces.ts +8 -4
  175. package/src/resolvers/queries/orders/orders.ts +25 -5
  176. package/src/resolvers/queries/orders/ordersCount.ts +21 -1
  177. package/src/resolvers/queries/payment/paymentInterfaces.ts +11 -7
  178. package/src/resolvers/queries/warehousing/warehousingInterfaces.ts +5 -3
  179. package/src/schema/query.ts +14 -4
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import { Context } from '../../../context.js';
3
+ export declare const WarehousingProvidersListSchema: {
4
+ type: z.ZodOptional<z.ZodEnum<["PHYSICAL", "VIRTUAL"]>>;
5
+ queryString: z.ZodOptional<z.ZodString>;
6
+ };
7
+ export declare const WarehousingProvidersListZodSchema: z.ZodObject<{
8
+ type: z.ZodOptional<z.ZodEnum<["PHYSICAL", "VIRTUAL"]>>;
9
+ queryString: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ type?: "PHYSICAL" | "VIRTUAL";
12
+ queryString?: string;
13
+ }, {
14
+ type?: "PHYSICAL" | "VIRTUAL";
15
+ queryString?: string;
16
+ }>;
17
+ export type WarehousingProvidersListParams = z.infer<typeof WarehousingProvidersListZodSchema>;
18
+ export declare function warehousingProvidersListHandler(context: Context, params: WarehousingProvidersListParams): Promise<{
19
+ content: {
20
+ type: "text";
21
+ text: string;
22
+ }[];
23
+ }>;
24
+ //# sourceMappingURL=warehousingProvidersListHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warehousingProvidersListHandler.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/warehousing/warehousingProvidersListHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAO9C,eAAO,MAAM,8BAA8B;;;CAG1C,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;EAA2C,CAAC;AAC1F,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE/F,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,8BAA8B;;;;;GAoCvC"}
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import { log } from '@unchainedshop/logger';
3
+ const WarehousingProviderTypeEnum = z
4
+ .enum(['PHYSICAL', 'VIRTUAL'])
5
+ .describe('Warehousing provider type');
6
+ export const WarehousingProvidersListSchema = {
7
+ type: WarehousingProviderTypeEnum.optional().describe('Optional filter by provider type'),
8
+ queryString: z.string().min(1).optional().describe('Search by _id or adapterKey (partial match)'),
9
+ };
10
+ export const WarehousingProvidersListZodSchema = z.object(WarehousingProvidersListSchema);
11
+ export async function warehousingProvidersListHandler(context, params) {
12
+ const { modules, userId } = context;
13
+ const { type, queryString } = params;
14
+ try {
15
+ log('handler warehousingProvidersListHandler', { userId, type, queryString });
16
+ const selector = {};
17
+ if (type)
18
+ selector.type = type;
19
+ if (queryString) {
20
+ const regex = new RegExp(queryString, 'i');
21
+ selector.$or = [{ _id: regex }, { adapterKey: regex }];
22
+ }
23
+ const providers = await modules.warehousing.findProviders(selector);
24
+ return {
25
+ content: [
26
+ {
27
+ type: 'text',
28
+ text: JSON.stringify({ providers }),
29
+ },
30
+ ],
31
+ };
32
+ }
33
+ catch (error) {
34
+ return {
35
+ content: [
36
+ {
37
+ type: 'text',
38
+ text: `Error fetching warehousing providers: ${error.message}`,
39
+ },
40
+ ],
41
+ };
42
+ }
43
+ }
44
+ //# sourceMappingURL=warehousingProvidersListHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warehousingProvidersListHandler.js","sourceRoot":"","sources":["../../../../src/mcp/tools/warehousing/warehousingProvidersListHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,2BAA2B,GAAG,CAAC;KAClC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;KAC7B,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,IAAI,EAAE,2BAA2B,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACzF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CAClG,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAG1F,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,OAAgB,EAChB,MAAsC;IAEtC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACpC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAErC,IAAI,CAAC;QACH,GAAG,CAAC,yCAAyC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAwB,EAAE,CAAC;QACzC,IAAI,IAAI;YAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QAE/B,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC3C,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEpE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;iBACpC;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,yCAA0C,KAAe,CAAC,OAAO,EAAE;iBAC1E;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Context } from '../../context.js';
2
+ export declare const resolveOrderFilters: (modules: Context["modules"], { paymentProviderIds, deliveryProviderIds, }: {
3
+ paymentProviderIds?: string[];
4
+ deliveryProviderIds?: string[];
5
+ }) => Promise<{
6
+ paymentIds: any[];
7
+ deliveryIds: any[];
8
+ }>;
9
+ export declare const formatSummaryMap: (map: Map<string, {
10
+ sales: number;
11
+ orders: number;
12
+ }>) => {
13
+ date: string;
14
+ sales: number;
15
+ orders: number;
16
+ avgOrderValue: number;
17
+ }[];
18
+ export declare const resolveDateRange: (from?: string, to?: string, fallbackDays?: number) => {
19
+ startDate: Date;
20
+ endDate: Date;
21
+ };
22
+ //# sourceMappingURL=orderFilters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderFilters.d.ts","sourceRoot":"","sources":["../../../src/mcp/utils/orderFilters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,eAAO,MAAM,mBAAmB,GAC9B,SAAS,OAAO,CAAC,SAAS,CAAC,EAC3B,8CAGG;IACD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;;;EAsBF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,KAAK,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,KAClD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EASxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,qBAAiB;;;CAI7E,CAAC"}
@@ -0,0 +1,34 @@
1
+ export const resolveOrderFilters = async (modules, { paymentProviderIds, deliveryProviderIds, }) => {
2
+ const [orderPayments, orderDeliveries] = await Promise.all([
3
+ paymentProviderIds?.length
4
+ ? modules.orders.payments.findOrderPaymentsByProviderIds({ paymentProviderIds })
5
+ : [],
6
+ deliveryProviderIds?.length
7
+ ? modules.orders.deliveries.findDeliveryByProvidersId({ deliveryProviderIds })
8
+ : [],
9
+ ]);
10
+ if ((paymentProviderIds?.length && !orderPayments.length) ||
11
+ (deliveryProviderIds?.length && !orderDeliveries.length)) {
12
+ return null;
13
+ }
14
+ return {
15
+ paymentIds: orderPayments.map((p) => p._id),
16
+ deliveryIds: orderDeliveries.map((d) => d._id),
17
+ };
18
+ };
19
+ export const formatSummaryMap = (map) => {
20
+ return Array.from(map.entries())
21
+ .reverse()
22
+ .map(([date, { sales, orders }]) => ({
23
+ date,
24
+ sales: Number(sales.toFixed(2)),
25
+ orders,
26
+ avgOrderValue: orders > 0 ? Math.round(sales / orders) : 0,
27
+ }));
28
+ };
29
+ export const resolveDateRange = (from, to, fallbackDays = 30) => {
30
+ const endDate = to ? new Date(to) : new Date();
31
+ const startDate = from ? new Date(from) : new Date(endDate.getTime() - (fallbackDays - 1) * 86400000);
32
+ return { startDate, endDate };
33
+ };
34
+ //# sourceMappingURL=orderFilters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderFilters.js","sourceRoot":"","sources":["../../../src/mcp/utils/orderFilters.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAA2B,EAC3B,EACE,kBAAkB,EAClB,mBAAmB,GAIpB,EACD,EAAE;IACF,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzD,kBAAkB,EAAE,MAAM;YACxB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,kBAAkB,EAAE,CAAC;YAChF,CAAC,CAAC,EAAE;QACN,mBAAmB,EAAE,MAAM;YACzB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,mBAAmB,EAAE,CAAC;YAC9E,CAAC,CAAC,EAAE;KACP,CAAC,CAAC;IAEH,IACE,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACrD,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EACxD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,WAAW,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;KAC/C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,GAAmD,EACuB,EAAE;IAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;SAC7B,OAAO,EAAE;SACT,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM;QACN,aAAa,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3D,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAa,EAAE,EAAW,EAAE,YAAY,GAAG,EAAE,EAAE,EAAE;IAChF,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;IACtG,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ export declare const OrderFilterSchema: {
3
+ paymentProviderIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4
+ deliveryProviderIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
5
+ status: z.ZodOptional<z.ZodArray<z.ZodEnum<["PENDING", "CONFIRMED", "SHIPPED", "DELIVERED", "CANCELLED"]>, "many">>;
6
+ };
7
+ export declare const DateRangeSchema: {
8
+ from: z.ZodOptional<z.ZodString>;
9
+ to: z.ZodOptional<z.ZodString>;
10
+ };
11
+ //# sourceMappingURL=sharedSchemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharedSchemas.d.ts","sourceRoot":"","sources":["../../../src/mcp/utils/sharedSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;CAI7B,CAAC;AAEF,eAAO,MAAM,eAAe;;;CAG3B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ export const OrderFilterSchema = {
3
+ paymentProviderIds: z.array(z.string()).optional(),
4
+ deliveryProviderIds: z.array(z.string()).optional(),
5
+ status: z.array(z.enum(['PENDING', 'CONFIRMED', 'SHIPPED', 'DELIVERED', 'CANCELLED'])).optional(),
6
+ };
7
+ export const DateRangeSchema = {
8
+ from: z.string().datetime().optional(),
9
+ to: z.string().datetime().optional(),
10
+ };
11
+ //# sourceMappingURL=sharedSchemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharedSchemas.js","sourceRoot":"","sources":["../../../src/mcp/utils/sharedSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAClG,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC"}
@@ -2,9 +2,9 @@ import { Context } from '../../../context.js';
2
2
  import { DeliveryProviderType } from '@unchainedshop/core-delivery';
3
3
  export default function deliveryInterfaces(root: never, { type }: {
4
4
  type: DeliveryProviderType;
5
- }, { userId }: Context): {
5
+ }, { userId }: Context): Promise<{
6
6
  _id: string;
7
7
  label: string;
8
8
  version: string;
9
- }[];
9
+ }[]>;
10
10
  //# sourceMappingURL=deliveryInterfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deliveryInterfaces.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/queries/delivery/deliveryInterfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,IAAI,EAAE,KAAK,EACX,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,EACxC,EAAE,MAAM,EAAE,EAAE,OAAO;;;;IAWpB"}
1
+ {"version":3,"file":"deliveryInterfaces.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/queries/delivery/deliveryInterfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,wBAA8B,kBAAkB,CAC9C,IAAI,EAAE,KAAK,EACX,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,EACxC,EAAE,MAAM,EAAE,EAAE,OAAO;;;;KAepB"}
@@ -1,10 +1,12 @@
1
1
  import { DeliveryDirector } from '@unchainedshop/core';
2
2
  import { log } from '@unchainedshop/logger';
3
- export default function deliveryInterfaces(root, { type }, { userId }) {
3
+ export default async function deliveryInterfaces(root, { type }, { userId }) {
4
4
  log(`query deliveryInterfaces ${type}`, { userId });
5
- return DeliveryDirector.getAdapters({
6
- adapterFilter: (Adapter) => Adapter.typeSupported(type),
7
- }).map((Adapter) => ({
5
+ const allAdapters = await DeliveryDirector.getAdapters();
6
+ const filteredAdapters = type
7
+ ? allAdapters.filter((Adapter) => Adapter.typeSupported(type))
8
+ : allAdapters;
9
+ return filteredAdapters.map((Adapter) => ({
8
10
  _id: Adapter.key,
9
11
  label: Adapter.label,
10
12
  version: Adapter.version,
@@ -1 +1 @@
1
- {"version":3,"file":"deliveryInterfaces.js","sourceRoot":"","sources":["../../../../src/resolvers/queries/delivery/deliveryInterfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,IAAW,EACX,EAAE,IAAI,EAAkC,EACxC,EAAE,MAAM,EAAW;IAEnB,GAAG,CAAC,4BAA4B,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEpD,OAAO,gBAAgB,CAAC,WAAW,CAAC;QAClC,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;KACxD,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"deliveryInterfaces.js","sourceRoot":"","sources":["../../../../src/resolvers/queries/delivery/deliveryInterfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAC9C,IAAW,EACX,EAAE,IAAI,EAAkC,EACxC,EAAE,MAAM,EAAW;IAEnB,GAAG,CAAC,4BAA4B,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,CAAC;IAEzD,MAAM,gBAAgB,GAAG,IAAI;QAC3B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,IAA4B,CAAC,CAAC;QACtF,CAAC,CAAC,WAAW,CAAC;IAEhB,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/queries/orders/orders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,wBAA8B,MAAM,CAClC,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAA;CAAE,EAC7E,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,yDAS7B"}
1
+ {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/queries/orders/orders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,wBAA8B,MAAM,CAClC,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAA;CAAE,EAC7E,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,yDA6B7B"}
@@ -1,9 +1,26 @@
1
1
  import { log } from '@unchainedshop/logger';
2
2
  export default async function orders(root, params, { modules, userId }) {
3
- const { includeCarts, limit, offset, queryString } = params;
4
- log(`query orders: ${limit} ${offset} ${includeCarts} ${queryString}`, {
5
- userId,
3
+ const { limit, offset, paymentProviderIds, deliveryProviderIds, ...restParams } = params;
4
+ log(`query orders: ${limit} ${offset} ${restParams?.queryString || ''}`, { userId });
5
+ const promises = [];
6
+ await Promise.all(promises);
7
+ const [orderPayments, orderDeliveries] = await Promise.all([
8
+ paymentProviderIds?.length
9
+ ? modules.orders.payments.findOrderPaymentsByProviderIds({ paymentProviderIds })
10
+ : [],
11
+ deliveryProviderIds?.length
12
+ ? modules.orders.deliveries.findDeliveryByProvidersId({ deliveryProviderIds })
13
+ : [],
14
+ ]);
15
+ if ((paymentProviderIds?.length && !orderPayments.length) ||
16
+ (deliveryProviderIds?.length && !orderDeliveries.length))
17
+ return [];
18
+ const paymentIds = orderPayments.map((p) => p._id);
19
+ const deliveryIds = orderDeliveries.map((d) => d._id);
20
+ return modules.orders.findOrders({
21
+ ...restParams,
22
+ paymentIds,
23
+ deliveryIds,
6
24
  });
7
- return modules.orders.findOrders(params);
8
25
  }
9
26
  //# sourceMappingURL=orders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../../../src/resolvers/queries/orders/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAK5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,MAAM,CAClC,IAAW,EACX,MAA6E,EAC7E,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAE5D,GAAG,CAAC,iBAAiB,KAAK,IAAI,MAAM,IAAI,YAAY,IAAI,WAAW,EAAE,EAAE;QACrE,MAAM;KACP,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../../../src/resolvers/queries/orders/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAK5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,MAAM,CAClC,IAAW,EACX,MAA6E,EAC7E,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IACzF,GAAG,CAAC,iBAAiB,KAAK,IAAI,MAAM,KAAK,UAAU,EAAE,WAAW,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtF,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzD,kBAAkB,EAAE,MAAM;YACxB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,kBAAkB,EAAE,CAAC;YAChF,CAAC,CAAC,EAAE;QACN,mBAAmB,EAAE,MAAM;YACzB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,mBAAmB,EAAE,CAAC;YAC9E,CAAC,CAAC,EAAE;KACP,CAAC,CAAC;IACH,IACE,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACrD,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAExD,OAAO,EAAE,CAAC;IACZ,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEtD,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;QAC/B,GAAG,UAAU;QACb,UAAU;QACV,WAAW;KACZ,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ordersCount.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/queries/orders/ordersCount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,wBAA8B,WAAW,CACvC,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,UAAU,EAClB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,mBAK7B"}
1
+ {"version":3,"file":"ordersCount.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/queries/orders/ordersCount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,wBAA8B,WAAW,CACvC,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,UAAU,EAClB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,mBAyB7B"}
@@ -1,6 +1,22 @@
1
1
  import { log } from '@unchainedshop/logger';
2
2
  export default async function ordersCount(root, params, { modules, userId }) {
3
+ const { paymentProviderIds, deliveryProviderIds, ...restParams } = params;
3
4
  log(`query ordersCount: ${params.includeCarts ? 'includeCart' : ''}`, { userId });
4
- return modules.orders.count(params);
5
+ const promises = [];
6
+ await Promise.all(promises);
7
+ const [orderPayments, orderDeliveries] = await Promise.all([
8
+ paymentProviderIds?.length
9
+ ? modules.orders.payments.findOrderPaymentsByProviderIds({ paymentProviderIds })
10
+ : [],
11
+ deliveryProviderIds?.length
12
+ ? modules.orders.deliveries.findDeliveryByProvidersId({ deliveryProviderIds })
13
+ : [],
14
+ ]);
15
+ if ((paymentProviderIds?.length && !orderPayments.length) ||
16
+ (deliveryProviderIds?.length && !orderDeliveries.length))
17
+ return 0;
18
+ const paymentIds = orderPayments.map((p) => p._id);
19
+ const deliveryIds = orderDeliveries.map((d) => d._id);
20
+ return modules.orders.count({ ...restParams, paymentIds, deliveryIds });
5
21
  }
6
22
  //# sourceMappingURL=ordersCount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ordersCount.js","sourceRoot":"","sources":["../../../../src/resolvers/queries/orders/ordersCount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAI5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CACvC,IAAW,EACX,MAAkB,EAClB,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,GAAG,CAAC,sBAAsB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAElF,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"ordersCount.js","sourceRoot":"","sources":["../../../../src/resolvers/queries/orders/ordersCount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAI5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CACvC,IAAW,EACX,MAAkB,EAClB,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAC1E,GAAG,CAAC,sBAAsB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAElF,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzD,kBAAkB,EAAE,MAAM;YACxB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,kBAAkB,EAAE,CAAC;YAChF,CAAC,CAAC,EAAE;QACN,mBAAmB,EAAE,MAAM;YACzB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,mBAAmB,EAAE,CAAC;YAC9E,CAAC,CAAC,EAAE;KACP,CAAC,CAAC;IACH,IACE,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACrD,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAExD,OAAO,CAAC,CAAC;IACX,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEtD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;AAC1E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"paymentInterfaces.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/queries/payment/paymentInterfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,wBAA8B,iBAAiB,CAC7C,IAAI,EAAE,KAAK,EACX,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,EACvC,EAAE,MAAM,EAAE,EAAE,OAAO;;;;KAWpB"}
1
+ {"version":3,"file":"paymentInterfaces.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/queries/payment/paymentInterfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,wBAA8B,iBAAiB,CAC7C,IAAI,EAAE,KAAK,EACX,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,EACvC,EAAE,MAAM,EAAE,EAAE,OAAO;;;;KAepB"}
@@ -2,9 +2,11 @@ import { log } from '@unchainedshop/logger';
2
2
  import { PaymentDirector } from '@unchainedshop/core';
3
3
  export default async function paymentInterfaces(root, { type }, { userId }) {
4
4
  log(`query paymentInterfaces ${type}`, { userId });
5
- return PaymentDirector.getAdapters()
6
- .filter((Adapter) => Adapter.typeSupported(type))
7
- .map((Adapter) => ({
5
+ const allAdapters = await PaymentDirector.getAdapters();
6
+ const filteredAdapters = type
7
+ ? allAdapters.filter((Adapter) => Adapter.typeSupported(type))
8
+ : allAdapters;
9
+ return filteredAdapters.map((Adapter) => ({
8
10
  _id: Adapter.key,
9
11
  label: Adapter.label,
10
12
  version: Adapter.version,
@@ -1 +1 @@
1
- {"version":3,"file":"paymentInterfaces.js","sourceRoot":"","sources":["../../../../src/resolvers/queries/payment/paymentInterfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,IAAW,EACX,EAAE,IAAI,EAAiC,EACvC,EAAE,MAAM,EAAW;IAEnB,GAAG,CAAC,2BAA2B,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnD,OAAO,eAAe,CAAC,WAAW,EAAE;SACjC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"paymentInterfaces.js","sourceRoot":"","sources":["../../../../src/resolvers/queries/payment/paymentInterfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,IAAW,EACX,EAAE,IAAI,EAAiC,EACvC,EAAE,MAAM,EAAW;IAEnB,GAAG,CAAC,2BAA2B,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC;IAExD,MAAM,gBAAgB,GAAG,IAAI;QAC3B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,IAA2B,CAAC,CAAC;QACrF,CAAC,CAAC,WAAW,CAAC;IAEhB,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"warehousingInterfaces.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/queries/warehousing/warehousingInterfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,wBAA8B,qBAAqB,CACjD,IAAI,EAAE,KAAK,EACX,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,uBAAuB,CAAA;CAAE,EAC3C,EAAE,MAAM,EAAE,EAAE,OAAO;;;;KAWpB"}
1
+ {"version":3,"file":"warehousingInterfaces.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/queries/warehousing/warehousingInterfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,wBAA8B,qBAAqB,CACjD,IAAI,EAAE,KAAK,EACX,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,uBAAuB,CAAA;CAAE,EAC3C,EAAE,MAAM,EAAE,EAAE,OAAO;;;;KAapB"}
@@ -2,9 +2,11 @@ import { WarehousingDirector } from '@unchainedshop/core';
2
2
  import { log } from '@unchainedshop/logger';
3
3
  export default async function warehousingInterfaces(root, { type }, { userId }) {
4
4
  log(`query warehousingInterfaces ${type}`, { userId });
5
- return WarehousingDirector.getAdapters({
6
- adapterFilter: (Adapter) => Adapter.typeSupported(type),
7
- }).map((Adapter) => ({
5
+ const allAdapters = await WarehousingDirector.getAdapters();
6
+ const filteredAdapters = type
7
+ ? allAdapters.filter((Adapter) => Adapter.typeSupported(type))
8
+ : allAdapters;
9
+ return filteredAdapters.map((Adapter) => ({
8
10
  _id: Adapter.key,
9
11
  label: Adapter.label,
10
12
  version: Adapter.version,
@@ -1 +1 @@
1
- {"version":3,"file":"warehousingInterfaces.js","sourceRoot":"","sources":["../../../../src/resolvers/queries/warehousing/warehousingInterfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,qBAAqB,CACjD,IAAW,EACX,EAAE,IAAI,EAAqC,EAC3C,EAAE,MAAM,EAAW;IAEnB,GAAG,CAAC,+BAA+B,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvD,OAAO,mBAAmB,CAAC,WAAW,CAAC;QACrC,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;KACxD,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"warehousingInterfaces.js","sourceRoot":"","sources":["../../../../src/resolvers/queries/warehousing/warehousingInterfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,qBAAqB,CACjD,IAAW,EACX,EAAE,IAAI,EAAqC,EAC3C,EAAE,MAAM,EAAW;IAEnB,GAAG,CAAC,+BAA+B,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,CAAC;IAC5D,MAAM,gBAAgB,GAAG,IAAI;QAC3B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,IAA+B,CAAC,CAAC;QACzF,CAAC,CAAC,WAAW,CAAC;IAEhB,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/schema/query.ts"],"names":[],"mappings":";AAAA,wBAyfE"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/schema/query.ts"],"names":[],"mappings":";AAAA,wBAmgBE"}
@@ -181,7 +181,7 @@ export default [
181
181
  """
182
182
  Get all delivery interfaces filtered by type
183
183
  """
184
- deliveryInterfaces(type: DeliveryProviderType!): [DeliveryInterface!]!
184
+ deliveryInterfaces(type: DeliveryProviderType): [DeliveryInterface!]!
185
185
  @cacheControl(scope: PRIVATE, maxAge: 0)
186
186
 
187
187
  """
@@ -205,7 +205,7 @@ export default [
205
205
  """
206
206
  Get all warehousing interfaces filtered by type
207
207
  """
208
- warehousingInterfaces(type: WarehousingProviderType!): [WarehousingInterface!]!
208
+ warehousingInterfaces(type: WarehousingProviderType): [WarehousingInterface!]!
209
209
  @cacheControl(scope: PRIVATE, maxAge: 0)
210
210
 
211
211
  """
@@ -242,13 +242,20 @@ export default [
242
242
  """
243
243
  Get all payment interfaces filtered by type
244
244
  """
245
- paymentInterfaces(type: PaymentProviderType!): [PaymentInterface!]!
245
+ paymentInterfaces(type: PaymentProviderType): [PaymentInterface!]!
246
246
  @cacheControl(scope: PRIVATE, maxAge: 0)
247
247
 
248
248
  """
249
249
  Returns total number of orders
250
250
  """
251
- ordersCount(includeCarts: Boolean = false, queryString: String): Int!
251
+ ordersCount(
252
+ includeCarts: Boolean = false
253
+ queryString: String
254
+ paymentProviderIds: [String!]
255
+ deliveryProviderIds: [String!]
256
+ dateRange: DateFilterInput
257
+ status: [OrderStatus!]
258
+ ): Int!
252
259
 
253
260
  """
254
261
  Get all orders, by default sorted by creation date (descending)
@@ -260,6 +267,9 @@ export default [
260
267
  queryString: String
261
268
  status: [OrderStatus!]
262
269
  sort: [SortOptionInput!]
270
+ paymentProviderIds: [String!]
271
+ deliveryProviderIds: [String!]
272
+ dateRange: DateFilterInput
263
273
  ): [Order!]!
264
274
 
265
275
  """
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/schema/query.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAufb;CACF,CAAC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/schema/query.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAigBb;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/api",
3
- "version": "4.0.0-rc.10",
3
+ "version": "4.0.0-rc.12",
4
4
  "main": "lib/api-index.js",
5
5
  "types": "lib/api-index.d.ts",
6
6
  "type": "module",
package/src/mcp/index.ts CHANGED
@@ -8,6 +8,9 @@ import { registerCurrencyTools } from './tools/currency/index.js';
8
8
  import { registerCountryTools } from './tools/country/index.js';
9
9
  import { registerLanguageTools } from './tools/language/index.js';
10
10
  import { registerPaymentProviderTools } from './tools/payment/index.js';
11
+ import { registerDeliveryProviderTools } from './tools/delivery/index.js';
12
+ import { registerWarehousingProviderTools } from './tools/warehousing/index.js';
13
+ import { registerOrderTools } from './tools/order/index.js';
11
14
 
12
15
  export default function createMcpServer(context: Context, roles) {
13
16
  const server = new McpServer({
@@ -26,6 +29,8 @@ export default function createMcpServer(context: Context, roles) {
26
29
  registerLanguageTools(server, context);
27
30
  registerOtherTools(server, context);
28
31
  registerPaymentProviderTools(server, context);
29
-
32
+ registerDeliveryProviderTools(server, context);
33
+ registerWarehousingProviderTools(server, context);
34
+ registerOrderTools(server, context);
30
35
  return server;
31
36
  }
@@ -0,0 +1,62 @@
1
+ import { z } from 'zod';
2
+ import { Context } from '../../../context.js';
3
+ import { log } from '@unchainedshop/logger';
4
+ import { DeliveryDirector } from '@unchainedshop/core';
5
+ import { ProviderConfigurationInvalid } from '../../../errors.js';
6
+
7
+ const DeliveryProviderTypeEnum = z.enum(['PICKUP', 'SHIPPING', 'LOCAL']);
8
+
9
+ export const CreateDeliveryProviderSchema = {
10
+ deliveryProvider: z.object({
11
+ type: DeliveryProviderTypeEnum.describe('Type of delivery provider'),
12
+ adapterKey: z
13
+ .string()
14
+ .min(1)
15
+ .describe(
16
+ 'Adapter key for the delivery provider, this value should be valid interface found in delivery provider interfaces',
17
+ ),
18
+ }),
19
+ };
20
+
21
+ export const CreateDeliveryProviderZodSchema = z.object(CreateDeliveryProviderSchema);
22
+ export type CreateDeliveryProviderParams = z.infer<typeof CreateDeliveryProviderZodSchema>;
23
+
24
+ export async function createDeliveryProviderHandler(
25
+ context: Context,
26
+ params: CreateDeliveryProviderParams,
27
+ ) {
28
+ const { modules, userId } = context;
29
+ const { deliveryProvider } = params;
30
+
31
+ try {
32
+ log('handler createDeliveryProviderHandler', { userId, deliveryProvider });
33
+
34
+ const Adapter = DeliveryDirector.getAdapter(deliveryProvider.adapterKey);
35
+ if (!Adapter) return null;
36
+
37
+ const provider = await modules.delivery.create({
38
+ configuration: Adapter.initialConfiguration,
39
+ ...deliveryProvider,
40
+ } as any);
41
+
42
+ if (!provider) throw new ProviderConfigurationInvalid(deliveryProvider);
43
+
44
+ return {
45
+ content: [
46
+ {
47
+ type: 'text' as const,
48
+ text: JSON.stringify({ provider }),
49
+ },
50
+ ],
51
+ };
52
+ } catch (error) {
53
+ return {
54
+ content: [
55
+ {
56
+ type: 'text' as const,
57
+ text: `Error creating delivery provider: ${(error as Error).message}`,
58
+ },
59
+ ],
60
+ };
61
+ }
62
+ }
@@ -0,0 +1,56 @@
1
+ import { z } from 'zod';
2
+
3
+ import { Context } from '../../../context.js';
4
+ import { log } from '@unchainedshop/logger';
5
+ import { DeliveryDirector } from '@unchainedshop/core';
6
+ import { DeliveryProviderType } from '@unchainedshop/core-delivery';
7
+
8
+ const DeliveryProviderTypeEnum = z
9
+ .enum(['PICKUP', 'SHIPPING', 'LOCAL'])
10
+ .describe('Delivery provider type');
11
+
12
+ export const DeliveryInterfacesSchema = {
13
+ type: DeliveryProviderTypeEnum.optional().describe('Optional filter by delivery provider type'),
14
+ };
15
+
16
+ export const DeliveryInterfacesZodSchema = z.object(DeliveryInterfacesSchema);
17
+ export type DeliveryInterfacesParams = z.infer<typeof DeliveryInterfacesZodSchema>;
18
+
19
+ export async function deliveryInterfacesHandler(context: Context, params: DeliveryInterfacesParams) {
20
+ const { userId } = context;
21
+ const { type } = params;
22
+
23
+ try {
24
+ log('handler deliveryInterfacesHandler', { userId, type });
25
+
26
+ const allAdapters = await DeliveryDirector.getAdapters();
27
+
28
+ const filteredAdapters = type
29
+ ? allAdapters.filter((Adapter) => Adapter.typeSupported(type as DeliveryProviderType))
30
+ : allAdapters;
31
+
32
+ const interfaces = filteredAdapters.map((Adapter) => ({
33
+ _id: Adapter.key,
34
+ label: Adapter.label,
35
+ version: Adapter.version,
36
+ }));
37
+
38
+ return {
39
+ content: [
40
+ {
41
+ type: 'text' as const,
42
+ text: JSON.stringify({ interfaces }),
43
+ },
44
+ ],
45
+ };
46
+ } catch (error) {
47
+ return {
48
+ content: [
49
+ {
50
+ type: 'text' as const,
51
+ text: `Error fetching delivery interfaces: ${(error as Error).message}`,
52
+ },
53
+ ],
54
+ };
55
+ }
56
+ }
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+
3
+ export const DeliveryProviderByIdSchema = {
4
+ deliveryProviderId: z.string().min(1).describe('ID of the delivery provider'),
5
+ };
6
+
7
+ export const DeliveryProviderByIdZodSchema = z.object(DeliveryProviderByIdSchema);
8
+ export type DeliveryProviderByIdParams = z.infer<typeof DeliveryProviderByIdZodSchema>;
9
+
10
+ import { Context } from '../../../context.js';
11
+ import { log } from '@unchainedshop/logger';
12
+
13
+ export async function deliveryProviderHandler(context: Context, params: DeliveryProviderByIdParams) {
14
+ const { modules, userId } = context;
15
+ const { deliveryProviderId } = params;
16
+
17
+ try {
18
+ log('handler deliveryProviderByIdHandler', { userId, deliveryProviderId });
19
+
20
+ const provider = await modules.delivery.findProvider({ deliveryProviderId });
21
+
22
+ if (!provider) {
23
+ return {
24
+ content: [
25
+ {
26
+ type: 'text' as const,
27
+ text: `Delivery provider not found for ID: ${deliveryProviderId}`,
28
+ },
29
+ ],
30
+ };
31
+ }
32
+
33
+ return {
34
+ content: [
35
+ {
36
+ type: 'text' as const,
37
+ text: JSON.stringify({ provider }),
38
+ },
39
+ ],
40
+ };
41
+ } catch (error) {
42
+ return {
43
+ content: [
44
+ {
45
+ type: 'text' as const,
46
+ text: `Error fetching delivery provider: ${(error as Error).message}`,
47
+ },
48
+ ],
49
+ };
50
+ }
51
+ }