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.
Files changed (987) hide show
  1. package/dist/clients/logs/index.d.ts +13 -0
  2. package/dist/clients/logs/index.d.ts.map +1 -0
  3. package/dist/clients/logs/index.js +15 -0
  4. package/dist/clients/logs/index.js.map +1 -0
  5. package/dist/clients/logs/log-analyzer.d.ts +55 -0
  6. package/dist/clients/logs/log-analyzer.d.ts.map +1 -0
  7. package/dist/clients/logs/log-analyzer.js +228 -0
  8. package/dist/clients/logs/log-analyzer.js.map +1 -0
  9. package/dist/clients/logs/log-client.d.ts +87 -0
  10. package/dist/clients/logs/log-client.d.ts.map +1 -0
  11. package/dist/clients/logs/log-client.js +418 -0
  12. package/dist/clients/logs/log-client.js.map +1 -0
  13. package/dist/clients/logs/log-constants.d.ts +37 -0
  14. package/dist/clients/logs/log-constants.d.ts.map +1 -0
  15. package/dist/clients/logs/log-constants.js +37 -0
  16. package/dist/clients/logs/log-constants.js.map +1 -0
  17. package/dist/clients/logs/log-file-discovery.d.ts +64 -0
  18. package/dist/clients/logs/log-file-discovery.d.ts.map +1 -0
  19. package/dist/clients/logs/log-file-discovery.js +249 -0
  20. package/dist/clients/logs/log-file-discovery.js.map +1 -0
  21. package/dist/clients/logs/log-file-reader.d.ts +55 -0
  22. package/dist/clients/logs/log-file-reader.d.ts.map +1 -0
  23. package/dist/clients/logs/log-file-reader.js +207 -0
  24. package/dist/clients/logs/log-file-reader.js.map +1 -0
  25. package/dist/clients/logs/log-formatter.d.ts +90 -0
  26. package/dist/clients/logs/log-formatter.d.ts.map +1 -0
  27. package/dist/clients/logs/log-formatter.js +189 -0
  28. package/dist/clients/logs/log-formatter.js.map +1 -0
  29. package/dist/clients/logs/log-processor.d.ts +91 -0
  30. package/dist/clients/logs/log-processor.d.ts.map +1 -0
  31. package/dist/clients/logs/log-processor.js +328 -0
  32. package/dist/clients/logs/log-processor.js.map +1 -0
  33. package/dist/clients/logs/log-types.d.ts +58 -0
  34. package/dist/clients/logs/log-types.d.ts.map +1 -0
  35. package/dist/clients/logs/log-types.js +8 -0
  36. package/dist/clients/logs/log-types.js.map +1 -0
  37. package/dist/clients/logs/webdav-client-manager.d.ts +28 -0
  38. package/dist/clients/logs/webdav-client-manager.d.ts.map +1 -0
  39. package/dist/clients/logs/webdav-client-manager.js +77 -0
  40. package/dist/clients/logs/webdav-client-manager.js.map +1 -0
  41. package/dist/docs/dw_customer/CustomerMgr.md +3 -3
  42. package/dist/docs/dw_customer/Wallet.md +25 -0
  43. package/dist/docs/dw_extensions.payments/SalesforceAdyenPaymentIntent.md +156 -0
  44. package/dist/docs/dw_extensions.payments/SalesforceAdyenSavedPaymentMethod.md +258 -0
  45. package/dist/docs/dw_extensions.payments/SalesforcePayPalOrder.md +36 -0
  46. package/dist/docs/dw_extensions.payments/SalesforcePaymentIntent.md +1 -1
  47. package/dist/docs/dw_extensions.payments/SalesforcePaymentsHooks.md +68 -1
  48. package/dist/docs/dw_extensions.payments/SalesforcePaymentsMerchantAccount.md +154 -0
  49. package/dist/docs/dw_extensions.payments/SalesforcePaymentsMerchantAccountPaymentMethod.md +96 -0
  50. package/dist/docs/dw_extensions.payments/SalesforcePaymentsMgr.md +311 -2
  51. package/dist/docs/dw_extensions.payments/SalesforcePaymentsSiteConfiguration.md +26 -0
  52. package/dist/docs/dw_extensions.payments/SalesforcePaymentsZone.md +458 -0
  53. package/dist/docs/dw_order/OrderMgr.md +3 -3
  54. package/dist/docs/dw_order.hooks/BasketMergeHooks.md +4 -4
  55. package/dist/docs/dw_order.hooks/CheckoutHooks.md +42 -0
  56. package/dist/utils/path-resolver.d.ts +5 -0
  57. package/dist/utils/path-resolver.d.ts.map +1 -1
  58. package/dist/utils/path-resolver.js +27 -5
  59. package/dist/utils/path-resolver.js.map +1 -1
  60. package/package.json +9 -3
  61. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -131
  62. package/.github/ISSUE_TEMPLATE/config.yml +0 -9
  63. package/.github/ISSUE_TEMPLATE/documentation.yml +0 -117
  64. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -151
  65. package/.github/ISSUE_TEMPLATE/question.yml +0 -102
  66. package/.github/PULL_REQUEST_TEMPLATE/bug_fix.md +0 -59
  67. package/.github/PULL_REQUEST_TEMPLATE/documentation.md +0 -48
  68. package/.github/PULL_REQUEST_TEMPLATE/new_tool.md +0 -55
  69. package/.github/agents/official-docs-researcher.agent.md +0 -56
  70. package/.github/dependabot.yml +0 -65
  71. package/.github/instructions/mcp-node-tests.instructions.md +0 -30
  72. package/.github/instructions/mcp-yml-tests.instructions.md +0 -27
  73. package/.github/pull_request_template.md +0 -103
  74. package/.github/skills/agent-authoring/SKILL.md +0 -66
  75. package/.github/skills/mcp-log-debugging/SKILL.md +0 -69
  76. package/.github/skills/mcp-programmatic-testing/SKILL.md +0 -142
  77. package/.github/skills/mcp-yaml-testing/SKILL.md +0 -136
  78. package/.github/skills/salesforce-developer-site-scraper/SKILL.md +0 -102
  79. package/.github/skills/salesforce-developer-site-scraper/scripts/scrape-to-markdown.js +0 -205
  80. package/.github/skills/salesforce-help-site-scraper/SKILL.md +0 -84
  81. package/.github/skills/salesforce-help-site-scraper/scripts/scrape-help-to-markdown.js +0 -212
  82. package/.github/skills/skill-authoring/SKILL.md +0 -228
  83. package/.github/skills/skill-authoring/references/PATTERNS.md +0 -384
  84. package/.github/workflows/ci.yml +0 -103
  85. package/.github/workflows/deploy-pages.yml +0 -59
  86. package/.github/workflows/publish.yml +0 -112
  87. package/.github/workflows/update-docs.yml +0 -182
  88. package/.husky/pre-commit +0 -2
  89. package/AGENTS.md +0 -638
  90. package/CONTRIBUTING.md +0 -323
  91. package/SECURITY.md +0 -148
  92. package/aegis.config.docs-only.json +0 -9
  93. package/aegis.config.json +0 -12
  94. package/aegis.config.with-dw.json +0 -15
  95. package/ai-instructions/AGENTS.md +0 -628
  96. package/ai-instructions/skills/sfcc-caching/SKILL.md +0 -89
  97. package/ai-instructions/skills/sfcc-cartridge-development/SKILL.md +0 -240
  98. package/ai-instructions/skills/sfcc-forms-development/SKILL.md +0 -261
  99. package/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +0 -143
  100. package/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +0 -127
  101. package/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +0 -95
  102. package/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +0 -39
  103. package/ai-instructions/skills/sfcc-isml-development/SKILL.md +0 -370
  104. package/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +0 -116
  105. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +0 -50
  106. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +0 -45
  107. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +0 -85
  108. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +0 -63
  109. package/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +0 -159
  110. package/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +0 -13
  111. package/ai-instructions/skills/sfcc-job-development/SKILL.md +0 -334
  112. package/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +0 -393
  113. package/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +0 -271
  114. package/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +0 -257
  115. package/ai-instructions/skills/sfcc-localization/SKILL.md +0 -92
  116. package/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +0 -63
  117. package/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +0 -29
  118. package/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +0 -33
  119. package/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +0 -41
  120. package/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +0 -35
  121. package/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +0 -740
  122. package/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +0 -25
  123. package/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +0 -67
  124. package/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +0 -23
  125. package/ai-instructions/skills/sfcc-localization/references/TESTING.md +0 -21
  126. package/ai-instructions/skills/sfcc-localserviceregistry/SKILL.md +0 -374
  127. package/ai-instructions/skills/sfcc-logging/SKILL.md +0 -352
  128. package/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +0 -282
  129. package/ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md +0 -350
  130. package/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +0 -108
  131. package/ai-instructions/skills/sfcc-page-designer/SKILL.md +0 -353
  132. package/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +0 -436
  133. package/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +0 -322
  134. package/ai-instructions/skills/sfcc-performance/SKILL.md +0 -424
  135. package/ai-instructions/skills/sfcc-platform-limits/SKILL.md +0 -89
  136. package/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +0 -237
  137. package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +0 -214
  138. package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +0 -253
  139. package/ai-instructions/skills/sfcc-scapi-hooks/SKILL.md +0 -341
  140. package/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +0 -380
  141. package/ai-instructions/skills/sfcc-security/SKILL.md +0 -394
  142. package/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +0 -270
  143. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +0 -285
  144. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +0 -206
  145. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +0 -165
  146. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +0 -185
  147. package/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +0 -347
  148. package/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +0 -257
  149. package/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +0 -193
  150. package/ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md +0 -814
  151. package/ai-instructions/skills/sfcc-sfra-models/SKILL.md +0 -322
  152. package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +0 -530
  153. package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +0 -234
  154. package/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +0 -417
  155. package/ai-instructions/skills/sfcc-sfra-scss/SKILL.md +0 -393
  156. package/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +0 -111
  157. package/docs/TopLevel/APIException.md +0 -68
  158. package/docs/TopLevel/Array.md +0 -897
  159. package/docs/TopLevel/ArrayBuffer.md +0 -79
  160. package/docs/TopLevel/BigInt.md +0 -132
  161. package/docs/TopLevel/Boolean.md +0 -62
  162. package/docs/TopLevel/ConversionError.md +0 -23
  163. package/docs/TopLevel/DataView.md +0 -352
  164. package/docs/TopLevel/Date.md +0 -924
  165. package/docs/TopLevel/ES6Iterator.md +0 -33
  166. package/docs/TopLevel/Error.md +0 -88
  167. package/docs/TopLevel/EvalError.md +0 -23
  168. package/docs/TopLevel/Fault.md +0 -87
  169. package/docs/TopLevel/Float32Array.md +0 -130
  170. package/docs/TopLevel/Float64Array.md +0 -130
  171. package/docs/TopLevel/Function.md +0 -105
  172. package/docs/TopLevel/Generator.md +0 -78
  173. package/docs/TopLevel/IOError.md +0 -62
  174. package/docs/TopLevel/Int16Array.md +0 -130
  175. package/docs/TopLevel/Int32Array.md +0 -130
  176. package/docs/TopLevel/Int8Array.md +0 -130
  177. package/docs/TopLevel/InternalError.md +0 -23
  178. package/docs/TopLevel/Iterable.md +0 -41
  179. package/docs/TopLevel/Iterator.md +0 -48
  180. package/docs/TopLevel/JSON.md +0 -162
  181. package/docs/TopLevel/Map.md +0 -216
  182. package/docs/TopLevel/Math.md +0 -913
  183. package/docs/TopLevel/Module.md +0 -45
  184. package/docs/TopLevel/Namespace.md +0 -96
  185. package/docs/TopLevel/Number.md +0 -417
  186. package/docs/TopLevel/Object.md +0 -641
  187. package/docs/TopLevel/QName.md +0 -96
  188. package/docs/TopLevel/RangeError.md +0 -23
  189. package/docs/TopLevel/ReferenceError.md +0 -23
  190. package/docs/TopLevel/RegExp.md +0 -109
  191. package/docs/TopLevel/Set.md +0 -165
  192. package/docs/TopLevel/StopIteration.md +0 -20
  193. package/docs/TopLevel/String.md +0 -1299
  194. package/docs/TopLevel/Symbol.md +0 -78
  195. package/docs/TopLevel/SyntaxError.md +0 -23
  196. package/docs/TopLevel/SystemError.md +0 -62
  197. package/docs/TopLevel/TypeError.md +0 -23
  198. package/docs/TopLevel/URIError.md +0 -23
  199. package/docs/TopLevel/Uint16Array.md +0 -130
  200. package/docs/TopLevel/Uint32Array.md +0 -130
  201. package/docs/TopLevel/Uint8Array.md +0 -130
  202. package/docs/TopLevel/Uint8ClampedArray.md +0 -130
  203. package/docs/TopLevel/WeakMap.md +0 -137
  204. package/docs/TopLevel/WeakSet.md +0 -92
  205. package/docs/TopLevel/XML.md +0 -937
  206. package/docs/TopLevel/XMLList.md +0 -484
  207. package/docs/TopLevel/XMLStreamError.md +0 -74
  208. package/docs/TopLevel/arguments.md +0 -34
  209. package/docs/TopLevel/global.md +0 -474
  210. package/docs/dw_campaign/ABTest.md +0 -47
  211. package/docs/dw_campaign/ABTestMgr.md +0 -70
  212. package/docs/dw_campaign/ABTestSegment.md +0 -96
  213. package/docs/dw_campaign/AmountDiscount.md +0 -51
  214. package/docs/dw_campaign/ApproachingDiscount.md +0 -124
  215. package/docs/dw_campaign/BonusChoiceDiscount.md +0 -146
  216. package/docs/dw_campaign/BonusDiscount.md +0 -48
  217. package/docs/dw_campaign/Campaign.md +0 -365
  218. package/docs/dw_campaign/CampaignMgr.md +0 -395
  219. package/docs/dw_campaign/CampaignStatusCodes.md +0 -48
  220. package/docs/dw_campaign/Coupon.md +0 -310
  221. package/docs/dw_campaign/CouponMgr.md +0 -144
  222. package/docs/dw_campaign/CouponRedemption.md +0 -94
  223. package/docs/dw_campaign/CouponStatusCodes.md +0 -86
  224. package/docs/dw_campaign/Discount.md +0 -226
  225. package/docs/dw_campaign/DiscountPlan.md +0 -282
  226. package/docs/dw_campaign/FixedPriceDiscount.md +0 -52
  227. package/docs/dw_campaign/FixedPriceShippingDiscount.md +0 -52
  228. package/docs/dw_campaign/FreeDiscount.md +0 -17
  229. package/docs/dw_campaign/FreeShippingDiscount.md +0 -17
  230. package/docs/dw_campaign/PercentageDiscount.md +0 -52
  231. package/docs/dw_campaign/PercentageOptionDiscount.md +0 -48
  232. package/docs/dw_campaign/PriceBookPriceDiscount.md +0 -47
  233. package/docs/dw_campaign/Promotion.md +0 -874
  234. package/docs/dw_campaign/PromotionMgr.md +0 -386
  235. package/docs/dw_campaign/PromotionPlan.md +0 -330
  236. package/docs/dw_campaign/SlotContent.md +0 -144
  237. package/docs/dw_campaign/SourceCodeGroup.md +0 -72
  238. package/docs/dw_campaign/SourceCodeInfo.md +0 -144
  239. package/docs/dw_campaign/SourceCodeStatusCodes.md +0 -36
  240. package/docs/dw_campaign/TotalFixedPriceDiscount.md +0 -47
  241. package/docs/dw_catalog/Catalog.md +0 -122
  242. package/docs/dw_catalog/CatalogMgr.md +0 -182
  243. package/docs/dw_catalog/Category.md +0 -1308
  244. package/docs/dw_catalog/CategoryAssignment.md +0 -192
  245. package/docs/dw_catalog/CategoryLink.md +0 -126
  246. package/docs/dw_catalog/PriceBook.md +0 -242
  247. package/docs/dw_catalog/PriceBookMgr.md +0 -204
  248. package/docs/dw_catalog/Product.md +0 -2593
  249. package/docs/dw_catalog/ProductActiveData.md +0 -1275
  250. package/docs/dw_catalog/ProductAttributeModel.md +0 -277
  251. package/docs/dw_catalog/ProductAvailabilityLevels.md +0 -142
  252. package/docs/dw_catalog/ProductAvailabilityModel.md +0 -380
  253. package/docs/dw_catalog/ProductInventoryList.md +0 -140
  254. package/docs/dw_catalog/ProductInventoryMgr.md +0 -117
  255. package/docs/dw_catalog/ProductInventoryRecord.md +0 -563
  256. package/docs/dw_catalog/ProductLink.md +0 -144
  257. package/docs/dw_catalog/ProductMgr.md +0 -138
  258. package/docs/dw_catalog/ProductOption.md +0 -214
  259. package/docs/dw_catalog/ProductOptionModel.md +0 -246
  260. package/docs/dw_catalog/ProductOptionValue.md +0 -123
  261. package/docs/dw_catalog/ProductPriceInfo.md +0 -172
  262. package/docs/dw_catalog/ProductPriceModel.md +0 -745
  263. package/docs/dw_catalog/ProductPriceTable.md +0 -134
  264. package/docs/dw_catalog/ProductSearchHit.md +0 -581
  265. package/docs/dw_catalog/ProductSearchModel.md +0 -2018
  266. package/docs/dw_catalog/ProductSearchRefinementDefinition.md +0 -97
  267. package/docs/dw_catalog/ProductSearchRefinementValue.md +0 -73
  268. package/docs/dw_catalog/ProductSearchRefinements.md +0 -216
  269. package/docs/dw_catalog/ProductVariationAttribute.md +0 -100
  270. package/docs/dw_catalog/ProductVariationAttributeValue.md +0 -238
  271. package/docs/dw_catalog/ProductVariationModel.md +0 -849
  272. package/docs/dw_catalog/Recommendation.md +0 -314
  273. package/docs/dw_catalog/SearchModel.md +0 -901
  274. package/docs/dw_catalog/SearchRefinementDefinition.md +0 -146
  275. package/docs/dw_catalog/SearchRefinementValue.md +0 -185
  276. package/docs/dw_catalog/SearchRefinements.md +0 -180
  277. package/docs/dw_catalog/SortingOption.md +0 -120
  278. package/docs/dw_catalog/SortingRule.md +0 -47
  279. package/docs/dw_catalog/Store.md +0 -562
  280. package/docs/dw_catalog/StoreGroup.md +0 -96
  281. package/docs/dw_catalog/StoreInventoryFilter.md +0 -74
  282. package/docs/dw_catalog/StoreInventoryFilterValue.md +0 -74
  283. package/docs/dw_catalog/StoreMgr.md +0 -236
  284. package/docs/dw_catalog/Variant.md +0 -859
  285. package/docs/dw_catalog/VariationGroup.md +0 -792
  286. package/docs/dw_content/Content.md +0 -534
  287. package/docs/dw_content/ContentMgr.md +0 -166
  288. package/docs/dw_content/ContentSearchModel.md +0 -682
  289. package/docs/dw_content/ContentSearchRefinementDefinition.md +0 -49
  290. package/docs/dw_content/ContentSearchRefinementValue.md +0 -17
  291. package/docs/dw_content/ContentSearchRefinements.md +0 -208
  292. package/docs/dw_content/Folder.md +0 -467
  293. package/docs/dw_content/Library.md +0 -121
  294. package/docs/dw_content/MarkupText.md +0 -88
  295. package/docs/dw_content/MediaFile.md +0 -317
  296. package/docs/dw_crypto/CertificateRef.md +0 -42
  297. package/docs/dw_crypto/CertificateUtils.md +0 -187
  298. package/docs/dw_crypto/Cipher.md +0 -530
  299. package/docs/dw_crypto/Encoding.md +0 -220
  300. package/docs/dw_crypto/JWE.md +0 -224
  301. package/docs/dw_crypto/JWEHeader.md +0 -172
  302. package/docs/dw_crypto/JWS.md +0 -264
  303. package/docs/dw_crypto/JWSHeader.md +0 -148
  304. package/docs/dw_crypto/KeyRef.md +0 -44
  305. package/docs/dw_crypto/Mac.md +0 -139
  306. package/docs/dw_crypto/MessageDigest.md +0 -175
  307. package/docs/dw_crypto/SecureRandom.md +0 -148
  308. package/docs/dw_crypto/Signature.md +0 -252
  309. package/docs/dw_crypto/WeakCipher.md +0 -538
  310. package/docs/dw_crypto/WeakMac.md +0 -121
  311. package/docs/dw_crypto/WeakMessageDigest.md +0 -163
  312. package/docs/dw_crypto/WeakSignature.md +0 -242
  313. package/docs/dw_crypto/X509Certificate.md +0 -193
  314. package/docs/dw_customer/AddressBook.md +0 -163
  315. package/docs/dw_customer/AgentUserMgr.md +0 -83
  316. package/docs/dw_customer/AgentUserStatusCodes.md +0 -96
  317. package/docs/dw_customer/AuthenticationStatus.md +0 -138
  318. package/docs/dw_customer/Credentials.md +0 -494
  319. package/docs/dw_customer/Customer.md +0 -571
  320. package/docs/dw_customer/CustomerActiveData.md +0 -552
  321. package/docs/dw_customer/CustomerAddress.md +0 -852
  322. package/docs/dw_customer/CustomerCDPData.md +0 -70
  323. package/docs/dw_customer/CustomerContextMgr.md +0 -64
  324. package/docs/dw_customer/CustomerGroup.md +0 -134
  325. package/docs/dw_customer/CustomerList.md +0 -71
  326. package/docs/dw_customer/CustomerMgr.md +0 -735
  327. package/docs/dw_customer/CustomerPasswordConstraints.md +0 -142
  328. package/docs/dw_customer/CustomerPaymentInstrument.md +0 -125
  329. package/docs/dw_customer/CustomerStatusCodes.md +0 -30
  330. package/docs/dw_customer/EncryptedObject.md +0 -18
  331. package/docs/dw_customer/ExternalProfile.md +0 -160
  332. package/docs/dw_customer/OrderHistory.md +0 -111
  333. package/docs/dw_customer/ProductList.md +0 -1000
  334. package/docs/dw_customer/ProductListItem.md +0 -504
  335. package/docs/dw_customer/ProductListItemPurchase.md +0 -145
  336. package/docs/dw_customer/ProductListMgr.md +0 -234
  337. package/docs/dw_customer/ProductListRegistrant.md +0 -193
  338. package/docs/dw_customer/Profile.md +0 -1128
  339. package/docs/dw_customer/Wallet.md +0 -118
  340. package/docs/dw_extensions.applepay/ApplePayHookResult.md +0 -209
  341. package/docs/dw_extensions.applepay/ApplePayHooks.md +0 -255
  342. package/docs/dw_extensions.facebook/FacebookFeedHooks.md +0 -47
  343. package/docs/dw_extensions.facebook/FacebookProduct.md +0 -1621
  344. package/docs/dw_extensions.paymentrequest/PaymentRequestHookResult.md +0 -159
  345. package/docs/dw_extensions.paymentrequest/PaymentRequestHooks.md +0 -160
  346. package/docs/dw_extensions.payments/SalesforceBancontactPaymentDetails.md +0 -79
  347. package/docs/dw_extensions.payments/SalesforceCardPaymentDetails.md +0 -103
  348. package/docs/dw_extensions.payments/SalesforceEpsPaymentDetails.md +0 -51
  349. package/docs/dw_extensions.payments/SalesforceIdealPaymentDetails.md +0 -51
  350. package/docs/dw_extensions.payments/SalesforceKlarnaPaymentDetails.md +0 -51
  351. package/docs/dw_extensions.payments/SalesforcePayPalOrder.md +0 -246
  352. package/docs/dw_extensions.payments/SalesforcePayPalOrderAddress.md +0 -191
  353. package/docs/dw_extensions.payments/SalesforcePayPalOrderPayer.md +0 -118
  354. package/docs/dw_extensions.payments/SalesforcePayPalPaymentDetails.md +0 -79
  355. package/docs/dw_extensions.payments/SalesforcePaymentDetails.md +0 -57
  356. package/docs/dw_extensions.payments/SalesforcePaymentIntent.md +0 -281
  357. package/docs/dw_extensions.payments/SalesforcePaymentMethod.md +0 -346
  358. package/docs/dw_extensions.payments/SalesforcePaymentRequest.md +0 -784
  359. package/docs/dw_extensions.payments/SalesforcePaymentsHooks.md +0 -45
  360. package/docs/dw_extensions.payments/SalesforcePaymentsMgr.md +0 -634
  361. package/docs/dw_extensions.payments/SalesforcePaymentsSiteConfiguration.md +0 -95
  362. package/docs/dw_extensions.payments/SalesforceSepaDebitPaymentDetails.md +0 -51
  363. package/docs/dw_extensions.payments/SalesforceVenmoPaymentDetails.md +0 -79
  364. package/docs/dw_extensions.pinterest/PinterestAvailability.md +0 -86
  365. package/docs/dw_extensions.pinterest/PinterestFeedHooks.md +0 -69
  366. package/docs/dw_extensions.pinterest/PinterestOrder.md +0 -232
  367. package/docs/dw_extensions.pinterest/PinterestOrderHooks.md +0 -45
  368. package/docs/dw_extensions.pinterest/PinterestProduct.md +0 -850
  369. package/docs/dw_io/CSVStreamReader.md +0 -80
  370. package/docs/dw_io/CSVStreamWriter.md +0 -60
  371. package/docs/dw_io/File.md +0 -614
  372. package/docs/dw_io/FileReader.md +0 -41
  373. package/docs/dw_io/FileWriter.md +0 -103
  374. package/docs/dw_io/InputStream.md +0 -34
  375. package/docs/dw_io/OutputStream.md +0 -34
  376. package/docs/dw_io/PrintWriter.md +0 -71
  377. package/docs/dw_io/RandomAccessFileReader.md +0 -173
  378. package/docs/dw_io/Reader.md +0 -274
  379. package/docs/dw_io/StringWriter.md +0 -81
  380. package/docs/dw_io/Writer.md +0 -92
  381. package/docs/dw_io/XMLIndentingStreamWriter.md +0 -112
  382. package/docs/dw_io/XMLStreamConstants.md +0 -114
  383. package/docs/dw_io/XMLStreamReader.md +0 -1043
  384. package/docs/dw_io/XMLStreamWriter.md +0 -572
  385. package/docs/dw_job/JobExecution.md +0 -107
  386. package/docs/dw_job/JobStepExecution.md +0 -151
  387. package/docs/dw_net/FTPClient.md +0 -699
  388. package/docs/dw_net/FTPFileInfo.md +0 -122
  389. package/docs/dw_net/HTTPClient.md +0 -831
  390. package/docs/dw_net/HTTPClientLoggingConfig.md +0 -296
  391. package/docs/dw_net/HTTPRequestPart.md +0 -206
  392. package/docs/dw_net/Mail.md +0 -551
  393. package/docs/dw_net/SFTPClient.md +0 -591
  394. package/docs/dw_net/SFTPFileInfo.md +0 -122
  395. package/docs/dw_net/WebDAVClient.md +0 -715
  396. package/docs/dw_net/WebDAVFileInfo.md +0 -184
  397. package/docs/dw_object/ActiveData.md +0 -75
  398. package/docs/dw_object/CustomAttributes.md +0 -16
  399. package/docs/dw_object/CustomObject.md +0 -73
  400. package/docs/dw_object/CustomObjectMgr.md +0 -291
  401. package/docs/dw_object/Extensible.md +0 -64
  402. package/docs/dw_object/ExtensibleObject.md +0 -68
  403. package/docs/dw_object/Note.md +0 -121
  404. package/docs/dw_object/ObjectAttributeDefinition.md +0 -481
  405. package/docs/dw_object/ObjectAttributeGroup.md +0 -170
  406. package/docs/dw_object/ObjectAttributeValueDefinition.md +0 -72
  407. package/docs/dw_object/ObjectTypeDefinition.md +0 -216
  408. package/docs/dw_object/PersistentObject.md +0 -94
  409. package/docs/dw_object/SimpleExtensible.md +0 -46
  410. package/docs/dw_object/SystemObjectMgr.md +0 -153
  411. package/docs/dw_order/AbstractItem.md +0 -244
  412. package/docs/dw_order/AbstractItemCtnr.md +0 -240
  413. package/docs/dw_order/Appeasement.md +0 -367
  414. package/docs/dw_order/AppeasementItem.md +0 -90
  415. package/docs/dw_order/Basket.md +0 -362
  416. package/docs/dw_order/BasketMgr.md +0 -418
  417. package/docs/dw_order/BonusDiscountLineItem.md +0 -248
  418. package/docs/dw_order/CouponLineItem.md +0 -272
  419. package/docs/dw_order/CreateAgentBasketLimitExceededException.md +0 -18
  420. package/docs/dw_order/CreateBasketFromOrderException.md +0 -26
  421. package/docs/dw_order/CreateCouponLineItemException.md +0 -26
  422. package/docs/dw_order/CreateOrderException.md +0 -18
  423. package/docs/dw_order/CreateTemporaryBasketLimitExceededException.md +0 -18
  424. package/docs/dw_order/GiftCertificate.md +0 -569
  425. package/docs/dw_order/GiftCertificateLineItem.md +0 -324
  426. package/docs/dw_order/GiftCertificateMgr.md +0 -197
  427. package/docs/dw_order/GiftCertificateStatusCodes.md +0 -60
  428. package/docs/dw_order/Invoice.md +0 -418
  429. package/docs/dw_order/InvoiceItem.md +0 -222
  430. package/docs/dw_order/LineItem.md +0 -532
  431. package/docs/dw_order/LineItemCtnr.md +0 -2431
  432. package/docs/dw_order/Order.md +0 -2567
  433. package/docs/dw_order/OrderAddress.md +0 -807
  434. package/docs/dw_order/OrderItem.md +0 -536
  435. package/docs/dw_order/OrderMgr.md +0 -535
  436. package/docs/dw_order/OrderPaymentInstrument.md +0 -220
  437. package/docs/dw_order/OrderProcessStatusCodes.md +0 -84
  438. package/docs/dw_order/PaymentCard.md +0 -217
  439. package/docs/dw_order/PaymentInstrument.md +0 -1462
  440. package/docs/dw_order/PaymentMethod.md +0 -242
  441. package/docs/dw_order/PaymentMgr.md +0 -117
  442. package/docs/dw_order/PaymentProcessor.md +0 -70
  443. package/docs/dw_order/PaymentStatusCodes.md +0 -42
  444. package/docs/dw_order/PaymentTransaction.md +0 -328
  445. package/docs/dw_order/PriceAdjustment.md +0 -640
  446. package/docs/dw_order/PriceAdjustmentLimitTypes.md +0 -38
  447. package/docs/dw_order/ProductLineItem.md +0 -1821
  448. package/docs/dw_order/ProductShippingCost.md +0 -96
  449. package/docs/dw_order/ProductShippingLineItem.md +0 -326
  450. package/docs/dw_order/ProductShippingModel.md +0 -125
  451. package/docs/dw_order/Return.md +0 -360
  452. package/docs/dw_order/ReturnCase.md +0 -400
  453. package/docs/dw_order/ReturnCaseItem.md +0 -373
  454. package/docs/dw_order/ReturnItem.md +0 -362
  455. package/docs/dw_order/Shipment.md +0 -1251
  456. package/docs/dw_order/ShipmentShippingCost.md +0 -46
  457. package/docs/dw_order/ShipmentShippingModel.md +0 -146
  458. package/docs/dw_order/ShippingLineItem.md +0 -278
  459. package/docs/dw_order/ShippingLocation.md +0 -366
  460. package/docs/dw_order/ShippingMethod.md +0 -266
  461. package/docs/dw_order/ShippingMgr.md +0 -158
  462. package/docs/dw_order/ShippingOrder.md +0 -561
  463. package/docs/dw_order/ShippingOrderItem.md +0 -355
  464. package/docs/dw_order/SumItem.md +0 -147
  465. package/docs/dw_order/TaxGroup.md +0 -143
  466. package/docs/dw_order/TaxItem.md +0 -74
  467. package/docs/dw_order/TaxMgr.md +0 -227
  468. package/docs/dw_order/TrackingInfo.md +0 -312
  469. package/docs/dw_order/TrackingRef.md +0 -113
  470. package/docs/dw_order.hooks/BasketMergeHooks.md +0 -42
  471. package/docs/dw_order.hooks/CalculateHooks.md +0 -77
  472. package/docs/dw_order.hooks/OrderHooks.md +0 -41
  473. package/docs/dw_order.hooks/PaymentHooks.md +0 -180
  474. package/docs/dw_order.hooks/ReturnHooks.md +0 -135
  475. package/docs/dw_order.hooks/ShippingOrderHooks.md +0 -245
  476. package/docs/dw_rpc/SOAPUtil.md +0 -465
  477. package/docs/dw_rpc/Stub.md +0 -289
  478. package/docs/dw_rpc/WebReference.md +0 -83
  479. package/docs/dw_suggest/BrandSuggestions.md +0 -17
  480. package/docs/dw_suggest/CategorySuggestions.md +0 -53
  481. package/docs/dw_suggest/ContentSuggestions.md +0 -53
  482. package/docs/dw_suggest/CustomSuggestions.md +0 -17
  483. package/docs/dw_suggest/ProductSuggestions.md +0 -53
  484. package/docs/dw_suggest/SearchPhraseSuggestions.md +0 -117
  485. package/docs/dw_suggest/SuggestModel.md +0 -403
  486. package/docs/dw_suggest/SuggestedCategory.md +0 -46
  487. package/docs/dw_suggest/SuggestedContent.md +0 -46
  488. package/docs/dw_suggest/SuggestedPhrase.md +0 -70
  489. package/docs/dw_suggest/SuggestedProduct.md +0 -47
  490. package/docs/dw_suggest/SuggestedTerm.md +0 -143
  491. package/docs/dw_suggest/SuggestedTerms.md +0 -132
  492. package/docs/dw_suggest/Suggestions.md +0 -179
  493. package/docs/dw_svc/FTPService.md +0 -118
  494. package/docs/dw_svc/FTPServiceDefinition.md +0 -69
  495. package/docs/dw_svc/HTTPFormService.md +0 -18
  496. package/docs/dw_svc/HTTPFormServiceDefinition.md +0 -18
  497. package/docs/dw_svc/HTTPService.md +0 -415
  498. package/docs/dw_svc/HTTPServiceDefinition.md +0 -303
  499. package/docs/dw_svc/LocalServiceRegistry.md +0 -43
  500. package/docs/dw_svc/Result.md +0 -303
  501. package/docs/dw_svc/SOAPService.md +0 -115
  502. package/docs/dw_svc/SOAPServiceDefinition.md +0 -17
  503. package/docs/dw_svc/Service.md +0 -295
  504. package/docs/dw_svc/ServiceCallback.md +0 -268
  505. package/docs/dw_svc/ServiceConfig.md +0 -120
  506. package/docs/dw_svc/ServiceCredential.md +0 -156
  507. package/docs/dw_svc/ServiceDefinition.md +0 -176
  508. package/docs/dw_svc/ServiceProfile.md +0 -168
  509. package/docs/dw_svc/ServiceRegistry.md +0 -109
  510. package/docs/dw_system/AgentUserStatusCodes.md +0 -21
  511. package/docs/dw_system/Cache.md +0 -102
  512. package/docs/dw_system/CacheMgr.md +0 -42
  513. package/docs/dw_system/HookMgr.md +0 -66
  514. package/docs/dw_system/InternalObject.md +0 -56
  515. package/docs/dw_system/JobProcessMonitor.md +0 -124
  516. package/docs/dw_system/Log.md +0 -237
  517. package/docs/dw_system/LogNDC.md +0 -88
  518. package/docs/dw_system/Logger.md +0 -263
  519. package/docs/dw_system/OrganizationPreferences.md +0 -18
  520. package/docs/dw_system/Pipeline.md +0 -73
  521. package/docs/dw_system/PipelineDictionary.md +0 -16
  522. package/docs/dw_system/RESTErrorResponse.md +0 -66
  523. package/docs/dw_system/RESTResponseMgr.md +0 -258
  524. package/docs/dw_system/RESTSuccessResponse.md +0 -39
  525. package/docs/dw_system/RemoteInclude.md +0 -74
  526. package/docs/dw_system/Request.md +0 -839
  527. package/docs/dw_system/RequestHooks.md +0 -59
  528. package/docs/dw_system/Response.md +0 -522
  529. package/docs/dw_system/SearchStatus.md +0 -151
  530. package/docs/dw_system/Session.md +0 -476
  531. package/docs/dw_system/Site.md +0 -585
  532. package/docs/dw_system/SitePreferences.md +0 -49
  533. package/docs/dw_system/Status.md +0 -273
  534. package/docs/dw_system/StatusItem.md +0 -273
  535. package/docs/dw_system/System.md +0 -200
  536. package/docs/dw_system/Transaction.md +0 -84
  537. package/docs/dw_util/ArrayList.md +0 -50
  538. package/docs/dw_util/Assert.md +0 -391
  539. package/docs/dw_util/BigInteger.md +0 -326
  540. package/docs/dw_util/Bytes.md +0 -252
  541. package/docs/dw_util/Calendar.md +0 -921
  542. package/docs/dw_util/Collection.md +0 -338
  543. package/docs/dw_util/Currency.md +0 -163
  544. package/docs/dw_util/DateUtils.md +0 -86
  545. package/docs/dw_util/Decimal.md +0 -438
  546. package/docs/dw_util/FilteringCollection.md +0 -93
  547. package/docs/dw_util/Geolocation.md +0 -271
  548. package/docs/dw_util/HashMap.md +0 -43
  549. package/docs/dw_util/HashSet.md +0 -46
  550. package/docs/dw_util/Iterator.md +0 -97
  551. package/docs/dw_util/LinkedHashMap.md +0 -43
  552. package/docs/dw_util/LinkedHashSet.md +0 -46
  553. package/docs/dw_util/List.md +0 -519
  554. package/docs/dw_util/Locale.md +0 -267
  555. package/docs/dw_util/Map.md +0 -313
  556. package/docs/dw_util/MapEntry.md +0 -70
  557. package/docs/dw_util/MappingKey.md +0 -76
  558. package/docs/dw_util/MappingMgr.md +0 -122
  559. package/docs/dw_util/PropertyComparator.md +0 -51
  560. package/docs/dw_util/SecureEncoder.md +0 -350
  561. package/docs/dw_util/SecureFilter.md +0 -350
  562. package/docs/dw_util/SeekableIterator.md +0 -176
  563. package/docs/dw_util/Set.md +0 -19
  564. package/docs/dw_util/SortedMap.md +0 -148
  565. package/docs/dw_util/SortedSet.md +0 -151
  566. package/docs/dw_util/StringUtils.md +0 -753
  567. package/docs/dw_util/Template.md +0 -88
  568. package/docs/dw_util/UUIDUtils.md +0 -38
  569. package/docs/dw_value/EnumValue.md +0 -92
  570. package/docs/dw_value/MimeEncodedText.md +0 -103
  571. package/docs/dw_value/Money.md +0 -610
  572. package/docs/dw_value/Quantity.md +0 -376
  573. package/docs/dw_web/CSRFProtection.md +0 -83
  574. package/docs/dw_web/ClickStream.md +0 -157
  575. package/docs/dw_web/ClickStreamEntry.md +0 -289
  576. package/docs/dw_web/Cookie.md +0 -396
  577. package/docs/dw_web/Cookies.md +0 -46
  578. package/docs/dw_web/Form.md +0 -74
  579. package/docs/dw_web/FormAction.md +0 -199
  580. package/docs/dw_web/FormElement.md +0 -220
  581. package/docs/dw_web/FormElementValidationResult.md +0 -157
  582. package/docs/dw_web/FormField.md +0 -603
  583. package/docs/dw_web/FormFieldOption.md +0 -238
  584. package/docs/dw_web/FormFieldOptions.md +0 -42
  585. package/docs/dw_web/FormGroup.md +0 -199
  586. package/docs/dw_web/FormList.md +0 -126
  587. package/docs/dw_web/FormListItem.md +0 -48
  588. package/docs/dw_web/Forms.md +0 -16
  589. package/docs/dw_web/HttpParameter.md +0 -513
  590. package/docs/dw_web/HttpParameterMap.md +0 -185
  591. package/docs/dw_web/LoopIterator.md +0 -261
  592. package/docs/dw_web/PageMetaData.md +0 -230
  593. package/docs/dw_web/PageMetaTag.md +0 -142
  594. package/docs/dw_web/PagingModel.md +0 -389
  595. package/docs/dw_web/Resource.md +0 -126
  596. package/docs/dw_web/URL.md +0 -213
  597. package/docs/dw_web/URLAction.md +0 -26
  598. package/docs/dw_web/URLParameter.md +0 -22
  599. package/docs/dw_web/URLRedirect.md +0 -71
  600. package/docs/dw_web/URLRedirectMgr.md +0 -73
  601. package/docs/dw_web/URLUtils.md +0 -1264
  602. package/docs/isml/isactivedatacontext.md +0 -382
  603. package/docs/isml/isactivedatahead.md +0 -566
  604. package/docs/isml/isanalyticsoff.md +0 -537
  605. package/docs/isml/isapplepay.md +0 -667
  606. package/docs/isml/isbreak.md +0 -687
  607. package/docs/isml/isbuynow.md +0 -682
  608. package/docs/isml/iscache.md +0 -802
  609. package/docs/isml/iscomment.md +0 -794
  610. package/docs/isml/iscomponent.md +0 -797
  611. package/docs/isml/iscontent.md +0 -594
  612. package/docs/isml/iscontinue.md +0 -563
  613. package/docs/isml/iscookie.md +0 -798
  614. package/docs/isml/isdecorate.md +0 -818
  615. package/docs/isml/isif.md +0 -737
  616. package/docs/isml/isinclude.md +0 -874
  617. package/docs/isml/isloop.md +0 -377
  618. package/docs/isml/ismodule.md +0 -844
  619. package/docs/isml/isnext.md +0 -672
  620. package/docs/isml/isobject.md +0 -760
  621. package/docs/isml/ispayment.md +0 -577
  622. package/docs/isml/ispaymentmessages.md +0 -664
  623. package/docs/isml/isprint.md +0 -875
  624. package/docs/isml/isredirect.md +0 -716
  625. package/docs/isml/isremove.md +0 -725
  626. package/docs/isml/isreplace.md +0 -783
  627. package/docs/isml/isscript.md +0 -859
  628. package/docs/isml/isselect.md +0 -908
  629. package/docs/isml/isset.md +0 -585
  630. package/docs/isml/isslot.md +0 -824
  631. package/docs/isml/isstatus.md +0 -711
  632. package/docs/sfra/account.md +0 -145
  633. package/docs/sfra/address.md +0 -84
  634. package/docs/sfra/billing.md +0 -90
  635. package/docs/sfra/cart.md +0 -134
  636. package/docs/sfra/categories.md +0 -124
  637. package/docs/sfra/content.md +0 -133
  638. package/docs/sfra/locale.md +0 -126
  639. package/docs/sfra/order.md +0 -219
  640. package/docs/sfra/payment.md +0 -131
  641. package/docs/sfra/price-default.md +0 -118
  642. package/docs/sfra/price-range.md +0 -77
  643. package/docs/sfra/price-tiered.md +0 -117
  644. package/docs/sfra/product-bundle.md +0 -164
  645. package/docs/sfra/product-full.md +0 -179
  646. package/docs/sfra/product-line-items.md +0 -147
  647. package/docs/sfra/product-search.md +0 -245
  648. package/docs/sfra/product-tile.md +0 -95
  649. package/docs/sfra/querystring.md +0 -240
  650. package/docs/sfra/render.md +0 -354
  651. package/docs/sfra/request.md +0 -210
  652. package/docs/sfra/response.md +0 -391
  653. package/docs/sfra/server.md +0 -375
  654. package/docs/sfra/shipping.md +0 -181
  655. package/docs/sfra/store.md +0 -145
  656. package/docs/sfra/stores.md +0 -190
  657. package/docs/sfra/totals.md +0 -184
  658. package/docs-site-v2/.vitepress/config.mts +0 -190
  659. package/docs-site-v2/.vitepress/theme/components/AssistantTabs.vue +0 -96
  660. package/docs-site-v2/.vitepress/theme/components/Callout.vue +0 -10
  661. package/docs-site-v2/.vitepress/theme/components/Collapsible.vue +0 -14
  662. package/docs-site-v2/.vitepress/theme/components/DwJsonBuilder.vue +0 -82
  663. package/docs-site-v2/.vitepress/theme/components/HomeSections.vue +0 -552
  664. package/docs-site-v2/.vitepress/theme/components/InstructionFilesTabs.vue +0 -87
  665. package/docs-site-v2/.vitepress/theme/components/ModeTabs.vue +0 -70
  666. package/docs-site-v2/.vitepress/theme/components/NewcomerCTA.vue +0 -14
  667. package/docs-site-v2/.vitepress/theme/components/QuickStartCards.vue +0 -20
  668. package/docs-site-v2/.vitepress/theme/components/QuickStartHero.vue +0 -20
  669. package/docs-site-v2/.vitepress/theme/components/SkillsList.vue +0 -48
  670. package/docs-site-v2/.vitepress/theme/components/ToolExplorer.vue +0 -85
  671. package/docs-site-v2/.vitepress/theme/custom.css +0 -1373
  672. package/docs-site-v2/.vitepress/theme/index.ts +0 -39
  673. package/docs-site-v2/data/skills.ts +0 -147
  674. package/docs-site-v2/data/tools.ts +0 -490
  675. package/docs-site-v2/development/index.md +0 -151
  676. package/docs-site-v2/examples/index.md +0 -333
  677. package/docs-site-v2/features/index.md +0 -144
  678. package/docs-site-v2/guide/ai-interfaces.md +0 -58
  679. package/docs-site-v2/guide/configuration.md +0 -208
  680. package/docs-site-v2/guide/index.md +0 -50
  681. package/docs-site-v2/index.md +0 -32
  682. package/docs-site-v2/package-lock.json +0 -2511
  683. package/docs-site-v2/package.json +0 -15
  684. package/docs-site-v2/public/404.html +0 -15
  685. package/docs-site-v2/public/android-chrome-192x192.png +0 -0
  686. package/docs-site-v2/public/android-chrome-512x512.png +0 -0
  687. package/docs-site-v2/public/apple-touch-icon.png +0 -0
  688. package/docs-site-v2/public/explain-product-pricing-methods-no-mcp.png +0 -0
  689. package/docs-site-v2/public/explain-product-pricing-methods.png +0 -0
  690. package/docs-site-v2/public/favicon-16x16.png +0 -0
  691. package/docs-site-v2/public/favicon-32x32.png +0 -0
  692. package/docs-site-v2/public/favicon.ico +0 -0
  693. package/docs-site-v2/public/index.css +0 -4174
  694. package/docs-site-v2/public/llms.txt +0 -44
  695. package/docs-site-v2/public/logo-dark.svg +0 -8
  696. package/docs-site-v2/public/logo.svg +0 -8
  697. package/docs-site-v2/public/robots.txt +0 -20
  698. package/docs-site-v2/public/site.webmanifest +0 -50
  699. package/docs-site-v2/public/sitemap.xml +0 -90
  700. package/docs-site-v2/script-debugger/index.md +0 -105
  701. package/docs-site-v2/scripts/generate-llms.js +0 -71
  702. package/docs-site-v2/scripts/generate-sitemap.js +0 -97
  703. package/docs-site-v2/security/index.md +0 -115
  704. package/docs-site-v2/skills/index.md +0 -40
  705. package/docs-site-v2/tools/index.md +0 -36
  706. package/docs-site-v2/troubleshooting/index.md +0 -204
  707. package/eslint.config.js +0 -139
  708. package/jest.config.js +0 -27
  709. package/memories/repo/docs-site-v2-build.json +0 -11
  710. package/scripts/convert-docs.js +0 -633
  711. package/scripts/validate-server-json.js +0 -68
  712. package/server.json +0 -20
  713. package/src/clients/agent-instructions-client.ts +0 -370
  714. package/src/clients/base/abstract-documentation-client.ts +0 -405
  715. package/src/clients/base/http-client.ts +0 -152
  716. package/src/clients/base/oauth-token.ts +0 -164
  717. package/src/clients/base/ocapi-auth-client.ts +0 -133
  718. package/src/clients/cartridge/cartridge-generation-client.ts +0 -302
  719. package/src/clients/cartridge/cartridge-structure.ts +0 -37
  720. package/src/clients/cartridge/cartridge-templates.ts +0 -246
  721. package/src/clients/cartridge/index.ts +0 -6
  722. package/src/clients/docs/class-content-parser.ts +0 -308
  723. package/src/clients/docs/class-name-resolver.ts +0 -99
  724. package/src/clients/docs/documentation-scanner.ts +0 -255
  725. package/src/clients/docs/index.ts +0 -16
  726. package/src/clients/docs/referenced-types-extractor.ts +0 -92
  727. package/src/clients/docs-client.ts +0 -393
  728. package/src/clients/isml-client.ts +0 -353
  729. package/src/clients/log-client.ts +0 -19
  730. package/src/clients/ocapi/code-versions-client.ts +0 -54
  731. package/src/clients/ocapi/site-preferences-client.ts +0 -106
  732. package/src/clients/ocapi/system-objects-client.ts +0 -148
  733. package/src/clients/ocapi-client.ts +0 -53
  734. package/src/clients/script-debugger/index.ts +0 -5
  735. package/src/clients/script-debugger/script-debugger-client.ts +0 -754
  736. package/src/clients/sfra-client.ts +0 -339
  737. package/src/config/configuration-factory.ts +0 -201
  738. package/src/config/dw-json-loader.ts +0 -248
  739. package/src/config/workspace-roots.ts +0 -540
  740. package/src/constants/index.ts +0 -1
  741. package/src/core/handlers/abstract-client-handler.ts +0 -85
  742. package/src/core/handlers/agent-instructions-handler.ts +0 -48
  743. package/src/core/handlers/base-handler.ts +0 -172
  744. package/src/core/handlers/cartridge-handler.ts +0 -38
  745. package/src/core/handlers/client-factory.ts +0 -140
  746. package/src/core/handlers/code-version-handler.ts +0 -43
  747. package/src/core/handlers/docs-handler.ts +0 -19
  748. package/src/core/handlers/isml-handler.ts +0 -19
  749. package/src/core/handlers/job-log-handler.ts +0 -39
  750. package/src/core/handlers/log-handler.ts +0 -39
  751. package/src/core/handlers/script-debugger-handler.ts +0 -46
  752. package/src/core/handlers/sfra-handler.ts +0 -23
  753. package/src/core/handlers/simple-client-handler.ts +0 -78
  754. package/src/core/handlers/system-object-handler.ts +0 -43
  755. package/src/core/handlers/validation-helpers.ts +0 -206
  756. package/src/core/instruction-advisor.ts +0 -122
  757. package/src/core/server.ts +0 -374
  758. package/src/core/tool-definitions.ts +0 -30
  759. package/src/core/tool-schemas/agent-instruction-tools.ts +0 -72
  760. package/src/core/tool-schemas/cartridge-tools.ts +0 -29
  761. package/src/core/tool-schemas/code-version-tools.ts +0 -28
  762. package/src/core/tool-schemas/documentation-tools.ts +0 -104
  763. package/src/core/tool-schemas/index.ts +0 -27
  764. package/src/core/tool-schemas/isml-tools.ts +0 -89
  765. package/src/core/tool-schemas/log-tools.ts +0 -196
  766. package/src/core/tool-schemas/script-debugger-tools.ts +0 -83
  767. package/src/core/tool-schemas/sfra-tools.ts +0 -65
  768. package/src/core/tool-schemas/shared-schemas.ts +0 -158
  769. package/src/core/tool-schemas/system-object-tools.ts +0 -127
  770. package/src/index.ts +0 -20
  771. package/src/main.ts +0 -161
  772. package/src/services/file-system-service.ts +0 -117
  773. package/src/services/index.ts +0 -11
  774. package/src/services/path-service.ts +0 -124
  775. package/src/tool-configs/agent-instructions-tool-config.ts +0 -83
  776. package/src/tool-configs/cartridge-tool-config.ts +0 -41
  777. package/src/tool-configs/code-version-tool-config.ts +0 -37
  778. package/src/tool-configs/docs-tool-config.ts +0 -103
  779. package/src/tool-configs/isml-tool-config.ts +0 -87
  780. package/src/tool-configs/job-log-tool-config.ts +0 -119
  781. package/src/tool-configs/log-tool-config.ts +0 -110
  782. package/src/tool-configs/script-debugger-tool-config.ts +0 -69
  783. package/src/tool-configs/sfra-tool-config.ts +0 -74
  784. package/src/tool-configs/system-object-tool-config.ts +0 -142
  785. package/src/types/types.ts +0 -125
  786. package/src/utils/cache.ts +0 -291
  787. package/src/utils/category-utils.ts +0 -70
  788. package/src/utils/log-tool-constants.ts +0 -95
  789. package/src/utils/logger.ts +0 -260
  790. package/src/utils/markdown-utils.ts +0 -280
  791. package/src/utils/ocapi-url-builder.ts +0 -48
  792. package/src/utils/path-resolver.ts +0 -69
  793. package/src/utils/path-validation.ts +0 -113
  794. package/src/utils/query-builder.ts +0 -84
  795. package/src/utils/utils.ts +0 -139
  796. package/src/utils/validator.ts +0 -162
  797. package/tests/__mocks__/docs-client.ts +0 -8
  798. package/tests/__mocks__/src/clients/base/http-client.js +0 -43
  799. package/tests/__mocks__/webdav.js +0 -14
  800. package/tests/base-handler.test.ts +0 -527
  801. package/tests/base-http-client.test.ts +0 -311
  802. package/tests/cache.test.ts +0 -453
  803. package/tests/cartridge-handler.test.ts +0 -290
  804. package/tests/class-content-parser.test.ts +0 -629
  805. package/tests/class-name-resolver.test.ts +0 -365
  806. package/tests/client-factory.test.ts +0 -280
  807. package/tests/code-version-handler.test.ts +0 -291
  808. package/tests/code-versions-client.test.ts +0 -156
  809. package/tests/config.test.ts +0 -285
  810. package/tests/configuration-factory.test.ts +0 -233
  811. package/tests/docs-handler.test.ts +0 -359
  812. package/tests/documentation-scanner.test.ts +0 -755
  813. package/tests/file-system-service.test.ts +0 -111
  814. package/tests/isml-client.test.ts +0 -463
  815. package/tests/isml-handler.test.ts +0 -375
  816. package/tests/job-log-handler.test.ts +0 -283
  817. package/tests/log-client.test.ts +0 -768
  818. package/tests/log-handler.test.ts +0 -365
  819. package/tests/log-processor.test.ts +0 -243
  820. package/tests/log-validation.test.ts +0 -149
  821. package/tests/logger.test.ts +0 -303
  822. package/tests/mcp/AGENTS.md +0 -162
  823. package/tests/mcp/README.md +0 -237
  824. package/tests/mcp/node/activate-code-version-advanced.full-mode.programmatic.test.js +0 -669
  825. package/tests/mcp/node/code-versions.full-mode.programmatic.test.js +0 -605
  826. package/tests/mcp/node/evaluate-script.full-mode.programmatic.test.js +0 -387
  827. package/tests/mcp/node/generate-cartridge-structure.docs-only.programmatic.test.js +0 -644
  828. package/tests/mcp/node/get-available-sfra-documents.programmatic.test.js +0 -274
  829. package/tests/mcp/node/get-isml-categories.programmatic.test.js +0 -278
  830. package/tests/mcp/node/get-isml-element.programmatic.test.js +0 -278
  831. package/tests/mcp/node/get-isml-elements-by-category.programmatic.test.js +0 -363
  832. package/tests/mcp/node/get-job-execution-summary.full-mode.programmatic.test.js +0 -432
  833. package/tests/mcp/node/get-job-log-entries.full-mode.programmatic.test.js +0 -488
  834. package/tests/mcp/node/get-latest-debug.full-mode.programmatic.test.js +0 -338
  835. package/tests/mcp/node/get-latest-error.full-mode.programmatic.test.js +0 -255
  836. package/tests/mcp/node/get-latest-info.full-mode.programmatic.test.js +0 -347
  837. package/tests/mcp/node/get-latest-job-log-files.full-mode.programmatic.test.js +0 -460
  838. package/tests/mcp/node/get-latest-warn.full-mode.programmatic.test.js +0 -454
  839. package/tests/mcp/node/get-log-file-contents.full-mode.programmatic.test.js +0 -381
  840. package/tests/mcp/node/get-sfcc-class-documentation.docs-only.programmatic.test.js +0 -371
  841. package/tests/mcp/node/get-sfcc-class-info.docs-only.programmatic.test.js +0 -1032
  842. package/tests/mcp/node/get-sfra-categories.docs-only.programmatic.test.js +0 -369
  843. package/tests/mcp/node/get-sfra-document.programmatic.test.js +0 -473
  844. package/tests/mcp/node/get-sfra-documents-by-category.docs-only.programmatic.test.js +0 -510
  845. package/tests/mcp/node/get-system-object-definition.full-mode.programmatic.test.js +0 -389
  846. package/tests/mcp/node/get-system-object-definitions.docs-only.programmatic.test.js +0 -300
  847. package/tests/mcp/node/get-system-object-definitions.full-mode.programmatic.test.js +0 -387
  848. package/tests/mcp/node/list-isml-elements.programmatic.test.js +0 -311
  849. package/tests/mcp/node/list-log-files.full-mode.programmatic.test.js +0 -150
  850. package/tests/mcp/node/list-sfcc-classes.docs-only.programmatic.test.js +0 -612
  851. package/tests/mcp/node/search-custom-object-attribute-definitions.full-mode.programmatic.test.js +0 -875
  852. package/tests/mcp/node/search-isml-elements.programmatic.test.js +0 -325
  853. package/tests/mcp/node/search-job-logs-by-name.full-mode.programmatic.test.js +0 -330
  854. package/tests/mcp/node/search-job-logs.full-mode.programmatic.test.js +0 -526
  855. package/tests/mcp/node/search-logs.full-mode.programmatic.test.js +0 -478
  856. package/tests/mcp/node/search-sfcc-classes.docs-only.programmatic.test.js +0 -334
  857. package/tests/mcp/node/search-sfcc-methods.docs-only.programmatic.test.js +0 -487
  858. package/tests/mcp/node/search-sfra-documentation.docs-only.programmatic.test.js +0 -563
  859. package/tests/mcp/node/search-site-preferences.full-mode.programmatic.test.js +0 -556
  860. package/tests/mcp/node/search-system-object-attribute-definitions.full-mode.programmatic.test.js +0 -744
  861. package/tests/mcp/node/search-system-object-attribute-groups.full-mode.programmatic.test.js +0 -657
  862. package/tests/mcp/node/summarize-logs.full-mode.programmatic.test.js +0 -357
  863. package/tests/mcp/node/tools.docs-only.programmatic.test.js +0 -515
  864. package/tests/mcp/node/tools.full-mode.programmatic.test.js +0 -154
  865. package/tests/mcp/test-fixtures/dw.json +0 -10
  866. package/tests/mcp/yaml/activate-code-version.docs-only.test.mcp.yml +0 -318
  867. package/tests/mcp/yaml/activate-code-version.full-mode.test.mcp.yml +0 -507
  868. package/tests/mcp/yaml/evaluate-script.full-mode.test.mcp.yml +0 -281
  869. package/tests/mcp/yaml/get-available-sfra-documents.docs-only.test.mcp.yml +0 -684
  870. package/tests/mcp/yaml/get-available-sfra-documents.full-mode.test.mcp.yml +0 -684
  871. package/tests/mcp/yaml/get-code-versions.docs-only.test.mcp.yml +0 -196
  872. package/tests/mcp/yaml/get-code-versions.full-mode.test.mcp.yml +0 -273
  873. package/tests/mcp/yaml/get-isml-categories.docs-only.test.mcp.yml +0 -330
  874. package/tests/mcp/yaml/get-isml-element.docs-only.test.mcp.yml +0 -294
  875. package/tests/mcp/yaml/get-isml-elements-by-category.docs-only.test.mcp.yml +0 -334
  876. package/tests/mcp/yaml/get-job-execution-summary.full-mode.test.mcp.yml +0 -148
  877. package/tests/mcp/yaml/get-job-log-entries.full-mode.test.mcp.yml +0 -284
  878. package/tests/mcp/yaml/get-latest-debug.full-mode.test.mcp.yml +0 -191
  879. package/tests/mcp/yaml/get-latest-error.full-mode.test.mcp.yml +0 -195
  880. package/tests/mcp/yaml/get-latest-info.full-mode.test.mcp.yml +0 -242
  881. package/tests/mcp/yaml/get-latest-job-log-files.full-mode.test.mcp.yml +0 -189
  882. package/tests/mcp/yaml/get-latest-warn.full-mode.test.mcp.yml +0 -182
  883. package/tests/mcp/yaml/get-log-file-contents.full-mode.test.mcp.yml +0 -256
  884. package/tests/mcp/yaml/get-sfcc-class-documentation.docs-only.test.mcp.yml +0 -2416
  885. package/tests/mcp/yaml/get-sfcc-class-documentation.full-mode.test.mcp.yml +0 -2416
  886. package/tests/mcp/yaml/get-sfcc-class-info.docs-only.test.mcp.yml +0 -1225
  887. package/tests/mcp/yaml/get-sfcc-class-info.full-mode.test.mcp.yml +0 -1225
  888. package/tests/mcp/yaml/get-sfra-categories.docs-only.test.mcp.yml +0 -452
  889. package/tests/mcp/yaml/get-sfra-categories.full-mode.test.mcp.yml +0 -452
  890. package/tests/mcp/yaml/get-sfra-document.docs-only.test.mcp.yml +0 -525
  891. package/tests/mcp/yaml/get-sfra-document.full-mode.test.mcp.yml +0 -525
  892. package/tests/mcp/yaml/get-sfra-documents-by-category.docs-only.test.mcp.yml +0 -507
  893. package/tests/mcp/yaml/get-sfra-documents-by-category.full-mode.test.mcp.yml +0 -507
  894. package/tests/mcp/yaml/get-system-object-definition.docs-only.test.mcp.yml +0 -208
  895. package/tests/mcp/yaml/get-system-object-definition.full-mode.test.mcp.yml +0 -191
  896. package/tests/mcp/yaml/get-system-object-definitions.docs-only.test.mcp.yml +0 -257
  897. package/tests/mcp/yaml/get-system-object-definitions.full-mode.test.mcp.yml +0 -517
  898. package/tests/mcp/yaml/get_latest_error.test.mcp.yml +0 -472
  899. package/tests/mcp/yaml/list-isml-elements.docs-only.test.mcp.yml +0 -212
  900. package/tests/mcp/yaml/list-log-files.full-mode.test.mcp.yml +0 -89
  901. package/tests/mcp/yaml/list-sfcc-classes.docs-only.test.mcp.yml +0 -511
  902. package/tests/mcp/yaml/list-sfcc-classes.full-mode.test.mcp.yml +0 -511
  903. package/tests/mcp/yaml/search-custom-object-attribute-definitions.docs-only.test.mcp.yml +0 -82
  904. package/tests/mcp/yaml/search-custom-object-attribute-definitions.test.mcp.yml +0 -387
  905. package/tests/mcp/yaml/search-isml-elements.docs-only.test.mcp.yml +0 -312
  906. package/tests/mcp/yaml/search-job-logs-by-name.full-mode.test.mcp.yml +0 -169
  907. package/tests/mcp/yaml/search-job-logs.full-mode.test.mcp.yml +0 -174
  908. package/tests/mcp/yaml/search-logs.full-mode.test.mcp.yml +0 -207
  909. package/tests/mcp/yaml/search-sfcc-classes.docs-only.test.mcp.yml +0 -1157
  910. package/tests/mcp/yaml/search-sfcc-classes.full-mode.test.mcp.yml +0 -1157
  911. package/tests/mcp/yaml/search-sfcc-methods.docs-only.test.mcp.yml +0 -723
  912. package/tests/mcp/yaml/search-sfcc-methods.full-mode.test.mcp.yml +0 -723
  913. package/tests/mcp/yaml/search-sfra-documentation.docs-only.test.mcp.yml +0 -427
  914. package/tests/mcp/yaml/search-sfra-documentation.full-mode.test.mcp.yml +0 -427
  915. package/tests/mcp/yaml/search-site-preferences.docs-only.test.mcp.yml +0 -295
  916. package/tests/mcp/yaml/search-site-preferences.full-mode.test.mcp.yml +0 -574
  917. package/tests/mcp/yaml/search-system-object-attribute-definitions.docs-only.test.mcp.yml +0 -168
  918. package/tests/mcp/yaml/search-system-object-attribute-definitions.full-mode.test.mcp.yml +0 -500
  919. package/tests/mcp/yaml/search-system-object-attribute-groups.docs-only.test.mcp.yml +0 -278
  920. package/tests/mcp/yaml/search-system-object-attribute-groups.full-mode.test.mcp.yml +0 -612
  921. package/tests/mcp/yaml/summarize-logs.full-mode.test.mcp.yml +0 -173
  922. package/tests/mcp/yaml/tools.docs-only.test.mcp.yml +0 -535
  923. package/tests/mcp/yaml/tools.full-mode.test.mcp.yml +0 -378
  924. package/tests/oauth-token.test.ts +0 -725
  925. package/tests/ocapi-auth-client.test.ts +0 -276
  926. package/tests/ocapi-client.test.ts +0 -242
  927. package/tests/path-service.test.ts +0 -96
  928. package/tests/query-builder.test.ts +0 -281
  929. package/tests/referenced-types-extractor.test.ts +0 -814
  930. package/tests/script-debugger-client.test.ts +0 -430
  931. package/tests/servers/sfcc-mock-server/README.md +0 -208
  932. package/tests/servers/sfcc-mock-server/mock-data/ocapi/code-versions.json +0 -247
  933. package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-customapi.json +0 -128
  934. package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-globalsettings.json +0 -92
  935. package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-versionhistory.json +0 -256
  936. package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-ccv.json +0 -275
  937. package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-fastforward.json +0 -123
  938. package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-sfra.json +0 -224
  939. package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-storefront.json +0 -447
  940. package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-system.json +0 -171
  941. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-campaign.json +0 -13
  942. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-category.json +0 -50
  943. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-order.json +0 -32
  944. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-product.json +0 -224
  945. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-sitepreferences.json +0 -62
  946. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-customeraddress.json +0 -109
  947. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-product-expanded.json +0 -183
  948. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-product.json +0 -139
  949. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-category.json +0 -26
  950. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customer.json +0 -26
  951. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customeraddress.json +0 -26
  952. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-order.json +0 -26
  953. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-product.json +0 -26
  954. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definitions-old.json +0 -354
  955. package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definitions.json +0 -172
  956. package/tests/servers/sfcc-mock-server/package-lock.json +0 -879
  957. package/tests/servers/sfcc-mock-server/package.json +0 -39
  958. package/tests/servers/sfcc-mock-server/scripts/setup-logs.js +0 -224
  959. package/tests/servers/sfcc-mock-server/server.js +0 -280
  960. package/tests/servers/sfcc-mock-server/src/app.js +0 -182
  961. package/tests/servers/sfcc-mock-server/src/config/server-config.js +0 -124
  962. package/tests/servers/sfcc-mock-server/src/middleware/auth.js +0 -101
  963. package/tests/servers/sfcc-mock-server/src/middleware/cors.js +0 -39
  964. package/tests/servers/sfcc-mock-server/src/middleware/logging.js +0 -124
  965. package/tests/servers/sfcc-mock-server/src/routes/cartridge-webdav.js +0 -258
  966. package/tests/servers/sfcc-mock-server/src/routes/ocapi/code-versions-handler.js +0 -184
  967. package/tests/servers/sfcc-mock-server/src/routes/ocapi/debugger-handler.js +0 -396
  968. package/tests/servers/sfcc-mock-server/src/routes/ocapi/oauth-handler.js +0 -36
  969. package/tests/servers/sfcc-mock-server/src/routes/ocapi/ocapi-error-utils.js +0 -221
  970. package/tests/servers/sfcc-mock-server/src/routes/ocapi/ocapi-utils.js +0 -440
  971. package/tests/servers/sfcc-mock-server/src/routes/ocapi/site-preferences-handler.js +0 -332
  972. package/tests/servers/sfcc-mock-server/src/routes/ocapi/system-objects-handler.js +0 -572
  973. package/tests/servers/sfcc-mock-server/src/routes/ocapi.js +0 -58
  974. package/tests/servers/sfcc-mock-server/src/routes/storefront.js +0 -86
  975. package/tests/servers/sfcc-mock-server/src/routes/webdav.js +0 -240
  976. package/tests/servers/sfcc-mock-server/src/utils/mock-data-loader.js +0 -84
  977. package/tests/servers/sfcc-mock-server/src/utils/webdav-xml.js +0 -121
  978. package/tests/servers/sfcc-mock-server-manager.ts +0 -280
  979. package/tests/sfcc-mock-server.test.ts +0 -423
  980. package/tests/site-preferences-client.test.ts +0 -358
  981. package/tests/system-objects-client.test.ts +0 -310
  982. package/tests/utils.test.ts +0 -477
  983. package/tests/validation-helpers.test.ts +0 -325
  984. package/tests/validator.test.ts +0 -416
  985. package/tests/workspace-roots.test.ts +0 -227
  986. package/tsconfig.json +0 -20
  987. package/tsconfig.test.json +0 -20
@@ -1,394 +0,0 @@
1
- ---
2
- name: sfcc-security
3
- description: Secure coding best practices for Salesforce B2C Commerce Cloud including CSRF protection, authentication, authorization, cryptography, and secrets management. Use when asked about SFCC security, input validation, or secure coding patterns.
4
- ---
5
-
6
- # Salesforce B2C Commerce Cloud: Secure Coding Best Practices
7
-
8
- This document provides a concise guide to security best practices for Salesforce B2C Commerce Cloud development, focusing on SFRA Controllers, OCAPI/SCAPI Hooks, and Custom SCAPI Endpoints.
9
-
10
- -----
11
-
12
- ## Core Security Principles
13
-
14
- - **Shared Responsibility**: Salesforce secures the cloud infrastructure. You, the developer, are responsible for securing the custom code you write *in* the cloud.
15
- - **Defense-in-Depth**: Security is layered. Do not rely on a single control (like a WAF). Your code must be independently secure.
16
- - **OWASP Top 10**: All development should align with OWASP principles to mitigate common web application vulnerabilities.
17
- - **Server-Side Validation**: Always validate and sanitize all user input on the server. Client-side validation is for user experience only and provides no security. Use an allowlist approach.
18
- - **Secrets Management**: Never hardcode secrets (API keys, credentials). Store them in Custom Site Preferences.
19
- - **Secure Cryptography**: Use the `dw.crypto` package for all cryptographic operations. Avoid deprecated `Weak*` classes like `WeakCipher`.
20
- - **HTTP Security Headers**: Configure security headers like `Content-Security-Policy`, `X-Frame-Options`, and `Strict-Transport-Security` in the `httpHeaders.json` file.
21
-
22
- -----
23
-
24
- ## 1\. Securing SFRA Controllers
25
-
26
- Controllers are the entry point for storefront logic. Security here is paramount.
27
-
28
- ### Authentication & Authorization
29
-
30
- Always verify **who** the user is (authentication) and **what** they are allowed to do (authorization). There are
31
- off course anonymous users, but authenticated users must be verified before accessing protected resources such as
32
- the profile, basket, or order history.
33
-
34
- - **Authentication**: Use the `userLoggedIn` middleware to ensure a shopper is logged in.
35
- - **Authorization**: After authenticating, verify the user owns the data they are trying to access or modify (e.g., check if `basket.customerNo` matches `req.currentCustomer.profile.customerNo`).
36
-
37
- ```javascript
38
-
39
- var server = require('server');
40
- var userLoggedIn = require('\*/cartridge/scripts/middleware/userLoggedIn');
41
- var CustomerMgr = require('dw/customer/CustomerMgr');
42
-
43
- // The 'userLoggedIn.validateLoggedIn' middleware handles authentication.
44
- server.post('UpdateProfile', userLoggedIn.validateLoggedIn, function (req, res, next) {
45
- // Authorization MUST be performed inside the controller logic.
46
- var profileForm = server.forms.getForm('profile');
47
- var customer = CustomerMgr.getCustomerByCustomerNumber(
48
- req.currentCustomer.profile.customerNo
49
- );
50
-
51
- // Example Authorization Check: Does the logged-in user own this data?
52
- if (customer.profile.email!== profileForm.email.value) {
53
- res.setStatusCode(403);
54
- res.json({ error: 'Forbidden' });
55
- return next();
56
- }
57
-
58
- //... proceed with business logic...
59
- res.json({ success: true });
60
- next();
61
- });
62
-
63
- module.exports = server.exports();
64
-
65
- ```
66
-
67
- ### Cross-Site Request Forgery (CSRF) Protection
68
-
69
- Use the `csrfProtection` middleware for any state-changing POST request. [12, 13]
70
-
71
- 1. **Generate Token**: Use `csrfProtection.generateToken` when rendering the form page.
72
- 2. **Validate Token**: Use `csrfProtection.validateRequest` when processing the form submission.
73
-
74
- ```isml
75
- <form action="${URLUtils.url('Account-HandleProfileUpdate')}" method="POST">
76
- ...
77
- <input type="hidden" name="${pdict.csrf.tokenName}" value="${pdict.csrf.token}"/>
78
- <button type="submit">Save</button>
79
- </form>
80
- ```
81
-
82
- ```javascript
83
- // In your controller
84
- var csrfProtection = require('*/cartridge/scripts/middleware/csrf');
85
-
86
- // 1. Generate token for the form page
87
- server.get('EditProfile', csrfProtection.generateToken, function(req, res, next) {
88
- //... render page...
89
- });
90
-
91
- // 2. Validate token on form submission
92
- server.post('HandleProfileUpdate', csrfProtection.validateRequest, function(req, res, next) {
93
- // If execution reaches here, the token was valid.
94
- //... process form...
95
- });
96
- ```
97
-
98
- #### CRITICAL: CSRF Middleware Automation
99
-
100
- **❌ COMMON MISTAKE**: Manually adding CSRF tokens to viewData
101
-
102
- ```javascript
103
- // ❌ WRONG - Don't do this!
104
- server.get('ShowForm', csrfProtection.generateToken, function(req, res, next) {
105
- res.render('myForm', {
106
- csrf: {
107
- tokenName: req.csrf.tokenName, // ❌ Redundant
108
- token: req.csrf.token // ❌ Redundant
109
- }
110
- });
111
- });
112
- ```
113
-
114
- **✅ CORRECT APPROACH**: Let middleware handle it automatically
115
-
116
- ```javascript
117
- // ✅ CORRECT - Middleware automatically adds CSRF to pdict
118
- server.get('ShowForm', csrfProtection.generateToken, function(req, res, next) {
119
- res.render('myForm', {
120
- // No need to manually add CSRF - middleware does this
121
- pageTitle: 'My Form',
122
- otherData: 'value'
123
- });
124
- // pdict.csrf.tokenName and pdict.csrf.token are automatically available
125
- });
126
- ```
127
-
128
- ### Remote Include Security (server.middleware.include)
129
-
130
- Remote includes (`<isinclude url="...">`) invoke an entirely NEW request created by the Web Adapter – they DO NOT inherit the authentication context of the parent page. Treat every remote include endpoint as PUBLIC unless you explicitly secure it.
131
-
132
- | Risk Vector | Description | Mitigation |
133
- |-------------|-------------|------------|
134
- | Authentication Bypass | Endpoint renders user‑specific data but no login check runs on include request | Add `userLoggedIn.validateLoggedIn` AFTER `server.middleware.include` |
135
- | Sensitive Data in URL | All params are query string → logged, bookmarkable, cache key | Pass only minimal identifiers; never PII, secrets, tokens |
136
- | Cache Poisoning | Unique per-user params (e.g., session IDs) fragment cache & may expose personalized fragments | Keep URL stable; use surrogate keys / vary headers where needed |
137
- | Excessive Fragment Count | Many includes amplify attack surface & performance risk | Keep < 20 per page; consolidate where feasible |
138
- | Nested Includes Depth Abuse | Recursive fragment chains complicate security review & tracing | Avoid nesting beyond depth 2 |
139
-
140
- #### Mandatory Middleware Order
141
- ```javascript
142
- server.get('AccountWidget',
143
- server.middleware.include, // 1. Gatekeeper – blocks direct access without include flag
144
- userLoggedIn.validateLoggedIn, // 2. Re-establish authenticated context if user data needed
145
- cache.applyShortPromotionSensitiveCache, // 3. Explicit cache policy (or disable)
146
- function (req, res, next) {
147
- // SAFE: now in controlled context
148
- res.render('components/account/widget');
149
- next();
150
- }
151
- );
152
- ```
153
-
154
- NEVER put `userLoggedIn.validateLoggedIn` before `server.middleware.include` – bots probing the route directly would still trigger authentication logic (unnecessary overhead) and you'd miss the explicit architectural contract.
155
-
156
- #### Identifying Remote Include Requests
157
- `req.includeRequest === true` inside the controller. Log defensively:
158
- ```javascript
159
- if (!req.includeRequest) {
160
- // Unexpected direct access attempt
161
- Logger.warn('Blocked direct access to remote include endpoint: {0}', request.httpPath);
162
- res.setStatusCode(404);
163
- return next();
164
- }
165
- ```
166
-
167
- #### What NOT to Expose via Remote Include
168
- - Full order history snippets
169
- - Payment method lists / masked credit cards
170
- - Personally identifying profile composites
171
- - Any fragment whose output differs materially per authenticated user unless properly protected
172
-
173
- #### Logging & Forensics
174
- Use extended request ID format (`baseId-depth-index`) to correlate parent + fragment in logs. Example: `Xa12Bc-0-00` (page), `Xa12Bc-1-02` (third fragment). This enables rapid blast-radius analysis during incident response.
175
-
176
- #### Security Review Checklist
177
- ```text
178
- [ ] server.middleware.include first in chain
179
- [ ] Auth middleware present if user / sensitive data
180
- [ ] No secrets / PII in query params
181
- [ ] Cache TTL appropriate (0 for volatile personal data)
182
- [ ] Fragment count on target pages audited (<20)
183
- [ ] No deep nesting (depth <= 2)
184
- [ ] Logging on unexpected direct access attempts
185
- ```
186
-
187
- If any checklist item fails, remediate before deployment.
188
-
189
- #### How CSRF Middleware Works
190
-
191
- **`csrfProtection.generateToken` automatically:**
192
- - Generates a secure token
193
- - Adds `csrf.tokenName` and `csrf.token` to the response's viewData
194
- - Makes them available in templates as `${pdict.csrf.tokenName}` and `${pdict.csrf.token}`
195
-
196
- **Templates access tokens directly:**
197
- ```isml
198
- <!-- ✅ Tokens available automatically -->
199
- <input type="hidden" name="${pdict.csrf.tokenName}" value="${pdict.csrf.token}"/>
200
- ```
201
-
202
- **`csrfProtection.validateRequest` automatically:**
203
- - Validates the submitted token
204
- - Handles failures (logout/redirect)
205
- - Allows controller to proceed only if valid
206
-
207
- **Key Principle**: Never manually add CSRF data to viewData - the middleware handles this completely. Manually adding CSRF tokens is redundant and can lead to inconsistencies or security issues.
208
-
209
- ### Server-Side Validation & Output Encoding
210
-
211
- - **Validation**: Define validation rules (e.g., `mandatory`, `regexp`, `max-length`) in your form definition XML. SFRA automatically enforces these on the server when the form is processed. [14]
212
- - **Output Encoding**: Always use `encoding="on"` in `<isprint>` tags to prevent XSS. This is the default and should not be turned off without a specific, secure reason. [9]
213
-
214
- <!-- end list -->
215
-
216
- ```xml
217
- <field formid="email"
218
- type="string"
219
- mandatory="true"
220
- max-length="50"
221
- regexp="^[\w.%+-]+@[\w.-]+\.[\w]{2,6}$"
222
- parse-error="error.message.parse.email" />
223
- ```
224
-
225
- ```isml
226
- <div>Your email: <isprint value="${pdict.profileForm.email.value}" encoding="on" /></div>
227
- ```
228
-
229
- -----
230
-
231
- ## 2\. Securing OCAPI/SCAPI Hooks
232
-
233
- Hooks are powerful but dangerous. They run in a privileged context *after* initial gateway authentication but *before* business-level authorization. [15, 16]
234
-
235
- **Primary Rule**: Never trust the request. Always re-validate authorization inside the hook script. Check that the authenticated user owns the object being modified. [16]
236
-
237
- ### Authorization Example (`beforePATCH` hook)
238
-
239
- ```javascript
240
- 'use strict';
241
-
242
- var Status = require('dw/system/Status');
243
- var Logger = require('dw/system/Logger');
244
-
245
- exports.beforePATCH = function (basket, productItem, productItemDocument) {
246
- // The gateway authenticated the client, but we MUST authorize the action.
247
- if (customer.authenticated) {
248
- // CRITICAL AUTHORIZATION CHECK:
249
- if (basket.customerNo!== customer.profile.customerNo) {
250
- Logger.getLogger('Security').warn('Auth failure: Customer {0} tried to modify basket {1}', customer.profile.customerNo, basket.basketNo);
251
- // Return an error to block the operation.
252
- return new Status(Status.ERROR, 'AUTH_ERROR', 'Request could not be processed.');
253
- }
254
- }
255
- //... additional validation on productItemDocument...
256
- return new Status(Status.OK); // Allow operation
257
- };
258
- ```
259
-
260
- ### Hook Best Practices
261
-
262
- - **Performance**: Keep hook logic simple and fast. Avoid making new database calls (e.g., `ProductMgr.getProduct()`). [17, 18, 19]
263
- - **Error Handling**: Wrap logic in `try-catch` blocks. Return generic `dw.system.Status` errors to the client. Log detailed, non-sensitive error information for debugging. [16, 20]
264
-
265
- -----
266
-
267
- ## 3\. Securing Custom SCAPI Endpoints
268
-
269
- Custom SCAPI Endpoints use a "contract-first" security model. The OpenAPI Specification (OAS) 3.0 YAML file is an active, enforceable security policy. [21, 22]
270
-
271
- ### Contract-First Security
272
-
273
- The platform validates requests against the OAS contract at the edge, *before* your script runs. Any request with undefined parameters, headers, or body structures is automatically rejected. [23, 24]
274
-
275
- ### Security Schemes & Scopes
276
-
277
- Define security in the OAS contract using `securitySchemes` and apply them to endpoints. Each endpoint must have exactly one custom scope (prefixed with `c_`). [21, 25]
278
-
279
- - **`ShopperToken`**: For customer-facing APIs. Uses SLAS JWTs. [25]
280
- - **`AmOAuth2`**: For admin/back-office APIs. Uses Account Manager tokens. [25]
281
-
282
- <!-- end list -->
283
-
284
- ```yaml
285
- openapi: 3.0.0
286
- info:
287
- title: Custom Loyalty API
288
- version: "1.0.0"
289
- servers:
290
- - url: https://{shortCode}.api.commercecloud.salesforce.com
291
- paths:
292
- /c_loyalty/v1/organizations/{organizationId}/shoppers/me/points:
293
- get:
294
- summary: Get Loyalty Points for the current Shopper
295
- operationId: getLoyaltyPointsForShopper
296
- # This endpoint requires a ShopperToken with the 'c_loyalty.read' scope.
297
- security:
298
- - ShopperToken: [c_loyalty.read]
299
- responses:
300
- '200':
301
- description: Success.
302
- /c_loyalty/v1/organizations/{organizationId}/customers/{customerId}/points_adjustment:
303
- post:
304
- summary: Adjust Loyalty Points for a specific customer (Admin Only)
305
- operationId: adjustCustomerLoyaltyPoints
306
- # This endpoint requires an Admin token with the 'c_loyalty.write' scope.
307
- security:
308
- - AmOAuth2: [c_loyalty.write]
309
- responses:
310
- '204':
311
- description: Success.
312
-
313
- # Reusable security scheme definitions
314
- components:
315
- securitySchemes:
316
- # Definition for Shopper APIs
317
- ShopperToken:
318
- type: http
319
- scheme: bearer
320
- bearerFormat: JWT
321
- description: "Requires a Shopper Access Token (SLAS) with c_ scopes."
322
-
323
- # Definition for Admin APIs
324
- AmOAuth2:
325
- type: oauth2
326
- description: "Requires an Account Manager token with c_ scopes."
327
- flows:
328
- clientCredentials:
329
- tokenUrl: [https://account.demandware.com/dwsso/oauth2/access_token](https://account.demandware.com/dwsso/oauth2/access_token)
330
- scopes:
331
- c_loyalty.read: "Read shopper loyalty data."
332
- c_loyalty.write: "Modify shopper loyalty data."
333
- ```
334
-
335
- ## 4\. Advanced Secrets Management
336
-
337
- Hardcoding secrets such as API keys, credentials, or encryption keys in source code is a severe vulnerability. The platform provides specific, secure locations for storing different types of secrets:
338
-
339
- - **Service Credentials (`dw.svc.ServiceCredential`)**: The most secure and appropriate method for storing secrets used to authenticate to external services (e.g., payment gateways, tax providers, shipping services). Credentials are created and managed in Business Manager (`Administration > Operations > Services`). In code, they are accessed as a read-only `dw.svc.ServiceCredential` object, and their values are never exposed in logs or to the client. This should be the default choice for any third-party integration credential.
340
-
341
- - **Encrypted Custom Object Attributes**: For storing other types of sensitive data that are not service credentials, create a custom attribute on a system or custom object and set its type to `PASSWORD`. The platform automatically encrypts the value of this attribute at rest.
342
-
343
- - **Custom Site Preferences**: Suitable for storing non-secret configuration values, such as feature toggles, endpoint URLs, or less sensitive identifiers. While a vast improvement over hardcoding, they are not encrypted in the same way as `ServiceCredential` or `PASSWORD` attributes and should not be the first choice for highly sensitive secrets like private keys or primary authentication credentials.
344
-
345
- ## 5. Modern Cryptography with dw.crypto
346
-
347
- All cryptographic operations must be performed using the APIs provided in the dw.crypto package. This package provides access to industry-standard, Salesforce-maintained cryptographic libraries.
348
-
349
- A critical security mandate is to avoid all deprecated Weak* classes, such as WeakCipher, WeakMac, and WeakMessageDigest. These classes use outdated and insecure algorithms that are vulnerable to attack. Some older third-party cartridges may still contain references to them; these cartridges must be updated or replaced.
350
-
351
- All new development must use the modern classes like dw.crypto.Cipher. The following is a secure example of symmetric encryption using AES with a GCM block mode, which provides both confidentiality and authenticity.
352
-
353
- ```javascript
354
- var Cipher = require('dw/crypto/Cipher');
355
- var Encoding = require('dw/crypto/Encoding');
356
- var SecureRandom = require('dw/crypto/SecureRandom');
357
-
358
- // Key must be a securely generated, Base64-encoded 256-bit (32-byte) key.
359
- // It should be stored securely using Service Credentials or an encrypted attribute.
360
- var base64Key = 'YOUR_SECURE_BASE64_ENCODED_KEY_HERE';
361
-
362
- // Plaintext to be encrypted
363
- var plainText = 'This is sensitive data.';
364
-
365
- // 1. Generate a cryptographically secure random Initialization Vector (IV).
366
- // For AES/GCM, a 12-byte (96-bit) IV is recommended.
367
- var ivBytes = new SecureRandom().nextBytes(12);
368
- var ivBase64 = Encoding.toBase64(ivBytes);
369
-
370
- // 2. Encrypt the data using a strong, authenticated encryption algorithm.
371
- var aesGcmCipher = new Cipher();
372
- var encryptedBase64 = aesGcmCipher.encrypt(plainText, base64Key, 'AES/GCM/NoPadding', ivBase64, 0);
373
-
374
- // To decrypt, you need the encrypted data, the key, and the same IV.
375
- // var decryptedText = aesGcmCipher.decrypt(encryptedBase64, base64Key, 'AES/GCM/NoPadding', ivBase64, 0);
376
- ```
377
-
378
- ### Cryptographic Best Practices
379
-
380
- - **Use Strong Algorithms**: Always use AES with GCM mode for symmetric encryption, RSA with OAEP padding for asymmetric encryption, and SHA-256 or higher for hashing.
381
-
382
- - **Generate Secure Random Values**: Use `dw.crypto.SecureRandom` for generating cryptographically secure random numbers, IVs, and salts.
383
-
384
- - **Proper Key Management**: Store encryption keys securely using Service Credentials or encrypted custom object attributes. Never hardcode keys in source code.
385
-
386
- - **Use Authenticated Encryption**: Prefer AES/GCM mode which provides both confidentiality and authenticity, preventing tampering with encrypted data.
387
-
388
- - **Unique IVs**: Always generate a unique, random IV for each encryption operation. Never reuse IVs with the same key.
389
-
390
- - **Avoid Weak Classes**: Never use WeakCipher, WeakMac, WeakMessageDigest, or any other deprecated cryptographic classes.
391
-
392
- ## Related Skills
393
-
394
- - **[sfcc-logging](../sfcc-logging/SKILL.md)** - Logging best practices including avoiding sensitive data in logs. Essential for security auditing and incident forensics.
@@ -1,270 +0,0 @@
1
- ---
2
- name: sfcc-sfra-client-side-js
3
- description: Guide for extending, structuring, validating, and optimizing client-side JavaScript in SFRA storefronts. Use when asked to build AJAX flows, form validation, DOM interactions, or client-side customizations.
4
- ---
5
-
6
- # SFRA Client-Side JavaScript
7
-
8
- Guide for building and extending client-side functionality in SFRA storefronts.
9
-
10
- ## Quick Checklist
11
-
12
- ```text
13
- [ ] Use `paths` alias for base extension, never edit app_storefront_base
14
- [ ] Register assets in main request context, not remote includes
15
- [ ] Compose client overrides—no `module.superModule` (server-only)
16
- [ ] Generate controller URLs server-side; pass via `data-*`
17
- [ ] Always include CSRF token on POST (form.serialize() or manual)
18
- [ ] Cache selectors & delegate events for dynamic regions
19
- [ ] Batch DOM updates; debounce high-frequency handlers
20
- [ ] Escape dynamic data inserted into DOM (XSS prevention)
21
- [ ] Provide keyboard & screen reader accessible interactions
22
- [ ] Namespace events for clean teardown
23
- ```
24
-
25
- ## Architecture Overview
26
-
27
- SFRA separates:
28
- - **Server runtime resolution** (cartridge path in BM) – affects controllers, scripts, ISML
29
- - **Client build resolution** (compile-time `paths` aliases) – affects `client/default/`
30
-
31
- Client behavior is determined **at build time**, not by the live cartridge path.
32
-
33
- ## Directory Structure
34
-
35
- ```
36
- app_custom_mybrand/
37
- cartridge/
38
- client/
39
- default/
40
- js/ # Feature modules
41
- scss/ # Sass source
42
- ```
43
-
44
- Guidelines:
45
- - Never modify `app_storefront_base` directly
46
- - Mirror base file locations when extending
47
- - Group by domain (`product/`, `checkout/`)
48
-
49
- ## Build Process
50
-
51
- ```bash
52
- npm run compile:js
53
- npm run compile:scss
54
- ```
55
-
56
- **Key distinction:** Changing the BM cartridge path does not affect already compiled bundles. Recompile after structural changes.
57
-
58
- ## Asset Loading
59
-
60
- Register assets in ISML:
61
- ```javascript
62
- assets.addJs('/js/product/detail.js');
63
- assets.addCss('/css/product.css');
64
- ```
65
-
66
- **Caveat:** Assets added inside remote includes live only in that request and won't appear in the parent page.
67
-
68
- ## Client-Side Extension
69
-
70
- Extension uses **build-time composition**, not runtime inheritance.
71
-
72
- ### 1. Configure `paths` in `package.json`
73
-
74
- ```json
75
- {
76
- "paths": {
77
- "base": "../storefront-reference-architecture/cartridges/app_storefront_base/"
78
- }
79
- }
80
- ```
81
-
82
- ### 2. Require, Decorate, Export
83
-
84
- ```javascript
85
- 'use strict';
86
- var base = require('base/product/detail');
87
-
88
- // Override existing
89
- base.updateAddToCartButton = function (update) {
90
- $('button.add-to-cart').attr('disabled', !update.readyToOrder);
91
- // Custom enhancement
92
- };
93
-
94
- // Add new
95
- base.initNotifyMe = function () {
96
- $('body').on('click', '.notify-me', handleNotifyMe);
97
- };
98
-
99
- module.exports = base;
100
- ```
101
-
102
- **Note:** `module.superModule` does NOT exist client-side.
103
-
104
- ## jQuery Best Practices
105
-
106
- ### Selector Caching
107
- ```javascript
108
- var $price = $('.product-price');
109
- $price.text('$99.99');
110
- $price.addClass('updated');
111
- ```
112
-
113
- ### Event Delegation
114
- ```javascript
115
- // Robust (survives DOM replacement)
116
- $('.product-grid').on('click', '.add-to-cart', handler);
117
- ```
118
-
119
- ### Batch DOM Writes
120
- ```javascript
121
- var html = products.map(p => `<li>${escapeHtml(p.name)}</li>`).join('');
122
- $('#product-list').html(html);
123
- ```
124
-
125
- ## AJAX Pattern
126
-
127
- ```javascript
128
- $('#newsletter-form').on('submit', function (e) {
129
- e.preventDefault();
130
- var $form = $(this);
131
-
132
- $form.spinner().start();
133
-
134
- $.ajax({
135
- url: $form.data('action-url'),
136
- type: 'post',
137
- data: $form.serialize(), // Includes CSRF
138
- success: function (data) {
139
- $form.spinner().stop();
140
- showMessage(data.success ? 'success' : 'danger', data.message);
141
- },
142
- error: function (err) {
143
- $form.spinner().stop();
144
- var msg = (err.responseJSON && err.responseJSON.message) || 'Error occurred';
145
- showMessage('danger', msg);
146
- }
147
- });
148
- });
149
- ```
150
-
151
- ## Performance
152
-
153
- | Technique | Benefit |
154
- |-----------|---------|
155
- | Debounce typing | Reduces AJAX bursts (250-400ms) |
156
- | Cache selectors | Lower DOM traversal cost |
157
- | Build HTML in memory | Fewer reflows |
158
- | Event delegation | Handles dynamic content |
159
-
160
- ```javascript
161
- function debounce(fn, wait) {
162
- var t;
163
- return function () {
164
- clearTimeout(t);
165
- var args = arguments, ctx = this;
166
- t = setTimeout(function () { fn.apply(ctx, args); }, wait);
167
- };
168
- }
169
-
170
- $('#search').on('input', debounce(fetchSuggestions, 300));
171
- ```
172
-
173
- ## Accessibility
174
-
175
- - Use semantic elements (`<button>`, `<nav>`)
176
- - Add `aria-live="polite"` to AJAX-updated regions
177
- - Manage focus on modal open/close
178
- - Maintain keyboard operability
179
- - Reflect state with ARIA (`aria-expanded`, `aria-pressed`)
180
-
181
- ```javascript
182
- $('.filter-toggle').on('click', function () {
183
- var $panel = $('#filter-panel');
184
- var expanded = $(this).attr('aria-expanded') === 'true';
185
- $(this).attr('aria-expanded', !expanded);
186
- $panel.toggleClass('is-open', !expanded);
187
- if (!expanded) {
188
- $panel.find('input,button,a').first().focus();
189
- }
190
- });
191
- ```
192
-
193
- ## Security: XSS Prevention
194
-
195
- Always escape dynamic data:
196
-
197
- ```javascript
198
- function escapeHtml(str) {
199
- return String(str)
200
- .replace(/&/g, '&amp;')
201
- .replace(/</g, '&lt;')
202
- .replace(/>/g, '&gt;')
203
- .replace(/"/g, '&quot;');
204
- }
205
-
206
- // Or use jQuery
207
- $('<div>').text(userInput); // Auto-escapes
208
- ```
209
-
210
- Never trust: query params, form inputs, server-returned user data.
211
-
212
- ## Module Design Pattern
213
-
214
- ```javascript
215
- 'use strict';
216
- var selectors = { container: '.favorites-container' };
217
-
218
- function bindEvents($root) {
219
- $root.on('click.favoritesAdd', '.favorite-add', onAdd);
220
- }
221
-
222
- function unbindEvents($root) {
223
- $root.off('.favoritesAdd');
224
- }
225
-
226
- module.exports = {
227
- init: function () { bindEvents($(selectors.container)); },
228
- destroy: function () { unbindEvents($(selectors.container)); }
229
- };
230
- ```
231
-
232
- Guidelines:
233
- - Namespace every delegated event (`.featureAction`)
234
- - Export `init()` + optional `destroy()`
235
- - Keep pure logic in separate files for testing
236
-
237
- ## Form Validation Flow
238
-
239
- ```text
240
- User Input → HTML5 check → (fail) prevent + style
241
- → (pass) AJAX submit → Server re-validate → Success OR Error JSON
242
- → Error: map messages → show per-field + global feedback
243
- ```
244
-
245
- Always validate both client (UX) and server (authority).
246
-
247
- ## Internationalization
248
-
249
- - Never concatenate partial Resource strings
250
- - Use `Resource.msgf` with placeholders
251
- - Avoid hard-coded punctuation in code
252
-
253
- ```javascript
254
- var template = $('#banner').data('welcome-template'); // "Welcome, {name}!"
255
- $('#banner .text').text(template.replace('{name}', firstName));
256
- ```
257
-
258
- ## Testing Strategy
259
-
260
- 1. **Pure utilities**: Jest unit tests (no DOM)
261
- 2. **DOM behavior**: jsdom + jQuery
262
- 3. **Contract tests**: Ensure extended module exports required API
263
- 4. **A11y smoke**: Test live regions, keyboard access
264
-
265
- ## Detailed References
266
-
267
- - [Extension Patterns](references/EXTENSION-PATTERNS.md) - Build-time composition, require syntax, module lifecycle
268
- - [AJAX, CSRF & Validation](references/AJAX-CSRF-VALIDATION.md) - Full AJAX patterns, form framework, error handling
269
- - [Plugin Patterns](references/PLUGIN-PATTERNS.md) - Anti-patterns, toast service, code review checklist
270
- - [Base Module Index](references/BASE-MODULE-INDEX.md) - All 56 base modules available for extension