#
tokens: 49638/50000 107/825 files (page 2/61)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 2 of 61. Use http://codebase.md/taurgis/sfcc-dev-mcp?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .DS_Store
├── .github
│   ├── dependabot.yml
│   ├── instructions
│   │   ├── mcp-node-tests.instructions.md
│   │   └── mcp-yml-tests.instructions.md
│   ├── ISSUE_TEMPLATE
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── documentation.yml
│   │   ├── feature_request.yml
│   │   └── question.yml
│   ├── PULL_REQUEST_TEMPLATE
│   │   ├── bug_fix.md
│   │   ├── documentation.md
│   │   └── new_tool.md
│   ├── pull_request_template.md
│   └── workflows
│       ├── ci.yml
│       ├── deploy-pages.yml
│       ├── publish.yml
│       └── update-docs.yml
├── .gitignore
├── .husky
│   └── pre-commit
├── aegis.config.docs-only.json
├── aegis.config.json
├── aegis.config.with-dw.json
├── AGENTS.md
├── ai-instructions
│   ├── claude-desktop
│   │   └── claude_custom_instructions.md
│   ├── cursor
│   │   └── .cursor
│   │       └── rules
│   │           ├── debugging-workflows.mdc
│   │           ├── hooks-development.mdc
│   │           ├── isml-templates.mdc
│   │           ├── job-framework.mdc
│   │           ├── performance-optimization.mdc
│   │           ├── scapi-endpoints.mdc
│   │           ├── security-patterns.mdc
│   │           ├── sfcc-development.mdc
│   │           ├── sfra-controllers.mdc
│   │           ├── sfra-models.mdc
│   │           ├── system-objects.mdc
│   │           └── testing-patterns.mdc
│   └── github-copilot
│       └── copilot-instructions.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── docs
│   ├── best-practices
│   │   ├── cartridge_creation.md
│   │   ├── isml_templates.md
│   │   ├── job_framework.md
│   │   ├── localserviceregistry.md
│   │   ├── ocapi_hooks.md
│   │   ├── performance.md
│   │   ├── scapi_custom_endpoint.md
│   │   ├── scapi_hooks.md
│   │   ├── security.md
│   │   ├── sfra_client_side_js.md
│   │   ├── sfra_controllers.md
│   │   ├── sfra_models.md
│   │   └── sfra_scss.md
│   ├── dw_campaign
│   │   ├── ABTest.md
│   │   ├── ABTestMgr.md
│   │   ├── ABTestSegment.md
│   │   ├── AmountDiscount.md
│   │   ├── ApproachingDiscount.md
│   │   ├── BonusChoiceDiscount.md
│   │   ├── BonusDiscount.md
│   │   ├── Campaign.md
│   │   ├── CampaignMgr.md
│   │   ├── CampaignStatusCodes.md
│   │   ├── Coupon.md
│   │   ├── CouponMgr.md
│   │   ├── CouponRedemption.md
│   │   ├── CouponStatusCodes.md
│   │   ├── Discount.md
│   │   ├── DiscountPlan.md
│   │   ├── FixedPriceDiscount.md
│   │   ├── FixedPriceShippingDiscount.md
│   │   ├── FreeDiscount.md
│   │   ├── FreeShippingDiscount.md
│   │   ├── PercentageDiscount.md
│   │   ├── PercentageOptionDiscount.md
│   │   ├── PriceBookPriceDiscount.md
│   │   ├── Promotion.md
│   │   ├── PromotionMgr.md
│   │   ├── PromotionPlan.md
│   │   ├── SlotContent.md
│   │   ├── SourceCodeGroup.md
│   │   ├── SourceCodeInfo.md
│   │   ├── SourceCodeStatusCodes.md
│   │   └── TotalFixedPriceDiscount.md
│   ├── dw_catalog
│   │   ├── Catalog.md
│   │   ├── CatalogMgr.md
│   │   ├── Category.md
│   │   ├── CategoryAssignment.md
│   │   ├── CategoryLink.md
│   │   ├── PriceBook.md
│   │   ├── PriceBookMgr.md
│   │   ├── Product.md
│   │   ├── ProductActiveData.md
│   │   ├── ProductAttributeModel.md
│   │   ├── ProductAvailabilityLevels.md
│   │   ├── ProductAvailabilityModel.md
│   │   ├── ProductInventoryList.md
│   │   ├── ProductInventoryMgr.md
│   │   ├── ProductInventoryRecord.md
│   │   ├── ProductLink.md
│   │   ├── ProductMgr.md
│   │   ├── ProductOption.md
│   │   ├── ProductOptionModel.md
│   │   ├── ProductOptionValue.md
│   │   ├── ProductPriceInfo.md
│   │   ├── ProductPriceModel.md
│   │   ├── ProductPriceTable.md
│   │   ├── ProductSearchHit.md
│   │   ├── ProductSearchModel.md
│   │   ├── ProductSearchRefinementDefinition.md
│   │   ├── ProductSearchRefinements.md
│   │   ├── ProductSearchRefinementValue.md
│   │   ├── ProductVariationAttribute.md
│   │   ├── ProductVariationAttributeValue.md
│   │   ├── ProductVariationModel.md
│   │   ├── Recommendation.md
│   │   ├── SearchModel.md
│   │   ├── SearchRefinementDefinition.md
│   │   ├── SearchRefinements.md
│   │   ├── SearchRefinementValue.md
│   │   ├── SortingOption.md
│   │   ├── SortingRule.md
│   │   ├── Store.md
│   │   ├── StoreGroup.md
│   │   ├── StoreInventoryFilter.md
│   │   ├── StoreInventoryFilterValue.md
│   │   ├── StoreMgr.md
│   │   ├── Variant.md
│   │   └── VariationGroup.md
│   ├── dw_content
│   │   ├── Content.md
│   │   ├── ContentMgr.md
│   │   ├── ContentSearchModel.md
│   │   ├── ContentSearchRefinementDefinition.md
│   │   ├── ContentSearchRefinements.md
│   │   ├── ContentSearchRefinementValue.md
│   │   ├── Folder.md
│   │   ├── Library.md
│   │   ├── MarkupText.md
│   │   └── MediaFile.md
│   ├── dw_crypto
│   │   ├── CertificateRef.md
│   │   ├── CertificateUtils.md
│   │   ├── Cipher.md
│   │   ├── Encoding.md
│   │   ├── JWE.md
│   │   ├── JWEHeader.md
│   │   ├── JWS.md
│   │   ├── JWSHeader.md
│   │   ├── KeyRef.md
│   │   ├── Mac.md
│   │   ├── MessageDigest.md
│   │   ├── SecureRandom.md
│   │   ├── Signature.md
│   │   ├── WeakCipher.md
│   │   ├── WeakMac.md
│   │   ├── WeakMessageDigest.md
│   │   ├── WeakSignature.md
│   │   └── X509Certificate.md
│   ├── dw_customer
│   │   ├── AddressBook.md
│   │   ├── AgentUserMgr.md
│   │   ├── AgentUserStatusCodes.md
│   │   ├── AuthenticationStatus.md
│   │   ├── Credentials.md
│   │   ├── Customer.md
│   │   ├── CustomerActiveData.md
│   │   ├── CustomerAddress.md
│   │   ├── CustomerCDPData.md
│   │   ├── CustomerContextMgr.md
│   │   ├── CustomerGroup.md
│   │   ├── CustomerList.md
│   │   ├── CustomerMgr.md
│   │   ├── CustomerPasswordConstraints.md
│   │   ├── CustomerPaymentInstrument.md
│   │   ├── CustomerStatusCodes.md
│   │   ├── EncryptedObject.md
│   │   ├── ExternalProfile.md
│   │   ├── OrderHistory.md
│   │   ├── ProductList.md
│   │   ├── ProductListItem.md
│   │   ├── ProductListItemPurchase.md
│   │   ├── ProductListMgr.md
│   │   ├── ProductListRegistrant.md
│   │   ├── Profile.md
│   │   └── Wallet.md
│   ├── dw_extensions.applepay
│   │   ├── ApplePayHookResult.md
│   │   └── ApplePayHooks.md
│   ├── dw_extensions.facebook
│   │   ├── FacebookFeedHooks.md
│   │   └── FacebookProduct.md
│   ├── dw_extensions.paymentrequest
│   │   ├── PaymentRequestHookResult.md
│   │   └── PaymentRequestHooks.md
│   ├── dw_extensions.payments
│   │   ├── SalesforceBancontactPaymentDetails.md
│   │   ├── SalesforceCardPaymentDetails.md
│   │   ├── SalesforceEpsPaymentDetails.md
│   │   ├── SalesforceIdealPaymentDetails.md
│   │   ├── SalesforceKlarnaPaymentDetails.md
│   │   ├── SalesforcePaymentDetails.md
│   │   ├── SalesforcePaymentIntent.md
│   │   ├── SalesforcePaymentMethod.md
│   │   ├── SalesforcePaymentRequest.md
│   │   ├── SalesforcePaymentsHooks.md
│   │   ├── SalesforcePaymentsMgr.md
│   │   ├── SalesforcePaymentsSiteConfiguration.md
│   │   ├── SalesforcePayPalOrder.md
│   │   ├── SalesforcePayPalOrderAddress.md
│   │   ├── SalesforcePayPalOrderPayer.md
│   │   ├── SalesforcePayPalPaymentDetails.md
│   │   ├── SalesforceSepaDebitPaymentDetails.md
│   │   └── SalesforceVenmoPaymentDetails.md
│   ├── dw_extensions.pinterest
│   │   ├── PinterestAvailability.md
│   │   ├── PinterestFeedHooks.md
│   │   ├── PinterestOrder.md
│   │   ├── PinterestOrderHooks.md
│   │   └── PinterestProduct.md
│   ├── dw_io
│   │   ├── CSVStreamReader.md
│   │   ├── CSVStreamWriter.md
│   │   ├── File.md
│   │   ├── FileReader.md
│   │   ├── FileWriter.md
│   │   ├── InputStream.md
│   │   ├── OutputStream.md
│   │   ├── PrintWriter.md
│   │   ├── RandomAccessFileReader.md
│   │   ├── Reader.md
│   │   ├── StringWriter.md
│   │   ├── Writer.md
│   │   ├── XMLIndentingStreamWriter.md
│   │   ├── XMLStreamConstants.md
│   │   ├── XMLStreamReader.md
│   │   └── XMLStreamWriter.md
│   ├── dw_job
│   │   ├── JobExecution.md
│   │   └── JobStepExecution.md
│   ├── dw_net
│   │   ├── FTPClient.md
│   │   ├── FTPFileInfo.md
│   │   ├── HTTPClient.md
│   │   ├── HTTPRequestPart.md
│   │   ├── Mail.md
│   │   ├── SFTPClient.md
│   │   ├── SFTPFileInfo.md
│   │   ├── WebDAVClient.md
│   │   └── WebDAVFileInfo.md
│   ├── dw_object
│   │   ├── ActiveData.md
│   │   ├── CustomAttributes.md
│   │   ├── CustomObject.md
│   │   ├── CustomObjectMgr.md
│   │   ├── Extensible.md
│   │   ├── ExtensibleObject.md
│   │   ├── Note.md
│   │   ├── ObjectAttributeDefinition.md
│   │   ├── ObjectAttributeGroup.md
│   │   ├── ObjectAttributeValueDefinition.md
│   │   ├── ObjectTypeDefinition.md
│   │   ├── PersistentObject.md
│   │   ├── SimpleExtensible.md
│   │   └── SystemObjectMgr.md
│   ├── dw_order
│   │   ├── AbstractItem.md
│   │   ├── AbstractItemCtnr.md
│   │   ├── Appeasement.md
│   │   ├── AppeasementItem.md
│   │   ├── Basket.md
│   │   ├── BasketMgr.md
│   │   ├── BonusDiscountLineItem.md
│   │   ├── CouponLineItem.md
│   │   ├── CreateAgentBasketLimitExceededException.md
│   │   ├── CreateBasketFromOrderException.md
│   │   ├── CreateCouponLineItemException.md
│   │   ├── CreateOrderException.md
│   │   ├── CreateTemporaryBasketLimitExceededException.md
│   │   ├── GiftCertificate.md
│   │   ├── GiftCertificateLineItem.md
│   │   ├── GiftCertificateMgr.md
│   │   ├── GiftCertificateStatusCodes.md
│   │   ├── Invoice.md
│   │   ├── InvoiceItem.md
│   │   ├── LineItem.md
│   │   ├── LineItemCtnr.md
│   │   ├── Order.md
│   │   ├── OrderAddress.md
│   │   ├── OrderItem.md
│   │   ├── OrderMgr.md
│   │   ├── OrderPaymentInstrument.md
│   │   ├── OrderProcessStatusCodes.md
│   │   ├── PaymentCard.md
│   │   ├── PaymentInstrument.md
│   │   ├── PaymentMethod.md
│   │   ├── PaymentMgr.md
│   │   ├── PaymentProcessor.md
│   │   ├── PaymentStatusCodes.md
│   │   ├── PaymentTransaction.md
│   │   ├── PriceAdjustment.md
│   │   ├── PriceAdjustmentLimitTypes.md
│   │   ├── ProductLineItem.md
│   │   ├── ProductShippingCost.md
│   │   ├── ProductShippingLineItem.md
│   │   ├── ProductShippingModel.md
│   │   ├── Return.md
│   │   ├── ReturnCase.md
│   │   ├── ReturnCaseItem.md
│   │   ├── ReturnItem.md
│   │   ├── Shipment.md
│   │   ├── ShipmentShippingCost.md
│   │   ├── ShipmentShippingModel.md
│   │   ├── ShippingLineItem.md
│   │   ├── ShippingLocation.md
│   │   ├── ShippingMethod.md
│   │   ├── ShippingMgr.md
│   │   ├── ShippingOrder.md
│   │   ├── ShippingOrderItem.md
│   │   ├── SumItem.md
│   │   ├── TaxGroup.md
│   │   ├── TaxItem.md
│   │   ├── TaxMgr.md
│   │   ├── TrackingInfo.md
│   │   └── TrackingRef.md
│   ├── dw_order.hooks
│   │   ├── CalculateHooks.md
│   │   ├── OrderHooks.md
│   │   ├── PaymentHooks.md
│   │   ├── ReturnHooks.md
│   │   └── ShippingOrderHooks.md
│   ├── dw_rpc
│   │   ├── SOAPUtil.md
│   │   ├── Stub.md
│   │   └── WebReference.md
│   ├── dw_suggest
│   │   ├── BrandSuggestions.md
│   │   ├── CategorySuggestions.md
│   │   ├── ContentSuggestions.md
│   │   ├── CustomSuggestions.md
│   │   ├── ProductSuggestions.md
│   │   ├── SearchPhraseSuggestions.md
│   │   ├── SuggestedCategory.md
│   │   ├── SuggestedContent.md
│   │   ├── SuggestedPhrase.md
│   │   ├── SuggestedProduct.md
│   │   ├── SuggestedTerm.md
│   │   ├── SuggestedTerms.md
│   │   ├── Suggestions.md
│   │   └── SuggestModel.md
│   ├── dw_svc
│   │   ├── FTPService.md
│   │   ├── FTPServiceDefinition.md
│   │   ├── HTTPFormService.md
│   │   ├── HTTPFormServiceDefinition.md
│   │   ├── HTTPService.md
│   │   ├── HTTPServiceDefinition.md
│   │   ├── LocalServiceRegistry.md
│   │   ├── Result.md
│   │   ├── Service.md
│   │   ├── ServiceCallback.md
│   │   ├── ServiceConfig.md
│   │   ├── ServiceCredential.md
│   │   ├── ServiceDefinition.md
│   │   ├── ServiceProfile.md
│   │   ├── ServiceRegistry.md
│   │   ├── SOAPService.md
│   │   └── SOAPServiceDefinition.md
│   ├── dw_system
│   │   ├── AgentUserStatusCodes.md
│   │   ├── Cache.md
│   │   ├── CacheMgr.md
│   │   ├── HookMgr.md
│   │   ├── InternalObject.md
│   │   ├── JobProcessMonitor.md
│   │   ├── Log.md
│   │   ├── Logger.md
│   │   ├── LogNDC.md
│   │   ├── OrganizationPreferences.md
│   │   ├── Pipeline.md
│   │   ├── PipelineDictionary.md
│   │   ├── RemoteInclude.md
│   │   ├── Request.md
│   │   ├── RequestHooks.md
│   │   ├── Response.md
│   │   ├── RESTErrorResponse.md
│   │   ├── RESTResponseMgr.md
│   │   ├── RESTSuccessResponse.md
│   │   ├── SearchStatus.md
│   │   ├── Session.md
│   │   ├── Site.md
│   │   ├── SitePreferences.md
│   │   ├── Status.md
│   │   ├── StatusItem.md
│   │   ├── System.md
│   │   └── Transaction.md
│   ├── dw_util
│   │   ├── ArrayList.md
│   │   ├── Assert.md
│   │   ├── BigInteger.md
│   │   ├── Bytes.md
│   │   ├── Calendar.md
│   │   ├── Collection.md
│   │   ├── Currency.md
│   │   ├── DateUtils.md
│   │   ├── Decimal.md
│   │   ├── FilteringCollection.md
│   │   ├── Geolocation.md
│   │   ├── HashMap.md
│   │   ├── HashSet.md
│   │   ├── Iterator.md
│   │   ├── LinkedHashMap.md
│   │   ├── LinkedHashSet.md
│   │   ├── List.md
│   │   ├── Locale.md
│   │   ├── Map.md
│   │   ├── MapEntry.md
│   │   ├── MappingKey.md
│   │   ├── MappingMgr.md
│   │   ├── PropertyComparator.md
│   │   ├── SecureEncoder.md
│   │   ├── SecureFilter.md
│   │   ├── SeekableIterator.md
│   │   ├── Set.md
│   │   ├── SortedMap.md
│   │   ├── SortedSet.md
│   │   ├── StringUtils.md
│   │   ├── Template.md
│   │   └── UUIDUtils.md
│   ├── dw_value
│   │   ├── EnumValue.md
│   │   ├── MimeEncodedText.md
│   │   ├── Money.md
│   │   └── Quantity.md
│   ├── dw_web
│   │   ├── ClickStream.md
│   │   ├── ClickStreamEntry.md
│   │   ├── Cookie.md
│   │   ├── Cookies.md
│   │   ├── CSRFProtection.md
│   │   ├── Form.md
│   │   ├── FormAction.md
│   │   ├── FormElement.md
│   │   ├── FormElementValidationResult.md
│   │   ├── FormField.md
│   │   ├── FormFieldOption.md
│   │   ├── FormFieldOptions.md
│   │   ├── FormGroup.md
│   │   ├── FormList.md
│   │   ├── FormListItem.md
│   │   ├── Forms.md
│   │   ├── HttpParameter.md
│   │   ├── HttpParameterMap.md
│   │   ├── LoopIterator.md
│   │   ├── PageMetaData.md
│   │   ├── PageMetaTag.md
│   │   ├── PagingModel.md
│   │   ├── Resource.md
│   │   ├── URL.md
│   │   ├── URLAction.md
│   │   ├── URLParameter.md
│   │   ├── URLRedirect.md
│   │   ├── URLRedirectMgr.md
│   │   └── URLUtils.md
│   ├── sfra
│   │   ├── account.md
│   │   ├── address.md
│   │   ├── billing.md
│   │   ├── cart.md
│   │   ├── categories.md
│   │   ├── content.md
│   │   ├── locale.md
│   │   ├── order.md
│   │   ├── payment.md
│   │   ├── price-default.md
│   │   ├── price-range.md
│   │   ├── price-tiered.md
│   │   ├── product-bundle.md
│   │   ├── product-full.md
│   │   ├── product-line-items.md
│   │   ├── product-search.md
│   │   ├── product-tile.md
│   │   ├── querystring.md
│   │   ├── render.md
│   │   ├── request.md
│   │   ├── response.md
│   │   ├── server.md
│   │   ├── shipping.md
│   │   ├── store.md
│   │   ├── stores.md
│   │   └── totals.md
│   └── TopLevel
│       ├── APIException.md
│       ├── arguments.md
│       ├── Array.md
│       ├── ArrayBuffer.md
│       ├── BigInt.md
│       ├── Boolean.md
│       ├── ConversionError.md
│       ├── DataView.md
│       ├── Date.md
│       ├── Error.md
│       ├── ES6Iterator.md
│       ├── EvalError.md
│       ├── Fault.md
│       ├── Float32Array.md
│       ├── Float64Array.md
│       ├── Function.md
│       ├── Generator.md
│       ├── global.md
│       ├── Int16Array.md
│       ├── Int32Array.md
│       ├── Int8Array.md
│       ├── InternalError.md
│       ├── IOError.md
│       ├── Iterable.md
│       ├── Iterator.md
│       ├── JSON.md
│       ├── Map.md
│       ├── Math.md
│       ├── Module.md
│       ├── Namespace.md
│       ├── Number.md
│       ├── Object.md
│       ├── QName.md
│       ├── RangeError.md
│       ├── ReferenceError.md
│       ├── RegExp.md
│       ├── Set.md
│       ├── StopIteration.md
│       ├── String.md
│       ├── Symbol.md
│       ├── SyntaxError.md
│       ├── SystemError.md
│       ├── TypeError.md
│       ├── Uint16Array.md
│       ├── Uint32Array.md
│       ├── Uint8Array.md
│       ├── Uint8ClampedArray.md
│       ├── URIError.md
│       ├── WeakMap.md
│       ├── WeakSet.md
│       ├── XML.md
│       ├── XMLList.md
│       └── XMLStreamError.md
├── docs-site
│   ├── .gitignore
│   ├── App.tsx
│   ├── components
│   │   ├── Badge.tsx
│   │   ├── BreadcrumbSchema.tsx
│   │   ├── CodeBlock.tsx
│   │   ├── Collapsible.tsx
│   │   ├── ConfigBuilder.tsx
│   │   ├── ConfigHero.tsx
│   │   ├── ConfigModeTabs.tsx
│   │   ├── icons.tsx
│   │   ├── Layout.tsx
│   │   ├── LightCodeContainer.tsx
│   │   ├── NewcomerCTA.tsx
│   │   ├── NextStepsStrip.tsx
│   │   ├── OnThisPage.tsx
│   │   ├── Search.tsx
│   │   ├── SEO.tsx
│   │   ├── Sidebar.tsx
│   │   ├── StructuredData.tsx
│   │   ├── ToolCard.tsx
│   │   ├── ToolFilters.tsx
│   │   ├── Typography.tsx
│   │   └── VersionBadge.tsx
│   ├── constants.tsx
│   ├── index.html
│   ├── main.tsx
│   ├── metadata.json
│   ├── package-lock.json
│   ├── package.json
│   ├── pages
│   │   ├── AIInterfacesPage.tsx
│   │   ├── ConfigurationPage.tsx
│   │   ├── DevelopmentPage.tsx
│   │   ├── ExamplesPage.tsx
│   │   ├── FeaturesPage.tsx
│   │   ├── HomePage.tsx
│   │   ├── SecurityPage.tsx
│   │   ├── ToolsPage.tsx
│   │   └── TroubleshootingPage.tsx
│   ├── postcss.config.js
│   ├── public
│   │   ├── .well-known
│   │   │   └── security.txt
│   │   ├── 404.html
│   │   ├── android-chrome-192x192.png
│   │   ├── android-chrome-512x512.png
│   │   ├── apple-touch-icon.png
│   │   ├── explain-product-pricing-methods-no-mcp.png
│   │   ├── explain-product-pricing-methods.png
│   │   ├── favicon-16x16.png
│   │   ├── favicon-32x32.png
│   │   ├── favicon.ico
│   │   ├── llms.txt
│   │   ├── robots.txt
│   │   ├── site.webmanifest
│   │   └── sitemap.xml
│   ├── README.md
│   ├── scripts
│   │   ├── generate-search-index.js
│   │   ├── generate-sitemap.js
│   │   └── search-dev.js
│   ├── src
│   │   └── styles
│   │       ├── input.css
│   │       └── prism-theme.css
│   ├── tailwind.config.js
│   ├── tsconfig.json
│   ├── types.ts
│   ├── utils
│   │   ├── search.ts
│   │   └── toolsData.ts
│   └── vite.config.ts
├── eslint.config.js
├── jest.config.js
├── LICENSE
├── package-lock.json
├── package.json
├── README.md
├── scripts
│   └── convert-docs.js
├── SECURITY.md
├── server.json
├── src
│   ├── clients
│   │   ├── base
│   │   │   ├── http-client.ts
│   │   │   ├── oauth-token.ts
│   │   │   └── ocapi-auth-client.ts
│   │   ├── best-practices-client.ts
│   │   ├── cartridge-generation-client.ts
│   │   ├── docs
│   │   │   ├── class-content-parser.ts
│   │   │   ├── class-name-resolver.ts
│   │   │   ├── documentation-scanner.ts
│   │   │   ├── index.ts
│   │   │   └── referenced-types-extractor.ts
│   │   ├── docs-client.ts
│   │   ├── log-client.ts
│   │   ├── logs
│   │   │   ├── index.ts
│   │   │   ├── log-analyzer.ts
│   │   │   ├── log-client.ts
│   │   │   ├── log-constants.ts
│   │   │   ├── log-file-discovery.ts
│   │   │   ├── log-file-reader.ts
│   │   │   ├── log-formatter.ts
│   │   │   ├── log-processor.ts
│   │   │   ├── log-types.ts
│   │   │   └── webdav-client-manager.ts
│   │   ├── ocapi
│   │   │   ├── code-versions-client.ts
│   │   │   ├── site-preferences-client.ts
│   │   │   └── system-objects-client.ts
│   │   ├── ocapi-client.ts
│   │   └── sfra-client.ts
│   ├── config
│   │   ├── configuration-factory.ts
│   │   └── dw-json-loader.ts
│   ├── core
│   │   ├── handlers
│   │   │   ├── abstract-log-tool-handler.ts
│   │   │   ├── base-handler.ts
│   │   │   ├── best-practices-handler.ts
│   │   │   ├── cartridge-handler.ts
│   │   │   ├── client-factory.ts
│   │   │   ├── code-version-handler.ts
│   │   │   ├── docs-handler.ts
│   │   │   ├── job-log-handler.ts
│   │   │   ├── job-log-tool-config.ts
│   │   │   ├── log-handler.ts
│   │   │   ├── log-tool-config.ts
│   │   │   ├── sfra-handler.ts
│   │   │   ├── system-object-handler.ts
│   │   │   └── validation-helpers.ts
│   │   ├── server.ts
│   │   └── tool-definitions.ts
│   ├── index.ts
│   ├── main.ts
│   ├── services
│   │   ├── file-system-service.ts
│   │   ├── index.ts
│   │   └── path-service.ts
│   ├── tool-configs
│   │   ├── best-practices-tool-config.ts
│   │   ├── cartridge-tool-config.ts
│   │   ├── code-version-tool-config.ts
│   │   ├── docs-tool-config.ts
│   │   ├── job-log-tool-config.ts
│   │   ├── log-tool-config.ts
│   │   ├── sfra-tool-config.ts
│   │   └── system-object-tool-config.ts
│   ├── types
│   │   └── types.ts
│   └── utils
│       ├── cache.ts
│       ├── job-log-tool-config.ts
│       ├── job-log-utils.ts
│       ├── log-cache.ts
│       ├── log-tool-config.ts
│       ├── log-tool-constants.ts
│       ├── log-tool-utils.ts
│       ├── logger.ts
│       ├── ocapi-url-builder.ts
│       ├── path-resolver.ts
│       ├── query-builder.ts
│       ├── utils.ts
│       └── validator.ts
├── tests
│   ├── __mocks__
│   │   ├── docs-client.ts
│   │   ├── src
│   │   │   └── clients
│   │   │       └── base
│   │   │           └── http-client.js
│   │   └── webdav.js
│   ├── base-handler.test.ts
│   ├── base-http-client.test.ts
│   ├── best-practices-handler.test.ts
│   ├── cache.test.ts
│   ├── cartridge-handler.test.ts
│   ├── class-content-parser.test.ts
│   ├── class-name-resolver.test.ts
│   ├── client-factory.test.ts
│   ├── code-version-handler.test.ts
│   ├── code-versions-client.test.ts
│   ├── config.test.ts
│   ├── configuration-factory.test.ts
│   ├── docs-handler.test.ts
│   ├── documentation-scanner.test.ts
│   ├── file-system-service.test.ts
│   ├── job-log-handler.test.ts
│   ├── job-log-utils.test.ts
│   ├── log-client.test.ts
│   ├── log-handler.test.ts
│   ├── log-processor.test.ts
│   ├── logger.test.ts
│   ├── mcp
│   │   ├── AGENTS.md
│   │   ├── node
│   │   │   ├── activate-code-version-advanced.full-mode.programmatic.test.js
│   │   │   ├── code-versions.full-mode.programmatic.test.js
│   │   │   ├── generate-cartridge-structure.docs-only.programmatic.test.js
│   │   │   ├── get-available-best-practice-guides.docs-only.programmatic.test.js
│   │   │   ├── get-available-sfra-documents.programmatic.test.js
│   │   │   ├── get-best-practice-guide.docs-only.programmatic.test.js
│   │   │   ├── get-hook-reference.docs-only.programmatic.test.js
│   │   │   ├── get-job-execution-summary.full-mode.programmatic.test.js
│   │   │   ├── get-job-log-entries.full-mode.programmatic.test.js
│   │   │   ├── get-latest-debug.full-mode.programmatic.test.js
│   │   │   ├── get-latest-error.full-mode.programmatic.test.js
│   │   │   ├── get-latest-info.full-mode.programmatic.test.js
│   │   │   ├── get-latest-job-log-files.full-mode.programmatic.test.js
│   │   │   ├── get-latest-warn.full-mode.programmatic.test.js
│   │   │   ├── get-log-file-contents.full-mode.programmatic.test.js
│   │   │   ├── get-sfcc-class-documentation.docs-only.programmatic.test.js
│   │   │   ├── get-sfcc-class-info.docs-only.programmatic.test.js
│   │   │   ├── get-sfra-categories.docs-only.programmatic.test.js
│   │   │   ├── get-sfra-document.programmatic.test.js
│   │   │   ├── get-sfra-documents-by-category.docs-only.programmatic.test.js
│   │   │   ├── get-system-object-definition.full-mode.programmatic.test.js
│   │   │   ├── get-system-object-definitions.docs-only.programmatic.test.js
│   │   │   ├── get-system-object-definitions.full-mode.programmatic.test.js
│   │   │   ├── list-log-files.full-mode.programmatic.test.js
│   │   │   ├── list-sfcc-classes.docs-only.programmatic.test.js
│   │   │   ├── search-best-practices.docs-only.programmatic.test.js
│   │   │   ├── search-custom-object-attribute-definitions.full-mode.programmatic.test.js
│   │   │   ├── search-job-logs-by-name.full-mode.programmatic.test.js
│   │   │   ├── search-job-logs.full-mode.programmatic.test.js
│   │   │   ├── search-logs.full-mode.programmatic.test.js
│   │   │   ├── search-sfcc-classes.docs-only.programmatic.test.js
│   │   │   ├── search-sfcc-methods.docs-only.programmatic.test.js
│   │   │   ├── search-sfra-documentation.docs-only.programmatic.test.js
│   │   │   ├── search-site-preferences.full-mode.programmatic.test.js
│   │   │   ├── search-system-object-attribute-definitions.full-mode.programmatic.test.js
│   │   │   ├── search-system-object-attribute-groups.full-mode.programmatic.test.js
│   │   │   ├── summarize-logs.full-mode.programmatic.test.js
│   │   │   ├── tools.docs-only.programmatic.test.js
│   │   │   └── tools.full-mode.programmatic.test.js
│   │   ├── README.md
│   │   ├── test-fixtures
│   │   │   └── dw.json
│   │   └── yaml
│   │       ├── activate-code-version.docs-only.test.mcp.yml
│   │       ├── activate-code-version.full-mode.test.mcp.yml
│   │       ├── get_latest_error.test.mcp.yml
│   │       ├── get-available-best-practice-guides.docs-only.test.mcp.yml
│   │       ├── get-available-best-practice-guides.full-mode.test.mcp.yml
│   │       ├── get-available-sfra-documents.docs-only.test.mcp.yml
│   │       ├── get-available-sfra-documents.full-mode.test.mcp.yml
│   │       ├── get-best-practice-guide.docs-only.test.mcp.yml
│   │       ├── get-best-practice-guide.full-mode.test.mcp.yml
│   │       ├── get-code-versions.docs-only.test.mcp.yml
│   │       ├── get-code-versions.full-mode.test.mcp.yml
│   │       ├── get-hook-reference.docs-only.test.mcp.yml
│   │       ├── get-hook-reference.full-mode.test.mcp.yml
│   │       ├── get-job-execution-summary.full-mode.test.mcp.yml
│   │       ├── get-job-log-entries.full-mode.test.mcp.yml
│   │       ├── get-latest-debug.full-mode.test.mcp.yml
│   │       ├── get-latest-error.full-mode.test.mcp.yml
│   │       ├── get-latest-info.full-mode.test.mcp.yml
│   │       ├── get-latest-job-log-files.full-mode.test.mcp.yml
│   │       ├── get-latest-warn.full-mode.test.mcp.yml
│   │       ├── get-log-file-contents.full-mode.test.mcp.yml
│   │       ├── get-sfcc-class-documentation.docs-only.test.mcp.yml
│   │       ├── get-sfcc-class-documentation.full-mode.test.mcp.yml
│   │       ├── get-sfcc-class-info.docs-only.test.mcp.yml
│   │       ├── get-sfcc-class-info.full-mode.test.mcp.yml
│   │       ├── get-sfra-categories.docs-only.test.mcp.yml
│   │       ├── get-sfra-categories.full-mode.test.mcp.yml
│   │       ├── get-sfra-document.docs-only.test.mcp.yml
│   │       ├── get-sfra-document.full-mode.test.mcp.yml
│   │       ├── get-sfra-documents-by-category.docs-only.test.mcp.yml
│   │       ├── get-sfra-documents-by-category.full-mode.test.mcp.yml
│   │       ├── get-system-object-definition.docs-only.test.mcp.yml
│   │       ├── get-system-object-definition.full-mode.test.mcp.yml
│   │       ├── get-system-object-definitions.docs-only.test.mcp.yml
│   │       ├── get-system-object-definitions.full-mode.test.mcp.yml
│   │       ├── list-log-files.full-mode.test.mcp.yml
│   │       ├── list-sfcc-classes.docs-only.test.mcp.yml
│   │       ├── list-sfcc-classes.full-mode.test.mcp.yml
│   │       ├── search-best-practices.docs-only.test.mcp.yml
│   │       ├── search-best-practices.full-mode.test.mcp.yml
│   │       ├── search-custom-object-attribute-definitions.docs-only.test.mcp.yml
│   │       ├── search-custom-object-attribute-definitions.test.mcp.yml
│   │       ├── search-job-logs-by-name.full-mode.test.mcp.yml
│   │       ├── search-job-logs.full-mode.test.mcp.yml
│   │       ├── search-logs.full-mode.test.mcp.yml
│   │       ├── search-sfcc-classes.docs-only.test.mcp.yml
│   │       ├── search-sfcc-classes.full-mode.test.mcp.yml
│   │       ├── search-sfcc-methods.docs-only.test.mcp.yml
│   │       ├── search-sfcc-methods.full-mode.test.mcp.yml
│   │       ├── search-sfra-documentation.docs-only.test.mcp.yml
│   │       ├── search-sfra-documentation.full-mode.test.mcp.yml
│   │       ├── search-site-preferences.docs-only.test.mcp.yml
│   │       ├── search-site-preferences.full-mode.test.mcp.yml
│   │       ├── search-system-object-attribute-definitions.docs-only.test.mcp.yml
│   │       ├── search-system-object-attribute-definitions.full-mode.test.mcp.yml
│   │       ├── search-system-object-attribute-groups.docs-only.test.mcp.yml
│   │       ├── search-system-object-attribute-groups.full-mode.test.mcp.yml
│   │       ├── summarize-logs.full-mode.test.mcp.yml
│   │       ├── tools.docs-only.test.mcp.yml
│   │       └── tools.full-mode.test.mcp.yml
│   ├── oauth-token.test.ts
│   ├── ocapi-auth-client.test.ts
│   ├── ocapi-client.test.ts
│   ├── path-service.test.ts
│   ├── query-builder.test.ts
│   ├── referenced-types-extractor.test.ts
│   ├── servers
│   │   ├── sfcc-mock-server
│   │   │   ├── mock-data
│   │   │   │   └── ocapi
│   │   │   │       ├── code-versions.json
│   │   │   │       ├── custom-object-attributes-customapi.json
│   │   │   │       ├── custom-object-attributes-globalsettings.json
│   │   │   │       ├── custom-object-attributes-versionhistory.json
│   │   │   │       ├── site-preferences-ccv.json
│   │   │   │       ├── site-preferences-fastforward.json
│   │   │   │       ├── site-preferences-sfra.json
│   │   │   │       ├── site-preferences-storefront.json
│   │   │   │       ├── site-preferences-system.json
│   │   │   │       ├── system-object-attribute-groups-campaign.json
│   │   │   │       ├── system-object-attribute-groups-category.json
│   │   │   │       ├── system-object-attribute-groups-order.json
│   │   │   │       ├── system-object-attribute-groups-product.json
│   │   │   │       ├── system-object-attribute-groups-sitepreferences.json
│   │   │   │       ├── system-object-attributes-customeraddress.json
│   │   │   │       ├── system-object-attributes-product-expanded.json
│   │   │   │       ├── system-object-attributes-product.json
│   │   │   │       ├── system-object-definition-category.json
│   │   │   │       ├── system-object-definition-customer.json
│   │   │   │       ├── system-object-definition-customeraddress.json
│   │   │   │       ├── system-object-definition-order.json
│   │   │   │       ├── system-object-definition-product.json
│   │   │   │       ├── system-object-definitions-old.json
│   │   │   │       └── system-object-definitions.json
│   │   │   ├── package-lock.json
│   │   │   ├── package.json
│   │   │   ├── README.md
│   │   │   ├── scripts
│   │   │   │   └── setup-logs.js
│   │   │   ├── server.js
│   │   │   └── src
│   │   │       ├── app.js
│   │   │       ├── config
│   │   │       │   └── server-config.js
│   │   │       ├── middleware
│   │   │       │   ├── auth.js
│   │   │       │   ├── cors.js
│   │   │       │   └── logging.js
│   │   │       ├── routes
│   │   │       │   ├── ocapi
│   │   │       │   │   ├── code-versions-handler.js
│   │   │       │   │   ├── oauth-handler.js
│   │   │       │   │   ├── ocapi-error-utils.js
│   │   │       │   │   ├── ocapi-utils.js
│   │   │       │   │   ├── site-preferences-handler.js
│   │   │       │   │   └── system-objects-handler.js
│   │   │       │   ├── ocapi.js
│   │   │       │   └── webdav.js
│   │   │       └── utils
│   │   │           ├── mock-data-loader.js
│   │   │           └── webdav-xml.js
│   │   └── sfcc-mock-server-manager.ts
│   ├── sfcc-mock-server.test.ts
│   ├── site-preferences-client.test.ts
│   ├── system-objects-client.test.ts
│   ├── utils.test.ts
│   ├── validation-helpers.test.ts
│   └── validator.test.ts
├── tsconfig.json
└── tsconfig.test.json
```

# Files

--------------------------------------------------------------------------------
/docs-site/tsconfig.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "compilerOptions": {
 3 |     "target": "ES2022",
 4 |     "experimentalDecorators": true,
 5 |     "useDefineForClassFields": false,
 6 |     "module": "ESNext",
 7 |     "lib": [
 8 |       "ES2022",
 9 |       "DOM",
10 |       "DOM.Iterable"
11 |     ],
12 |     "skipLibCheck": true,
13 |     "types": [
14 |       "node"
15 |     ],
16 |     "moduleResolution": "bundler",
17 |     "isolatedModules": true,
18 |     "moduleDetection": "force",
19 |     "allowJs": true,
20 |     "jsx": "react-jsx",
21 |     "paths": {
22 |       "@/*": [
23 |         "./*"
24 |       ]
25 |     },
26 |     "allowImportingTsExtensions": true,
27 |     "noEmit": true
28 |   }
29 | }
```

--------------------------------------------------------------------------------
/src/clients/log-client.ts:
--------------------------------------------------------------------------------

```typescript
 1 | /**
 2 |  * SFCC log client - now uses modular structure
 3 |  *
 4 |  * This file provides backward compatibility by re-exporting the main log client
 5 |  * from the new modular structure in the logs/ directory.
 6 |  */
 7 | 
 8 | export { SFCCLogClient } from './logs/index.js';
 9 | export type { LogLevel, LogFileInfo, LogSummary, WebDAVClientConfig } from './logs/index.js';
10 | 
11 | // Re-export SFCCConfig for backward compatibility
12 | export interface SFCCConfig {
13 |   hostname?: string;
14 |   username?: string;
15 |   password?: string;
16 |   clientId?: string;
17 |   clientSecret?: string;
18 |   siteId?: string;
19 | }
20 | 
```

--------------------------------------------------------------------------------
/docs/dw_web/Forms.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.web
 2 | 
 3 | # Class Forms
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.web.Forms
 9 | 
10 | ## Description
11 | 
12 | The Forms object provides access to all current forms in the session. The individual forms are retrieved as a dynamic property, for example 'forms.searchform'. It is typically retrieved from the session via Session.getForms(). But it is also available in the PipelineDictionary and can be accessed via 'pdict.CurrentForms'. Note that values stored with a form on the session are deleted if the request locale is changed during the session.
13 | 
14 | ## Constructor Summary
15 | 
16 | ## Method Summary
```

--------------------------------------------------------------------------------
/docs/dw_io/InputStream.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.io
 2 | 
 3 | # Class InputStream
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.io.InputStream
 9 | 
10 | ## Description
11 | 
12 | The class represent a stream of bytes that can be read from the application. The InputStream itself doesn't provide any methods to read the data. Instead the InputStream can be chained with other classes like a XMLStreamReader to read data.
13 | 
14 | ## Constructor Summary
15 | 
16 | ## Method Summary
17 | 
18 | ### close
19 | 
20 | **Signature:** `close() : void`
21 | 
22 | Closes the input stream.
23 | 
24 | ## Method Detail
25 | 
26 | ## Method Details
27 | 
28 | ### close
29 | 
30 | **Signature:** `close() : void`
31 | 
32 | **Description:** Closes the input stream.
33 | 
34 | ---
```

--------------------------------------------------------------------------------
/docs/dw_catalog/SortingRule.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.catalog
 2 | 
 3 | # Class SortingRule
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.object.PersistentObject
 9 |   - dw.catalog.SortingRule
10 | 
11 | ## Description
12 | 
13 | Represents a product sorting rule for use with the ProductSearchModel.
14 | 
15 | ## Properties
16 | 
17 | ### ID
18 | 
19 | **Type:** String (Read Only)
20 | 
21 | The ID of the sorting rule.
22 | 
23 | ## Constructor Summary
24 | 
25 | ## Method Summary
26 | 
27 | ### getID
28 | 
29 | **Signature:** `getID() : String`
30 | 
31 | Returns the ID of the sorting rule.
32 | 
33 | ## Method Detail
34 | 
35 | ## Method Details
36 | 
37 | ### getID
38 | 
39 | **Signature:** `getID() : String`
40 | 
41 | **Description:** Returns the ID of the sorting rule.
42 | 
43 | **Returns:**
44 | 
45 | sorting rule ID
46 | 
47 | ---
```

--------------------------------------------------------------------------------
/server.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
 3 |   "name": "io.github.taurgis/sfcc-dev-mcp",
 4 |   "description": "MCP server for Salesforce B2C Commerce Cloud development assistance",
 5 |   "status": "active",
 6 |   "repository": {
 7 |     "url": "https://github.com/taurgis/sfcc-dev-mcp",
 8 |     "source": "github"
 9 |   },
10 |   "version": "1.0.14",
11 |   "packages": [
12 |     {
13 |       "registry_type": "npm",
14 |       "registry_base_url": "https://registry.npmjs.org",
15 |       "identifier": "sfcc-dev-mcp",
16 |       "version": "1.0.14",
17 |       "transport": {
18 |         "type": "stdio"
19 |       }
20 |     }
21 |   ]
22 | }
```

--------------------------------------------------------------------------------
/docs/dw_order/ShipmentShippingCost.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.order
 2 | 
 3 | # Class ShipmentShippingCost
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.order.ShipmentShippingCost
 9 | 
10 | ## Description
11 | 
12 | Represents shipping cost applied to shipments. Returned by ShipmentShippingModel.getShippingCost(ShippingMethod).
13 | 
14 | ## Properties
15 | 
16 | ### amount
17 | 
18 | **Type:** Money (Read Only)
19 | 
20 | The shipping amount.
21 | 
22 | ## Constructor Summary
23 | 
24 | ## Method Summary
25 | 
26 | ### getAmount
27 | 
28 | **Signature:** `getAmount() : Money`
29 | 
30 | Returns the shipping amount.
31 | 
32 | ## Method Detail
33 | 
34 | ## Method Details
35 | 
36 | ### getAmount
37 | 
38 | **Signature:** `getAmount() : Money`
39 | 
40 | **Description:** Returns the shipping amount.
41 | 
42 | **Returns:**
43 | 
44 | Shipping amount
45 | 
46 | ---
```

--------------------------------------------------------------------------------
/docs/dw_suggest/CustomSuggestions.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.suggest
 2 | 
 3 | # Class CustomSuggestions
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.suggest.Suggestions
 9 |   - dw.suggest.CustomSuggestions
10 | 
11 | ## Description
12 | 
13 | The custom suggestion container provides access to merchant provided search phrases found using the suggested terms as search criteria. The method SearchPhraseSuggestions.getSuggestedPhrases() can be used to get the list of found search phrases. The custom phrases lookup is being executed in the current site. Furthermore the list of suggested terms is accessible through SearchPhraseSuggestions.getSuggestedTerms() method.
14 | 
15 | ## Constructor Summary
16 | 
17 | ## Method Summary
```

--------------------------------------------------------------------------------
/tests/__mocks__/src/clients/base/http-client.js:
--------------------------------------------------------------------------------

```javascript
 1 | /**
 2 |  * Mock for BaseHttpClient
 3 |  */
 4 | 
 5 | export class BaseHttpClient {
 6 |   constructor(baseUrl) {
 7 |     this.baseUrl = baseUrl;
 8 |     this.logger = {
 9 |       debug: jest.fn(),
10 |       info: jest.fn(),
11 |       warn: jest.fn(),
12 |       error: jest.fn(),
13 |     };
14 |   }
15 | 
16 |   async makeRequest() {
17 |     return { data: 'mocked' };
18 |   }
19 | 
20 |   async get() {
21 |     return { data: 'mocked' };
22 |   }
23 | 
24 |   async post() {
25 |     return { data: 'mocked' };
26 |   }
27 | 
28 |   async put() {
29 |     return { data: 'mocked' };
30 |   }
31 | 
32 |   async patch() {
33 |     return { data: 'mocked' };
34 |   }
35 | 
36 |   async delete() {
37 |     return { data: 'mocked' };
38 |   }
39 | 
40 |   async handleAuthError() {
41 |     // Mock implementation
42 |   }
43 | }
44 | 
```

--------------------------------------------------------------------------------
/src/clients/logs/index.ts:
--------------------------------------------------------------------------------

```typescript
 1 | /**
 2 |  * Exports for the modular log client system
 3 |  */
 4 | 
 5 | // Main client
 6 | export { SFCCLogClient } from './log-client.js';
 7 | 
 8 | // Specialized modules
 9 | export { WebDAVClientManager } from './webdav-client-manager.js';
10 | export { LogFileReader } from './log-file-reader.js';
11 | export { LogFileDiscovery } from './log-file-discovery.js';
12 | export { LogProcessor } from './log-processor.js';
13 | export { LogAnalyzer } from './log-analyzer.js';
14 | export { LogFormatter } from './log-formatter.js';
15 | 
16 | // Constants and types
17 | export { LOG_CONSTANTS, LOG_FILE_PATTERNS, LOG_MESSAGES, JOB_LOG_CONSTANTS } from './log-constants.js';
18 | export type * from './log-types.js';
19 | 
```

--------------------------------------------------------------------------------
/docs/dw_suggest/BrandSuggestions.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.suggest
 2 | 
 3 | # Class BrandSuggestions
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.suggest.Suggestions
 9 |   - dw.suggest.BrandSuggestions
10 | 
11 | ## Description
12 | 
13 | The brands suggestion container provides access to brands found using the suggested terms. The method SearchPhraseSuggestions.getSuggestedPhrases() can be used to get the list of found brand names. The brand lookup is being executed in the current catalog and locale. Furthermore the list of suggested terms, after processing the original user input search query, is accessible through SearchPhraseSuggestions.getSuggestedTerms() method.
14 | 
15 | ## Constructor Summary
16 | 
17 | ## Method Summary
```

--------------------------------------------------------------------------------
/docs/dw_util/LinkedHashMap.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.util
 2 | 
 3 | # Class LinkedHashMap
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.util.Map
 9 |   - dw.util.LinkedHashMap
10 | 
11 | ## Description
12 | 
13 | This class implements a HashMap, which guarantees a iteration order according the put-order of the elements in the map.
14 | 
15 | ## Constructor Summary
16 | 
17 | LinkedHashMap() Constructs a new LinkedHashMap.
18 | 
19 | ## Method Summary
20 | 
21 | ### clone
22 | 
23 | **Signature:** `clone() : LinkedHashMap`
24 | 
25 | Returns a shallow copy of this map.
26 | 
27 | ## Constructor Detail
28 | 
29 | ## Method Detail
30 | 
31 | ## Method Details
32 | 
33 | ### clone
34 | 
35 | **Signature:** `clone() : LinkedHashMap`
36 | 
37 | **Description:** Returns a shallow copy of this map.
38 | 
39 | **Returns:**
40 | 
41 | a shallow copy of this map.
42 | 
43 | ---
```

--------------------------------------------------------------------------------
/docs/dw_campaign/SourceCodeStatusCodes.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class SourceCodeStatusCodes
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.campaign.SourceCodeStatusCodes
 9 | 
10 | ## Description
11 | 
12 | Helper class which contains error result codes returned by the SetSourceCode pipelet.
13 | 
14 | ## Constants
15 | 
16 | ### CODE_INACTIVE
17 | 
18 | **Type:** String = "CODE_INACTIVE"
19 | 
20 | Indicates that the specified source code was found in one or more source-code groups, none of which are active.
21 | 
22 | ### CODE_INVALID
23 | 
24 | **Type:** String = "CODE_INVALID"
25 | 
26 | Indicates that the specified source code is not contained in any source-code group.
27 | 
28 | ## Properties
29 | 
30 | ## Constructor Summary
31 | 
32 | SourceCodeStatusCodes()
33 | 
34 | ## Method Summary
35 | 
36 | ## Constructor Detail
```

--------------------------------------------------------------------------------
/docs/dw_customer/CustomerStatusCodes.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.customer
 2 | 
 3 | # Class CustomerStatusCodes
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.customer.CustomerStatusCodes
 9 | 
10 | ## Description
11 | 
12 | CustomerStatusCodes contains constants representing status codes that can be used with a Status object to indicate the success or failure of an operation.
13 | 
14 | ## Constants
15 | 
16 | ### CUSTOMER_ADDRESS_REFERENCED_BY_PRODUCT_LIST
17 | 
18 | **Type:** String = "CUSTOMER_ADDRESS_REFERENCED_BY_PRODUCT_LIST"
19 | 
20 | Indicates that an error occurred when trying to perform an operation on an address that is currently associated with a product list.
21 | 
22 | ## Properties
23 | 
24 | ## Constructor Summary
25 | 
26 | CustomerStatusCodes()
27 | 
28 | ## Method Summary
29 | 
30 | ## Constructor Detail
```

--------------------------------------------------------------------------------
/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-order.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "_v": "23.2",
 3 |   "_type": "object_type_definition",
 4 |   "attribute_definition_count": 67,
 5 |   "attribute_group_count": 12,
 6 |   "content_object": false,
 7 |   "creation_date": "2024-02-19T10:18:31.000Z",
 8 |   "description": {
 9 |     "default": "Object type representing orders."
10 |   },
11 |   "display_name": {
12 |     "de": "Bestellung",
13 |     "default": "Order",
14 |     "ja": "注文",
15 |     "it": "Ordine",
16 |     "fr": "Commande",
17 |     "zh-CN": "订单",
18 |     "es": "Pedido",
19 |     "nl": "Bestelling"
20 |   },
21 |   "last_modified": "2024-02-19T10:18:31.000Z",
22 |   "link": "https://localhost:3000/s/-/dw/data/v23_2/system_object_definitions/Order",
23 |   "object_type": "Order",
24 |   "queryable": true,
25 |   "read_only": true
26 | }
```

--------------------------------------------------------------------------------
/docs/dw_web/FormListItem.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.web
 2 | 
 3 | # Class FormListItem
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.web.FormElement
 9 |   - dw.web.FormGroup
10 |     - dw.web.FormListItem
11 | 
12 | ## Description
13 | 
14 | Represents an item in a form list.
15 | 
16 | ## Properties
17 | 
18 | ### itemIndex
19 | 
20 | **Type:** Number (Read Only)
21 | 
22 | The index of this item with the list.
23 | 
24 | ## Constructor Summary
25 | 
26 | ## Method Summary
27 | 
28 | ### getItemIndex
29 | 
30 | **Signature:** `getItemIndex() : Number`
31 | 
32 | Returns the index of this item with the list.
33 | 
34 | ## Method Detail
35 | 
36 | ## Method Details
37 | 
38 | ### getItemIndex
39 | 
40 | **Signature:** `getItemIndex() : Number`
41 | 
42 | **Description:** Returns the index of this item with the list.
43 | 
44 | **Returns:**
45 | 
46 | the index of this item with the list.
47 | 
48 | ---
```

--------------------------------------------------------------------------------
/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customer.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "_v": "23.2",
 3 |   "_type": "object_type_definition",
 4 |   "attribute_definition_count": 45,
 5 |   "attribute_group_count": 8,
 6 |   "content_object": false,
 7 |   "creation_date": "2024-02-19T10:18:31.000Z",
 8 |   "description": {
 9 |     "default": "Object type representing customers."
10 |   },
11 |   "display_name": {
12 |     "de": "Kunde",
13 |     "default": "Customer",
14 |     "ja": "顧客",
15 |     "it": "Cliente",
16 |     "fr": "Client",
17 |     "zh-CN": "客户",
18 |     "es": "Cliente",
19 |     "nl": "Klant"
20 |   },
21 |   "last_modified": "2024-02-19T10:18:31.000Z",
22 |   "link": "https://localhost:3000/s/-/dw/data/v23_2/system_object_definitions/Customer",
23 |   "object_type": "Customer",
24 |   "queryable": true,
25 |   "read_only": false
26 | }
```

--------------------------------------------------------------------------------
/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-product.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "_v": "23.2",
 3 |   "_type": "object_type_definition",
 4 |   "attribute_definition_count": 113,
 5 |   "attribute_group_count": 35,
 6 |   "content_object": true,
 7 |   "creation_date": "2024-02-19T10:18:31.000Z",
 8 |   "description": {
 9 |     "default": "Object type representing products."
10 |   },
11 |   "display_name": {
12 |     "de": "Produkt",
13 |     "default": "Product",
14 |     "ja": "商品",
15 |     "it": "Prodotto",
16 |     "fr": "Produit",
17 |     "zh-CN": "产品",
18 |     "es": "Producto",
19 |     "nl": "Product"
20 |   },
21 |   "last_modified": "2024-02-19T10:18:31.000Z",
22 |   "link": "https://localhost:3000/s/-/dw/data/v23_2/system_object_definitions/Product",
23 |   "object_type": "Product",
24 |   "queryable": false,
25 |   "read_only": false
26 | }
27 | 
```

--------------------------------------------------------------------------------
/docs/dw_util/HashSet.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.util
 2 | 
 3 | # Class HashSet
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.util.Collection
 9 |   - dw.util.Set
10 |     - dw.util.HashSet
11 | 
12 | ## Description
13 | 
14 | Represents a HashSet
15 | 
16 | ## Constructor Summary
17 | 
18 | HashSet() Constructs a new HashMap.
19 | 
20 | HashSet(collection : Collection) Construct a new HashSet by initializing the HashSet with the elements of the given collection.
21 | 
22 | ## Method Summary
23 | 
24 | ### clone
25 | 
26 | **Signature:** `clone() : HashSet`
27 | 
28 | Returns a shallow copy of this set.
29 | 
30 | ## Constructor Detail
31 | 
32 | ## Method Detail
33 | 
34 | ## Method Details
35 | 
36 | ### clone
37 | 
38 | **Signature:** `clone() : HashSet`
39 | 
40 | **Description:** Returns a shallow copy of this set.
41 | 
42 | **Returns:**
43 | 
44 | a shallow copy of this set.
45 | 
46 | ---
```

--------------------------------------------------------------------------------
/docs/dw_web/FormFieldOptions.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.web
 2 | 
 3 | # Class FormFieldOptions
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.web.FormFieldOptions
 9 | 
10 | ## Description
11 | 
12 | The class represents the list of options for a field. The class supports an index style access to the options, e.g. myfield.options[2] or myfield.options.red.
13 | 
14 | ## Properties
15 | 
16 | ### optionsCount
17 | 
18 | **Type:** Number (Read Only)
19 | 
20 | The number of option values.
21 | 
22 | ## Constructor Summary
23 | 
24 | ## Method Summary
25 | 
26 | ### getOptionsCount
27 | 
28 | **Signature:** `getOptionsCount() : Number`
29 | 
30 | Returns the number of option values.
31 | 
32 | ## Method Detail
33 | 
34 | ## Method Details
35 | 
36 | ### getOptionsCount
37 | 
38 | **Signature:** `getOptionsCount() : Number`
39 | 
40 | **Description:** Returns the number of option values.
41 | 
42 | ---
```

--------------------------------------------------------------------------------
/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-category.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "_v": "23.2",
 3 |   "_type": "object_type_definition",
 4 |   "attribute_definition_count": 29,
 5 |   "attribute_group_count": 5,
 6 |   "content_object": true,
 7 |   "creation_date": "2024-02-19T10:18:31.000Z",
 8 |   "description": {
 9 |     "default": "Object type representing product categories."
10 |   },
11 |   "display_name": {
12 |     "de": "Kategorie",
13 |     "default": "Category",
14 |     "ja": "カテゴリ",
15 |     "it": "Categoria",
16 |     "fr": "Catégorie",
17 |     "zh-CN": "类别",
18 |     "es": "Categoría",
19 |     "nl": "Categorie"
20 |   },
21 |   "last_modified": "2024-02-19T10:18:31.000Z",
22 |   "link": "https://localhost:3000/s/-/dw/data/v23_2/system_object_definitions/Category",
23 |   "object_type": "Category",
24 |   "queryable": false,
25 |   "read_only": false
26 | }
```

--------------------------------------------------------------------------------
/docs/dw_io/OutputStream.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.io
 2 | 
 3 | # Class OutputStream
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.io.OutputStream
 9 | 
10 | ## Description
11 | 
12 | The class represent a stream of bytes that can be written from the application. The OutputStream itself doesn't provide any methods to write the data. Instead the OutputStream can be chained with other classes like a XMLStreamWriter to write data. Note: when this class is used with sensitive data, be careful in persisting sensitive information to disk.
13 | 
14 | ## Constructor Summary
15 | 
16 | ## Method Summary
17 | 
18 | ### close
19 | 
20 | **Signature:** `close() : void`
21 | 
22 | Closes the output stream.
23 | 
24 | ## Method Detail
25 | 
26 | ## Method Details
27 | 
28 | ### close
29 | 
30 | **Signature:** `close() : void`
31 | 
32 | **Description:** Closes the output stream.
33 | 
34 | ---
```

--------------------------------------------------------------------------------
/docs-site/components/VersionBadge.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | import React from 'react';
 2 | // Dynamically require root package.json (relative two levels up from docs-site-v2 when built inside project root)
 3 | // During build (Vite), this will be statically analyzed; if path changes, adjust.
 4 | // Using assert { type: 'json' } not needed with Vite's JSON import capability.
 5 | // We keep it isolated so only Sidebar re-renders on version change.
 6 | // eslint-disable-next-line @typescript-eslint/no-var-requires
 7 | import pkg from '../../package.json';
 8 | 
 9 | const VersionBadge: React.FC = () => {
10 |   const version = (pkg as any)?.version || 'v1';
11 |   return (
12 |     <span className="text-sm text-slate-500 self-start mt-1" title="Library Version">
13 |       v{version}
14 |     </span>
15 |   );
16 | };
17 | 
18 | export default VersionBadge;
```

--------------------------------------------------------------------------------
/docs/dw_order/PriceAdjustmentLimitTypes.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.order
 2 | 
 3 | # Class PriceAdjustmentLimitTypes
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.order.PriceAdjustmentLimitTypes
 9 | 
10 | ## Description
11 | 
12 | Helper class containing price adjustment limit types.
13 | 
14 | ## Constants
15 | 
16 | ### TYPE_ITEM
17 | 
18 | **Type:** String = "ITEM"
19 | 
20 | Constant for Price Adjustment Limit Type Item. The price adjustment limit was created at the item level.
21 | 
22 | ### TYPE_ORDER
23 | 
24 | **Type:** String = "ORDER"
25 | 
26 | Constant for Price Adjustment Limit Type Order. The price adjustment limit was created at the order level.
27 | 
28 | ### TYPE_SHIPPING
29 | 
30 | **Type:** String = "SHIPPING"
31 | 
32 | Constant for Price Adjustment Limit Type Shipping. The price adjustment limit was created at the shipping item level.
33 | 
34 | ## Properties
35 | 
36 | ## Constructor Summary
37 | 
38 | ## Method Summary
```

--------------------------------------------------------------------------------
/docs/TopLevel/Iterable.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: TopLevel
 2 | 
 3 | # Class Iterable
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Iterable
 8 | 
 9 | ## Description
10 | 
11 | All objects containing the property @@iterator with a function returning an ES6Iterator are said to be an Iterable.
12 | 
13 | ## Constructor Summary
14 | 
15 | ## Method Summary
16 | 
17 | ### @@iterator
18 | 
19 | **Signature:** `@@iterator() : ES6Iterator`
20 | 
21 | Returns an iterator to be used for iterating this object.
22 | 
23 | ## Method Detail
24 | 
25 | ## Method Details
26 | 
27 | ### @@iterator
28 | 
29 | **Signature:** `@@iterator() : ES6Iterator`
30 | 
31 | **Description:** Returns an iterator to be used for iterating this object. Typically returns a new iterator instance. For iterators returns typically the iterator itself.
32 | 
33 | **API Versioned:**
34 | 
35 | From version 21.2.
36 | 
37 | **Returns:**
38 | 
39 | The iterator to be used for iterating this object.
40 | 
41 | ---
```

--------------------------------------------------------------------------------
/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customeraddress.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "_v": "23.2",
 3 |   "_type": "object_type_definition",
 4 |   "attribute_definition_count": 23,
 5 |   "attribute_group_count": 2,
 6 |   "content_object": false,
 7 |   "creation_date": "2024-02-19T10:18:31.000Z",
 8 |   "description": {
 9 |     "default": "Object type representing customer addresses."
10 |   },
11 |   "display_name": {
12 |     "de": "Kundenadresse",
13 |     "default": "Customer Address",
14 |     "ja": "顧客の住所",
15 |     "it": "Indirizzo del cliente",
16 |     "fr": "Adresse du client",
17 |     "zh-CN": "客户地址",
18 |     "es": "Dirección de cliente",
19 |     "nl": "Adres van klant"
20 |   },
21 |   "last_modified": "2024-02-19T10:18:31.000Z",
22 |   "link": "https://localhost:3000/s/-/dw/data/v23_2/system_object_definitions/CustomerAddress",
23 |   "object_type": "CustomerAddress",
24 |   "queryable": false,
25 |   "read_only": false
26 | }
27 | 
```

--------------------------------------------------------------------------------
/docs/dw_campaign/PriceBookPriceDiscount.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class PriceBookPriceDiscount
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.campaign.Discount
 9 |   - dw.campaign.PriceBookPriceDiscount
10 | 
11 | ## Description
12 | 
13 | Discount representing that a product's price has been calculated from a separate sales price book other than the standard price book assigned to the site.
14 | 
15 | ## Properties
16 | 
17 | ### priceBookID
18 | 
19 | **Type:** String (Read Only)
20 | 
21 | The price book identifier.
22 | 
23 | ## Constructor Summary
24 | 
25 | ## Method Summary
26 | 
27 | ### getPriceBookID
28 | 
29 | **Signature:** `getPriceBookID() : String`
30 | 
31 | Returns the price book identifier.
32 | 
33 | ## Method Detail
34 | 
35 | ## Method Details
36 | 
37 | ### getPriceBookID
38 | 
39 | **Signature:** `getPriceBookID() : String`
40 | 
41 | **Description:** Returns the price book identifier.
42 | 
43 | **Returns:**
44 | 
45 | the price book identifier.
46 | 
47 | ---
```

--------------------------------------------------------------------------------
/jest.config.js:
--------------------------------------------------------------------------------

```javascript
 1 | export default {
 2 |   preset: 'ts-jest/presets/default-esm',
 3 |   extensionsToTreatAsEsm: ['.ts'],
 4 |   testEnvironment: 'node',
 5 |   testTimeout: process.env.CI ? 30000 : 10000, // 30s for CI, 10s for local
 6 |   roots: ['<rootDir>/src', '<rootDir>/tests'],
 7 |   testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],
 8 |   transform: {
 9 |     '^.+\\.ts$': ['ts-jest', {
10 |       useESM: true
11 |     }],
12 |   },
13 |   transformIgnorePatterns: [
14 |     'node_modules/(?!(webdav|@modelcontextprotocol)/)'
15 |   ],
16 |   moduleNameMapper: {
17 |     '^(\\.{1,2}/.*)\\.js$': '$1',
18 |     '^webdav$': '<rootDir>/tests/__mocks__/webdav.js'
19 |   },
20 |   collectCoverageFrom: [
21 |     'src/**/*.ts',
22 |     '!src/main.ts',
23 |     '!src/index.ts',
24 |   ],
25 |   coverageDirectory: 'coverage',
26 |   coverageReporters: ['text', 'lcov', 'html'],
27 | };
28 | 
```

--------------------------------------------------------------------------------
/docs/dw_util/MapEntry.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.util
 2 | 
 3 | # Class MapEntry
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.util.MapEntry
 9 | 
10 | ## Description
11 | 
12 | The class represent an entry within a Map.
13 | 
14 | ## Properties
15 | 
16 | ### key
17 | 
18 | **Type:** Object (Read Only)
19 | 
20 | The entry's key.
21 | 
22 | ### value
23 | 
24 | **Type:** Object (Read Only)
25 | 
26 | The entry's value.
27 | 
28 | ## Constructor Summary
29 | 
30 | ## Method Summary
31 | 
32 | ### getKey
33 | 
34 | **Signature:** `getKey() : Object`
35 | 
36 | Returns the entry's key.
37 | 
38 | ### getValue
39 | 
40 | **Signature:** `getValue() : Object`
41 | 
42 | Returns the entry's value.
43 | 
44 | ## Method Detail
45 | 
46 | ## Method Details
47 | 
48 | ### getKey
49 | 
50 | **Signature:** `getKey() : Object`
51 | 
52 | **Description:** Returns the entry's key.
53 | 
54 | **Returns:**
55 | 
56 | the entry's key.
57 | 
58 | ---
59 | 
60 | ### getValue
61 | 
62 | **Signature:** `getValue() : Object`
63 | 
64 | **Description:** Returns the entry's value.
65 | 
66 | **Returns:**
67 | 
68 | the entry's value.
69 | 
70 | ---
```

--------------------------------------------------------------------------------
/docs/dw_campaign/TotalFixedPriceDiscount.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class TotalFixedPriceDiscount
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.campaign.Discount
 9 |   - dw.campaign.TotalFixedPriceDiscount
10 | 
11 | ## Description
12 | 
13 | Represents a total fix price discount on a group of products in the discount plan. For example: "buy 3 products of type X for a total price of $29.99".
14 | 
15 | ## Properties
16 | 
17 | ### totalFixedPrice
18 | 
19 | **Type:** Number (Read Only)
20 | 
21 | The total fixed price amount.
22 | 
23 | ## Constructor Summary
24 | 
25 | ## Method Summary
26 | 
27 | ### getTotalFixedPrice
28 | 
29 | **Signature:** `getTotalFixedPrice() : Number`
30 | 
31 | Returns the total fixed price amount.
32 | 
33 | ## Method Detail
34 | 
35 | ## Method Details
36 | 
37 | ### getTotalFixedPrice
38 | 
39 | **Signature:** `getTotalFixedPrice() : Number`
40 | 
41 | **Description:** Returns the total fixed price amount.
42 | 
43 | **Returns:**
44 | 
45 | Total fixed price amount
46 | 
47 | ---
```

--------------------------------------------------------------------------------
/docs/dw_util/LinkedHashSet.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.util
 2 | 
 3 | # Class LinkedHashSet
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.util.Collection
 9 |   - dw.util.Set
10 |     - dw.util.LinkedHashSet
11 | 
12 | ## Description
13 | 
14 | The class LinkedHashSet implements a hash set with a guaranteed iteration order. The elements are iterated in the order they have been added to the HashSet.
15 | 
16 | ## Constructor Summary
17 | 
18 | LinkedHashSet() Constructs a new LinkHashSet.
19 | 
20 | LinkedHashSet(collection : Collection) Constructor for a new LinkedHashSet.
21 | 
22 | ## Method Summary
23 | 
24 | ### clone
25 | 
26 | **Signature:** `clone() : LinkedHashSet`
27 | 
28 | Returns a shallow copy of this set.
29 | 
30 | ## Constructor Detail
31 | 
32 | ## Method Detail
33 | 
34 | ## Method Details
35 | 
36 | ### clone
37 | 
38 | **Signature:** `clone() : LinkedHashSet`
39 | 
40 | **Description:** Returns a shallow copy of this set.
41 | 
42 | **Returns:**
43 | 
44 | a shallow copy of this set.
45 | 
46 | ---
```

--------------------------------------------------------------------------------
/docs-site/components/Typography.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | import React from 'react';
 2 | 
 3 | interface HeadingProps {
 4 |   id: string;
 5 |   children: React.ReactNode;
 6 | }
 7 | 
 8 | export const H1: React.FC<HeadingProps> = ({ id, children }) => (
 9 |   <h1 id={id} className="text-4xl font-extrabold tracking-tight text-slate-900">
10 |     {children}
11 |   </h1>
12 | );
13 | 
14 | export const PageSubtitle: React.FC<{ children: React.ReactNode }> = ({ children }) => (
15 |   <p className="mt-4 text-xl text-slate-600 !mb-10">
16 |     {children}
17 |   </p>
18 | );
19 | 
20 | export const H2: React.FC<HeadingProps> = ({ id, children }) => (
21 |   <h2 id={id} className="mt-12 mb-4 text-3xl font-bold tracking-tight text-slate-900">
22 |     {children}
23 |   </h2>
24 | );
25 | 
26 | export const H3: React.FC<HeadingProps> = ({ id, children }) => (
27 |   <h3 id={id} className="mt-8 mb-3 text-xl font-bold tracking-tight text-slate-900">
28 |     {children}
29 |   </h3>
30 | );
31 | 
```

--------------------------------------------------------------------------------
/docs-site/components/BreadcrumbSchema.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | import React from 'react';
 2 | 
 3 | interface BreadcrumbItem {
 4 |   name: string;
 5 |   url: string;
 6 | }
 7 | 
 8 | interface BreadcrumbSchemaProps {
 9 |   items: BreadcrumbItem[];
10 | }
11 | 
12 | const BreadcrumbSchema: React.FC<BreadcrumbSchemaProps> = ({ items }) => {
13 |   const baseUrl = 'https://sfcc-mcp-dev.rhino-inquisitor.com';
14 |   
15 |   const breadcrumbList = {
16 |     "@context": "https://schema.org",
17 |     "@type": "BreadcrumbList",
18 |     "itemListElement": items.map((item, index) => ({
19 |       "@type": "ListItem",
20 |       "position": index + 1,
21 |       "name": item.name,
22 |       "item": item.url.startsWith('http') ? item.url : `${baseUrl}${item.url}`
23 |     }))
24 |   };
25 | 
26 |   return (
27 |     <script 
28 |       type="application/ld+json" 
29 |       dangerouslySetInnerHTML={{ __html: JSON.stringify(breadcrumbList) }} 
30 |     />
31 |   );
32 | };
33 | 
34 | export default BreadcrumbSchema;
```

--------------------------------------------------------------------------------
/docs/dw_util/ArrayList.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.util
 2 | 
 3 | # Class ArrayList
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.util.Collection
 9 |   - dw.util.List
10 |     - dw.util.ArrayList
11 | 
12 | ## Description
13 | 
14 | The ArrayList class is a container for a list of objects.
15 | 
16 | ## Constructor Summary
17 | 
18 | ArrayList() Constructor for a new ArrayList.
19 | 
20 | ArrayList(collection : Collection) Constructor for a new ArrayList.
21 | 
22 | ArrayList(iterator : Iterator) Constructor for a new ArrayList.
23 | 
24 | ArrayList(values : Object...) Constructor for a new ArrayList.
25 | 
26 | ## Method Summary
27 | 
28 | ### clone
29 | 
30 | **Signature:** `clone() : ArrayList`
31 | 
32 | Returns a shallow copy of this array list.
33 | 
34 | ## Constructor Detail
35 | 
36 | ## Method Detail
37 | 
38 | ## Method Details
39 | 
40 | ### clone
41 | 
42 | **Signature:** `clone() : ArrayList`
43 | 
44 | **Description:** Returns a shallow copy of this array list.
45 | 
46 | **Returns:**
47 | 
48 | a shallow copy of this array list.
49 | 
50 | ---
```

--------------------------------------------------------------------------------
/docs/TopLevel/ES6Iterator.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: TopLevel
 2 | 
 3 | # Class ES6Iterator
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - ES6Iterator
 8 | 
 9 | ## Description
10 | 
11 | This isn't a built-in type. It describes the properties an object must have in order to work as an iterator since ECMAScript 2015.
12 | 
13 | ## Constructor Summary
14 | 
15 | ## Method Summary
16 | 
17 | ### next
18 | 
19 | **Signature:** `next() : Object`
20 | 
21 | Returns an iterator result object.
22 | 
23 | ## Method Detail
24 | 
25 | ## Method Details
26 | 
27 | ### next
28 | 
29 | **Signature:** `next() : Object`
30 | 
31 | **Description:** Returns an iterator result object. An iterator result object can have two properties: done and value. If done is false or undefined, then the value property contains an iterator value. The value property may not be present if the value would be undefined. After a call that returns a result where done equals true, all subsequent calls must also return done as true.
32 | 
33 | ---
```

--------------------------------------------------------------------------------
/tests/servers/sfcc-mock-server/src/routes/ocapi/oauth-handler.js:
--------------------------------------------------------------------------------

```javascript
 1 | /**
 2 |  * OAuth Handler
 3 |  * 
 4 |  * Handles OAuth2 token endpoints for OCAPI authentication.
 5 |  * Provides a clean interface for token-related operations.
 6 |  */
 7 | 
 8 | const express = require('express');
 9 | 
10 | class OAuthHandler {
11 |     constructor(authManager) {
12 |         this.authManager = authManager;
13 |         this.router = express.Router();
14 |         this.setupRoutes();
15 |     }
16 | 
17 |     setupRoutes() {
18 |         // OAuth2 token endpoints
19 |         this.router.post('/dw/oauth2/access_token', (req, res) => {
20 |             this.authManager.handleOAuthToken(req, res);
21 |         });
22 |         
23 |         this.router.post('/dwsso/oauth2/access_token', (req, res) => {
24 |             this.authManager.handleOAuthToken(req, res);
25 |         });
26 |     }
27 | 
28 |     /**
29 |      * Get the configured router
30 |      */
31 |     getRouter() {
32 |         return this.router;
33 |     }
34 | }
35 | 
36 | module.exports = OAuthHandler;
```

--------------------------------------------------------------------------------
/docs/dw_campaign/CampaignStatusCodes.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class CampaignStatusCodes
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.campaign.CampaignStatusCodes
 9 | 
10 | ## Description
11 | 
12 | Deprecated. Formerly used to contain the various statuses that a coupon may be in.
13 | 
14 | ## Constants
15 | 
16 | ### COUPON_ALREADY_APPLIED
17 | 
18 | **Type:** String = "COUPON_ALREADY_APPLIED"
19 | 
20 | Indicates that the coupon has already been applied to the basket.
21 | 
22 | ### COUPON_ALREADY_REDEEMED
23 | 
24 | **Type:** String = "COUPON_ALREADY_REDEEMED"
25 | 
26 | Indicates that the coupon has already been redeemed.
27 | 
28 | ### COUPON_NOT_REDEEMABLE
29 | 
30 | **Type:** String = "COUPON_NOT_REDEEMABLE"
31 | 
32 | Indicates that the coupon is not currently redeemable.
33 | 
34 | ### COUPON_UNKNOWN
35 | 
36 | **Type:** String = "COUPON_UNKNOWN"
37 | 
38 | Indicates that the coupon code is not valid.
39 | 
40 | ## Properties
41 | 
42 | ## Constructor Summary
43 | 
44 | CampaignStatusCodes()
45 | 
46 | ## Method Summary
47 | 
48 | ## Constructor Detail
```

--------------------------------------------------------------------------------
/docs/dw_system/InternalObject.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.system
 2 | 
 3 | # Class InternalObject
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.system.InternalObject
 9 | 
10 | ## Description
11 | 
12 | Class used to wrap internal objects to hide them from B2C Commerce Script code.
13 | 
14 | ## Constructor Summary
15 | 
16 | ## Method Summary
17 | 
18 | ### toString
19 | 
20 | **Signature:** `toString() : String`
21 | 
22 | Returns a string representation of this object.
23 | 
24 | ### valueOf
25 | 
26 | **Signature:** `valueOf() : String`
27 | 
28 | Returns a string representation of this object.
29 | 
30 | ## Method Detail
31 | 
32 | ## Method Details
33 | 
34 | ### toString
35 | 
36 | **Signature:** `toString() : String`
37 | 
38 | **Description:** Returns a string representation of this object.
39 | 
40 | **Returns:**
41 | 
42 | a string representation of this object.
43 | 
44 | ---
45 | 
46 | ### valueOf
47 | 
48 | **Signature:** `valueOf() : String`
49 | 
50 | **Description:** Returns a string representation of this object.
51 | 
52 | **Returns:**
53 | 
54 | a string representation of this object.
55 | 
56 | ---
```

--------------------------------------------------------------------------------
/docs/dw_order/TaxItem.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.order
 2 | 
 3 | # Class TaxItem
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.order.TaxItem
 9 | 
10 | ## Description
11 | 
12 | An item containing tax information allowing a tax breakdown between a number of TaxGroups.
13 | 
14 | ## Properties
15 | 
16 | ### amount
17 | 
18 | **Type:** Money (Read Only)
19 | 
20 | Gets the amount.
21 | 
22 | ### taxGroup
23 | 
24 | **Type:** TaxGroup (Read Only)
25 | 
26 | The tax group.
27 | 
28 | ## Constructor Summary
29 | 
30 | ## Method Summary
31 | 
32 | ### getAmount
33 | 
34 | **Signature:** `getAmount() : Money`
35 | 
36 | Gets the amount.
37 | 
38 | ### getTaxGroup
39 | 
40 | **Signature:** `getTaxGroup() : TaxGroup`
41 | 
42 | Returns the tax group.
43 | 
44 | ## Method Detail
45 | 
46 | ## Method Details
47 | 
48 | ### getAmount
49 | 
50 | **Signature:** `getAmount() : Money`
51 | 
52 | **Description:** Gets the amount.
53 | 
54 | **Returns:**
55 | 
56 | the amount
57 | 
58 | ---
59 | 
60 | ### getTaxGroup
61 | 
62 | **Signature:** `getTaxGroup() : TaxGroup`
63 | 
64 | **Description:** Returns the tax group.
65 | 
66 | **Returns:**
67 | 
68 | the tax rate
69 | 
70 | **See Also:**
71 | 
72 | TaxGroup
73 | 
74 | ---
```

--------------------------------------------------------------------------------
/docs/dw_crypto/CertificateRef.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.crypto
 2 | 
 3 | # Class CertificateRef
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.crypto.CertificateRef
 9 | 
10 | ## Description
11 | 
12 | This class is used as a reference to a certificate or public key. Note: this class handles sensitive security-related data. Pay special attention to PCI DSS v3. requirements 2, 4, and 12.
13 | 
14 | ## Constructor Summary
15 | 
16 | CertificateRef(alias : String) Creates a CertificateRef from the passed alias as a reference to a certificate in Business Manager.
17 | 
18 | ## Method Summary
19 | 
20 | ### toString
21 | 
22 | **Signature:** `toString() : String`
23 | 
24 | Returns the string representation of this CertificateRef.
25 | 
26 | ## Constructor Detail
27 | 
28 | ## Method Detail
29 | 
30 | ## Method Details
31 | 
32 | ### toString
33 | 
34 | **Signature:** `toString() : String`
35 | 
36 | **Description:** Returns the string representation of this CertificateRef.
37 | 
38 | **Returns:**
39 | 
40 | The string representation of this CertificateRef.
41 | 
42 | ---
```

--------------------------------------------------------------------------------
/docs/dw_campaign/PercentageOptionDiscount.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class PercentageOptionDiscount
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.campaign.Discount
 9 |   - dw.campaign.PercentageOptionDiscount
10 | 
11 | ## Description
12 | 
13 | Represents a percentage-off options discount in the discount plan, for example "50% off monogramming on shirts".
14 | 
15 | ## Properties
16 | 
17 | ### percentage
18 | 
19 | **Type:** Number (Read Only)
20 | 
21 | The percentage discount value, for example 10.00 for a "10% off"
22 |  discount.
23 | 
24 | ## Constructor Summary
25 | 
26 | ## Method Summary
27 | 
28 | ### getPercentage
29 | 
30 | **Signature:** `getPercentage() : Number`
31 | 
32 | Returns the percentage discount value, for example 10.00 for a "10% off" discount.
33 | 
34 | ## Method Detail
35 | 
36 | ## Method Details
37 | 
38 | ### getPercentage
39 | 
40 | **Signature:** `getPercentage() : Number`
41 | 
42 | **Description:** Returns the percentage discount value, for example 10.00 for a "10% off" discount.
43 | 
44 | **Returns:**
45 | 
46 | Discount percentage value
47 | 
48 | ---
```

--------------------------------------------------------------------------------
/docs/dw_suggest/SuggestedContent.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.suggest
 2 | 
 3 | # Class SuggestedContent
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.suggest.SuggestedContent
 9 | 
10 | ## Description
11 | 
12 | This class represents a suggested content page. Use getContent() method to get access to the actual Content object.
13 | 
14 | ## Properties
15 | 
16 | ### content
17 | 
18 | **Type:** Content (Read Only)
19 | 
20 | This method returns the actual Content object corresponding to this suggested content.
21 | 
22 | ## Constructor Summary
23 | 
24 | ## Method Summary
25 | 
26 | ### getContent
27 | 
28 | **Signature:** `getContent() : Content`
29 | 
30 | This method returns the actual Content object corresponding to this suggested content.
31 | 
32 | ## Method Detail
33 | 
34 | ## Method Details
35 | 
36 | ### getContent
37 | 
38 | **Signature:** `getContent() : Content`
39 | 
40 | **Description:** This method returns the actual Content object corresponding to this suggested content.
41 | 
42 | **Returns:**
43 | 
44 | the content object corresponding to this suggested content
45 | 
46 | ---
```

--------------------------------------------------------------------------------
/docs/dw_campaign/AmountDiscount.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class AmountDiscount
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.campaign.Discount
 9 |   - dw.campaign.AmountDiscount
10 | 
11 | ## Description
12 | 
13 | Represents an amount-off discount in the discount plan, for example "$10 off all orders $100 or more".
14 | 
15 | ## Properties
16 | 
17 | ### amount
18 | 
19 | **Type:** Number (Read Only)
20 | 
21 | The discount amount, for example 10.00 for a "$10 off" discount.
22 | 
23 | ## Constructor Summary
24 | 
25 | AmountDiscount(amount : Number) Create an amount-discount on the fly.
26 | 
27 | ## Method Summary
28 | 
29 | ### getAmount
30 | 
31 | **Signature:** `getAmount() : Number`
32 | 
33 | Returns the discount amount, for example 10.00 for a "$10 off" discount.
34 | 
35 | ## Constructor Detail
36 | 
37 | ## Method Detail
38 | 
39 | ## Method Details
40 | 
41 | ### getAmount
42 | 
43 | **Signature:** `getAmount() : Number`
44 | 
45 | **Description:** Returns the discount amount, for example 10.00 for a "$10 off" discount.
46 | 
47 | **Returns:**
48 | 
49 | Discount amount
50 | 
51 | ---
```

--------------------------------------------------------------------------------
/docs/dw_content/ContentSearchRefinementDefinition.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.content
 2 | 
 3 | # Class ContentSearchRefinementDefinition
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.object.PersistentObject
 9 |   - dw.object.ExtensibleObject
10 |     - dw.catalog.SearchRefinementDefinition
11 |       - dw.content.ContentSearchRefinementDefinition
12 | 
13 | ## Description
14 | 
15 | This class provides an interface to refinement options for content search.
16 | 
17 | ## Properties
18 | 
19 | ### folderRefinement
20 | 
21 | **Type:** boolean (Read Only)
22 | 
23 | Identifies if this is a folder refinement.
24 | 
25 | ## Constructor Summary
26 | 
27 | ## Method Summary
28 | 
29 | ### isFolderRefinement
30 | 
31 | **Signature:** `isFolderRefinement() : boolean`
32 | 
33 | Identifies if this is a folder refinement.
34 | 
35 | ## Method Detail
36 | 
37 | ## Method Details
38 | 
39 | ### isFolderRefinement
40 | 
41 | **Signature:** `isFolderRefinement() : boolean`
42 | 
43 | **Description:** Identifies if this is a folder refinement.
44 | 
45 | **Returns:**
46 | 
47 | true if this is a category refinement, false otherwise.
48 | 
49 | ---
```

--------------------------------------------------------------------------------
/docs/dw_web/Cookies.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.web
 2 | 
 3 | # Class Cookies
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.web.Cookies
 9 | 
10 | ## Description
11 | 
12 | The class provides an index and associative array like access to the Cookies of the current request. Cookies can be retrieved by calling dw.system.Request.getHttpCookies(). Note: this class allows access to sensitive security-related data. Pay special attention to PCI DSS v3. requirements 2, 4, and 12. See Request.getHttpCookies().
13 | 
14 | ## Properties
15 | 
16 | ### cookieCount
17 | 
18 | **Type:** Number (Read Only)
19 | 
20 | The number of known cookies.
21 | 
22 | ## Constructor Summary
23 | 
24 | ## Method Summary
25 | 
26 | ### getCookieCount
27 | 
28 | **Signature:** `getCookieCount() : Number`
29 | 
30 | Returns the number of known cookies.
31 | 
32 | ## Method Detail
33 | 
34 | ## Method Details
35 | 
36 | ### getCookieCount
37 | 
38 | **Signature:** `getCookieCount() : Number`
39 | 
40 | **Description:** Returns the number of known cookies.
41 | 
42 | **Returns:**
43 | 
44 | the number of cookies
45 | 
46 | ---
```

--------------------------------------------------------------------------------
/docs/dw_crypto/KeyRef.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.crypto
 2 | 
 3 | # Class KeyRef
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.crypto.KeyRef
 9 | 
10 | ## Description
11 | 
12 | This class is used as a reference to a private key in the keystore which can be managed in the Business Manager. Note: this class handles sensitive security-related data. Pay special attention to PCI DSS v3. requirements 2, 4, and 12.
13 | 
14 | ## Constructor Summary
15 | 
16 | KeyRef(alias : String) Creates a KeyRef from the passed alias.
17 | 
18 | KeyRef(alias : String, password : String) Creates a KeyRef from the passed alias.
19 | 
20 | ## Method Summary
21 | 
22 | ### toString
23 | 
24 | **Signature:** `toString() : String`
25 | 
26 | Returns the string representation of this KeyRef.
27 | 
28 | ## Constructor Detail
29 | 
30 | ## Method Detail
31 | 
32 | ## Method Details
33 | 
34 | ### toString
35 | 
36 | **Signature:** `toString() : String`
37 | 
38 | **Description:** Returns the string representation of this KeyRef.
39 | 
40 | **Returns:**
41 | 
42 | The string representation of this KeyRef.
43 | 
44 | ---
```

--------------------------------------------------------------------------------
/docs/dw_suggest/SuggestedCategory.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.suggest
 2 | 
 3 | # Class SuggestedCategory
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.suggest.SuggestedCategory
 9 | 
10 | ## Description
11 | 
12 | This class represents a suggested catalog category. Use getCategory() method to get access to the actual Category object.
13 | 
14 | ## Properties
15 | 
16 | ### category
17 | 
18 | **Type:** Category (Read Only)
19 | 
20 | This method returns the actual Category object corresponding to this suggested category.
21 | 
22 | ## Constructor Summary
23 | 
24 | ## Method Summary
25 | 
26 | ### getCategory
27 | 
28 | **Signature:** `getCategory() : Category`
29 | 
30 | This method returns the actual Category object corresponding to this suggested category.
31 | 
32 | ## Method Detail
33 | 
34 | ## Method Details
35 | 
36 | ### getCategory
37 | 
38 | **Signature:** `getCategory() : Category`
39 | 
40 | **Description:** This method returns the actual Category object corresponding to this suggested category.
41 | 
42 | **Returns:**
43 | 
44 | the category object corresponding to this suggested category
45 | 
46 | ---
```

--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------

```typescript
 1 | #!/usr/bin/env node
 2 | 
 3 | /**
 4 |  * SFCC MCP Server - Entry Point
 5 |  *
 6 |  * This module serves as the main entry point for the SFCC (Salesforce B2C Commerce Cloud)
 7 |  * MCP server. It provides comprehensive development assistance features including log analysis,
 8 |  * debugging tools, and more. This file re-exports the main application entry point for
 9 |  * backwards compatibility and provides a clean interface for the package.
10 |  */
11 | 
12 | export { SFCCDevServer } from './core/server.js';
13 | export { SFCCLogClient } from './clients/log-client.js';
14 | export { SFCCDocumentationClient } from './clients/docs-client.js';
15 | export { OCAPIClient } from './clients/ocapi-client.js';
16 | export { TokenManager } from './clients/base/oauth-token.js';
17 | export type { SFCCConfig, LogLevel, LogFileInfo, LogSummary, OCAPIConfig, OAuthToken, OAuthTokenResponse } from './types/types.js';
18 | 
19 | // For direct execution, delegate to main.ts
20 | import './main.js';
21 | 
```

--------------------------------------------------------------------------------
/docs/dw_extensions.payments/SalesforceEpsPaymentDetails.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.extensions.payments
 2 | 
 3 | # Class SalesforceEpsPaymentDetails
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.extensions.payments.SalesforcePaymentDetails
 9 |   - dw.extensions.payments.SalesforceEpsPaymentDetails
10 | 
11 | ## Description
12 | 
13 | Details to a Salesforce Payments payment of type SalesforcePaymentMethod.TYPE_EPS. See Salesforce Payments documentation for how to gain access and configure it for use on your sites.
14 | 
15 | ## Properties
16 | 
17 | ### bank
18 | 
19 | **Type:** String (Read Only)
20 | 
21 | The bank used for the payment, or null if not known.
22 | 
23 | ## Constructor Summary
24 | 
25 | ## Method Summary
26 | 
27 | ### getBank
28 | 
29 | **Signature:** `getBank() : String`
30 | 
31 | Returns the bank used for the payment, or null if not known.
32 | 
33 | ## Method Detail
34 | 
35 | ## Method Details
36 | 
37 | ### getBank
38 | 
39 | **Signature:** `getBank() : String`
40 | 
41 | **Description:** Returns the bank used for the payment, or null if not known.
42 | 
43 | **Returns:**
44 | 
45 | bank
46 | 
47 | **See Also:**
48 | 
49 | SalesforcePaymentMethod.getBank()
50 | 
51 | ---
```

--------------------------------------------------------------------------------
/docs/dw_extensions.payments/SalesforceIdealPaymentDetails.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.extensions.payments
 2 | 
 3 | # Class SalesforceIdealPaymentDetails
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.extensions.payments.SalesforcePaymentDetails
 9 |   - dw.extensions.payments.SalesforceIdealPaymentDetails
10 | 
11 | ## Description
12 | 
13 | Details to a Salesforce Payments payment of type SalesforcePaymentMethod.TYPE_IDEAL. See Salesforce Payments documentation for how to gain access and configure it for use on your sites.
14 | 
15 | ## Properties
16 | 
17 | ### bank
18 | 
19 | **Type:** String (Read Only)
20 | 
21 | The bank used for the payment, or null if not known.
22 | 
23 | ## Constructor Summary
24 | 
25 | ## Method Summary
26 | 
27 | ### getBank
28 | 
29 | **Signature:** `getBank() : String`
30 | 
31 | Returns the bank used for the payment, or null if not known.
32 | 
33 | ## Method Detail
34 | 
35 | ## Method Details
36 | 
37 | ### getBank
38 | 
39 | **Signature:** `getBank() : String`
40 | 
41 | **Description:** Returns the bank used for the payment, or null if not known.
42 | 
43 | **Returns:**
44 | 
45 | bank
46 | 
47 | **See Also:**
48 | 
49 | SalesforcePaymentMethod.getBank()
50 | 
51 | ---
```

--------------------------------------------------------------------------------
/docs-site/components/Badge.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | import React from 'react';
 2 | 
 3 | interface BadgeProps {
 4 |   children: React.ReactNode;
 5 |   variant?: 'success' | 'warning' | 'error' | 'info' | 'default';
 6 |   size?: 'sm' | 'md';
 7 |   className?: string;
 8 | }
 9 | 
10 | const variantStyles = {
11 |   success: 'bg-green-100 text-green-800 border-green-200',
12 |   warning: 'bg-yellow-100 text-yellow-800 border-yellow-200',
13 |   error: 'bg-red-100 text-red-800 border-red-200',
14 |   info: 'bg-blue-100 text-blue-800 border-blue-200',
15 |   default: 'bg-gray-100 text-gray-800 border-gray-200'
16 | };
17 | 
18 | const sizeStyles = {
19 |   sm: 'text-xs px-2 py-1',
20 |   md: 'text-sm px-3 py-1'
21 | };
22 | 
23 | export const Badge: React.FC<BadgeProps> = ({ 
24 |   children, 
25 |   variant = 'default', 
26 |   size = 'md',
27 |   className = ''
28 | }) => {
29 |   return (
30 |     <span 
31 |       className={`inline-flex items-center font-medium rounded-full border ${variantStyles[variant]} ${sizeStyles[size]} ${className}`}
32 |     >
33 |       {children}
34 |     </span>
35 |   );
36 | };
37 | 
38 | export default Badge;
39 | 
```

--------------------------------------------------------------------------------
/docs/dw_campaign/PercentageDiscount.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class PercentageDiscount
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.campaign.Discount
 9 |   - dw.campaign.PercentageDiscount
10 | 
11 | ## Description
12 | 
13 | Represents a percentage-off discount in the discount plan, for example "10% off all T-Shirts".
14 | 
15 | ## Properties
16 | 
17 | ### percentage
18 | 
19 | **Type:** Number (Read Only)
20 | 
21 | The percentage discount value, for example 10.00 for a "10% off"
22 |  discount.
23 | 
24 | ## Constructor Summary
25 | 
26 | PercentageDiscount(percentage : Number) Create a percentage-discount on the fly.
27 | 
28 | ## Method Summary
29 | 
30 | ### getPercentage
31 | 
32 | **Signature:** `getPercentage() : Number`
33 | 
34 | Returns the percentage discount value, for example 10.00 for a "10% off" discount.
35 | 
36 | ## Constructor Detail
37 | 
38 | ## Method Detail
39 | 
40 | ## Method Details
41 | 
42 | ### getPercentage
43 | 
44 | **Signature:** `getPercentage() : Number`
45 | 
46 | **Description:** Returns the percentage discount value, for example 10.00 for a "10% off" discount.
47 | 
48 | **Returns:**
49 | 
50 | Discount percentage value
51 | 
52 | ---
```

--------------------------------------------------------------------------------
/tests/servers/sfcc-mock-server/src/middleware/cors.js:
--------------------------------------------------------------------------------

```javascript
 1 | /**
 2 |  * CORS Middleware
 3 |  * 
 4 |  * Handles Cross-Origin Resource Sharing configuration for the unified server.
 5 |  * Provides permissive CORS settings suitable for testing environments.
 6 |  */
 7 | 
 8 | const cors = require('cors');
 9 | 
10 | /**
11 |  * Create CORS middleware with appropriate settings for testing
12 |  */
13 | function createCorsMiddleware() {
14 |     return cors({
15 |         origin: '*',
16 |         methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS', 'PROPFIND'],
17 |         allowedHeaders: [
18 |             'Content-Type', 
19 |             'Authorization', 
20 |             'Depth', 
21 |             'Range',
22 |             'X-Requested-With',
23 |             'Cache-Control'
24 |         ],
25 |         exposedHeaders: [
26 |             'Content-Range', 
27 |             'Accept-Ranges',
28 |             'Content-Length',
29 |             'Last-Modified'
30 |         ],
31 |         credentials: true,
32 |         preflightContinue: false,
33 |         optionsSuccessStatus: 200
34 |     });
35 | }
36 | 
37 | module.exports = {
38 |     createCorsMiddleware
39 | };
```

--------------------------------------------------------------------------------
/docs/dw_object/SimpleExtensible.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.object
 2 | 
 3 | # Class SimpleExtensible
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.object.SimpleExtensible
 9 | 
10 | ## Description
11 | 
12 | Base class alternative to ExtensibleObject for customizable objects which do not rely on the metadata system. Unlike Extensible any custom attributes can be set on the fly and are not checked against an available list. Similar to Extensible method getCustom() is the central point to retrieve and store the objects attribute values.
13 | 
14 | ## Properties
15 | 
16 | ### custom
17 | 
18 | **Type:** CustomAttributes (Read Only)
19 | 
20 | The custom attributes for this object.
21 | 
22 | ## Constructor Summary
23 | 
24 | ## Method Summary
25 | 
26 | ### getCustom
27 | 
28 | **Signature:** `getCustom() : CustomAttributes`
29 | 
30 | Returns the custom attributes for this object.
31 | 
32 | ## Method Detail
33 | 
34 | ## Method Details
35 | 
36 | ### getCustom
37 | 
38 | **Signature:** `getCustom() : CustomAttributes`
39 | 
40 | **Description:** Returns the custom attributes for this object.
41 | 
42 | **Returns:**
43 | 
44 | the custom attributes for this object.
45 | 
46 | ---
```

--------------------------------------------------------------------------------
/docs/dw_campaign/FixedPriceDiscount.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class FixedPriceDiscount
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.campaign.Discount
 9 |   - dw.campaign.FixedPriceDiscount
10 | 
11 | ## Description
12 | 
13 | Represents a fix price discount in the discount plan, for example "Shipping only 0.99 all orders $25 or more."
14 | 
15 | ## Properties
16 | 
17 | ### fixedPrice
18 | 
19 | **Type:** Number (Read Only)
20 | 
21 | The fixed price amount, for example 0.99 for a "Shipping only $0.99"
22 |  discount.
23 | 
24 | ## Constructor Summary
25 | 
26 | FixedPriceDiscount(amount : Number) Create a fixed-price-discount on the fly.
27 | 
28 | ## Method Summary
29 | 
30 | ### getFixedPrice
31 | 
32 | **Signature:** `getFixedPrice() : Number`
33 | 
34 | Returns the fixed price amount, for example 0.99 for a "Shipping only $0.99" discount.
35 | 
36 | ## Constructor Detail
37 | 
38 | ## Method Detail
39 | 
40 | ## Method Details
41 | 
42 | ### getFixedPrice
43 | 
44 | **Signature:** `getFixedPrice() : Number`
45 | 
46 | **Description:** Returns the fixed price amount, for example 0.99 for a "Shipping only $0.99" discount.
47 | 
48 | **Returns:**
49 | 
50 | Fixed price amount
51 | 
52 | ---
```

--------------------------------------------------------------------------------
/docs/dw_campaign/BonusDiscount.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class BonusDiscount
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.campaign.Discount
 9 |   - dw.campaign.BonusDiscount
10 | 
11 | ## Description
12 | 
13 | Represents a bonus discount in the discount plan, for example "Get a free DVD with your purchase of any DVD player."
14 | 
15 | ## Properties
16 | 
17 | ### bonusProducts
18 | 
19 | **Type:** Collection (Read Only)
20 | 
21 | The bonus products associated with this discount that are in
22 |  stock, online and assigned to site catalog.
23 | 
24 | ## Constructor Summary
25 | 
26 | ## Method Summary
27 | 
28 | ### getBonusProducts
29 | 
30 | **Signature:** `getBonusProducts() : Collection`
31 | 
32 | Returns the bonus products associated with this discount that are in stock, online and assigned to site catalog.
33 | 
34 | ## Method Detail
35 | 
36 | ## Method Details
37 | 
38 | ### getBonusProducts
39 | 
40 | **Signature:** `getBonusProducts() : Collection`
41 | 
42 | **Description:** Returns the bonus products associated with this discount that are in stock, online and assigned to site catalog.
43 | 
44 | **Returns:**
45 | 
46 | Collection of bonus products
47 | 
48 | ---
```

--------------------------------------------------------------------------------
/docs-site/constants.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | import { NavGroup } from './types';
 2 | 
 3 | // Date constants for structured data
 4 | export const SITE_DATES = {
 5 |   PUBLISHED: "2025-09-13T08:00:00+00:00", // Last week
 6 |   MODIFIED: "2025-09-20T08:00:00+00:00"   // Today
 7 | } as const;
 8 | 
 9 | export const NAVIGATION_LINKS: NavGroup[] = [
10 |   {
11 |     title: 'GETTING STARTED',
12 |     items: [
13 |       { label: 'Introduction', path: '/' },
14 |       { label: 'AI Assistant Setup', path: '/ai-interfaces/' },
15 |       { label: 'Configuration Guide', path: '/configuration/' },
16 |     ],
17 |   },
18 |   {
19 |     title: 'FEATURES',
20 |     items: [
21 |       { label: 'Features Overview', path: '/features/' },
22 |       { label: 'Available Tools', path: '/tools/' },
23 |       { label: 'Examples & Use Cases', path: '/examples/' },
24 |       { label: 'Security Guidelines', path: '/security/' },
25 |     ],
26 |   },
27 |   {
28 |     title: 'DEVELOPMENT',
29 |     items: [
30 |       { label: 'Development Guide', path: '/development/' },
31 |       { label: 'Troubleshooting', path: '/troubleshooting/' },
32 |     ],
33 |   },
34 | ];
```

--------------------------------------------------------------------------------
/docs/dw_suggest/SuggestedProduct.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.suggest
 2 | 
 3 | # Class SuggestedProduct
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.suggest.SuggestedProduct
 9 | 
10 | ## Description
11 | 
12 | This class represents a suggested product. Use getProductSearchHit() method to get access to the actual ProductSearchHit object.
13 | 
14 | ## Properties
15 | 
16 | ### productSearchHit
17 | 
18 | **Type:** ProductSearchHit (Read Only)
19 | 
20 | This method returns the actual ProductSearchHit object
21 |  corresponding to this suggested product.
22 | 
23 | ## Constructor Summary
24 | 
25 | ## Method Summary
26 | 
27 | ### getProductSearchHit
28 | 
29 | **Signature:** `getProductSearchHit() : ProductSearchHit`
30 | 
31 | This method returns the actual ProductSearchHit object corresponding to this suggested product.
32 | 
33 | ## Method Detail
34 | 
35 | ## Method Details
36 | 
37 | ### getProductSearchHit
38 | 
39 | **Signature:** `getProductSearchHit() : ProductSearchHit`
40 | 
41 | **Description:** This method returns the actual ProductSearchHit object corresponding to this suggested product.
42 | 
43 | **Returns:**
44 | 
45 | the product search hit corresponding to this suggested product
46 | 
47 | ---
```

--------------------------------------------------------------------------------
/docs/dw_campaign/FixedPriceShippingDiscount.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class FixedPriceShippingDiscount
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.campaign.Discount
 9 |   - dw.campaign.FixedPriceShippingDiscount
10 | 
11 | ## Description
12 | 
13 | Represents a fixed price shipping discount in the discount plan, for example "Shipping only 0.99 for iPods."
14 | 
15 | ## Properties
16 | 
17 | ### fixedPrice
18 | 
19 | **Type:** Number (Read Only)
20 | 
21 | The fixed price amount, for example 0.99 for a "Shipping only $0.99"
22 |  discount.
23 | 
24 | ## Constructor Summary
25 | 
26 | FixedPriceShippingDiscount(amount : Number) Create a fixed-price-shipping-discount on the fly.
27 | 
28 | ## Method Summary
29 | 
30 | ### getFixedPrice
31 | 
32 | **Signature:** `getFixedPrice() : Number`
33 | 
34 | Returns the fixed price amount, for example 0.99 for a "Shipping only $0.99" discount.
35 | 
36 | ## Constructor Detail
37 | 
38 | ## Method Detail
39 | 
40 | ## Method Details
41 | 
42 | ### getFixedPrice
43 | 
44 | **Signature:** `getFixedPrice() : Number`
45 | 
46 | **Description:** Returns the fixed price amount, for example 0.99 for a "Shipping only $0.99" discount.
47 | 
48 | **Returns:**
49 | 
50 | Fixed price amount
51 | 
52 | ---
```

--------------------------------------------------------------------------------
/src/core/handlers/log-handler.ts:
--------------------------------------------------------------------------------

```typescript
 1 | import { AbstractLogToolHandler } from './abstract-log-tool-handler.js';
 2 | import { HandlerContext } from './base-handler.js';
 3 | import { GenericToolSpec } from './base-handler.js';
 4 | import { ToolArguments } from './base-handler.js';
 5 | import { LOG_TOOL_CONFIG } from '../../tool-configs/log-tool-config.js';
 6 | import { LOG_TOOL_NAMES_SET, LogToolName } from '../../utils/log-tool-constants.js';
 7 | 
 8 | /**
 9 |  * Handler for standard log tools using config-driven dispatch
10 |  * Handles log reading, searching, and analysis operations
11 |  */
12 | export class LogToolHandler extends AbstractLogToolHandler<LogToolName> {
13 |   constructor(context: HandlerContext, subLoggerName: string) {
14 |     super(context, subLoggerName);
15 |   }
16 | 
17 |   canHandle(toolName: string): boolean {
18 |     return LOG_TOOL_NAMES_SET.has(toolName as LogToolName);
19 |   }
20 | 
21 |   protected getToolNameSet(): Set<LogToolName> {
22 |     return LOG_TOOL_NAMES_SET;
23 |   }
24 | 
25 |   protected getToolConfig(): Record<string, GenericToolSpec<ToolArguments, any>> {
26 |     return LOG_TOOL_CONFIG;
27 |   }
28 | }
29 | 
```

--------------------------------------------------------------------------------
/docs/dw_extensions.payments/SalesforceSepaDebitPaymentDetails.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.extensions.payments
 2 | 
 3 | # Class SalesforceSepaDebitPaymentDetails
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.extensions.payments.SalesforcePaymentDetails
 9 |   - dw.extensions.payments.SalesforceSepaDebitPaymentDetails
10 | 
11 | ## Description
12 | 
13 | Details to a Salesforce Payments payment of type SalesforcePaymentMethod.TYPE_SEPA_DEBIT. See Salesforce Payments documentation for how to gain access and configure it for use on your sites.
14 | 
15 | ## Properties
16 | 
17 | ### last4
18 | 
19 | **Type:** String (Read Only)
20 | 
21 | The last 4 digits of the account number, or null if not known.
22 | 
23 | ## Constructor Summary
24 | 
25 | ## Method Summary
26 | 
27 | ### getLast4
28 | 
29 | **Signature:** `getLast4() : String`
30 | 
31 | Returns the last 4 digits of the account number, or null if not known.
32 | 
33 | ## Method Detail
34 | 
35 | ## Method Details
36 | 
37 | ### getLast4
38 | 
39 | **Signature:** `getLast4() : String`
40 | 
41 | **Description:** Returns the last 4 digits of the account number, or null if not known.
42 | 
43 | **Returns:**
44 | 
45 | last 4 digits of the account number
46 | 
47 | **See Also:**
48 | 
49 | SalesforcePaymentMethod.getLast4()
50 | 
51 | ---
```

--------------------------------------------------------------------------------
/tests/servers/sfcc-mock-server/package.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "name": "sfcc-mock-server",
 3 |   "version": "1.0.0",
 4 |   "description": "Unified SFCC Mock Server combining WebDAV and OCAPI functionality for testing",
 5 |   "main": "server.js",
 6 |   "scripts": {
 7 |     "start": "node server.js",
 8 |     "dev": "node server.js --dev",
 9 |     "start:port": "node server.js --port 3001",
10 |     "start:custom": "node server.js --host 0.0.0.0 --port 3000 --dev",
11 |     "setup": "npm install && npm run setup:logs",
12 |     "setup:clean": "rm -rf mock-data/logs && mkdir -p mock-data/logs && echo 'Cleaned up mock logs directory.'",
13 |     "setup:logs": "npm run setup:clean && node scripts/setup-logs.js",
14 |     "test": "echo \"No tests yet\" && exit 0"
15 |   },
16 |   "dependencies": {
17 |     "express": "^4.18.2",
18 |     "cors": "^2.8.5"
19 |   },
20 |   "devDependencies": {
21 |     "@types/node": "^18.0.0"
22 |   },
23 |   "keywords": [
24 |     "sfcc",
25 |     "webdav",
26 |     "ocapi",
27 |     "mock",
28 |     "testing",
29 |     "mcp",
30 |     "salesforce",
31 |     "b2c-commerce",
32 |     "unified"
33 |   ],
34 |   "author": "SFCC Dev MCP",
35 |   "license": "MIT",
36 |   "engines": {
37 |     "node": ">=16.0.0"
38 |   }
39 | }
```

--------------------------------------------------------------------------------
/docs/dw_system/PipelineDictionary.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.system
 2 | 
 3 | # Class PipelineDictionary
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.system.PipelineDictionary
 9 | 
10 | ## Description
11 | 
12 | The class provides access to the values in the pipeline dictionary. You use dynamic properties to access values, such as pdict.myvalue or pdict['myvalue']; The class is used in two different contexts, one where access is limited to the declared input/output values and second to a context with full access. Inside scripts, the PipelineDictionary allows you to access declared in/out values (regardless of the alias used in the pipeline and the actual key under which the value is stored). In templates and pipelines, all values can be accessed. In templates the pipeline dictionary is exposed as variable pdict (e.g. ${pdict.Product.ID}). There are several values that are automatically stored in the PipelineDictionary with each request. These include but are not limited to: CurrentSession CurrentRequest CurrentHttpParameterMap CurrentForms CurrentCustomer etc.
13 | 
14 | ## Constructor Summary
15 | 
16 | ## Method Summary
```

--------------------------------------------------------------------------------
/docs/TopLevel/Iterator.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: TopLevel
 2 | 
 3 | # Class Iterator
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - Iterator
 9 | 
10 | ## Description
11 | 
12 | An Iterator is a special object that lets you access items from a collection one at a time, while keeping track of its current position within that sequence.
13 | 
14 | ## Constructor Summary
15 | 
16 | Iterator(object : Object) Creates an Iterator instance for the specified object.
17 | 
18 | Iterator(object : Object, keysOnly : boolean) Creates an Iterator instance for the specified object's keys.
19 | 
20 | ## Method Summary
21 | 
22 | ### next
23 | 
24 | **Signature:** `next() : Object`
25 | 
26 | Returns the next item in the iterator.
27 | 
28 | ## Constructor Detail
29 | 
30 | ## Method Detail
31 | 
32 | ## Method Details
33 | 
34 | ### next
35 | 
36 | **Signature:** `next() : Object`
37 | 
38 | **Description:** Returns the next item in the iterator. If there are no items left, the StopIteration exception is thrown. You should generally use this method in the context of a try...catch block to handle the StopIteration case. There is no guaranteed ordering of the data.
39 | 
40 | **Returns:**
41 | 
42 | the next item in the iterator.
43 | 
44 | **See Also:**
45 | 
46 | StopIteration
47 | 
48 | ---
```

--------------------------------------------------------------------------------
/docs/dw_object/CustomObject.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.object
 2 | 
 3 | # Class CustomObject
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.object.PersistentObject
 9 |   - dw.object.ExtensibleObject
10 |     - dw.object.CustomObject
11 | 
12 | ## Description
13 | 
14 | Represents a custom object and its corresponding attributes.
15 | 
16 | ## Properties
17 | 
18 | ### custom
19 | 
20 | **Type:** CustomAttributes (Read Only)
21 | 
22 | The custom attributes of this
23 |  object.
24 | 
25 | ### type
26 | 
27 | **Type:** String (Read Only)
28 | 
29 | The type of the CustomObject.
30 | 
31 | ## Constructor Summary
32 | 
33 | ## Method Summary
34 | 
35 | ### getCustom
36 | 
37 | **Signature:** `getCustom() : CustomAttributes`
38 | 
39 | Returns the custom attributes of this object.
40 | 
41 | ### getType
42 | 
43 | **Signature:** `getType() : String`
44 | 
45 | Returns the type of the CustomObject.
46 | 
47 | ## Method Detail
48 | 
49 | ## Method Details
50 | 
51 | ### getCustom
52 | 
53 | **Signature:** `getCustom() : CustomAttributes`
54 | 
55 | **Description:** Returns the custom attributes of this object.
56 | 
57 | **Returns:**
58 | 
59 | the custom attributes of this object.
60 | 
61 | ---
62 | 
63 | ### getType
64 | 
65 | **Signature:** `getType() : String`
66 | 
67 | **Description:** Returns the type of the CustomObject.
68 | 
69 | **Returns:**
70 | 
71 | the type of the CustomObject.
72 | 
73 | ---
```

--------------------------------------------------------------------------------
/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-order.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "_v": "23.2",
 3 |   "_type": "object_attribute_group_search_result",
 4 |   "count": 3,
 5 |   "hits": [
 6 |     {
 7 |       "_type": "object_attribute_group",
 8 |       "_resource_state": "256cec6da337c7b993ba0de0994a172eb411c100943c06b8d5656c915f1e2062",
 9 |       "id": "adyen",
10 |       "link": "https://localhost:3000/s/-/dw/data/v23_2/system_object_definitions/Order/attribute_groups/adyen"
11 |     },
12 |     {
13 |       "_type": "object_attribute_group",
14 |       "_resource_state": "6c7374d3c12695b8144a566072c295a002e671b23c240a45ebb7e72d65310847",
15 |       "id": "ccv",
16 |       "link": "https://localhost:3000/s/-/dw/data/v23_2/system_object_definitions/Order/attribute_groups/ccv"
17 |     },
18 |     {
19 |       "_type": "object_attribute_group",
20 |       "_resource_state": "27a8a78cd8e1d604af912bce266d1c55d9ceae76513f18a221b2d27451ef6657",
21 |       "id": "tracking",
22 |       "link": "https://localhost:3000/s/-/dw/data/v23_2/system_object_definitions/Order/attribute_groups/tracking"
23 |     }
24 |   ],
25 |   "query": {
26 |     "match_all_query": {
27 |       "_type": "match_all_query"
28 |     }
29 |   },
30 |   "start": 0,
31 |   "total": 3
32 | }
```

--------------------------------------------------------------------------------
/docs-site/components/NextStepsStrip.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | import React from 'react';
 2 | import { H3 } from './Typography';
 3 | 
 4 | export const NextStepsStrip: React.FC = () => {
 5 |   const cards = [
 6 |     { href: '/ai-interfaces', title: '🤖 AI Interface Setup', desc: 'Connect Claude, Copilot, Cursor' },
 7 |     { href: '/tools', title: '🛠️ Tool Surface', desc: 'Explore all available tools' },
 8 |     { href: '/examples', title: '💡 Examples', desc: 'Real prompts & outcomes' },
 9 |     { href: '/troubleshooting', title: '🐛 Troubleshooting', desc: 'Diagnose common issues' }
10 |   ];
11 |   return (
12 |     <div className="grid sm:grid-cols-2 lg:grid-cols-4 gap-5 mt-4">
13 |       {cards.map(c => (
14 |         <a key={c.href} href={c.href} className="group block rounded-xl border border-gray-200 bg-white p-5 hover:border-blue-400 hover:shadow transition no-underline focus:outline-none focus:ring-2 focus:ring-blue-500">
15 |           <H3 className="text-base font-semibold mb-1 group-hover:text-blue-700">{c.title}</H3>
16 |           <p className="text-xs text-gray-600">{c.desc}</p>
17 |         </a>
18 |       ))}
19 |     </div>
20 |   );
21 | };
22 | 
23 | export default NextStepsStrip;
24 | 
```

--------------------------------------------------------------------------------
/src/core/handlers/job-log-handler.ts:
--------------------------------------------------------------------------------

```typescript
 1 | import { AbstractLogToolHandler } from './abstract-log-tool-handler.js';
 2 | import { HandlerContext } from './base-handler.js';
 3 | import { GenericToolSpec } from './base-handler.js';
 4 | import { ToolArguments } from './base-handler.js';
 5 | import { JOB_LOG_TOOL_CONFIG } from '../../tool-configs/job-log-tool-config.js';
 6 | import { JOB_LOG_TOOL_NAMES_SET, JobLogToolName } from '../../utils/log-tool-constants.js';
 7 | 
 8 | /**
 9 |  * Handler for job-specific log tools using config-driven dispatch
10 |  * Separates job log operations from standard log operations for better maintainability
11 |  */
12 | export class JobLogToolHandler extends AbstractLogToolHandler<JobLogToolName> {
13 |   constructor(context: HandlerContext, subLoggerName: string) {
14 |     super(context, subLoggerName);
15 |   }
16 | 
17 |   canHandle(toolName: string): boolean {
18 |     return JOB_LOG_TOOL_NAMES_SET.has(toolName as JobLogToolName);
19 |   }
20 | 
21 |   protected getToolNameSet(): Set<JobLogToolName> {
22 |     return JOB_LOG_TOOL_NAMES_SET;
23 |   }
24 | 
25 |   protected getToolConfig(): Record<string, GenericToolSpec<ToolArguments, any>> {
26 |     return JOB_LOG_TOOL_CONFIG;
27 |   }
28 | }
29 | 
```

--------------------------------------------------------------------------------
/docs/TopLevel/Boolean.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: TopLevel
 2 | 
 3 | # Class Boolean
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - Boolean
 9 | 
10 | ## Description
11 | 
12 | Provides support for boolean values.
13 | 
14 | ## Constructor Summary
15 | 
16 | Boolean(value : String) Constructs the Boolean using the specified String value.
17 | 
18 | Boolean(value : Number) Constructs the Boolean using the specified Number value.
19 | 
20 | ## Method Summary
21 | 
22 | ### toString
23 | 
24 | **Signature:** `toString() : String`
25 | 
26 | Returns true or false depending on the value used to create the Boolean.
27 | 
28 | ### valueOf
29 | 
30 | **Signature:** `valueOf() : Object`
31 | 
32 | Returns the primitive boolean contained in the Boolean object.
33 | 
34 | ## Constructor Detail
35 | 
36 | ## Method Detail
37 | 
38 | ## Method Details
39 | 
40 | ### toString
41 | 
42 | **Signature:** `toString() : String`
43 | 
44 | **Description:** Returns true or false depending on the value used to create the Boolean.
45 | 
46 | **Returns:**
47 | 
48 | true or false depending on the value used to create the Boolean.
49 | 
50 | ---
51 | 
52 | ### valueOf
53 | 
54 | **Signature:** `valueOf() : Object`
55 | 
56 | **Description:** Returns the primitive boolean contained in the Boolean object.
57 | 
58 | **Returns:**
59 | 
60 | the primitive boolean contained in the Boolean object.
61 | 
62 | ---
```

--------------------------------------------------------------------------------
/docs/dw_campaign/ABTest.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class ABTest
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.object.PersistentObject
 9 |   - dw.campaign.ABTest
10 | 
11 | ## Description
12 | 
13 | Object representing an AB-test in Commerce Cloud Digital. AB-tests provide the merchant the ability to compare one set of storefront "experiences" - promotions, sorting rules, and slot configurations in particular - against another set. The merchant configures different AB-test segments which define the sets of experiences that the merchant wishes to test. AB-tests run for a configured period of time, and customers are randomly assigned by the platform to the test segments according to allocation percentages defined by the merchant.
14 | 
15 | ## Properties
16 | 
17 | ### ID
18 | 
19 | **Type:** String (Read Only)
20 | 
21 | Get the test ID for this AB-test.
22 | 
23 | ## Constructor Summary
24 | 
25 | ## Method Summary
26 | 
27 | ### getID
28 | 
29 | **Signature:** `getID() : String`
30 | 
31 | Get the test ID for this AB-test.
32 | 
33 | ## Method Detail
34 | 
35 | ## Method Details
36 | 
37 | ### getID
38 | 
39 | **Signature:** `getID() : String`
40 | 
41 | **Description:** Get the test ID for this AB-test.
42 | 
43 | **Returns:**
44 | 
45 | the test ID for this AB-test.
46 | 
47 | ---
```

--------------------------------------------------------------------------------
/docs/dw_order/PaymentStatusCodes.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.order
 2 | 
 3 | # Class PaymentStatusCodes
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.order.PaymentStatusCodes
 9 | 
10 | ## Description
11 | 
12 | Helper class containing status codes for the various errors that can occur when validating a payment card. One of these codes is returned as part of a Status object when a unsuccessful call to the VerifyPaymentCard or VerifyCreditCard pipelet is made. The same codes are used when calling PaymentCard.verify(Number, Number, String) or PaymentCard.verify(Number, Number, String, String).
13 | 
14 | ## Constants
15 | 
16 | ### CREDITCARD_INVALID_CARD_NUMBER
17 | 
18 | **Type:** String = "CREDITCARD_INVALID_CARD_NUMBER"
19 | 
20 | The code indicates that the credit card number is incorrect.
21 | 
22 | ### CREDITCARD_INVALID_EXPIRATION_DATE
23 | 
24 | **Type:** String = "CREDITCARD_INVALID_EXPIRATION_DATE"
25 | 
26 | The code indicates that the credit card is expired.
27 | 
28 | ### CREDITCARD_INVALID_SECURITY_CODE
29 | 
30 | **Type:** String = "CREDITCARD_INVALID_SECURITY_CODE"
31 | 
32 | The code indicates that the credit card security code length is invalid.
33 | 
34 | ## Properties
35 | 
36 | ## Constructor Summary
37 | 
38 | PaymentStatusCodes()
39 | 
40 | ## Method Summary
41 | 
42 | ## Constructor Detail
```

--------------------------------------------------------------------------------
/docs/dw_extensions.payments/SalesforceKlarnaPaymentDetails.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.extensions.payments
 2 | 
 3 | # Class SalesforceKlarnaPaymentDetails
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.extensions.payments.SalesforcePaymentDetails
 9 |   - dw.extensions.payments.SalesforceKlarnaPaymentDetails
10 | 
11 | ## Description
12 | 
13 | Details to a Salesforce Payments payment of type SalesforcePaymentMethod.TYPE_KLARNA. See Salesforce Payments documentation for how to gain access and configure it for use on your sites.
14 | 
15 | ## Properties
16 | 
17 | ### paymentMethodCategory
18 | 
19 | **Type:** String (Read Only)
20 | 
21 | The payment method category used for the payment, or null if not known.
22 | 
23 | ## Constructor Summary
24 | 
25 | ## Method Summary
26 | 
27 | ### getPaymentMethodCategory
28 | 
29 | **Signature:** `getPaymentMethodCategory() : String`
30 | 
31 | Returns the payment method category used for the payment, or null if not known.
32 | 
33 | ## Method Detail
34 | 
35 | ## Method Details
36 | 
37 | ### getPaymentMethodCategory
38 | 
39 | **Signature:** `getPaymentMethodCategory() : String`
40 | 
41 | **Description:** Returns the payment method category used for the payment, or null if not known.
42 | 
43 | **Returns:**
44 | 
45 | payment method category
46 | 
47 | **See Also:**
48 | 
49 | SalesforcePaymentMethod.getPaymentMethodCategory()
50 | 
51 | ---
```

--------------------------------------------------------------------------------
/docs/dw_system/RESTSuccessResponse.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.system
 2 | 
 3 | # Class RESTSuccessResponse
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.system.RESTSuccessResponse
 9 | 
10 | ## Description
11 | 
12 | This class represents a REST success response that is compliant with the RFC standards. It can only be instantiated using the createSuccess methods in RESTResponseMgr. Here is an example: var body = {"hello": "world"} var success = RESTResponseMgr.createSuccess(body); success.render(); The above script would result in an HTTP response with status code 200 and the following body: { "hello": "world" }
13 | 
14 | ## Constructor Summary
15 | 
16 | ## Method Summary
17 | 
18 | ### render
19 | 
20 | **Signature:** `render() : void`
21 | 
22 | Sends the RESTSuccessResponse object as an HTTP response to the client.
23 | 
24 | ## Method Detail
25 | 
26 | ## Method Details
27 | 
28 | ### render
29 | 
30 | **Signature:** `render() : void`
31 | 
32 | **Description:** Sends the RESTSuccessResponse object as an HTTP response to the client. This sets the "Content-Type" header to "application/json" and expects the body to be a valid JavaScript JSON object.
33 | 
34 | **Throws:**
35 | 
36 | IllegalStateException - If the RESTSuccessResponse object is already rendered.
37 | Exception - If there is an error while serializing the body.
38 | 
39 | ---
```

--------------------------------------------------------------------------------
/docs/TopLevel/IOError.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: TopLevel
 2 | 
 3 | # Class IOError
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - TopLevel.Error
 9 |   - IOError
10 | 
11 | ## Description
12 | 
13 | This error indicates an I/O related error in the system. The IOError is always related to a systems internal Java exception. The class provides access to some more details about this internal Java exception.
14 | 
15 | ## Properties
16 | 
17 | ### causeFullName
18 | 
19 | **Type:** String
20 | 
21 | If the exception is associated with a root cause, the property
22 |  contains the full name of the associated Java exception.
23 | 
24 | ### causeMessage
25 | 
26 | **Type:** String
27 | 
28 | If the exception is associated with a root cause, the property
29 |  contains the message of the associated Java exception.
30 | 
31 | ### causeName
32 | 
33 | **Type:** String
34 | 
35 | If the exception is associated with a root cause, the property
36 |  contains the simplified name of the associated Java exception.
37 | 
38 | ### javaFullName
39 | 
40 | **Type:** String
41 | 
42 | The full name of the underlying Java exception.
43 | 
44 | ### javaMessage
45 | 
46 | **Type:** String
47 | 
48 | The message of the underlying Java exception.
49 | 
50 | ### javaName
51 | 
52 | **Type:** String
53 | 
54 | The simplified name of the underlying Java exception.
55 | 
56 | ## Constructor Summary
57 | 
58 | IOError()
59 | 
60 | ## Method Summary
61 | 
62 | ## Constructor Detail
```

--------------------------------------------------------------------------------
/docs/dw_suggest/SuggestedPhrase.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.suggest
 2 | 
 3 | # Class SuggestedPhrase
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.suggest.SuggestedPhrase
 9 | 
10 | ## Description
11 | 
12 | This class represents a suggested phrase. Use getPhrase() method to get access to the phrase.
13 | 
14 | ## Properties
15 | 
16 | ### exactMatch
17 | 
18 | **Type:** boolean (Read Only)
19 | 
20 | This method returns a flag signaling whether this phrase is a exact match.
21 | 
22 | ### phrase
23 | 
24 | **Type:** String (Read Only)
25 | 
26 | This method returns the actual phrase as a string value.
27 | 
28 | ## Constructor Summary
29 | 
30 | ## Method Summary
31 | 
32 | ### getPhrase
33 | 
34 | **Signature:** `getPhrase() : String`
35 | 
36 | This method returns the actual phrase as a string value.
37 | 
38 | ### isExactMatch
39 | 
40 | **Signature:** `isExactMatch() : boolean`
41 | 
42 | This method returns a flag signaling whether this phrase is a exact match.
43 | 
44 | ## Method Detail
45 | 
46 | ## Method Details
47 | 
48 | ### getPhrase
49 | 
50 | **Signature:** `getPhrase() : String`
51 | 
52 | **Description:** This method returns the actual phrase as a string value.
53 | 
54 | **Returns:**
55 | 
56 | the phrase
57 | 
58 | ---
59 | 
60 | ### isExactMatch
61 | 
62 | **Signature:** `isExactMatch() : boolean`
63 | 
64 | **Description:** This method returns a flag signaling whether this phrase is a exact match.
65 | 
66 | **Returns:**
67 | 
68 | true if this phrase is a exact match, false otherwise
69 | 
70 | ---
```

--------------------------------------------------------------------------------
/docs/dw_web/URLRedirect.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.web
 2 | 
 3 | # Class URLRedirect
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.web.URLRedirect
 9 | 
10 | ## Description
11 | 
12 | Represents a URLRedirect in Commerce Cloud Digital.
13 | 
14 | ## Properties
15 | 
16 | ### location
17 | 
18 | **Type:** String (Read Only)
19 | 
20 | The URL which was calculated to be the redirect URL.
21 |  The Location parameter can be directly used as value for an redirect location.
22 | 
23 | ### status
24 | 
25 | **Type:** Number (Read Only)
26 | 
27 | The corresponding status code for the redirect location.
28 | 
29 | ## Constructor Summary
30 | 
31 | ## Method Summary
32 | 
33 | ### getLocation
34 | 
35 | **Signature:** `getLocation() : String`
36 | 
37 | Returns the URL which was calculated to be the redirect URL.
38 | 
39 | ### getStatus
40 | 
41 | **Signature:** `getStatus() : Number`
42 | 
43 | Returns the corresponding status code for the redirect location.
44 | 
45 | ## Method Detail
46 | 
47 | ## Method Details
48 | 
49 | ### getLocation
50 | 
51 | **Signature:** `getLocation() : String`
52 | 
53 | **Description:** Returns the URL which was calculated to be the redirect URL. The Location parameter can be directly used as value for an redirect location.
54 | 
55 | **Returns:**
56 | 
57 | redirect location
58 | 
59 | ---
60 | 
61 | ### getStatus
62 | 
63 | **Signature:** `getStatus() : Number`
64 | 
65 | **Description:** Returns the corresponding status code for the redirect location.
66 | 
67 | **Returns:**
68 | 
69 | status code
70 | 
71 | ---
```

--------------------------------------------------------------------------------
/docs/dw_io/CSVStreamWriter.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.io
 2 | 
 3 | # Class CSVStreamWriter
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.io.CSVStreamWriter
 9 | 
10 | ## Description
11 | 
12 | The class writes a CSV file. Note: when this class is used with sensitive data, be careful in persisting sensitive information to disk.
13 | 
14 | ## Constructor Summary
15 | 
16 | CSVStreamWriter(writer : Writer) Create a new CSVStreamWriter with a ',' as separator and '"' as quote character.
17 | 
18 | CSVStreamWriter(writer : Writer, separator : String) Create a new CSVStreamWriter with the specified separator and '"' as quote character.
19 | 
20 | CSVStreamWriter(writer : Writer, separator : String, quote : String) Create a new CSVStreamWriter with the specified separator and the specified quote character.
21 | 
22 | ## Method Summary
23 | 
24 | ### close
25 | 
26 | **Signature:** `close() : void`
27 | 
28 | Closes the underlying writer.
29 | 
30 | ### writeNext
31 | 
32 | **Signature:** `writeNext(line : String...) : void`
33 | 
34 | Write a single line to the CSV file.
35 | 
36 | ## Constructor Detail
37 | 
38 | ## Method Detail
39 | 
40 | ## Method Details
41 | 
42 | ### close
43 | 
44 | **Signature:** `close() : void`
45 | 
46 | **Description:** Closes the underlying writer.
47 | 
48 | ---
49 | 
50 | ### writeNext
51 | 
52 | **Signature:** `writeNext(line : String...) : void`
53 | 
54 | **Description:** Write a single line to the CSV file.
55 | 
56 | **Parameters:**
57 | 
58 | - `line`: an array of strings.
59 | 
60 | ---
```

--------------------------------------------------------------------------------
/docs-site/package.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "name": "sfcc-dev-mcp-docs",
 3 |   "private": true,
 4 |   "version": "0.0.0",
 5 |   "type": "module",
 6 |   "scripts": {
 7 |     "dev": "npm run build:css && vite-react-ssg dev",
 8 |     "build": "npm run build:css && npm run generate:search-index && npm run generate:sitemap && vite-react-ssg build",
 9 |     "preview": "vite preview",
10 |     "build:css": "tailwindcss -i ./src/styles/input.css -o ./public/index.css",
11 |     "build:css:watch": "tailwindcss -i ./src/styles/input.css -o ./public/index.css --watch",
12 |     "generate:search-index": "node scripts/generate-search-index.js",
13 |     "generate:sitemap": "node scripts/generate-sitemap.js",
14 |     "search-dev": "node scripts/search-dev.js",
15 |     "search:generate": "node scripts/search-dev.js generate",
16 |     "search:validate": "node scripts/search-dev.js validate"
17 |   },
18 |   "dependencies": {
19 |     "@tailwindcss/typography": "^0.5.16",
20 |     "@types/prismjs": "^1.26.5",
21 |     "prismjs": "^1.30.0",
22 |     "react": "^19.1.1",
23 |     "react-dom": "^19.1.1",
24 |     "react-router-dom": "^6.30.1"
25 |   },
26 |   "devDependencies": {
27 |     "@types/node": "^22.14.0",
28 |     "autoprefixer": "^10.4.20",
29 |     "postcss": "^8.4.49",
30 |     "tailwindcss": "^3.4.17",
31 |     "typescript": "~5.8.2",
32 |     "vite": "^6.2.0",
33 |      "vite-react-ssg": "^0.8.9"
34 |   }
35 | }
36 | 
```

--------------------------------------------------------------------------------
/docs/TopLevel/SystemError.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: TopLevel
 2 | 
 3 | # Class SystemError
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - TopLevel.Error
 9 |   - SystemError
10 | 
11 | ## Description
12 | 
13 | This error indicates an error in the system, which doesn't fall into any of the other error categories like for example IOError. The SystemError is always related to a systems internal Java exception. The class provides access to some more details about this internal Java exception.
14 | 
15 | ## Properties
16 | 
17 | ### causeFullName
18 | 
19 | **Type:** String
20 | 
21 | If the exception is associated with a root cause, the property
22 |  contains the full name of the associated Java exception.
23 | 
24 | ### causeMessage
25 | 
26 | **Type:** String
27 | 
28 | If the exception is associated with a root cause, the property
29 |  contains the message of the associated Java exception.
30 | 
31 | ### causeName
32 | 
33 | **Type:** String
34 | 
35 | If the exception is associated with a root cause, the property
36 |  contains the simplified name of the associated Java exception.
37 | 
38 | ### javaFullName
39 | 
40 | **Type:** String
41 | 
42 | The full name of the underlying Java exception.
43 | 
44 | ### javaMessage
45 | 
46 | **Type:** String
47 | 
48 | The message of the underlying Java exception.
49 | 
50 | ### javaName
51 | 
52 | **Type:** String
53 | 
54 | The simplified name of the underlying Java exception.
55 | 
56 | ## Constructor Summary
57 | 
58 | SystemError()
59 | 
60 | ## Method Summary
61 | 
62 | ## Constructor Detail
```

--------------------------------------------------------------------------------
/docs/dw_web/URLAction.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.web
 2 | 
 3 | # Class URLAction
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.web.URLAction
 9 | 
10 | ## Description
11 | 
12 | The class is needed for the URL creation within template processing. It represents a reference to a pipeline name and start node, usually used in a HREF or a FORM action. URLAction instances are usually passed to one of the methods in URLUtils in order to generate an appropriately constructed Commerce Cloud Digital URL. For example: var urlAction : URLAction = new URLAction("SimplePipeline-Start", "SampleSite"); var url : URL = URLUtils.abs(false, urlAction1); // url.toString() equals "http://" + request.httpHost + "/on/demandware.store/Sites-SampleSite-Site/default/SimplePipeline-Start"
13 | 
14 | ## Constructor Summary
15 | 
16 | URLAction(action : String) Constructs an action for the current site and locale.
17 | 
18 | URLAction(action : String, siteName : String) Constructs an action for the specified site and the current locale.
19 | 
20 | URLAction(action : String, siteName : String, locale : String) Constructs an action for the specified site and locale.
21 | 
22 | URLAction(action : String, siteName : String, locale : String, hostName : String) Constructs an URL action for the specified site, locale and hostname.
23 | 
24 | ## Method Summary
25 | 
26 | ## Constructor Detail
```

--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE/documentation.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## 📚 Documentation Update
 2 | 
 3 | ### Documentation Type
 4 | - [ ] README.md updates
 5 | - [ ] copilot-instructions.md updates
 6 | - [ ] API documentation (docs/ folder)
 7 | - [ ] Best practices guides
 8 | - [ ] Code comments/JSDoc
 9 | - [ ] Configuration examples
10 | - [ ] Troubleshooting guide
11 | 
12 | ### Changes Made
13 | <!-- Describe what documentation was updated and why -->
14 | 
15 | ### Content Updates
16 | - [ ] New sections added
17 | - [ ] Existing content revised for accuracy
18 | - [ ] Broken links fixed
19 | - [ ] Examples updated/added
20 | - [ ] Structure/organization improved
21 | - [ ] Grammar/spelling corrections
22 | - [ ] Accessibility improvements
23 | 
24 | ### Consistency Checks
25 | - [ ] README.md and copilot-instructions.md kept in sync
26 | - [ ] Tool counts accurate in both files
27 | - [ ] File structure diagrams updated
28 | - [ ] Version numbers consistent
29 | - [ ] Links and references validated
30 | 
31 | ### Target Audience
32 | - [ ] New users/first-time setup
33 | - [ ] SFCC developers using the MCP server
34 | - [ ] Contributors and maintainers
35 | - [ ] Advanced users and integrators
36 | 
37 | ### Validation
38 | - [ ] Markdown syntax validated
39 | - [ ] Links tested and functional
40 | - [ ] Code examples tested
41 | - [ ] Configuration examples verified
42 | - [ ] Screenshots/diagrams current
43 | 
44 | ### Related Issues
45 | Closes #
46 | 
47 | ---
48 | **This PR improves project documentation to enhance user experience and maintainability.**
49 | 
```

--------------------------------------------------------------------------------
/docs/dw_catalog/ProductSearchRefinementValue.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.catalog
 2 | 
 3 | # Class ProductSearchRefinementValue
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.catalog.SearchRefinementValue
 9 |   - dw.catalog.ProductSearchRefinementValue
10 | 
11 | ## Description
12 | 
13 | Represents the value of a product search refinement.
14 | 
15 | ## Properties
16 | 
17 | ### valueFrom
18 | 
19 | **Type:** Number (Read Only)
20 | 
21 | The lower bound for price refinements.  For example, 50.00
22 |  for a range of $50.00 - $99.99.
23 | 
24 | ### valueTo
25 | 
26 | **Type:** Number (Read Only)
27 | 
28 | The upper bound for price refinements.  For example, 99.99
29 |  for a range of $50.00 - $99.99.
30 | 
31 | ## Constructor Summary
32 | 
33 | ## Method Summary
34 | 
35 | ### getValueFrom
36 | 
37 | **Signature:** `getValueFrom() : Number`
38 | 
39 | Returns the lower bound for price refinements.
40 | 
41 | ### getValueTo
42 | 
43 | **Signature:** `getValueTo() : Number`
44 | 
45 | Returns the upper bound for price refinements.
46 | 
47 | ## Method Detail
48 | 
49 | ## Method Details
50 | 
51 | ### getValueFrom
52 | 
53 | **Signature:** `getValueFrom() : Number`
54 | 
55 | **Description:** Returns the lower bound for price refinements. For example, 50.00 for a range of $50.00 - $99.99.
56 | 
57 | **Returns:**
58 | 
59 | the lower bound for price refinements.
60 | 
61 | ---
62 | 
63 | ### getValueTo
64 | 
65 | **Signature:** `getValueTo() : Number`
66 | 
67 | **Description:** Returns the upper bound for price refinements. For example, 99.99 for a range of $50.00 - $99.99.
68 | 
69 | **Returns:**
70 | 
71 | the upper bound for price refinements.
72 | 
73 | ---
```

--------------------------------------------------------------------------------
/docs-site/components/Collapsible.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | import React from 'react';
 2 | 
 3 | interface CollapsibleProps {
 4 |   title: string;
 5 |   defaultOpen?: boolean;
 6 |   children: React.ReactNode;
 7 |   intent?: 'info' | 'warn' | 'danger' | 'plain';
 8 |   id?: string;
 9 |   className?: string;
10 | }
11 | 
12 | const intentStyles: Record<string,string> = {
13 |   info: 'border-blue-200 bg-blue-50',
14 |   warn: 'border-yellow-200 bg-yellow-50',
15 |   danger: 'border-red-200 bg-red-50',
16 |   plain: 'border-gray-200 bg-white'
17 | };
18 | 
19 | export const Collapsible: React.FC<CollapsibleProps> = ({ title, defaultOpen=false, children, intent='plain', id, className = '' }) => {
20 |   const [open, setOpen] = React.useState(defaultOpen);
21 |   return (
22 |     <div id={id} className={`rounded-xl border ${intentStyles[intent]} overflow-hidden ${className}`}> 
23 |       <button
24 |         onClick={() => setOpen(o=>!o)}
25 |         className="w-full flex items-center justify-between px-5 py-3 text-left text-sm font-semibold text-gray-800 focus:outline-none focus:ring-2 focus:ring-blue-500"
26 |         aria-expanded={open}
27 |       >
28 |         <span>{title}</span>
29 |         <span className="ml-4 text-gray-500">{open ? '−' : '+'}</span>
30 |       </button>
31 |       {open && (
32 |         <div className="px-5 pb-5 pt-1 text-sm text-gray-700 space-y-4 animate-fade-in">
33 |           {children}
34 |         </div>
35 |       )}
36 |     </div>
37 |   );
38 | };
39 | 
40 | export default Collapsible;
41 | 
```

--------------------------------------------------------------------------------
/docs/dw_customer/CustomerContextMgr.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.customer
 2 | 
 3 | # Class CustomerContextMgr
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.customer.CustomerContextMgr
 9 | 
10 | ## Description
11 | 
12 | Provides helper methods for managing customer context, such as the Effective Time for which the customer is shopping at
13 | 
14 | ## Properties
15 | 
16 | ### effectiveTime
17 | 
18 | **Type:** Date
19 | 
20 | Get the effective time associated with the customer. By default, the effective time is null.
21 | 
22 | ## Constructor Summary
23 | 
24 | ## Method Summary
25 | 
26 | ### getEffectiveTime
27 | 
28 | **Signature:** `static getEffectiveTime() : Date`
29 | 
30 | Get the effective time associated with the customer.
31 | 
32 | ### setEffectiveTime
33 | 
34 | **Signature:** `static setEffectiveTime(effectiveTime : Date) : void`
35 | 
36 | Set the effective time for the customer.
37 | 
38 | ## Method Detail
39 | 
40 | ## Method Details
41 | 
42 | ### getEffectiveTime
43 | 
44 | **Signature:** `static getEffectiveTime() : Date`
45 | 
46 | **Description:** Get the effective time associated with the customer. By default, the effective time is null.
47 | 
48 | **Returns:**
49 | 
50 | effective time. When null is returned it means no effective time is associated with the customer
51 | 
52 | ---
53 | 
54 | ### setEffectiveTime
55 | 
56 | **Signature:** `static setEffectiveTime(effectiveTime : Date) : void`
57 | 
58 | **Description:** Set the effective time for the customer. Null is allowed to remove effective time from the customer.
59 | 
60 | **Parameters:**
61 | 
62 | - `effectiveTime`: the effective time.
63 | 
64 | ---
```

--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE/bug_fix.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## 🐛 Bug Fix
 2 | 
 3 | ### Bug Summary
 4 | <!-- Brief description of the bug being fixed -->
 5 | 
 6 | ### Root Cause Analysis
 7 | <!-- Explain what caused the bug -->
 8 | 
 9 | ### Solution Approach
10 | <!-- Describe how the fix addresses the root cause -->
11 | 
12 | ### Changes Made
13 | - [ ] Code changes in specific files
14 | - [ ] Configuration updates
15 | - [ ] Dependency updates
16 | - [ ] Test additions/modifications
17 | 
18 | ### Files Modified
19 | <!-- List the main files changed -->
20 | - 
21 | - 
22 | - 
23 | 
24 | ### Testing Strategy
25 | - [ ] Regression tests added to prevent reoccurrence
26 | - [ ] Existing tests updated if needed
27 | - [ ] Manual testing performed
28 | - [ ] Edge cases validated
29 | - [ ] Both operating modes tested (if applicable)
30 | 
31 | ### Backward Compatibility
32 | - [ ] No breaking changes
33 | - [ ] Breaking changes documented and justified
34 | - [ ] Migration guide provided (if breaking)
35 | 
36 | ### Risk Assessment
37 | - [ ] Low risk - isolated change
38 | - [ ] Medium risk - affects multiple components
39 | - [ ] High risk - core functionality changes
40 | 
41 | ### Verification Steps
42 | <!-- How to verify the fix works -->
43 | 1. 
44 | 2. 
45 | 3. 
46 | 
47 | ### Performance Impact
48 | - [ ] No performance impact
49 | - [ ] Performance improvement
50 | - [ ] Minimal performance impact (acceptable)
51 | 
52 | ### Related Issues
53 | Fixes #
54 | 
55 | ### Additional Notes
56 | <!-- Any other relevant information -->
57 | 
58 | ---
59 | **This PR resolves a bug while maintaining system stability and backward compatibility.**
60 | 
```

--------------------------------------------------------------------------------
/docs/dw_system/OrganizationPreferences.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.system
 2 | 
 3 | # Class OrganizationPreferences
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.object.PersistentObject
 9 |   - dw.object.ExtensibleObject
10 |     - dw.system.OrganizationPreferences
11 | 
12 | ## Description
13 | 
14 | OrganizationPreferences is a container for custom global (i.e. organization-level) attributes. The object corresponds with system object definition "OrganizationPreferences". It has no system attributes and exists only as a place for merchants to define custom attributes which need to be available to all of their sites. An instance is obtained by calling System.getPreferences(). Once an instance of the container is obtained, it is possible to read/write organization preference values by using the usual syntax for ExtensibleObject instances. For example: var orgPrefs : OrganizationPreferences = dw.system.System.getPreferences(); var myOrgPrefValue : String = orgPrefs.getCustom()["myOrgPref"]; Note: this class allows access to sensitive security-related data. Pay special attention to PCI DSS v3. requirements 2, 4, and 12. Commerce Cloud Digital defines many organization-level preferences, relating to locale, timezone, geolocations, etc, which can be managed within the "Global Preferences" module of the Business Manager, but these preferences are not accessible through this object.
15 | 
16 | ## Constructor Summary
17 | 
18 | ## Method Summary
```

--------------------------------------------------------------------------------
/docs/dw_extensions.payments/SalesforcePaymentDetails.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.extensions.payments
 2 | 
 3 | # Class SalesforcePaymentDetails
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.extensions.payments.SalesforcePaymentDetails
 9 | 
10 | ## Description
11 | 
12 | Base class details to a Salesforce Payments payment. See Salesforce Payments documentation for how to gain access and configure it for use on your sites. Some payment types like SalesforcePaymentMethod.TYPE_CARD contain additional details like the card brand, or the last 4 digits of the card number. Details to those payments will be of a specific subclass of this class like SalesforceCardPaymentDetails. Other payment types have no additional information so their details are represented by an object of this base type.
13 | 
14 | ## Properties
15 | 
16 | ### type
17 | 
18 | **Type:** String (Read Only)
19 | 
20 | The payment type.
21 | 
22 | ## Constructor Summary
23 | 
24 | ## Method Summary
25 | 
26 | ### getType
27 | 
28 | **Signature:** `getType() : String`
29 | 
30 | Returns the payment type.
31 | 
32 | ## Method Detail
33 | 
34 | ## Method Details
35 | 
36 | ### getType
37 | 
38 | **Signature:** `getType() : String`
39 | 
40 | **Description:** Returns the payment type.
41 | 
42 | **Returns:**
43 | 
44 | payment type
45 | 
46 | **See Also:**
47 | 
48 | SalesforcePaymentMethod.TYPE_BANCONTACT
49 | SalesforcePaymentMethod.TYPE_CARD
50 | SalesforcePaymentMethod.TYPE_EPS
51 | SalesforcePaymentMethod.TYPE_IDEAL
52 | SalesforcePaymentMethod.TYPE_KLARNA
53 | SalesforcePaymentMethod.TYPE_SEPA_DEBIT
54 | SalesforcePayPalOrder.TYPE_PAYPAL
55 | SalesforcePayPalOrder.TYPE_VENMO
56 | 
57 | ---
```

--------------------------------------------------------------------------------
/docs/dw_customer/CustomerList.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.customer
 2 | 
 3 | # Class CustomerList
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.customer.CustomerList
 9 | 
10 | ## Description
11 | 
12 | Object representing the collection of customers who are registered for a given site. In Commerce Cloud Digital, every site has exactly one assigned customer list but multiple sites may share a customer list.
13 | 
14 | ## Properties
15 | 
16 | ### description
17 | 
18 | **Type:** String (Read Only)
19 | 
20 | Get the optional description of the customer list.
21 | 
22 | ### ID
23 | 
24 | **Type:** String (Read Only)
25 | 
26 | Get the ID of the customer list.  For customer lists that were created automatically
27 |  for a given site, this is equal to the ID of the site itself.
28 | 
29 | ## Constructor Summary
30 | 
31 | ## Method Summary
32 | 
33 | ### getDescription
34 | 
35 | **Signature:** `getDescription() : String`
36 | 
37 | Get the optional description of the customer list.
38 | 
39 | ### getID
40 | 
41 | **Signature:** `getID() : String`
42 | 
43 | Get the ID of the customer list.
44 | 
45 | ## Method Detail
46 | 
47 | ## Method Details
48 | 
49 | ### getDescription
50 | 
51 | **Signature:** `getDescription() : String`
52 | 
53 | **Description:** Get the optional description of the customer list.
54 | 
55 | **Returns:**
56 | 
57 | The optional description of the list.
58 | 
59 | ---
60 | 
61 | ### getID
62 | 
63 | **Signature:** `getID() : String`
64 | 
65 | **Description:** Get the ID of the customer list. For customer lists that were created automatically for a given site, this is equal to the ID of the site itself.
66 | 
67 | **Returns:**
68 | 
69 | The ID of the customer list.
70 | 
71 | ---
```

--------------------------------------------------------------------------------
/docs/dw_customer/CustomerCDPData.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.customer
 2 | 
 3 | # Class CustomerCDPData
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.customer.CustomerCDPData
 9 | 
10 | ## Description
11 | 
12 | Represents the read-only Customer's Salesforce CDP (Customer Data Platform) data for a Customer in Commerce Cloud. Please see Salesforce CDP enablement documentation
13 | 
14 | ## Properties
15 | 
16 | ### empty
17 | 
18 | **Type:** boolean (Read Only)
19 | 
20 | Return true if the CDPData is empty (has no meaningful data)
21 | 
22 | ### segments
23 | 
24 | **Type:** String (Read Only)
25 | 
26 | An array containing the CDP segments for the customer, or an empty array if no segments found
27 | 
28 | ## Constructor Summary
29 | 
30 | ## Method Summary
31 | 
32 | ### getSegments
33 | 
34 | **Signature:** `getSegments() : String[]`
35 | 
36 | Returns an array containing the CDP segments for the customer, or an empty array if no segments found
37 | 
38 | ### isEmpty
39 | 
40 | **Signature:** `isEmpty() : boolean`
41 | 
42 | Return true if the CDPData is empty (has no meaningful data)
43 | 
44 | ## Method Detail
45 | 
46 | ## Method Details
47 | 
48 | ### getSegments
49 | 
50 | **Signature:** `getSegments() : String[]`
51 | 
52 | **Description:** Returns an array containing the CDP segments for the customer, or an empty array if no segments found
53 | 
54 | **Returns:**
55 | 
56 | a collection containing the CDP segments for the customer
57 | 
58 | ---
59 | 
60 | ### isEmpty
61 | 
62 | **Signature:** `isEmpty() : boolean`
63 | 
64 | **Description:** Return true if the CDPData is empty (has no meaningful data)
65 | 
66 | **Returns:**
67 | 
68 | true if CDPData is empty, false otherwise
69 | 
70 | ---
```

--------------------------------------------------------------------------------
/docs/dw_campaign/CouponRedemption.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class CouponRedemption
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.campaign.CouponRedemption
 9 | 
10 | ## Description
11 | 
12 | Represents a redeemed coupon.
13 | 
14 | ## Properties
15 | 
16 | ### customerEmail
17 | 
18 | **Type:** String (Read Only)
19 | 
20 | Returns email of redeeming customer.
21 | 
22 | ### orderNo
23 | 
24 | **Type:** String (Read Only)
25 | 
26 | Returns number of the order the code was redeemed with.
27 | 
28 | ### redemptionDate
29 | 
30 | **Type:** Date (Read Only)
31 | 
32 | Returns date of redemption.
33 | 
34 | ## Constructor Summary
35 | 
36 | ## Method Summary
37 | 
38 | ### getCustomerEmail
39 | 
40 | **Signature:** `getCustomerEmail() : String`
41 | 
42 | Returns email of redeeming customer.
43 | 
44 | ### getOrderNo
45 | 
46 | **Signature:** `getOrderNo() : String`
47 | 
48 | Returns number of the order the code was redeemed with.
49 | 
50 | ### getRedemptionDate
51 | 
52 | **Signature:** `getRedemptionDate() : Date`
53 | 
54 | Returns date of redemption.
55 | 
56 | ## Method Detail
57 | 
58 | ## Method Details
59 | 
60 | ### getCustomerEmail
61 | 
62 | **Signature:** `getCustomerEmail() : String`
63 | 
64 | **Description:** Returns email of redeeming customer.
65 | 
66 | **Returns:**
67 | 
68 | email of redeeming customer.
69 | 
70 | ---
71 | 
72 | ### getOrderNo
73 | 
74 | **Signature:** `getOrderNo() : String`
75 | 
76 | **Description:** Returns number of the order the code was redeemed with.
77 | 
78 | **Returns:**
79 | 
80 | number of the order the code was redeemed with.
81 | 
82 | ---
83 | 
84 | ### getRedemptionDate
85 | 
86 | **Signature:** `getRedemptionDate() : Date`
87 | 
88 | **Description:** Returns date of redemption.
89 | 
90 | **Returns:**
91 | 
92 | date of redemption.
93 | 
94 | ---
```

--------------------------------------------------------------------------------
/docs/dw_object/ObjectAttributeValueDefinition.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.object
 2 | 
 3 | # Class ObjectAttributeValueDefinition
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.object.ObjectAttributeValueDefinition
 9 | 
10 | ## Description
11 | 
12 | Represents the value definition associated with an object attribute.
13 | 
14 | ## Properties
15 | 
16 | ### displayValue
17 | 
18 | **Type:** String (Read Only)
19 | 
20 | A display name that can be used to present this value in
21 |  the user interface. For example, the value might be '1' but the display
22 |  name might be 'Order Exported'.
23 | 
24 | ### value
25 | 
26 | **Type:** Object (Read Only)
27 | 
28 | The actual value for the attribute.
29 | 
30 | ## Constructor Summary
31 | 
32 | ## Method Summary
33 | 
34 | ### getDisplayValue
35 | 
36 | **Signature:** `getDisplayValue() : String`
37 | 
38 | Returns a display name that can be used to present this value in the user interface.
39 | 
40 | ### getValue
41 | 
42 | **Signature:** `getValue() : Object`
43 | 
44 | Returns the actual value for the attribute.
45 | 
46 | ## Method Detail
47 | 
48 | ## Method Details
49 | 
50 | ### getDisplayValue
51 | 
52 | **Signature:** `getDisplayValue() : String`
53 | 
54 | **Description:** Returns a display name that can be used to present this value in the user interface. For example, the value might be '1' but the display name might be 'Order Exported'.
55 | 
56 | **Returns:**
57 | 
58 | a display name that can be used to present this value in the user interface.
59 | 
60 | ---
61 | 
62 | ### getValue
63 | 
64 | **Signature:** `getValue() : Object`
65 | 
66 | **Description:** Returns the actual value for the attribute.
67 | 
68 | **Returns:**
69 | 
70 | the actual value for the attribute.
71 | 
72 | ---
```

--------------------------------------------------------------------------------
/docs/dw_catalog/StoreGroup.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.catalog
 2 | 
 3 | # Class StoreGroup
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.object.PersistentObject
 9 |   - dw.object.ExtensibleObject
10 |     - dw.catalog.StoreGroup
11 | 
12 | ## Description
13 | 
14 | Represents a store group. Store groups can be used to group the stores for different marketing purposes.
15 | 
16 | ## Properties
17 | 
18 | ### ID
19 | 
20 | **Type:** String (Read Only)
21 | 
22 | The ID of the store group.
23 | 
24 | ### name
25 | 
26 | **Type:** String (Read Only)
27 | 
28 | The name of the store group.
29 | 
30 | ### stores
31 | 
32 | **Type:** Collection (Read Only)
33 | 
34 | All the stores that are assigned to the store group.
35 | 
36 | ## Constructor Summary
37 | 
38 | ## Method Summary
39 | 
40 | ### getID
41 | 
42 | **Signature:** `getID() : String`
43 | 
44 | Returns the ID of the store group.
45 | 
46 | ### getName
47 | 
48 | **Signature:** `getName() : String`
49 | 
50 | Returns the name of the store group.
51 | 
52 | ### getStores
53 | 
54 | **Signature:** `getStores() : Collection`
55 | 
56 | Returns all the stores that are assigned to the store group.
57 | 
58 | ## Method Detail
59 | 
60 | ## Method Details
61 | 
62 | ### getID
63 | 
64 | **Signature:** `getID() : String`
65 | 
66 | **Description:** Returns the ID of the store group.
67 | 
68 | **Returns:**
69 | 
70 | ID of the store group
71 | 
72 | ---
73 | 
74 | ### getName
75 | 
76 | **Signature:** `getName() : String`
77 | 
78 | **Description:** Returns the name of the store group.
79 | 
80 | **Returns:**
81 | 
82 | name of the store group
83 | 
84 | ---
85 | 
86 | ### getStores
87 | 
88 | **Signature:** `getStores() : Collection`
89 | 
90 | **Description:** Returns all the stores that are assigned to the store group.
91 | 
92 | **Returns:**
93 | 
94 | collection of the stores
95 | 
96 | ---
```

--------------------------------------------------------------------------------
/docs/dw_extensions.payments/SalesforceBancontactPaymentDetails.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.extensions.payments
 2 | 
 3 | # Class SalesforceBancontactPaymentDetails
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.extensions.payments.SalesforcePaymentDetails
 9 |   - dw.extensions.payments.SalesforceBancontactPaymentDetails
10 | 
11 | ## Description
12 | 
13 | Details to a Salesforce Payments payment of type SalesforcePaymentMethod.TYPE_BANCONTACT. See Salesforce Payments documentation for how to gain access and configure it for use on your sites.
14 | 
15 | ## Properties
16 | 
17 | ### bankName
18 | 
19 | **Type:** String (Read Only)
20 | 
21 | The bank name, or null if not known.
22 | 
23 | ### last4
24 | 
25 | **Type:** String (Read Only)
26 | 
27 | The last 4 digits of the account number, or null if not known.
28 | 
29 | ## Constructor Summary
30 | 
31 | ## Method Summary
32 | 
33 | ### getBankName
34 | 
35 | **Signature:** `getBankName() : String`
36 | 
37 | Returns the bank name, or null if not known.
38 | 
39 | ### getLast4
40 | 
41 | **Signature:** `getLast4() : String`
42 | 
43 | Returns the last 4 digits of the account number, or null if not known.
44 | 
45 | ## Method Detail
46 | 
47 | ## Method Details
48 | 
49 | ### getBankName
50 | 
51 | **Signature:** `getBankName() : String`
52 | 
53 | **Description:** Returns the bank name, or null if not known.
54 | 
55 | **Returns:**
56 | 
57 | bank name
58 | 
59 | **See Also:**
60 | 
61 | SalesforcePaymentMethod.getBankName()
62 | 
63 | ---
64 | 
65 | ### getLast4
66 | 
67 | **Signature:** `getLast4() : String`
68 | 
69 | **Description:** Returns the last 4 digits of the account number, or null if not known.
70 | 
71 | **Returns:**
72 | 
73 | last 4 digits of the account number
74 | 
75 | **See Also:**
76 | 
77 | SalesforcePaymentMethod.getLast4()
78 | 
79 | ---
```

--------------------------------------------------------------------------------
/docs/TopLevel/XMLStreamError.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: TopLevel
 2 | 
 3 | # Class XMLStreamError
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - TopLevel.Error
 9 |   - XMLStreamError
10 | 
11 | ## Description
12 | 
13 | This error indicates an XML streaming related error in the system. The IOError is always related to a systems internal Java exception. The class provides access to some more details about this internal Java exception. In particular the class informs about the location of the error.
14 | 
15 | ## Properties
16 | 
17 | ### causeFullName
18 | 
19 | **Type:** String
20 | 
21 | If the exception is associated with a root cause, the property
22 |  contains the full name of the associated Java exception.
23 | 
24 | ### causeMessage
25 | 
26 | **Type:** String
27 | 
28 | If the exception is associated with a root cause, the property
29 |  contains the message of the associated Java exception.
30 | 
31 | ### causeName
32 | 
33 | **Type:** String
34 | 
35 | If the exception is associated with a root cause, the property
36 |  contains the simplified name of the associated Java exception.
37 | 
38 | ### javaFullName
39 | 
40 | **Type:** String
41 | 
42 | The full name of the underlying Java exception.
43 | 
44 | ### javaMessage
45 | 
46 | **Type:** String
47 | 
48 | The message of the underlying Java exception.
49 | 
50 | ### javaName
51 | 
52 | **Type:** String
53 | 
54 | The simplified name of the underlying Java exception.
55 | 
56 | ### xmlColumnNumber
57 | 
58 | **Type:** Number
59 | 
60 | The column number where the error occured.
61 | 
62 | ### xmlLineNumber
63 | 
64 | **Type:** Number
65 | 
66 | The line where the error occured.
67 | 
68 | ## Constructor Summary
69 | 
70 | XMLStreamError()
71 | 
72 | ## Method Summary
73 | 
74 | ## Constructor Detail
```

--------------------------------------------------------------------------------
/docs/dw_object/Extensible.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.object
 2 | 
 3 | # Class Extensible
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.object.Extensible
 9 | 
10 | ## Description
11 | 
12 | Base class alternative to ExtensibleObject for objects customizable through the metadata system. Similar to ExtensibleObject: the describe() method provides access to the related object-type metadata. The getCustom() method is the central point to retrieve and store the objects attribute values themselves.
13 | 
14 | ## Properties
15 | 
16 | ### custom
17 | 
18 | **Type:** CustomAttributes (Read Only)
19 | 
20 | The custom attributes for this object.
21 | 
22 | ## Constructor Summary
23 | 
24 | ## Method Summary
25 | 
26 | ### describe
27 | 
28 | **Signature:** `describe() : ObjectTypeDefinition`
29 | 
30 | Returns the meta data of this object.
31 | 
32 | ### getCustom
33 | 
34 | **Signature:** `getCustom() : CustomAttributes`
35 | 
36 | Returns the custom attributes for this object.
37 | 
38 | ## Method Detail
39 | 
40 | ## Method Details
41 | 
42 | ### describe
43 | 
44 | **Signature:** `describe() : ObjectTypeDefinition`
45 | 
46 | **Description:** Returns the meta data of this object. If no meta data is available the method returns null. The returned ObjectTypeDefinition can be used to retrieve the metadata for any of the custom attributes.
47 | 
48 | **Returns:**
49 | 
50 | the meta data of this object. If no meta data is available the method returns null.
51 | 
52 | ---
53 | 
54 | ### getCustom
55 | 
56 | **Signature:** `getCustom() : CustomAttributes`
57 | 
58 | **Description:** Returns the custom attributes for this object.
59 | 
60 | **Returns:**
61 | 
62 | the custom attributes for this object.
63 | 
64 | ---
```

--------------------------------------------------------------------------------
/docs/dw_system/CacheMgr.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.system
 2 | 
 3 | # Class CacheMgr
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.system.CacheMgr
 9 | 
10 | ## Description
11 | 
12 | The CacheMgr class is the entry point for using custom caches. The CacheMgr can manage multiple custom caches that share one storage space. Each individual cache has a unique ID and an optional expiration time that specifies the maximum time (in seconds) an entry is stored in the cache. For registering caches inside the cartridge root folder, a 'package.json' file with a 'caches' entry must exist. The registration of caches is independent of any site context. "caches": "./caches.json" The caches entry links to a JSON file, with a path relative to the 'package.json' file. This file lists all registered caches inside the caches property: { "caches": [ { "id": "UnlimitedTestCache" }, { "id": "TestCacheWithExpiration", "expireAfterSeconds": 10 } ] }
13 | 
14 | ## Constructor Summary
15 | 
16 | ## Method Summary
17 | 
18 | ### getCache
19 | 
20 | **Signature:** `static getCache(cacheID : String) : Cache`
21 | 
22 | Returns the defined cache instance for the given ID.
23 | 
24 | ## Method Detail
25 | 
26 | ## Method Details
27 | 
28 | ### getCache
29 | 
30 | **Signature:** `static getCache(cacheID : String) : Cache`
31 | 
32 | **Description:** Returns the defined cache instance for the given ID. Throws an exception when the requested cache has not been defined in any caches.json descriptor.
33 | 
34 | **Parameters:**
35 | 
36 | - `cacheID`: The ID of the cache.
37 | 
38 | **Returns:**
39 | 
40 | The registered cache.
41 | 
42 | ---
```

--------------------------------------------------------------------------------
/docs/dw_util/DateUtils.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.util
 2 | 
 3 | # Class DateUtils
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.util.DateUtils
 9 | 
10 | ## Description
11 | 
12 | A class with several utility methods for Date objects.
13 | 
14 | ## Constructor Summary
15 | 
16 | ## Method Summary
17 | 
18 | ### nowForInstance
19 | 
20 | **Signature:** `static nowForInstance() : Date`
21 | 
22 | Returns the current time stamp in the time zone of the instance.
23 | 
24 | ### nowForSite
25 | 
26 | **Signature:** `static nowForSite() : Date`
27 | 
28 | Returns the current timestamp in the time zone of the current site.
29 | 
30 | ### nowInUTC
31 | 
32 | **Signature:** `static nowInUTC() : Date`
33 | 
34 | Returns the current time stamp in UTC.
35 | 
36 | ## Method Detail
37 | 
38 | ## Method Details
39 | 
40 | ### nowForInstance
41 | 
42 | **Signature:** `static nowForInstance() : Date`
43 | 
44 | **Description:** Returns the current time stamp in the time zone of the instance.
45 | 
46 | **Deprecated:**
47 | 
48 | Use System.getCalendar() instead.
49 | 
50 | **Returns:**
51 | 
52 | the current time stamp in the time zone of the instance.
53 | 
54 | ---
55 | 
56 | ### nowForSite
57 | 
58 | **Signature:** `static nowForSite() : Date`
59 | 
60 | **Description:** Returns the current timestamp in the time zone of the current site.
61 | 
62 | **Deprecated:**
63 | 
64 | Use Site.getCalendar() instead.
65 | 
66 | **Returns:**
67 | 
68 | the current timestamp in the time zone of the current site.
69 | 
70 | ---
71 | 
72 | ### nowInUTC
73 | 
74 | **Signature:** `static nowInUTC() : Date`
75 | 
76 | **Description:** Returns the current time stamp in UTC.
77 | 
78 | **Deprecated:**
79 | 
80 | Create a new Calendar object and set the time zone "UTC" instead.
81 | 
82 | **Returns:**
83 | 
84 | the current time stamp in UTC.
85 | 
86 | ---
```

--------------------------------------------------------------------------------
/src/clients/logs/log-types.ts:
--------------------------------------------------------------------------------

```typescript
 1 | /**
 2 |  * TypeScript interfaces and types for log operations
 3 |  */
 4 | 
 5 | export type LogLevel = 'error' | 'warn' | 'info' | 'debug';
 6 | 
 7 | export interface LogFileInfo {
 8 |   name: string;
 9 |   size: number;
10 |   lastModified: string;
11 | }
12 | 
13 | export interface LogFileMetadata {
14 |   filename: string;
15 |   lastmod: string;
16 | }
17 | 
18 | export interface LogSummary {
19 |   date: string;
20 |   errorCount: number;
21 |   warningCount: number;
22 |   infoCount: number;
23 |   debugCount: number;
24 |   keyIssues: string[];
25 |   files: string[];
26 | }
27 | 
28 | export interface LogEntry {
29 |   entry: string;
30 |   filename: string;
31 |   order: number;
32 |   timestamp?: Date; // Extracted timestamp for chronological sorting
33 | }
34 | 
35 | export interface ProcessedLogEntry {
36 |   content: string;
37 |   timestamp?: string;
38 |   level?: string;
39 |   source?: string;
40 | }
41 | 
42 | export interface LogSearchOptions {
43 |   pattern: string;
44 |   logLevel?: LogLevel;
45 |   limit: number;
46 |   date?: string;
47 | }
48 | 
49 | export interface LogFileFilter {
50 |   level?: LogLevel;
51 |   date?: string;
52 |   includeCustom?: boolean;
53 |   includeJobLogs?: boolean;
54 | }
55 | 
56 | export interface JobLogInfo {
57 |   jobName: string;
58 |   jobId: string;
59 |   logFile: string;
60 |   lastModified: string;
61 |   size?: number;
62 | }
63 | 
64 | export interface JobLogFilter {
65 |   jobName?: string;
66 |   limit?: number;
67 |   sortByRecent?: boolean;
68 | }
69 | 
70 | export interface WebDAVClientConfig {
71 |   hostname: string;
72 |   username?: string;
73 |   password?: string;
74 |   clientId?: string;
75 |   clientSecret?: string;
76 | }
77 | 
78 | export interface FileReadOptions {
79 |   maxBytes?: number;
80 | }
81 | 
```

--------------------------------------------------------------------------------
/.github/workflows/deploy-pages.yml:
--------------------------------------------------------------------------------

```yaml
 1 | name: Deploy GitHub Pages
 2 | 
 3 | on:
 4 |   push:
 5 |     branches: [ main ]
 6 |     paths:
 7 |       - 'docs-site/**'
 8 |       - '.github/workflows/deploy-pages.yml'
 9 |   pull_request:
10 |     branches: [ main ]
11 |     paths:
12 |       - 'docs-site/**'
13 |   workflow_dispatch:
14 | 
15 | permissions:
16 |   contents: read
17 |   pages: write
18 |   id-token: write
19 | 
20 | concurrency:
21 |   group: "pages"
22 |   cancel-in-progress: false
23 | 
24 | jobs:
25 |   build:
26 |     runs-on: ubuntu-latest
27 |     steps:
28 |       - name: Checkout
29 |         uses: actions/checkout@v5
30 | 
31 |       - name: Setup Node.js
32 |         uses: actions/setup-node@v5
33 |         with:
34 |           node-version: '18'
35 |           cache: 'npm'
36 |           cache-dependency-path: './docs-site/package-lock.json'
37 | 
38 |       - name: Install dependencies
39 |         working-directory: ./docs-site
40 |         run: npm ci
41 | 
42 |       - name: Clean build directory
43 |         working-directory: ./docs-site
44 |         run: rm -rf dist
45 | 
46 |       - name: Build site
47 |         working-directory: ./docs-site
48 |         run: npm run build
49 |         env:
50 |           NODE_ENV: production
51 | 
52 |       - name: Setup Pages
53 |         uses: actions/configure-pages@v5
54 | 
55 |       - name: Upload artifact
56 |         uses: actions/upload-pages-artifact@v4
57 |         with:
58 |           path: ./docs-site/dist
59 | 
60 |   deploy:
61 |     environment:
62 |       name: github-pages
63 |       url: ${{ steps.deployment.outputs.page_url }}
64 |     runs-on: ubuntu-latest
65 |     needs: build
66 |     steps:
67 |       - name: Deploy to GitHub Pages
68 |         id: deployment
69 |         uses: actions/deploy-pages@v4
70 | 
```

--------------------------------------------------------------------------------
/docs-site/components/LightCodeContainer.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | import React from 'react';
 2 | 
 3 | interface LightCodeContainerProps {
 4 |   children: React.ReactNode;
 5 |   className?: string;
 6 |   /**
 7 |    * Visual accent variant. Currently only 'blue' is used but additional
 8 |    * variants are easy to extend without editing all call sites again.
 9 |    */
10 |   variant?: 'blue' | 'green' | 'purple' | 'indigo' | 'amber' | 'gray';
11 |   /**
12 |    * If true, removes the default shadow for flatter contexts.
13 |    */
14 |   flat?: boolean;
15 | }
16 | 
17 | const VARIANT_STYLES: Record<string, { bg: string; border: string }> = {
18 |   blue: { bg: 'bg-blue-50', border: 'border-blue-100' },
19 |   green: { bg: 'bg-green-50', border: 'border-green-100' },
20 |   purple: { bg: 'bg-purple-50', border: 'border-purple-100' },
21 |   indigo: { bg: 'bg-indigo-50', border: 'border-indigo-100' },
22 |   amber: { bg: 'bg-amber-50', border: 'border-amber-100' },
23 |   gray: { bg: 'bg-gray-50', border: 'border-gray-200' }
24 | };
25 | 
26 | /**
27 |  * Standardized light accent container for wrapping code blocks (or related content)
28 |  * ensuring consistent styling across pages instead of ad-hoc duplicated class names.
29 |  */
30 | const LightCodeContainer: React.FC<LightCodeContainerProps> = ({
31 |   children,
32 |   className = '',
33 |   variant = 'blue',
34 |   flat = false
35 | }) => {
36 |   const { bg, border } = VARIANT_STYLES[variant] || VARIANT_STYLES.blue;
37 |   return (
38 |     <div className={`${bg} ${border} rounded-xl p-6 ${flat ? '' : 'shadow-md'} ${className}`.trim()}>
39 |       {children}
40 |     </div>
41 |   );
42 | };
43 | 
44 | export default LightCodeContainer;
45 | 
```

--------------------------------------------------------------------------------
/docs/dw_io/PrintWriter.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.io
 2 | 
 3 | # Class PrintWriter
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.io.Writer
 9 |   - dw.io.PrintWriter
10 | 
11 | ## Description
12 | 
13 | Template output stream writer. Printwriter is available in the template scripting context and is used to write data into the template output stream. You cannot instantiate this class directly. Instead, the system assigns the object to variable named 'out' in the script context to be used by the template scripts. Note: when this class is used with sensitive data, be careful in persisting sensitive information to disk.
14 | 
15 | ## Constructor Summary
16 | 
17 | ## Method Summary
18 | 
19 | ### print
20 | 
21 | **Signature:** `print(str : String) : void`
22 | 
23 | Prints the given string into the output stream.
24 | 
25 | ### println
26 | 
27 | **Signature:** `println(str : String) : void`
28 | 
29 | Print the given string followed by a line break into the output stream.
30 | 
31 | ### println
32 | 
33 | **Signature:** `println() : void`
34 | 
35 | Prints a line break into the output stream.
36 | 
37 | ## Method Detail
38 | 
39 | ## Method Details
40 | 
41 | ### print
42 | 
43 | **Signature:** `print(str : String) : void`
44 | 
45 | **Description:** Prints the given string into the output stream.
46 | 
47 | **Parameters:**
48 | 
49 | - `str`: the String object
50 | 
51 | ---
52 | 
53 | ### println
54 | 
55 | **Signature:** `println(str : String) : void`
56 | 
57 | **Description:** Print the given string followed by a line break into the output stream.
58 | 
59 | **Parameters:**
60 | 
61 | - `str`: the String object
62 | 
63 | ---
64 | 
65 | ### println
66 | 
67 | **Signature:** `println() : void`
68 | 
69 | **Description:** Prints a line break into the output stream.
70 | 
71 | ---
```

--------------------------------------------------------------------------------
/docs/dw_suggest/ProductSuggestions.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.suggest
 2 | 
 3 | # Class ProductSuggestions
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.suggest.Suggestions
 9 |   - dw.suggest.ProductSuggestions
10 | 
11 | ## Description
12 | 
13 | The product suggestion container provides access to products found using the suggested terms. The method getSuggestedProducts() can be used to get the list of found products. Furthermore the list of suggested terms, after processing the original user input search query, is accessible through SearchPhraseSuggestions.getSuggestedTerms() method.
14 | 
15 | ## Properties
16 | 
17 | ### suggestedProducts
18 | 
19 | **Type:** Iterator (Read Only)
20 | 
21 | This method returns a list of products which were found
22 |  using the suggested terms as search criteria.
23 |  The product lookup is being executed in the current catalog and locale.
24 | 
25 | ## Constructor Summary
26 | 
27 | ## Method Summary
28 | 
29 | ### getSuggestedProducts
30 | 
31 | **Signature:** `getSuggestedProducts() : Iterator`
32 | 
33 | This method returns a list of products which were found using the suggested terms as search criteria.
34 | 
35 | ## Method Detail
36 | 
37 | ## Method Details
38 | 
39 | ### getSuggestedProducts
40 | 
41 | **Signature:** `getSuggestedProducts() : Iterator`
42 | 
43 | **Description:** This method returns a list of products which were found using the suggested terms as search criteria. The product lookup is being executed in the current catalog and locale.
44 | 
45 | **Returns:**
46 | 
47 | a iterator containing a SuggestedProduct instance for each found product, the iterator might be empty
48 | 
49 | **See Also:**
50 | 
51 | Suggestions.hasSuggestions()
52 | 
53 | ---
```

--------------------------------------------------------------------------------
/src/utils/path-resolver.ts:
--------------------------------------------------------------------------------

```typescript
 1 | /**
 2 |  * Path Resolver Helper
 3 |  *
 4 |  * Provides utilities for resolving file and directory paths based on the current working directory.
 5 |  * This abstraction allows for easier path management and testing.
 6 |  */
 7 | 
 8 | import path from 'path';
 9 | import { fileURLToPath } from 'url';
10 | 
11 | export class PathResolver {
12 |   /**
13 |    * Get the current working directory (project root)
14 |    */
15 |   static getCurrentWorkingDir(): string {
16 |     // Get the directory of the current module file
17 |     const __filename = fileURLToPath(import.meta.url);
18 |     const __dirname = path.dirname(__filename);
19 | 
20 |     // Return the parent directory (project root)
21 |     return path.resolve(__dirname, '..');
22 |   }
23 | 
24 |   /**
25 |    * Get a path relative to the current working directory
26 |    */
27 |   static getRelativePath(...pathSegments: string[]): string {
28 |     const currentDir = this.getCurrentWorkingDir();
29 | 
30 |     return path.join(currentDir, ...pathSegments);
31 |   }
32 | 
33 |   /**
34 |    * Get the docs directory path relative to the current working directory
35 |    */
36 |   static getDocsPath(): string {
37 |     return this.getRelativePath('docs');
38 |   }
39 | 
40 |   /**
41 |    * Get the best practices docs directory path relative to the current working directory
42 |    */
43 |   static getBestPracticesPath(): string {
44 |     return this.getRelativePath('docs', 'best-practices');
45 |   }
46 | 
47 |   /**
48 |    * Get the SFRA docs directory path relative to the current working directory
49 |    */
50 |   static getSFRADocsPath(): string {
51 |     return this.getRelativePath('docs', 'sfra');
52 |   }
53 | }
54 | 
```

--------------------------------------------------------------------------------
/docs/dw_web/Form.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.web
 2 | 
 3 | # Class Form
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.web.FormElement
 9 |   - dw.web.FormGroup
10 |     - dw.web.Form
11 | 
12 | ## Description
13 | 
14 | The class is the top level element in the form instance hierachy.
15 | 
16 | ## Properties
17 | 
18 | ### secureKeyHtmlName
19 | 
20 | **Type:** String (Read Only)
21 | 
22 | The secure key html name to be used for the hidden input field
23 |  that will contain the secure key value.
24 | 
25 | ### secureKeyValue
26 | 
27 | **Type:** String (Read Only)
28 | 
29 | The secure key value that is generated for the form to use
30 |  in a hidden input field for authentication.
31 | 
32 | ## Constructor Summary
33 | 
34 | ## Method Summary
35 | 
36 | ### getSecureKeyHtmlName
37 | 
38 | **Signature:** `getSecureKeyHtmlName() : String`
39 | 
40 | Returns the secure key html name to be used for the hidden input field that will contain the secure key value.
41 | 
42 | ### getSecureKeyValue
43 | 
44 | **Signature:** `getSecureKeyValue() : String`
45 | 
46 | Returns the secure key value that is generated for the form to use in a hidden input field for authentication.
47 | 
48 | ## Method Detail
49 | 
50 | ## Method Details
51 | 
52 | ### getSecureKeyHtmlName
53 | 
54 | **Signature:** `getSecureKeyHtmlName() : String`
55 | 
56 | **Description:** Returns the secure key html name to be used for the hidden input field that will contain the secure key value.
57 | 
58 | **Returns:**
59 | 
60 | the secure key html name
61 | 
62 | ---
63 | 
64 | ### getSecureKeyValue
65 | 
66 | **Signature:** `getSecureKeyValue() : String`
67 | 
68 | **Description:** Returns the secure key value that is generated for the form to use in a hidden input field for authentication.
69 | 
70 | **Returns:**
71 | 
72 | the secure key value
73 | 
74 | ---
```

--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------

```yaml
 1 | version: 2
 2 | updates:
 3 |   # Enable version updates for npm
 4 |   - package-ecosystem: "npm"
 5 |     directory: "/"
 6 |     schedule:
 7 |       interval: "weekly"
 8 |       day: "monday"
 9 |       time: "06:00"
10 |     open-pull-requests-limit: 10
11 |     reviewers:
12 |       - "taurgis"
13 |     assignees:
14 |       - "taurgis"
15 |     commit-message:
16 |       prefix: "deps"
17 |       include: "scope"
18 |     labels:
19 |       - "dependencies"
20 |       - "automated"
21 |     # Group updates for better PR management
22 |     groups:
23 |       eslint:
24 |         patterns:
25 |           - "eslint*"
26 |           - "@eslint/*"
27 |           - "typescript-eslint"
28 |       jest:
29 |         patterns:
30 |           - "jest*"
31 |           - "@types/jest"
32 |           - "ts-jest"
33 |       types:
34 |         patterns:
35 |           - "@types/*"
36 |       mcp:
37 |         patterns:
38 |           - "@modelcontextprotocol/*"
39 |     # Allow both direct and indirect updates
40 |     allow:
41 |       - dependency-type: "direct"
42 |       - dependency-type: "indirect"
43 |     # Ignore specific packages if needed (uncomment and modify as necessary)
44 |     # ignore:
45 |     #   - dependency-name: "package-name"
46 |     #     versions: ["1.x", "2.x"]
47 | 
48 |   # Enable version updates for GitHub Actions
49 |   - package-ecosystem: "github-actions"
50 |     directory: "/"
51 |     schedule:
52 |       interval: "weekly"
53 |       day: "monday"
54 |       time: "06:00"
55 |     open-pull-requests-limit: 5
56 |     reviewers:
57 |       - "taurgis"
58 |     assignees:
59 |       - "taurgis"
60 |     commit-message:
61 |       prefix: "ci"
62 |       include: "scope"
63 |     labels:
64 |       - "github-actions"
65 |       - "automated"
66 | 
```

--------------------------------------------------------------------------------
/docs/dw_campaign/SourceCodeGroup.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: dw.campaign
 2 | 
 3 | # Class SourceCodeGroup
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - dw.object.PersistentObject
 9 |   - dw.object.ExtensibleObject
10 |     - dw.campaign.SourceCodeGroup
11 | 
12 | ## Description
13 | 
14 | A source code group defines a collection of source codes. Source code groups are generally pattern based and any source code satisfying the pattern belongs to the group. In this way, merchants may define a large set of source codes which qualify a customer for site experiences (different prices, for example), which customers without that source code do not receive. The class SourceCodeInfo represents an individual source code.
15 | 
16 | ## Properties
17 | 
18 | ### ID
19 | 
20 | **Type:** String (Read Only)
21 | 
22 | The ID of the SourceCodeGroup.
23 | 
24 | ### priceBooks
25 | 
26 | **Type:** Collection (Read Only)
27 | 
28 | A Collection of PriceBooks the SourceCodeGroup is assigned to.
29 | 
30 | ## Constructor Summary
31 | 
32 | ## Method Summary
33 | 
34 | ### getID
35 | 
36 | **Signature:** `getID() : String`
37 | 
38 | The ID of the SourceCodeGroup.
39 | 
40 | ### getPriceBooks
41 | 
42 | **Signature:** `getPriceBooks() : Collection`
43 | 
44 | Returns a Collection of PriceBooks the SourceCodeGroup is assigned to.
45 | 
46 | ## Method Detail
47 | 
48 | ## Method Details
49 | 
50 | ### getID
51 | 
52 | **Signature:** `getID() : String`
53 | 
54 | **Description:** The ID of the SourceCodeGroup.
55 | 
56 | **Returns:**
57 | 
58 | the ID.
59 | 
60 | ---
61 | 
62 | ### getPriceBooks
63 | 
64 | **Signature:** `getPriceBooks() : Collection`
65 | 
66 | **Description:** Returns a Collection of PriceBooks the SourceCodeGroup is assigned to.
67 | 
68 | **Returns:**
69 | 
70 | Collection of PriceBooks the SourceCodeGroup is assigned to.
71 | 
72 | ---
```

--------------------------------------------------------------------------------
/docs/TopLevel/Symbol.md:
--------------------------------------------------------------------------------

```markdown
 1 | ## Package: TopLevel
 2 | 
 3 | # Class Symbol
 4 | 
 5 | ## Inheritance Hierarchy
 6 | 
 7 | - Object
 8 |   - Symbol
 9 | 
10 | ## Description
11 | 
12 | Symbol is a primitive data type that can serve as object properties. Symbol instance can be created explicitly or via a global registry, see for(String).
13 | 
14 | ## Constants
15 | 
16 | ## Properties
17 | 
18 | ## Constructor Summary
19 | 
20 | Symbol() Creates a new symbol.
21 | 
22 | Symbol(description : String) Creates a new symbol.
23 | 
24 | ## Method Summary
25 | 
26 | ### for
27 | 
28 | **Signature:** `static for(key : String) : Symbol`
29 | 
30 | Obtains a symbol from the global registry.
31 | 
32 | ### keyFor
33 | 
34 | **Signature:** `static keyFor(symbol : Symbol) : String`
35 | 
36 | Returns the key within the global symbol registry under which the given symbol is stored.
37 | 
38 | ## Constructor Detail
39 | 
40 | ## Method Detail
41 | 
42 | ## Method Details
43 | 
44 | ### for
45 | 
46 | **Signature:** `static for(key : String) : Symbol`
47 | 
48 | **Description:** Obtains a symbol from the global registry. If no symbol exists for the key within the registry a new symbol is created and stored in the global registry.
49 | 
50 | **API Versioned:**
51 | 
52 | From version 21.2.
53 | 
54 | **Parameters:**
55 | 
56 | - `key`: The key for a symbol within the global registry.
57 | 
58 | **Returns:**
59 | 
60 | The found or newly created symbol.
61 | 
62 | ---
63 | 
64 | ### keyFor
65 | 
66 | **Signature:** `static keyFor(symbol : Symbol) : String`
67 | 
68 | **Description:** Returns the key within the global symbol registry under which the given symbol is stored.
69 | 
70 | **Parameters:**
71 | 
72 | - `symbol`: The symbol to look for.
73 | 
74 | **Returns:**
75 | 
76 | The key for the given symbol if the symbol is known to the global registry, else return undefined.
77 | 
78 | ---
```
Page 2/61FirstPrevNextLast