@yoryoboy/bi-mcp 1.13.0 → 1.14.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 (33) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/index.js +30 -0
  3. package/dist/index.js.map +2 -2
  4. package/dist/mcp-use.json +2 -2
  5. package/dist/src/services/vtex/__tests__/vtex-payments.test.js +98 -0
  6. package/dist/src/services/vtex/__tests__/vtex-payments.test.js.map +7 -0
  7. package/dist/src/services/vtex/vtex-payments-write.js +64 -0
  8. package/dist/src/services/vtex/vtex-payments-write.js.map +7 -0
  9. package/dist/src/services/vtex/vtex-payments.js +49 -0
  10. package/dist/src/services/vtex/vtex-payments.js.map +7 -0
  11. package/dist/src/tools/vtex/__tests__/commercial-condition-references.test.js +14 -0
  12. package/dist/src/tools/vtex/__tests__/commercial-condition-references.test.js.map +7 -0
  13. package/dist/src/tools/vtex/__tests__/commercial-conditions.test.js +107 -0
  14. package/dist/src/tools/vtex/__tests__/commercial-conditions.test.js.map +7 -0
  15. package/dist/src/tools/vtex/__tests__/payment-rules.test.js +254 -0
  16. package/dist/src/tools/vtex/__tests__/payment-rules.test.js.map +7 -0
  17. package/dist/src/tools/vtex/catalog-admin-products-skus.js +3 -1
  18. package/dist/src/tools/vtex/catalog-admin-products-skus.js.map +2 -2
  19. package/dist/src/tools/vtex/commercial-conditions.js +105 -0
  20. package/dist/src/tools/vtex/commercial-conditions.js.map +7 -0
  21. package/dist/src/tools/vtex/create-sku.js +3 -1
  22. package/dist/src/tools/vtex/create-sku.js.map +2 -2
  23. package/dist/src/tools/vtex/index.js +2 -0
  24. package/dist/src/tools/vtex/index.js.map +2 -2
  25. package/dist/src/tools/vtex/payment-rules.js +272 -0
  26. package/dist/src/tools/vtex/payment-rules.js.map +7 -0
  27. package/dist/tests/vtex/vtex-commercial-conditions-docs.test.js +34 -0
  28. package/dist/tests/vtex/vtex-commercial-conditions-docs.test.js.map +7 -0
  29. package/dist/tests/vtex/vtex-commercial-conditions-surface.test.js +151 -0
  30. package/dist/tests/vtex/vtex-commercial-conditions-surface.test.js.map +7 -0
  31. package/dist/tests/vtex/vtex-commercial-conditions-workflow.test.js +182 -0
  32. package/dist/tests/vtex/vtex-commercial-conditions-workflow.test.js.map +7 -0
  33. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/tools/vtex/catalog-admin-products-skus.ts"],
4
- "sourcesContent": ["import { z } from \"zod\";\n\nimport {\n addSkuEan,\n attachSkuImage,\n createProduct,\n createSku,\n getSkuImages,\n replaceSkuEans,\n updateProductBasicFields as applyProductBasicFields,\n updateSkuBasicFields as applySkuBasicFields,\n updateSkuImage,\n} from \"../../services/vtex/vtex-catalog-write.js\";\nimport {\n buildWriteSuccessResponse,\n handleVtexWriteError,\n resolveVtexWriteProfile,\n vtexProfileIdSchemaField,\n} from \"./write-helpers.js\";\n\ntype CatalogWriteExecutor<TParams extends { profileId?: string }, TResult> = {\n params: TParams;\n operation: string;\n message: string;\n fallbackError: string;\n riskLevel: \"low\" | \"medium\" | \"high\";\n execute: (resolvedProfileId: string, params: TParams) => Promise<TResult>;\n resourceId: (result: TResult, params: TParams) => string | undefined;\n before?: (result: TResult, params: TParams) => Record<string, unknown> | null;\n after?: (result: TResult, params: TParams) => Record<string, unknown> | null;\n details?: (result: TResult, params: TParams) => Record<string, unknown> | undefined;\n};\n\nasync function executeCatalogWrite<TParams extends { profileId?: string }, TResult>({\n params,\n operation,\n message,\n fallbackError,\n riskLevel,\n execute,\n resourceId,\n before,\n after,\n details,\n}: CatalogWriteExecutor<TParams, TResult>) {\n try {\n const profileResolution = await resolveVtexWriteProfile(params.profileId);\n if (!profileResolution.ok) {\n return profileResolution.response;\n }\n\n const resolvedProfileId = profileResolution.value.profileId;\n const result = await execute(resolvedProfileId, params);\n\n return buildWriteSuccessResponse({\n profileId: resolvedProfileId,\n operation,\n resourceId: resourceId(result, params),\n riskLevel,\n message,\n before: before?.(result, params),\n after: after?.(result, params) ?? (result as Record<string, unknown>),\n details: details?.(result, params),\n });\n } catch (err) {\n return handleVtexWriteError(err, fallbackError);\n }\n}\n\nexport const updateProductBasicFieldsSchema = z\n .object({\n profileId: vtexProfileIdSchemaField,\n productId: z.string().min(1).describe(\"VTEX product identifier.\"),\n name: z.string().min(1).optional().describe(\"New product name.\"),\n categoryId: z.number().int().positive().optional().describe(\"New category identifier.\"),\n brandId: z.number().int().positive().optional().describe(\"New brand identifier.\"),\n description: z.string().optional().describe(\"New product description.\"),\n descriptionShort: z.string().optional().describe(\"New short description.\"),\n title: z.string().optional().describe(\"New SEO title.\"),\n linkId: z.string().optional().describe(\"New product slug.\"),\n refId: z.string().optional().describe(\"New internal reference code.\"),\n isVisible: z.boolean().optional().describe(\"Whether the product should remain visible in listings.\"),\n isActive: z.boolean().optional().describe(\"Whether the product should remain active.\"),\n keyWords: z.string().optional().describe(\"New keywords string.\"),\n releaseDate: z.string().optional().describe(\"New release date in ISO format.\"),\n metaTagDescription: z.string().optional().describe(\"New meta description.\"),\n showWithoutStock: z\n .boolean()\n .optional()\n .describe(\"Whether the product can stay visible without stock.\"),\n })\n .refine(\n (value) =>\n value.name !== undefined ||\n value.categoryId !== undefined ||\n value.brandId !== undefined ||\n value.description !== undefined ||\n value.descriptionShort !== undefined ||\n value.title !== undefined ||\n value.linkId !== undefined ||\n value.refId !== undefined ||\n value.isVisible !== undefined ||\n value.isActive !== undefined ||\n value.keyWords !== undefined ||\n value.releaseDate !== undefined ||\n value.metaTagDescription !== undefined ||\n value.showWithoutStock !== undefined,\n {\n message: \"At least one product field must be provided.\",\n path: [\"name\"],\n }\n );\n\nexport async function updateProductBasicFieldsHandler({\n profileId,\n productId,\n ...updates\n}: z.infer<typeof updateProductBasicFieldsSchema>) {\n return executeCatalogWrite({\n params: { profileId, productId, ...updates },\n operation: \"update_product_basic_fields\",\n message: \"Product fields updated successfully.\",\n fallbackError: `Failed to update product ${productId}`,\n riskLevel: \"medium\",\n execute: (resolvedProfileId, currentParams) => {\n const { profileId: _ignoredProfileId, productId: _ignoredProductId, ...productUpdates } = currentParams;\n return applyProductBasicFields(resolvedProfileId, currentParams.productId, productUpdates);\n },\n resourceId: (_result, currentParams) => currentParams.productId,\n before: (result) => result.before,\n after: (result) => result.after,\n details: (_result, currentParams) => ({\n product_id: currentParams.productId,\n }),\n });\n}\n\nexport const updateProductBrandSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n productId: z.string().min(1).describe(\"VTEX product identifier.\"),\n brandId: z.number().int().positive().describe(\"Brand identifier to set on the product.\"),\n});\n\nexport async function updateProductBrandHandler(params: z.infer<typeof updateProductBrandSchema>) {\n return updateProductBasicFieldsHandler({\n profileId: params.profileId,\n productId: params.productId,\n brandId: params.brandId,\n });\n}\n\nexport const updateSkuBasicFieldsSchema = z\n .object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n name: z.string().min(1).optional().describe(\"New SKU name.\"),\n refId: z.string().optional().describe(\"New SKU reference code.\"),\n ean: z\n .string()\n .optional()\n .describe(\"New EAN. When informed, existing EAN values are replaced with this one.\"),\n packagedHeight: z.number().nonnegative().optional().describe(\"Packaged height.\"),\n packagedLength: z.number().nonnegative().optional().describe(\"Packaged length.\"),\n packagedWidth: z.number().nonnegative().optional().describe(\"Packaged width.\"),\n packagedWeightKg: z.number().nonnegative().optional().describe(\"Packaged weight in kg.\"),\n height: z.number().nonnegative().optional().describe(\"Physical height.\"),\n length: z.number().nonnegative().optional().describe(\"Physical length.\"),\n width: z.number().nonnegative().optional().describe(\"Physical width.\"),\n weightKg: z.number().nonnegative().optional().describe(\"Physical weight in kg.\"),\n measurementUnit: z.string().optional().describe(\"Measurement unit.\"),\n unitMultiplier: z.number().positive().optional().describe(\"Unit multiplier.\"),\n manufacturerCode: z.string().optional().describe(\"Manufacturer code.\"),\n commercialConditionId: z.number().int().positive().optional().describe(\"Commercial condition ID.\"),\n isActive: z.boolean().optional().describe(\"Whether the SKU should remain active.\"),\n activateIfPossible: z\n .boolean()\n .optional()\n .describe(\"Whether VTEX should auto-activate the SKU when possible.\"),\n })\n .refine(\n (value) =>\n value.name !== undefined ||\n value.refId !== undefined ||\n value.ean !== undefined ||\n value.packagedHeight !== undefined ||\n value.packagedLength !== undefined ||\n value.packagedWidth !== undefined ||\n value.packagedWeightKg !== undefined ||\n value.height !== undefined ||\n value.length !== undefined ||\n value.width !== undefined ||\n value.weightKg !== undefined ||\n value.measurementUnit !== undefined ||\n value.unitMultiplier !== undefined ||\n value.manufacturerCode !== undefined ||\n value.commercialConditionId !== undefined ||\n value.isActive !== undefined ||\n value.activateIfPossible !== undefined,\n {\n message: \"At least one SKU field must be provided.\",\n path: [\"name\"],\n }\n );\n\nexport async function updateSkuBasicFieldsHandler({\n profileId,\n skuId,\n ean,\n ...updates\n}: z.infer<typeof updateSkuBasicFieldsSchema>) {\n return executeCatalogWrite({\n params: { profileId, skuId, ean, ...updates },\n operation: \"update_sku_basic_fields\",\n message: \"SKU fields updated successfully.\",\n fallbackError: `Failed to update SKU ${skuId}`,\n riskLevel: \"medium\",\n execute: async (resolvedProfileId, currentParams) => {\n const {\n profileId: _ignoredProfileId,\n skuId: _ignoredSkuId,\n ean: _ignoredEan,\n ...skuUpdates\n } = currentParams;\n const skuUpdate = await applySkuBasicFields(resolvedProfileId, currentParams.skuId, skuUpdates);\n\n const eans =\n currentParams.ean === undefined\n ? undefined\n : await replaceSkuEans(resolvedProfileId, currentParams.skuId, [currentParams.ean]);\n\n return {\n skuUpdate,\n eans,\n };\n },\n resourceId: (_result, currentParams) => currentParams.skuId,\n before: (result) => result.skuUpdate.before,\n after: (result) => ({\n ...result.skuUpdate.after,\n ...(result.eans ? { Eans: result.eans } : {}),\n }),\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nconst skuStatusSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n});\n\nexport const activateSkuSchema = skuStatusSchema;\nexport const deactivateSkuSchema = skuStatusSchema;\n\nexport async function activateSkuHandler(params: z.infer<typeof activateSkuSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"activate_sku\",\n message: \"SKU activated successfully.\",\n fallbackError: `Failed to activate SKU ${params.skuId}`,\n riskLevel: \"medium\",\n execute: (resolvedProfileId, currentParams) =>\n applySkuBasicFields(resolvedProfileId, currentParams.skuId, { isActive: true }),\n resourceId: (_result, currentParams) => currentParams.skuId,\n before: (result) => result.before,\n after: (result) => result.after,\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nexport async function deactivateSkuHandler(params: z.infer<typeof deactivateSkuSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"deactivate_sku\",\n message: \"SKU deactivated successfully.\",\n fallbackError: `Failed to deactivate SKU ${params.skuId}`,\n riskLevel: \"medium\",\n execute: (resolvedProfileId, currentParams) =>\n applySkuBasicFields(resolvedProfileId, currentParams.skuId, { isActive: false }),\n resourceId: (_result, currentParams) => currentParams.skuId,\n before: (result) => result.before,\n after: (result) => result.after,\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nexport const addSkuEanSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n ean: z.string().trim().min(1).describe(\"EAN value to append.\"),\n});\n\nexport async function addSkuEanHandler(params: z.infer<typeof addSkuEanSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"add_sku_ean\",\n message: \"SKU EAN added successfully.\",\n fallbackError: `Failed to add EAN to SKU ${params.skuId}`,\n riskLevel: \"low\",\n execute: (resolvedProfileId, currentParams) =>\n addSkuEan(resolvedProfileId, currentParams.skuId, currentParams.ean),\n resourceId: (_result, currentParams) => currentParams.skuId,\n after: (result) => ({ Eans: result }),\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nexport const replaceSkuEansSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n eans: z.array(z.string().trim()).describe(\"Complete list of EANs to keep in VTEX.\"),\n});\n\nexport async function replaceSkuEansHandler(params: z.infer<typeof replaceSkuEansSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"replace_sku_eans\",\n message: \"SKU EANs replaced successfully.\",\n fallbackError: `Failed to replace EANs on SKU ${params.skuId}`,\n riskLevel: \"medium\",\n execute: (resolvedProfileId, currentParams) =>\n replaceSkuEans(resolvedProfileId, currentParams.skuId, currentParams.eans),\n resourceId: (_result, currentParams) => currentParams.skuId,\n after: (result) => ({ Eans: result }),\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nconst imagePayloadSchema = {\n name: z.string().trim().min(1).describe(\"Image name.\"),\n url: z.string().url().describe(\"Public image URL.\"),\n isMain: z.boolean().optional().describe(\"Whether the image is main.\"),\n label: z.string().optional().describe(\"Optional label.\"),\n text: z.string().optional().describe(\"Optional alt text.\"),\n position: z.number().int().nonnegative().optional().describe(\"Display position.\"),\n};\n\nexport const getSkuImagesSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n});\n\nexport async function getSkuImagesHandler(params: z.infer<typeof getSkuImagesSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"get_sku_images\",\n message: \"SKU images fetched successfully.\",\n fallbackError: `Failed to fetch images for SKU ${params.skuId}`,\n riskLevel: \"low\",\n execute: (resolvedProfileId, currentParams) => getSkuImages(resolvedProfileId, currentParams.skuId),\n resourceId: (_result, currentParams) => currentParams.skuId,\n after: (result) => ({ Images: result }),\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nexport const attachCatalogImageSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n ...imagePayloadSchema,\n});\n\nexport async function attachCatalogImageHandler(params: z.infer<typeof attachCatalogImageSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"attach_catalog_image\",\n message: \"Catalog image attached successfully.\",\n fallbackError: `Failed to attach image to SKU ${params.skuId}`,\n riskLevel: \"low\",\n execute: (resolvedProfileId, currentParams) =>\n attachSkuImage(resolvedProfileId, currentParams.skuId, {\n Name: currentParams.name,\n Url: currentParams.url,\n IsMain: currentParams.isMain,\n Label: currentParams.label,\n Text: currentParams.text,\n Position: currentParams.position,\n }),\n resourceId: (_result, currentParams) => currentParams.skuId,\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nexport const updateCatalogImageSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n imageId: z.string().min(1).describe(\"Image identifier to update.\"),\n ...imagePayloadSchema,\n});\n\nexport async function updateCatalogImageHandler(params: z.infer<typeof updateCatalogImageSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"update_catalog_image\",\n message: \"Catalog image updated successfully.\",\n fallbackError: `Failed to update image ${params.imageId} on SKU ${params.skuId}`,\n riskLevel: \"medium\",\n execute: (resolvedProfileId, currentParams) =>\n updateSkuImage(resolvedProfileId, currentParams.skuId, currentParams.imageId, {\n Name: currentParams.name,\n Url: currentParams.url,\n IsMain: currentParams.isMain,\n Label: currentParams.label,\n Text: currentParams.text,\n Position: currentParams.position,\n }),\n resourceId: (_result, currentParams) => currentParams.skuId,\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n image_id: currentParams.imageId,\n }),\n });\n}\n\nconst productInputSchema = z\n .object({\n name: z.string().min(1).describe(\"Product name.\"),\n categoryId: z.number().int().positive().optional().describe(\"Existing category ID.\"),\n categoryPath: z.string().min(1).optional().describe(\"Category path to create or reuse.\"),\n brandId: z.number().int().positive().optional().describe(\"Existing brand ID.\"),\n brandName: z.string().min(1).optional().describe(\"Brand name to create or reuse.\"),\n departmentId: z.number().int().positive().optional().describe(\"Department ID.\"),\n refId: z.string().optional().describe(\"Product reference code.\"),\n title: z.string().optional().describe(\"SEO title.\"),\n description: z.string().optional().describe(\"Product description.\"),\n descriptionShort: z.string().optional().describe(\"Short description.\"),\n linkId: z.string().optional().describe(\"Product slug.\"),\n })\n .refine((value) => value.categoryId !== undefined || value.categoryPath !== undefined, {\n message: \"Provide either categoryId or categoryPath for the product.\",\n path: [\"categoryId\"],\n })\n .refine((value) => value.brandId !== undefined || value.brandName !== undefined, {\n message: \"Provide either brandId or brandName for the product.\",\n path: [\"brandId\"],\n });\n\nconst skuInputSchema = z.object({\n name: z.string().min(1).describe(\"SKU name.\"),\n refId: z.string().min(1).describe(\"Internal SKU reference code.\"),\n ean: z.string().optional().describe(\"Optional EAN to attach after creation.\"),\n packagedHeight: z.number().nonnegative().describe(\"Packaged height.\"),\n packagedLength: z.number().nonnegative().describe(\"Packaged length.\"),\n packagedWidth: z.number().nonnegative().describe(\"Packaged width.\"),\n packagedWeightKg: z.number().nonnegative().describe(\"Packaged weight in kg.\"),\n height: z.number().nonnegative().optional().describe(\"Physical height.\"),\n length: z.number().nonnegative().optional().describe(\"Physical length.\"),\n width: z.number().nonnegative().optional().describe(\"Physical width.\"),\n weightKg: z.number().nonnegative().optional().describe(\"Physical weight in kg.\"),\n activateIfPossible: z.boolean().optional().describe(\"Whether VTEX should auto-activate the SKU.\"),\n measurementUnit: z.string().optional().describe(\"Measurement unit.\"),\n unitMultiplier: z.number().positive().optional().describe(\"Unit multiplier.\"),\n});\n\nconst imageInputSchema = z.object(imagePayloadSchema).optional();\n\nexport const createProductWithSkuSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n product: productInputSchema.describe(\"Product payload.\"),\n sku: skuInputSchema.describe(\"SKU payload.\"),\n image: imageInputSchema.describe(\"Optional SKU image attached after SKU creation.\"),\n});\n\nexport async function createProductWithSkuHandler({\n profileId,\n product,\n sku,\n image,\n}: z.infer<typeof createProductWithSkuSchema>) {\n return executeCatalogWrite({\n params: { profileId, product, sku, image },\n operation: \"create_product_with_sku\",\n message: \"Product and SKU created successfully.\",\n fallbackError: \"Failed to create product with SKU in VTEX\",\n riskLevel: \"low\",\n execute: async (resolvedProfileId, currentParams) => {\n const createdProduct = await createProduct(resolvedProfileId, {\n Name: currentParams.product.name,\n CategoryId: currentParams.product.categoryId,\n CategoryPath: currentParams.product.categoryPath,\n BrandId: currentParams.product.brandId,\n BrandName: currentParams.product.brandName,\n DepartmentId: currentParams.product.departmentId,\n RefId: currentParams.product.refId,\n Title: currentParams.product.title,\n Description: currentParams.product.description,\n DescriptionShort: currentParams.product.descriptionShort,\n LinkId: currentParams.product.linkId,\n });\n\n const productId = Number(createdProduct.Id);\n const createdSku = await createSku(resolvedProfileId, {\n ProductId: productId,\n Name: currentParams.sku.name,\n RefId: currentParams.sku.refId,\n PackagedHeight: currentParams.sku.packagedHeight,\n PackagedLength: currentParams.sku.packagedLength,\n PackagedWidth: currentParams.sku.packagedWidth,\n PackagedWeightKg: currentParams.sku.packagedWeightKg,\n Height: currentParams.sku.height,\n Length: currentParams.sku.length,\n Width: currentParams.sku.width,\n WeightKg: currentParams.sku.weightKg,\n ActivateIfPossible: currentParams.sku.activateIfPossible ?? true,\n IsActive: false,\n MeasurementUnit: currentParams.sku.measurementUnit,\n UnitMultiplier: currentParams.sku.unitMultiplier,\n });\n\n const skuId = createdSku.Id == null ? undefined : String(createdSku.Id);\n if (skuId && currentParams.sku.ean?.trim()) {\n await addSkuEan(resolvedProfileId, skuId, currentParams.sku.ean.trim());\n }\n\n if (skuId && currentParams.image) {\n await attachSkuImage(resolvedProfileId, skuId, {\n Name: currentParams.image.name,\n Url: currentParams.image.url,\n IsMain: currentParams.image.isMain,\n Label: currentParams.image.label,\n Text: currentParams.image.text,\n Position: currentParams.image.position,\n });\n }\n\n return {\n product: createdProduct,\n sku: createdSku,\n };\n },\n resourceId: (result) => String((result.product as Record<string, unknown>).Id ?? \"\"),\n before: () => null,\n after: (result) => ({\n product: result.product,\n sku: result.sku,\n }),\n details: (result) => ({\n product_id: (result.product as Record<string, unknown>).Id,\n sku_id: (result.sku as Record<string, unknown>).Id,\n }),\n });\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { z } from \"zod\";\n\nimport {\n addSkuEan,\n attachSkuImage,\n createProduct,\n createSku,\n getSkuImages,\n replaceSkuEans,\n updateProductBasicFields as applyProductBasicFields,\n updateSkuBasicFields as applySkuBasicFields,\n updateSkuImage,\n} from \"../../services/vtex/vtex-catalog-write.js\";\nimport {\n buildWriteSuccessResponse,\n handleVtexWriteError,\n resolveVtexWriteProfile,\n vtexProfileIdSchemaField,\n} from \"./write-helpers.js\";\n\ntype CatalogWriteExecutor<TParams extends { profileId?: string }, TResult> = {\n params: TParams;\n operation: string;\n message: string;\n fallbackError: string;\n riskLevel: \"low\" | \"medium\" | \"high\";\n execute: (resolvedProfileId: string, params: TParams) => Promise<TResult>;\n resourceId: (result: TResult, params: TParams) => string | undefined;\n before?: (result: TResult, params: TParams) => Record<string, unknown> | null;\n after?: (result: TResult, params: TParams) => Record<string, unknown> | null;\n details?: (result: TResult, params: TParams) => Record<string, unknown> | undefined;\n};\n\nasync function executeCatalogWrite<TParams extends { profileId?: string }, TResult>({\n params,\n operation,\n message,\n fallbackError,\n riskLevel,\n execute,\n resourceId,\n before,\n after,\n details,\n}: CatalogWriteExecutor<TParams, TResult>) {\n try {\n const profileResolution = await resolveVtexWriteProfile(params.profileId);\n if (!profileResolution.ok) {\n return profileResolution.response;\n }\n\n const resolvedProfileId = profileResolution.value.profileId;\n const result = await execute(resolvedProfileId, params);\n\n return buildWriteSuccessResponse({\n profileId: resolvedProfileId,\n operation,\n resourceId: resourceId(result, params),\n riskLevel,\n message,\n before: before?.(result, params),\n after: after?.(result, params) ?? (result as Record<string, unknown>),\n details: details?.(result, params),\n });\n } catch (err) {\n return handleVtexWriteError(err, fallbackError);\n }\n}\n\nexport const updateProductBasicFieldsSchema = z\n .object({\n profileId: vtexProfileIdSchemaField,\n productId: z.string().min(1).describe(\"VTEX product identifier.\"),\n name: z.string().min(1).optional().describe(\"New product name.\"),\n categoryId: z.number().int().positive().optional().describe(\"New category identifier.\"),\n brandId: z.number().int().positive().optional().describe(\"New brand identifier.\"),\n description: z.string().optional().describe(\"New product description.\"),\n descriptionShort: z.string().optional().describe(\"New short description.\"),\n title: z.string().optional().describe(\"New SEO title.\"),\n linkId: z.string().optional().describe(\"New product slug.\"),\n refId: z.string().optional().describe(\"New internal reference code.\"),\n isVisible: z.boolean().optional().describe(\"Whether the product should remain visible in listings.\"),\n isActive: z.boolean().optional().describe(\"Whether the product should remain active.\"),\n keyWords: z.string().optional().describe(\"New keywords string.\"),\n releaseDate: z.string().optional().describe(\"New release date in ISO format.\"),\n metaTagDescription: z.string().optional().describe(\"New meta description.\"),\n showWithoutStock: z\n .boolean()\n .optional()\n .describe(\"Whether the product can stay visible without stock.\"),\n })\n .refine(\n (value) =>\n value.name !== undefined ||\n value.categoryId !== undefined ||\n value.brandId !== undefined ||\n value.description !== undefined ||\n value.descriptionShort !== undefined ||\n value.title !== undefined ||\n value.linkId !== undefined ||\n value.refId !== undefined ||\n value.isVisible !== undefined ||\n value.isActive !== undefined ||\n value.keyWords !== undefined ||\n value.releaseDate !== undefined ||\n value.metaTagDescription !== undefined ||\n value.showWithoutStock !== undefined,\n {\n message: \"At least one product field must be provided.\",\n path: [\"name\"],\n }\n );\n\nexport async function updateProductBasicFieldsHandler({\n profileId,\n productId,\n ...updates\n}: z.infer<typeof updateProductBasicFieldsSchema>) {\n return executeCatalogWrite({\n params: { profileId, productId, ...updates },\n operation: \"update_product_basic_fields\",\n message: \"Product fields updated successfully.\",\n fallbackError: `Failed to update product ${productId}`,\n riskLevel: \"medium\",\n execute: (resolvedProfileId, currentParams) => {\n const { profileId: _ignoredProfileId, productId: _ignoredProductId, ...productUpdates } = currentParams;\n return applyProductBasicFields(resolvedProfileId, currentParams.productId, productUpdates);\n },\n resourceId: (_result, currentParams) => currentParams.productId,\n before: (result) => result.before,\n after: (result) => result.after,\n details: (_result, currentParams) => ({\n product_id: currentParams.productId,\n }),\n });\n}\n\nexport const updateProductBrandSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n productId: z.string().min(1).describe(\"VTEX product identifier.\"),\n brandId: z.number().int().positive().describe(\"Brand identifier to set on the product.\"),\n});\n\nexport async function updateProductBrandHandler(params: z.infer<typeof updateProductBrandSchema>) {\n return updateProductBasicFieldsHandler({\n profileId: params.profileId,\n productId: params.productId,\n brandId: params.brandId,\n });\n}\n\nexport const updateSkuBasicFieldsSchema = z\n .object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n name: z.string().min(1).optional().describe(\"New SKU name.\"),\n refId: z.string().optional().describe(\"New SKU reference code.\"),\n ean: z\n .string()\n .optional()\n .describe(\"New EAN. When informed, existing EAN values are replaced with this one.\"),\n packagedHeight: z.number().nonnegative().optional().describe(\"Packaged height.\"),\n packagedLength: z.number().nonnegative().optional().describe(\"Packaged length.\"),\n packagedWidth: z.number().nonnegative().optional().describe(\"Packaged width.\"),\n packagedWeightKg: z.number().nonnegative().optional().describe(\"Packaged weight in kg.\"),\n height: z.number().nonnegative().optional().describe(\"Physical height.\"),\n length: z.number().nonnegative().optional().describe(\"Physical length.\"),\n width: z.number().nonnegative().optional().describe(\"Physical width.\"),\n weightKg: z.number().nonnegative().optional().describe(\"Physical weight in kg.\"),\n measurementUnit: z.string().optional().describe(\"Measurement unit.\"),\n unitMultiplier: z.number().positive().optional().describe(\"Unit multiplier.\"),\n manufacturerCode: z.string().optional().describe(\"Manufacturer code.\"),\n commercialConditionId: z\n .number()\n .int()\n .positive()\n .optional()\n .describe(\n \"Commercial condition ID. Use vtex_commercial_conditions to inspect available condition IDs and vtex_payment_rules to configure linked installment/payment behavior.\"\n ),\n isActive: z.boolean().optional().describe(\"Whether the SKU should remain active.\"),\n activateIfPossible: z\n .boolean()\n .optional()\n .describe(\"Whether VTEX should auto-activate the SKU when possible.\"),\n })\n .refine(\n (value) =>\n value.name !== undefined ||\n value.refId !== undefined ||\n value.ean !== undefined ||\n value.packagedHeight !== undefined ||\n value.packagedLength !== undefined ||\n value.packagedWidth !== undefined ||\n value.packagedWeightKg !== undefined ||\n value.height !== undefined ||\n value.length !== undefined ||\n value.width !== undefined ||\n value.weightKg !== undefined ||\n value.measurementUnit !== undefined ||\n value.unitMultiplier !== undefined ||\n value.manufacturerCode !== undefined ||\n value.commercialConditionId !== undefined ||\n value.isActive !== undefined ||\n value.activateIfPossible !== undefined,\n {\n message: \"At least one SKU field must be provided.\",\n path: [\"name\"],\n }\n );\n\nexport async function updateSkuBasicFieldsHandler({\n profileId,\n skuId,\n ean,\n ...updates\n}: z.infer<typeof updateSkuBasicFieldsSchema>) {\n return executeCatalogWrite({\n params: { profileId, skuId, ean, ...updates },\n operation: \"update_sku_basic_fields\",\n message: \"SKU fields updated successfully.\",\n fallbackError: `Failed to update SKU ${skuId}`,\n riskLevel: \"medium\",\n execute: async (resolvedProfileId, currentParams) => {\n const {\n profileId: _ignoredProfileId,\n skuId: _ignoredSkuId,\n ean: _ignoredEan,\n ...skuUpdates\n } = currentParams;\n const skuUpdate = await applySkuBasicFields(resolvedProfileId, currentParams.skuId, skuUpdates);\n\n const eans =\n currentParams.ean === undefined\n ? undefined\n : await replaceSkuEans(resolvedProfileId, currentParams.skuId, [currentParams.ean]);\n\n return {\n skuUpdate,\n eans,\n };\n },\n resourceId: (_result, currentParams) => currentParams.skuId,\n before: (result) => result.skuUpdate.before,\n after: (result) => ({\n ...result.skuUpdate.after,\n ...(result.eans ? { Eans: result.eans } : {}),\n }),\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nconst skuStatusSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n});\n\nexport const activateSkuSchema = skuStatusSchema;\nexport const deactivateSkuSchema = skuStatusSchema;\n\nexport async function activateSkuHandler(params: z.infer<typeof activateSkuSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"activate_sku\",\n message: \"SKU activated successfully.\",\n fallbackError: `Failed to activate SKU ${params.skuId}`,\n riskLevel: \"medium\",\n execute: (resolvedProfileId, currentParams) =>\n applySkuBasicFields(resolvedProfileId, currentParams.skuId, { isActive: true }),\n resourceId: (_result, currentParams) => currentParams.skuId,\n before: (result) => result.before,\n after: (result) => result.after,\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nexport async function deactivateSkuHandler(params: z.infer<typeof deactivateSkuSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"deactivate_sku\",\n message: \"SKU deactivated successfully.\",\n fallbackError: `Failed to deactivate SKU ${params.skuId}`,\n riskLevel: \"medium\",\n execute: (resolvedProfileId, currentParams) =>\n applySkuBasicFields(resolvedProfileId, currentParams.skuId, { isActive: false }),\n resourceId: (_result, currentParams) => currentParams.skuId,\n before: (result) => result.before,\n after: (result) => result.after,\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nexport const addSkuEanSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n ean: z.string().trim().min(1).describe(\"EAN value to append.\"),\n});\n\nexport async function addSkuEanHandler(params: z.infer<typeof addSkuEanSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"add_sku_ean\",\n message: \"SKU EAN added successfully.\",\n fallbackError: `Failed to add EAN to SKU ${params.skuId}`,\n riskLevel: \"low\",\n execute: (resolvedProfileId, currentParams) =>\n addSkuEan(resolvedProfileId, currentParams.skuId, currentParams.ean),\n resourceId: (_result, currentParams) => currentParams.skuId,\n after: (result) => ({ Eans: result }),\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nexport const replaceSkuEansSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n eans: z.array(z.string().trim()).describe(\"Complete list of EANs to keep in VTEX.\"),\n});\n\nexport async function replaceSkuEansHandler(params: z.infer<typeof replaceSkuEansSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"replace_sku_eans\",\n message: \"SKU EANs replaced successfully.\",\n fallbackError: `Failed to replace EANs on SKU ${params.skuId}`,\n riskLevel: \"medium\",\n execute: (resolvedProfileId, currentParams) =>\n replaceSkuEans(resolvedProfileId, currentParams.skuId, currentParams.eans),\n resourceId: (_result, currentParams) => currentParams.skuId,\n after: (result) => ({ Eans: result }),\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nconst imagePayloadSchema = {\n name: z.string().trim().min(1).describe(\"Image name.\"),\n url: z.string().url().describe(\"Public image URL.\"),\n isMain: z.boolean().optional().describe(\"Whether the image is main.\"),\n label: z.string().optional().describe(\"Optional label.\"),\n text: z.string().optional().describe(\"Optional alt text.\"),\n position: z.number().int().nonnegative().optional().describe(\"Display position.\"),\n};\n\nexport const getSkuImagesSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n});\n\nexport async function getSkuImagesHandler(params: z.infer<typeof getSkuImagesSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"get_sku_images\",\n message: \"SKU images fetched successfully.\",\n fallbackError: `Failed to fetch images for SKU ${params.skuId}`,\n riskLevel: \"low\",\n execute: (resolvedProfileId, currentParams) => getSkuImages(resolvedProfileId, currentParams.skuId),\n resourceId: (_result, currentParams) => currentParams.skuId,\n after: (result) => ({ Images: result }),\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nexport const attachCatalogImageSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n ...imagePayloadSchema,\n});\n\nexport async function attachCatalogImageHandler(params: z.infer<typeof attachCatalogImageSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"attach_catalog_image\",\n message: \"Catalog image attached successfully.\",\n fallbackError: `Failed to attach image to SKU ${params.skuId}`,\n riskLevel: \"low\",\n execute: (resolvedProfileId, currentParams) =>\n attachSkuImage(resolvedProfileId, currentParams.skuId, {\n Name: currentParams.name,\n Url: currentParams.url,\n IsMain: currentParams.isMain,\n Label: currentParams.label,\n Text: currentParams.text,\n Position: currentParams.position,\n }),\n resourceId: (_result, currentParams) => currentParams.skuId,\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n }),\n });\n}\n\nexport const updateCatalogImageSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n skuId: z.string().min(1).describe(\"VTEX SKU identifier.\"),\n imageId: z.string().min(1).describe(\"Image identifier to update.\"),\n ...imagePayloadSchema,\n});\n\nexport async function updateCatalogImageHandler(params: z.infer<typeof updateCatalogImageSchema>) {\n return executeCatalogWrite({\n params,\n operation: \"update_catalog_image\",\n message: \"Catalog image updated successfully.\",\n fallbackError: `Failed to update image ${params.imageId} on SKU ${params.skuId}`,\n riskLevel: \"medium\",\n execute: (resolvedProfileId, currentParams) =>\n updateSkuImage(resolvedProfileId, currentParams.skuId, currentParams.imageId, {\n Name: currentParams.name,\n Url: currentParams.url,\n IsMain: currentParams.isMain,\n Label: currentParams.label,\n Text: currentParams.text,\n Position: currentParams.position,\n }),\n resourceId: (_result, currentParams) => currentParams.skuId,\n details: (_result, currentParams) => ({\n sku_id: currentParams.skuId,\n image_id: currentParams.imageId,\n }),\n });\n}\n\nconst productInputSchema = z\n .object({\n name: z.string().min(1).describe(\"Product name.\"),\n categoryId: z.number().int().positive().optional().describe(\"Existing category ID.\"),\n categoryPath: z.string().min(1).optional().describe(\"Category path to create or reuse.\"),\n brandId: z.number().int().positive().optional().describe(\"Existing brand ID.\"),\n brandName: z.string().min(1).optional().describe(\"Brand name to create or reuse.\"),\n departmentId: z.number().int().positive().optional().describe(\"Department ID.\"),\n refId: z.string().optional().describe(\"Product reference code.\"),\n title: z.string().optional().describe(\"SEO title.\"),\n description: z.string().optional().describe(\"Product description.\"),\n descriptionShort: z.string().optional().describe(\"Short description.\"),\n linkId: z.string().optional().describe(\"Product slug.\"),\n })\n .refine((value) => value.categoryId !== undefined || value.categoryPath !== undefined, {\n message: \"Provide either categoryId or categoryPath for the product.\",\n path: [\"categoryId\"],\n })\n .refine((value) => value.brandId !== undefined || value.brandName !== undefined, {\n message: \"Provide either brandId or brandName for the product.\",\n path: [\"brandId\"],\n });\n\nconst skuInputSchema = z.object({\n name: z.string().min(1).describe(\"SKU name.\"),\n refId: z.string().min(1).describe(\"Internal SKU reference code.\"),\n ean: z.string().optional().describe(\"Optional EAN to attach after creation.\"),\n packagedHeight: z.number().nonnegative().describe(\"Packaged height.\"),\n packagedLength: z.number().nonnegative().describe(\"Packaged length.\"),\n packagedWidth: z.number().nonnegative().describe(\"Packaged width.\"),\n packagedWeightKg: z.number().nonnegative().describe(\"Packaged weight in kg.\"),\n height: z.number().nonnegative().optional().describe(\"Physical height.\"),\n length: z.number().nonnegative().optional().describe(\"Physical length.\"),\n width: z.number().nonnegative().optional().describe(\"Physical width.\"),\n weightKg: z.number().nonnegative().optional().describe(\"Physical weight in kg.\"),\n activateIfPossible: z.boolean().optional().describe(\"Whether VTEX should auto-activate the SKU.\"),\n measurementUnit: z.string().optional().describe(\"Measurement unit.\"),\n unitMultiplier: z.number().positive().optional().describe(\"Unit multiplier.\"),\n});\n\nconst imageInputSchema = z.object(imagePayloadSchema).optional();\n\nexport const createProductWithSkuSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n product: productInputSchema.describe(\"Product payload.\"),\n sku: skuInputSchema.describe(\"SKU payload.\"),\n image: imageInputSchema.describe(\"Optional SKU image attached after SKU creation.\"),\n});\n\nexport async function createProductWithSkuHandler({\n profileId,\n product,\n sku,\n image,\n}: z.infer<typeof createProductWithSkuSchema>) {\n return executeCatalogWrite({\n params: { profileId, product, sku, image },\n operation: \"create_product_with_sku\",\n message: \"Product and SKU created successfully.\",\n fallbackError: \"Failed to create product with SKU in VTEX\",\n riskLevel: \"low\",\n execute: async (resolvedProfileId, currentParams) => {\n const createdProduct = await createProduct(resolvedProfileId, {\n Name: currentParams.product.name,\n CategoryId: currentParams.product.categoryId,\n CategoryPath: currentParams.product.categoryPath,\n BrandId: currentParams.product.brandId,\n BrandName: currentParams.product.brandName,\n DepartmentId: currentParams.product.departmentId,\n RefId: currentParams.product.refId,\n Title: currentParams.product.title,\n Description: currentParams.product.description,\n DescriptionShort: currentParams.product.descriptionShort,\n LinkId: currentParams.product.linkId,\n });\n\n const productId = Number(createdProduct.Id);\n const createdSku = await createSku(resolvedProfileId, {\n ProductId: productId,\n Name: currentParams.sku.name,\n RefId: currentParams.sku.refId,\n PackagedHeight: currentParams.sku.packagedHeight,\n PackagedLength: currentParams.sku.packagedLength,\n PackagedWidth: currentParams.sku.packagedWidth,\n PackagedWeightKg: currentParams.sku.packagedWeightKg,\n Height: currentParams.sku.height,\n Length: currentParams.sku.length,\n Width: currentParams.sku.width,\n WeightKg: currentParams.sku.weightKg,\n ActivateIfPossible: currentParams.sku.activateIfPossible ?? true,\n IsActive: false,\n MeasurementUnit: currentParams.sku.measurementUnit,\n UnitMultiplier: currentParams.sku.unitMultiplier,\n });\n\n const skuId = createdSku.Id == null ? undefined : String(createdSku.Id);\n if (skuId && currentParams.sku.ean?.trim()) {\n await addSkuEan(resolvedProfileId, skuId, currentParams.sku.ean.trim());\n }\n\n if (skuId && currentParams.image) {\n await attachSkuImage(resolvedProfileId, skuId, {\n Name: currentParams.image.name,\n Url: currentParams.image.url,\n IsMain: currentParams.image.isMain,\n Label: currentParams.image.label,\n Text: currentParams.image.text,\n Position: currentParams.image.position,\n });\n }\n\n return {\n product: createdProduct,\n sku: createdSku,\n };\n },\n resourceId: (result) => String((result.product as Record<string, unknown>).Id ?? \"\"),\n before: () => null,\n after: (result) => ({\n product: result.product,\n sku: result.sku,\n }),\n details: (result) => ({\n product_id: (result.product as Record<string, unknown>).Id,\n sku_id: (result.sku as Record<string, unknown>).Id,\n }),\n });\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,105 @@
1
+ import { error, object } from "mcp-use/server";
2
+ import { z } from "zod";
3
+ import { formatVtexError } from "../../services/vtex/vtex-api.js";
4
+ import {
5
+ getCommercialCondition,
6
+ listCommercialConditions
7
+ } from "../../services/vtex/vtex-payments.js";
8
+ import { toSnakeCaseKeys } from "../../utils/case-conversion.js";
9
+ import { stripNulls } from "../../utils/strip-payload.js";
10
+ import { vtexProfileIdSchemaField } from "./write-helpers.js";
11
+ const requiredProfileIdSchemaField = vtexProfileIdSchemaField.unwrap().describe("Explicit VTEX profile id to use for this operation.");
12
+ const commercialConditionActionSchema = z.enum(["list", "get"]).describe("Action to perform for VTEX commercial conditions.");
13
+ const commercialConditionIdSchemaField = z.number().int().positive().describe("Positive VTEX commercial condition identifier.");
14
+ const conditionRowsSchema = ["id", "name", "is_active"];
15
+ function readValue(record, ...keys) {
16
+ for (const key of keys) {
17
+ if (key in record) {
18
+ return record[key];
19
+ }
20
+ }
21
+ return void 0;
22
+ }
23
+ const listActionSchema = z.object({
24
+ action: z.literal("list"),
25
+ profileId: requiredProfileIdSchemaField,
26
+ search: z.string().trim().min(1).optional().describe("Optional text filter for condition name lookup.")
27
+ });
28
+ const getActionSchema = z.object({
29
+ action: z.literal("get"),
30
+ profileId: requiredProfileIdSchemaField,
31
+ commercialConditionId: commercialConditionIdSchemaField
32
+ });
33
+ function getCommercialConditionsActionSchema(action) {
34
+ switch (action) {
35
+ case "list":
36
+ return listActionSchema;
37
+ case "get":
38
+ return getActionSchema;
39
+ }
40
+ }
41
+ const commercialConditionsSchema = z.object({
42
+ action: commercialConditionActionSchema,
43
+ profileId: requiredProfileIdSchemaField,
44
+ search: z.string().trim().min(1).optional().describe("Optional text filter for condition name lookup."),
45
+ commercialConditionId: commercialConditionIdSchemaField.optional()
46
+ }).superRefine((value, ctx) => {
47
+ const validation = getCommercialConditionsActionSchema(value.action).safeParse(value);
48
+ if (validation.success) {
49
+ return;
50
+ }
51
+ for (const issue of validation.error.issues) {
52
+ ctx.addIssue(issue);
53
+ }
54
+ });
55
+ async function commercialConditionsHandler(params) {
56
+ switch (params.action) {
57
+ case "list": {
58
+ const validatedParams = listActionSchema.parse(params);
59
+ try {
60
+ const conditions = await listCommercialConditions(validatedParams.profileId, validatedParams.search);
61
+ return object({
62
+ metadata: stripNulls({
63
+ total: conditions.length,
64
+ profile_id: validatedParams.profileId,
65
+ search: validatedParams.search
66
+ }),
67
+ conditions_schema: conditionRowsSchema,
68
+ conditions: conditions.map((condition) => [
69
+ readValue(condition, "id", "Id"),
70
+ readValue(condition, "name", "Name"),
71
+ readValue(condition, "isActive", "IsActive", "is_active")
72
+ ])
73
+ });
74
+ } catch (err) {
75
+ return error(formatVtexError(err, "Failed to list VTEX commercial conditions"));
76
+ }
77
+ }
78
+ case "get": {
79
+ const validatedParams = getActionSchema.parse(params);
80
+ try {
81
+ const condition = await getCommercialCondition(
82
+ validatedParams.profileId,
83
+ validatedParams.commercialConditionId
84
+ );
85
+ return object({
86
+ profile_id: validatedParams.profileId,
87
+ commercial_condition_id: validatedParams.commercialConditionId,
88
+ condition: toSnakeCaseKeys(condition)
89
+ });
90
+ } catch (err) {
91
+ return error(
92
+ formatVtexError(
93
+ err,
94
+ `Failed to fetch VTEX commercial condition ${validatedParams.commercialConditionId}`
95
+ )
96
+ );
97
+ }
98
+ }
99
+ }
100
+ }
101
+ export {
102
+ commercialConditionsHandler,
103
+ commercialConditionsSchema
104
+ };
105
+ //# sourceMappingURL=commercial-conditions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/tools/vtex/commercial-conditions.ts"],
4
+ "sourcesContent": ["import { error, object } from \"mcp-use/server\";\nimport { z } from \"zod\";\n\nimport { formatVtexError } from \"../../services/vtex/vtex-api.js\";\nimport {\n getCommercialCondition,\n listCommercialConditions,\n} from \"../../services/vtex/vtex-payments.js\";\nimport { toSnakeCaseKeys } from \"../../utils/case-conversion.js\";\nimport { stripNulls } from \"../../utils/strip-payload.js\";\nimport { vtexProfileIdSchemaField } from \"./write-helpers.js\";\n\nconst requiredProfileIdSchemaField = vtexProfileIdSchemaField\n .unwrap()\n .describe(\"Explicit VTEX profile id to use for this operation.\");\n\nconst commercialConditionActionSchema = z\n .enum([\"list\", \"get\"])\n .describe(\"Action to perform for VTEX commercial conditions.\");\n\nconst commercialConditionIdSchemaField = z\n .number()\n .int()\n .positive()\n .describe(\"Positive VTEX commercial condition identifier.\");\n\nconst conditionRowsSchema = [\"id\", \"name\", \"is_active\"] as const;\n\nfunction readValue(record: Record<string, unknown>, ...keys: string[]): unknown {\n for (const key of keys) {\n if (key in record) {\n return record[key];\n }\n }\n\n return undefined;\n}\n\nconst listActionSchema = z.object({\n action: z.literal(\"list\"),\n profileId: requiredProfileIdSchemaField,\n search: z.string().trim().min(1).optional().describe(\"Optional text filter for condition name lookup.\"),\n});\n\nconst getActionSchema = z.object({\n action: z.literal(\"get\"),\n profileId: requiredProfileIdSchemaField,\n commercialConditionId: commercialConditionIdSchemaField,\n});\n\nfunction getCommercialConditionsActionSchema(\n action: z.infer<typeof commercialConditionActionSchema>\n) {\n switch (action) {\n case \"list\":\n return listActionSchema;\n case \"get\":\n return getActionSchema;\n }\n}\n\nexport const commercialConditionsSchema = z\n .object({\n action: commercialConditionActionSchema,\n profileId: requiredProfileIdSchemaField,\n search: z.string().trim().min(1).optional().describe(\"Optional text filter for condition name lookup.\"),\n commercialConditionId: commercialConditionIdSchemaField.optional(),\n })\n .superRefine((value, ctx) => {\n const validation = getCommercialConditionsActionSchema(value.action).safeParse(value);\n if (validation.success) {\n return;\n }\n\n for (const issue of validation.error.issues) {\n ctx.addIssue(issue as Parameters<typeof ctx.addIssue>[0]);\n }\n });\n\nexport async function commercialConditionsHandler(params: z.infer<typeof commercialConditionsSchema>) {\n switch (params.action) {\n case \"list\": {\n const validatedParams = listActionSchema.parse(params);\n\n try {\n const conditions = await listCommercialConditions(validatedParams.profileId, validatedParams.search);\n\n return object({\n metadata: stripNulls({\n total: conditions.length,\n profile_id: validatedParams.profileId,\n search: validatedParams.search,\n }),\n conditions_schema: conditionRowsSchema,\n conditions: conditions.map((condition) => [\n readValue(condition, \"id\", \"Id\"),\n readValue(condition, \"name\", \"Name\"),\n readValue(condition, \"isActive\", \"IsActive\", \"is_active\"),\n ]),\n });\n } catch (err) {\n return error(formatVtexError(err, \"Failed to list VTEX commercial conditions\"));\n }\n }\n\n case \"get\": {\n const validatedParams = getActionSchema.parse(params);\n\n try {\n const condition = await getCommercialCondition(\n validatedParams.profileId,\n validatedParams.commercialConditionId\n );\n\n return object({\n profile_id: validatedParams.profileId,\n commercial_condition_id: validatedParams.commercialConditionId,\n condition: toSnakeCaseKeys(condition),\n });\n } catch (err) {\n return error(\n formatVtexError(\n err,\n `Failed to fetch VTEX commercial condition ${validatedParams.commercialConditionId}`\n )\n );\n }\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -25,7 +25,9 @@ const createSkuSchema = z.object({
25
25
  measurementUnit: z.string().optional().describe("Measurement unit, for example `un`."),
26
26
  unitMultiplier: z.number().positive().optional().describe("Unit multiplier."),
27
27
  manufacturerCode: z.string().optional().describe("Manufacturer code."),
28
- commercialConditionId: z.number().int().positive().optional().describe("Commercial condition ID.")
28
+ commercialConditionId: z.number().int().positive().optional().describe(
29
+ "Commercial condition ID. Use vtex_commercial_conditions to inspect available condition IDs and vtex_payment_rules to configure linked installment/payment behavior."
30
+ )
29
31
  });
30
32
  async function createSkuHandler({
31
33
  profileId,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/tools/vtex/create-sku.ts"],
4
- "sourcesContent": ["import { z } from \"zod\";\n\nimport { createSku, createSkuEan } from \"../../services/vtex/vtex-catalog-write.js\";\nimport {\n buildWriteSuccessResponse,\n handleVtexWriteError,\n resolveVtexWriteProfile,\n vtexProfileIdSchemaField,\n} from \"./write-helpers.js\";\n\nexport const createSkuSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n productId: z.number().int().positive().describe(\"Parent product ID.\"),\n name: z.string().min(1).describe(\"SKU name.\"),\n refId: z.string().min(1).describe(\"Internal SKU reference code.\"),\n ean: z.string().optional().describe(\"Optional EAN to attach after SKU creation.\"),\n packagedHeight: z.number().nonnegative().describe(\"Packaged height.\"),\n packagedLength: z.number().nonnegative().describe(\"Packaged length.\"),\n packagedWidth: z.number().nonnegative().describe(\"Packaged width.\"),\n packagedWeightKg: z.number().nonnegative().describe(\"Packaged weight in kg.\"),\n height: z.number().nonnegative().optional().describe(\"Physical height.\"),\n length: z.number().nonnegative().optional().describe(\"Physical length.\"),\n width: z.number().nonnegative().optional().describe(\"Physical width.\"),\n weightKg: z.number().nonnegative().optional().describe(\"Physical weight in kg.\"),\n isActive: z\n .boolean()\n .optional()\n .describe(\"Whether the SKU should be created as active. VTEX recommends false during creation.\"),\n activateIfPossible: z\n .boolean()\n .optional()\n .describe(\"Whether VTEX should auto-activate the SKU when an image or active component exists.\"),\n measurementUnit: z.string().optional().describe(\"Measurement unit, for example `un`.\"),\n unitMultiplier: z.number().positive().optional().describe(\"Unit multiplier.\"),\n manufacturerCode: z.string().optional().describe(\"Manufacturer code.\"),\n commercialConditionId: z.number().int().positive().optional().describe(\"Commercial condition ID.\"),\n});\n\nexport async function createSkuHandler({\n profileId,\n productId,\n name,\n refId,\n ean,\n packagedHeight,\n packagedLength,\n packagedWidth,\n packagedWeightKg,\n height,\n length,\n width,\n weightKg,\n isActive,\n activateIfPossible,\n measurementUnit,\n unitMultiplier,\n manufacturerCode,\n commercialConditionId,\n}: z.infer<typeof createSkuSchema>) {\n try {\n const profileResolution = await resolveVtexWriteProfile(profileId);\n if (!profileResolution.ok) {\n return profileResolution.response;\n }\n\n const resolvedProfileId = profileResolution.value.profileId;\n const payload: Record<string, unknown> = {\n ProductId: productId,\n Name: name,\n RefId: refId,\n PackagedHeight: packagedHeight,\n PackagedLength: packagedLength,\n PackagedWidth: packagedWidth,\n PackagedWeightKg: packagedWeightKg,\n ActivateIfPossible: activateIfPossible ?? true,\n IsActive: isActive ?? false,\n };\n\n if (height !== undefined) payload.Height = height;\n if (length !== undefined) payload.Length = length;\n if (width !== undefined) payload.Width = width;\n if (weightKg !== undefined) payload.WeightKg = weightKg;\n if (measurementUnit !== undefined) payload.MeasurementUnit = measurementUnit;\n if (unitMultiplier !== undefined) payload.UnitMultiplier = unitMultiplier;\n if (manufacturerCode !== undefined) payload.ManufacturerCode = manufacturerCode;\n if (commercialConditionId !== undefined) payload.CommercialConditionId = commercialConditionId;\n\n const createdSku = await createSku(resolvedProfileId, payload);\n const resourceId = createdSku.Id == null ? undefined : String(createdSku.Id);\n\n if (resourceId && ean?.trim()) {\n await createSkuEan(resolvedProfileId, resourceId, ean.trim());\n createdSku.Eans = [ean.trim()];\n }\n\n return buildWriteSuccessResponse({\n profileId: resolvedProfileId,\n operation: \"create_sku\",\n resourceId,\n riskLevel: \"low\",\n message: \"SKU created successfully.\",\n before: null,\n after: createdSku,\n details: {\n product_id: productId,\n sku_id: resourceId,\n },\n });\n } catch (err) {\n return handleVtexWriteError(err, \"Failed to create SKU in VTEX\");\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { z } from \"zod\";\n\nimport { createSku, createSkuEan } from \"../../services/vtex/vtex-catalog-write.js\";\nimport {\n buildWriteSuccessResponse,\n handleVtexWriteError,\n resolveVtexWriteProfile,\n vtexProfileIdSchemaField,\n} from \"./write-helpers.js\";\n\nexport const createSkuSchema = z.object({\n profileId: vtexProfileIdSchemaField,\n productId: z.number().int().positive().describe(\"Parent product ID.\"),\n name: z.string().min(1).describe(\"SKU name.\"),\n refId: z.string().min(1).describe(\"Internal SKU reference code.\"),\n ean: z.string().optional().describe(\"Optional EAN to attach after SKU creation.\"),\n packagedHeight: z.number().nonnegative().describe(\"Packaged height.\"),\n packagedLength: z.number().nonnegative().describe(\"Packaged length.\"),\n packagedWidth: z.number().nonnegative().describe(\"Packaged width.\"),\n packagedWeightKg: z.number().nonnegative().describe(\"Packaged weight in kg.\"),\n height: z.number().nonnegative().optional().describe(\"Physical height.\"),\n length: z.number().nonnegative().optional().describe(\"Physical length.\"),\n width: z.number().nonnegative().optional().describe(\"Physical width.\"),\n weightKg: z.number().nonnegative().optional().describe(\"Physical weight in kg.\"),\n isActive: z\n .boolean()\n .optional()\n .describe(\"Whether the SKU should be created as active. VTEX recommends false during creation.\"),\n activateIfPossible: z\n .boolean()\n .optional()\n .describe(\"Whether VTEX should auto-activate the SKU when an image or active component exists.\"),\n measurementUnit: z.string().optional().describe(\"Measurement unit, for example `un`.\"),\n unitMultiplier: z.number().positive().optional().describe(\"Unit multiplier.\"),\n manufacturerCode: z.string().optional().describe(\"Manufacturer code.\"),\n commercialConditionId: z\n .number()\n .int()\n .positive()\n .optional()\n .describe(\n \"Commercial condition ID. Use vtex_commercial_conditions to inspect available condition IDs and vtex_payment_rules to configure linked installment/payment behavior.\"\n ),\n});\n\nexport async function createSkuHandler({\n profileId,\n productId,\n name,\n refId,\n ean,\n packagedHeight,\n packagedLength,\n packagedWidth,\n packagedWeightKg,\n height,\n length,\n width,\n weightKg,\n isActive,\n activateIfPossible,\n measurementUnit,\n unitMultiplier,\n manufacturerCode,\n commercialConditionId,\n}: z.infer<typeof createSkuSchema>) {\n try {\n const profileResolution = await resolveVtexWriteProfile(profileId);\n if (!profileResolution.ok) {\n return profileResolution.response;\n }\n\n const resolvedProfileId = profileResolution.value.profileId;\n const payload: Record<string, unknown> = {\n ProductId: productId,\n Name: name,\n RefId: refId,\n PackagedHeight: packagedHeight,\n PackagedLength: packagedLength,\n PackagedWidth: packagedWidth,\n PackagedWeightKg: packagedWeightKg,\n ActivateIfPossible: activateIfPossible ?? true,\n IsActive: isActive ?? false,\n };\n\n if (height !== undefined) payload.Height = height;\n if (length !== undefined) payload.Length = length;\n if (width !== undefined) payload.Width = width;\n if (weightKg !== undefined) payload.WeightKg = weightKg;\n if (measurementUnit !== undefined) payload.MeasurementUnit = measurementUnit;\n if (unitMultiplier !== undefined) payload.UnitMultiplier = unitMultiplier;\n if (manufacturerCode !== undefined) payload.ManufacturerCode = manufacturerCode;\n if (commercialConditionId !== undefined) payload.CommercialConditionId = commercialConditionId;\n\n const createdSku = await createSku(resolvedProfileId, payload);\n const resourceId = createdSku.Id == null ? undefined : String(createdSku.Id);\n\n if (resourceId && ean?.trim()) {\n await createSkuEan(resolvedProfileId, resourceId, ean.trim());\n createdSku.Eans = [ean.trim()];\n }\n\n return buildWriteSuccessResponse({\n profileId: resolvedProfileId,\n operation: \"create_sku\",\n resourceId,\n riskLevel: \"low\",\n message: \"SKU created successfully.\",\n before: null,\n after: createdSku,\n details: {\n product_id: productId,\n sku_id: resourceId,\n },\n });\n } catch (err) {\n return handleVtexWriteError(err, \"Failed to create SKU in VTEX\");\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,SAAS;AAElB,SAAS,WAAW,oBAAoB;AACxC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,MAAM,kBAAkB,EAAE,OAAO;AAAA,EACtC,WAAW;AAAA,EACX,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EACpE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,WAAW;AAAA,EAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,8BAA8B;AAAA,EAChE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4CAA4C;AAAA,EAChF,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,kBAAkB;AAAA,EACpE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,kBAAkB;AAAA,EACpE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,iBAAiB;AAAA,EAClE,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,wBAAwB;AAAA,EAC5E,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA,EACvE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA,EACvE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA,EACrE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA,EAC/E,UAAU,EACP,QAAQ,EACR,SAAS,EACT,SAAS,qFAAqF;AAAA,EACjG,oBAAoB,EACjB,QAAQ,EACR,SAAS,EACT,SAAS,qFAAqF;AAAA,EACjG,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,qCAAqC;AAAA,EACrF,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA,EAC5E,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EACrE,uBAAuB,EACpB,OAAO,EACP,IAAI,EACJ,SAAS,EACT,SAAS,EACT;AAAA,IACC;AAAA,EACF;AACJ,CAAC;AAED,eAAsB,iBAAiB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAoC;AAClC,MAAI;AACF,UAAM,oBAAoB,MAAM,wBAAwB,SAAS;AACjE,QAAI,CAAC,kBAAkB,IAAI;AACzB,aAAO,kBAAkB;AAAA,IAC3B;AAEA,UAAM,oBAAoB,kBAAkB,MAAM;AAClD,UAAM,UAAmC;AAAA,MACvC,WAAW;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,oBAAoB,sBAAsB;AAAA,MAC1C,UAAU,YAAY;AAAA,IACxB;AAEA,QAAI,WAAW,OAAW,SAAQ,SAAS;AAC3C,QAAI,WAAW,OAAW,SAAQ,SAAS;AAC3C,QAAI,UAAU,OAAW,SAAQ,QAAQ;AACzC,QAAI,aAAa,OAAW,SAAQ,WAAW;AAC/C,QAAI,oBAAoB,OAAW,SAAQ,kBAAkB;AAC7D,QAAI,mBAAmB,OAAW,SAAQ,iBAAiB;AAC3D,QAAI,qBAAqB,OAAW,SAAQ,mBAAmB;AAC/D,QAAI,0BAA0B,OAAW,SAAQ,wBAAwB;AAEzE,UAAM,aAAa,MAAM,UAAU,mBAAmB,OAAO;AAC7D,UAAM,aAAa,WAAW,MAAM,OAAO,SAAY,OAAO,WAAW,EAAE;AAE3E,QAAI,cAAc,KAAK,KAAK,GAAG;AAC7B,YAAM,aAAa,mBAAmB,YAAY,IAAI,KAAK,CAAC;AAC5D,iBAAW,OAAO,CAAC,IAAI,KAAK,CAAC;AAAA,IAC/B;AAEA,WAAO,0BAA0B;AAAA,MAC/B,WAAW;AAAA,MACX,WAAW;AAAA,MACX;AAAA,MACA,WAAW;AAAA,MACX,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,QAAQ;AAAA,MACV;AAAA,IACF,CAAC;AAAA,EACH,SAAS,KAAK;AACZ,WAAO,qBAAqB,KAAK,8BAA8B;AAAA,EACjE;AACF;",
6
6
  "names": []
7
7
  }
@@ -31,6 +31,8 @@ export * from "./update-product-basic-fields.js";
31
31
  export * from "./update-sku-basic-fields.js";
32
32
  export * from "./create-product.js";
33
33
  export * from "./create-sku.js";
34
+ export * from "./commercial-conditions.js";
35
+ export * from "./payment-rules.js";
34
36
  export * from "./create-brand.js";
35
37
  export * from "./update-brand.js";
36
38
  export * from "./create-category.js";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/tools/vtex/index.ts"],
4
- "sourcesContent": ["export * from \"./orders-summary.js\";\nexport * from \"./order-details.js\";\nexport * from \"./inventory-check.js\";\nexport * from \"./warehouse-inventory.js\";\nexport * from \"./update-inventory.js\";\nexport * from \"./update-lead-time.js\";\nexport * from \"./toggle-unlimited-quantity.js\";\nexport * from \"./sku-price.js\";\nexport * from \"./computed-price.js\";\nexport * from \"./product-offers.js\";\nexport * from \"./sku-offers.js\";\nexport * from \"./get-category-tree.js\";\nexport * from \"./list-categories.js\";\nexport * from \"./get-category.js\";\nexport * from \"./get-brand.js\";\nexport * from \"./list-brands.js\";\nexport * from \"./list-specification-groups.js\";\nexport * from \"./get-product.js\";\nexport * from \"./get-product-specifications.js\";\nexport * from \"./list-products.js\";\nexport * from \"./list-products-by-category.js\";\nexport * from \"./get-sku.js\";\nexport * from \"./list-skus-by-product.js\";\nexport * from \"./update-sku-price.js\";\nexport * from \"./delete-sku-price.js\";\nexport * from \"./upsert-fixed-price.js\";\nexport * from \"./delete-fixed-price.js\";\nexport * from \"./activate-sku.js\";\nexport * from \"./deactivate-sku.js\";\nexport * from \"./update-product-basic-fields.js\";\nexport * from \"./update-sku-basic-fields.js\";\nexport * from \"./create-product.js\";\nexport * from \"./create-sku.js\";\n// Helper-only flow: create-product-with-sku stays internal until dedicated\n// product/SKU admin wrappers complete full rationalization.\nexport * from \"./create-brand.js\";\nexport * from \"./update-brand.js\";\nexport * from \"./create-category.js\";\nexport * from \"./update-category.js\";\nexport * from \"./move-category.js\";\nexport * from \"./create-specification.js\";\nexport * from \"./create-specification-value.js\";\nexport * from \"./associate-specification.js\";\nexport * from \"./delete-product-specification.js\";\nexport * from \"./delete-all-product-specifications.js\";\nexport * from \"./delete-brand.js\";\nexport * from \"./delete-catalog-image.js\";\nexport * from \"./delete-sku-specification.js\";\nexport * from \"./delete-all-sku-specifications.js\";\nexport * from \"./attach-catalog-image.js\";\nexport * from \"./catalog-admin-products-skus.js\";\nexport * from \"./cancel-order.js\";\nexport * from \"./invoice-order.js\";\nexport * from \"./add-order-tracking.js\";\nexport * from \"./profile-resolution.js\";\n"],
5
- "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "sourcesContent": ["export * from \"./orders-summary.js\";\nexport * from \"./order-details.js\";\nexport * from \"./inventory-check.js\";\nexport * from \"./warehouse-inventory.js\";\nexport * from \"./update-inventory.js\";\nexport * from \"./update-lead-time.js\";\nexport * from \"./toggle-unlimited-quantity.js\";\nexport * from \"./sku-price.js\";\nexport * from \"./computed-price.js\";\nexport * from \"./product-offers.js\";\nexport * from \"./sku-offers.js\";\nexport * from \"./get-category-tree.js\";\nexport * from \"./list-categories.js\";\nexport * from \"./get-category.js\";\nexport * from \"./get-brand.js\";\nexport * from \"./list-brands.js\";\nexport * from \"./list-specification-groups.js\";\nexport * from \"./get-product.js\";\nexport * from \"./get-product-specifications.js\";\nexport * from \"./list-products.js\";\nexport * from \"./list-products-by-category.js\";\nexport * from \"./get-sku.js\";\nexport * from \"./list-skus-by-product.js\";\nexport * from \"./update-sku-price.js\";\nexport * from \"./delete-sku-price.js\";\nexport * from \"./upsert-fixed-price.js\";\nexport * from \"./delete-fixed-price.js\";\nexport * from \"./activate-sku.js\";\nexport * from \"./deactivate-sku.js\";\nexport * from \"./update-product-basic-fields.js\";\nexport * from \"./update-sku-basic-fields.js\";\nexport * from \"./create-product.js\";\nexport * from \"./create-sku.js\";\nexport * from \"./commercial-conditions.js\";\nexport * from \"./payment-rules.js\";\n// Helper-only flow: create-product-with-sku stays internal until dedicated\n// product/SKU admin wrappers complete full rationalization.\nexport * from \"./create-brand.js\";\nexport * from \"./update-brand.js\";\nexport * from \"./create-category.js\";\nexport * from \"./update-category.js\";\nexport * from \"./move-category.js\";\nexport * from \"./create-specification.js\";\nexport * from \"./create-specification-value.js\";\nexport * from \"./associate-specification.js\";\nexport * from \"./delete-product-specification.js\";\nexport * from \"./delete-all-product-specifications.js\";\nexport * from \"./delete-brand.js\";\nexport * from \"./delete-catalog-image.js\";\nexport * from \"./delete-sku-specification.js\";\nexport * from \"./delete-all-sku-specifications.js\";\nexport * from \"./attach-catalog-image.js\";\nexport * from \"./catalog-admin-products-skus.js\";\nexport * from \"./cancel-order.js\";\nexport * from \"./invoice-order.js\";\nexport * from \"./add-order-tracking.js\";\nexport * from \"./profile-resolution.js\";\n"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
6
  "names": []
7
7
  }