ebay-mcp 1.18.0 → 1.18.2

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 (161) hide show
  1. package/README.md +24 -35
  2. package/build/api/account-management/accountV2.js +22 -22
  3. package/build/api/account-management/finances.js +10 -10
  4. package/build/api/analytics-and-report/analytics.js +1 -1
  5. package/build/api/{client.js → client/ebayApiClient.js} +37 -41
  6. package/build/api/{clientTrading.js → client/tradingApiClient.js} +22 -22
  7. package/build/api/communication/feedback.js +21 -21
  8. package/build/api/communication/message.js +23 -23
  9. package/build/api/communication/negotiation.js +7 -7
  10. package/build/api/communication/notification.js +52 -52
  11. package/build/api/developer/developer.js +3 -3
  12. package/build/api/{index.js → ebaySellerApi.js} +4 -4
  13. package/build/api/listing-management/feedReportTasks.js +6 -6
  14. package/build/api/listing-management/feedRequest.js +6 -6
  15. package/build/api/listing-management/feedSchedules.js +4 -4
  16. package/build/api/listing-management/feedTasks.js +2 -2
  17. package/build/api/listing-management/items.js +22 -22
  18. package/build/api/listing-management/locations.js +4 -4
  19. package/build/api/listing-management/media.js +14 -14
  20. package/build/api/listing-management/mediaAttach.js +14 -14
  21. package/build/api/listing-management/mediaResources.js +15 -13
  22. package/build/api/listing-management/offerFormat.js +1 -1
  23. package/build/api/listing-management/offers.js +23 -23
  24. package/build/api/listing-management/stores.js +9 -9
  25. package/build/api/listing-metadata/metadata.js +10 -10
  26. package/build/api/marketing-and-promotions/ads.js +34 -34
  27. package/build/api/marketing-and-promotions/campaigns.js +19 -19
  28. package/build/api/marketing-and-promotions/promotions.js +22 -22
  29. package/build/api/marketing-and-promotions/reports.js +7 -7
  30. package/build/api/order-management/dispute.js +11 -9
  31. package/build/api/order-management/fulfillment.js +4 -4
  32. package/build/api/order-management/logistics.js +7 -7
  33. package/build/api/other/browseMappers.js +15 -13
  34. package/build/api/other/browseValidators.js +4 -4
  35. package/build/api/other/edelivery.js +19 -19
  36. package/build/api/other/finding.js +13 -13
  37. package/build/api/other/translation.js +2 -2
  38. package/build/api/other/vero.js +2 -2
  39. package/build/api/shared/download.js +7 -7
  40. package/build/api/shared/request.js +28 -19
  41. package/build/api/trading/listingFormat.js +37 -30
  42. package/build/api/trading/trading.js +33 -33
  43. package/build/auth/credentialSession.js +5 -5
  44. package/build/auth/oauth.js +3 -3
  45. package/build/auth/oauthHelper.js +24 -24
  46. package/build/auth/oauthMetadata.js +4 -4
  47. package/build/auth/oauthMiddleware.js +16 -16
  48. package/build/auth/scopeUtils.js +2 -2
  49. package/build/auth/tokenVerifier.js +23 -23
  50. package/build/config/environment.js +4 -45
  51. package/build/config/oauthScopes.js +132 -0
  52. package/build/index.js +5 -5
  53. package/build/mcp/httpTransport.js +32 -20
  54. package/build/mcp/runtime.js +12 -12
  55. package/build/mcp/toolGating.js +6 -12
  56. package/build/mcp/uiBridge.js +3 -3
  57. package/build/schemas/account-management/account.js +2 -52
  58. package/build/schemas/account-management/accountV2.js +2 -2
  59. package/build/schemas/account-management/finances.js +1 -1
  60. package/build/schemas/analytics/analytics.js +2 -48
  61. package/build/schemas/communication/messages.js +2 -46
  62. package/build/schemas/developer/developer.js +1 -27
  63. package/build/schemas/fulfillment/logistics.js +1 -1
  64. package/build/schemas/fulfillment/orders.js +2 -47
  65. package/build/schemas/inventory-management/feed.js +1 -1
  66. package/build/schemas/inventory-management/inventory.js +2 -50
  67. package/build/schemas/inventory-management/media.js +2 -2
  68. package/build/schemas/inventory-management/mediaDocuments.js +1 -1
  69. package/build/schemas/inventory-management/stores.js +1 -1
  70. package/build/schemas/marketing/ads.js +2 -2
  71. package/build/schemas/marketing/campaigns.js +2 -2
  72. package/build/schemas/marketing/common.js +2 -2
  73. package/build/schemas/marketing/marketing.js +0 -1
  74. package/build/schemas/marketing/promotions.js +2 -2
  75. package/build/schemas/marketing/reports.js +2 -2
  76. package/build/schemas/metadata/metadata.js +2 -90
  77. package/build/schemas/metadata/shipping.js +1 -1
  78. package/build/schemas/other/browse.js +2 -2
  79. package/build/schemas/other/finding.js +2 -2
  80. package/build/schemas/other/otherApis.js +2 -114
  81. package/build/schemas/taxonomy/categoryTree.js +1 -1
  82. package/build/schemas/taxonomy/charity.js +1 -1
  83. package/build/schemas/taxonomy/taxonomy.js +2 -69
  84. package/build/scripts/autoSetup.js +3 -3
  85. package/build/scripts/{buildUi.js → buildMcpApps.js} +13 -13
  86. package/build/scripts/devSync.js +19 -68
  87. package/build/scripts/diagnostics.js +15 -16
  88. package/build/scripts/interactiveSetup.js +25 -25
  89. package/build/scripts/scopeHelper.js +2 -2
  90. package/build/scripts/securityChecker.js +20 -20
  91. package/build/scripts/setup.js +76 -76
  92. package/build/scripts/setupShared.js +5 -30
  93. package/build/scripts/setupValidator.js +9 -9
  94. package/build/scripts/setupWizard.js +23 -23
  95. package/build/scripts/skills.js +14 -17
  96. package/build/scripts/specRefs.js +1 -1
  97. package/build/scripts/specSources.js +144 -0
  98. package/build/serverHttp.js +4 -7
  99. package/build/skills/content.js +13 -13
  100. package/build/skills/install.js +9 -9
  101. package/build/skills/render.js +2 -2
  102. package/build/tools/categories/communication.js +1 -1
  103. package/build/tools/categories/connector.js +19 -16
  104. package/build/tools/categories/fulfillment.js +4 -4
  105. package/build/tools/categories/inventory.js +1 -1
  106. package/build/tools/categories/metadata.js +1 -1
  107. package/build/tools/categories/taxonomy.js +1 -1
  108. package/build/tools/categories/tokenManagement.js +8 -8
  109. package/build/tools/contracts.js +2 -2
  110. package/build/tools/defineTool.js +27 -12
  111. package/build/tools/registry.js +2 -2
  112. package/build/tools/schemas.js +2 -2
  113. package/build/tools/ui/mapHelpers.js +12 -12
  114. package/build/tools/ui/maps.js +101 -97
  115. package/build/tools/ui/viewModels.js +2 -2
  116. package/build/utils/apiStatusFeed.js +12 -12
  117. package/build/utils/communication/feedback.js +3 -3
  118. package/build/utils/communication/message.js +3 -3
  119. package/build/utils/communication/negotiation.js +3 -3
  120. package/build/utils/communication/notification.js +3 -3
  121. package/build/utils/entryModule.js +33 -0
  122. package/build/utils/envFile.js +47 -0
  123. package/build/utils/envParser.js +5 -5
  124. package/build/utils/errors.js +4 -4
  125. package/build/utils/http.js +38 -38
  126. package/build/utils/localFeedFiles.js +3 -3
  127. package/build/utils/logRedaction.js +21 -0
  128. package/build/utils/logger.js +49 -35
  129. package/build/utils/other/compliance.js +3 -3
  130. package/build/utils/other/identity.js +3 -3
  131. package/build/utils/other/translation.js +3 -3
  132. package/build/utils/other/vero.js +3 -3
  133. package/build/utils/schemaHelpers.js +2 -2
  134. package/build/utils/tokenUtils.js +2 -2
  135. package/build/utils/trading/trading.js +1 -1
  136. package/build/utils/version.js +1 -1
  137. package/build/utils/zodIssues.js +14 -0
  138. package/package.json +8 -11
  139. package/README.de.md +0 -426
  140. package/README.es.md +0 -426
  141. package/README.fr.md +0 -426
  142. package/README.ja.md +0 -426
  143. package/README.ko.md +0 -426
  144. package/README.pt-BR.md +0 -426
  145. package/README.ru.md +0 -426
  146. package/README.zh-CN.md +0 -426
  147. package/build/schemas/index.js +0 -76
  148. package/build/schemas/marketing/jsonSchemas.js +0 -118
  149. package/build/scripts/downloadSpecs.js +0 -117
  150. package/build/scripts/updateApiStatusDoc.js +0 -71
  151. package/build/utils/effectSchema.js +0 -203
  152. package/build/utils/effectSchemaAdapter.js +0 -121
  153. package/build/utils/effectSchemaChainMethods.js +0 -146
  154. package/build/utils/effectSchemaRefinements.js +0 -104
  155. package/build/utils/effectSchemaStringMethods.js +0 -63
  156. package/build/utils/effectSchemaTypes.js +0 -47
  157. package/docs/auth/production_scopes.json +0 -111
  158. package/docs/auth/sandbox_scopes.json +0 -142
  159. /package/build/api/{clientRequestError.js → client/ebayClientRequestError.js} +0 -0
  160. /package/build/api/{rateLimitTracker.js → client/rateLimitTracker.js} +0 -0
  161. /package/build/api/{clientTradingError.js → client/tradingApiFailure.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { EbaySellerApi } from '../api/index.js';
2
+ import { EbaySellerApi } from '../api/ebaySellerApi.js';
3
3
  import { getEbayConfig, mcpConfig } from '../config/environment.js';
4
4
  import { resolveToolGatingMode } from '../config/toolFamilies.js';
5
5
  import { isReadOnlyModeEnabled, isReadOnlyTool } from '../mcp/readOnlyFilter.js';
@@ -9,10 +9,10 @@ import { getToolEntries } from '../tools/registry.js';
9
9
  import { getEbayErrorDetails } from '../utils/errors.js';
10
10
  import { serverLogger, toolLogger } from '../utils/logger.js';
11
11
  import { Effect } from 'effect';
12
- function formatToolSuccess(result) {
12
+ function formatToolSuccess(handlerOutput) {
13
13
  // JSON.stringify(undefined) returns undefined (not a string), which produces an
14
14
  // invalid MCP content block and triggers client -32602 on empty-body 201/204s.
15
- const successDocument = result === undefined || result === null ? { status: 'success' } : result;
15
+ const successDocument = handlerOutput === undefined || handlerOutput === null ? { status: 'success' } : handlerOutput;
16
16
  return {
17
17
  content: [
18
18
  {
@@ -24,18 +24,18 @@ function formatToolSuccess(result) {
24
24
  }
25
25
  function formatToolFailure(error) {
26
26
  const { message, status, errors } = getEbayErrorDetails(error);
27
- const payload = { error: message };
27
+ const failureDocument = { error: message };
28
28
  if (status !== undefined) {
29
- payload.status = status;
29
+ failureDocument.status = status;
30
30
  }
31
31
  if (errors !== undefined) {
32
- payload.details = errors;
32
+ failureDocument.details = errors;
33
33
  }
34
34
  return {
35
35
  content: [
36
36
  {
37
37
  type: 'text',
38
- text: JSON.stringify(payload, null, 2),
38
+ text: JSON.stringify(failureDocument, null, 2),
39
39
  },
40
40
  ],
41
41
  isError: true,
@@ -54,18 +54,18 @@ function registerTool(server, api, entry, logToolExecution, ui) {
54
54
  toolLogger.debug(`Executing tool: ${definition.name}`, { args });
55
55
  }
56
56
  return await Effect.runPromise(Effect.tryPromise({
57
- try: () => Promise.resolve(handler(api, args)),
57
+ try: async () => handler(api, args),
58
58
  catch: (error) => error,
59
- }).pipe(Effect.map((result) => {
59
+ }).pipe(Effect.map((handlerOutput) => {
60
60
  if (logToolExecution) {
61
61
  toolLogger.debug(`Tool ${definition.name} completed successfully`);
62
62
  }
63
63
  if (entry.formatResult) {
64
- return entry.formatResult(result, args);
64
+ return entry.formatResult(handlerOutput, args);
65
65
  }
66
66
  return ui.shouldRender(entry)
67
- ? buildUiToolResult(entry.ui, result)
68
- : formatToolSuccess(result);
67
+ ? buildUiToolResult(entry.ui, handlerOutput)
68
+ : formatToolSuccess(handlerOutput);
69
69
  }), Effect.catchAll((error) => {
70
70
  if (logToolExecution) {
71
71
  toolLogger.error(`Tool ${definition.name} failed`, {
@@ -1,4 +1,4 @@
1
- import { decodeEffectSchemaSync, z } from '../utils/effectSchema.js';
1
+ import { z } from 'zod';
2
2
  import { TOOL_FAMILY_KEYS } from '../config/toolFamilies.js';
3
3
  import { toolCategories } from '../tools/categories/index.js';
4
4
  /**
@@ -187,8 +187,8 @@ export const createToolGatingController = (handles) => {
187
187
  };
188
188
  };
189
189
  /** Wraps controller output as a standard text tool result. */
190
- const toToolResult = (data) => ({
191
- content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],
190
+ const toToolResult = (controllerOutput) => ({
191
+ content: [{ type: 'text', text: JSON.stringify(controllerOutput, null, 2) }],
192
192
  });
193
193
  /**
194
194
  * Registers the three discovery meta-tools on the server. Called only in dynamic
@@ -208,19 +208,13 @@ export const registerMetaTools = (server, controller) => {
208
208
  server.registerTool('list_ebay_tools', {
209
209
  description: "Discover eBay tools without loading them into context. Call with no arguments to list the tool families; pass `family` to list a family's tools, or `query` to keyword-search across all tools. Returns lightweight rows (name, family, summary) — enable a tool with enable_ebay_tools to get its full schema and call it.",
210
210
  inputSchema: listEbayToolsInputSchema.shape,
211
- }, (args) => toToolResult(controller.list(decodeEffectSchemaSync(listEbayToolsInputSchema, args))));
211
+ }, (args) => toToolResult(controller.list(args)));
212
212
  server.registerTool('enable_ebay_tools', {
213
213
  description: 'Load specific eBay tools into context so they can be called. Pass the exact tool names from list_ebay_tools. Returns the names enabled, any unknown names, and the active tool count.',
214
214
  inputSchema: dynamicToolNamesInputSchema.shape,
215
- }, (args) => {
216
- const { names } = decodeEffectSchemaSync(dynamicToolNamesInputSchema, args);
217
- return toToolResult(controller.enable(names));
218
- });
215
+ }, ({ names }) => toToolResult(controller.enable(names)));
219
216
  server.registerTool('disable_ebay_tools', {
220
217
  description: 'Unload eBay tools previously enabled, reclaiming their context. Pass the exact tool names. Returns the names disabled, any unknown names, and the active tool count.',
221
218
  inputSchema: dynamicToolNamesInputSchema.shape,
222
- }, (args) => {
223
- const { names } = decodeEffectSchemaSync(dynamicToolNamesInputSchema, args);
224
- return toToolResult(controller.disable(names));
225
- });
219
+ }, ({ names }) => toToolResult(controller.disable(names)));
226
220
  };
@@ -87,7 +87,7 @@ const asStructuredContent = (view) => view;
87
87
  * `_meta.ui.resourceUri` that tells the host which app to render.
88
88
  *
89
89
  * @param ui - Resolved UI binding attached to the executed tool entry.
90
- * @param result - Raw tool handler result to project into a view model.
90
+ * @param handlerOutput - Raw tool handler result to project into a view model.
91
91
  * @returns SDK call result carrying text, structured content, and UI metadata.
92
92
  *
93
93
  * @example
@@ -95,8 +95,8 @@ const asStructuredContent = (view) => view;
95
95
  * const toolResult = buildUiToolResult(entry.ui, handlerResult);
96
96
  * ```
97
97
  */
98
- export const buildUiToolResult = (ui, result) => {
99
- const view = ui.map(result);
98
+ export const buildUiToolResult = (ui, handlerOutput) => {
99
+ const view = ui.map(handlerOutput);
100
100
  return {
101
101
  content: [{ type: 'text', text: summarizeView(view) }],
102
102
  structuredContent: asStructuredContent(view),
@@ -1,10 +1,9 @@
1
- import { z } from '../../utils/effectSchema.js';
2
- import { zodToJsonSchema } from 'zod-to-json-schema';
1
+ import { z } from 'zod';
3
2
  import { TimeDurationUnit, RegionType, ShippingCostType, ShippingOptionType, RefundMethod, ReturnMethod, ReturnShippingCostPayer, MarketplaceId, } from '../../types/ebayEnums.js';
4
3
  /**
5
4
  * Account Management API Schemas
6
5
  *
7
- * This file contains Effect-backed schemas for all Account Management endpoints.
6
+ * This file contains Zod schemas for all Account Management endpoints.
8
7
  * Schemas are organized by endpoint and include both input and output validation.
9
8
  */
10
9
  // ============================================================================
@@ -552,52 +551,3 @@ export const getPrivilegesInputSchema = z.object({});
552
551
  // ============================================================================
553
552
  // JSON Schema Conversion Functions
554
553
  // ============================================================================
555
- /**
556
- * Converts Account Management API Effect-backed schemas to JSON Schema format for MCP tools.
557
- *
558
- * @returns Account Management API JSON schemas keyed by endpoint or shared model name.
559
- * @example
560
- * ```ts
561
- * const schemas = getAccountManagementJsonSchemas();
562
- * ```
563
- */
564
- export const getAccountManagementJsonSchemas = () => {
565
- return {
566
- // Custom Policies
567
- getCustomPoliciesInput: zodToJsonSchema(getCustomPoliciesInputSchema, 'getCustomPoliciesInput'),
568
- getCustomPoliciesOutput: zodToJsonSchema(customPolicyResponseSchema, 'getCustomPoliciesOutput'),
569
- createCustomPolicyInput: zodToJsonSchema(createCustomPolicyInputSchema, 'createCustomPolicyInput'),
570
- createCustomPolicyOutput: zodToJsonSchema(createCustomPolicyOutputSchema, 'createCustomPolicyOutput'),
571
- // Fulfillment Policies
572
- getFulfillmentPoliciesInput: zodToJsonSchema(getFulfillmentPoliciesInputSchema, 'getFulfillmentPoliciesInput'),
573
- getFulfillmentPoliciesOutput: zodToJsonSchema(getFulfillmentPoliciesOutputSchema, 'getFulfillmentPoliciesOutput'),
574
- createFulfillmentPolicyInput: zodToJsonSchema(createFulfillmentPolicyInputSchema, 'createFulfillmentPolicyInput'),
575
- createFulfillmentPolicyOutput: zodToJsonSchema(createFulfillmentPolicyOutputSchema, 'createFulfillmentPolicyOutput'),
576
- fulfillmentPolicyDetails: zodToJsonSchema(fulfillmentPolicyResponseSchema, 'fulfillmentPolicyDetails'),
577
- // Payment Policies
578
- getPaymentPoliciesInput: zodToJsonSchema(getPaymentPoliciesInputSchema, 'getPaymentPoliciesInput'),
579
- getPaymentPoliciesOutput: zodToJsonSchema(getPaymentPoliciesOutputSchema, 'getPaymentPoliciesOutput'),
580
- createPaymentPolicyInput: zodToJsonSchema(createPaymentPolicyInputSchema, 'createPaymentPolicyInput'),
581
- createPaymentPolicyOutput: zodToJsonSchema(createPaymentPolicyOutputSchema, 'createPaymentPolicyOutput'),
582
- paymentPolicyDetails: zodToJsonSchema(paymentPolicyResponseSchema, 'paymentPolicyDetails'),
583
- // Return Policies
584
- getReturnPoliciesInput: zodToJsonSchema(getReturnPoliciesInputSchema, 'getReturnPoliciesInput'),
585
- getReturnPoliciesOutput: zodToJsonSchema(getReturnPoliciesOutputSchema, 'getReturnPoliciesOutput'),
586
- createReturnPolicyInput: zodToJsonSchema(createReturnPolicyInputSchema, 'createReturnPolicyInput'),
587
- createReturnPolicyOutput: zodToJsonSchema(createReturnPolicyOutputSchema, 'createReturnPolicyOutput'),
588
- returnPolicyDetails: zodToJsonSchema(returnPolicyResponseSchema, 'returnPolicyDetails'),
589
- // Sales Tax
590
- getSalesTaxesOutput: zodToJsonSchema(getSalesTaxesOutputSchema, 'getSalesTaxesOutput'),
591
- salesTaxDetails: zodToJsonSchema(salesTaxSchema, 'salesTaxDetails'),
592
- // Programs
593
- programRequest: zodToJsonSchema(programRequestSchema, 'programRequest'),
594
- getOptedInProgramsInput: zodToJsonSchema(getOptedInProgramsInputSchema, 'getOptedInProgramsInput'),
595
- programsOutput: zodToJsonSchema(programsOutputSchema, 'programsOutput'),
596
- // KYC & Privileges
597
- getKycInput: zodToJsonSchema(getKycInputSchema, 'getKycInput'),
598
- kycOutput: zodToJsonSchema(kycOutputSchema, 'kycOutput'),
599
- getRateTablesInput: zodToJsonSchema(getRateTablesInputSchema, 'getRateTablesInput'),
600
- getPrivilegesInput: zodToJsonSchema(getPrivilegesInputSchema, 'getPrivilegesInput'),
601
- privilegesOutput: zodToJsonSchema(privilegesOutputSchema, 'privilegesOutput'),
602
- };
603
- };
@@ -1,9 +1,9 @@
1
1
  import { MarketplaceId } from '../../types/ebayEnums.js';
2
- import { z } from '../../utils/effectSchema.js';
2
+ import { z } from 'zod';
3
3
  /**
4
4
  * Account API v2 Schemas
5
5
  *
6
- * Effect-backed tool/endpoint input schemas for rate tables, payout settings,
6
+ * Zod tool/endpoint input schemas for rate tables, payout settings,
7
7
  * combined shipping rules, and user preferences. Request bodies mirror the
8
8
  * generated `sellAccountV2Oas3` DTOs; enum fields stay strings and list their
9
9
  * eBay values in the description.
@@ -1,4 +1,4 @@
1
- import { z } from '../../utils/effectSchema.js';
1
+ import { z } from 'zod';
2
2
  /**
3
3
  * Finances API input schemas.
4
4
  *
@@ -1,9 +1,8 @@
1
- import { z } from '../../utils/effectSchema.js';
2
- import { zodToJsonSchema } from 'zod-to-json-schema';
1
+ import { z } from 'zod';
3
2
  /**
4
3
  * Analytics API Schemas
5
4
  *
6
- * This file contains Effect-backed schemas for the Sell Analytics API.
5
+ * This file contains Zod schemas for the Sell Analytics API.
7
6
  * Schemas are organized by type and include all analytics-related endpoints.
8
7
  */
9
8
  // ============================================================================
@@ -158,48 +157,3 @@ export const getTrafficReportInputSchema = z.object({
158
157
  // ============================================================================
159
158
  // JSON Schema Conversion Functions
160
159
  // ============================================================================
161
- /**
162
- * Converts Analytics API Effect-backed schemas to JSON Schema format for MCP tools.
163
- *
164
- * @returns Analytics API JSON schemas keyed by endpoint or shared model name.
165
- * @example
166
- * ```ts
167
- * const schemas = getAnalyticsJsonSchemas();
168
- * ```
169
- */
170
- export const getAnalyticsJsonSchemas = () => {
171
- return {
172
- // Customer Service Metrics
173
- getCustomerServiceMetricInput: zodToJsonSchema(getCustomerServiceMetricInputSchema, 'getCustomerServiceMetricInput'),
174
- getCustomerServiceMetricOutput: zodToJsonSchema(getCustomerServiceMetricResponseSchema, 'getCustomerServiceMetricOutput'),
175
- // Seller Standards Profiles
176
- findSellerStandardsProfilesInput: zodToJsonSchema(findSellerStandardsProfilesInputSchema, 'findSellerStandardsProfilesInput'),
177
- findSellerStandardsProfilesOutput: zodToJsonSchema(findSellerStandardsProfilesResponseSchema, 'findSellerStandardsProfilesOutput'),
178
- getSellerStandardsProfileInput: zodToJsonSchema(getSellerStandardsProfileInputSchema, 'getSellerStandardsProfileInput'),
179
- getSellerStandardsProfileOutput: zodToJsonSchema(standardsProfileSchema, 'getSellerStandardsProfileOutput'),
180
- // Traffic Reports
181
- getTrafficReportInput: zodToJsonSchema(getTrafficReportInputSchema, 'getTrafficReportInput'),
182
- getTrafficReportOutput: zodToJsonSchema(reportSchema, 'getTrafficReportOutput'),
183
- // Common Types
184
- benchmarkMetadata: zodToJsonSchema(benchmarkMetadataSchema, 'benchmarkMetadata'),
185
- cycle: zodToJsonSchema(cycleSchema, 'cycle'),
186
- definition: zodToJsonSchema(definitionSchema, 'definition'),
187
- dimension: zodToJsonSchema(dimensionSchema, 'dimension'),
188
- dimensionMetric: zodToJsonSchema(dimensionMetricSchema, 'dimensionMetric'),
189
- distribution: zodToJsonSchema(distributionSchema, 'distribution'),
190
- error: zodToJsonSchema(errorSchema, 'error'),
191
- errorParameter: zodToJsonSchema(errorParameterSchema, 'errorParameter'),
192
- evaluationCycle: zodToJsonSchema(evaluationCycleSchema, 'evaluationCycle'),
193
- header: zodToJsonSchema(headerSchema, 'header'),
194
- metadata: zodToJsonSchema(metadataSchema, 'metadata'),
195
- metadataHeader: zodToJsonSchema(metadataHeaderSchema, 'metadataHeader'),
196
- metadataRecord: zodToJsonSchema(metadataRecordSchema, 'metadataRecord'),
197
- metric: zodToJsonSchema(metricSchema, 'metric'),
198
- metricBenchmark: zodToJsonSchema(metricBenchmarkSchema, 'metricBenchmark'),
199
- metricDistribution: zodToJsonSchema(metricDistributionSchema, 'metricDistribution'),
200
- record: zodToJsonSchema(recordSchema, 'record'),
201
- report: zodToJsonSchema(reportSchema, 'report'),
202
- standardsProfile: zodToJsonSchema(standardsProfileSchema, 'standardsProfile'),
203
- value: zodToJsonSchema(valueSchema, 'value'),
204
- };
205
- };
@@ -1,10 +1,9 @@
1
- import { z } from '../../utils/effectSchema.js';
2
- import { zodToJsonSchema } from 'zod-to-json-schema';
1
+ import { z } from 'zod';
3
2
  import { MessageReferenceType, FeedbackRating } from '../../types/ebayEnums.js';
4
3
  /**
5
4
  * Communication API Schemas - Messages, Feedback, and Notifications
6
5
  *
7
- * This file contains Effect-backed schemas for all Communication endpoints including:
6
+ * This file contains Zod schemas for all Communication endpoints including:
8
7
  * - Message API
9
8
  * - Feedback API
10
9
  * - Notification API
@@ -354,46 +353,3 @@ export const sendOfferToInterestedBuyersOutputSchema = z.object({
354
353
  // ============================================================================
355
354
  // JSON Schema Conversion Functions
356
355
  // ============================================================================
357
- /**
358
- * Converts Communication API Effect-backed schemas to JSON Schema format for MCP tools.
359
- *
360
- * @returns Communication API JSON schemas keyed by endpoint or shared model name.
361
- * @example
362
- * ```ts
363
- * const schemas = getCommunicationJsonSchemas();
364
- * ```
365
- */
366
- export const getCommunicationJsonSchemas = () => {
367
- return {
368
- // Message API
369
- sendMessageInput: zodToJsonSchema(sendMessageInputSchema, 'sendMessageInput'),
370
- sendMessageOutput: zodToJsonSchema(sendMessageOutputSchema, 'sendMessageOutput'),
371
- getConversationsInput: zodToJsonSchema(getConversationsInputSchema, 'getConversationsInput'),
372
- getConversationsOutput: zodToJsonSchema(getConversationsOutputSchema, 'getConversationsOutput'),
373
- getConversationInput: zodToJsonSchema(getConversationInputSchema, 'getConversationInput'),
374
- getConversationOutput: zodToJsonSchema(getConversationOutputSchema, 'getConversationOutput'),
375
- // Feedback API
376
- leaveFeedbackInput: zodToJsonSchema(leaveFeedbackInputSchema, 'leaveFeedbackInput'),
377
- leaveFeedbackOutput: zodToJsonSchema(leaveFeedbackOutputSchema, 'leaveFeedbackOutput'),
378
- getFeedbackInput: zodToJsonSchema(getFeedbackInputSchema, 'getFeedbackInput'),
379
- getFeedbackOutput: zodToJsonSchema(getFeedbackOutputSchema, 'getFeedbackOutput'),
380
- getFeedbackSummaryOutput: zodToJsonSchema(getFeedbackSummaryOutputSchema, 'getFeedbackSummaryOutput'),
381
- getAwaitingFeedbackInput: zodToJsonSchema(getAwaitingFeedbackInputSchema, 'getAwaitingFeedbackInput'),
382
- getAwaitingFeedbackOutput: zodToJsonSchema(getAwaitingFeedbackOutputSchema, 'getAwaitingFeedbackOutput'),
383
- respondToFeedbackInput: zodToJsonSchema(respondToFeedbackInputSchema, 'respondToFeedbackInput'),
384
- respondToFeedbackOutput: zodToJsonSchema(respondToFeedbackOutputSchema, 'respondToFeedbackOutput'),
385
- // Notification API
386
- createNotificationDestinationInput: zodToJsonSchema(createNotificationDestinationInputSchema, 'createNotificationDestinationInput'),
387
- createNotificationDestinationOutput: zodToJsonSchema(createNotificationDestinationOutputSchema, 'createNotificationDestinationOutput'),
388
- getNotificationDestinationsInput: zodToJsonSchema(getNotificationDestinationsInputSchema, 'getNotificationDestinationsInput'),
389
- getNotificationDestinationsOutput: zodToJsonSchema(getNotificationDestinationsOutputSchema, 'getNotificationDestinationsOutput'),
390
- createNotificationSubscriptionInput: zodToJsonSchema(createNotificationSubscriptionInputSchema, 'createNotificationSubscriptionInput'),
391
- createNotificationSubscriptionOutput: zodToJsonSchema(createNotificationSubscriptionOutputSchema, 'createNotificationSubscriptionOutput'),
392
- getNotificationSubscriptionsInput: zodToJsonSchema(getNotificationSubscriptionsInputSchema, 'getNotificationSubscriptionsInput'),
393
- getNotificationSubscriptionsOutput: zodToJsonSchema(getNotificationSubscriptionsOutputSchema, 'getNotificationSubscriptionsOutput'),
394
- getNotificationTopicsOutput: zodToJsonSchema(getNotificationTopicsOutputSchema, 'getNotificationTopicsOutput'),
395
- // Negotiation API
396
- sendOfferToInterestedBuyersInput: zodToJsonSchema(sendOfferToInterestedBuyersInputSchema, 'sendOfferToInterestedBuyersInput'),
397
- sendOfferToInterestedBuyersOutput: zodToJsonSchema(sendOfferToInterestedBuyersOutputSchema, 'sendOfferToInterestedBuyersOutput'),
398
- };
399
- };
@@ -1,5 +1,4 @@
1
- import { z } from '../../utils/effectSchema.js';
2
- import { zodToJsonSchema } from 'zod-to-json-schema';
1
+ import { z } from 'zod';
3
2
  /** Input accepted by the public eBay API status feed tool. */
4
3
  export const getApiStatusInputSchema = z.object({
5
4
  limit: z
@@ -108,28 +107,3 @@ export const signingKeySchema = z.object({
108
107
  export const querySigningKeysResponseSchema = z.object({
109
108
  signingKeys: z.array(signingKeySchema).optional(),
110
109
  });
111
- /**
112
- * Converts Developer API Effect-backed schemas to JSON Schema format for MCP tools.
113
- *
114
- * @returns Developer API JSON schemas keyed by endpoint or shared model name.
115
- *
116
- * @example
117
- * ```ts
118
- * const schemas = getDeveloperJsonSchemas();
119
- * ```
120
- */
121
- export const getDeveloperJsonSchemas = () => ({
122
- getApiStatusInput: zodToJsonSchema(getApiStatusInputSchema, 'getApiStatusInput'),
123
- getRateLimitsInput: zodToJsonSchema(getRateLimitsInputSchema, 'getRateLimitsInput'),
124
- getRateLimitsOutput: zodToJsonSchema(rateLimitsResponseSchema, 'getRateLimitsOutput'),
125
- getUserRateLimitsInput: zodToJsonSchema(getUserRateLimitsInputSchema, 'getUserRateLimitsInput'),
126
- getUserRateLimitsOutput: zodToJsonSchema(rateLimitsResponseSchema, 'getUserRateLimitsOutput'),
127
- registerClientInput: zodToJsonSchema(registerClientInputSchema, 'registerClientInput'),
128
- registerClientOutput: zodToJsonSchema(clientDetailsSchema, 'registerClientOutput'),
129
- getSigningKeysInput: zodToJsonSchema(getSigningKeysInputSchema, 'getSigningKeysInput'),
130
- getSigningKeysOutput: zodToJsonSchema(querySigningKeysResponseSchema, 'getSigningKeysOutput'),
131
- createSigningKeyInput: zodToJsonSchema(createSigningKeyInputSchema, 'createSigningKeyInput'),
132
- createSigningKeyOutput: zodToJsonSchema(signingKeySchema, 'createSigningKeyOutput'),
133
- getSigningKeyInput: zodToJsonSchema(getSigningKeyInputSchema, 'getSigningKeyInput'),
134
- getSigningKeyOutput: zodToJsonSchema(signingKeySchema, 'getSigningKeyOutput'),
135
- });
@@ -1,5 +1,5 @@
1
1
  import { LengthUnit, MarketplaceId, WeightUnit } from '../../types/ebayEnums.js';
2
- import { z } from '../../utils/effectSchema.js';
2
+ import { z } from 'zod';
3
3
  /**
4
4
  * Logistics API input schemas. The request bodies mirror the generated
5
5
  * `ShippingQuoteRequest` and `CreateShipmentFromQuoteRequest` DTOs in
@@ -1,10 +1,9 @@
1
- import { z } from '../../utils/effectSchema.js';
2
- import { zodToJsonSchema } from 'zod-to-json-schema';
1
+ import { z } from 'zod';
3
2
  import { ReasonForRefund } from '../../types/ebayEnums.js';
4
3
  /**
5
4
  * Fulfillment/Order Management API Schemas
6
5
  *
7
- * This file contains Effect-backed schemas for all Order Management and Fulfillment endpoints.
6
+ * This file contains Zod schemas for all Order Management and Fulfillment endpoints.
8
7
  */
9
8
  // ============================================================================
10
9
  // Common Schemas
@@ -490,47 +489,3 @@ export const fetchEvidenceContentInputSchema = z.object({
490
489
  // ============================================================================
491
490
  // JSON Schema Conversion Functions
492
491
  // ============================================================================
493
- /**
494
- * Converts Fulfillment API Effect-backed schemas to JSON Schema format for MCP tools.
495
- *
496
- * @returns Fulfillment API JSON schemas keyed by endpoint or shared model name.
497
- * @example
498
- * ```ts
499
- * const schemas = getFulfillmentJsonSchemas();
500
- * ```
501
- */
502
- export const getFulfillmentJsonSchemas = () => {
503
- return {
504
- // Orders
505
- getOrdersInput: zodToJsonSchema(getOrdersInputSchema, 'getOrdersInput'),
506
- getOrdersOutput: zodToJsonSchema(getOrdersOutputSchema, 'getOrdersOutput'),
507
- getOrderInput: zodToJsonSchema(getOrderInputSchema, 'getOrderInput'),
508
- getOrderOutput: zodToJsonSchema(getOrderOutputSchema, 'getOrderOutput'),
509
- orderDetails: zodToJsonSchema(orderSchema, 'orderDetails'),
510
- getCancellationRequestsInput: zodToJsonSchema(getCancellationRequestsInputSchema, 'getCancellationRequestsInput'),
511
- getRefundedOrdersInput: zodToJsonSchema(getRefundedOrdersInputSchema, 'getRefundedOrdersInput'),
512
- // Shipping Fulfillment
513
- createShippingFulfillmentInput: zodToJsonSchema(createShippingFulfillmentInputSchema, 'createShippingFulfillmentInput'),
514
- createShippingFulfillmentOutput: zodToJsonSchema(createShippingFulfillmentOutputSchema, 'createShippingFulfillmentOutput'),
515
- getShippingFulfillmentsInput: zodToJsonSchema(getShippingFulfillmentsInputSchema, 'getShippingFulfillmentsInput'),
516
- getShippingFulfillmentsOutput: zodToJsonSchema(getShippingFulfillmentsOutputSchema, 'getShippingFulfillmentsOutput'),
517
- getShippingFulfillmentInput: zodToJsonSchema(getShippingFulfillmentInputSchema, 'getShippingFulfillmentInput'),
518
- getShippingFulfillmentOutput: zodToJsonSchema(getShippingFulfillmentOutputSchema, 'getShippingFulfillmentOutput'),
519
- shippingFulfillmentDetails: zodToJsonSchema(shippingFulfillmentSchema, 'shippingFulfillmentDetails'),
520
- // Refunds
521
- issueRefundInput: zodToJsonSchema(issueRefundInputSchema, 'issueRefundInput'),
522
- issueRefundOutput: zodToJsonSchema(issueRefundOutputSchema, 'issueRefundOutput'),
523
- // Payment Disputes
524
- getPaymentDisputeInput: zodToJsonSchema(getPaymentDisputeInputSchema, 'getPaymentDisputeInput'),
525
- getActivitiesInput: zodToJsonSchema(getActivitiesInputSchema, 'getActivitiesInput'),
526
- getPaymentDisputeSummariesInput: zodToJsonSchema(getPaymentDisputeSummariesInputSchema, 'getPaymentDisputeSummariesInput'),
527
- getPaymentDisputeSummariesOutput: zodToJsonSchema(getPaymentDisputeSummariesOutputSchema, 'getPaymentDisputeSummariesOutput'),
528
- acceptPaymentDisputeInput: zodToJsonSchema(acceptPaymentDisputeInputSchema, 'acceptPaymentDisputeInput'),
529
- contestPaymentDisputeInput: zodToJsonSchema(contestPaymentDisputeInputSchema, 'contestPaymentDisputeInput'),
530
- addEvidenceInput: zodToJsonSchema(addEvidenceInputSchema, 'addEvidenceInput'),
531
- updateEvidenceInput: zodToJsonSchema(updateEvidenceInputSchema, 'updateEvidenceInput'),
532
- uploadEvidenceFileInput: zodToJsonSchema(uploadEvidenceFileInputSchema, 'uploadEvidenceFileInput'),
533
- fetchEvidenceContentInput: zodToJsonSchema(fetchEvidenceContentInputSchema, 'fetchEvidenceContentInput'),
534
- paymentDisputeDetails: zodToJsonSchema(paymentDisputeSchema, 'paymentDisputeDetails'),
535
- };
536
- };
@@ -1,4 +1,4 @@
1
- import { z } from '../../utils/effectSchema.js';
1
+ import { z } from 'zod';
2
2
  const nonempty = z.string().min(1).regex(/\S/, 'Must contain a non-whitespace character');
3
3
  const taskId = nonempty.describe('Feed task ID, from the Location of a create call or a task list');
4
4
  const scheduleId = nonempty.describe('Feed schedule ID, from ebay_create_feed_schedule or a list');
@@ -1,10 +1,9 @@
1
- import { z } from '../../utils/effectSchema.js';
2
- import { zodToJsonSchema } from 'zod-to-json-schema';
1
+ import { z } from 'zod';
3
2
  import { Condition, LengthUnit, WeightUnit, PricingVisibility, FormatType, ListingDuration, LocationType, MerchantLocationStatus, DayOfWeek, MarketplaceId, } from '../../types/ebayEnums.js';
4
3
  /**
5
4
  * Inventory Management API Schemas
6
5
  *
7
- * This file contains Effect-backed schemas for all Inventory Management endpoints.
6
+ * This file contains Zod schemas for all Inventory Management endpoints.
8
7
  * Schemas are organized by endpoint and include both input and output validation.
9
8
  */
10
9
  // ============================================================================
@@ -598,50 +597,3 @@ export const bulkPublishResponseSchema = z.object({
598
597
  // ============================================================================
599
598
  // JSON Schema Conversion Functions
600
599
  // ============================================================================
601
- /**
602
- * Converts Inventory Management API Effect-backed schemas to JSON Schema format for MCP tools.
603
- *
604
- * @returns Inventory Management API JSON schemas keyed by endpoint or shared model name.
605
- * @example
606
- * ```ts
607
- * const schemas = getInventoryManagementJsonSchemas();
608
- * ```
609
- */
610
- export const getInventoryManagementJsonSchemas = () => {
611
- return {
612
- // Inventory Items
613
- getInventoryItemsInput: zodToJsonSchema(getInventoryItemsInputSchema, 'getInventoryItemsInput'),
614
- getInventoryItemsOutput: zodToJsonSchema(getInventoryItemsOutputSchema, 'getInventoryItemsOutput'),
615
- getInventoryItemInput: zodToJsonSchema(getInventoryItemInputSchema, 'getInventoryItemInput'),
616
- getInventoryItemOutput: zodToJsonSchema(getInventoryItemOutputSchema, 'getInventoryItemOutput'),
617
- createInventoryItemInput: zodToJsonSchema(createInventoryItemInputSchema, 'createInventoryItemInput'),
618
- createInventoryItemOutput: zodToJsonSchema(createInventoryItemOutputSchema, 'createInventoryItemOutput'),
619
- // Offers
620
- getOffersInput: zodToJsonSchema(getOffersInputSchema, 'getOffersInput'),
621
- getOffersOutput: zodToJsonSchema(getOffersOutputSchema, 'getOffersOutput'),
622
- createOfferInput: zodToJsonSchema(createOfferInputSchema, 'createOfferInput'),
623
- createOfferOutput: zodToJsonSchema(createOfferOutputSchema, 'createOfferOutput'),
624
- publishOfferInput: zodToJsonSchema(publishOfferInputSchema, 'publishOfferInput'),
625
- publishOfferOutput: zodToJsonSchema(publishOfferOutputSchema, 'publishOfferOutput'),
626
- offerDetails: zodToJsonSchema(offerResponseSchema, 'offerDetails'),
627
- // Inventory Locations
628
- getInventoryLocationsInput: zodToJsonSchema(getInventoryLocationsInputSchema, 'getInventoryLocationsInput'),
629
- getInventoryLocationsOutput: zodToJsonSchema(getInventoryLocationsOutputSchema, 'getInventoryLocationsOutput'),
630
- createInventoryLocationInput: zodToJsonSchema(createInventoryLocationInputSchema, 'createInventoryLocationInput'),
631
- createInventoryLocationOutput: zodToJsonSchema(createInventoryLocationOutputSchema, 'createInventoryLocationOutput'),
632
- // Product Compatibility
633
- getProductCompatibilityInput: zodToJsonSchema(getProductCompatibilityInputSchema, 'getProductCompatibilityInput'),
634
- getProductCompatibilityOutput: zodToJsonSchema(getProductCompatibilityOutputSchema, 'getProductCompatibilityOutput'),
635
- // Inventory Item Groups
636
- getInventoryItemGroupInput: zodToJsonSchema(getInventoryItemGroupInputSchema, 'getInventoryItemGroupInput'),
637
- getInventoryItemGroupOutput: zodToJsonSchema(getInventoryItemGroupOutputSchema, 'getInventoryItemGroupOutput'),
638
- inventoryItemGroup: zodToJsonSchema(inventoryItemGroupSchema, 'inventoryItemGroup'),
639
- // Bulk Operations
640
- bulkInventoryItemRequest: zodToJsonSchema(bulkInventoryItemRequestSchema, 'bulkInventoryItemRequest'),
641
- bulkInventoryItemResponse: zodToJsonSchema(bulkInventoryItemResponseSchema, 'bulkInventoryItemResponse'),
642
- bulkOfferRequest: zodToJsonSchema(bulkOfferRequestSchema, 'bulkOfferRequest'),
643
- bulkOfferResponse: zodToJsonSchema(bulkOfferResponseSchema, 'bulkOfferResponse'),
644
- bulkPublishRequest: zodToJsonSchema(bulkPublishRequestSchema, 'bulkPublishRequest'),
645
- bulkPublishResponse: zodToJsonSchema(bulkPublishResponseSchema, 'bulkPublishResponse'),
646
- };
647
- };
@@ -1,8 +1,8 @@
1
- import { z } from '../../utils/effectSchema.js';
1
+ import { z } from 'zod';
2
2
  /**
3
3
  * Media API Schemas
4
4
  *
5
- * Effect-backed schemas for the local-media upload tools (images via eBay
5
+ * Zod schemas for the local-media upload tools (images via eBay
6
6
  * Picture Services, videos via the Media API lifecycle).
7
7
  */
8
8
  const mediaReferenceSchema = z
@@ -1,4 +1,4 @@
1
- import { z } from '../../utils/effectSchema.js';
1
+ import { z } from 'zod';
2
2
  const nonempty = z.string().min(1).regex(/\S/, 'Must contain a non-whitespace character');
3
3
  const httpsUrl = z
4
4
  .string()
@@ -1,4 +1,4 @@
1
- import { z } from '../../utils/effectSchema.js';
1
+ import { z } from 'zod';
2
2
  const nonempty = z.string().min(1).regex(/\S/, 'Must contain a non-whitespace character');
3
3
  const storeCategoryId = nonempty.describe('eBay Store custom category ID from ebay_get_store_categories (not an eBay marketplace category ID)');
4
4
  const categoryName = nonempty
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Marketing API schemas — ads slice.
3
3
  *
4
- * Effect-backed schemas for Marketing endpoints. The barrel `marketing.ts` re-exports all slices.
4
+ * Zod schemas for Marketing endpoints. The barrel `marketing.ts` re-exports all slices.
5
5
  */
6
- import { z } from '../../utils/effectSchema.js';
6
+ import { z } from 'zod';
7
7
  import { errorSchema, amountSchema, alertSchema, marketingInventoryItemSchema } from './common.js';
8
8
  import { updateBidPercentageRequestSchema } from './campaigns.js';
9
9
  // ============================================================================
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Marketing API schemas — campaigns slice.
3
3
  *
4
- * Effect-backed schemas for Marketing endpoints. The barrel `marketing.ts` re-exports all slices.
4
+ * Zod schemas for Marketing endpoints. The barrel `marketing.ts` re-exports all slices.
5
5
  */
6
- import { z } from '../../utils/effectSchema.js';
6
+ import { z } from 'zod';
7
7
  import { amountSchema, alertSchema } from './common.js';
8
8
  // ============================================================================
9
9
  // Campaign Management Schemas
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Marketing API schemas — common slice.
3
3
  *
4
- * Effect-backed schemas for Marketing endpoints. The barrel `marketing.ts` re-exports all slices.
4
+ * Zod schemas for Marketing endpoints. The barrel `marketing.ts` re-exports all slices.
5
5
  */
6
- import { z } from '../../utils/effectSchema.js';
6
+ import { z } from 'zod';
7
7
  // ============================================================================
8
8
  // Common/Shared Response Schemas
9
9
  // ============================================================================
@@ -11,4 +11,3 @@ export * from './campaigns.js';
11
11
  export * from './ads.js';
12
12
  export * from './reports.js';
13
13
  export * from './promotions.js';
14
- export * from './jsonSchemas.js';
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Marketing API schemas — promotions slice.
3
3
  *
4
- * Effect-backed schemas for Marketing endpoints. The barrel `marketing.ts` re-exports all slices.
4
+ * Zod schemas for Marketing endpoints. The barrel `marketing.ts` re-exports all slices.
5
5
  */
6
- import { z } from '../../utils/effectSchema.js';
6
+ import { z } from 'zod';
7
7
  import { errorSchema, amountSchema, marketingInventoryItemSchema } from './common.js';
8
8
  import { selectionRuleSchema } from './campaigns.js';
9
9
  // ============================================================================
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Marketing API schemas — reports slice.
3
3
  *
4
- * Effect-backed schemas for Marketing endpoints. The barrel `marketing.ts` re-exports all slices.
4
+ * Zod schemas for Marketing endpoints. The barrel `marketing.ts` re-exports all slices.
5
5
  */
6
- import { z } from '../../utils/effectSchema.js';
6
+ import { z } from 'zod';
7
7
  import { amountSchema, inventoryReferenceSchema } from './common.js';
8
8
  // ============================================================================
9
9
  // Reporting Schemas