sfcc-dev-mcp 1.0.19 → 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/clients/logs/index.d.ts +13 -0
- package/dist/clients/logs/index.d.ts.map +1 -0
- package/dist/clients/logs/index.js +15 -0
- package/dist/clients/logs/index.js.map +1 -0
- package/dist/clients/logs/log-analyzer.d.ts +55 -0
- package/dist/clients/logs/log-analyzer.d.ts.map +1 -0
- package/dist/clients/logs/log-analyzer.js +228 -0
- package/dist/clients/logs/log-analyzer.js.map +1 -0
- package/dist/clients/logs/log-client.d.ts +87 -0
- package/dist/clients/logs/log-client.d.ts.map +1 -0
- package/dist/clients/logs/log-client.js +418 -0
- package/dist/clients/logs/log-client.js.map +1 -0
- package/dist/clients/logs/log-constants.d.ts +37 -0
- package/dist/clients/logs/log-constants.d.ts.map +1 -0
- package/dist/clients/logs/log-constants.js +37 -0
- package/dist/clients/logs/log-constants.js.map +1 -0
- package/dist/clients/logs/log-file-discovery.d.ts +64 -0
- package/dist/clients/logs/log-file-discovery.d.ts.map +1 -0
- package/dist/clients/logs/log-file-discovery.js +249 -0
- package/dist/clients/logs/log-file-discovery.js.map +1 -0
- package/dist/clients/logs/log-file-reader.d.ts +55 -0
- package/dist/clients/logs/log-file-reader.d.ts.map +1 -0
- package/dist/clients/logs/log-file-reader.js +207 -0
- package/dist/clients/logs/log-file-reader.js.map +1 -0
- package/dist/clients/logs/log-formatter.d.ts +90 -0
- package/dist/clients/logs/log-formatter.d.ts.map +1 -0
- package/dist/clients/logs/log-formatter.js +189 -0
- package/dist/clients/logs/log-formatter.js.map +1 -0
- package/dist/clients/logs/log-processor.d.ts +91 -0
- package/dist/clients/logs/log-processor.d.ts.map +1 -0
- package/dist/clients/logs/log-processor.js +328 -0
- package/dist/clients/logs/log-processor.js.map +1 -0
- package/dist/clients/logs/log-types.d.ts +58 -0
- package/dist/clients/logs/log-types.d.ts.map +1 -0
- package/dist/clients/logs/log-types.js +8 -0
- package/dist/clients/logs/log-types.js.map +1 -0
- package/dist/clients/logs/webdav-client-manager.d.ts +28 -0
- package/dist/clients/logs/webdav-client-manager.d.ts.map +1 -0
- package/dist/clients/logs/webdav-client-manager.js +77 -0
- package/dist/clients/logs/webdav-client-manager.js.map +1 -0
- package/dist/docs/dw_customer/CustomerMgr.md +3 -3
- package/dist/docs/dw_customer/Wallet.md +25 -0
- package/dist/docs/dw_extensions.payments/SalesforceAdyenPaymentIntent.md +156 -0
- package/dist/docs/dw_extensions.payments/SalesforceAdyenSavedPaymentMethod.md +258 -0
- package/dist/docs/dw_extensions.payments/SalesforcePayPalOrder.md +36 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentIntent.md +1 -1
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsHooks.md +68 -1
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMerchantAccount.md +154 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMerchantAccountPaymentMethod.md +96 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMgr.md +311 -2
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsSiteConfiguration.md +26 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsZone.md +458 -0
- package/dist/docs/dw_order/OrderMgr.md +3 -3
- package/dist/docs/dw_order.hooks/BasketMergeHooks.md +4 -4
- package/dist/docs/dw_order.hooks/CheckoutHooks.md +42 -0
- package/dist/utils/path-resolver.d.ts +5 -0
- package/dist/utils/path-resolver.d.ts.map +1 -1
- package/dist/utils/path-resolver.js +27 -5
- package/dist/utils/path-resolver.js.map +1 -1
- package/package.json +9 -3
- package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -131
- package/.github/ISSUE_TEMPLATE/config.yml +0 -9
- package/.github/ISSUE_TEMPLATE/documentation.yml +0 -117
- package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -151
- package/.github/ISSUE_TEMPLATE/question.yml +0 -102
- package/.github/PULL_REQUEST_TEMPLATE/bug_fix.md +0 -59
- package/.github/PULL_REQUEST_TEMPLATE/documentation.md +0 -48
- package/.github/PULL_REQUEST_TEMPLATE/new_tool.md +0 -55
- package/.github/agents/official-docs-researcher.agent.md +0 -56
- package/.github/dependabot.yml +0 -65
- package/.github/instructions/mcp-node-tests.instructions.md +0 -30
- package/.github/instructions/mcp-yml-tests.instructions.md +0 -27
- package/.github/pull_request_template.md +0 -103
- package/.github/skills/agent-authoring/SKILL.md +0 -66
- package/.github/skills/mcp-log-debugging/SKILL.md +0 -69
- package/.github/skills/mcp-programmatic-testing/SKILL.md +0 -142
- package/.github/skills/mcp-yaml-testing/SKILL.md +0 -136
- package/.github/skills/salesforce-developer-site-scraper/SKILL.md +0 -102
- package/.github/skills/salesforce-developer-site-scraper/scripts/scrape-to-markdown.js +0 -205
- package/.github/skills/salesforce-help-site-scraper/SKILL.md +0 -84
- package/.github/skills/salesforce-help-site-scraper/scripts/scrape-help-to-markdown.js +0 -212
- package/.github/skills/skill-authoring/SKILL.md +0 -228
- package/.github/skills/skill-authoring/references/PATTERNS.md +0 -384
- package/.github/workflows/ci.yml +0 -103
- package/.github/workflows/deploy-pages.yml +0 -59
- package/.github/workflows/publish.yml +0 -112
- package/.github/workflows/update-docs.yml +0 -182
- package/.husky/pre-commit +0 -2
- package/AGENTS.md +0 -638
- package/CONTRIBUTING.md +0 -323
- package/SECURITY.md +0 -148
- package/aegis.config.docs-only.json +0 -9
- package/aegis.config.json +0 -12
- package/aegis.config.with-dw.json +0 -15
- package/ai-instructions/AGENTS.md +0 -628
- package/ai-instructions/skills/sfcc-caching/SKILL.md +0 -89
- package/ai-instructions/skills/sfcc-cartridge-development/SKILL.md +0 -240
- package/ai-instructions/skills/sfcc-forms-development/SKILL.md +0 -261
- package/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +0 -143
- package/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +0 -127
- package/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +0 -95
- package/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +0 -39
- package/ai-instructions/skills/sfcc-isml-development/SKILL.md +0 -370
- package/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +0 -116
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +0 -50
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +0 -45
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +0 -85
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +0 -63
- package/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +0 -159
- package/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +0 -13
- package/ai-instructions/skills/sfcc-job-development/SKILL.md +0 -334
- package/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +0 -393
- package/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +0 -271
- package/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +0 -257
- package/ai-instructions/skills/sfcc-localization/SKILL.md +0 -92
- package/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +0 -63
- package/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +0 -29
- package/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +0 -33
- package/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +0 -41
- package/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +0 -35
- package/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +0 -740
- package/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +0 -25
- package/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +0 -67
- package/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +0 -23
- package/ai-instructions/skills/sfcc-localization/references/TESTING.md +0 -21
- package/ai-instructions/skills/sfcc-localserviceregistry/SKILL.md +0 -374
- package/ai-instructions/skills/sfcc-logging/SKILL.md +0 -352
- package/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +0 -282
- package/ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md +0 -350
- package/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +0 -108
- package/ai-instructions/skills/sfcc-page-designer/SKILL.md +0 -353
- package/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +0 -436
- package/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +0 -322
- package/ai-instructions/skills/sfcc-performance/SKILL.md +0 -424
- package/ai-instructions/skills/sfcc-platform-limits/SKILL.md +0 -89
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +0 -237
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +0 -214
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +0 -253
- package/ai-instructions/skills/sfcc-scapi-hooks/SKILL.md +0 -341
- package/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +0 -380
- package/ai-instructions/skills/sfcc-security/SKILL.md +0 -394
- package/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +0 -270
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +0 -285
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +0 -206
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +0 -165
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +0 -185
- package/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +0 -347
- package/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +0 -257
- package/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +0 -193
- package/ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md +0 -814
- package/ai-instructions/skills/sfcc-sfra-models/SKILL.md +0 -322
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +0 -530
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +0 -234
- package/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +0 -417
- package/ai-instructions/skills/sfcc-sfra-scss/SKILL.md +0 -393
- package/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +0 -111
- package/docs/TopLevel/APIException.md +0 -68
- package/docs/TopLevel/Array.md +0 -897
- package/docs/TopLevel/ArrayBuffer.md +0 -79
- package/docs/TopLevel/BigInt.md +0 -132
- package/docs/TopLevel/Boolean.md +0 -62
- package/docs/TopLevel/ConversionError.md +0 -23
- package/docs/TopLevel/DataView.md +0 -352
- package/docs/TopLevel/Date.md +0 -924
- package/docs/TopLevel/ES6Iterator.md +0 -33
- package/docs/TopLevel/Error.md +0 -88
- package/docs/TopLevel/EvalError.md +0 -23
- package/docs/TopLevel/Fault.md +0 -87
- package/docs/TopLevel/Float32Array.md +0 -130
- package/docs/TopLevel/Float64Array.md +0 -130
- package/docs/TopLevel/Function.md +0 -105
- package/docs/TopLevel/Generator.md +0 -78
- package/docs/TopLevel/IOError.md +0 -62
- package/docs/TopLevel/Int16Array.md +0 -130
- package/docs/TopLevel/Int32Array.md +0 -130
- package/docs/TopLevel/Int8Array.md +0 -130
- package/docs/TopLevel/InternalError.md +0 -23
- package/docs/TopLevel/Iterable.md +0 -41
- package/docs/TopLevel/Iterator.md +0 -48
- package/docs/TopLevel/JSON.md +0 -162
- package/docs/TopLevel/Map.md +0 -216
- package/docs/TopLevel/Math.md +0 -913
- package/docs/TopLevel/Module.md +0 -45
- package/docs/TopLevel/Namespace.md +0 -96
- package/docs/TopLevel/Number.md +0 -417
- package/docs/TopLevel/Object.md +0 -641
- package/docs/TopLevel/QName.md +0 -96
- package/docs/TopLevel/RangeError.md +0 -23
- package/docs/TopLevel/ReferenceError.md +0 -23
- package/docs/TopLevel/RegExp.md +0 -109
- package/docs/TopLevel/Set.md +0 -165
- package/docs/TopLevel/StopIteration.md +0 -20
- package/docs/TopLevel/String.md +0 -1299
- package/docs/TopLevel/Symbol.md +0 -78
- package/docs/TopLevel/SyntaxError.md +0 -23
- package/docs/TopLevel/SystemError.md +0 -62
- package/docs/TopLevel/TypeError.md +0 -23
- package/docs/TopLevel/URIError.md +0 -23
- package/docs/TopLevel/Uint16Array.md +0 -130
- package/docs/TopLevel/Uint32Array.md +0 -130
- package/docs/TopLevel/Uint8Array.md +0 -130
- package/docs/TopLevel/Uint8ClampedArray.md +0 -130
- package/docs/TopLevel/WeakMap.md +0 -137
- package/docs/TopLevel/WeakSet.md +0 -92
- package/docs/TopLevel/XML.md +0 -937
- package/docs/TopLevel/XMLList.md +0 -484
- package/docs/TopLevel/XMLStreamError.md +0 -74
- package/docs/TopLevel/arguments.md +0 -34
- package/docs/TopLevel/global.md +0 -474
- package/docs/dw_campaign/ABTest.md +0 -47
- package/docs/dw_campaign/ABTestMgr.md +0 -70
- package/docs/dw_campaign/ABTestSegment.md +0 -96
- package/docs/dw_campaign/AmountDiscount.md +0 -51
- package/docs/dw_campaign/ApproachingDiscount.md +0 -124
- package/docs/dw_campaign/BonusChoiceDiscount.md +0 -146
- package/docs/dw_campaign/BonusDiscount.md +0 -48
- package/docs/dw_campaign/Campaign.md +0 -365
- package/docs/dw_campaign/CampaignMgr.md +0 -395
- package/docs/dw_campaign/CampaignStatusCodes.md +0 -48
- package/docs/dw_campaign/Coupon.md +0 -310
- package/docs/dw_campaign/CouponMgr.md +0 -144
- package/docs/dw_campaign/CouponRedemption.md +0 -94
- package/docs/dw_campaign/CouponStatusCodes.md +0 -86
- package/docs/dw_campaign/Discount.md +0 -226
- package/docs/dw_campaign/DiscountPlan.md +0 -282
- package/docs/dw_campaign/FixedPriceDiscount.md +0 -52
- package/docs/dw_campaign/FixedPriceShippingDiscount.md +0 -52
- package/docs/dw_campaign/FreeDiscount.md +0 -17
- package/docs/dw_campaign/FreeShippingDiscount.md +0 -17
- package/docs/dw_campaign/PercentageDiscount.md +0 -52
- package/docs/dw_campaign/PercentageOptionDiscount.md +0 -48
- package/docs/dw_campaign/PriceBookPriceDiscount.md +0 -47
- package/docs/dw_campaign/Promotion.md +0 -874
- package/docs/dw_campaign/PromotionMgr.md +0 -386
- package/docs/dw_campaign/PromotionPlan.md +0 -330
- package/docs/dw_campaign/SlotContent.md +0 -144
- package/docs/dw_campaign/SourceCodeGroup.md +0 -72
- package/docs/dw_campaign/SourceCodeInfo.md +0 -144
- package/docs/dw_campaign/SourceCodeStatusCodes.md +0 -36
- package/docs/dw_campaign/TotalFixedPriceDiscount.md +0 -47
- package/docs/dw_catalog/Catalog.md +0 -122
- package/docs/dw_catalog/CatalogMgr.md +0 -182
- package/docs/dw_catalog/Category.md +0 -1308
- package/docs/dw_catalog/CategoryAssignment.md +0 -192
- package/docs/dw_catalog/CategoryLink.md +0 -126
- package/docs/dw_catalog/PriceBook.md +0 -242
- package/docs/dw_catalog/PriceBookMgr.md +0 -204
- package/docs/dw_catalog/Product.md +0 -2593
- package/docs/dw_catalog/ProductActiveData.md +0 -1275
- package/docs/dw_catalog/ProductAttributeModel.md +0 -277
- package/docs/dw_catalog/ProductAvailabilityLevels.md +0 -142
- package/docs/dw_catalog/ProductAvailabilityModel.md +0 -380
- package/docs/dw_catalog/ProductInventoryList.md +0 -140
- package/docs/dw_catalog/ProductInventoryMgr.md +0 -117
- package/docs/dw_catalog/ProductInventoryRecord.md +0 -563
- package/docs/dw_catalog/ProductLink.md +0 -144
- package/docs/dw_catalog/ProductMgr.md +0 -138
- package/docs/dw_catalog/ProductOption.md +0 -214
- package/docs/dw_catalog/ProductOptionModel.md +0 -246
- package/docs/dw_catalog/ProductOptionValue.md +0 -123
- package/docs/dw_catalog/ProductPriceInfo.md +0 -172
- package/docs/dw_catalog/ProductPriceModel.md +0 -745
- package/docs/dw_catalog/ProductPriceTable.md +0 -134
- package/docs/dw_catalog/ProductSearchHit.md +0 -581
- package/docs/dw_catalog/ProductSearchModel.md +0 -2018
- package/docs/dw_catalog/ProductSearchRefinementDefinition.md +0 -97
- package/docs/dw_catalog/ProductSearchRefinementValue.md +0 -73
- package/docs/dw_catalog/ProductSearchRefinements.md +0 -216
- package/docs/dw_catalog/ProductVariationAttribute.md +0 -100
- package/docs/dw_catalog/ProductVariationAttributeValue.md +0 -238
- package/docs/dw_catalog/ProductVariationModel.md +0 -849
- package/docs/dw_catalog/Recommendation.md +0 -314
- package/docs/dw_catalog/SearchModel.md +0 -901
- package/docs/dw_catalog/SearchRefinementDefinition.md +0 -146
- package/docs/dw_catalog/SearchRefinementValue.md +0 -185
- package/docs/dw_catalog/SearchRefinements.md +0 -180
- package/docs/dw_catalog/SortingOption.md +0 -120
- package/docs/dw_catalog/SortingRule.md +0 -47
- package/docs/dw_catalog/Store.md +0 -562
- package/docs/dw_catalog/StoreGroup.md +0 -96
- package/docs/dw_catalog/StoreInventoryFilter.md +0 -74
- package/docs/dw_catalog/StoreInventoryFilterValue.md +0 -74
- package/docs/dw_catalog/StoreMgr.md +0 -236
- package/docs/dw_catalog/Variant.md +0 -859
- package/docs/dw_catalog/VariationGroup.md +0 -792
- package/docs/dw_content/Content.md +0 -534
- package/docs/dw_content/ContentMgr.md +0 -166
- package/docs/dw_content/ContentSearchModel.md +0 -682
- package/docs/dw_content/ContentSearchRefinementDefinition.md +0 -49
- package/docs/dw_content/ContentSearchRefinementValue.md +0 -17
- package/docs/dw_content/ContentSearchRefinements.md +0 -208
- package/docs/dw_content/Folder.md +0 -467
- package/docs/dw_content/Library.md +0 -121
- package/docs/dw_content/MarkupText.md +0 -88
- package/docs/dw_content/MediaFile.md +0 -317
- package/docs/dw_crypto/CertificateRef.md +0 -42
- package/docs/dw_crypto/CertificateUtils.md +0 -187
- package/docs/dw_crypto/Cipher.md +0 -530
- package/docs/dw_crypto/Encoding.md +0 -220
- package/docs/dw_crypto/JWE.md +0 -224
- package/docs/dw_crypto/JWEHeader.md +0 -172
- package/docs/dw_crypto/JWS.md +0 -264
- package/docs/dw_crypto/JWSHeader.md +0 -148
- package/docs/dw_crypto/KeyRef.md +0 -44
- package/docs/dw_crypto/Mac.md +0 -139
- package/docs/dw_crypto/MessageDigest.md +0 -175
- package/docs/dw_crypto/SecureRandom.md +0 -148
- package/docs/dw_crypto/Signature.md +0 -252
- package/docs/dw_crypto/WeakCipher.md +0 -538
- package/docs/dw_crypto/WeakMac.md +0 -121
- package/docs/dw_crypto/WeakMessageDigest.md +0 -163
- package/docs/dw_crypto/WeakSignature.md +0 -242
- package/docs/dw_crypto/X509Certificate.md +0 -193
- package/docs/dw_customer/AddressBook.md +0 -163
- package/docs/dw_customer/AgentUserMgr.md +0 -83
- package/docs/dw_customer/AgentUserStatusCodes.md +0 -96
- package/docs/dw_customer/AuthenticationStatus.md +0 -138
- package/docs/dw_customer/Credentials.md +0 -494
- package/docs/dw_customer/Customer.md +0 -571
- package/docs/dw_customer/CustomerActiveData.md +0 -552
- package/docs/dw_customer/CustomerAddress.md +0 -852
- package/docs/dw_customer/CustomerCDPData.md +0 -70
- package/docs/dw_customer/CustomerContextMgr.md +0 -64
- package/docs/dw_customer/CustomerGroup.md +0 -134
- package/docs/dw_customer/CustomerList.md +0 -71
- package/docs/dw_customer/CustomerMgr.md +0 -735
- package/docs/dw_customer/CustomerPasswordConstraints.md +0 -142
- package/docs/dw_customer/CustomerPaymentInstrument.md +0 -125
- package/docs/dw_customer/CustomerStatusCodes.md +0 -30
- package/docs/dw_customer/EncryptedObject.md +0 -18
- package/docs/dw_customer/ExternalProfile.md +0 -160
- package/docs/dw_customer/OrderHistory.md +0 -111
- package/docs/dw_customer/ProductList.md +0 -1000
- package/docs/dw_customer/ProductListItem.md +0 -504
- package/docs/dw_customer/ProductListItemPurchase.md +0 -145
- package/docs/dw_customer/ProductListMgr.md +0 -234
- package/docs/dw_customer/ProductListRegistrant.md +0 -193
- package/docs/dw_customer/Profile.md +0 -1128
- package/docs/dw_customer/Wallet.md +0 -118
- package/docs/dw_extensions.applepay/ApplePayHookResult.md +0 -209
- package/docs/dw_extensions.applepay/ApplePayHooks.md +0 -255
- package/docs/dw_extensions.facebook/FacebookFeedHooks.md +0 -47
- package/docs/dw_extensions.facebook/FacebookProduct.md +0 -1621
- package/docs/dw_extensions.paymentrequest/PaymentRequestHookResult.md +0 -159
- package/docs/dw_extensions.paymentrequest/PaymentRequestHooks.md +0 -160
- package/docs/dw_extensions.payments/SalesforceBancontactPaymentDetails.md +0 -79
- package/docs/dw_extensions.payments/SalesforceCardPaymentDetails.md +0 -103
- package/docs/dw_extensions.payments/SalesforceEpsPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceIdealPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceKlarnaPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforcePayPalOrder.md +0 -246
- package/docs/dw_extensions.payments/SalesforcePayPalOrderAddress.md +0 -191
- package/docs/dw_extensions.payments/SalesforcePayPalOrderPayer.md +0 -118
- package/docs/dw_extensions.payments/SalesforcePayPalPaymentDetails.md +0 -79
- package/docs/dw_extensions.payments/SalesforcePaymentDetails.md +0 -57
- package/docs/dw_extensions.payments/SalesforcePaymentIntent.md +0 -281
- package/docs/dw_extensions.payments/SalesforcePaymentMethod.md +0 -346
- package/docs/dw_extensions.payments/SalesforcePaymentRequest.md +0 -784
- package/docs/dw_extensions.payments/SalesforcePaymentsHooks.md +0 -45
- package/docs/dw_extensions.payments/SalesforcePaymentsMgr.md +0 -634
- package/docs/dw_extensions.payments/SalesforcePaymentsSiteConfiguration.md +0 -95
- package/docs/dw_extensions.payments/SalesforceSepaDebitPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceVenmoPaymentDetails.md +0 -79
- package/docs/dw_extensions.pinterest/PinterestAvailability.md +0 -86
- package/docs/dw_extensions.pinterest/PinterestFeedHooks.md +0 -69
- package/docs/dw_extensions.pinterest/PinterestOrder.md +0 -232
- package/docs/dw_extensions.pinterest/PinterestOrderHooks.md +0 -45
- package/docs/dw_extensions.pinterest/PinterestProduct.md +0 -850
- package/docs/dw_io/CSVStreamReader.md +0 -80
- package/docs/dw_io/CSVStreamWriter.md +0 -60
- package/docs/dw_io/File.md +0 -614
- package/docs/dw_io/FileReader.md +0 -41
- package/docs/dw_io/FileWriter.md +0 -103
- package/docs/dw_io/InputStream.md +0 -34
- package/docs/dw_io/OutputStream.md +0 -34
- package/docs/dw_io/PrintWriter.md +0 -71
- package/docs/dw_io/RandomAccessFileReader.md +0 -173
- package/docs/dw_io/Reader.md +0 -274
- package/docs/dw_io/StringWriter.md +0 -81
- package/docs/dw_io/Writer.md +0 -92
- package/docs/dw_io/XMLIndentingStreamWriter.md +0 -112
- package/docs/dw_io/XMLStreamConstants.md +0 -114
- package/docs/dw_io/XMLStreamReader.md +0 -1043
- package/docs/dw_io/XMLStreamWriter.md +0 -572
- package/docs/dw_job/JobExecution.md +0 -107
- package/docs/dw_job/JobStepExecution.md +0 -151
- package/docs/dw_net/FTPClient.md +0 -699
- package/docs/dw_net/FTPFileInfo.md +0 -122
- package/docs/dw_net/HTTPClient.md +0 -831
- package/docs/dw_net/HTTPClientLoggingConfig.md +0 -296
- package/docs/dw_net/HTTPRequestPart.md +0 -206
- package/docs/dw_net/Mail.md +0 -551
- package/docs/dw_net/SFTPClient.md +0 -591
- package/docs/dw_net/SFTPFileInfo.md +0 -122
- package/docs/dw_net/WebDAVClient.md +0 -715
- package/docs/dw_net/WebDAVFileInfo.md +0 -184
- package/docs/dw_object/ActiveData.md +0 -75
- package/docs/dw_object/CustomAttributes.md +0 -16
- package/docs/dw_object/CustomObject.md +0 -73
- package/docs/dw_object/CustomObjectMgr.md +0 -291
- package/docs/dw_object/Extensible.md +0 -64
- package/docs/dw_object/ExtensibleObject.md +0 -68
- package/docs/dw_object/Note.md +0 -121
- package/docs/dw_object/ObjectAttributeDefinition.md +0 -481
- package/docs/dw_object/ObjectAttributeGroup.md +0 -170
- package/docs/dw_object/ObjectAttributeValueDefinition.md +0 -72
- package/docs/dw_object/ObjectTypeDefinition.md +0 -216
- package/docs/dw_object/PersistentObject.md +0 -94
- package/docs/dw_object/SimpleExtensible.md +0 -46
- package/docs/dw_object/SystemObjectMgr.md +0 -153
- package/docs/dw_order/AbstractItem.md +0 -244
- package/docs/dw_order/AbstractItemCtnr.md +0 -240
- package/docs/dw_order/Appeasement.md +0 -367
- package/docs/dw_order/AppeasementItem.md +0 -90
- package/docs/dw_order/Basket.md +0 -362
- package/docs/dw_order/BasketMgr.md +0 -418
- package/docs/dw_order/BonusDiscountLineItem.md +0 -248
- package/docs/dw_order/CouponLineItem.md +0 -272
- package/docs/dw_order/CreateAgentBasketLimitExceededException.md +0 -18
- package/docs/dw_order/CreateBasketFromOrderException.md +0 -26
- package/docs/dw_order/CreateCouponLineItemException.md +0 -26
- package/docs/dw_order/CreateOrderException.md +0 -18
- package/docs/dw_order/CreateTemporaryBasketLimitExceededException.md +0 -18
- package/docs/dw_order/GiftCertificate.md +0 -569
- package/docs/dw_order/GiftCertificateLineItem.md +0 -324
- package/docs/dw_order/GiftCertificateMgr.md +0 -197
- package/docs/dw_order/GiftCertificateStatusCodes.md +0 -60
- package/docs/dw_order/Invoice.md +0 -418
- package/docs/dw_order/InvoiceItem.md +0 -222
- package/docs/dw_order/LineItem.md +0 -532
- package/docs/dw_order/LineItemCtnr.md +0 -2431
- package/docs/dw_order/Order.md +0 -2567
- package/docs/dw_order/OrderAddress.md +0 -807
- package/docs/dw_order/OrderItem.md +0 -536
- package/docs/dw_order/OrderMgr.md +0 -535
- package/docs/dw_order/OrderPaymentInstrument.md +0 -220
- package/docs/dw_order/OrderProcessStatusCodes.md +0 -84
- package/docs/dw_order/PaymentCard.md +0 -217
- package/docs/dw_order/PaymentInstrument.md +0 -1462
- package/docs/dw_order/PaymentMethod.md +0 -242
- package/docs/dw_order/PaymentMgr.md +0 -117
- package/docs/dw_order/PaymentProcessor.md +0 -70
- package/docs/dw_order/PaymentStatusCodes.md +0 -42
- package/docs/dw_order/PaymentTransaction.md +0 -328
- package/docs/dw_order/PriceAdjustment.md +0 -640
- package/docs/dw_order/PriceAdjustmentLimitTypes.md +0 -38
- package/docs/dw_order/ProductLineItem.md +0 -1821
- package/docs/dw_order/ProductShippingCost.md +0 -96
- package/docs/dw_order/ProductShippingLineItem.md +0 -326
- package/docs/dw_order/ProductShippingModel.md +0 -125
- package/docs/dw_order/Return.md +0 -360
- package/docs/dw_order/ReturnCase.md +0 -400
- package/docs/dw_order/ReturnCaseItem.md +0 -373
- package/docs/dw_order/ReturnItem.md +0 -362
- package/docs/dw_order/Shipment.md +0 -1251
- package/docs/dw_order/ShipmentShippingCost.md +0 -46
- package/docs/dw_order/ShipmentShippingModel.md +0 -146
- package/docs/dw_order/ShippingLineItem.md +0 -278
- package/docs/dw_order/ShippingLocation.md +0 -366
- package/docs/dw_order/ShippingMethod.md +0 -266
- package/docs/dw_order/ShippingMgr.md +0 -158
- package/docs/dw_order/ShippingOrder.md +0 -561
- package/docs/dw_order/ShippingOrderItem.md +0 -355
- package/docs/dw_order/SumItem.md +0 -147
- package/docs/dw_order/TaxGroup.md +0 -143
- package/docs/dw_order/TaxItem.md +0 -74
- package/docs/dw_order/TaxMgr.md +0 -227
- package/docs/dw_order/TrackingInfo.md +0 -312
- package/docs/dw_order/TrackingRef.md +0 -113
- package/docs/dw_order.hooks/BasketMergeHooks.md +0 -42
- package/docs/dw_order.hooks/CalculateHooks.md +0 -77
- package/docs/dw_order.hooks/OrderHooks.md +0 -41
- package/docs/dw_order.hooks/PaymentHooks.md +0 -180
- package/docs/dw_order.hooks/ReturnHooks.md +0 -135
- package/docs/dw_order.hooks/ShippingOrderHooks.md +0 -245
- package/docs/dw_rpc/SOAPUtil.md +0 -465
- package/docs/dw_rpc/Stub.md +0 -289
- package/docs/dw_rpc/WebReference.md +0 -83
- package/docs/dw_suggest/BrandSuggestions.md +0 -17
- package/docs/dw_suggest/CategorySuggestions.md +0 -53
- package/docs/dw_suggest/ContentSuggestions.md +0 -53
- package/docs/dw_suggest/CustomSuggestions.md +0 -17
- package/docs/dw_suggest/ProductSuggestions.md +0 -53
- package/docs/dw_suggest/SearchPhraseSuggestions.md +0 -117
- package/docs/dw_suggest/SuggestModel.md +0 -403
- package/docs/dw_suggest/SuggestedCategory.md +0 -46
- package/docs/dw_suggest/SuggestedContent.md +0 -46
- package/docs/dw_suggest/SuggestedPhrase.md +0 -70
- package/docs/dw_suggest/SuggestedProduct.md +0 -47
- package/docs/dw_suggest/SuggestedTerm.md +0 -143
- package/docs/dw_suggest/SuggestedTerms.md +0 -132
- package/docs/dw_suggest/Suggestions.md +0 -179
- package/docs/dw_svc/FTPService.md +0 -118
- package/docs/dw_svc/FTPServiceDefinition.md +0 -69
- package/docs/dw_svc/HTTPFormService.md +0 -18
- package/docs/dw_svc/HTTPFormServiceDefinition.md +0 -18
- package/docs/dw_svc/HTTPService.md +0 -415
- package/docs/dw_svc/HTTPServiceDefinition.md +0 -303
- package/docs/dw_svc/LocalServiceRegistry.md +0 -43
- package/docs/dw_svc/Result.md +0 -303
- package/docs/dw_svc/SOAPService.md +0 -115
- package/docs/dw_svc/SOAPServiceDefinition.md +0 -17
- package/docs/dw_svc/Service.md +0 -295
- package/docs/dw_svc/ServiceCallback.md +0 -268
- package/docs/dw_svc/ServiceConfig.md +0 -120
- package/docs/dw_svc/ServiceCredential.md +0 -156
- package/docs/dw_svc/ServiceDefinition.md +0 -176
- package/docs/dw_svc/ServiceProfile.md +0 -168
- package/docs/dw_svc/ServiceRegistry.md +0 -109
- package/docs/dw_system/AgentUserStatusCodes.md +0 -21
- package/docs/dw_system/Cache.md +0 -102
- package/docs/dw_system/CacheMgr.md +0 -42
- package/docs/dw_system/HookMgr.md +0 -66
- package/docs/dw_system/InternalObject.md +0 -56
- package/docs/dw_system/JobProcessMonitor.md +0 -124
- package/docs/dw_system/Log.md +0 -237
- package/docs/dw_system/LogNDC.md +0 -88
- package/docs/dw_system/Logger.md +0 -263
- package/docs/dw_system/OrganizationPreferences.md +0 -18
- package/docs/dw_system/Pipeline.md +0 -73
- package/docs/dw_system/PipelineDictionary.md +0 -16
- package/docs/dw_system/RESTErrorResponse.md +0 -66
- package/docs/dw_system/RESTResponseMgr.md +0 -258
- package/docs/dw_system/RESTSuccessResponse.md +0 -39
- package/docs/dw_system/RemoteInclude.md +0 -74
- package/docs/dw_system/Request.md +0 -839
- package/docs/dw_system/RequestHooks.md +0 -59
- package/docs/dw_system/Response.md +0 -522
- package/docs/dw_system/SearchStatus.md +0 -151
- package/docs/dw_system/Session.md +0 -476
- package/docs/dw_system/Site.md +0 -585
- package/docs/dw_system/SitePreferences.md +0 -49
- package/docs/dw_system/Status.md +0 -273
- package/docs/dw_system/StatusItem.md +0 -273
- package/docs/dw_system/System.md +0 -200
- package/docs/dw_system/Transaction.md +0 -84
- package/docs/dw_util/ArrayList.md +0 -50
- package/docs/dw_util/Assert.md +0 -391
- package/docs/dw_util/BigInteger.md +0 -326
- package/docs/dw_util/Bytes.md +0 -252
- package/docs/dw_util/Calendar.md +0 -921
- package/docs/dw_util/Collection.md +0 -338
- package/docs/dw_util/Currency.md +0 -163
- package/docs/dw_util/DateUtils.md +0 -86
- package/docs/dw_util/Decimal.md +0 -438
- package/docs/dw_util/FilteringCollection.md +0 -93
- package/docs/dw_util/Geolocation.md +0 -271
- package/docs/dw_util/HashMap.md +0 -43
- package/docs/dw_util/HashSet.md +0 -46
- package/docs/dw_util/Iterator.md +0 -97
- package/docs/dw_util/LinkedHashMap.md +0 -43
- package/docs/dw_util/LinkedHashSet.md +0 -46
- package/docs/dw_util/List.md +0 -519
- package/docs/dw_util/Locale.md +0 -267
- package/docs/dw_util/Map.md +0 -313
- package/docs/dw_util/MapEntry.md +0 -70
- package/docs/dw_util/MappingKey.md +0 -76
- package/docs/dw_util/MappingMgr.md +0 -122
- package/docs/dw_util/PropertyComparator.md +0 -51
- package/docs/dw_util/SecureEncoder.md +0 -350
- package/docs/dw_util/SecureFilter.md +0 -350
- package/docs/dw_util/SeekableIterator.md +0 -176
- package/docs/dw_util/Set.md +0 -19
- package/docs/dw_util/SortedMap.md +0 -148
- package/docs/dw_util/SortedSet.md +0 -151
- package/docs/dw_util/StringUtils.md +0 -753
- package/docs/dw_util/Template.md +0 -88
- package/docs/dw_util/UUIDUtils.md +0 -38
- package/docs/dw_value/EnumValue.md +0 -92
- package/docs/dw_value/MimeEncodedText.md +0 -103
- package/docs/dw_value/Money.md +0 -610
- package/docs/dw_value/Quantity.md +0 -376
- package/docs/dw_web/CSRFProtection.md +0 -83
- package/docs/dw_web/ClickStream.md +0 -157
- package/docs/dw_web/ClickStreamEntry.md +0 -289
- package/docs/dw_web/Cookie.md +0 -396
- package/docs/dw_web/Cookies.md +0 -46
- package/docs/dw_web/Form.md +0 -74
- package/docs/dw_web/FormAction.md +0 -199
- package/docs/dw_web/FormElement.md +0 -220
- package/docs/dw_web/FormElementValidationResult.md +0 -157
- package/docs/dw_web/FormField.md +0 -603
- package/docs/dw_web/FormFieldOption.md +0 -238
- package/docs/dw_web/FormFieldOptions.md +0 -42
- package/docs/dw_web/FormGroup.md +0 -199
- package/docs/dw_web/FormList.md +0 -126
- package/docs/dw_web/FormListItem.md +0 -48
- package/docs/dw_web/Forms.md +0 -16
- package/docs/dw_web/HttpParameter.md +0 -513
- package/docs/dw_web/HttpParameterMap.md +0 -185
- package/docs/dw_web/LoopIterator.md +0 -261
- package/docs/dw_web/PageMetaData.md +0 -230
- package/docs/dw_web/PageMetaTag.md +0 -142
- package/docs/dw_web/PagingModel.md +0 -389
- package/docs/dw_web/Resource.md +0 -126
- package/docs/dw_web/URL.md +0 -213
- package/docs/dw_web/URLAction.md +0 -26
- package/docs/dw_web/URLParameter.md +0 -22
- package/docs/dw_web/URLRedirect.md +0 -71
- package/docs/dw_web/URLRedirectMgr.md +0 -73
- package/docs/dw_web/URLUtils.md +0 -1264
- package/docs/isml/isactivedatacontext.md +0 -382
- package/docs/isml/isactivedatahead.md +0 -566
- package/docs/isml/isanalyticsoff.md +0 -537
- package/docs/isml/isapplepay.md +0 -667
- package/docs/isml/isbreak.md +0 -687
- package/docs/isml/isbuynow.md +0 -682
- package/docs/isml/iscache.md +0 -802
- package/docs/isml/iscomment.md +0 -794
- package/docs/isml/iscomponent.md +0 -797
- package/docs/isml/iscontent.md +0 -594
- package/docs/isml/iscontinue.md +0 -563
- package/docs/isml/iscookie.md +0 -798
- package/docs/isml/isdecorate.md +0 -818
- package/docs/isml/isif.md +0 -737
- package/docs/isml/isinclude.md +0 -874
- package/docs/isml/isloop.md +0 -377
- package/docs/isml/ismodule.md +0 -844
- package/docs/isml/isnext.md +0 -672
- package/docs/isml/isobject.md +0 -760
- package/docs/isml/ispayment.md +0 -577
- package/docs/isml/ispaymentmessages.md +0 -664
- package/docs/isml/isprint.md +0 -875
- package/docs/isml/isredirect.md +0 -716
- package/docs/isml/isremove.md +0 -725
- package/docs/isml/isreplace.md +0 -783
- package/docs/isml/isscript.md +0 -859
- package/docs/isml/isselect.md +0 -908
- package/docs/isml/isset.md +0 -585
- package/docs/isml/isslot.md +0 -824
- package/docs/isml/isstatus.md +0 -711
- package/docs/sfra/account.md +0 -145
- package/docs/sfra/address.md +0 -84
- package/docs/sfra/billing.md +0 -90
- package/docs/sfra/cart.md +0 -134
- package/docs/sfra/categories.md +0 -124
- package/docs/sfra/content.md +0 -133
- package/docs/sfra/locale.md +0 -126
- package/docs/sfra/order.md +0 -219
- package/docs/sfra/payment.md +0 -131
- package/docs/sfra/price-default.md +0 -118
- package/docs/sfra/price-range.md +0 -77
- package/docs/sfra/price-tiered.md +0 -117
- package/docs/sfra/product-bundle.md +0 -164
- package/docs/sfra/product-full.md +0 -179
- package/docs/sfra/product-line-items.md +0 -147
- package/docs/sfra/product-search.md +0 -245
- package/docs/sfra/product-tile.md +0 -95
- package/docs/sfra/querystring.md +0 -240
- package/docs/sfra/render.md +0 -354
- package/docs/sfra/request.md +0 -210
- package/docs/sfra/response.md +0 -391
- package/docs/sfra/server.md +0 -375
- package/docs/sfra/shipping.md +0 -181
- package/docs/sfra/store.md +0 -145
- package/docs/sfra/stores.md +0 -190
- package/docs/sfra/totals.md +0 -184
- package/docs-site-v2/.vitepress/config.mts +0 -190
- package/docs-site-v2/.vitepress/theme/components/AssistantTabs.vue +0 -96
- package/docs-site-v2/.vitepress/theme/components/Callout.vue +0 -10
- package/docs-site-v2/.vitepress/theme/components/Collapsible.vue +0 -14
- package/docs-site-v2/.vitepress/theme/components/DwJsonBuilder.vue +0 -82
- package/docs-site-v2/.vitepress/theme/components/HomeSections.vue +0 -552
- package/docs-site-v2/.vitepress/theme/components/InstructionFilesTabs.vue +0 -87
- package/docs-site-v2/.vitepress/theme/components/ModeTabs.vue +0 -70
- package/docs-site-v2/.vitepress/theme/components/NewcomerCTA.vue +0 -14
- package/docs-site-v2/.vitepress/theme/components/QuickStartCards.vue +0 -20
- package/docs-site-v2/.vitepress/theme/components/QuickStartHero.vue +0 -20
- package/docs-site-v2/.vitepress/theme/components/SkillsList.vue +0 -48
- package/docs-site-v2/.vitepress/theme/components/ToolExplorer.vue +0 -85
- package/docs-site-v2/.vitepress/theme/custom.css +0 -1373
- package/docs-site-v2/.vitepress/theme/index.ts +0 -39
- package/docs-site-v2/data/skills.ts +0 -147
- package/docs-site-v2/data/tools.ts +0 -490
- package/docs-site-v2/development/index.md +0 -151
- package/docs-site-v2/examples/index.md +0 -333
- package/docs-site-v2/features/index.md +0 -144
- package/docs-site-v2/guide/ai-interfaces.md +0 -58
- package/docs-site-v2/guide/configuration.md +0 -208
- package/docs-site-v2/guide/index.md +0 -50
- package/docs-site-v2/index.md +0 -32
- package/docs-site-v2/package-lock.json +0 -2511
- package/docs-site-v2/package.json +0 -15
- package/docs-site-v2/public/404.html +0 -15
- package/docs-site-v2/public/android-chrome-192x192.png +0 -0
- package/docs-site-v2/public/android-chrome-512x512.png +0 -0
- package/docs-site-v2/public/apple-touch-icon.png +0 -0
- package/docs-site-v2/public/explain-product-pricing-methods-no-mcp.png +0 -0
- package/docs-site-v2/public/explain-product-pricing-methods.png +0 -0
- package/docs-site-v2/public/favicon-16x16.png +0 -0
- package/docs-site-v2/public/favicon-32x32.png +0 -0
- package/docs-site-v2/public/favicon.ico +0 -0
- package/docs-site-v2/public/index.css +0 -4174
- package/docs-site-v2/public/llms.txt +0 -44
- package/docs-site-v2/public/logo-dark.svg +0 -8
- package/docs-site-v2/public/logo.svg +0 -8
- package/docs-site-v2/public/robots.txt +0 -20
- package/docs-site-v2/public/site.webmanifest +0 -50
- package/docs-site-v2/public/sitemap.xml +0 -90
- package/docs-site-v2/script-debugger/index.md +0 -105
- package/docs-site-v2/scripts/generate-llms.js +0 -71
- package/docs-site-v2/scripts/generate-sitemap.js +0 -97
- package/docs-site-v2/security/index.md +0 -115
- package/docs-site-v2/skills/index.md +0 -40
- package/docs-site-v2/tools/index.md +0 -36
- package/docs-site-v2/troubleshooting/index.md +0 -204
- package/eslint.config.js +0 -139
- package/jest.config.js +0 -27
- package/memories/repo/docs-site-v2-build.json +0 -11
- package/scripts/convert-docs.js +0 -633
- package/scripts/validate-server-json.js +0 -68
- package/server.json +0 -20
- package/src/clients/agent-instructions-client.ts +0 -370
- package/src/clients/base/abstract-documentation-client.ts +0 -405
- package/src/clients/base/http-client.ts +0 -152
- package/src/clients/base/oauth-token.ts +0 -164
- package/src/clients/base/ocapi-auth-client.ts +0 -133
- package/src/clients/cartridge/cartridge-generation-client.ts +0 -302
- package/src/clients/cartridge/cartridge-structure.ts +0 -37
- package/src/clients/cartridge/cartridge-templates.ts +0 -246
- package/src/clients/cartridge/index.ts +0 -6
- package/src/clients/docs/class-content-parser.ts +0 -308
- package/src/clients/docs/class-name-resolver.ts +0 -99
- package/src/clients/docs/documentation-scanner.ts +0 -255
- package/src/clients/docs/index.ts +0 -16
- package/src/clients/docs/referenced-types-extractor.ts +0 -92
- package/src/clients/docs-client.ts +0 -393
- package/src/clients/isml-client.ts +0 -353
- package/src/clients/log-client.ts +0 -19
- package/src/clients/ocapi/code-versions-client.ts +0 -54
- package/src/clients/ocapi/site-preferences-client.ts +0 -106
- package/src/clients/ocapi/system-objects-client.ts +0 -148
- package/src/clients/ocapi-client.ts +0 -53
- package/src/clients/script-debugger/index.ts +0 -5
- package/src/clients/script-debugger/script-debugger-client.ts +0 -754
- package/src/clients/sfra-client.ts +0 -339
- package/src/config/configuration-factory.ts +0 -201
- package/src/config/dw-json-loader.ts +0 -248
- package/src/config/workspace-roots.ts +0 -540
- package/src/constants/index.ts +0 -1
- package/src/core/handlers/abstract-client-handler.ts +0 -85
- package/src/core/handlers/agent-instructions-handler.ts +0 -48
- package/src/core/handlers/base-handler.ts +0 -172
- package/src/core/handlers/cartridge-handler.ts +0 -38
- package/src/core/handlers/client-factory.ts +0 -140
- package/src/core/handlers/code-version-handler.ts +0 -43
- package/src/core/handlers/docs-handler.ts +0 -19
- package/src/core/handlers/isml-handler.ts +0 -19
- package/src/core/handlers/job-log-handler.ts +0 -39
- package/src/core/handlers/log-handler.ts +0 -39
- package/src/core/handlers/script-debugger-handler.ts +0 -46
- package/src/core/handlers/sfra-handler.ts +0 -23
- package/src/core/handlers/simple-client-handler.ts +0 -78
- package/src/core/handlers/system-object-handler.ts +0 -43
- package/src/core/handlers/validation-helpers.ts +0 -206
- package/src/core/instruction-advisor.ts +0 -122
- package/src/core/server.ts +0 -374
- package/src/core/tool-definitions.ts +0 -30
- package/src/core/tool-schemas/agent-instruction-tools.ts +0 -72
- package/src/core/tool-schemas/cartridge-tools.ts +0 -29
- package/src/core/tool-schemas/code-version-tools.ts +0 -28
- package/src/core/tool-schemas/documentation-tools.ts +0 -104
- package/src/core/tool-schemas/index.ts +0 -27
- package/src/core/tool-schemas/isml-tools.ts +0 -89
- package/src/core/tool-schemas/log-tools.ts +0 -196
- package/src/core/tool-schemas/script-debugger-tools.ts +0 -83
- package/src/core/tool-schemas/sfra-tools.ts +0 -65
- package/src/core/tool-schemas/shared-schemas.ts +0 -158
- package/src/core/tool-schemas/system-object-tools.ts +0 -127
- package/src/index.ts +0 -20
- package/src/main.ts +0 -161
- package/src/services/file-system-service.ts +0 -117
- package/src/services/index.ts +0 -11
- package/src/services/path-service.ts +0 -124
- package/src/tool-configs/agent-instructions-tool-config.ts +0 -83
- package/src/tool-configs/cartridge-tool-config.ts +0 -41
- package/src/tool-configs/code-version-tool-config.ts +0 -37
- package/src/tool-configs/docs-tool-config.ts +0 -103
- package/src/tool-configs/isml-tool-config.ts +0 -87
- package/src/tool-configs/job-log-tool-config.ts +0 -119
- package/src/tool-configs/log-tool-config.ts +0 -110
- package/src/tool-configs/script-debugger-tool-config.ts +0 -69
- package/src/tool-configs/sfra-tool-config.ts +0 -74
- package/src/tool-configs/system-object-tool-config.ts +0 -142
- package/src/types/types.ts +0 -125
- package/src/utils/cache.ts +0 -291
- package/src/utils/category-utils.ts +0 -70
- package/src/utils/log-tool-constants.ts +0 -95
- package/src/utils/logger.ts +0 -260
- package/src/utils/markdown-utils.ts +0 -280
- package/src/utils/ocapi-url-builder.ts +0 -48
- package/src/utils/path-resolver.ts +0 -69
- package/src/utils/path-validation.ts +0 -113
- package/src/utils/query-builder.ts +0 -84
- package/src/utils/utils.ts +0 -139
- package/src/utils/validator.ts +0 -162
- package/tests/__mocks__/docs-client.ts +0 -8
- package/tests/__mocks__/src/clients/base/http-client.js +0 -43
- package/tests/__mocks__/webdav.js +0 -14
- package/tests/base-handler.test.ts +0 -527
- package/tests/base-http-client.test.ts +0 -311
- package/tests/cache.test.ts +0 -453
- package/tests/cartridge-handler.test.ts +0 -290
- package/tests/class-content-parser.test.ts +0 -629
- package/tests/class-name-resolver.test.ts +0 -365
- package/tests/client-factory.test.ts +0 -280
- package/tests/code-version-handler.test.ts +0 -291
- package/tests/code-versions-client.test.ts +0 -156
- package/tests/config.test.ts +0 -285
- package/tests/configuration-factory.test.ts +0 -233
- package/tests/docs-handler.test.ts +0 -359
- package/tests/documentation-scanner.test.ts +0 -755
- package/tests/file-system-service.test.ts +0 -111
- package/tests/isml-client.test.ts +0 -463
- package/tests/isml-handler.test.ts +0 -375
- package/tests/job-log-handler.test.ts +0 -283
- package/tests/log-client.test.ts +0 -768
- package/tests/log-handler.test.ts +0 -365
- package/tests/log-processor.test.ts +0 -243
- package/tests/log-validation.test.ts +0 -149
- package/tests/logger.test.ts +0 -303
- package/tests/mcp/AGENTS.md +0 -162
- package/tests/mcp/README.md +0 -237
- package/tests/mcp/node/activate-code-version-advanced.full-mode.programmatic.test.js +0 -669
- package/tests/mcp/node/code-versions.full-mode.programmatic.test.js +0 -605
- package/tests/mcp/node/evaluate-script.full-mode.programmatic.test.js +0 -387
- package/tests/mcp/node/generate-cartridge-structure.docs-only.programmatic.test.js +0 -644
- package/tests/mcp/node/get-available-sfra-documents.programmatic.test.js +0 -274
- package/tests/mcp/node/get-isml-categories.programmatic.test.js +0 -278
- package/tests/mcp/node/get-isml-element.programmatic.test.js +0 -278
- package/tests/mcp/node/get-isml-elements-by-category.programmatic.test.js +0 -363
- package/tests/mcp/node/get-job-execution-summary.full-mode.programmatic.test.js +0 -432
- package/tests/mcp/node/get-job-log-entries.full-mode.programmatic.test.js +0 -488
- package/tests/mcp/node/get-latest-debug.full-mode.programmatic.test.js +0 -338
- package/tests/mcp/node/get-latest-error.full-mode.programmatic.test.js +0 -255
- package/tests/mcp/node/get-latest-info.full-mode.programmatic.test.js +0 -347
- package/tests/mcp/node/get-latest-job-log-files.full-mode.programmatic.test.js +0 -460
- package/tests/mcp/node/get-latest-warn.full-mode.programmatic.test.js +0 -454
- package/tests/mcp/node/get-log-file-contents.full-mode.programmatic.test.js +0 -381
- package/tests/mcp/node/get-sfcc-class-documentation.docs-only.programmatic.test.js +0 -371
- package/tests/mcp/node/get-sfcc-class-info.docs-only.programmatic.test.js +0 -1032
- package/tests/mcp/node/get-sfra-categories.docs-only.programmatic.test.js +0 -369
- package/tests/mcp/node/get-sfra-document.programmatic.test.js +0 -473
- package/tests/mcp/node/get-sfra-documents-by-category.docs-only.programmatic.test.js +0 -510
- package/tests/mcp/node/get-system-object-definition.full-mode.programmatic.test.js +0 -389
- package/tests/mcp/node/get-system-object-definitions.docs-only.programmatic.test.js +0 -300
- package/tests/mcp/node/get-system-object-definitions.full-mode.programmatic.test.js +0 -387
- package/tests/mcp/node/list-isml-elements.programmatic.test.js +0 -311
- package/tests/mcp/node/list-log-files.full-mode.programmatic.test.js +0 -150
- package/tests/mcp/node/list-sfcc-classes.docs-only.programmatic.test.js +0 -612
- package/tests/mcp/node/search-custom-object-attribute-definitions.full-mode.programmatic.test.js +0 -875
- package/tests/mcp/node/search-isml-elements.programmatic.test.js +0 -325
- package/tests/mcp/node/search-job-logs-by-name.full-mode.programmatic.test.js +0 -330
- package/tests/mcp/node/search-job-logs.full-mode.programmatic.test.js +0 -526
- package/tests/mcp/node/search-logs.full-mode.programmatic.test.js +0 -478
- package/tests/mcp/node/search-sfcc-classes.docs-only.programmatic.test.js +0 -334
- package/tests/mcp/node/search-sfcc-methods.docs-only.programmatic.test.js +0 -487
- package/tests/mcp/node/search-sfra-documentation.docs-only.programmatic.test.js +0 -563
- package/tests/mcp/node/search-site-preferences.full-mode.programmatic.test.js +0 -556
- package/tests/mcp/node/search-system-object-attribute-definitions.full-mode.programmatic.test.js +0 -744
- package/tests/mcp/node/search-system-object-attribute-groups.full-mode.programmatic.test.js +0 -657
- package/tests/mcp/node/summarize-logs.full-mode.programmatic.test.js +0 -357
- package/tests/mcp/node/tools.docs-only.programmatic.test.js +0 -515
- package/tests/mcp/node/tools.full-mode.programmatic.test.js +0 -154
- package/tests/mcp/test-fixtures/dw.json +0 -10
- package/tests/mcp/yaml/activate-code-version.docs-only.test.mcp.yml +0 -318
- package/tests/mcp/yaml/activate-code-version.full-mode.test.mcp.yml +0 -507
- package/tests/mcp/yaml/evaluate-script.full-mode.test.mcp.yml +0 -281
- package/tests/mcp/yaml/get-available-sfra-documents.docs-only.test.mcp.yml +0 -684
- package/tests/mcp/yaml/get-available-sfra-documents.full-mode.test.mcp.yml +0 -684
- package/tests/mcp/yaml/get-code-versions.docs-only.test.mcp.yml +0 -196
- package/tests/mcp/yaml/get-code-versions.full-mode.test.mcp.yml +0 -273
- package/tests/mcp/yaml/get-isml-categories.docs-only.test.mcp.yml +0 -330
- package/tests/mcp/yaml/get-isml-element.docs-only.test.mcp.yml +0 -294
- package/tests/mcp/yaml/get-isml-elements-by-category.docs-only.test.mcp.yml +0 -334
- package/tests/mcp/yaml/get-job-execution-summary.full-mode.test.mcp.yml +0 -148
- package/tests/mcp/yaml/get-job-log-entries.full-mode.test.mcp.yml +0 -284
- package/tests/mcp/yaml/get-latest-debug.full-mode.test.mcp.yml +0 -191
- package/tests/mcp/yaml/get-latest-error.full-mode.test.mcp.yml +0 -195
- package/tests/mcp/yaml/get-latest-info.full-mode.test.mcp.yml +0 -242
- package/tests/mcp/yaml/get-latest-job-log-files.full-mode.test.mcp.yml +0 -189
- package/tests/mcp/yaml/get-latest-warn.full-mode.test.mcp.yml +0 -182
- package/tests/mcp/yaml/get-log-file-contents.full-mode.test.mcp.yml +0 -256
- package/tests/mcp/yaml/get-sfcc-class-documentation.docs-only.test.mcp.yml +0 -2416
- package/tests/mcp/yaml/get-sfcc-class-documentation.full-mode.test.mcp.yml +0 -2416
- package/tests/mcp/yaml/get-sfcc-class-info.docs-only.test.mcp.yml +0 -1225
- package/tests/mcp/yaml/get-sfcc-class-info.full-mode.test.mcp.yml +0 -1225
- package/tests/mcp/yaml/get-sfra-categories.docs-only.test.mcp.yml +0 -452
- package/tests/mcp/yaml/get-sfra-categories.full-mode.test.mcp.yml +0 -452
- package/tests/mcp/yaml/get-sfra-document.docs-only.test.mcp.yml +0 -525
- package/tests/mcp/yaml/get-sfra-document.full-mode.test.mcp.yml +0 -525
- package/tests/mcp/yaml/get-sfra-documents-by-category.docs-only.test.mcp.yml +0 -507
- package/tests/mcp/yaml/get-sfra-documents-by-category.full-mode.test.mcp.yml +0 -507
- package/tests/mcp/yaml/get-system-object-definition.docs-only.test.mcp.yml +0 -208
- package/tests/mcp/yaml/get-system-object-definition.full-mode.test.mcp.yml +0 -191
- package/tests/mcp/yaml/get-system-object-definitions.docs-only.test.mcp.yml +0 -257
- package/tests/mcp/yaml/get-system-object-definitions.full-mode.test.mcp.yml +0 -517
- package/tests/mcp/yaml/get_latest_error.test.mcp.yml +0 -472
- package/tests/mcp/yaml/list-isml-elements.docs-only.test.mcp.yml +0 -212
- package/tests/mcp/yaml/list-log-files.full-mode.test.mcp.yml +0 -89
- package/tests/mcp/yaml/list-sfcc-classes.docs-only.test.mcp.yml +0 -511
- package/tests/mcp/yaml/list-sfcc-classes.full-mode.test.mcp.yml +0 -511
- package/tests/mcp/yaml/search-custom-object-attribute-definitions.docs-only.test.mcp.yml +0 -82
- package/tests/mcp/yaml/search-custom-object-attribute-definitions.test.mcp.yml +0 -387
- package/tests/mcp/yaml/search-isml-elements.docs-only.test.mcp.yml +0 -312
- package/tests/mcp/yaml/search-job-logs-by-name.full-mode.test.mcp.yml +0 -169
- package/tests/mcp/yaml/search-job-logs.full-mode.test.mcp.yml +0 -174
- package/tests/mcp/yaml/search-logs.full-mode.test.mcp.yml +0 -207
- package/tests/mcp/yaml/search-sfcc-classes.docs-only.test.mcp.yml +0 -1157
- package/tests/mcp/yaml/search-sfcc-classes.full-mode.test.mcp.yml +0 -1157
- package/tests/mcp/yaml/search-sfcc-methods.docs-only.test.mcp.yml +0 -723
- package/tests/mcp/yaml/search-sfcc-methods.full-mode.test.mcp.yml +0 -723
- package/tests/mcp/yaml/search-sfra-documentation.docs-only.test.mcp.yml +0 -427
- package/tests/mcp/yaml/search-sfra-documentation.full-mode.test.mcp.yml +0 -427
- package/tests/mcp/yaml/search-site-preferences.docs-only.test.mcp.yml +0 -295
- package/tests/mcp/yaml/search-site-preferences.full-mode.test.mcp.yml +0 -574
- package/tests/mcp/yaml/search-system-object-attribute-definitions.docs-only.test.mcp.yml +0 -168
- package/tests/mcp/yaml/search-system-object-attribute-definitions.full-mode.test.mcp.yml +0 -500
- package/tests/mcp/yaml/search-system-object-attribute-groups.docs-only.test.mcp.yml +0 -278
- package/tests/mcp/yaml/search-system-object-attribute-groups.full-mode.test.mcp.yml +0 -612
- package/tests/mcp/yaml/summarize-logs.full-mode.test.mcp.yml +0 -173
- package/tests/mcp/yaml/tools.docs-only.test.mcp.yml +0 -535
- package/tests/mcp/yaml/tools.full-mode.test.mcp.yml +0 -378
- package/tests/oauth-token.test.ts +0 -725
- package/tests/ocapi-auth-client.test.ts +0 -276
- package/tests/ocapi-client.test.ts +0 -242
- package/tests/path-service.test.ts +0 -96
- package/tests/query-builder.test.ts +0 -281
- package/tests/referenced-types-extractor.test.ts +0 -814
- package/tests/script-debugger-client.test.ts +0 -430
- package/tests/servers/sfcc-mock-server/README.md +0 -208
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/code-versions.json +0 -247
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-customapi.json +0 -128
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-globalsettings.json +0 -92
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-versionhistory.json +0 -256
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-ccv.json +0 -275
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-fastforward.json +0 -123
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-sfra.json +0 -224
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-storefront.json +0 -447
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-system.json +0 -171
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-campaign.json +0 -13
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-category.json +0 -50
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-order.json +0 -32
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-product.json +0 -224
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-sitepreferences.json +0 -62
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-customeraddress.json +0 -109
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-product-expanded.json +0 -183
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-product.json +0 -139
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-category.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customer.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customeraddress.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-order.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-product.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definitions-old.json +0 -354
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definitions.json +0 -172
- package/tests/servers/sfcc-mock-server/package-lock.json +0 -879
- package/tests/servers/sfcc-mock-server/package.json +0 -39
- package/tests/servers/sfcc-mock-server/scripts/setup-logs.js +0 -224
- package/tests/servers/sfcc-mock-server/server.js +0 -280
- package/tests/servers/sfcc-mock-server/src/app.js +0 -182
- package/tests/servers/sfcc-mock-server/src/config/server-config.js +0 -124
- package/tests/servers/sfcc-mock-server/src/middleware/auth.js +0 -101
- package/tests/servers/sfcc-mock-server/src/middleware/cors.js +0 -39
- package/tests/servers/sfcc-mock-server/src/middleware/logging.js +0 -124
- package/tests/servers/sfcc-mock-server/src/routes/cartridge-webdav.js +0 -258
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/code-versions-handler.js +0 -184
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/debugger-handler.js +0 -396
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/oauth-handler.js +0 -36
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/ocapi-error-utils.js +0 -221
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/ocapi-utils.js +0 -440
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/site-preferences-handler.js +0 -332
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/system-objects-handler.js +0 -572
- package/tests/servers/sfcc-mock-server/src/routes/ocapi.js +0 -58
- package/tests/servers/sfcc-mock-server/src/routes/storefront.js +0 -86
- package/tests/servers/sfcc-mock-server/src/routes/webdav.js +0 -240
- package/tests/servers/sfcc-mock-server/src/utils/mock-data-loader.js +0 -84
- package/tests/servers/sfcc-mock-server/src/utils/webdav-xml.js +0 -121
- package/tests/servers/sfcc-mock-server-manager.ts +0 -280
- package/tests/sfcc-mock-server.test.ts +0 -423
- package/tests/site-preferences-client.test.ts +0 -358
- package/tests/system-objects-client.test.ts +0 -310
- package/tests/utils.test.ts +0 -477
- package/tests/validation-helpers.test.ts +0 -325
- package/tests/validator.test.ts +0 -416
- package/tests/workspace-roots.test.ts +0 -227
- package/tsconfig.json +0 -20
- package/tsconfig.test.json +0 -20
package/docs/isml/isreplace.md
DELETED
|
@@ -1,783 +0,0 @@
|
|
|
1
|
-
# ISML isreplace Element
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The `<isreplace>` element is used within decorator templates to identify where decorated content should be inserted. It works in conjunction with `<isdecorate>` to implement the decorator pattern, allowing templates to wrap content with common layouts such as headers, footers, and page structure.
|
|
6
|
-
|
|
7
|
-
**Key Features:** Content injection point for decorator pattern, support for multiple or zero replacement points, flexible template composition.
|
|
8
|
-
|
|
9
|
-
**Note:** `<isreplace>` is only used **inside decorator templates**, not in the templates being decorated.
|
|
10
|
-
|
|
11
|
-
## Syntax
|
|
12
|
-
|
|
13
|
-
```isml
|
|
14
|
-
<isreplace/>
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Attributes
|
|
18
|
-
|
|
19
|
-
**None** - This is a self-closing tag with no attributes.
|
|
20
|
-
|
|
21
|
-
## Purpose
|
|
22
|
-
|
|
23
|
-
The `<isreplace>` element serves to:
|
|
24
|
-
|
|
25
|
-
1. **Mark Injection Point:** Identify where decorated content should be inserted into the decorator template
|
|
26
|
-
2. **Decorator Pattern:** Enable the decorator pattern for template composition
|
|
27
|
-
3. **Layout Templates:** Create reusable page layouts that wrap content
|
|
28
|
-
4. **Content Separation:** Separate page structure (decorator) from page content (decorated)
|
|
29
|
-
5. **Flexible Composition:** Support single, multiple, or zero content insertion points
|
|
30
|
-
|
|
31
|
-
## How It Works
|
|
32
|
-
|
|
33
|
-
### The Decorator Pattern Flow
|
|
34
|
-
|
|
35
|
-
1. **Content Template** uses `<isdecorate>` to specify a decorator template
|
|
36
|
-
2. **Decorator Template** contains `<isreplace>` to mark where content goes
|
|
37
|
-
3. **Content Replacement** occurs when content from `<isdecorate>` is injected at `<isreplace>`
|
|
38
|
-
|
|
39
|
-
```isml
|
|
40
|
-
<!-- Content Template (product/productDetails.isml) -->
|
|
41
|
-
<isdecorate template="common/layout/page">
|
|
42
|
-
<h1>${pdict.product.name}</h1>
|
|
43
|
-
<p>${pdict.product.description}</p>
|
|
44
|
-
</isdecorate>
|
|
45
|
-
|
|
46
|
-
<!-- Decorator Template (common/layout/page.isml) -->
|
|
47
|
-
<html>
|
|
48
|
-
<head><title>My Store</title></head>
|
|
49
|
-
<body>
|
|
50
|
-
<div id="header">
|
|
51
|
-
<isinclude template="common/header"/>
|
|
52
|
-
</div>
|
|
53
|
-
|
|
54
|
-
<div id="content">
|
|
55
|
-
<isreplace/> <!-- Product content inserted here -->
|
|
56
|
-
</div>
|
|
57
|
-
|
|
58
|
-
<div id="footer">
|
|
59
|
-
<isinclude template="common/footer"/>
|
|
60
|
-
</div>
|
|
61
|
-
</body>
|
|
62
|
-
</html>
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### Result
|
|
66
|
-
|
|
67
|
-
```html
|
|
68
|
-
<html>
|
|
69
|
-
<head><title>My Store</title></head>
|
|
70
|
-
<body>
|
|
71
|
-
<div id="header">
|
|
72
|
-
<!-- Header content -->
|
|
73
|
-
</div>
|
|
74
|
-
|
|
75
|
-
<div id="content">
|
|
76
|
-
<h1>Product Name</h1>
|
|
77
|
-
<p>Product Description</p>
|
|
78
|
-
</div>
|
|
79
|
-
|
|
80
|
-
<div id="footer">
|
|
81
|
-
<!-- Footer content -->
|
|
82
|
-
</div>
|
|
83
|
-
</body>
|
|
84
|
-
</html>
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## Replacement Scenarios
|
|
88
|
-
|
|
89
|
-
### Single isreplace (Standard Pattern)
|
|
90
|
-
|
|
91
|
-
**Most Common:** One `<isreplace>` tag identifies the single content injection point.
|
|
92
|
-
|
|
93
|
-
```isml
|
|
94
|
-
<!-- Decorator Template -->
|
|
95
|
-
<div class="page-wrapper">
|
|
96
|
-
<isinclude template="common/header"/>
|
|
97
|
-
|
|
98
|
-
<main class="content">
|
|
99
|
-
<isreplace/> <!-- Single content insertion point -->
|
|
100
|
-
</main>
|
|
101
|
-
|
|
102
|
-
<isinclude template="common/footer"/>
|
|
103
|
-
</div>
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### Multiple isreplace Tags
|
|
107
|
-
|
|
108
|
-
**Advanced Use:** Multiple `<isreplace>` tags cause the decorated content to be **duplicated** at each location.
|
|
109
|
-
|
|
110
|
-
```isml
|
|
111
|
-
<!-- Decorator Template -->
|
|
112
|
-
<div class="page-wrapper">
|
|
113
|
-
<!-- First insertion point -->
|
|
114
|
-
<div class="preview">
|
|
115
|
-
<isreplace/>
|
|
116
|
-
</div>
|
|
117
|
-
|
|
118
|
-
<!-- Second insertion point (duplicate content) -->
|
|
119
|
-
<div class="main-content">
|
|
120
|
-
<isreplace/>
|
|
121
|
-
</div>
|
|
122
|
-
</div>
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
**Result:** Content appears in **both** locations.
|
|
126
|
-
|
|
127
|
-
**Use Cases:**
|
|
128
|
-
- Preview and full content views
|
|
129
|
-
- Print and screen versions
|
|
130
|
-
- Duplicate content for accessibility or SEO
|
|
131
|
-
|
|
132
|
-
### Zero isreplace Tags
|
|
133
|
-
|
|
134
|
-
**Omit Content:** If decorator template has **no** `<isreplace>` tag, the decorated content is **not included** in output.
|
|
135
|
-
|
|
136
|
-
```isml
|
|
137
|
-
<!-- Decorator Template (no isreplace) -->
|
|
138
|
-
<div class="page-wrapper">
|
|
139
|
-
<isinclude template="common/header"/>
|
|
140
|
-
<isinclude template="common/footer"/>
|
|
141
|
-
<!-- No <isreplace/> - decorated content is omitted -->
|
|
142
|
-
</div>
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**Use Cases:**
|
|
146
|
-
- Error pages that ignore content
|
|
147
|
-
- Redirect pages
|
|
148
|
-
- Maintenance mode pages
|
|
149
|
-
|
|
150
|
-
## Common Use Cases
|
|
151
|
-
|
|
152
|
-
### Basic Page Layout Decorator
|
|
153
|
-
|
|
154
|
-
```isml
|
|
155
|
-
<!-- Content Template: product/productDetails.isml -->
|
|
156
|
-
<isdecorate template="common/layout/page">
|
|
157
|
-
<div class="product-details">
|
|
158
|
-
<h1>${pdict.product.name}</h1>
|
|
159
|
-
<div class="product-price">
|
|
160
|
-
<isprint value="${pdict.product.price}" style="MONEY_LONG"/>
|
|
161
|
-
</div>
|
|
162
|
-
<button class="add-to-cart">Add to Cart</button>
|
|
163
|
-
</div>
|
|
164
|
-
</isdecorate>
|
|
165
|
-
|
|
166
|
-
<!-- Decorator Template: common/layout/page.isml -->
|
|
167
|
-
<!DOCTYPE html>
|
|
168
|
-
<html>
|
|
169
|
-
<head>
|
|
170
|
-
<title>${pdict.pageTitle}</title>
|
|
171
|
-
<link rel="stylesheet" href="${URLUtils.staticURL('/css/main.css')}"/>
|
|
172
|
-
</head>
|
|
173
|
-
<body>
|
|
174
|
-
<header>
|
|
175
|
-
<isinclude template="common/header"/>
|
|
176
|
-
</header>
|
|
177
|
-
|
|
178
|
-
<nav>
|
|
179
|
-
<isinclude template="common/navigation"/>
|
|
180
|
-
</nav>
|
|
181
|
-
|
|
182
|
-
<main class="main-content">
|
|
183
|
-
<isreplace/> <!-- Product content inserted here -->
|
|
184
|
-
</main>
|
|
185
|
-
|
|
186
|
-
<footer>
|
|
187
|
-
<isinclude template="common/footer"/>
|
|
188
|
-
</footer>
|
|
189
|
-
</body>
|
|
190
|
-
</html>
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
### Page Type Specific Decorators
|
|
194
|
-
|
|
195
|
-
```isml
|
|
196
|
-
<!-- Product Page Decorator: decorator/product.isml -->
|
|
197
|
-
<body class="product-page">
|
|
198
|
-
<div id="pt_product">
|
|
199
|
-
<div id="container">
|
|
200
|
-
<div id="main">
|
|
201
|
-
<div id="content">
|
|
202
|
-
<isreplace/> <!-- Product content here -->
|
|
203
|
-
</div>
|
|
204
|
-
</div>
|
|
205
|
-
<div id="sidebar">
|
|
206
|
-
<isinclude template="product/recommendations"/>
|
|
207
|
-
</div>
|
|
208
|
-
</div>
|
|
209
|
-
</div>
|
|
210
|
-
</body>
|
|
211
|
-
|
|
212
|
-
<!-- Cart Page Decorator: decorator/cart.isml -->
|
|
213
|
-
<body class="cart-page">
|
|
214
|
-
<div id="pt_cart">
|
|
215
|
-
<div id="container">
|
|
216
|
-
<div id="main">
|
|
217
|
-
<div id="content">
|
|
218
|
-
<isreplace/> <!-- Cart content here -->
|
|
219
|
-
</div>
|
|
220
|
-
</div>
|
|
221
|
-
<div id="sidebar">
|
|
222
|
-
<isinclude template="cart/summary"/>
|
|
223
|
-
</div>
|
|
224
|
-
</div>
|
|
225
|
-
</div>
|
|
226
|
-
</body>
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
### SFRA Page Designer Decorator
|
|
230
|
-
|
|
231
|
-
```isml
|
|
232
|
-
<!-- Content Template: rendering template -->
|
|
233
|
-
<isdecorate template="common/layout/page">
|
|
234
|
-
<isslot id="slot1" context="global" description="Slot 1"/>
|
|
235
|
-
<isslot id="slot2" context="global" description="Slot 2"/>
|
|
236
|
-
</isdecorate>
|
|
237
|
-
|
|
238
|
-
<!-- Decorator Template: common/layout/page.isml -->
|
|
239
|
-
<!DOCTYPE html>
|
|
240
|
-
<html>
|
|
241
|
-
<head>
|
|
242
|
-
<isinclude template="common/htmlHead"/>
|
|
243
|
-
</head>
|
|
244
|
-
<body>
|
|
245
|
-
<div class="page ${pdict.pageType}">
|
|
246
|
-
<header>
|
|
247
|
-
<isinclude template="common/header"/>
|
|
248
|
-
</header>
|
|
249
|
-
|
|
250
|
-
<main>
|
|
251
|
-
<isreplace/> <!-- Page Designer slots inserted here -->
|
|
252
|
-
</main>
|
|
253
|
-
|
|
254
|
-
<footer>
|
|
255
|
-
<isinclude template="common/footer"/>
|
|
256
|
-
</footer>
|
|
257
|
-
</div>
|
|
258
|
-
|
|
259
|
-
<isinclude template="common/scripts"/>
|
|
260
|
-
</body>
|
|
261
|
-
</html>
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
### Responsive Layout with Multiple Sections
|
|
265
|
-
|
|
266
|
-
```isml
|
|
267
|
-
<!-- Decorator Template with structured content area -->
|
|
268
|
-
<div class="page-wrapper">
|
|
269
|
-
<isinclude template="common/header"/>
|
|
270
|
-
|
|
271
|
-
<div class="breadcrumbs">
|
|
272
|
-
<isinclude template="common/breadcrumbs"/>
|
|
273
|
-
</div>
|
|
274
|
-
|
|
275
|
-
<div class="main-container">
|
|
276
|
-
<aside class="sidebar">
|
|
277
|
-
<isinclude template="common/sidebar"/>
|
|
278
|
-
</aside>
|
|
279
|
-
|
|
280
|
-
<main class="content">
|
|
281
|
-
<isreplace/> <!-- Main content here -->
|
|
282
|
-
</main>
|
|
283
|
-
</div>
|
|
284
|
-
|
|
285
|
-
<isinclude template="common/footer"/>
|
|
286
|
-
</div>
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
### Checkout Flow Decorator
|
|
290
|
-
|
|
291
|
-
```isml
|
|
292
|
-
<!-- Checkout Decorator: decorator/checkout.isml -->
|
|
293
|
-
<body class="checkout">
|
|
294
|
-
<div class="checkout-wrapper">
|
|
295
|
-
<div class="checkout-header">
|
|
296
|
-
<isinclude template="checkout/header"/>
|
|
297
|
-
</div>
|
|
298
|
-
|
|
299
|
-
<div class="checkout-progress">
|
|
300
|
-
<isinclude template="checkout/progressIndicator"/>
|
|
301
|
-
</div>
|
|
302
|
-
|
|
303
|
-
<div class="checkout-content">
|
|
304
|
-
<isreplace/> <!-- Checkout step content -->
|
|
305
|
-
</div>
|
|
306
|
-
|
|
307
|
-
<div class="checkout-sidebar">
|
|
308
|
-
<isinclude template="checkout/orderSummary"/>
|
|
309
|
-
</div>
|
|
310
|
-
</div>
|
|
311
|
-
</body>
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
### Dynamic Decorator Selection
|
|
315
|
-
|
|
316
|
-
```isml
|
|
317
|
-
<!-- Content Template with dynamic decorator -->
|
|
318
|
-
<isset name="decoratorTemplate" value="${pdict.isMobile ? 'decorator/mobile' : 'decorator/desktop'}" scope="page"/>
|
|
319
|
-
|
|
320
|
-
<isdecorate template="${decoratorTemplate}">
|
|
321
|
-
<h1>${pdict.content.title}</h1>
|
|
322
|
-
<p>${pdict.content.body}</p>
|
|
323
|
-
</isdecorate>
|
|
324
|
-
|
|
325
|
-
<!-- Desktop Decorator: decorator/desktop.isml -->
|
|
326
|
-
<div class="desktop-layout">
|
|
327
|
-
<div class="three-column">
|
|
328
|
-
<div class="col-left"><isinclude template="common/sidebar"/></div>
|
|
329
|
-
<div class="col-center"><isreplace/></div>
|
|
330
|
-
<div class="col-right"><isinclude template="common/ads"/></div>
|
|
331
|
-
</div>
|
|
332
|
-
</div>
|
|
333
|
-
|
|
334
|
-
<!-- Mobile Decorator: decorator/mobile.isml -->
|
|
335
|
-
<div class="mobile-layout">
|
|
336
|
-
<div class="single-column">
|
|
337
|
-
<isreplace/> <!-- Full width on mobile -->
|
|
338
|
-
</div>
|
|
339
|
-
</div>
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
### Multiple isreplace Example (Duplicate Content)
|
|
343
|
-
|
|
344
|
-
```isml
|
|
345
|
-
<!-- Content Template -->
|
|
346
|
-
<isdecorate template="decorator/duplicate">
|
|
347
|
-
<div class="product-info">
|
|
348
|
-
<h2>${pdict.product.name}</h2>
|
|
349
|
-
<p>${pdict.product.shortDescription}</p>
|
|
350
|
-
</div>
|
|
351
|
-
</isdecorate>
|
|
352
|
-
|
|
353
|
-
<!-- Decorator Template: decorator/duplicate.isml -->
|
|
354
|
-
<div class="page">
|
|
355
|
-
<!-- Preview area (collapsed by default) -->
|
|
356
|
-
<div class="preview" aria-hidden="true">
|
|
357
|
-
<h3>Preview</h3>
|
|
358
|
-
<isreplace/> <!-- First insertion -->
|
|
359
|
-
</div>
|
|
360
|
-
|
|
361
|
-
<!-- Main content area -->
|
|
362
|
-
<div class="main-content">
|
|
363
|
-
<isreplace/> <!-- Second insertion (duplicate) -->
|
|
364
|
-
</div>
|
|
365
|
-
</div>
|
|
366
|
-
|
|
367
|
-
<!-- Result: Product info appears in BOTH preview and main-content divs -->
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
### Zero isreplace Example (Content Omitted)
|
|
371
|
-
|
|
372
|
-
```isml
|
|
373
|
-
<!-- Content Template -->
|
|
374
|
-
<isdecorate template="decorator/maintenance">
|
|
375
|
-
<h1>Original Page Content</h1>
|
|
376
|
-
<p>This content will not be displayed.</p>
|
|
377
|
-
</isdecorate>
|
|
378
|
-
|
|
379
|
-
<!-- Decorator Template: decorator/maintenance.isml -->
|
|
380
|
-
<div class="maintenance-mode">
|
|
381
|
-
<h1>Site Under Maintenance</h1>
|
|
382
|
-
<p>We'll be back soon!</p>
|
|
383
|
-
<!-- No <isreplace/> tag - decorated content is omitted -->
|
|
384
|
-
</div>
|
|
385
|
-
|
|
386
|
-
<!-- Result: Only maintenance message is shown, original content is discarded -->
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
## Best Practices
|
|
390
|
-
|
|
391
|
-
### 1. Use Meaningful Decorator Names
|
|
392
|
-
|
|
393
|
-
Name decorator templates to reflect their purpose:
|
|
394
|
-
|
|
395
|
-
```isml
|
|
396
|
-
<!-- Good: Descriptive names -->
|
|
397
|
-
<isdecorate template="decorator/product">
|
|
398
|
-
<isdecorate template="decorator/checkout">
|
|
399
|
-
<isdecorate template="decorator/account">
|
|
400
|
-
|
|
401
|
-
<!-- Less clear: Generic names -->
|
|
402
|
-
<isdecorate template="decorator/template1">
|
|
403
|
-
<isdecorate template="decorator/page">
|
|
404
|
-
```
|
|
405
|
-
|
|
406
|
-
### 2. Keep Decorators Simple and Focused
|
|
407
|
-
|
|
408
|
-
Decorators should provide structure, not business logic:
|
|
409
|
-
|
|
410
|
-
```isml
|
|
411
|
-
<!-- Good: Structure only -->
|
|
412
|
-
<div class="page-wrapper">
|
|
413
|
-
<isinclude template="common/header"/>
|
|
414
|
-
<main><isreplace/></main>
|
|
415
|
-
<isinclude template="common/footer"/>
|
|
416
|
-
</div>
|
|
417
|
-
|
|
418
|
-
<!-- Avoid: Business logic in decorator -->
|
|
419
|
-
<div class="page-wrapper">
|
|
420
|
-
<isif condition="${pdict.showPromo}">
|
|
421
|
-
<!-- Complex promo logic -->
|
|
422
|
-
</isif>
|
|
423
|
-
<isreplace/>
|
|
424
|
-
</div>
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
### 3. Use Single isreplace Unless You Need Duplication
|
|
428
|
-
|
|
429
|
-
Stick with one `<isreplace>` tag for clarity:
|
|
430
|
-
|
|
431
|
-
```isml
|
|
432
|
-
<!-- Standard: Single replacement point -->
|
|
433
|
-
<main class="content">
|
|
434
|
-
<isreplace/>
|
|
435
|
-
</main>
|
|
436
|
-
|
|
437
|
-
<!-- Only use multiple if truly needed -->
|
|
438
|
-
<div class="print-version">
|
|
439
|
-
<isreplace/> <!-- For print -->
|
|
440
|
-
</div>
|
|
441
|
-
<div class="screen-version">
|
|
442
|
-
<isreplace/> <!-- For screen -->
|
|
443
|
-
</div>
|
|
444
|
-
```
|
|
445
|
-
|
|
446
|
-
### 4. Document When Using Multiple or Zero isreplace
|
|
447
|
-
|
|
448
|
-
Add comments to explain non-standard usage:
|
|
449
|
-
|
|
450
|
-
```isml
|
|
451
|
-
<!-- Multiple isreplace: Content appears in both locations for accessibility -->
|
|
452
|
-
<div class="visual-content"><isreplace/></div>
|
|
453
|
-
<div class="screen-reader-content" aria-live="polite"><isreplace/></div>
|
|
454
|
-
|
|
455
|
-
<!-- Zero isreplace: Maintenance mode - content intentionally omitted -->
|
|
456
|
-
<div class="maintenance-message">
|
|
457
|
-
<h1>Under Maintenance</h1>
|
|
458
|
-
<!-- No <isreplace/> - decorated content not displayed -->
|
|
459
|
-
</div>
|
|
460
|
-
```
|
|
461
|
-
|
|
462
|
-
### 5. Organize Decorators by Page Type
|
|
463
|
-
|
|
464
|
-
Create dedicated decorator directories:
|
|
465
|
-
|
|
466
|
-
```
|
|
467
|
-
templates/
|
|
468
|
-
decorator/
|
|
469
|
-
product.isml
|
|
470
|
-
category.isml
|
|
471
|
-
checkout.isml
|
|
472
|
-
account.isml
|
|
473
|
-
search.isml
|
|
474
|
-
error.isml
|
|
475
|
-
```
|
|
476
|
-
|
|
477
|
-
### 6. Include Common Elements in Decorators
|
|
478
|
-
|
|
479
|
-
Decorators are ideal for shared page elements:
|
|
480
|
-
|
|
481
|
-
```isml
|
|
482
|
-
<!-- Decorator includes common elements -->
|
|
483
|
-
<!DOCTYPE html>
|
|
484
|
-
<html>
|
|
485
|
-
<head>
|
|
486
|
-
<isinclude template="common/htmlHead"/>
|
|
487
|
-
</head>
|
|
488
|
-
<body>
|
|
489
|
-
<isinclude template="common/header"/>
|
|
490
|
-
<isinclude template="common/navigation"/>
|
|
491
|
-
|
|
492
|
-
<main>
|
|
493
|
-
<isreplace/> <!-- Page-specific content -->
|
|
494
|
-
</main>
|
|
495
|
-
|
|
496
|
-
<isinclude template="common/footer"/>
|
|
497
|
-
<isinclude template="common/scripts"/>
|
|
498
|
-
</body>
|
|
499
|
-
</html>
|
|
500
|
-
```
|
|
501
|
-
|
|
502
|
-
### 7. Use Decorators for Consistent Page Structure
|
|
503
|
-
|
|
504
|
-
Ensure all pages follow the same structural pattern:
|
|
505
|
-
|
|
506
|
-
```isml
|
|
507
|
-
<!-- All product pages use the same decorator -->
|
|
508
|
-
<isdecorate template="decorator/product">
|
|
509
|
-
<!-- Product-specific content -->
|
|
510
|
-
</isdecorate>
|
|
511
|
-
|
|
512
|
-
<!-- All category pages use the same decorator -->
|
|
513
|
-
<isdecorate template="decorator/category">
|
|
514
|
-
<!-- Category-specific content -->
|
|
515
|
-
</isdecorate>
|
|
516
|
-
```
|
|
517
|
-
|
|
518
|
-
## SFRA Pattern
|
|
519
|
-
|
|
520
|
-
In Storefront Reference Architecture (SFRA), decorators are commonly used with page templates:
|
|
521
|
-
|
|
522
|
-
```isml
|
|
523
|
-
<!-- SFRA Content Template: product/productDetails.isml -->
|
|
524
|
-
<iscontent type="text/html" charset="UTF-8" compact="true"/>
|
|
525
|
-
|
|
526
|
-
<isset name="decoratorTemplate" value="common/layout/page" scope="page"/>
|
|
527
|
-
|
|
528
|
-
<isdecorate template="${decoratorTemplate}">
|
|
529
|
-
<isscript>
|
|
530
|
-
var assets = require('*/cartridge/scripts/assets');
|
|
531
|
-
assets.addCss('/css/product.css');
|
|
532
|
-
assets.addJs('/js/product.js');
|
|
533
|
-
</isscript>
|
|
534
|
-
|
|
535
|
-
<div class="product-detail">
|
|
536
|
-
<!-- Product content -->
|
|
537
|
-
</div>
|
|
538
|
-
</isdecorate>
|
|
539
|
-
|
|
540
|
-
<!-- SFRA Decorator: common/layout/page.isml -->
|
|
541
|
-
<!DOCTYPE html>
|
|
542
|
-
<html lang="${require('dw/util/Locale').getLocale(request.locale).language}">
|
|
543
|
-
<head>
|
|
544
|
-
<isinclude template="common/htmlHead"/>
|
|
545
|
-
</head>
|
|
546
|
-
<body>
|
|
547
|
-
${require('*/cartridge/scripts/assets.js').styles()}
|
|
548
|
-
|
|
549
|
-
<div class="page" data-action="${pdict.action}" data-querystring="${pdict.queryString}">
|
|
550
|
-
<isinclude template="common/header"/>
|
|
551
|
-
|
|
552
|
-
<main id="maincontent">
|
|
553
|
-
<isreplace/>
|
|
554
|
-
</main>
|
|
555
|
-
|
|
556
|
-
<isinclude template="common/footer"/>
|
|
557
|
-
</div>
|
|
558
|
-
|
|
559
|
-
${require('*/cartridge/scripts/assets.js').scripts()}
|
|
560
|
-
</body>
|
|
561
|
-
</html>
|
|
562
|
-
```
|
|
563
|
-
|
|
564
|
-
## Relationship with isdecorate
|
|
565
|
-
|
|
566
|
-
`<isreplace>` is always used **inside decorator templates** referenced by `<isdecorate>`:
|
|
567
|
-
|
|
568
|
-
| Element | Location | Purpose |
|
|
569
|
-
|---------|----------|---------|
|
|
570
|
-
| `<isdecorate>` | Content template (outer) | Specifies which decorator to use |
|
|
571
|
-
| `<isreplace>` | Decorator template (inner) | Marks where content goes |
|
|
572
|
-
|
|
573
|
-
```isml
|
|
574
|
-
<!-- Content Template uses isdecorate -->
|
|
575
|
-
<isdecorate template="decorator/page">
|
|
576
|
-
<h1>My Content</h1>
|
|
577
|
-
</isdecorate>
|
|
578
|
-
|
|
579
|
-
<!-- Decorator Template uses isreplace -->
|
|
580
|
-
<div class="wrapper">
|
|
581
|
-
<isreplace/> <!-- Content inserted here -->
|
|
582
|
-
</div>
|
|
583
|
-
```
|
|
584
|
-
|
|
585
|
-
## Common Patterns
|
|
586
|
-
|
|
587
|
-
### Pattern 1: Standard Page Layout
|
|
588
|
-
|
|
589
|
-
```isml
|
|
590
|
-
<!-- Decorator -->
|
|
591
|
-
<html>
|
|
592
|
-
<head><title>${pdict.title}</title></head>
|
|
593
|
-
<body>
|
|
594
|
-
<header><isinclude template="common/header"/></header>
|
|
595
|
-
<main><isreplace/></main>
|
|
596
|
-
<footer><isinclude template="common/footer"/></footer>
|
|
597
|
-
</body>
|
|
598
|
-
</html>
|
|
599
|
-
```
|
|
600
|
-
|
|
601
|
-
### Pattern 2: Two-Column Layout
|
|
602
|
-
|
|
603
|
-
```isml
|
|
604
|
-
<!-- Decorator -->
|
|
605
|
-
<div class="two-column">
|
|
606
|
-
<aside class="sidebar">
|
|
607
|
-
<isinclude template="common/sidebar"/>
|
|
608
|
-
</aside>
|
|
609
|
-
<main class="content">
|
|
610
|
-
<isreplace/>
|
|
611
|
-
</main>
|
|
612
|
-
</div>
|
|
613
|
-
```
|
|
614
|
-
|
|
615
|
-
### Pattern 3: Conditional Layout
|
|
616
|
-
|
|
617
|
-
```isml
|
|
618
|
-
<!-- Decorator -->
|
|
619
|
-
<div class="page">
|
|
620
|
-
<isif condition="${pdict.showSidebar}">
|
|
621
|
-
<aside><isinclude template="common/sidebar"/></aside>
|
|
622
|
-
<main class="with-sidebar"><isreplace/></main>
|
|
623
|
-
<iselse>
|
|
624
|
-
<main class="full-width"><isreplace/></main>
|
|
625
|
-
</isif>
|
|
626
|
-
</div>
|
|
627
|
-
```
|
|
628
|
-
|
|
629
|
-
### Pattern 4: Nested Decorators
|
|
630
|
-
|
|
631
|
-
```isml
|
|
632
|
-
<!-- Outer Content Template -->
|
|
633
|
-
<isdecorate template="decorator/page">
|
|
634
|
-
<!-- Inner Content uses another decorator -->
|
|
635
|
-
<isdecorate template="decorator/section">
|
|
636
|
-
<h2>Section Content</h2>
|
|
637
|
-
</isdecorate>
|
|
638
|
-
</isdecorate>
|
|
639
|
-
|
|
640
|
-
<!-- Outer Decorator: decorator/page.isml -->
|
|
641
|
-
<html>
|
|
642
|
-
<body>
|
|
643
|
-
<main><isreplace/></main> <!-- Inner decorator inserted here -->
|
|
644
|
-
</body>
|
|
645
|
-
</html>
|
|
646
|
-
|
|
647
|
-
<!-- Inner Decorator: decorator/section.isml -->
|
|
648
|
-
<div class="section">
|
|
649
|
-
<isreplace/> <!-- Section content inserted here -->
|
|
650
|
-
</div>
|
|
651
|
-
```
|
|
652
|
-
|
|
653
|
-
## Common Errors and Troubleshooting
|
|
654
|
-
|
|
655
|
-
### Content Not Appearing
|
|
656
|
-
|
|
657
|
-
**Symptom:** Decorated content doesn't appear in output.
|
|
658
|
-
|
|
659
|
-
**Causes:**
|
|
660
|
-
1. Missing `<isreplace/>` in decorator template
|
|
661
|
-
2. Typo in decorator template path
|
|
662
|
-
3. Decorator template not found
|
|
663
|
-
|
|
664
|
-
**Solution:**
|
|
665
|
-
```isml
|
|
666
|
-
<!-- Check decorator template has <isreplace/> -->
|
|
667
|
-
<div class="wrapper">
|
|
668
|
-
<isreplace/> <!-- Make sure this exists -->
|
|
669
|
-
</div>
|
|
670
|
-
|
|
671
|
-
<!-- Verify decorator path is correct -->
|
|
672
|
-
<isdecorate template="common/layout/page"> <!-- Correct path? -->
|
|
673
|
-
```
|
|
674
|
-
|
|
675
|
-
### Content Appearing Multiple Times
|
|
676
|
-
|
|
677
|
-
**Symptom:** Content is duplicated in output.
|
|
678
|
-
|
|
679
|
-
**Cause:** Multiple `<isreplace/>` tags in decorator.
|
|
680
|
-
|
|
681
|
-
**Solution:**
|
|
682
|
-
```isml
|
|
683
|
-
<!-- Check for multiple isreplace tags -->
|
|
684
|
-
<div class="preview"><isreplace/></div> <!-- First -->
|
|
685
|
-
<div class="main"><isreplace/></div> <!-- Second - causes duplicate -->
|
|
686
|
-
|
|
687
|
-
<!-- Remove one if duplication not intended -->
|
|
688
|
-
<div class="main"><isreplace/></div>
|
|
689
|
-
```
|
|
690
|
-
|
|
691
|
-
### Decorator Not Applied
|
|
692
|
-
|
|
693
|
-
**Symptom:** Only content appears, no decorator structure.
|
|
694
|
-
|
|
695
|
-
**Cause:** `<isdecorate>` not properly wrapping content.
|
|
696
|
-
|
|
697
|
-
**Solution:**
|
|
698
|
-
```isml
|
|
699
|
-
<!-- Bad: isdecorate not wrapping content -->
|
|
700
|
-
<isdecorate template="decorator/page"/>
|
|
701
|
-
<h1>Content</h1>
|
|
702
|
-
|
|
703
|
-
<!-- Good: isdecorate wraps content -->
|
|
704
|
-
<isdecorate template="decorator/page">
|
|
705
|
-
<h1>Content</h1>
|
|
706
|
-
</isdecorate>
|
|
707
|
-
```
|
|
708
|
-
|
|
709
|
-
## Performance Considerations
|
|
710
|
-
|
|
711
|
-
### 1. Keep Decorators Lightweight
|
|
712
|
-
|
|
713
|
-
Decorators are processed for every decorated page:
|
|
714
|
-
|
|
715
|
-
```isml
|
|
716
|
-
<!-- Good: Simple structure -->
|
|
717
|
-
<div class="wrapper">
|
|
718
|
-
<isinclude template="common/header"/>
|
|
719
|
-
<main><isreplace/></main>
|
|
720
|
-
<isinclude template="common/footer"/>
|
|
721
|
-
</div>
|
|
722
|
-
|
|
723
|
-
<!-- Avoid: Heavy processing in decorator -->
|
|
724
|
-
<div class="wrapper">
|
|
725
|
-
<isloop items="${getAllProducts()}" var="product"> <!-- Expensive! -->
|
|
726
|
-
<!-- Process all products -->
|
|
727
|
-
</isloop>
|
|
728
|
-
<isreplace/>
|
|
729
|
-
</div>
|
|
730
|
-
```
|
|
731
|
-
|
|
732
|
-
### 2. Cache Decorator Includes When Possible
|
|
733
|
-
|
|
734
|
-
Use caching for static decorator sections:
|
|
735
|
-
|
|
736
|
-
```isml
|
|
737
|
-
<!-- Cache static header/footer includes -->
|
|
738
|
-
<isinclude template="common/header"/> <!-- Can be cached -->
|
|
739
|
-
<main><isreplace/></main> <!-- Dynamic content -->
|
|
740
|
-
<isinclude template="common/footer"/> <!-- Can be cached -->
|
|
741
|
-
```
|
|
742
|
-
|
|
743
|
-
## Security Considerations
|
|
744
|
-
|
|
745
|
-
### 1. Validate Decorator Template Paths
|
|
746
|
-
|
|
747
|
-
Never use user input directly for decorator template selection:
|
|
748
|
-
|
|
749
|
-
```isml
|
|
750
|
-
<!-- Bad: User input for decorator -->
|
|
751
|
-
<isset name="decorator" value="${request.httpParameterMap.template}" scope="page"/>
|
|
752
|
-
<isdecorate template="${decorator}"> <!-- SECURITY RISK -->
|
|
753
|
-
|
|
754
|
-
<!-- Good: Controlled decorator selection -->
|
|
755
|
-
<isset name="decorator" value="${pdict.isCheckout ? 'decorator/checkout' : 'decorator/page'}" scope="page"/>
|
|
756
|
-
<isdecorate template="${decorator}">
|
|
757
|
-
```
|
|
758
|
-
|
|
759
|
-
### 2. Sanitize Content in Decorators
|
|
760
|
-
|
|
761
|
-
Ensure proper encoding in decorator templates:
|
|
762
|
-
|
|
763
|
-
```isml
|
|
764
|
-
<!-- Decorator with safe output -->
|
|
765
|
-
<div class="page">
|
|
766
|
-
<h1><isprint value="${pdict.pageTitle}" encoding="on"/></h1>
|
|
767
|
-
<main><isreplace/></main>
|
|
768
|
-
</div>
|
|
769
|
-
```
|
|
770
|
-
|
|
771
|
-
## Related Elements
|
|
772
|
-
|
|
773
|
-
- **`<isdecorate>`** - Specifies decorator template to use (wraps content)
|
|
774
|
-
- **`<isinclude>`** - Include common sections in decorator templates
|
|
775
|
-
- **`<isset>`** - Set decorator template path dynamically
|
|
776
|
-
|
|
777
|
-
## See Also
|
|
778
|
-
|
|
779
|
-
- [isdecorate Element](./isdecorate.md)
|
|
780
|
-
- [isinclude Element](./isinclude.md)
|
|
781
|
-
- [SFRA Controllers Skill](../../ai-instructions/skills/sfcc-sfra-controllers/SKILL.md)
|
|
782
|
-
- [Template Composition Patterns](./template-patterns.md)
|
|
783
|
-
- [ISML Development Skill](../../ai-instructions/skills/sfcc-isml-development/SKILL.md)
|