sfcc-dev-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +338 -0
  3. package/dist/best-practices-client.d.ts +55 -0
  4. package/dist/best-practices-client.d.ts.map +1 -0
  5. package/dist/best-practices-client.js +201 -0
  6. package/dist/best-practices-client.js.map +1 -0
  7. package/dist/cache.d.ts +105 -0
  8. package/dist/cache.d.ts.map +1 -0
  9. package/dist/cache.js +225 -0
  10. package/dist/cache.js.map +1 -0
  11. package/dist/config.d.ts +26 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/config.js +67 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/docs-client.d.ts +124 -0
  16. package/dist/docs-client.d.ts.map +1 -0
  17. package/dist/docs-client.js +442 -0
  18. package/dist/docs-client.js.map +1 -0
  19. package/dist/index.d.ts +18 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +18 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/log-client.d.ts +79 -0
  24. package/dist/log-client.d.ts.map +1 -0
  25. package/dist/log-client.js +226 -0
  26. package/dist/log-client.js.map +1 -0
  27. package/dist/main.d.ts +15 -0
  28. package/dist/main.d.ts.map +1 -0
  29. package/dist/main.js +110 -0
  30. package/dist/main.js.map +1 -0
  31. package/dist/server.d.ts +35 -0
  32. package/dist/server.d.ts.map +1 -0
  33. package/dist/server.js +539 -0
  34. package/dist/server.js.map +1 -0
  35. package/dist/types.d.ts +79 -0
  36. package/dist/types.d.ts.map +1 -0
  37. package/dist/types.js +8 -0
  38. package/dist/types.js.map +1 -0
  39. package/dist/utils.d.ts +46 -0
  40. package/dist/utils.d.ts.map +1 -0
  41. package/dist/utils.js +96 -0
  42. package/dist/utils.js.map +1 -0
  43. package/docs/TopLevel/APIException.md +68 -0
  44. package/docs/TopLevel/Array.md +897 -0
  45. package/docs/TopLevel/ArrayBuffer.md +79 -0
  46. package/docs/TopLevel/BigInt.md +132 -0
  47. package/docs/TopLevel/Boolean.md +62 -0
  48. package/docs/TopLevel/ConversionError.md +23 -0
  49. package/docs/TopLevel/DataView.md +352 -0
  50. package/docs/TopLevel/Date.md +924 -0
  51. package/docs/TopLevel/ES6Iterator.md +33 -0
  52. package/docs/TopLevel/Error.md +88 -0
  53. package/docs/TopLevel/EvalError.md +23 -0
  54. package/docs/TopLevel/Fault.md +87 -0
  55. package/docs/TopLevel/Float32Array.md +124 -0
  56. package/docs/TopLevel/Float64Array.md +124 -0
  57. package/docs/TopLevel/Function.md +105 -0
  58. package/docs/TopLevel/Generator.md +78 -0
  59. package/docs/TopLevel/IOError.md +62 -0
  60. package/docs/TopLevel/Int16Array.md +124 -0
  61. package/docs/TopLevel/Int32Array.md +124 -0
  62. package/docs/TopLevel/Int8Array.md +124 -0
  63. package/docs/TopLevel/InternalError.md +23 -0
  64. package/docs/TopLevel/Iterable.md +41 -0
  65. package/docs/TopLevel/Iterator.md +48 -0
  66. package/docs/TopLevel/JSON.md +162 -0
  67. package/docs/TopLevel/Map.md +216 -0
  68. package/docs/TopLevel/Math.md +865 -0
  69. package/docs/TopLevel/Module.md +45 -0
  70. package/docs/TopLevel/Namespace.md +96 -0
  71. package/docs/TopLevel/Number.md +375 -0
  72. package/docs/TopLevel/Object.md +641 -0
  73. package/docs/TopLevel/QName.md +96 -0
  74. package/docs/TopLevel/RangeError.md +23 -0
  75. package/docs/TopLevel/ReferenceError.md +23 -0
  76. package/docs/TopLevel/RegExp.md +109 -0
  77. package/docs/TopLevel/Set.md +165 -0
  78. package/docs/TopLevel/StopIteration.md +20 -0
  79. package/docs/TopLevel/String.md +1299 -0
  80. package/docs/TopLevel/Symbol.md +78 -0
  81. package/docs/TopLevel/SyntaxError.md +23 -0
  82. package/docs/TopLevel/SystemError.md +62 -0
  83. package/docs/TopLevel/TypeError.md +23 -0
  84. package/docs/TopLevel/URIError.md +23 -0
  85. package/docs/TopLevel/Uint16Array.md +124 -0
  86. package/docs/TopLevel/Uint32Array.md +124 -0
  87. package/docs/TopLevel/Uint8Array.md +124 -0
  88. package/docs/TopLevel/Uint8ClampedArray.md +124 -0
  89. package/docs/TopLevel/WeakMap.md +137 -0
  90. package/docs/TopLevel/WeakSet.md +92 -0
  91. package/docs/TopLevel/XML.md +937 -0
  92. package/docs/TopLevel/XMLList.md +484 -0
  93. package/docs/TopLevel/XMLStreamError.md +74 -0
  94. package/docs/TopLevel/arguments.md +34 -0
  95. package/docs/TopLevel/global.md +462 -0
  96. package/docs/best-practices/ocapi_hooks.md +295 -0
  97. package/docs/best-practices/scapi_custom_endpoint.md +176 -0
  98. package/docs/best-practices/scapi_hooks.md +295 -0
  99. package/docs/best-practices/sfra_controllers.md +190 -0
  100. package/docs/dw_campaign/ABTest.md +47 -0
  101. package/docs/dw_campaign/ABTestMgr.md +70 -0
  102. package/docs/dw_campaign/ABTestSegment.md +96 -0
  103. package/docs/dw_campaign/AmountDiscount.md +51 -0
  104. package/docs/dw_campaign/ApproachingDiscount.md +124 -0
  105. package/docs/dw_campaign/BonusChoiceDiscount.md +146 -0
  106. package/docs/dw_campaign/BonusDiscount.md +48 -0
  107. package/docs/dw_campaign/Campaign.md +365 -0
  108. package/docs/dw_campaign/CampaignMgr.md +395 -0
  109. package/docs/dw_campaign/CampaignStatusCodes.md +24 -0
  110. package/docs/dw_campaign/Coupon.md +292 -0
  111. package/docs/dw_campaign/CouponMgr.md +138 -0
  112. package/docs/dw_campaign/CouponRedemption.md +94 -0
  113. package/docs/dw_campaign/CouponStatusCodes.md +20 -0
  114. package/docs/dw_campaign/Discount.md +160 -0
  115. package/docs/dw_campaign/DiscountPlan.md +282 -0
  116. package/docs/dw_campaign/FixedPriceDiscount.md +52 -0
  117. package/docs/dw_campaign/FixedPriceShippingDiscount.md +52 -0
  118. package/docs/dw_campaign/FreeDiscount.md +17 -0
  119. package/docs/dw_campaign/FreeShippingDiscount.md +17 -0
  120. package/docs/dw_campaign/PercentageDiscount.md +52 -0
  121. package/docs/dw_campaign/PercentageOptionDiscount.md +48 -0
  122. package/docs/dw_campaign/PriceBookPriceDiscount.md +47 -0
  123. package/docs/dw_campaign/Promotion.md +826 -0
  124. package/docs/dw_campaign/PromotionMgr.md +386 -0
  125. package/docs/dw_campaign/PromotionPlan.md +318 -0
  126. package/docs/dw_campaign/SlotContent.md +144 -0
  127. package/docs/dw_campaign/SourceCodeGroup.md +72 -0
  128. package/docs/dw_campaign/SourceCodeInfo.md +126 -0
  129. package/docs/dw_campaign/SourceCodeStatusCodes.md +24 -0
  130. package/docs/dw_campaign/TotalFixedPriceDiscount.md +47 -0
  131. package/docs/dw_catalog/Catalog.md +122 -0
  132. package/docs/dw_catalog/CatalogMgr.md +182 -0
  133. package/docs/dw_catalog/Category.md +1296 -0
  134. package/docs/dw_catalog/CategoryAssignment.md +192 -0
  135. package/docs/dw_catalog/CategoryLink.md +96 -0
  136. package/docs/dw_catalog/PriceBook.md +242 -0
  137. package/docs/dw_catalog/PriceBookMgr.md +205 -0
  138. package/docs/dw_catalog/Product.md +2593 -0
  139. package/docs/dw_catalog/ProductActiveData.md +1275 -0
  140. package/docs/dw_catalog/ProductAttributeModel.md +277 -0
  141. package/docs/dw_catalog/ProductAvailabilityLevels.md +142 -0
  142. package/docs/dw_catalog/ProductAvailabilityModel.md +356 -0
  143. package/docs/dw_catalog/ProductInventoryList.md +140 -0
  144. package/docs/dw_catalog/ProductInventoryMgr.md +99 -0
  145. package/docs/dw_catalog/ProductInventoryRecord.md +563 -0
  146. package/docs/dw_catalog/ProductLink.md +96 -0
  147. package/docs/dw_catalog/ProductMgr.md +138 -0
  148. package/docs/dw_catalog/ProductOption.md +214 -0
  149. package/docs/dw_catalog/ProductOptionModel.md +246 -0
  150. package/docs/dw_catalog/ProductOptionValue.md +123 -0
  151. package/docs/dw_catalog/ProductPriceInfo.md +172 -0
  152. package/docs/dw_catalog/ProductPriceModel.md +745 -0
  153. package/docs/dw_catalog/ProductPriceTable.md +134 -0
  154. package/docs/dw_catalog/ProductSearchHit.md +545 -0
  155. package/docs/dw_catalog/ProductSearchModel.md +1912 -0
  156. package/docs/dw_catalog/ProductSearchRefinementDefinition.md +97 -0
  157. package/docs/dw_catalog/ProductSearchRefinementValue.md +73 -0
  158. package/docs/dw_catalog/ProductSearchRefinements.md +216 -0
  159. package/docs/dw_catalog/ProductVariationAttribute.md +100 -0
  160. package/docs/dw_catalog/ProductVariationAttributeValue.md +238 -0
  161. package/docs/dw_catalog/ProductVariationModel.md +849 -0
  162. package/docs/dw_catalog/Recommendation.md +296 -0
  163. package/docs/dw_catalog/SearchModel.md +877 -0
  164. package/docs/dw_catalog/SearchRefinementDefinition.md +146 -0
  165. package/docs/dw_catalog/SearchRefinementValue.md +185 -0
  166. package/docs/dw_catalog/SearchRefinements.md +156 -0
  167. package/docs/dw_catalog/SortingOption.md +120 -0
  168. package/docs/dw_catalog/SortingRule.md +47 -0
  169. package/docs/dw_catalog/Store.md +562 -0
  170. package/docs/dw_catalog/StoreGroup.md +96 -0
  171. package/docs/dw_catalog/StoreInventoryFilter.md +74 -0
  172. package/docs/dw_catalog/StoreInventoryFilterValue.md +74 -0
  173. package/docs/dw_catalog/StoreMgr.md +236 -0
  174. package/docs/dw_catalog/Variant.md +859 -0
  175. package/docs/dw_catalog/VariationGroup.md +792 -0
  176. package/docs/dw_content/Content.md +534 -0
  177. package/docs/dw_content/ContentMgr.md +160 -0
  178. package/docs/dw_content/ContentSearchModel.md +670 -0
  179. package/docs/dw_content/ContentSearchRefinementDefinition.md +49 -0
  180. package/docs/dw_content/ContentSearchRefinementValue.md +17 -0
  181. package/docs/dw_content/ContentSearchRefinements.md +208 -0
  182. package/docs/dw_content/Folder.md +467 -0
  183. package/docs/dw_content/Library.md +121 -0
  184. package/docs/dw_content/MarkupText.md +88 -0
  185. package/docs/dw_content/MediaFile.md +317 -0
  186. package/docs/dw_crypto/CertificateRef.md +42 -0
  187. package/docs/dw_crypto/Cipher.md +524 -0
  188. package/docs/dw_crypto/Encoding.md +220 -0
  189. package/docs/dw_crypto/JWE.md +182 -0
  190. package/docs/dw_crypto/JWS.md +264 -0
  191. package/docs/dw_crypto/JWSHeader.md +148 -0
  192. package/docs/dw_crypto/KeyRef.md +44 -0
  193. package/docs/dw_crypto/Mac.md +109 -0
  194. package/docs/dw_crypto/MessageDigest.md +139 -0
  195. package/docs/dw_crypto/SecureRandom.md +148 -0
  196. package/docs/dw_crypto/Signature.md +246 -0
  197. package/docs/dw_crypto/WeakCipher.md +532 -0
  198. package/docs/dw_crypto/WeakMac.md +109 -0
  199. package/docs/dw_crypto/WeakMessageDigest.md +139 -0
  200. package/docs/dw_crypto/WeakSignature.md +242 -0
  201. package/docs/dw_customer/AddressBook.md +163 -0
  202. package/docs/dw_customer/AgentUserMgr.md +83 -0
  203. package/docs/dw_customer/AgentUserStatusCodes.md +24 -0
  204. package/docs/dw_customer/AuthenticationStatus.md +96 -0
  205. package/docs/dw_customer/Credentials.md +494 -0
  206. package/docs/dw_customer/Customer.md +571 -0
  207. package/docs/dw_customer/CustomerActiveData.md +552 -0
  208. package/docs/dw_customer/CustomerAddress.md +852 -0
  209. package/docs/dw_customer/CustomerCDPData.md +70 -0
  210. package/docs/dw_customer/CustomerContextMgr.md +64 -0
  211. package/docs/dw_customer/CustomerGroup.md +134 -0
  212. package/docs/dw_customer/CustomerList.md +71 -0
  213. package/docs/dw_customer/CustomerMgr.md +735 -0
  214. package/docs/dw_customer/CustomerPasswordConstraints.md +142 -0
  215. package/docs/dw_customer/CustomerPaymentInstrument.md +125 -0
  216. package/docs/dw_customer/CustomerStatusCodes.md +24 -0
  217. package/docs/dw_customer/EncryptedObject.md +18 -0
  218. package/docs/dw_customer/ExternalProfile.md +160 -0
  219. package/docs/dw_customer/OrderHistory.md +111 -0
  220. package/docs/dw_customer/ProductList.md +952 -0
  221. package/docs/dw_customer/ProductListItem.md +492 -0
  222. package/docs/dw_customer/ProductListItemPurchase.md +145 -0
  223. package/docs/dw_customer/ProductListMgr.md +234 -0
  224. package/docs/dw_customer/ProductListRegistrant.md +193 -0
  225. package/docs/dw_customer/Profile.md +1128 -0
  226. package/docs/dw_customer/Wallet.md +118 -0
  227. package/docs/dw_extensions.applepay/ApplePayHookResult.md +161 -0
  228. package/docs/dw_extensions.applepay/ApplePayHooks.md +255 -0
  229. package/docs/dw_extensions.facebook/FacebookFeedHooks.md +47 -0
  230. package/docs/dw_extensions.facebook/FacebookProduct.md +1483 -0
  231. package/docs/dw_extensions.paymentrequest/PaymentRequestHookResult.md +159 -0
  232. package/docs/dw_extensions.paymentrequest/PaymentRequestHooks.md +160 -0
  233. package/docs/dw_extensions.payments/SalesforceBancontactPaymentDetails.md +79 -0
  234. package/docs/dw_extensions.payments/SalesforceCardPaymentDetails.md +103 -0
  235. package/docs/dw_extensions.payments/SalesforceEpsPaymentDetails.md +51 -0
  236. package/docs/dw_extensions.payments/SalesforceIdealPaymentDetails.md +51 -0
  237. package/docs/dw_extensions.payments/SalesforceKlarnaPaymentDetails.md +51 -0
  238. package/docs/dw_extensions.payments/SalesforcePayPalOrder.md +234 -0
  239. package/docs/dw_extensions.payments/SalesforcePayPalOrderAddress.md +191 -0
  240. package/docs/dw_extensions.payments/SalesforcePayPalOrderPayer.md +118 -0
  241. package/docs/dw_extensions.payments/SalesforcePayPalPaymentDetails.md +79 -0
  242. package/docs/dw_extensions.payments/SalesforcePaymentDetails.md +57 -0
  243. package/docs/dw_extensions.payments/SalesforcePaymentIntent.md +269 -0
  244. package/docs/dw_extensions.payments/SalesforcePaymentMethod.md +304 -0
  245. package/docs/dw_extensions.payments/SalesforcePaymentRequest.md +622 -0
  246. package/docs/dw_extensions.payments/SalesforcePaymentsHooks.md +45 -0
  247. package/docs/dw_extensions.payments/SalesforcePaymentsMgr.md +592 -0
  248. package/docs/dw_extensions.payments/SalesforcePaymentsSiteConfiguration.md +95 -0
  249. package/docs/dw_extensions.payments/SalesforceSepaDebitPaymentDetails.md +51 -0
  250. package/docs/dw_extensions.payments/SalesforceVenmoPaymentDetails.md +79 -0
  251. package/docs/dw_extensions.pinterest/PinterestAvailability.md +86 -0
  252. package/docs/dw_extensions.pinterest/PinterestFeedHooks.md +69 -0
  253. package/docs/dw_extensions.pinterest/PinterestOrder.md +172 -0
  254. package/docs/dw_extensions.pinterest/PinterestOrderHooks.md +45 -0
  255. package/docs/dw_extensions.pinterest/PinterestProduct.md +814 -0
  256. package/docs/dw_io/CSVStreamReader.md +80 -0
  257. package/docs/dw_io/CSVStreamWriter.md +60 -0
  258. package/docs/dw_io/File.md +554 -0
  259. package/docs/dw_io/FileReader.md +41 -0
  260. package/docs/dw_io/FileWriter.md +103 -0
  261. package/docs/dw_io/InputStream.md +34 -0
  262. package/docs/dw_io/OutputStream.md +34 -0
  263. package/docs/dw_io/PrintWriter.md +71 -0
  264. package/docs/dw_io/RandomAccessFileReader.md +167 -0
  265. package/docs/dw_io/Reader.md +274 -0
  266. package/docs/dw_io/StringWriter.md +81 -0
  267. package/docs/dw_io/Writer.md +92 -0
  268. package/docs/dw_io/XMLIndentingStreamWriter.md +112 -0
  269. package/docs/dw_io/XMLStreamConstants.md +24 -0
  270. package/docs/dw_io/XMLStreamReader.md +1043 -0
  271. package/docs/dw_io/XMLStreamWriter.md +572 -0
  272. package/docs/dw_net/FTPClient.md +675 -0
  273. package/docs/dw_net/FTPFileInfo.md +122 -0
  274. package/docs/dw_net/HTTPClient.md +769 -0
  275. package/docs/dw_net/HTTPRequestPart.md +206 -0
  276. package/docs/dw_net/Mail.md +431 -0
  277. package/docs/dw_net/SFTPClient.md +579 -0
  278. package/docs/dw_net/SFTPFileInfo.md +122 -0
  279. package/docs/dw_net/WebDAVClient.md +667 -0
  280. package/docs/dw_net/WebDAVFileInfo.md +184 -0
  281. package/docs/dw_object/ActiveData.md +75 -0
  282. package/docs/dw_object/CustomAttributes.md +16 -0
  283. package/docs/dw_object/CustomObject.md +73 -0
  284. package/docs/dw_object/CustomObjectMgr.md +291 -0
  285. package/docs/dw_object/Extensible.md +64 -0
  286. package/docs/dw_object/ExtensibleObject.md +68 -0
  287. package/docs/dw_object/Note.md +121 -0
  288. package/docs/dw_object/ObjectAttributeDefinition.md +373 -0
  289. package/docs/dw_object/ObjectAttributeGroup.md +170 -0
  290. package/docs/dw_object/ObjectAttributeValueDefinition.md +72 -0
  291. package/docs/dw_object/ObjectTypeDefinition.md +216 -0
  292. package/docs/dw_object/PersistentObject.md +94 -0
  293. package/docs/dw_object/SimpleExtensible.md +46 -0
  294. package/docs/dw_object/SystemObjectMgr.md +153 -0
  295. package/docs/dw_order/AbstractItem.md +244 -0
  296. package/docs/dw_order/AbstractItemCtnr.md +240 -0
  297. package/docs/dw_order/Appeasement.md +325 -0
  298. package/docs/dw_order/AppeasementItem.md +90 -0
  299. package/docs/dw_order/Basket.md +362 -0
  300. package/docs/dw_order/BasketMgr.md +402 -0
  301. package/docs/dw_order/BonusDiscountLineItem.md +248 -0
  302. package/docs/dw_order/CouponLineItem.md +272 -0
  303. package/docs/dw_order/CreateAgentBasketLimitExceededException.md +18 -0
  304. package/docs/dw_order/CreateBasketFromOrderException.md +26 -0
  305. package/docs/dw_order/CreateCouponLineItemException.md +26 -0
  306. package/docs/dw_order/CreateOrderException.md +18 -0
  307. package/docs/dw_order/CreateTemporaryBasketLimitExceededException.md +18 -0
  308. package/docs/dw_order/GiftCertificate.md +545 -0
  309. package/docs/dw_order/GiftCertificateLineItem.md +324 -0
  310. package/docs/dw_order/GiftCertificateMgr.md +161 -0
  311. package/docs/dw_order/GiftCertificateStatusCodes.md +24 -0
  312. package/docs/dw_order/Invoice.md +316 -0
  313. package/docs/dw_order/InvoiceItem.md +222 -0
  314. package/docs/dw_order/LineItem.md +532 -0
  315. package/docs/dw_order/LineItemCtnr.md +2317 -0
  316. package/docs/dw_order/Order.md +2441 -0
  317. package/docs/dw_order/OrderAddress.md +807 -0
  318. package/docs/dw_order/OrderItem.md +476 -0
  319. package/docs/dw_order/OrderMgr.md +535 -0
  320. package/docs/dw_order/OrderPaymentInstrument.md +220 -0
  321. package/docs/dw_order/OrderProcessStatusCodes.md +24 -0
  322. package/docs/dw_order/PaymentCard.md +217 -0
  323. package/docs/dw_order/PaymentInstrument.md +1414 -0
  324. package/docs/dw_order/PaymentMethod.md +242 -0
  325. package/docs/dw_order/PaymentMgr.md +117 -0
  326. package/docs/dw_order/PaymentProcessor.md +70 -0
  327. package/docs/dw_order/PaymentStatusCodes.md +24 -0
  328. package/docs/dw_order/PaymentTransaction.md +304 -0
  329. package/docs/dw_order/PriceAdjustment.md +640 -0
  330. package/docs/dw_order/PriceAdjustmentLimitTypes.md +20 -0
  331. package/docs/dw_order/ProductLineItem.md +1821 -0
  332. package/docs/dw_order/ProductShippingCost.md +96 -0
  333. package/docs/dw_order/ProductShippingLineItem.md +320 -0
  334. package/docs/dw_order/ProductShippingModel.md +125 -0
  335. package/docs/dw_order/Return.md +318 -0
  336. package/docs/dw_order/ReturnCase.md +340 -0
  337. package/docs/dw_order/ReturnCaseItem.md +343 -0
  338. package/docs/dw_order/ReturnItem.md +362 -0
  339. package/docs/dw_order/Shipment.md +1227 -0
  340. package/docs/dw_order/ShipmentShippingCost.md +46 -0
  341. package/docs/dw_order/ShipmentShippingModel.md +146 -0
  342. package/docs/dw_order/ShippingLineItem.md +272 -0
  343. package/docs/dw_order/ShippingLocation.md +366 -0
  344. package/docs/dw_order/ShippingMethod.md +266 -0
  345. package/docs/dw_order/ShippingMgr.md +158 -0
  346. package/docs/dw_order/ShippingOrder.md +507 -0
  347. package/docs/dw_order/ShippingOrderItem.md +331 -0
  348. package/docs/dw_order/SumItem.md +147 -0
  349. package/docs/dw_order/TaxGroup.md +143 -0
  350. package/docs/dw_order/TaxItem.md +74 -0
  351. package/docs/dw_order/TaxMgr.md +215 -0
  352. package/docs/dw_order/TrackingInfo.md +312 -0
  353. package/docs/dw_order/TrackingRef.md +113 -0
  354. package/docs/dw_order.hooks/CalculateHooks.md +77 -0
  355. package/docs/dw_order.hooks/OrderHooks.md +41 -0
  356. package/docs/dw_order.hooks/PaymentHooks.md +180 -0
  357. package/docs/dw_order.hooks/ReturnHooks.md +135 -0
  358. package/docs/dw_order.hooks/ShippingOrderHooks.md +245 -0
  359. package/docs/dw_rpc/SOAPUtil.md +333 -0
  360. package/docs/dw_rpc/Stub.md +259 -0
  361. package/docs/dw_rpc/WebReference.md +83 -0
  362. package/docs/dw_suggest/BrandSuggestions.md +17 -0
  363. package/docs/dw_suggest/CategorySuggestions.md +53 -0
  364. package/docs/dw_suggest/ContentSuggestions.md +53 -0
  365. package/docs/dw_suggest/CustomSuggestions.md +17 -0
  366. package/docs/dw_suggest/ProductSuggestions.md +53 -0
  367. package/docs/dw_suggest/SearchPhraseSuggestions.md +117 -0
  368. package/docs/dw_suggest/SuggestModel.md +397 -0
  369. package/docs/dw_suggest/SuggestedCategory.md +46 -0
  370. package/docs/dw_suggest/SuggestedContent.md +46 -0
  371. package/docs/dw_suggest/SuggestedPhrase.md +70 -0
  372. package/docs/dw_suggest/SuggestedProduct.md +47 -0
  373. package/docs/dw_suggest/SuggestedTerm.md +143 -0
  374. package/docs/dw_suggest/SuggestedTerms.md +132 -0
  375. package/docs/dw_suggest/Suggestions.md +179 -0
  376. package/docs/dw_svc/FTPService.md +118 -0
  377. package/docs/dw_svc/FTPServiceDefinition.md +69 -0
  378. package/docs/dw_svc/HTTPFormService.md +18 -0
  379. package/docs/dw_svc/HTTPFormServiceDefinition.md +18 -0
  380. package/docs/dw_svc/HTTPService.md +415 -0
  381. package/docs/dw_svc/HTTPServiceDefinition.md +303 -0
  382. package/docs/dw_svc/LocalServiceRegistry.md +43 -0
  383. package/docs/dw_svc/Result.md +255 -0
  384. package/docs/dw_svc/SOAPService.md +115 -0
  385. package/docs/dw_svc/SOAPServiceDefinition.md +17 -0
  386. package/docs/dw_svc/Service.md +295 -0
  387. package/docs/dw_svc/ServiceCallback.md +268 -0
  388. package/docs/dw_svc/ServiceConfig.md +120 -0
  389. package/docs/dw_svc/ServiceCredential.md +150 -0
  390. package/docs/dw_svc/ServiceDefinition.md +176 -0
  391. package/docs/dw_svc/ServiceProfile.md +168 -0
  392. package/docs/dw_svc/ServiceRegistry.md +109 -0
  393. package/docs/dw_system/AgentUserStatusCodes.md +21 -0
  394. package/docs/dw_system/Cache.md +102 -0
  395. package/docs/dw_system/CacheMgr.md +42 -0
  396. package/docs/dw_system/HookMgr.md +66 -0
  397. package/docs/dw_system/InternalObject.md +56 -0
  398. package/docs/dw_system/JobProcessMonitor.md +124 -0
  399. package/docs/dw_system/Log.md +237 -0
  400. package/docs/dw_system/LogNDC.md +88 -0
  401. package/docs/dw_system/Logger.md +263 -0
  402. package/docs/dw_system/OrganizationPreferences.md +18 -0
  403. package/docs/dw_system/Pipeline.md +73 -0
  404. package/docs/dw_system/PipelineDictionary.md +16 -0
  405. package/docs/dw_system/RESTErrorResponse.md +66 -0
  406. package/docs/dw_system/RESTResponseMgr.md +258 -0
  407. package/docs/dw_system/RESTSuccessResponse.md +39 -0
  408. package/docs/dw_system/RemoteInclude.md +74 -0
  409. package/docs/dw_system/Request.md +839 -0
  410. package/docs/dw_system/RequestHooks.md +59 -0
  411. package/docs/dw_system/Response.md +318 -0
  412. package/docs/dw_system/SearchStatus.md +91 -0
  413. package/docs/dw_system/Session.md +476 -0
  414. package/docs/dw_system/Site.md +567 -0
  415. package/docs/dw_system/SitePreferences.md +49 -0
  416. package/docs/dw_system/Status.md +273 -0
  417. package/docs/dw_system/StatusItem.md +273 -0
  418. package/docs/dw_system/System.md +182 -0
  419. package/docs/dw_system/Transaction.md +84 -0
  420. package/docs/dw_util/ArrayList.md +50 -0
  421. package/docs/dw_util/Assert.md +391 -0
  422. package/docs/dw_util/BigInteger.md +326 -0
  423. package/docs/dw_util/Bytes.md +246 -0
  424. package/docs/dw_util/Calendar.md +663 -0
  425. package/docs/dw_util/Collection.md +338 -0
  426. package/docs/dw_util/Currency.md +163 -0
  427. package/docs/dw_util/DateUtils.md +86 -0
  428. package/docs/dw_util/Decimal.md +438 -0
  429. package/docs/dw_util/FilteringCollection.md +87 -0
  430. package/docs/dw_util/Geolocation.md +271 -0
  431. package/docs/dw_util/HashMap.md +43 -0
  432. package/docs/dw_util/HashSet.md +46 -0
  433. package/docs/dw_util/Iterator.md +97 -0
  434. package/docs/dw_util/LinkedHashMap.md +43 -0
  435. package/docs/dw_util/LinkedHashSet.md +46 -0
  436. package/docs/dw_util/List.md +519 -0
  437. package/docs/dw_util/Locale.md +267 -0
  438. package/docs/dw_util/Map.md +313 -0
  439. package/docs/dw_util/MapEntry.md +70 -0
  440. package/docs/dw_util/MappingKey.md +76 -0
  441. package/docs/dw_util/MappingMgr.md +122 -0
  442. package/docs/dw_util/PropertyComparator.md +51 -0
  443. package/docs/dw_util/SecureEncoder.md +350 -0
  444. package/docs/dw_util/SecureFilter.md +350 -0
  445. package/docs/dw_util/SeekableIterator.md +176 -0
  446. package/docs/dw_util/Set.md +19 -0
  447. package/docs/dw_util/SortedMap.md +148 -0
  448. package/docs/dw_util/SortedSet.md +151 -0
  449. package/docs/dw_util/StringUtils.md +717 -0
  450. package/docs/dw_util/Template.md +88 -0
  451. package/docs/dw_util/UUIDUtils.md +38 -0
  452. package/docs/dw_value/EnumValue.md +92 -0
  453. package/docs/dw_value/MimeEncodedText.md +103 -0
  454. package/docs/dw_value/Money.md +604 -0
  455. package/docs/dw_value/Quantity.md +376 -0
  456. package/docs/dw_web/CSRFProtection.md +83 -0
  457. package/docs/dw_web/ClickStream.md +157 -0
  458. package/docs/dw_web/ClickStreamEntry.md +289 -0
  459. package/docs/dw_web/Cookie.md +390 -0
  460. package/docs/dw_web/Cookies.md +46 -0
  461. package/docs/dw_web/Form.md +74 -0
  462. package/docs/dw_web/FormAction.md +199 -0
  463. package/docs/dw_web/FormElement.md +220 -0
  464. package/docs/dw_web/FormElementValidationResult.md +157 -0
  465. package/docs/dw_web/FormField.md +603 -0
  466. package/docs/dw_web/FormFieldOption.md +238 -0
  467. package/docs/dw_web/FormFieldOptions.md +42 -0
  468. package/docs/dw_web/FormGroup.md +199 -0
  469. package/docs/dw_web/FormList.md +126 -0
  470. package/docs/dw_web/FormListItem.md +48 -0
  471. package/docs/dw_web/Forms.md +16 -0
  472. package/docs/dw_web/HttpParameter.md +513 -0
  473. package/docs/dw_web/HttpParameterMap.md +185 -0
  474. package/docs/dw_web/LoopIterator.md +261 -0
  475. package/docs/dw_web/PageMetaData.md +230 -0
  476. package/docs/dw_web/PageMetaTag.md +142 -0
  477. package/docs/dw_web/PagingModel.md +365 -0
  478. package/docs/dw_web/Resource.md +126 -0
  479. package/docs/dw_web/URL.md +213 -0
  480. package/docs/dw_web/URLAction.md +26 -0
  481. package/docs/dw_web/URLParameter.md +22 -0
  482. package/docs/dw_web/URLRedirect.md +71 -0
  483. package/docs/dw_web/URLRedirectMgr.md +73 -0
  484. package/docs/dw_web/URLUtils.md +1246 -0
  485. package/package.json +43 -0
  486. package/scripts/convert-docs.js +617 -0
  487. package/src/best-practices-client.ts +243 -0
  488. package/src/cache.ts +291 -0
  489. package/src/config.ts +77 -0
  490. package/src/docs-client.ts +540 -0
  491. package/src/index.ts +22 -0
  492. package/src/log-client.ts +260 -0
  493. package/src/main.ts +133 -0
  494. package/src/server.ts +614 -0
  495. package/src/types.ts +83 -0
  496. package/src/utils.ts +103 -0
  497. package/tsconfig.json +21 -0
@@ -0,0 +1,226 @@
1
+ /**
2
+ * SFCC WebDAV Log Client
3
+ *
4
+ * This module handles all interactions with SFCC's WebDAV log interface.
5
+ * It provides methods to fetch, parse, and analyze log files from the
6
+ * Salesforce B2C Commerce Cloud logging system.
7
+ */
8
+ import { createClient } from "webdav";
9
+ import { getCurrentDate, formatBytes, parseLogEntries, extractUniqueErrors, normalizeFilePath } from "./utils.js";
10
+ /**
11
+ * Client for accessing SFCC logs via WebDAV
12
+ *
13
+ * This class encapsulates all the logic for connecting to SFCC's WebDAV interface
14
+ * and performing various log-related operations like fetching, searching, and analyzing logs.
15
+ */
16
+ export class SFCCLogClient {
17
+ webdavClient;
18
+ config;
19
+ /**
20
+ * Initialize the SFCC log client
21
+ *
22
+ * @param config - SFCC configuration with authentication details
23
+ */
24
+ constructor(config) {
25
+ this.config = config;
26
+ this.setupWebDAVClient();
27
+ }
28
+ /**
29
+ * Set up the WebDAV client with appropriate authentication
30
+ * Supports both basic authentication and OAuth credentials
31
+ *
32
+ * @private
33
+ */
34
+ setupWebDAVClient() {
35
+ const webdavUrl = `https://${this.config.hostname}/on/demandware.servlet/webdav/Sites/Logs/`;
36
+ let authConfig = {};
37
+ if (this.config.username && this.config.password) {
38
+ // Basic authentication
39
+ authConfig = {
40
+ username: this.config.username,
41
+ password: this.config.password,
42
+ };
43
+ }
44
+ else if (this.config.apiKey && this.config.apiSecret) {
45
+ // OAuth authentication (using API key as username and secret as password for WebDAV)
46
+ authConfig = {
47
+ username: this.config.apiKey,
48
+ password: this.config.apiSecret,
49
+ };
50
+ }
51
+ else {
52
+ throw new Error("Either username/password or apiKey/apiSecret must be provided");
53
+ }
54
+ this.webdavClient = createClient(webdavUrl, authConfig);
55
+ }
56
+ /**
57
+ * Get list of log files for a specific date
58
+ *
59
+ * @param date - Date in YYYYMMDD format (defaults to today)
60
+ * @returns Array of log file names for the specified date
61
+ */
62
+ async getLogFiles(date) {
63
+ const targetDate = date || getCurrentDate();
64
+ const contents = await this.webdavClient.getDirectoryContents("/");
65
+ return contents
66
+ .filter((item) => item.type === "file" &&
67
+ item.filename.includes(targetDate) &&
68
+ item.filename.endsWith(".log"))
69
+ .map((item) => item.filename);
70
+ }
71
+ /**
72
+ * Get the latest log entries for a specific log level
73
+ *
74
+ * @param level - Log level to fetch (error, warn, info)
75
+ * @param limit - Maximum number of entries to return
76
+ * @param date - Date in YYYYMMDD format (defaults to today)
77
+ * @returns Formatted log entries
78
+ */
79
+ async getLatestLogs(level, limit, date) {
80
+ const targetDate = date || getCurrentDate();
81
+ const logFiles = await this.getLogFiles(targetDate);
82
+ // Filter files for the specific log level
83
+ const levelFiles = logFiles.filter(file => {
84
+ const filename = normalizeFilePath(file);
85
+ return filename.startsWith(level + '-');
86
+ });
87
+ if (levelFiles.length === 0) {
88
+ const availableFiles = logFiles.map(f => normalizeFilePath(f)).join(', ');
89
+ return `No ${level} log files found for date ${targetDate}. Available files: ${availableFiles}`;
90
+ }
91
+ // Get the most recent log file (sort by filename, latest timestamp should be last)
92
+ const latestFile = levelFiles.sort().pop();
93
+ const logContent = await this.webdavClient.getFileContents(latestFile, { format: "text" });
94
+ const logEntries = parseLogEntries(logContent, level.toUpperCase());
95
+ const latestEntries = logEntries.slice(-limit).reverse();
96
+ return `Latest ${limit} ${level} messages from ${normalizeFilePath(latestFile)}:\n\n${latestEntries.join('\n\n---\n\n')}`;
97
+ }
98
+ /**
99
+ * Generate a comprehensive summary of logs for a specific date
100
+ *
101
+ * @param date - Date in YYYYMMDD format (defaults to today)
102
+ * @returns Detailed log summary with counts and key issues
103
+ */
104
+ async summarizeLogs(date) {
105
+ const targetDate = date || getCurrentDate();
106
+ const logFiles = await this.getLogFiles(targetDate);
107
+ if (logFiles.length === 0) {
108
+ return `No log files found for date ${targetDate}`;
109
+ }
110
+ const summary = {
111
+ date: targetDate,
112
+ errorCount: 0,
113
+ warningCount: 0,
114
+ infoCount: 0,
115
+ keyIssues: [],
116
+ files: logFiles,
117
+ };
118
+ // Analyze each log file for counts and patterns
119
+ for (const file of logFiles) {
120
+ try {
121
+ const content = await this.webdavClient.getFileContents(file, { format: "text" });
122
+ const lines = content.split('\n');
123
+ // Count different log levels
124
+ for (const line of lines) {
125
+ if (line.includes(' ERROR '))
126
+ summary.errorCount++;
127
+ if (line.includes(' WARN '))
128
+ summary.warningCount++;
129
+ if (line.includes(' INFO '))
130
+ summary.infoCount++;
131
+ }
132
+ // Extract key error patterns from error files
133
+ const filename = normalizeFilePath(file);
134
+ if (filename.startsWith('error-')) {
135
+ const errors = parseLogEntries(content, 'ERROR');
136
+ const uniqueErrors = extractUniqueErrors(errors);
137
+ summary.keyIssues.push(...uniqueErrors);
138
+ }
139
+ }
140
+ catch (error) {
141
+ console.error(`Error reading file ${file}:`, error);
142
+ }
143
+ }
144
+ // Remove duplicate key issues
145
+ summary.keyIssues = [...new Set(summary.keyIssues)];
146
+ return this.formatLogSummary(summary);
147
+ }
148
+ /**
149
+ * Search for specific patterns across log files
150
+ *
151
+ * @param pattern - Search pattern or keyword
152
+ * @param logLevel - Optional log level to restrict search to
153
+ * @param limit - Maximum number of matches to return
154
+ * @param date - Date in YYYYMMDD format (defaults to today)
155
+ * @returns Formatted search results
156
+ */
157
+ async searchLogs(pattern, logLevel, limit = 20, date) {
158
+ const targetDate = date || getCurrentDate();
159
+ const logFiles = await this.getLogFiles(targetDate);
160
+ let filesToSearch = logFiles;
161
+ if (logLevel) {
162
+ filesToSearch = logFiles.filter(file => {
163
+ const filename = normalizeFilePath(file);
164
+ return filename.startsWith(logLevel + '-');
165
+ });
166
+ }
167
+ const matchingEntries = [];
168
+ for (const file of filesToSearch) {
169
+ try {
170
+ const content = await this.webdavClient.getFileContents(file, { format: "text" });
171
+ const lines = content.split('\n');
172
+ for (const line of lines) {
173
+ if (line.toLowerCase().includes(pattern.toLowerCase()) && matchingEntries.length < limit) {
174
+ matchingEntries.push(`[${normalizeFilePath(file)}] ${line.trim()}`);
175
+ }
176
+ }
177
+ }
178
+ catch (error) {
179
+ console.error(`Error searching file ${file}:`, error);
180
+ }
181
+ }
182
+ return matchingEntries.length > 0
183
+ ? `Found ${matchingEntries.length} matches for "${pattern}":\n\n${matchingEntries.join('\n\n')}`
184
+ : `No matches found for "${pattern}" in logs for ${targetDate}`;
185
+ }
186
+ /**
187
+ * List all available log files with metadata
188
+ *
189
+ * @returns Formatted list of log files with size and modification dates
190
+ */
191
+ async listLogFiles() {
192
+ try {
193
+ const contents = await this.webdavClient.getDirectoryContents("/");
194
+ const logFiles = contents
195
+ .filter((item) => item.type === "file" && item.filename.endsWith(".log"))
196
+ .map((item) => ({
197
+ name: item.filename,
198
+ size: item.size,
199
+ lastModified: item.lastmod,
200
+ }));
201
+ return `Available log files:\n\n${logFiles.map((file) => `📄 ${file.name}\n Size: ${formatBytes(file.size)}\n Modified: ${file.lastModified}`).join('\n\n')}`;
202
+ }
203
+ catch (error) {
204
+ throw new Error(`Failed to list log files: ${error instanceof Error ? error.message : String(error)}`);
205
+ }
206
+ }
207
+ /**
208
+ * Format a log summary into a readable string
209
+ *
210
+ * @param summary - Log summary data
211
+ * @returns Formatted summary string
212
+ * @private
213
+ */
214
+ formatLogSummary(summary) {
215
+ return `Log Summary for ${summary.date}:\n\n` +
216
+ `📊 Counts:\n` +
217
+ `- Errors: ${summary.errorCount}\n` +
218
+ `- Warnings: ${summary.warningCount}\n` +
219
+ `- Info: ${summary.infoCount}\n\n` +
220
+ `📁 Log Files (${summary.files.length}):\n` +
221
+ `${summary.files.map((f) => `- ${f}`).join('\n')}\n\n` +
222
+ `🔥 Key Issues:\n` +
223
+ `${summary.keyIssues.length > 0 ? summary.keyIssues.map((issue) => `- ${issue}`).join('\n') : 'No major issues detected'}`;
224
+ }
225
+ }
226
+ //# sourceMappingURL=log-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-client.js","sourceRoot":"","sources":["../src/log-client.ts"],"names":[],"mappings":"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"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Main entry point for the SFCC Development MCP Server
4
+ *
5
+ * This script initializes and starts the MCP server with SFCC development capabilities
6
+ * including log analysis and comprehensive documentation querying.
7
+ *
8
+ * Usage:
9
+ * node build/main.js
10
+ * npm start
11
+ * npm run start -- --dw-json /path/to/dw.json
12
+ * npm run start -- --dw-json ./dw.json
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG"}
package/dist/main.js ADDED
@@ -0,0 +1,110 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Main entry point for the SFCC Development MCP Server
4
+ *
5
+ * This script initializes and starts the MCP server with SFCC development capabilities
6
+ * including log analysis and comprehensive documentation querying.
7
+ *
8
+ * Usage:
9
+ * node build/main.js
10
+ * npm start
11
+ * npm run start -- --dw-json /path/to/dw.json
12
+ * npm run start -- --dw-json ./dw.json
13
+ */
14
+ import { SFCCDevServer } from "./server.js";
15
+ import { loadDwJsonConfig } from "./config.js";
16
+ import { existsSync } from "fs";
17
+ import { resolve } from "path";
18
+ /**
19
+ * Parse command line arguments to extract configuration options
20
+ */
21
+ function parseCommandLineArgs() {
22
+ const args = process.argv.slice(2);
23
+ const options = {};
24
+ for (let i = 0; i < args.length; i++) {
25
+ const arg = args[i];
26
+ if (arg === "--dw-json" && i + 1 < args.length) {
27
+ options.dwJsonPath = args[i + 1];
28
+ i++; // Skip the next argument since we consumed it
29
+ }
30
+ }
31
+ return options;
32
+ }
33
+ /**
34
+ * Load configuration from various sources in order of preference:
35
+ * 1. Command line --dw-json argument
36
+ * 2. ./dw.json in current directory
37
+ * 3. Environment variables
38
+ * 4. Default values
39
+ */
40
+ function loadConfiguration() {
41
+ const { dwJsonPath } = parseCommandLineArgs();
42
+ // 1. Try command line argument first
43
+ if (dwJsonPath) {
44
+ const resolvedPath = resolve(dwJsonPath);
45
+ if (!existsSync(resolvedPath)) {
46
+ console.error(`Error: dw.json file not found at: ${resolvedPath}`);
47
+ process.exit(1);
48
+ }
49
+ console.log(`Loading configuration from: ${resolvedPath}`);
50
+ return loadDwJsonConfig(resolvedPath);
51
+ }
52
+ // 2. Try ./dw.json in current directory
53
+ const defaultDwJsonPath = "./dw.json";
54
+ if (existsSync(defaultDwJsonPath)) {
55
+ console.log(`Loading configuration from: ${resolve(defaultDwJsonPath)}`);
56
+ return loadDwJsonConfig(defaultDwJsonPath);
57
+ }
58
+ // 3. Fall back to environment variables
59
+ console.log("Loading configuration from environment variables");
60
+ const config = {
61
+ hostname: process.env.SFCC_HOSTNAME || "your-instance.sandbox.us01.dx.commercecloud.salesforce.com",
62
+ clientId: process.env.SFCC_CLIENT_ID || "",
63
+ clientSecret: process.env.SFCC_CLIENT_SECRET || "",
64
+ username: process.env.SFCC_USERNAME || "",
65
+ password: process.env.SFCC_PASSWORD || "",
66
+ siteId: process.env.SFCC_SITE_ID || "RefArch",
67
+ };
68
+ return config;
69
+ }
70
+ async function main() {
71
+ try {
72
+ // Load configuration from dw.json or environment variables
73
+ const config = loadConfiguration();
74
+ console.log(config);
75
+ // Validate that we have the minimum required configuration
76
+ if (!config.hostname) {
77
+ console.error("Error: SFCC hostname is required. Please provide it via:");
78
+ console.error(" 1. dw.json file: npm run start -- --dw-json /path/to/dw.json");
79
+ console.error(" 2. Environment variable: SFCC_HOSTNAME=your-instance.com npm start");
80
+ process.exit(1);
81
+ }
82
+ if (!config.username && !config.clientId) {
83
+ console.error("Error: Authentication credentials are required. Please provide either:");
84
+ console.error(" 1. Username/password in dw.json or via SFCC_USERNAME/SFCC_PASSWORD");
85
+ console.error(" 2. Client ID/secret via SFCC_CLIENT_ID/SFCC_CLIENT_SECRET");
86
+ process.exit(1);
87
+ }
88
+ // Initialize and start the MCP server
89
+ const server = new SFCCDevServer(config);
90
+ console.log("Starting SFCC Development MCP Server...");
91
+ console.log(`Connected to: ${config.hostname}`);
92
+ console.log(`Authentication: ${config.username ? "Username/Password" : "Client ID/Secret"}`);
93
+ await server.run();
94
+ }
95
+ catch (error) {
96
+ console.error("Failed to start SFCC Development MCP server:", error);
97
+ process.exit(1);
98
+ }
99
+ }
100
+ // Handle graceful shutdown
101
+ process.on("SIGINT", () => {
102
+ console.error("Received SIGINT, shutting down gracefully...");
103
+ process.exit(0);
104
+ });
105
+ process.on("SIGTERM", () => {
106
+ console.error("Received SIGTERM, shutting down gracefully...");
107
+ process.exit(0);
108
+ });
109
+ main();
110
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * MCP Server for SFCC Development
3
+ *
4
+ * This module implements the Model Context Protocol (MCP) server for accessing
5
+ * Salesforce B2C Commerce Cloud development features. It provides a standardized interface
6
+ * for AI assistants to interact with SFCC development tools and data.
7
+ */
8
+ import { SFCCConfig } from "./types.js";
9
+ /**
10
+ * MCP Server implementation for SFCC development assistance
11
+ *
12
+ * This class sets up the MCP server, defines available tools, and handles
13
+ * requests from MCP clients (like AI assistants) to interact with SFCC development features.
14
+ */
15
+ export declare class SFCCDevServer {
16
+ private server;
17
+ private logClient;
18
+ private docsClient;
19
+ private bestPracticesClient;
20
+ /**
21
+ * Initialize the SFCC Development MCP Server
22
+ *
23
+ * @param config - SFCC configuration for connecting to the logging system
24
+ */
25
+ constructor(config: SFCCConfig);
26
+ /**
27
+ * Set up MCP tool handlers for SFCC operations
28
+ */
29
+ private setupToolHandlers;
30
+ /**
31
+ * Start the MCP server
32
+ */
33
+ run(): Promise<void>;
34
+ }
35
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,UAAU,EAAY,MAAM,YAAY,CAAC;AAKlD;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,mBAAmB,CAA0B;IAErD;;;;OAIG;gBACS,MAAM,EAAE,UAAU;IAmB9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmiBzB;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAK3B"}