@unchainedshop/api 4.8.3 → 5.0.0-alpha.1

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 (109) hide show
  1. package/lib/acl.js +30 -3
  2. package/lib/api-index.d.ts +3 -1
  3. package/lib/chat/generateImageHandler.js +6 -5
  4. package/lib/context.d.ts +4 -1
  5. package/lib/context.js +9 -3
  6. package/lib/events.d.ts +2 -0
  7. package/lib/events.js +2 -0
  8. package/lib/express/createMCPMiddleware.js +1 -1
  9. package/lib/express/index.d.ts +6 -9
  10. package/lib/express/index.js +52 -125
  11. package/lib/fastify/index.d.ts +6 -9
  12. package/lib/fastify/index.js +51 -117
  13. package/lib/fastify/mcpHandler.js +1 -1
  14. package/lib/loaders/buildTextMap.js +15 -13
  15. package/lib/locale-context.d.ts +4 -2
  16. package/lib/locale-context.js +2 -6
  17. package/lib/mcp/tools/assortment/assortmentManagement.d.ts +2 -2
  18. package/lib/mcp/tools/assortment/assortmentManagement.js +2 -2
  19. package/lib/mcp/tools/assortment/handlers/getAssortment.js +1 -1
  20. package/lib/mcp/tools/assortment/schemas.d.ts +322 -141
  21. package/lib/mcp/tools/assortment/schemas.js +179 -96
  22. package/lib/mcp/tools/filter/filterManagement.d.ts +2 -2
  23. package/lib/mcp/tools/filter/filterManagement.js +2 -2
  24. package/lib/mcp/tools/filter/schemas.d.ts +184 -75
  25. package/lib/mcp/tools/filter/schemas.js +87 -51
  26. package/lib/mcp/tools/localization/getLocalizationsConfig.d.ts +1 -1
  27. package/lib/mcp/tools/localization/localizationManagement.d.ts +2 -2
  28. package/lib/mcp/tools/localization/localizationManagement.js +2 -2
  29. package/lib/mcp/tools/localization/schemas.d.ts +144 -47
  30. package/lib/mcp/tools/localization/schemas.js +51 -36
  31. package/lib/mcp/tools/order/handlers/getTopCustomers.d.ts +2 -0
  32. package/lib/mcp/tools/order/orderManagement.d.ts +2 -2
  33. package/lib/mcp/tools/order/orderManagement.js +2 -2
  34. package/lib/mcp/tools/order/schemas.d.ts +184 -75
  35. package/lib/mcp/tools/order/schemas.js +113 -51
  36. package/lib/mcp/tools/product/handlers/getProduct.js +1 -1
  37. package/lib/mcp/tools/product/productManagement.d.ts +2 -2
  38. package/lib/mcp/tools/product/productManagement.js +2 -2
  39. package/lib/mcp/tools/product/schemas.d.ts +642 -317
  40. package/lib/mcp/tools/product/schemas.js +287 -191
  41. package/lib/mcp/tools/provider/providerManagement.d.ts +2 -2
  42. package/lib/mcp/tools/provider/providerManagement.js +2 -2
  43. package/lib/mcp/tools/provider/schemas.d.ts +142 -47
  44. package/lib/mcp/tools/provider/schemas.js +67 -32
  45. package/lib/mcp/tools/quotation/handlers/getQuotation.d.ts +2 -0
  46. package/lib/mcp/tools/quotation/handlers/listQuotations.d.ts +2 -0
  47. package/lib/mcp/tools/quotation/handlers/makeQuotationProposal.d.ts +2 -0
  48. package/lib/mcp/tools/quotation/handlers/rejectQuotation.d.ts +2 -0
  49. package/lib/mcp/tools/quotation/handlers/verifyQuotation.d.ts +2 -0
  50. package/lib/mcp/tools/quotation/quotationManagement.d.ts +2 -2
  51. package/lib/mcp/tools/quotation/quotationManagement.js +2 -2
  52. package/lib/mcp/tools/quotation/schemas.d.ts +111 -40
  53. package/lib/mcp/tools/quotation/schemas.js +54 -29
  54. package/lib/mcp/tools/system/handlers/countEvents.d.ts +8 -1
  55. package/lib/mcp/tools/system/handlers/countWork.d.ts +10 -1
  56. package/lib/mcp/tools/system/handlers/countWork.js +1 -0
  57. package/lib/mcp/tools/system/handlers/index.d.ts +4 -4
  58. package/lib/mcp/tools/system/handlers/listEvents.d.ts +12 -1
  59. package/lib/mcp/tools/system/handlers/listWork.d.ts +14 -1
  60. package/lib/mcp/tools/system/handlers/listWork.js +1 -0
  61. package/lib/mcp/tools/system/schemas.d.ts +179 -84
  62. package/lib/mcp/tools/system/schemas.js +188 -67
  63. package/lib/mcp/tools/system/systemManagement.d.ts +1 -1
  64. package/lib/mcp/tools/system/systemManagement.js +1 -1
  65. package/lib/mcp/tools/users/handlers/addUserEmail.d.ts +2 -0
  66. package/lib/mcp/tools/users/handlers/createUser.d.ts +2 -0
  67. package/lib/mcp/tools/users/handlers/enrollUser.d.ts +2 -0
  68. package/lib/mcp/tools/users/handlers/getCurrentUser.d.ts +2 -0
  69. package/lib/mcp/tools/users/handlers/getUser.d.ts +2 -0
  70. package/lib/mcp/tools/users/handlers/listUsers.d.ts +2 -0
  71. package/lib/mcp/tools/users/handlers/setUserTags.d.ts +2 -0
  72. package/lib/mcp/tools/users/handlers/setUserUsername.d.ts +2 -0
  73. package/lib/mcp/tools/users/handlers/updateUser.d.ts +2 -0
  74. package/lib/mcp/tools/users/schemas.d.ts +296 -163
  75. package/lib/mcp/tools/users/schemas.js +152 -71
  76. package/lib/mcp/tools/users/usersManagement.d.ts +2 -2
  77. package/lib/mcp/tools/users/usersManagement.js +2 -2
  78. package/lib/mcp/utils/getNormalizedQuotationDetails.d.ts +2 -0
  79. package/lib/mcp/utils/getNormalizedUserDetails.d.ts +2 -0
  80. package/lib/mcp/utils/normalizeMediaUrl.js +1 -1
  81. package/lib/mcp/utils/sanitizeLocalizationEntityData.d.ts +1 -1
  82. package/lib/mcp/utils/sharedSchemas.d.ts +28 -39
  83. package/lib/mcp/utils/sharedSchemas.js +28 -47
  84. package/lib/mcp/utils/validateIsoCode.d.ts +1 -1
  85. package/lib/resolvers/mutations/accounts/changePassword.js +1 -2
  86. package/lib/resolvers/mutations/index.d.ts +1 -6
  87. package/lib/resolvers/mutations/index.js +2 -12
  88. package/lib/resolvers/mutations/orders/updateCart.js +7 -1
  89. package/lib/resolvers/mutations/users/setRoles.d.ts +1 -1
  90. package/lib/resolvers/mutations/users/setRoles.js +8 -1
  91. package/lib/resolvers/queries/events/registeredEventTypes.d.ts +1 -1
  92. package/lib/resolvers/queries/events/registeredEventTypes.js +1 -1
  93. package/lib/resolvers/queries/index.d.ts +1 -1
  94. package/lib/resolvers/queries/index.js +1 -1
  95. package/lib/resolvers/type/index.d.ts +0 -1
  96. package/lib/resolvers/type/login-method-response-types.js +2 -1
  97. package/lib/resolvers/type/order/order-delivery-pickup-types.d.ts +0 -1
  98. package/lib/resolvers/type/order/order-delivery-pickup-types.js +0 -7
  99. package/lib/resolvers/type/shop-types.js +1 -1
  100. package/lib/resolvers/type/user-types.js +3 -3
  101. package/lib/roles/all.js +5 -3
  102. package/lib/roles/index.d.ts +4 -11
  103. package/lib/roles/index.js +16 -11
  104. package/lib/roles/loggedIn.js +2 -0
  105. package/lib/schema/mutation.js +6 -44
  106. package/lib/schema/query.js +5 -5
  107. package/lib/schema/types/index.js +2 -2
  108. package/lib/schema/types/order/delivery.js +0 -2
  109. package/package.json +13 -23
@@ -1,138 +1,233 @@
1
- import { z } from 'zod/v4-mini';
2
- export declare const ProviderTypeEnum: z.ZodMiniEnum<{
1
+ import { z } from 'zod';
2
+ export declare const ProviderTypeEnum: z.ZodEnum<{
3
3
  PAYMENT: "PAYMENT";
4
4
  DELIVERY: "DELIVERY";
5
5
  WAREHOUSING: "WAREHOUSING";
6
6
  }>;
7
- export declare const PaymentProviderTypeEnum: z.ZodMiniEnum<{
7
+ export declare const PaymentProviderTypeEnum: z.ZodEnum<{
8
8
  INVOICE: "INVOICE";
9
9
  GENERIC: "GENERIC";
10
10
  CARD: "CARD";
11
11
  }>;
12
- export declare const DeliveryProviderTypeEnum: z.ZodMiniEnum<{
12
+ export declare const DeliveryProviderTypeEnum: z.ZodEnum<{
13
13
  SHIPPING: "SHIPPING";
14
14
  PICKUP: "PICKUP";
15
15
  LOCAL: "LOCAL";
16
16
  }>;
17
- export declare const WarehousingProviderTypeEnum: z.ZodMiniEnum<{
17
+ export declare const WarehousingProviderTypeEnum: z.ZodEnum<{
18
18
  PHYSICAL: "PHYSICAL";
19
19
  VIRTUAL: "VIRTUAL";
20
20
  }>;
21
- export declare const ConfigurationEntry: z.ZodMiniObject<{
22
- key: z.ZodMiniString<string>;
23
- value: z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>, z.ZodMiniBoolean<boolean>, z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>]>;
21
+ export declare const ConfigurationEntry: z.ZodObject<{
22
+ key: z.ZodString;
23
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodAny, z.ZodAny>]>;
24
24
  }, z.core.$strict>;
25
- export declare const ProviderConfigSchema: z.ZodMiniObject<{
26
- type: z.ZodMiniUnion<readonly [z.ZodMiniEnum<{
25
+ export declare const ProviderConfigSchema: z.ZodObject<{
26
+ type: z.ZodUnion<readonly [z.ZodEnum<{
27
27
  INVOICE: "INVOICE";
28
28
  GENERIC: "GENERIC";
29
29
  CARD: "CARD";
30
- }>, z.ZodMiniEnum<{
30
+ }>, z.ZodEnum<{
31
31
  SHIPPING: "SHIPPING";
32
32
  PICKUP: "PICKUP";
33
33
  LOCAL: "LOCAL";
34
- }>, z.ZodMiniEnum<{
34
+ }>, z.ZodEnum<{
35
35
  PHYSICAL: "PHYSICAL";
36
36
  VIRTUAL: "VIRTUAL";
37
37
  }>]>;
38
- adapterKey: z.ZodMiniString<string>;
38
+ adapterKey: z.ZodString;
39
39
  }, z.core.$strip>;
40
40
  export declare const actionValidators: {
41
- readonly CREATE: z.ZodMiniObject<{
42
- providerType: z.ZodMiniEnum<{
41
+ readonly CREATE: z.ZodObject<{
42
+ providerType: z.ZodEnum<{
43
43
  PAYMENT: "PAYMENT";
44
44
  DELIVERY: "DELIVERY";
45
45
  WAREHOUSING: "WAREHOUSING";
46
46
  }>;
47
- provider: z.ZodMiniObject<{
48
- type: z.ZodMiniUnion<readonly [z.ZodMiniEnum<{
47
+ provider: z.ZodObject<{
48
+ type: z.ZodUnion<readonly [z.ZodEnum<{
49
49
  INVOICE: "INVOICE";
50
50
  GENERIC: "GENERIC";
51
51
  CARD: "CARD";
52
- }>, z.ZodMiniEnum<{
52
+ }>, z.ZodEnum<{
53
53
  SHIPPING: "SHIPPING";
54
54
  PICKUP: "PICKUP";
55
55
  LOCAL: "LOCAL";
56
- }>, z.ZodMiniEnum<{
56
+ }>, z.ZodEnum<{
57
57
  PHYSICAL: "PHYSICAL";
58
58
  VIRTUAL: "VIRTUAL";
59
59
  }>]>;
60
- adapterKey: z.ZodMiniString<string>;
60
+ adapterKey: z.ZodString;
61
61
  }, z.core.$strip>;
62
62
  }, z.core.$strip>;
63
- readonly UPDATE: z.ZodMiniObject<{
64
- providerType: z.ZodMiniEnum<{
63
+ readonly UPDATE: z.ZodObject<{
64
+ providerType: z.ZodEnum<{
65
65
  PAYMENT: "PAYMENT";
66
66
  DELIVERY: "DELIVERY";
67
67
  WAREHOUSING: "WAREHOUSING";
68
68
  }>;
69
- providerId: z.ZodMiniString<string>;
70
- configuration: z.ZodMiniArray<z.ZodMiniObject<{
71
- key: z.ZodMiniString<string>;
72
- value: z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>, z.ZodMiniBoolean<boolean>, z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>]>;
69
+ providerId: z.ZodString;
70
+ configuration: z.ZodArray<z.ZodObject<{
71
+ key: z.ZodString;
72
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodAny, z.ZodAny>]>;
73
73
  }, z.core.$strict>>;
74
74
  }, z.core.$strip>;
75
- readonly REMOVE: z.ZodMiniObject<{
76
- providerType: z.ZodMiniEnum<{
75
+ readonly REMOVE: z.ZodObject<{
76
+ providerType: z.ZodEnum<{
77
77
  PAYMENT: "PAYMENT";
78
78
  DELIVERY: "DELIVERY";
79
79
  WAREHOUSING: "WAREHOUSING";
80
80
  }>;
81
- providerId: z.ZodMiniString<string>;
81
+ providerId: z.ZodString;
82
82
  }, z.core.$strip>;
83
- readonly GET: z.ZodMiniObject<{
84
- providerType: z.ZodMiniEnum<{
83
+ readonly GET: z.ZodObject<{
84
+ providerType: z.ZodEnum<{
85
85
  PAYMENT: "PAYMENT";
86
86
  DELIVERY: "DELIVERY";
87
87
  WAREHOUSING: "WAREHOUSING";
88
88
  }>;
89
- providerId: z.ZodMiniString<string>;
89
+ providerId: z.ZodString;
90
90
  }, z.core.$strip>;
91
- readonly LIST: z.ZodMiniObject<{
92
- queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
93
- includeInactive: z.ZodMiniDefault<z.ZodMiniBoolean<boolean>>;
94
- providerType: z.ZodMiniEnum<{
91
+ readonly LIST: z.ZodObject<{
92
+ queryString: z.ZodOptional<z.ZodString>;
93
+ includeInactive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
94
+ providerType: z.ZodEnum<{
95
95
  PAYMENT: "PAYMENT";
96
96
  DELIVERY: "DELIVERY";
97
97
  WAREHOUSING: "WAREHOUSING";
98
98
  }>;
99
- typeFilter: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniEnum<{
99
+ typeFilter: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
100
100
  INVOICE: "INVOICE";
101
101
  GENERIC: "GENERIC";
102
102
  CARD: "CARD";
103
- }>, z.ZodMiniEnum<{
103
+ }>, z.ZodEnum<{
104
104
  SHIPPING: "SHIPPING";
105
105
  PICKUP: "PICKUP";
106
106
  LOCAL: "LOCAL";
107
- }>, z.ZodMiniEnum<{
107
+ }>, z.ZodEnum<{
108
108
  PHYSICAL: "PHYSICAL";
109
109
  VIRTUAL: "VIRTUAL";
110
110
  }>]>>;
111
111
  }, z.core.$strip>;
112
- readonly INTERFACES: z.ZodMiniObject<{
113
- providerType: z.ZodMiniEnum<{
112
+ readonly INTERFACES: z.ZodObject<{
113
+ providerType: z.ZodEnum<{
114
114
  PAYMENT: "PAYMENT";
115
115
  DELIVERY: "DELIVERY";
116
116
  WAREHOUSING: "WAREHOUSING";
117
117
  }>;
118
- typeFilter: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniEnum<{
118
+ typeFilter: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
119
119
  INVOICE: "INVOICE";
120
120
  GENERIC: "GENERIC";
121
121
  CARD: "CARD";
122
- }>, z.ZodMiniEnum<{
122
+ }>, z.ZodEnum<{
123
123
  SHIPPING: "SHIPPING";
124
124
  PICKUP: "PICKUP";
125
125
  LOCAL: "LOCAL";
126
- }>, z.ZodMiniEnum<{
126
+ }>, z.ZodEnum<{
127
127
  PHYSICAL: "PHYSICAL";
128
128
  VIRTUAL: "VIRTUAL";
129
129
  }>]>>;
130
130
  }, z.core.$strip>;
131
131
  };
132
132
  export declare const ProviderManagementSchema: {
133
- action: z.core.$ZodType<string>;
134
- } & Record<string, z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
135
- export type { ManagementParams as ProviderManagementParams } from '../../utils/sharedSchemas.ts';
133
+ queryString: z.ZodOptional<z.ZodString>;
134
+ includeInactive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
135
+ action: z.ZodEnum<{
136
+ GET: "GET";
137
+ CREATE: "CREATE";
138
+ UPDATE: "UPDATE";
139
+ REMOVE: "REMOVE";
140
+ LIST: "LIST";
141
+ INTERFACES: "INTERFACES";
142
+ }>;
143
+ providerType: z.ZodEnum<{
144
+ PAYMENT: "PAYMENT";
145
+ DELIVERY: "DELIVERY";
146
+ WAREHOUSING: "WAREHOUSING";
147
+ }>;
148
+ provider: z.ZodOptional<z.ZodObject<{
149
+ type: z.ZodUnion<readonly [z.ZodEnum<{
150
+ INVOICE: "INVOICE";
151
+ GENERIC: "GENERIC";
152
+ CARD: "CARD";
153
+ }>, z.ZodEnum<{
154
+ SHIPPING: "SHIPPING";
155
+ PICKUP: "PICKUP";
156
+ LOCAL: "LOCAL";
157
+ }>, z.ZodEnum<{
158
+ PHYSICAL: "PHYSICAL";
159
+ VIRTUAL: "VIRTUAL";
160
+ }>]>;
161
+ adapterKey: z.ZodString;
162
+ }, z.core.$strip>>;
163
+ providerId: z.ZodOptional<z.ZodString>;
164
+ configuration: z.ZodOptional<z.ZodArray<z.ZodObject<{
165
+ key: z.ZodString;
166
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodAny, z.ZodAny>]>;
167
+ }, z.core.$strict>>>;
168
+ typeFilter: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
169
+ INVOICE: "INVOICE";
170
+ GENERIC: "GENERIC";
171
+ CARD: "CARD";
172
+ }>, z.ZodEnum<{
173
+ SHIPPING: "SHIPPING";
174
+ PICKUP: "PICKUP";
175
+ LOCAL: "LOCAL";
176
+ }>, z.ZodEnum<{
177
+ PHYSICAL: "PHYSICAL";
178
+ VIRTUAL: "VIRTUAL";
179
+ }>]>>;
180
+ };
181
+ export declare const ProviderManagementZodSchema: z.ZodObject<{
182
+ queryString: z.ZodOptional<z.ZodString>;
183
+ includeInactive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
184
+ action: z.ZodEnum<{
185
+ GET: "GET";
186
+ CREATE: "CREATE";
187
+ UPDATE: "UPDATE";
188
+ REMOVE: "REMOVE";
189
+ LIST: "LIST";
190
+ INTERFACES: "INTERFACES";
191
+ }>;
192
+ providerType: z.ZodEnum<{
193
+ PAYMENT: "PAYMENT";
194
+ DELIVERY: "DELIVERY";
195
+ WAREHOUSING: "WAREHOUSING";
196
+ }>;
197
+ provider: z.ZodOptional<z.ZodObject<{
198
+ type: z.ZodUnion<readonly [z.ZodEnum<{
199
+ INVOICE: "INVOICE";
200
+ GENERIC: "GENERIC";
201
+ CARD: "CARD";
202
+ }>, z.ZodEnum<{
203
+ SHIPPING: "SHIPPING";
204
+ PICKUP: "PICKUP";
205
+ LOCAL: "LOCAL";
206
+ }>, z.ZodEnum<{
207
+ PHYSICAL: "PHYSICAL";
208
+ VIRTUAL: "VIRTUAL";
209
+ }>]>;
210
+ adapterKey: z.ZodString;
211
+ }, z.core.$strip>>;
212
+ providerId: z.ZodOptional<z.ZodString>;
213
+ configuration: z.ZodOptional<z.ZodArray<z.ZodObject<{
214
+ key: z.ZodString;
215
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodAny, z.ZodAny>]>;
216
+ }, z.core.$strict>>>;
217
+ typeFilter: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
218
+ INVOICE: "INVOICE";
219
+ GENERIC: "GENERIC";
220
+ CARD: "CARD";
221
+ }>, z.ZodEnum<{
222
+ SHIPPING: "SHIPPING";
223
+ PICKUP: "PICKUP";
224
+ LOCAL: "LOCAL";
225
+ }>, z.ZodEnum<{
226
+ PHYSICAL: "PHYSICAL";
227
+ VIRTUAL: "VIRTUAL";
228
+ }>]>>;
229
+ }, z.core.$strip>;
230
+ export type ProviderManagementParams = z.infer<typeof ProviderManagementZodSchema>;
136
231
  export type ActionName = keyof typeof actionValidators;
137
232
  export type Params<T extends ActionName> = z.infer<(typeof actionValidators)[T]>;
138
233
  export type Handler<T extends ActionName> = (providerModule: any, params: Params<T>) => Promise<unknown>;
@@ -1,68 +1,103 @@
1
- import { z } from 'zod/v4-mini';
2
- import { SearchSchema, createManagementSchemaFromValidators } from "../../utils/sharedSchemas.js";
1
+ import { z } from 'zod';
2
+ import { SearchSchema } from "../../utils/sharedSchemas.js";
3
3
  export const ProviderTypeEnum = z
4
4
  .enum(['PAYMENT', 'DELIVERY', 'WAREHOUSING'])
5
- .check(z.describe('Type of provider - PAYMENT for payment processing (cards, invoices), DELIVERY for shipping/pickup methods, WAREHOUSING for inventory management'));
5
+ .describe('Type of provider - PAYMENT for payment processing (cards, invoices), DELIVERY for shipping/pickup methods, WAREHOUSING for inventory management');
6
6
  export const PaymentProviderTypeEnum = z.enum(['CARD', 'INVOICE', 'GENERIC']);
7
7
  export const DeliveryProviderTypeEnum = z.enum(['PICKUP', 'SHIPPING', 'LOCAL']);
8
8
  export const WarehousingProviderTypeEnum = z.enum(['PHYSICAL', 'VIRTUAL']);
9
- export const ConfigurationEntry = z.strictObject({
9
+ export const ConfigurationEntry = z
10
+ .object({
10
11
  key: z
11
12
  .string()
12
- .check(z.minLength(1), z.describe('Configuration parameter name (e.g., "apiKey", "webhookUrl", "sandbox")')),
13
+ .min(1)
14
+ .describe('Configuration parameter name (e.g., "apiKey", "webhookUrl", "sandbox")'),
13
15
  value: z
14
16
  .union([z.string(), z.number(), z.boolean(), z.record(z.any(), z.any())])
15
- .check(z.describe('Configuration parameter value (string, number, boolean, or object depending on the setting)')),
16
- });
17
+ .describe('Configuration parameter value (string, number, boolean, or object depending on the setting)'),
18
+ })
19
+ .strict();
17
20
  export const ProviderConfigSchema = z.object({
18
21
  type: z
19
22
  .union([PaymentProviderTypeEnum, DeliveryProviderTypeEnum, WarehousingProviderTypeEnum])
20
- .check(z.describe('Specific provider subtype: PAYMENT types (CARD, INVOICE, GENERIC), DELIVERY types (PICKUP, SHIPPING, LOCAL), WAREHOUSING types (PHYSICAL, VIRTUAL) - must match providerType category')),
23
+ .describe('Specific provider subtype: PAYMENT types (CARD, INVOICE, GENERIC), DELIVERY types (PICKUP, SHIPPING, LOCAL), WAREHOUSING types (PHYSICAL, VIRTUAL) - must match providerType category'),
21
24
  adapterKey: z
22
25
  .string()
23
- .check(z.minLength(1), z.describe('Unique adapter key that identifies the specific provider implementation - get available keys from provider_interfaces tool')),
26
+ .min(1)
27
+ .describe('Unique adapter key that identifies the specific provider implementation - get available keys from provider_interfaces tool'),
24
28
  });
25
29
  export const actionValidators = {
26
30
  CREATE: z.object({
27
- providerType: ProviderTypeEnum.check(z.describe('Type of provider system to operate on')),
28
- provider: ProviderConfigSchema.check(z.describe('Provider configuration including type and adapter')),
31
+ providerType: ProviderTypeEnum.describe('Type of provider system to operate on'),
32
+ provider: ProviderConfigSchema.describe('Provider configuration including type and adapter'),
29
33
  }),
30
34
  UPDATE: z.object({
31
- providerType: ProviderTypeEnum.check(z.describe('Type of provider system to operate on')),
32
- providerId: z
33
- .string()
34
- .check(z.minLength(1), z.describe('Unique identifier of the specific provider instance')),
35
- configuration: z.array(ConfigurationEntry).check(z.minLength(1), z.describe('Array of configuration key-value pairs to update - each provider adapter has different required/optional configuration parameters'), z.refine((data) => {
35
+ providerType: ProviderTypeEnum.describe('Type of provider system to operate on'),
36
+ providerId: z.string().min(1).describe('Unique identifier of the specific provider instance'),
37
+ configuration: z
38
+ .array(ConfigurationEntry)
39
+ .min(1)
40
+ .describe('Array of configuration key-value pairs to update - each provider adapter has different required/optional configuration parameters')
41
+ .refine((data) => {
36
42
  const keys = data.map((entry) => entry.key);
37
43
  return new Set(keys).size === keys.length;
38
44
  }, {
39
45
  message: 'Duplicate configuration keys are not allowed - each key must be unique.',
40
- })),
46
+ }),
41
47
  }),
42
48
  REMOVE: z.object({
43
- providerType: ProviderTypeEnum.check(z.describe('Type of provider system to operate on')),
44
- providerId: z
45
- .string()
46
- .check(z.minLength(1), z.describe('Unique identifier of the specific provider instance')),
49
+ providerType: ProviderTypeEnum.describe('Type of provider system to operate on'),
50
+ providerId: z.string().min(1).describe('Unique identifier of the specific provider instance'),
47
51
  }),
48
52
  GET: z.object({
49
- providerType: ProviderTypeEnum.check(z.describe('Type of provider system to operate on')),
50
- providerId: z
51
- .string()
52
- .check(z.minLength(1), z.describe('Unique identifier of the specific provider instance')),
53
+ providerType: ProviderTypeEnum.describe('Type of provider system to operate on'),
54
+ providerId: z.string().min(1).describe('Unique identifier of the specific provider instance'),
53
55
  }),
54
56
  LIST: z.object({
55
- providerType: ProviderTypeEnum.check(z.describe('Type of provider system to operate on')),
57
+ providerType: ProviderTypeEnum.describe('Type of provider system to operate on'),
56
58
  typeFilter: z
57
- .optional(z.union([PaymentProviderTypeEnum, DeliveryProviderTypeEnum, WarehousingProviderTypeEnum]))
58
- .check(z.describe('Optional filter by specific subtype: PAYMENT (CARD, INVOICE, GENERIC), DELIVERY (PICKUP, SHIPPING, LOCAL), WAREHOUSING (PHYSICAL, VIRTUAL)')),
59
+ .union([PaymentProviderTypeEnum, DeliveryProviderTypeEnum, WarehousingProviderTypeEnum])
60
+ .optional()
61
+ .describe('Optional filter by specific subtype: PAYMENT (CARD, INVOICE, GENERIC), DELIVERY (PICKUP, SHIPPING, LOCAL), WAREHOUSING (PHYSICAL, VIRTUAL)'),
59
62
  ...SearchSchema,
60
63
  }),
61
64
  INTERFACES: z.object({
62
- providerType: ProviderTypeEnum.check(z.describe('Type of provider system to operate on')),
65
+ providerType: ProviderTypeEnum.describe('Type of provider system to operate on'),
63
66
  typeFilter: z
64
- .optional(z.union([PaymentProviderTypeEnum, DeliveryProviderTypeEnum, WarehousingProviderTypeEnum]))
65
- .check(z.describe('Optional filter by specific subtype: PAYMENT (CARD, INVOICE, GENERIC), DELIVERY (PICKUP, SHIPPING, LOCAL), WAREHOUSING (PHYSICAL, VIRTUAL)')),
67
+ .union([PaymentProviderTypeEnum, DeliveryProviderTypeEnum, WarehousingProviderTypeEnum])
68
+ .optional()
69
+ .describe('Optional filter by specific subtype: PAYMENT (CARD, INVOICE, GENERIC), DELIVERY (PICKUP, SHIPPING, LOCAL), WAREHOUSING (PHYSICAL, VIRTUAL)'),
66
70
  }),
67
71
  };
68
- export const ProviderManagementSchema = createManagementSchemaFromValidators(actionValidators);
72
+ export const ProviderManagementSchema = {
73
+ action: z
74
+ .enum(['CREATE', 'UPDATE', 'REMOVE', 'GET', 'LIST', 'INTERFACES'])
75
+ .describe('Provider action: CREATE (new provider), UPDATE (modify configuration), REMOVE (soft delete), GET (retrieve single), LIST (find multiple), INTERFACES (available adapters)'),
76
+ providerType: ProviderTypeEnum.describe('Type of provider system to operate on'),
77
+ provider: ProviderConfigSchema.optional().describe('Provider configuration including type and adapter (required for CREATE action)'),
78
+ providerId: z
79
+ .string()
80
+ .min(1)
81
+ .optional()
82
+ .describe('Unique identifier of the specific provider instance (required for UPDATE, REMOVE, GET actions)'),
83
+ configuration: z
84
+ .array(ConfigurationEntry)
85
+ .min(1)
86
+ .optional()
87
+ .describe('Array of configuration key-value pairs to update (required for UPDATE action) - each provider adapter has different required/optional configuration parameters')
88
+ .refine((data) => {
89
+ if (!data)
90
+ return true;
91
+ const keys = data.map((entry) => entry.key);
92
+ return new Set(keys).size === keys.length;
93
+ }, {
94
+ message: 'Duplicate configuration keys are not allowed - each key must be unique.',
95
+ path: ['configuration'],
96
+ }),
97
+ typeFilter: z
98
+ .union([PaymentProviderTypeEnum, DeliveryProviderTypeEnum, WarehousingProviderTypeEnum])
99
+ .optional()
100
+ .describe('Optional filter by specific subtype for LIST/INTERFACES action: PAYMENT (CARD, INVOICE, GENERIC), DELIVERY (PICKUP, SHIPPING, LOCAL), WAREHOUSING (PHYSICAL, VIRTUAL)'),
101
+ ...SearchSchema,
102
+ };
103
+ export const ProviderManagementZodSchema = z.object(ProviderManagementSchema);
@@ -25,6 +25,8 @@ export default function getQuotation(context: Context, params: Params<'GET'>): P
25
25
  pushSubscriptions: import("@unchainedshop/core-users").PushSubscriptionObject[];
26
26
  username?: string;
27
27
  meta?: any;
28
+ tokenVersion?: number;
29
+ oidcLogoutAt?: Date;
28
30
  created: Date;
29
31
  updated?: Date;
30
32
  };
@@ -26,6 +26,8 @@ export default function listQuotations(context: Context, params: Params<'LIST'>)
26
26
  pushSubscriptions: import("@unchainedshop/core-users").PushSubscriptionObject[];
27
27
  username?: string;
28
28
  meta?: any;
29
+ tokenVersion?: number;
30
+ oidcLogoutAt?: Date;
29
31
  created: Date;
30
32
  updated?: Date;
31
33
  };
@@ -26,6 +26,8 @@ export default function makeQuotationProposal(context: Context, params: Params<'
26
26
  pushSubscriptions: import("@unchainedshop/core-users").PushSubscriptionObject[];
27
27
  username?: string;
28
28
  meta?: any;
29
+ tokenVersion?: number;
30
+ oidcLogoutAt?: Date;
29
31
  created: Date;
30
32
  updated?: Date;
31
33
  };
@@ -26,6 +26,8 @@ export default function rejectQuotation(context: Context, params: Params<'REJECT
26
26
  pushSubscriptions: import("@unchainedshop/core-users").PushSubscriptionObject[];
27
27
  username?: string;
28
28
  meta?: any;
29
+ tokenVersion?: number;
30
+ oidcLogoutAt?: Date;
29
31
  created: Date;
30
32
  updated?: Date;
31
33
  };
@@ -26,6 +26,8 @@ export default function verifyQuotation(context: Context, params: Params<'VERIFY
26
26
  pushSubscriptions: import("@unchainedshop/core-users").PushSubscriptionObject[];
27
27
  username?: string;
28
28
  meta?: any;
29
+ tokenVersion?: number;
30
+ oidcLogoutAt?: Date;
29
31
  created: Date;
30
32
  updated?: Date;
31
33
  };
@@ -1,6 +1,6 @@
1
1
  import type { Context } from '../../../context.ts';
2
- import { QuotationManagementSchema, type QuotationManagementParams } from './schemas.ts';
3
- export { QuotationManagementSchema };
2
+ import { QuotationManagementSchema, QuotationManagementZodSchema, type QuotationManagementParams } from './schemas.ts';
3
+ export { QuotationManagementSchema, QuotationManagementZodSchema };
4
4
  export type { QuotationManagementParams };
5
5
  export declare function quotationManagement(context: Context, params: QuotationManagementParams): Promise<{
6
6
  content: {
@@ -1,8 +1,8 @@
1
1
  import { log } from '@unchainedshop/logger';
2
- import { actionValidators, QuotationManagementSchema, } from "./schemas.js";
2
+ import { actionValidators, QuotationManagementSchema, QuotationManagementZodSchema, } from "./schemas.js";
3
3
  import actionHandlers from "./handlers/index.js";
4
4
  import { createMcpResponse, createMcpErrorResponse } from "../../utils/sharedSchemas.js";
5
- export { QuotationManagementSchema };
5
+ export { QuotationManagementSchema, QuotationManagementZodSchema };
6
6
  export async function quotationManagement(context, params) {
7
7
  const { action, ...actionParams } = params;
8
8
  log('MCP handler quotationManagement ', { userId: context.userId, params });