ebay-mcp-remote-edition 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +755 -0
  3. package/build/api/account-management/account.js +301 -0
  4. package/build/api/analytics-and-report/analytics.js +102 -0
  5. package/build/api/client-trading.js +96 -0
  6. package/build/api/client.js +173 -0
  7. package/build/api/communication/feedback.js +119 -0
  8. package/build/api/communication/message.js +131 -0
  9. package/build/api/communication/negotiation.js +97 -0
  10. package/build/api/communication/notification.js +373 -0
  11. package/build/api/developer/developer.js +81 -0
  12. package/build/api/index.js +109 -0
  13. package/build/api/listing-management/inventory.js +640 -0
  14. package/build/api/listing-metadata/metadata.js +485 -0
  15. package/build/api/listing-metadata/taxonomy.js +58 -0
  16. package/build/api/marketing-and-promotions/marketing.js +768 -0
  17. package/build/api/marketing-and-promotions/recommendation.js +32 -0
  18. package/build/api/order-management/dispute.js +69 -0
  19. package/build/api/order-management/fulfillment.js +89 -0
  20. package/build/api/other/compliance.js +47 -0
  21. package/build/api/other/edelivery.js +219 -0
  22. package/build/api/other/identity.js +24 -0
  23. package/build/api/other/translation.js +22 -0
  24. package/build/api/other/vero.js +48 -0
  25. package/build/api/trading/trading.js +78 -0
  26. package/build/auth/kv-store.js +40 -0
  27. package/build/auth/multi-user-store.js +120 -0
  28. package/build/auth/oauth-metadata.js +59 -0
  29. package/build/auth/oauth-middleware.js +99 -0
  30. package/build/auth/oauth-types.js +4 -0
  31. package/build/auth/oauth.js +235 -0
  32. package/build/auth/scope-utils.js +304 -0
  33. package/build/auth/token-store.js +46 -0
  34. package/build/auth/token-verifier.js +172 -0
  35. package/build/config/environment.js +297 -0
  36. package/build/index.d.ts +1 -0
  37. package/build/index.js +129 -0
  38. package/build/schemas/account-management/account.js +375 -0
  39. package/build/schemas/analytics/analytics.js +191 -0
  40. package/build/schemas/communication/messages.js +345 -0
  41. package/build/schemas/fulfillment/orders.js +338 -0
  42. package/build/schemas/index.js +68 -0
  43. package/build/schemas/inventory-management/inventory.js +471 -0
  44. package/build/schemas/marketing/marketing.js +1103 -0
  45. package/build/schemas/metadata/metadata.js +618 -0
  46. package/build/schemas/other/other-apis.js +390 -0
  47. package/build/schemas/taxonomy/taxonomy.js +575 -0
  48. package/build/scripts/auto-setup.js +364 -0
  49. package/build/scripts/dev-sync.js +512 -0
  50. package/build/scripts/diagnostics.js +301 -0
  51. package/build/scripts/download-specs.js +116 -0
  52. package/build/scripts/interactive-setup.js +757 -0
  53. package/build/scripts/setup.js +1515 -0
  54. package/build/scripts/update-api-status-doc.js +44 -0
  55. package/build/server-http.d.ts +1 -0
  56. package/build/server-http.js +581 -0
  57. package/build/tools/definitions/account-with-schemas.js +170 -0
  58. package/build/tools/definitions/account.js +428 -0
  59. package/build/tools/definitions/analytics.js +66 -0
  60. package/build/tools/definitions/communication.js +394 -0
  61. package/build/tools/definitions/developer.js +195 -0
  62. package/build/tools/definitions/fulfillment.js +326 -0
  63. package/build/tools/definitions/index.js +41 -0
  64. package/build/tools/definitions/inventory.js +464 -0
  65. package/build/tools/definitions/marketing.js +1486 -0
  66. package/build/tools/definitions/metadata.js +188 -0
  67. package/build/tools/definitions/other.js +309 -0
  68. package/build/tools/definitions/taxonomy.js +64 -0
  69. package/build/tools/definitions/token-management.js +148 -0
  70. package/build/tools/definitions/trading.js +71 -0
  71. package/build/tools/index.js +1200 -0
  72. package/build/tools/schemas.js +667 -0
  73. package/build/tools/tool-definitions.js +3534 -0
  74. package/build/types/application-settings/developerAnalyticsV1BetaOas3.js +5 -0
  75. package/build/types/application-settings/developerClientRegistrationV1Oas3.js +5 -0
  76. package/build/types/application-settings/developerKeyManagementV1Oas3.js +5 -0
  77. package/build/types/ebay-enums.js +1330 -0
  78. package/build/types/ebay.js +123 -0
  79. package/build/types/index.js +10 -0
  80. package/build/types/sell-apps/account-management/sellAccountV1Oas3.js +5 -0
  81. package/build/types/sell-apps/analytics-and-report/sellAnalyticsV1Oas3.js +5 -0
  82. package/build/types/sell-apps/communication/commerceFeedbackV1BetaOas3.js +5 -0
  83. package/build/types/sell-apps/communication/commerceMessageV1Oas3.js +5 -0
  84. package/build/types/sell-apps/communication/commerceNotificationV1Oas3.js +5 -0
  85. package/build/types/sell-apps/communication/sellNegotiationV1Oas3.js +5 -0
  86. package/build/types/sell-apps/listing-management/sellInventoryV1Oas3.js +5 -0
  87. package/build/types/sell-apps/listing-metadata/sellMetadataV1Oas3.js +5 -0
  88. package/build/types/sell-apps/markeitng-and-promotions/sellMarketingV1Oas3.js +5 -0
  89. package/build/types/sell-apps/markeitng-and-promotions/sellRecommendationV1Oas3.js +5 -0
  90. package/build/types/sell-apps/order-management/sellFulfillmentV1Oas3.js +5 -0
  91. package/build/types/sell-apps/other-apis/commerceIdentityV1Oas3.js +5 -0
  92. package/build/types/sell-apps/other-apis/commerceTranslationV1BetaOas3.js +5 -0
  93. package/build/types/sell-apps/other-apis/commerceVeroV1Oas3.js +5 -0
  94. package/build/types/sell-apps/other-apis/sellComplianceV1Oas3.js +5 -0
  95. package/build/types/sell-apps/other-apis/sellEdeliveryInternationalShippingOas3.js +5 -0
  96. package/build/types/sell-apps/other-apis/sellMarketingV1Oas3.js +5 -0
  97. package/build/types/sell-apps/other-apis/sellRecommendationV1Oas3.js +5 -0
  98. package/build/utils/account-management/account.js +831 -0
  99. package/build/utils/api-status-feed.js +83 -0
  100. package/build/utils/communication/feedback.js +216 -0
  101. package/build/utils/communication/message.js +242 -0
  102. package/build/utils/communication/negotiation.js +150 -0
  103. package/build/utils/communication/notification.js +369 -0
  104. package/build/utils/date-converter.js +160 -0
  105. package/build/utils/llm-client-detector.js +758 -0
  106. package/build/utils/logger.js +198 -0
  107. package/build/utils/oauth-helper.js +315 -0
  108. package/build/utils/order-management/dispute.js +369 -0
  109. package/build/utils/order-management/fulfillment.js +205 -0
  110. package/build/utils/other/compliance.js +76 -0
  111. package/build/utils/other/edelivery.js +241 -0
  112. package/build/utils/other/identity.js +13 -0
  113. package/build/utils/other/translation.js +41 -0
  114. package/build/utils/other/vero.js +90 -0
  115. package/build/utils/scope-helper.js +207 -0
  116. package/build/utils/security-checker.js +248 -0
  117. package/build/utils/setup-validator.js +305 -0
  118. package/build/utils/token-utils.js +40 -0
  119. package/build/utils/version.js +56 -0
  120. package/docs/auth/production_scopes.json +111 -0
  121. package/docs/auth/sandbox_scopes.json +142 -0
  122. package/package.json +122 -0
  123. package/public/icons/1024x1024.png +0 -0
  124. package/public/icons/128x128.png +0 -0
  125. package/public/icons/16x16.png +0 -0
  126. package/public/icons/256x256.png +0 -0
  127. package/public/icons/32x32.png +0 -0
  128. package/public/icons/48x48.png +0 -0
  129. package/public/icons/512x512.png +0 -0
@@ -0,0 +1,618 @@
1
+ import { z } from 'zod';
2
+ import { zodToJsonSchema } from 'zod-to-json-schema';
3
+ /**
4
+ * Metadata API Schemas
5
+ *
6
+ * This file contains Zod schemas for all Metadata API endpoints.
7
+ * Schemas are organized by endpoint and include both input and output validation.
8
+ */
9
+ // ============================================================================
10
+ // Common/Shared Schemas
11
+ // ============================================================================
12
+ const errorParameterSchema = z.object({
13
+ name: z.string().optional(),
14
+ value: z.string().optional(),
15
+ });
16
+ const errorSchema = z.object({
17
+ category: z.string().optional(),
18
+ domain: z.string().optional(),
19
+ errorId: z.number().optional(),
20
+ inputRefIds: z.array(z.string()).optional(),
21
+ longMessage: z.string().optional(),
22
+ message: z.string().optional(),
23
+ outputRefIds: z.array(z.string()).optional(),
24
+ parameters: z.array(errorParameterSchema).optional(),
25
+ subdomain: z.string().optional(),
26
+ });
27
+ const amountSchema = z.object({
28
+ currency: z.string().optional(),
29
+ value: z.string().optional(),
30
+ });
31
+ const timeDurationSchema = z.object({
32
+ unit: z.string().optional(),
33
+ value: z.number().optional(),
34
+ });
35
+ // ============================================================================
36
+ // Marketplace Policies - Automotive Compatibility
37
+ // ============================================================================
38
+ export const automotivePartsCompatibilityPolicySchema = z.object({
39
+ categoryId: z.string().optional(),
40
+ categoryTreeId: z.string().optional(),
41
+ compatibilityBasedOn: z.string().optional(),
42
+ compatibleVehicleTypes: z.array(z.string()).optional(),
43
+ maxNumberOfCompatibleVehicles: z.number().optional(),
44
+ });
45
+ export const automotivePartsCompatibilityPolicyResponseSchema = z.object({
46
+ automotivePartsCompatibilityPolicies: z
47
+ .array(automotivePartsCompatibilityPolicySchema)
48
+ .optional(),
49
+ warnings: z.array(errorSchema).optional(),
50
+ });
51
+ // ============================================================================
52
+ // Marketplace Policies - Category Policies
53
+ // ============================================================================
54
+ export const categoryPolicySchema = z.object({
55
+ autoPayEnabled: z.boolean().optional(),
56
+ b2bVatEnabled: z.boolean().optional(),
57
+ categoryId: z.string().optional(),
58
+ categoryTreeId: z.string().optional(),
59
+ eanSupport: z.string().optional(),
60
+ expired: z.boolean().optional(),
61
+ intangibleEnabled: z.boolean().optional(),
62
+ isbnSupport: z.string().optional(),
63
+ lsd: z.boolean().optional(),
64
+ minimumReservePrice: z.number().optional(),
65
+ orpa: z.boolean().optional(),
66
+ orra: z.boolean().optional(),
67
+ paymentMethods: z.array(z.string()).optional(),
68
+ reduceReserveAllowed: z.boolean().optional(),
69
+ upcSupport: z.string().optional(),
70
+ valueCategory: z.boolean().optional(),
71
+ virtual: z.boolean().optional(),
72
+ });
73
+ export const categoryPolicyResponseSchema = z.object({
74
+ categoryPolicies: z.array(categoryPolicySchema).optional(),
75
+ warnings: z.array(errorSchema).optional(),
76
+ });
77
+ // ============================================================================
78
+ // Marketplace Policies - Classified Ads
79
+ // ============================================================================
80
+ export const classifiedAdPolicySchema = z.object({
81
+ adFormatEnabled: z.string().optional(),
82
+ categoryId: z.string().optional(),
83
+ categoryTreeId: z.string().optional(),
84
+ classifiedAdAutoAcceptEnabled: z.boolean().optional(),
85
+ classifiedAdAutoDeclineEnabled: z.boolean().optional(),
86
+ classifiedAdBestOfferEnabled: z.string().optional(),
87
+ classifiedAdCompanyNameEnabled: z.boolean().optional(),
88
+ classifiedAdContactByAddressEnabled: z.boolean().optional(),
89
+ classifiedAdContactByEmailEnabled: z.boolean().optional(),
90
+ classifiedAdContactByPhoneEnabled: z.boolean().optional(),
91
+ classifiedAdCounterOfferEnabled: z.boolean().optional(),
92
+ classifiedAdPaymentMethodEnabled: z.string().optional(),
93
+ classifiedAdPhoneCount: z.number().optional(),
94
+ classifiedAdShippingMethodEnabled: z.boolean().optional(),
95
+ classifiedAdStreetCount: z.number().optional(),
96
+ sellerContactDetailsEnabled: z.boolean().optional(),
97
+ });
98
+ export const classifiedAdPolicyResponseSchema = z.object({
99
+ classifiedAdPolicies: z.array(classifiedAdPolicySchema).optional(),
100
+ warnings: z.array(errorSchema).optional(),
101
+ });
102
+ // ============================================================================
103
+ // Marketplace Policies - Currencies
104
+ // ============================================================================
105
+ export const currencySchema = z.object({
106
+ code: z.string().optional(),
107
+ description: z.string().optional(),
108
+ });
109
+ export const getCurrenciesResponseSchema = z.object({
110
+ defaultCurrency: currencySchema.optional(),
111
+ marketplaceId: z.string().optional(),
112
+ });
113
+ // ============================================================================
114
+ // Marketplace Policies - Extended Producer Responsibility (EPR)
115
+ // ============================================================================
116
+ export const extendedProducerResponsibilitySchema = z.object({
117
+ enabledForVariations: z.boolean().optional(),
118
+ name: z.string().optional(),
119
+ usage: z.string().optional(),
120
+ });
121
+ export const extendedProducerResponsibilityPolicySchema = z.object({
122
+ categoryId: z.string().optional(),
123
+ categoryTreeId: z.string().optional(),
124
+ supportedAttributes: z.array(extendedProducerResponsibilitySchema).optional(),
125
+ });
126
+ export const extendedProducerResponsibilityPolicyResponseSchema = z.object({
127
+ extendedProducerResponsibilities: z.array(extendedProducerResponsibilityPolicySchema).optional(),
128
+ warnings: z.array(errorSchema).optional(),
129
+ });
130
+ // ============================================================================
131
+ // Marketplace Policies - Hazardous Materials
132
+ // ============================================================================
133
+ export const signalWordSchema = z.object({
134
+ signalWordId: z.string().optional(),
135
+ signalWordDescription: z.string().optional(),
136
+ });
137
+ export const hazardStatementSchema = z.object({
138
+ statementId: z.string().optional(),
139
+ statementDescription: z.string().optional(),
140
+ });
141
+ export const pictogramSchema = z.object({
142
+ pictogramId: z.string().optional(),
143
+ pictogramDescription: z.string().optional(),
144
+ pictogramUrl: z.string().optional(),
145
+ });
146
+ export const hazardousMaterialDetailsResponseSchema = z.object({
147
+ signalWords: z.array(signalWordSchema).optional(),
148
+ statements: z.array(hazardStatementSchema).optional(),
149
+ pictograms: z.array(pictogramSchema).optional(),
150
+ });
151
+ // ============================================================================
152
+ // Marketplace Policies - Item Conditions
153
+ // ============================================================================
154
+ export const itemConditionDescriptorValueConstraintSchema = z.object({
155
+ applicableToConditionDescriptorId: z.string().optional(),
156
+ applicableToConditionDescriptorValueIds: z.array(z.string()).optional(),
157
+ });
158
+ export const itemConditionDescriptorValueSchema = z.object({
159
+ conditionDescriptorValueAdditionalHelpText: z.array(z.string()).optional(),
160
+ conditionDescriptorValueConstraints: z
161
+ .array(itemConditionDescriptorValueConstraintSchema)
162
+ .optional(),
163
+ conditionDescriptorValueHelpText: z.string().optional(),
164
+ conditionDescriptorValueId: z.string().optional(),
165
+ conditionDescriptorValueName: z.string().optional(),
166
+ });
167
+ export const itemConditionDescriptorConstraintSchema = z.object({
168
+ applicableToConditionDescriptorIds: z.array(z.string()).optional(),
169
+ cardinality: z.string().optional(),
170
+ defaultConditionDescriptorValueId: z.string().optional(),
171
+ maxLength: z.number().optional(),
172
+ mode: z.string().optional(),
173
+ usage: z.string().optional(),
174
+ });
175
+ export const itemConditionDescriptorSchema = z.object({
176
+ conditionDescriptorConstraint: itemConditionDescriptorConstraintSchema.optional(),
177
+ conditionDescriptorHelpText: z.string().optional(),
178
+ conditionDescriptorId: z.string().optional(),
179
+ conditionDescriptorName: z.string().optional(),
180
+ conditionDescriptorValues: z.array(itemConditionDescriptorValueSchema).optional(),
181
+ });
182
+ export const itemConditionSchema = z.object({
183
+ conditionDescription: z.string().optional(),
184
+ conditionDescriptors: z.array(itemConditionDescriptorSchema).optional(),
185
+ conditionHelpText: z.string().optional(),
186
+ conditionId: z.string().optional(),
187
+ usage: z.string().optional(),
188
+ });
189
+ export const itemConditionPolicySchema = z.object({
190
+ categoryId: z.string().optional(),
191
+ categoryTreeId: z.string().optional(),
192
+ itemConditionRequired: z.boolean().optional(),
193
+ itemConditions: z.array(itemConditionSchema).optional(),
194
+ });
195
+ export const itemConditionPolicyResponseSchema = z.object({
196
+ itemConditionPolicies: z.array(itemConditionPolicySchema).optional(),
197
+ warnings: z.array(errorSchema).optional(),
198
+ });
199
+ // ============================================================================
200
+ // Marketplace Policies - Listing Structure
201
+ // ============================================================================
202
+ export const listingStructurePolicySchema = z.object({
203
+ categoryId: z.string().optional(),
204
+ categoryTreeId: z.string().optional(),
205
+ variationsSupported: z.boolean().optional(),
206
+ });
207
+ export const listingStructurePolicyResponseSchema = z.object({
208
+ listingStructurePolicies: z.array(listingStructurePolicySchema).optional(),
209
+ warnings: z.array(errorSchema).optional(),
210
+ });
211
+ // ============================================================================
212
+ // Marketplace Policies - Listing Types
213
+ // ============================================================================
214
+ export const listingDurationSchema = z.object({
215
+ durationValues: z.array(z.string()).optional(),
216
+ listingType: z.string().optional(),
217
+ });
218
+ export const listingTypePolicySchema = z.object({
219
+ categoryId: z.string().optional(),
220
+ categoryTreeId: z.string().optional(),
221
+ digitalGoodDeliveryEnabled: z.boolean().optional(),
222
+ listingDurations: z.array(listingDurationSchema).optional(),
223
+ pickupDropOffEnabled: z.boolean().optional(),
224
+ });
225
+ export const listingTypePoliciesResponseSchema = z.object({
226
+ listingTypePolicies: z.array(listingTypePolicySchema).optional(),
227
+ warnings: z.array(errorSchema).optional(),
228
+ });
229
+ // ============================================================================
230
+ // Marketplace Policies - Motors Listing
231
+ // ============================================================================
232
+ export const localListingDistanceSchema = z.object({
233
+ distances: z.array(z.number()).optional(),
234
+ distanceType: z.string().optional(),
235
+ });
236
+ export const motorsListingPolicySchema = z.object({
237
+ categoryId: z.string().optional(),
238
+ categoryTreeId: z.string().optional(),
239
+ depositSupported: z.boolean().optional(),
240
+ ebayMotorsProAdFormatEnabled: z.string().optional(),
241
+ ebayMotorsProAutoAcceptEnabled: z.boolean().optional(),
242
+ ebayMotorsProAutoDeclineEnabled: z.boolean().optional(),
243
+ ebayMotorsProBestOfferEnabled: z.string().optional(),
244
+ ebayMotorsProCompanyNameEnabled: z.boolean().optional(),
245
+ ebayMotorsProContactByAddressEnabled: z.boolean().optional(),
246
+ ebayMotorsProContactByEmailEnabled: z.boolean().optional(),
247
+ ebayMotorsProContactByPhoneEnabled: z.boolean().optional(),
248
+ ebayMotorsProCounterOfferEnabled: z.boolean().optional(),
249
+ ebayMotorsProPaymentMethodCheckOutEnabled: z.string().optional(),
250
+ ebayMotorsProPhoneCount: z.number().optional(),
251
+ ebayMotorsProSellerContactDetailsEnabled: z.boolean().optional(),
252
+ ebayMotorsProShippingMethodEnabled: z.boolean().optional(),
253
+ ebayMotorsProStreetCount: z.number().optional(),
254
+ epidSupported: z.boolean().optional(),
255
+ kTypeSupported: z.boolean().optional(),
256
+ localListingDistances: z.array(localListingDistanceSchema).optional(),
257
+ localMarketAdFormatEnabled: z.string().optional(),
258
+ localMarketAutoAcceptEnabled: z.boolean().optional(),
259
+ localMarketAutoDeclineEnabled: z.boolean().optional(),
260
+ localMarketBestOfferEnabled: z.string().optional(),
261
+ localMarketCompanyNameEnabled: z.boolean().optional(),
262
+ localMarketContactByAddressEnabled: z.boolean().optional(),
263
+ localMarketContactByEmailEnabled: z.boolean().optional(),
264
+ localMarketContactByPhoneEnabled: z.boolean().optional(),
265
+ localMarketCounterOfferEnabled: z.boolean().optional(),
266
+ localMarketNonSubscription: z.boolean().optional(),
267
+ localMarketPaymentMethodCheckOutEnabled: z.string().optional(),
268
+ localMarketPhoneCount: z.number().optional(),
269
+ localMarketPremiumSubscription: z.boolean().optional(),
270
+ localMarketRegularSubscription: z.boolean().optional(),
271
+ localMarketSellerContactDetailsEnabled: z.boolean().optional(),
272
+ localMarketShippingMethodEnabled: z.boolean().optional(),
273
+ localMarketSpecialitySubscription: z.boolean().optional(),
274
+ localMarketStreetCount: z.number().optional(),
275
+ maxGranularFitmentCount: z.number().optional(),
276
+ maxItemCompatibility: z.number().optional(),
277
+ minItemCompatibility: z.number().optional(),
278
+ nonSubscription: z.string().optional(),
279
+ premiumSubscription: z.string().optional(),
280
+ regularSubscription: z.string().optional(),
281
+ sellerProvidedTitleSupported: z.boolean().optional(),
282
+ specialitySubscription: z.string().optional(),
283
+ vinSupported: z.boolean().optional(),
284
+ vrmSupported: z.boolean().optional(),
285
+ });
286
+ export const motorsListingPoliciesResponseSchema = z.object({
287
+ motorsListingPolicies: z.array(motorsListingPolicySchema).optional(),
288
+ warnings: z.array(errorSchema).optional(),
289
+ });
290
+ // ============================================================================
291
+ // Marketplace Policies - Negotiated Price
292
+ // ============================================================================
293
+ export const negotiatedPricePolicySchema = z.object({
294
+ bestOfferAutoAcceptEnabled: z.boolean().optional(),
295
+ bestOfferAutoDeclineEnabled: z.boolean().optional(),
296
+ bestOfferCounterEnabled: z.boolean().optional(),
297
+ categoryId: z.string().optional(),
298
+ categoryTreeId: z.string().optional(),
299
+ });
300
+ export const negotiatedPricePolicyResponseSchema = z.object({
301
+ negotiatedPricePolicies: z.array(negotiatedPricePolicySchema).optional(),
302
+ warnings: z.array(errorSchema).optional(),
303
+ });
304
+ // ============================================================================
305
+ // Marketplace Policies - Product Safety
306
+ // ============================================================================
307
+ export const productSafetyLabelPictogramSchema = z.object({
308
+ pictogramDescription: z.string().optional(),
309
+ pictogramId: z.string().optional(),
310
+ pictogramUrl: z.string().optional(),
311
+ });
312
+ export const productSafetyLabelStatementSchema = z.object({
313
+ statementDescription: z.string().optional(),
314
+ statementId: z.string().optional(),
315
+ });
316
+ export const productSafetyLabelsResponseSchema = z.object({
317
+ pictograms: z.array(productSafetyLabelPictogramSchema).optional(),
318
+ statements: z.array(productSafetyLabelStatementSchema).optional(),
319
+ });
320
+ // ============================================================================
321
+ // Marketplace Policies - Regulatory
322
+ // ============================================================================
323
+ export const regulatoryAttributeSchema = z.object({
324
+ name: z.string().optional(),
325
+ usage: z.string().optional(),
326
+ });
327
+ export const regulatoryPolicySchema = z.object({
328
+ categoryId: z.string().optional(),
329
+ categoryTreeId: z.string().optional(),
330
+ supportedAttributes: z.array(regulatoryAttributeSchema).optional(),
331
+ });
332
+ export const regulatoryPolicyResponseSchema = z.object({
333
+ regulatoryPolicies: z.array(regulatoryPolicySchema).optional(),
334
+ warnings: z.array(errorSchema).optional(),
335
+ });
336
+ // ============================================================================
337
+ // Marketplace Policies - Return Policies
338
+ // ============================================================================
339
+ export const returnPolicyDetailsSchema = z.object({
340
+ policyDescriptionEnabled: z.boolean().optional(),
341
+ refundMethods: z.array(z.string()).optional(),
342
+ returnMethods: z.array(z.string()).optional(),
343
+ returnPeriods: z.array(timeDurationSchema).optional(),
344
+ returnsAcceptanceEnabled: z.boolean().optional(),
345
+ returnShippingCostPayers: z.array(z.string()).optional(),
346
+ });
347
+ export const returnPolicyMetadataSchema = z.object({
348
+ categoryId: z.string().optional(),
349
+ categoryTreeId: z.string().optional(),
350
+ domestic: returnPolicyDetailsSchema.optional(),
351
+ international: returnPolicyDetailsSchema.optional(),
352
+ required: z.boolean().optional(),
353
+ });
354
+ export const returnPolicyMetadataResponseSchema = z.object({
355
+ returnPolicies: z.array(returnPolicyMetadataSchema).optional(),
356
+ warnings: z.array(errorSchema).optional(),
357
+ });
358
+ // ============================================================================
359
+ // Marketplace Policies - Shipping
360
+ // ============================================================================
361
+ export const shippingPolicySchema = z.object({
362
+ categoryId: z.string().optional(),
363
+ categoryTreeId: z.string().optional(),
364
+ globalShippingEnabled: z.boolean().optional(),
365
+ group1MaxFlatShippingCost: amountSchema.optional(),
366
+ group2MaxFlatShippingCost: amountSchema.optional(),
367
+ group3MaxFlatShippingCost: amountSchema.optional(),
368
+ handlingTimeEnabled: z.boolean().optional(),
369
+ maxFlatShippingCost: amountSchema.optional(),
370
+ shippingTermsRequired: z.boolean().optional(),
371
+ });
372
+ export const shippingPoliciesResponseSchema = z.object({
373
+ shippingPolicies: z.array(shippingPolicySchema).optional(),
374
+ warnings: z.array(errorSchema).optional(),
375
+ });
376
+ // ============================================================================
377
+ // Marketplace Policies - Site Visibility
378
+ // ============================================================================
379
+ export const siteVisibilityPolicySchema = z.object({
380
+ categoryId: z.string().optional(),
381
+ categoryTreeId: z.string().optional(),
382
+ crossBorderTradeAustraliaEnabled: z.boolean().optional(),
383
+ crossBorderTradeGBEnabled: z.boolean().optional(),
384
+ crossBorderTradeNorthAmericaEnabled: z.boolean().optional(),
385
+ });
386
+ export const siteVisibilityPoliciesResponseSchema = z.object({
387
+ siteVisibilityPolicies: z.array(siteVisibilityPolicySchema).optional(),
388
+ warnings: z.array(errorSchema).optional(),
389
+ });
390
+ // ============================================================================
391
+ // Compatibility Schemas - Common
392
+ // ============================================================================
393
+ export const propertyFilterInnerSchema = z.object({
394
+ propertyName: z.string().optional(),
395
+ propertyValue: z.string().optional(),
396
+ unitOfMeasurement: z.string().optional(),
397
+ url: z.string().optional(),
398
+ });
399
+ export const compatibilityDetailsSchema = z.object({
400
+ propertyName: z.string().optional(),
401
+ propertyValue: z.string().optional(),
402
+ });
403
+ export const compatibilitySchema = z.object({
404
+ compatibilityDetails: z.array(compatibilityDetailsSchema).optional(),
405
+ });
406
+ export const paginationInputSchema = z.object({
407
+ limit: z.number().optional(),
408
+ offset: z.number().optional(),
409
+ });
410
+ export const paginationSchema = z.object({
411
+ count: z.number().optional(),
412
+ limit: z.number().optional(),
413
+ offset: z.number().optional(),
414
+ total: z.number().optional(),
415
+ });
416
+ export const sortOrderPropertiesSchema = z.object({
417
+ order: z.string().optional(),
418
+ propertyName: z.string().optional(),
419
+ });
420
+ export const sortOrderInnerSchema = z.object({
421
+ sortOrder: sortOrderPropertiesSchema.optional(),
422
+ sortPriority: z.string().optional(),
423
+ });
424
+ // ============================================================================
425
+ // Compatibility Schemas - By Specification
426
+ // ============================================================================
427
+ export const specificationRequestSchema = z.object({
428
+ categoryId: z.string().optional(),
429
+ compatibilityPropertyFilters: z.array(propertyFilterInnerSchema).optional(),
430
+ dataset: z.string().optional(),
431
+ datasetPropertyName: z.array(z.string()).optional(),
432
+ exactMatch: z.boolean().optional(),
433
+ paginationInput: paginationInputSchema.optional(),
434
+ sortOrders: z.array(sortOrderInnerSchema).optional(),
435
+ specifications: z.array(propertyFilterInnerSchema).optional(),
436
+ });
437
+ export const specificationResponseSchema = z.object({
438
+ compatibilityDetails: z.array(compatibilitySchema).optional(),
439
+ pagination: paginationSchema.optional(),
440
+ });
441
+ // ============================================================================
442
+ // Compatibility Schemas - Property Names
443
+ // ============================================================================
444
+ export const propertyNamesRequestSchema = z.object({
445
+ categoryId: z.string().optional(),
446
+ dataset: z.array(z.string()).optional(),
447
+ });
448
+ export const propertyNamesResponsePropertyNameMetadataSchema = z.object({
449
+ displaySequence: z.number().optional(),
450
+ });
451
+ export const propertyNamesResponsePropertyNamesSchema = z.object({
452
+ propertyDisplayName: z.string().optional(),
453
+ propertyName: z.string().optional(),
454
+ propertyNameMetadata: propertyNamesResponsePropertyNameMetadataSchema.optional(),
455
+ });
456
+ export const propertyNamesResponsePropertiesSchema = z.object({
457
+ dataset: z.string().optional(),
458
+ propertyNames: z.array(propertyNamesResponsePropertyNamesSchema).optional(),
459
+ });
460
+ export const propertyNamesResponseSchema = z.object({
461
+ categoryId: z.string().optional(),
462
+ properties: z.array(propertyNamesResponsePropertiesSchema).optional(),
463
+ });
464
+ // ============================================================================
465
+ // Compatibility Schemas - Property Values
466
+ // ============================================================================
467
+ export const propertyValuesRequestSchema = z.object({
468
+ categoryId: z.string().optional(),
469
+ propertyFilters: z.array(propertyFilterInnerSchema).optional(),
470
+ propertyName: z.string().optional(),
471
+ sortOrder: z.string().optional(),
472
+ });
473
+ export const propertyValuesResponseSchema = z.object({
474
+ metadataVersion: z.string().optional(),
475
+ propertyName: z.string().optional(),
476
+ propertyValues: z.array(z.string()).optional(),
477
+ });
478
+ // ============================================================================
479
+ // Compatibility Schemas - Multi Property Values
480
+ // ============================================================================
481
+ export const multiCompatibilityPropertyValuesRequestSchema = z.object({
482
+ categoryId: z.string().optional(),
483
+ propertyFilters: z.array(propertyFilterInnerSchema).optional(),
484
+ propertyNames: z.array(z.string()).optional(),
485
+ });
486
+ export const multiCompatibilityPropertyValuesResponseSchema = z.object({
487
+ compatibilities: z.array(compatibilitySchema).optional(),
488
+ metadataVersion: z.string().optional(),
489
+ });
490
+ // ============================================================================
491
+ // Compatibility Schemas - Product Compatibilities
492
+ // ============================================================================
493
+ export const disabledProductFilterSchema = z.object({
494
+ excludeForEbayReviews: z.boolean().optional(),
495
+ excludeForEbaySelling: z.boolean().optional(),
496
+ });
497
+ export const productIdentifierSchema = z.object({
498
+ ean: z.string().optional(),
499
+ epid: z.string().optional(),
500
+ isbn: z.string().optional(),
501
+ productId: z.string().optional(),
502
+ upc: z.string().optional(),
503
+ });
504
+ export const productRequestSchema = z.object({
505
+ applicationPropertyFilters: z.array(propertyFilterInnerSchema).optional(),
506
+ dataset: z.array(z.string()).optional(),
507
+ datasetPropertyName: z.array(z.string()).optional(),
508
+ disabledProductFilter: disabledProductFilterSchema.optional(),
509
+ paginationInput: paginationInputSchema.optional(),
510
+ productIdentifier: productIdentifierSchema.optional(),
511
+ sortOrders: z.array(sortOrderInnerSchema).optional(),
512
+ });
513
+ export const propertyValuesSchema = z.object({
514
+ propertyName: z.string().optional(),
515
+ propertyValue: z.string().optional(),
516
+ });
517
+ export const productResponseCompatibilityDetailsSchema = z.object({
518
+ noteDetails: z.array(propertyFilterInnerSchema).optional(),
519
+ productDetails: z.array(propertyValuesSchema).optional(),
520
+ });
521
+ export const productResponseSchema = z.object({
522
+ compatibilityDetails: z.array(productResponseCompatibilityDetailsSchema).optional(),
523
+ pagination: paginationSchema.optional(),
524
+ });
525
+ // ============================================================================
526
+ // Sales Tax Jurisdiction Schemas
527
+ // ============================================================================
528
+ export const salesTaxJurisdictionSchema = z.object({
529
+ salesTaxJurisdictionId: z.string().optional(),
530
+ });
531
+ export const salesTaxJurisdictionsSchema = z.object({
532
+ salesTaxJurisdictions: z.array(salesTaxJurisdictionSchema).optional(),
533
+ });
534
+ // ============================================================================
535
+ // JSON Schema Conversion Function
536
+ // ============================================================================
537
+ /**
538
+ * Generates JSON schemas for all Metadata API endpoints
539
+ * @returns Object containing JSON schemas for all endpoints
540
+ */
541
+ export function getMetadataJsonSchemas() {
542
+ return {
543
+ // Marketplace Policies
544
+ automotivePartsCompatibilityPolicy: zodToJsonSchema(automotivePartsCompatibilityPolicySchema, 'automotivePartsCompatibilityPolicy'),
545
+ automotivePartsCompatibilityPolicyResponse: zodToJsonSchema(automotivePartsCompatibilityPolicyResponseSchema, 'automotivePartsCompatibilityPolicyResponse'),
546
+ categoryPolicy: zodToJsonSchema(categoryPolicySchema, 'categoryPolicy'),
547
+ categoryPolicyResponse: zodToJsonSchema(categoryPolicyResponseSchema, 'categoryPolicyResponse'),
548
+ classifiedAdPolicy: zodToJsonSchema(classifiedAdPolicySchema, 'classifiedAdPolicy'),
549
+ classifiedAdPolicyResponse: zodToJsonSchema(classifiedAdPolicyResponseSchema, 'classifiedAdPolicyResponse'),
550
+ currency: zodToJsonSchema(currencySchema, 'currency'),
551
+ getCurrenciesResponse: zodToJsonSchema(getCurrenciesResponseSchema, 'getCurrenciesResponse'),
552
+ extendedProducerResponsibility: zodToJsonSchema(extendedProducerResponsibilitySchema, 'extendedProducerResponsibility'),
553
+ extendedProducerResponsibilityPolicy: zodToJsonSchema(extendedProducerResponsibilityPolicySchema, 'extendedProducerResponsibilityPolicy'),
554
+ extendedProducerResponsibilityPolicyResponse: zodToJsonSchema(extendedProducerResponsibilityPolicyResponseSchema, 'extendedProducerResponsibilityPolicyResponse'),
555
+ signalWord: zodToJsonSchema(signalWordSchema, 'signalWord'),
556
+ hazardStatement: zodToJsonSchema(hazardStatementSchema, 'hazardStatement'),
557
+ pictogram: zodToJsonSchema(pictogramSchema, 'pictogram'),
558
+ hazardousMaterialDetailsResponse: zodToJsonSchema(hazardousMaterialDetailsResponseSchema, 'hazardousMaterialDetailsResponse'),
559
+ itemCondition: zodToJsonSchema(itemConditionSchema, 'itemCondition'),
560
+ itemConditionDescriptor: zodToJsonSchema(itemConditionDescriptorSchema, 'itemConditionDescriptor'),
561
+ itemConditionDescriptorConstraint: zodToJsonSchema(itemConditionDescriptorConstraintSchema, 'itemConditionDescriptorConstraint'),
562
+ itemConditionDescriptorValue: zodToJsonSchema(itemConditionDescriptorValueSchema, 'itemConditionDescriptorValue'),
563
+ itemConditionDescriptorValueConstraint: zodToJsonSchema(itemConditionDescriptorValueConstraintSchema, 'itemConditionDescriptorValueConstraint'),
564
+ itemConditionPolicy: zodToJsonSchema(itemConditionPolicySchema, 'itemConditionPolicy'),
565
+ itemConditionPolicyResponse: zodToJsonSchema(itemConditionPolicyResponseSchema, 'itemConditionPolicyResponse'),
566
+ listingStructurePolicy: zodToJsonSchema(listingStructurePolicySchema, 'listingStructurePolicy'),
567
+ listingStructurePolicyResponse: zodToJsonSchema(listingStructurePolicyResponseSchema, 'listingStructurePolicyResponse'),
568
+ listingDuration: zodToJsonSchema(listingDurationSchema, 'listingDuration'),
569
+ listingTypePolicy: zodToJsonSchema(listingTypePolicySchema, 'listingTypePolicy'),
570
+ listingTypePoliciesResponse: zodToJsonSchema(listingTypePoliciesResponseSchema, 'listingTypePoliciesResponse'),
571
+ localListingDistance: zodToJsonSchema(localListingDistanceSchema, 'localListingDistance'),
572
+ motorsListingPolicy: zodToJsonSchema(motorsListingPolicySchema, 'motorsListingPolicy'),
573
+ motorsListingPoliciesResponse: zodToJsonSchema(motorsListingPoliciesResponseSchema, 'motorsListingPoliciesResponse'),
574
+ negotiatedPricePolicy: zodToJsonSchema(negotiatedPricePolicySchema, 'negotiatedPricePolicy'),
575
+ negotiatedPricePolicyResponse: zodToJsonSchema(negotiatedPricePolicyResponseSchema, 'negotiatedPricePolicyResponse'),
576
+ productSafetyLabelPictogram: zodToJsonSchema(productSafetyLabelPictogramSchema, 'productSafetyLabelPictogram'),
577
+ productSafetyLabelStatement: zodToJsonSchema(productSafetyLabelStatementSchema, 'productSafetyLabelStatement'),
578
+ productSafetyLabelsResponse: zodToJsonSchema(productSafetyLabelsResponseSchema, 'productSafetyLabelsResponse'),
579
+ regulatoryAttribute: zodToJsonSchema(regulatoryAttributeSchema, 'regulatoryAttribute'),
580
+ regulatoryPolicy: zodToJsonSchema(regulatoryPolicySchema, 'regulatoryPolicy'),
581
+ regulatoryPolicyResponse: zodToJsonSchema(regulatoryPolicyResponseSchema, 'regulatoryPolicyResponse'),
582
+ returnPolicyDetails: zodToJsonSchema(returnPolicyDetailsSchema, 'returnPolicyDetails'),
583
+ returnPolicy: zodToJsonSchema(returnPolicyMetadataSchema, 'returnPolicy'),
584
+ returnPolicyResponse: zodToJsonSchema(returnPolicyMetadataResponseSchema, 'returnPolicyResponse'),
585
+ shippingPolicy: zodToJsonSchema(shippingPolicySchema, 'shippingPolicy'),
586
+ shippingPoliciesResponse: zodToJsonSchema(shippingPoliciesResponseSchema, 'shippingPoliciesResponse'),
587
+ siteVisibilityPolicy: zodToJsonSchema(siteVisibilityPolicySchema, 'siteVisibilityPolicy'),
588
+ siteVisibilityPoliciesResponse: zodToJsonSchema(siteVisibilityPoliciesResponseSchema, 'siteVisibilityPoliciesResponse'),
589
+ // Compatibility Schemas
590
+ propertyFilterInner: zodToJsonSchema(propertyFilterInnerSchema, 'propertyFilterInner'),
591
+ compatibilityDetails: zodToJsonSchema(compatibilityDetailsSchema, 'compatibilityDetails'),
592
+ compatibility: zodToJsonSchema(compatibilitySchema, 'compatibility'),
593
+ specificationRequest: zodToJsonSchema(specificationRequestSchema, 'specificationRequest'),
594
+ specificationResponse: zodToJsonSchema(specificationResponseSchema, 'specificationResponse'),
595
+ propertyNamesRequest: zodToJsonSchema(propertyNamesRequestSchema, 'propertyNamesRequest'),
596
+ propertyNamesResponse: zodToJsonSchema(propertyNamesResponseSchema, 'propertyNamesResponse'),
597
+ propertyValuesRequest: zodToJsonSchema(propertyValuesRequestSchema, 'propertyValuesRequest'),
598
+ propertyValuesResponse: zodToJsonSchema(propertyValuesResponseSchema, 'propertyValuesResponse'),
599
+ multiCompatibilityPropertyValuesRequest: zodToJsonSchema(multiCompatibilityPropertyValuesRequestSchema, 'multiCompatibilityPropertyValuesRequest'),
600
+ multiCompatibilityPropertyValuesResponse: zodToJsonSchema(multiCompatibilityPropertyValuesResponseSchema, 'multiCompatibilityPropertyValuesResponse'),
601
+ disabledProductFilter: zodToJsonSchema(disabledProductFilterSchema, 'disabledProductFilter'),
602
+ productIdentifier: zodToJsonSchema(productIdentifierSchema, 'productIdentifier'),
603
+ productRequest: zodToJsonSchema(productRequestSchema, 'productRequest'),
604
+ productResponse: zodToJsonSchema(productResponseSchema, 'productResponse'),
605
+ // Sales Tax Jurisdictions
606
+ salesTaxJurisdiction: zodToJsonSchema(salesTaxJurisdictionSchema, 'salesTaxJurisdiction'),
607
+ salesTaxJurisdictions: zodToJsonSchema(salesTaxJurisdictionsSchema, 'salesTaxJurisdictions'),
608
+ // Common Schemas
609
+ pagination: zodToJsonSchema(paginationSchema, 'pagination'),
610
+ paginationInput: zodToJsonSchema(paginationInputSchema, 'paginationInput'),
611
+ sortOrderInner: zodToJsonSchema(sortOrderInnerSchema, 'sortOrderInner'),
612
+ sortOrderProperties: zodToJsonSchema(sortOrderPropertiesSchema, 'sortOrderProperties'),
613
+ error: zodToJsonSchema(errorSchema, 'error'),
614
+ errorParameter: zodToJsonSchema(errorParameterSchema, 'errorParameter'),
615
+ amount: zodToJsonSchema(amountSchema, 'amount'),
616
+ timeDuration: zodToJsonSchema(timeDurationSchema, 'timeDuration'),
617
+ };
618
+ }