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

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 (166) 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 +111 -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/orders/orders.d.ts.map +1 -1
  123. package/lib/resolvers/queries/orders/orders.js +33 -4
  124. package/lib/resolvers/queries/orders/orders.js.map +1 -1
  125. package/lib/resolvers/queries/orders/ordersCount.d.ts.map +1 -1
  126. package/lib/resolvers/queries/orders/ordersCount.js +29 -1
  127. package/lib/resolvers/queries/orders/ordersCount.js.map +1 -1
  128. package/lib/schema/query.d.ts.map +1 -1
  129. package/lib/schema/query.js +11 -1
  130. package/lib/schema/query.js.map +1 -1
  131. package/package.json +1 -1
  132. package/src/mcp/index.ts +6 -1
  133. package/src/mcp/tools/delivery/createDeliveryProviderHandler.ts +62 -0
  134. package/src/mcp/tools/delivery/deliveryInterfacesHandler.ts +56 -0
  135. package/src/mcp/tools/delivery/deliveryProvider.ts +51 -0
  136. package/src/mcp/tools/delivery/deliveryProvidersCountHandler.ts +46 -0
  137. package/src/mcp/tools/delivery/deliveryProvidersListHandler.ts +54 -0
  138. package/src/mcp/tools/delivery/index.ts +74 -0
  139. package/src/mcp/tools/delivery/removeDeliveryProviderHandler.ts +45 -0
  140. package/src/mcp/tools/delivery/updateDeliveryProviderHandler.ts +68 -0
  141. package/src/mcp/tools/order/getMonthlySalesBreakdownHandler.ts +106 -0
  142. package/src/mcp/tools/order/getSalesSummaryHandler.ts +103 -0
  143. package/src/mcp/tools/order/getTopCustomersHandler.ts +123 -0
  144. package/src/mcp/tools/order/getTopSellingProductsHandler.ts +112 -0
  145. package/src/mcp/tools/order/index.ts +50 -0
  146. package/src/mcp/tools/order/ordersListHandler.ts +119 -0
  147. package/src/mcp/tools/payment/createPaymentProviderHandler.ts +7 -2
  148. package/src/mcp/tools/payment/index.ts +1 -1
  149. package/src/mcp/tools/payment/paymentInterfacesHandler.ts +13 -10
  150. package/src/mcp/tools/payment/paymentProviderByIdHandler.ts +1 -1
  151. package/src/mcp/tools/payment/paymentProvidersListHandler.ts +14 -4
  152. package/src/mcp/tools/payment/removePaymentProviderHandler.ts +6 -8
  153. package/src/mcp/tools/payment/updatePaymentProviderHandler.ts +23 -4
  154. package/src/mcp/tools/warehousing/createWarehousingProviderHandler.ts +61 -0
  155. package/src/mcp/tools/warehousing/index.ts +81 -0
  156. package/src/mcp/tools/warehousing/removeWarehousingProviderHandler.ts +46 -0
  157. package/src/mcp/tools/warehousing/updateWarehousingProviderHandler.ts +72 -0
  158. package/src/mcp/tools/warehousing/warehousingInterfacesHandler.ts +58 -0
  159. package/src/mcp/tools/warehousing/warehousingProviderHandler.ts +55 -0
  160. package/src/mcp/tools/warehousing/warehousingProvidersCountHandler.ts +46 -0
  161. package/src/mcp/tools/warehousing/warehousingProvidersListHandler.ts +55 -0
  162. package/src/mcp/utils/orderFilters.ts +52 -0
  163. package/src/mcp/utils/sharedSchemas.ts +12 -0
  164. package/src/resolvers/queries/orders/orders.ts +46 -5
  165. package/src/resolvers/queries/orders/ordersCount.ts +42 -1
  166. package/src/schema/query.ts +11 -1
@@ -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"}
@@ -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;AAI9C,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,yDAgD7B"}
@@ -1,9 +1,38 @@
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, paymentProviderTypes, deliveryProviderTypes, ...restParams } = params;
4
+ log(`query orders: ${limit} ${offset} ${restParams?.queryString || ''}`, { userId });
5
+ const promises = [];
6
+ let paymentProviderIds;
7
+ let deliveryProviderIds;
8
+ if (paymentProviderTypes?.length) {
9
+ promises.push(modules.payment.paymentProviders
10
+ .findProviders({ type: { $in: paymentProviderTypes } })
11
+ .then((providers) => (paymentProviderIds = providers.map((p) => p._id))));
12
+ }
13
+ if (deliveryProviderTypes?.length) {
14
+ promises.push(modules.delivery
15
+ .findProviders({ type: { $in: deliveryProviderTypes } })
16
+ .then((providers) => (deliveryProviderIds = providers.map((p) => p._id))));
17
+ }
18
+ await Promise.all(promises);
19
+ const [orderPayments, orderDeliveries] = await Promise.all([
20
+ paymentProviderIds
21
+ ? modules.orders.payments.findOrderPaymentsByProviderIds({ paymentProviderIds })
22
+ : [],
23
+ deliveryProviderIds
24
+ ? modules.orders.deliveries.findDeliveryByProvidersId({ deliveryProviderIds })
25
+ : [],
26
+ ]);
27
+ if ((paymentProviderTypes?.length && !orderPayments.length) ||
28
+ (deliveryProviderTypes?.length && !orderDeliveries.length))
29
+ return [];
30
+ const paymentIds = orderPayments.map((p) => p._id);
31
+ const deliveryIds = orderDeliveries.map((d) => d._id);
32
+ return modules.orders.findOrders({
33
+ ...restParams,
34
+ paymentIds,
35
+ deliveryIds,
6
36
  });
7
- return modules.orders.findOrders(params);
8
37
  }
9
38
  //# 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;AAO5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,MAAM,CAClC,IAAW,EACX,MAA6E,EAC7E,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAC7F,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,IAAI,kBAAwC,CAAC;IAC7C,IAAI,mBAAyC,CAAC;IAE9C,IAAI,oBAAoB,EAAE,MAAM,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,OAAO,CAAC,gBAAgB;aAC7B,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,oBAA6C,EAAE,EAAE,CAAC;aAC/E,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,kBAAkB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,qBAAqB,EAAE,MAAM,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,QAAQ;aACb,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,qBAA+C,EAAE,EAAE,CAAC;aACjF,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,mBAAmB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzD,kBAAkB;YAChB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,kBAAkB,EAAE,CAAC;YAChF,CAAC,CAAC,EAAE;QACN,mBAAmB;YACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,mBAAmB,EAAE,CAAC;YAC9E,CAAC,CAAC,EAAE;KACP,CAAC,CAAC;IACH,IACE,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACvD,CAAC,qBAAqB,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAE1D,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;AAI9C,wBAA8B,WAAW,CACvC,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,UAAU,EAClB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,mBA4C7B"}
@@ -1,6 +1,34 @@
1
1
  import { log } from '@unchainedshop/logger';
2
2
  export default async function ordersCount(root, params, { modules, userId }) {
3
+ const { paymentProviderTypes, deliveryProviderTypes, ...restParams } = params;
3
4
  log(`query ordersCount: ${params.includeCarts ? 'includeCart' : ''}`, { userId });
4
- return modules.orders.count(params);
5
+ const promises = [];
6
+ let paymentProviderIds;
7
+ let deliveryProviderIds;
8
+ if (paymentProviderTypes?.length) {
9
+ promises.push(modules.payment.paymentProviders
10
+ .findProviders({ type: { $in: paymentProviderTypes } })
11
+ .then((providers) => (paymentProviderIds = providers.map((p) => p._id))));
12
+ }
13
+ if (deliveryProviderTypes?.length) {
14
+ promises.push(modules.delivery
15
+ .findProviders({ type: { $in: deliveryProviderTypes } })
16
+ .then((providers) => (deliveryProviderIds = providers.map((p) => p._id))));
17
+ }
18
+ await Promise.all(promises);
19
+ const [orderPayments, orderDeliveries] = await Promise.all([
20
+ paymentProviderIds
21
+ ? modules.orders.payments.findOrderPaymentsByProviderIds({ paymentProviderIds })
22
+ : [],
23
+ deliveryProviderIds
24
+ ? modules.orders.deliveries.findDeliveryByProvidersId({ deliveryProviderIds })
25
+ : [],
26
+ ]);
27
+ if ((paymentProviderTypes?.length && !orderPayments.length) ||
28
+ (deliveryProviderTypes && !orderDeliveries.length))
29
+ return 0;
30
+ const paymentIds = orderPayments.map((p) => p._id);
31
+ const deliveryIds = orderDeliveries.map((d) => d._id);
32
+ return modules.orders.count({ ...restParams, paymentIds, deliveryIds });
5
33
  }
6
34
  //# 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;AAM5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CACvC,IAAW,EACX,MAAkB,EAClB,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,MAAM,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAC9E,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,IAAI,kBAAwC,CAAC;IAC7C,IAAI,mBAAyC,CAAC;IAE9C,IAAI,oBAAoB,EAAE,MAAM,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,OAAO,CAAC,gBAAgB;aAC7B,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,oBAA6C,EAAE,EAAE,CAAC;aAC/E,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,kBAAkB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,qBAAqB,EAAE,MAAM,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,QAAQ;aACb,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,qBAA+C,EAAE,EAAE,CAAC;aACjF,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,mBAAmB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzD,kBAAkB;YAChB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,kBAAkB,EAAE,CAAC;YAChF,CAAC,CAAC,EAAE;QACN,mBAAmB;YACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,mBAAmB,EAAE,CAAC;YAC9E,CAAC,CAAC,EAAE;KACP,CAAC,CAAC;IACH,IACE,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACvD,CAAC,qBAAqB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAElD,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":"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"}
@@ -248,7 +248,14 @@ export default [
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
+ paymentProviderTypes: [PaymentProviderType!]
255
+ deliveryProviderTypes: [DeliveryProviderType!]
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
+ paymentProviderTypes: [PaymentProviderType!]
271
+ deliveryProviderTypes: [DeliveryProviderType!]
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.11",
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
+ }
@@ -0,0 +1,46 @@
1
+ import { z } from 'zod';
2
+ import { Context } from '../../../context.js';
3
+ import { log } from '@unchainedshop/logger';
4
+
5
+ const DeliveryProviderTypeEnum = z
6
+ .enum(['PICKUP', 'SHIPPING', 'LOCAL'])
7
+ .describe('Delivery provider type');
8
+
9
+ export const DeliveryProvidersCountSchema = {
10
+ type: DeliveryProviderTypeEnum.optional(),
11
+ };
12
+
13
+ export const DeliveryProvidersCountZodSchema = z.object(DeliveryProvidersCountSchema);
14
+ export type DeliveryProvidersCountParams = z.infer<typeof DeliveryProvidersCountZodSchema>;
15
+
16
+ export async function deliveryProvidersCountHandler(
17
+ context: Context,
18
+ params: DeliveryProvidersCountParams,
19
+ ) {
20
+ const { modules, userId } = context;
21
+ const { type } = params;
22
+
23
+ try {
24
+ log('handler deliveryProvidersCountHandler', { userId, type });
25
+
26
+ const count = await modules.delivery.count(params as any);
27
+
28
+ return {
29
+ content: [
30
+ {
31
+ type: 'text' as const,
32
+ text: JSON.stringify({ count }),
33
+ },
34
+ ],
35
+ };
36
+ } catch (error) {
37
+ return {
38
+ content: [
39
+ {
40
+ type: 'text' as const,
41
+ text: `Error counting delivery providers: ${(error as Error).message}`,
42
+ },
43
+ ],
44
+ };
45
+ }
46
+ }
@@ -0,0 +1,54 @@
1
+ import { z } from 'zod';
2
+ import { Context } from '../../../context.js';
3
+ import { log } from '@unchainedshop/logger';
4
+
5
+ const DeliveryProviderTypeEnum = z
6
+ .enum(['PICKUP', 'SHIPPING', 'LOCAL'])
7
+ .describe('Delivery provider type');
8
+
9
+ export const DeliveryProvidersListSchema = {
10
+ type: DeliveryProviderTypeEnum.optional().describe('Optional filter by delivery provider type'),
11
+ queryString: z.string().min(1).optional().describe('Search by _id or adapterKey (partial match)'),
12
+ };
13
+
14
+ export const DeliveryProvidersListZodSchema = z.object(DeliveryProvidersListSchema);
15
+ export type DeliveryProvidersListParams = z.infer<typeof DeliveryProvidersListZodSchema>;
16
+ export async function deliveryProvidersListHandler(
17
+ context: Context,
18
+ params: DeliveryProvidersListParams,
19
+ ) {
20
+ const { modules, userId } = context;
21
+ const { type, queryString } = params;
22
+
23
+ try {
24
+ log('handler deliveryProvidersListHandler', { userId, type, queryString });
25
+
26
+ const selector: Record<string, any> = {};
27
+ if (type) selector.type = type;
28
+
29
+ if (queryString) {
30
+ const regex = new RegExp(queryString, 'i');
31
+ selector.$or = [{ _id: regex }, { adapterKey: regex }];
32
+ }
33
+
34
+ const providers = await modules.delivery.findProviders(selector);
35
+
36
+ return {
37
+ content: [
38
+ {
39
+ type: 'text' as const,
40
+ text: JSON.stringify({ providers }),
41
+ },
42
+ ],
43
+ };
44
+ } catch (error) {
45
+ return {
46
+ content: [
47
+ {
48
+ type: 'text' as const,
49
+ text: `Error fetching delivery providers: ${(error as Error).message}`,
50
+ },
51
+ ],
52
+ };
53
+ }
54
+ }