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/ismodule.md
DELETED
|
@@ -1,844 +0,0 @@
|
|
|
1
|
-
# ISML ismodule Element
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The `<ismodule>` element declares custom tags in your templates, enabling you to create reusable components with user-defined attributes. Custom tags are essentially parameterized template includes that provide a cleaner syntax for component reuse.
|
|
6
|
-
|
|
7
|
-
**SFRA Note:** In Storefront Reference Architecture (SFRA) implementations, this tag is primarily used for content assets.
|
|
8
|
-
|
|
9
|
-
## Syntax
|
|
10
|
-
|
|
11
|
-
```isml
|
|
12
|
-
<ismodule
|
|
13
|
-
template = template_path // required
|
|
14
|
-
name = tag_name // required
|
|
15
|
-
attribute = attr_name // 0 or more
|
|
16
|
-
/>
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Required Attributes
|
|
20
|
-
|
|
21
|
-
### template
|
|
22
|
-
|
|
23
|
-
**Type:** String or Expression
|
|
24
|
-
**Required:** Yes
|
|
25
|
-
|
|
26
|
-
Defines the path and name for the template that implements the custom tag. Relative paths are expanded from the server's template root directory.
|
|
27
|
-
|
|
28
|
-
**Path Rules:**
|
|
29
|
-
- Relative to cartridge's `templates/default` directory
|
|
30
|
-
- Template file names and folder names **cannot contain spaces**
|
|
31
|
-
- Can use expressions for dynamic template selection
|
|
32
|
-
|
|
33
|
-
**Examples:**
|
|
34
|
-
```isml
|
|
35
|
-
<!-- Fixed path -->
|
|
36
|
-
<ismodule template="TagExtension/background.isml" name="bgcolor" attribute="color"/>
|
|
37
|
-
|
|
38
|
-
<!-- Path without .isml extension (automatically added) -->
|
|
39
|
-
<ismodule template="components/productTile" name="producttile" attribute="product"/>
|
|
40
|
-
|
|
41
|
-
<!-- Expression-based path -->
|
|
42
|
-
<ismodule template="${'components/' + pdict.componentType}" name="customcomponent"/>
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### name
|
|
46
|
-
|
|
47
|
-
**Type:** String
|
|
48
|
-
**Required:** Yes
|
|
49
|
-
**Expressions:** Not allowed
|
|
50
|
-
|
|
51
|
-
Specifies the name of the custom tag.
|
|
52
|
-
|
|
53
|
-
**Naming Rules:**
|
|
54
|
-
- Custom tags are declared **without** the `is` prefix
|
|
55
|
-
- When **using** the custom tag, you **must include** the `is` prefix
|
|
56
|
-
- Can use either case (case-insensitive)
|
|
57
|
-
|
|
58
|
-
**Examples:**
|
|
59
|
-
```isml
|
|
60
|
-
<!-- Declaration: name without "is" prefix -->
|
|
61
|
-
<ismodule template="components/product" name="producttile"/>
|
|
62
|
-
|
|
63
|
-
<!-- Usage: Must include "is" prefix -->
|
|
64
|
-
<isproducttile product="${product}"/>
|
|
65
|
-
|
|
66
|
-
<!-- Case insensitive -->
|
|
67
|
-
<ismodule name="myTag"/> <!-- Declared as "myTag" -->
|
|
68
|
-
<ismytag/> <!-- Used as "ismytag" -->
|
|
69
|
-
<isMyTag/> <!-- Also valid -->
|
|
70
|
-
<isMYTAG/> <!-- Also valid -->
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Optional Attributes
|
|
74
|
-
|
|
75
|
-
### attribute
|
|
76
|
-
|
|
77
|
-
**Type:** String
|
|
78
|
-
**Allowed:** 0 or more
|
|
79
|
-
**Expressions:** Not allowed
|
|
80
|
-
|
|
81
|
-
Specifies attributes that your custom tag can accept. You can define as many attributes as needed, and all attributes are optional.
|
|
82
|
-
|
|
83
|
-
**Important Rules:**
|
|
84
|
-
- All attribute names are stored in lowercase in the Pipeline Dictionary
|
|
85
|
-
- **Always use lowercase names** in attribute definitions
|
|
86
|
-
- Attributes are always optional at runtime
|
|
87
|
-
- No validation that attributes are provided—check explicitly if needed
|
|
88
|
-
|
|
89
|
-
**Examples:**
|
|
90
|
-
```isml
|
|
91
|
-
<!-- Single attribute -->
|
|
92
|
-
<ismodule template="components/button" name="button" attribute="label"/>
|
|
93
|
-
|
|
94
|
-
<!-- Multiple attributes -->
|
|
95
|
-
<ismodule
|
|
96
|
-
template="components/productTile"
|
|
97
|
-
name="producttile"
|
|
98
|
-
attribute="product"
|
|
99
|
-
attribute="showprice"
|
|
100
|
-
attribute="showrating"
|
|
101
|
-
/>
|
|
102
|
-
|
|
103
|
-
<!-- No attributes -->
|
|
104
|
-
<ismodule template="components/divider" name="divider"/>
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
## Purpose
|
|
108
|
-
|
|
109
|
-
The `<ismodule>` element enables:
|
|
110
|
-
|
|
111
|
-
1. **Custom Components:** Create reusable UI components with clean syntax
|
|
112
|
-
2. **Parameterized Templates:** Pass data to included templates through named attributes
|
|
113
|
-
3. **Abstraction:** Hide implementation details behind simple tag names
|
|
114
|
-
4. **Maintainability:** Centralize component logic in dedicated templates
|
|
115
|
-
5. **Readability:** Improve template readability with semantic custom tag names
|
|
116
|
-
6. **Content Assets:** Primary use in SFRA for content asset rendering
|
|
117
|
-
|
|
118
|
-
## How Custom Tags Work
|
|
119
|
-
|
|
120
|
-
### Declaration → Implementation → Usage
|
|
121
|
-
|
|
122
|
-
**1. Declaration (in parent template):**
|
|
123
|
-
```isml
|
|
124
|
-
<ismodule
|
|
125
|
-
template="TagExtension/background.isml"
|
|
126
|
-
name="bgcolor"
|
|
127
|
-
attribute="color"
|
|
128
|
-
/>
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
**2. Implementation (in TagExtension/background.isml):**
|
|
132
|
-
```isml
|
|
133
|
-
<isif condition="${color != null}">
|
|
134
|
-
<img src="${URLUtils.webRoot() + 'images/background_' + color + '.gif'}"/>
|
|
135
|
-
<iselse>
|
|
136
|
-
<img src="${URLUtils.webRoot() + 'images/background_default.gif'}"/>
|
|
137
|
-
</isif>
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
**3. Usage (in parent template, after declaration):**
|
|
141
|
-
```isml
|
|
142
|
-
<isbgcolor color="green"/>
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### Attribute Access
|
|
146
|
-
|
|
147
|
-
Attributes passed to custom tags are accessed **directly by name** in the implementation template (similar to user-defined variables):
|
|
148
|
-
|
|
149
|
-
```isml
|
|
150
|
-
<!-- Declaration -->
|
|
151
|
-
<ismodule
|
|
152
|
-
template="components/button"
|
|
153
|
-
name="button"
|
|
154
|
-
attribute="label"
|
|
155
|
-
attribute="url"
|
|
156
|
-
attribute="style"
|
|
157
|
-
/>
|
|
158
|
-
|
|
159
|
-
<!-- Implementation (components/button.isml) -->
|
|
160
|
-
<a href="${url}" class="btn btn-${style}">
|
|
161
|
-
${label}
|
|
162
|
-
</a>
|
|
163
|
-
|
|
164
|
-
<!-- Usage -->
|
|
165
|
-
<isbutton label="Add to Cart" url="${addToCartUrl}" style="primary"/>
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
## Declaration Rules
|
|
169
|
-
|
|
170
|
-
### Placement
|
|
171
|
-
|
|
172
|
-
The `<ismodule>` declaration can be located **anywhere** in the template, but **must appear before** the first usage of the custom tag.
|
|
173
|
-
|
|
174
|
-
```isml
|
|
175
|
-
<!-- Good: Declaration before usage -->
|
|
176
|
-
<ismodule template="components/badge" name="badge" attribute="text"/>
|
|
177
|
-
|
|
178
|
-
<isbadge text="New"/> <!-- OK -->
|
|
179
|
-
|
|
180
|
-
<!-- Bad: Usage before declaration -->
|
|
181
|
-
<isbadge text="New"/> <!-- ERROR -->
|
|
182
|
-
|
|
183
|
-
<ismodule template="components/badge" name="badge" attribute="text"/>
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
### Multiple Declarations
|
|
187
|
-
|
|
188
|
-
Multiple declarations of the same tag don't interrupt template processing—the **last declaration is used**.
|
|
189
|
-
|
|
190
|
-
```isml
|
|
191
|
-
<!-- First declaration -->
|
|
192
|
-
<ismodule template="components/button1" name="button" attribute="label"/>
|
|
193
|
-
|
|
194
|
-
<!-- Second declaration (overrides first) -->
|
|
195
|
-
<ismodule template="components/button2" name="button" attribute="label"/>
|
|
196
|
-
|
|
197
|
-
<!-- Uses components/button2 implementation -->
|
|
198
|
-
<isbutton label="Click Me"/>
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### Declarations in Included Templates
|
|
202
|
-
|
|
203
|
-
You can define a custom tag in an **included template** and use it afterward in the **including template**:
|
|
204
|
-
|
|
205
|
-
```isml
|
|
206
|
-
<!-- Including template (main.isml) -->
|
|
207
|
-
<isinclude template="tagDefinitions"/>
|
|
208
|
-
|
|
209
|
-
<!-- Now can use tags declared in tagDefinitions.isml -->
|
|
210
|
-
<ismybadge text="Featured"/>
|
|
211
|
-
|
|
212
|
-
<!-- tagDefinitions.isml -->
|
|
213
|
-
<ismodule template="components/badge" name="mybadge" attribute="text"/>
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
## Attribute Behavior
|
|
217
|
-
|
|
218
|
-
### String or Expression Values
|
|
219
|
-
|
|
220
|
-
Attribute values can be **strings or expressions** that are converted to strings during runtime:
|
|
221
|
-
|
|
222
|
-
```isml
|
|
223
|
-
<!-- String literal -->
|
|
224
|
-
<isbutton label="Add to Cart"/>
|
|
225
|
-
|
|
226
|
-
<!-- Expression -->
|
|
227
|
-
<isbutton label="${Resource.msg('button.addtocart', 'product', null)}"/>
|
|
228
|
-
|
|
229
|
-
<!-- Variable -->
|
|
230
|
-
<isbutton label="${pdict.buttonText}"/>
|
|
231
|
-
|
|
232
|
-
<!-- Computed value -->
|
|
233
|
-
<isbutton label="${'Buy ' + product.name}"/>
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### Optional Attributes
|
|
237
|
-
|
|
238
|
-
All attributes are **always optional**. The template processor doesn't check if attributes are missing—you must check explicitly if needed.
|
|
239
|
-
|
|
240
|
-
```isml
|
|
241
|
-
<!-- Implementation template checks if attribute provided -->
|
|
242
|
-
<isif condition="${label != null && label != ''}">
|
|
243
|
-
<button>${label}</button>
|
|
244
|
-
<iselse>
|
|
245
|
-
<button>Default Label</button>
|
|
246
|
-
</isif>
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
### Lowercase Attribute Names
|
|
250
|
-
|
|
251
|
-
Because all attribute names are stored in **lowercase** in the Pipeline Dictionary, always use lowercase names:
|
|
252
|
-
|
|
253
|
-
```isml
|
|
254
|
-
<!-- Good: Lowercase attribute names -->
|
|
255
|
-
<ismodule
|
|
256
|
-
template="components/product"
|
|
257
|
-
name="producttile"
|
|
258
|
-
attribute="product"
|
|
259
|
-
attribute="showprice"
|
|
260
|
-
/>
|
|
261
|
-
|
|
262
|
-
<!-- Avoid: Mixed case (stored as lowercase anyway) -->
|
|
263
|
-
<ismodule
|
|
264
|
-
template="components/product"
|
|
265
|
-
name="producttile"
|
|
266
|
-
attribute="Product" <!-- Stored as "product" -->
|
|
267
|
-
attribute="showPrice" <!-- Stored as "showprice" -->
|
|
268
|
-
/>
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
### Accessing Attributes in Implementation
|
|
272
|
-
|
|
273
|
-
Attributes are accessed by name in the implementation template:
|
|
274
|
-
|
|
275
|
-
```isml
|
|
276
|
-
<!-- Declaration -->
|
|
277
|
-
<ismodule
|
|
278
|
-
template="components/alert"
|
|
279
|
-
name="alert"
|
|
280
|
-
attribute="message"
|
|
281
|
-
attribute="type"
|
|
282
|
-
/>
|
|
283
|
-
|
|
284
|
-
<!-- Implementation (components/alert.isml) -->
|
|
285
|
-
<div class="alert alert-${type}">
|
|
286
|
-
<isif condition="${message != null}">
|
|
287
|
-
${message}
|
|
288
|
-
<iselse>
|
|
289
|
-
No message provided
|
|
290
|
-
</isif>
|
|
291
|
-
</div>
|
|
292
|
-
|
|
293
|
-
<!-- Usage -->
|
|
294
|
-
<isalert message="Product added to cart" type="success"/>
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
## Common Use Cases
|
|
298
|
-
|
|
299
|
-
### Background Color Tag
|
|
300
|
-
|
|
301
|
-
From the official SFCC documentation example:
|
|
302
|
-
|
|
303
|
-
**Declaration (sample1.isml):**
|
|
304
|
-
```isml
|
|
305
|
-
<!-- Tag declaration -->
|
|
306
|
-
<ismodule
|
|
307
|
-
template="TagExtension/background.isml"
|
|
308
|
-
name="bgcolor"
|
|
309
|
-
attribute="color"
|
|
310
|
-
/>
|
|
311
|
-
|
|
312
|
-
<!-- Tag usage -->
|
|
313
|
-
<isbgcolor color="green"/>
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
**Implementation (TagExtension/background.isml):**
|
|
317
|
-
```isml
|
|
318
|
-
<!-- Tag implementation -->
|
|
319
|
-
<isif condition="${color != null}">
|
|
320
|
-
<img src="${URLUtils.webRoot() + 'images/background_' + color + '.gif'}"/>
|
|
321
|
-
<iselse>
|
|
322
|
-
<img src="${URLUtils.webRoot() + 'images/background_default.gif'}"/>
|
|
323
|
-
</isif>
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
### Checkout Progress Indicator
|
|
327
|
-
|
|
328
|
-
From the Reference Application example:
|
|
329
|
-
|
|
330
|
-
**Declaration (checkout_address.isml):**
|
|
331
|
-
```isml
|
|
332
|
-
<ismodule
|
|
333
|
-
template="cart/checkout_progressindicator"
|
|
334
|
-
name="checkoutprogressindicator"
|
|
335
|
-
attribute="step"
|
|
336
|
-
/>
|
|
337
|
-
|
|
338
|
-
<!-- Usage -->
|
|
339
|
-
<ischeckoutprogressindicator step="2"/>
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
**Implementation (cart/checkout_progressindicator.isml):**
|
|
343
|
-
```isml
|
|
344
|
-
<div class="checkoutprogressindicator">
|
|
345
|
-
<isif condition="${pdict.step == '1'}">
|
|
346
|
-
<isset name="step1state" value="active" scope="page"/>
|
|
347
|
-
<isset name="step2state" value="inactive" scope="page"/>
|
|
348
|
-
<isset name="step3state" value="inactive" scope="page"/>
|
|
349
|
-
<isset name="step4state" value="inactive" scope="page"/>
|
|
350
|
-
<iselseif condition="${pdict.step == '2'}">
|
|
351
|
-
<isset name="step1state" value="inactive" scope="page"/>
|
|
352
|
-
<isset name="step2state" value="active" scope="page"/>
|
|
353
|
-
<isset name="step3state" value="inactive" scope="page"/>
|
|
354
|
-
<isset name="step4state" value="inactive" scope="page"/>
|
|
355
|
-
<iselseif condition="${pdict.step == '3'}">
|
|
356
|
-
<isset name="step1state" value="inactive" scope="page"/>
|
|
357
|
-
<isset name="step2state" value="inactive" scope="page"/>
|
|
358
|
-
<isset name="step3state" value="active" scope="page"/>
|
|
359
|
-
<isset name="step4state" value="inactive" scope="page"/>
|
|
360
|
-
<iselseif condition="${pdict.step == '4'}">
|
|
361
|
-
<isset name="step1state" value="inactive" scope="page"/>
|
|
362
|
-
<isset name="step2state" value="inactive" scope="page"/>
|
|
363
|
-
<isset name="step3state" value="inactive" scope="page"/>
|
|
364
|
-
<isset name="step4state" value="active" scope="page"/>
|
|
365
|
-
<iselse>
|
|
366
|
-
<isset name="step1state" value="inactive" scope="page"/>
|
|
367
|
-
<isset name="step2state" value="inactive" scope="page"/>
|
|
368
|
-
<isset name="step3state" value="inactive" scope="page"/>
|
|
369
|
-
<isset name="step4state" value="inactive" scope="page"/>
|
|
370
|
-
</isif>
|
|
371
|
-
|
|
372
|
-
<!-- Progress indicator UI rendering using step states -->
|
|
373
|
-
<div class="step ${step1state}">1. Shipping</div>
|
|
374
|
-
<div class="step ${step2state}">2. Billing</div>
|
|
375
|
-
<div class="step ${step3state}">3. Review</div>
|
|
376
|
-
<div class="step ${step4state}">4. Confirmation</div>
|
|
377
|
-
</div>
|
|
378
|
-
```
|
|
379
|
-
|
|
380
|
-
### Product Tile Component
|
|
381
|
-
|
|
382
|
-
**Declaration:**
|
|
383
|
-
```isml
|
|
384
|
-
<ismodule
|
|
385
|
-
template="components/productTile"
|
|
386
|
-
name="producttile"
|
|
387
|
-
attribute="product"
|
|
388
|
-
attribute="showprice"
|
|
389
|
-
attribute="showrating"
|
|
390
|
-
/>
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
**Implementation (components/productTile.isml):**
|
|
394
|
-
```isml
|
|
395
|
-
<div class="product-tile">
|
|
396
|
-
<img src="${product.images.small[0].url}" alt="${product.name}"/>
|
|
397
|
-
<h3>${product.name}</h3>
|
|
398
|
-
|
|
399
|
-
<isif condition="${showprice == 'true'}">
|
|
400
|
-
<span class="price">${product.price}</span>
|
|
401
|
-
</isif>
|
|
402
|
-
|
|
403
|
-
<isif condition="${showrating == 'true'}">
|
|
404
|
-
<div class="rating">${product.rating}</div>
|
|
405
|
-
</isif>
|
|
406
|
-
</div>
|
|
407
|
-
```
|
|
408
|
-
|
|
409
|
-
**Usage:**
|
|
410
|
-
```isml
|
|
411
|
-
<isloop items="${pdict.products}" var="product">
|
|
412
|
-
<isproducttile
|
|
413
|
-
product="${product}"
|
|
414
|
-
showprice="true"
|
|
415
|
-
showrating="true"
|
|
416
|
-
/>
|
|
417
|
-
</isloop>
|
|
418
|
-
```
|
|
419
|
-
|
|
420
|
-
### Button Component
|
|
421
|
-
|
|
422
|
-
**Declaration:**
|
|
423
|
-
```isml
|
|
424
|
-
<ismodule
|
|
425
|
-
template="components/button"
|
|
426
|
-
name="button"
|
|
427
|
-
attribute="label"
|
|
428
|
-
attribute="url"
|
|
429
|
-
attribute="type"
|
|
430
|
-
attribute="disabled"
|
|
431
|
-
/>
|
|
432
|
-
```
|
|
433
|
-
|
|
434
|
-
**Implementation (components/button.isml):**
|
|
435
|
-
```isml
|
|
436
|
-
<isset name="btnType" value="${type != null ? type : 'primary'}" scope="page"/>
|
|
437
|
-
<isset name="isDisabled" value="${disabled == 'true'}" scope="page"/>
|
|
438
|
-
|
|
439
|
-
<isif condition="${url != null}">
|
|
440
|
-
<a href="${url}" class="btn btn-${btnType} ${isDisabled ? 'disabled' : ''}">
|
|
441
|
-
${label}
|
|
442
|
-
</a>
|
|
443
|
-
<iselse>
|
|
444
|
-
<button class="btn btn-${btnType}" ${isDisabled ? 'disabled' : ''}>
|
|
445
|
-
${label}
|
|
446
|
-
</button>
|
|
447
|
-
</isif>
|
|
448
|
-
```
|
|
449
|
-
|
|
450
|
-
**Usage:**
|
|
451
|
-
```isml
|
|
452
|
-
<isbutton label="Add to Cart" url="${addToCartUrl}" type="primary"/>
|
|
453
|
-
<isbutton label="View Details" url="${productUrl}" type="secondary"/>
|
|
454
|
-
<isbutton label="Unavailable" type="primary" disabled="true"/>
|
|
455
|
-
```
|
|
456
|
-
|
|
457
|
-
### Alert/Message Component
|
|
458
|
-
|
|
459
|
-
**Declaration:**
|
|
460
|
-
```isml
|
|
461
|
-
<ismodule
|
|
462
|
-
template="components/alert"
|
|
463
|
-
name="alert"
|
|
464
|
-
attribute="message"
|
|
465
|
-
attribute="type"
|
|
466
|
-
attribute="dismissible"
|
|
467
|
-
/>
|
|
468
|
-
```
|
|
469
|
-
|
|
470
|
-
**Implementation (components/alert.isml):**
|
|
471
|
-
```isml
|
|
472
|
-
<isset name="alertType" value="${type != null ? type : 'info'}" scope="page"/>
|
|
473
|
-
|
|
474
|
-
<div class="alert alert-${alertType} ${dismissible == 'true' ? 'alert-dismissible' : ''}">
|
|
475
|
-
<isif condition="${dismissible == 'true'}">
|
|
476
|
-
<button type="button" class="close" data-dismiss="alert">×</button>
|
|
477
|
-
</isif>
|
|
478
|
-
${message}
|
|
479
|
-
</div>
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
**Usage:**
|
|
483
|
-
```isml
|
|
484
|
-
<isalert message="Product added to cart" type="success" dismissible="true"/>
|
|
485
|
-
<isalert message="Please fill all required fields" type="error"/>
|
|
486
|
-
<isalert message="${pdict.infoMessage}" type="info"/>
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
### Badge Component
|
|
490
|
-
|
|
491
|
-
**Declaration:**
|
|
492
|
-
```isml
|
|
493
|
-
<ismodule
|
|
494
|
-
template="components/badge"
|
|
495
|
-
name="badge"
|
|
496
|
-
attribute="text"
|
|
497
|
-
attribute="style"
|
|
498
|
-
/>
|
|
499
|
-
```
|
|
500
|
-
|
|
501
|
-
**Implementation (components/badge.isml):**
|
|
502
|
-
```isml
|
|
503
|
-
<isset name="badgeStyle" value="${style != null ? style : 'default'}" scope="page"/>
|
|
504
|
-
|
|
505
|
-
<span class="badge badge-${badgeStyle}">
|
|
506
|
-
${text}
|
|
507
|
-
</span>
|
|
508
|
-
```
|
|
509
|
-
|
|
510
|
-
**Usage:**
|
|
511
|
-
```isml
|
|
512
|
-
<isbadge text="New" style="success"/>
|
|
513
|
-
<isbadge text="Sale" style="danger"/>
|
|
514
|
-
<isbadge text="${product.custom.badge}"/>
|
|
515
|
-
```
|
|
516
|
-
|
|
517
|
-
### Icon Component
|
|
518
|
-
|
|
519
|
-
**Declaration:**
|
|
520
|
-
```isml
|
|
521
|
-
<ismodule
|
|
522
|
-
template="components/icon"
|
|
523
|
-
name="icon"
|
|
524
|
-
attribute="name"
|
|
525
|
-
attribute="size"
|
|
526
|
-
/>
|
|
527
|
-
```
|
|
528
|
-
|
|
529
|
-
**Implementation (components/icon.isml):**
|
|
530
|
-
```isml
|
|
531
|
-
<isset name="iconSize" value="${size != null ? size : 'medium'}" scope="page"/>
|
|
532
|
-
|
|
533
|
-
<i class="icon icon-${name} icon-${iconSize}"></i>
|
|
534
|
-
```
|
|
535
|
-
|
|
536
|
-
**Usage:**
|
|
537
|
-
```isml
|
|
538
|
-
<isicon name="cart" size="large"/>
|
|
539
|
-
<isicon name="search"/>
|
|
540
|
-
<isicon name="user" size="small"/>
|
|
541
|
-
```
|
|
542
|
-
|
|
543
|
-
### Content Asset Module (SFRA)
|
|
544
|
-
|
|
545
|
-
**Declaration:**
|
|
546
|
-
```isml
|
|
547
|
-
<ismodule
|
|
548
|
-
template="components/contentAsset"
|
|
549
|
-
name="contentasset"
|
|
550
|
-
attribute="cid"
|
|
551
|
-
attribute="show"
|
|
552
|
-
/>
|
|
553
|
-
```
|
|
554
|
-
|
|
555
|
-
**Implementation (components/contentAsset.isml):**
|
|
556
|
-
```isml
|
|
557
|
-
<isif condition="${show != 'false'}">
|
|
558
|
-
<isset name="contentAsset" value="${dw.content.ContentMgr.getContent(cid)}" scope="page"/>
|
|
559
|
-
|
|
560
|
-
<isif condition="${contentAsset != null}">
|
|
561
|
-
<div class="content-asset" data-cid="${cid}">
|
|
562
|
-
<isprint value="${contentAsset.custom.body}" encoding="off"/>
|
|
563
|
-
</div>
|
|
564
|
-
</isif>
|
|
565
|
-
</isif>
|
|
566
|
-
```
|
|
567
|
-
|
|
568
|
-
**Usage:**
|
|
569
|
-
```isml
|
|
570
|
-
<iscontentasset cid="homepage-banner"/>
|
|
571
|
-
<iscontentasset cid="footer-links" show="${pdict.showFooter}"/>
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
## SFRA Usage Pattern
|
|
575
|
-
|
|
576
|
-
In SFRA implementations, `<ismodule>` is **primarily used for content assets**:
|
|
577
|
-
|
|
578
|
-
```isml
|
|
579
|
-
<!-- SFRA common pattern -->
|
|
580
|
-
<ismodule
|
|
581
|
-
template="common/contentAsset"
|
|
582
|
-
name="contentasset"
|
|
583
|
-
attribute="cid"
|
|
584
|
-
/>
|
|
585
|
-
|
|
586
|
-
<!-- Usage throughout SFRA templates -->
|
|
587
|
-
<iscontentasset cid="homepage-hero"/>
|
|
588
|
-
<iscontentasset cid="category-banner"/>
|
|
589
|
-
<iscontentasset cid="footer-contact-info"/>
|
|
590
|
-
```
|
|
591
|
-
|
|
592
|
-
## Best Practices
|
|
593
|
-
|
|
594
|
-
### Use Descriptive Names
|
|
595
|
-
|
|
596
|
-
```isml
|
|
597
|
-
<!-- Good: Clear, descriptive names -->
|
|
598
|
-
<ismodule template="components/productTile" name="producttile"/>
|
|
599
|
-
<ismodule template="components/priceDisplay" name="pricedisplay"/>
|
|
600
|
-
|
|
601
|
-
<!-- Avoid: Vague names -->
|
|
602
|
-
<ismodule template="components/comp1" name="thing"/>
|
|
603
|
-
<ismodule template="components/helper" name="util"/>
|
|
604
|
-
```
|
|
605
|
-
|
|
606
|
-
### Keep Implementation Templates Focused
|
|
607
|
-
|
|
608
|
-
```isml
|
|
609
|
-
<!-- Good: Single responsibility -->
|
|
610
|
-
<ismodule template="components/button" name="button"/>
|
|
611
|
-
|
|
612
|
-
<!-- Avoid: Component doing too much -->
|
|
613
|
-
<ismodule template="components/buttonAndFormAndValidation" name="megacomponent"/>
|
|
614
|
-
```
|
|
615
|
-
|
|
616
|
-
### Validate Required Attributes
|
|
617
|
-
|
|
618
|
-
Always check if required attributes are provided in the implementation:
|
|
619
|
-
|
|
620
|
-
```isml
|
|
621
|
-
<!-- Implementation template -->
|
|
622
|
-
<isif condition="${product == null}">
|
|
623
|
-
<div class="error">Product is required</div>
|
|
624
|
-
<iselse>
|
|
625
|
-
<div class="product-tile">
|
|
626
|
-
<!-- Render product -->
|
|
627
|
-
</div>
|
|
628
|
-
</isif>
|
|
629
|
-
```
|
|
630
|
-
|
|
631
|
-
### Use Lowercase Attribute Names
|
|
632
|
-
|
|
633
|
-
```isml
|
|
634
|
-
<!-- Good: Lowercase attributes -->
|
|
635
|
-
<ismodule
|
|
636
|
-
template="components/product"
|
|
637
|
-
name="producttile"
|
|
638
|
-
attribute="product"
|
|
639
|
-
attribute="showprice"
|
|
640
|
-
/>
|
|
641
|
-
|
|
642
|
-
<!-- Avoid: Mixed case -->
|
|
643
|
-
<ismodule
|
|
644
|
-
attribute="Product"
|
|
645
|
-
attribute="showPrice"
|
|
646
|
-
/>
|
|
647
|
-
```
|
|
648
|
-
|
|
649
|
-
### Provide Default Values
|
|
650
|
-
|
|
651
|
-
```isml
|
|
652
|
-
<!-- Implementation with defaults -->
|
|
653
|
-
<isset name="buttonType" value="${type != null ? type : 'primary'}" scope="page"/>
|
|
654
|
-
<isset name="buttonSize" value="${size != null ? size : 'medium'}" scope="page"/>
|
|
655
|
-
|
|
656
|
-
<button class="btn btn-${buttonType} btn-${buttonSize}">
|
|
657
|
-
${label}
|
|
658
|
-
</button>
|
|
659
|
-
```
|
|
660
|
-
|
|
661
|
-
### Document Custom Tags
|
|
662
|
-
|
|
663
|
-
```isml
|
|
664
|
-
<iscomment>
|
|
665
|
-
Custom tag: producttile
|
|
666
|
-
|
|
667
|
-
Attributes:
|
|
668
|
-
- product (required): Product object to display
|
|
669
|
-
- showprice (optional): "true" to show price (default: false)
|
|
670
|
-
- showrating (optional): "true" to show rating (default: false)
|
|
671
|
-
|
|
672
|
-
Example:
|
|
673
|
-
<isproducttile product="${product}" showprice="true"/>
|
|
674
|
-
</iscomment>
|
|
675
|
-
<ismodule
|
|
676
|
-
template="components/productTile"
|
|
677
|
-
name="producttile"
|
|
678
|
-
attribute="product"
|
|
679
|
-
attribute="showprice"
|
|
680
|
-
attribute="showrating"
|
|
681
|
-
/>
|
|
682
|
-
```
|
|
683
|
-
|
|
684
|
-
### Organize Component Templates
|
|
685
|
-
|
|
686
|
-
```
|
|
687
|
-
templates/
|
|
688
|
-
default/
|
|
689
|
-
components/ - Reusable components
|
|
690
|
-
productTile.isml
|
|
691
|
-
button.isml
|
|
692
|
-
alert.isml
|
|
693
|
-
badge.isml
|
|
694
|
-
icon.isml
|
|
695
|
-
modules/ - Custom tag implementations
|
|
696
|
-
contentAsset.isml
|
|
697
|
-
progressIndicator.isml
|
|
698
|
-
```
|
|
699
|
-
|
|
700
|
-
## Performance Considerations
|
|
701
|
-
|
|
702
|
-
### Overhead
|
|
703
|
-
|
|
704
|
-
Custom tags are essentially template includes with attribute passing:
|
|
705
|
-
- Minimal performance overhead compared to `<isinclude>`
|
|
706
|
-
- Same template processing rules apply
|
|
707
|
-
- Consider caching for frequently used components
|
|
708
|
-
|
|
709
|
-
### When to Use Custom Tags vs Includes
|
|
710
|
-
|
|
711
|
-
**Use `<ismodule>`:**
|
|
712
|
-
- Component needs multiple parameters
|
|
713
|
-
- Cleaner syntax desired for reusable components
|
|
714
|
-
- Self-documenting tag names improve readability
|
|
715
|
-
|
|
716
|
-
**Use `<isinclude>`:**
|
|
717
|
-
- Simple inclusion without parameters
|
|
718
|
-
- One-time template composition
|
|
719
|
-
- Lower overhead for simple cases
|
|
720
|
-
|
|
721
|
-
```isml
|
|
722
|
-
<!-- Custom tag: Better for parameterized components -->
|
|
723
|
-
<ismodule template="components/button" name="button" attribute="label" attribute="url"/>
|
|
724
|
-
<isbutton label="Click" url="${url}"/>
|
|
725
|
-
|
|
726
|
-
<!-- Include: Better for simple inclusions -->
|
|
727
|
-
<isinclude template="common/header"/>
|
|
728
|
-
```
|
|
729
|
-
|
|
730
|
-
## Troubleshooting
|
|
731
|
-
|
|
732
|
-
### Custom Tag Not Found
|
|
733
|
-
|
|
734
|
-
**Problem:** Error about undefined tag.
|
|
735
|
-
|
|
736
|
-
**Solution:** Ensure `<ismodule>` declaration appears before tag usage:
|
|
737
|
-
|
|
738
|
-
```isml
|
|
739
|
-
<!-- Declare before use -->
|
|
740
|
-
<ismodule template="components/badge" name="badge" attribute="text"/>
|
|
741
|
-
|
|
742
|
-
<!-- Now can use -->
|
|
743
|
-
<isbadge text="New"/>
|
|
744
|
-
```
|
|
745
|
-
|
|
746
|
-
### Attribute Not Accessible
|
|
747
|
-
|
|
748
|
-
**Problem:** Attribute value is null or undefined in implementation template.
|
|
749
|
-
|
|
750
|
-
**Solution:**
|
|
751
|
-
1. Verify attribute is declared in `<ismodule>`
|
|
752
|
-
2. Check attribute name is lowercase
|
|
753
|
-
3. Verify attribute is passed when using the tag
|
|
754
|
-
|
|
755
|
-
```isml
|
|
756
|
-
<!-- Declaration must include attribute -->
|
|
757
|
-
<ismodule template="components/button" name="button" attribute="label"/>
|
|
758
|
-
|
|
759
|
-
<!-- Usage must pass attribute -->
|
|
760
|
-
<isbutton label="Click Me"/>
|
|
761
|
-
|
|
762
|
-
<!-- Implementation can access attribute -->
|
|
763
|
-
<button>${label}</button>
|
|
764
|
-
```
|
|
765
|
-
|
|
766
|
-
### Template Not Found
|
|
767
|
-
|
|
768
|
-
**Problem:** Template path cannot be resolved.
|
|
769
|
-
|
|
770
|
-
**Solution:** Verify template path is correct and relative to `templates/default`:
|
|
771
|
-
|
|
772
|
-
```isml
|
|
773
|
-
<!-- Check template path -->
|
|
774
|
-
templates/
|
|
775
|
-
default/
|
|
776
|
-
components/
|
|
777
|
-
button.isml
|
|
778
|
-
|
|
779
|
-
<!-- Correct path -->
|
|
780
|
-
<ismodule template="components/button" name="button"/>
|
|
781
|
-
|
|
782
|
-
<!-- Wrong: Includes "templates/default" -->
|
|
783
|
-
<ismodule template="templates/default/components/button" name="button"/> <!-- ERROR -->
|
|
784
|
-
```
|
|
785
|
-
|
|
786
|
-
### Case Sensitivity Issues
|
|
787
|
-
|
|
788
|
-
**Problem:** Custom tag not recognized.
|
|
789
|
-
|
|
790
|
-
**Solution:** Remember tags are case-insensitive, but must include `is` prefix:
|
|
791
|
-
|
|
792
|
-
```isml
|
|
793
|
-
<!-- Declaration -->
|
|
794
|
-
<ismodule template="components/badge" name="badge"/>
|
|
795
|
-
|
|
796
|
-
<!-- All valid usages -->
|
|
797
|
-
<isbadge text="New"/>
|
|
798
|
-
<isBadge text="New"/>
|
|
799
|
-
<isBADGE text="New"/>
|
|
800
|
-
|
|
801
|
-
<!-- Invalid: Missing "is" prefix -->
|
|
802
|
-
<badge text="New"/> <!-- ERROR -->
|
|
803
|
-
```
|
|
804
|
-
|
|
805
|
-
## Comparison: ismodule vs isinclude
|
|
806
|
-
|
|
807
|
-
| Feature | `<ismodule>` | `<isinclude>` |
|
|
808
|
-
|---------|--------------|---------------|
|
|
809
|
-
| **Purpose** | Declare reusable component with custom tag name | Include template content |
|
|
810
|
-
| **Attributes** | User-defined attributes | No custom attributes |
|
|
811
|
-
| **Syntax** | Custom tag name (cleaner) | Include template path |
|
|
812
|
-
| **Declaration** | Required before use | Not required |
|
|
813
|
-
| **Best for** | Parameterized components | Simple template inclusion |
|
|
814
|
-
|
|
815
|
-
```isml
|
|
816
|
-
<!-- ismodule: Cleaner syntax for components with parameters -->
|
|
817
|
-
<ismodule template="components/button" name="button" attribute="label" attribute="url"/>
|
|
818
|
-
<isbutton label="Click" url="${url}"/>
|
|
819
|
-
|
|
820
|
-
<!-- isinclude: Simple inclusion -->
|
|
821
|
-
<isinclude template="common/header"/>
|
|
822
|
-
```
|
|
823
|
-
|
|
824
|
-
## Related Elements
|
|
825
|
-
|
|
826
|
-
- **`<isinclude>`**: Simple template inclusion without custom attributes
|
|
827
|
-
- **`<isdecorate>`**: Wrap content with decorator templates
|
|
828
|
-
- **`<isset>`**: Set variables used by custom tags
|
|
829
|
-
- **`<isslot>`**: Content slots (different from custom tags)
|
|
830
|
-
|
|
831
|
-
## Summary
|
|
832
|
-
|
|
833
|
-
The `<ismodule>` element enables:
|
|
834
|
-
|
|
835
|
-
- ✅ Creating custom tags with semantic names
|
|
836
|
-
- ✅ Building reusable components with user-defined attributes
|
|
837
|
-
- ✅ Improving template readability with self-documenting tags
|
|
838
|
-
- ✅ Centralizing component logic in dedicated templates
|
|
839
|
-
- ✅ Parameterizing template includes for flexibility
|
|
840
|
-
- ✅ Primary pattern for content assets in SFRA
|
|
841
|
-
- ✅ Cleaner syntax compared to repeated `<isinclude>` with parameters
|
|
842
|
-
- ✅ Maintaining modular, maintainable template architecture
|
|
843
|
-
|
|
844
|
-
Use `<ismodule>` to create clean, reusable component APIs in your SFCC templates, especially when components require multiple parameters or when you want to improve code readability with semantic tag names.
|