sfcc-dev-mcp 1.0.15 → 1.0.19

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 (865) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +3 -1
  2. package/.github/ISSUE_TEMPLATE/documentation.yml +2 -2
  3. package/.github/ISSUE_TEMPLATE/question.yml +1 -1
  4. package/.github/PULL_REQUEST_TEMPLATE/documentation.md +1 -1
  5. package/.github/PULL_REQUEST_TEMPLATE/new_tool.md +1 -1
  6. package/.github/agents/official-docs-researcher.agent.md +56 -0
  7. package/.github/instructions/mcp-node-tests.instructions.md +12 -916
  8. package/.github/instructions/mcp-yml-tests.instructions.md +14 -742
  9. package/.github/pull_request_template.md +1 -1
  10. package/.github/skills/agent-authoring/SKILL.md +66 -0
  11. package/.github/skills/mcp-log-debugging/SKILL.md +69 -0
  12. package/.github/skills/mcp-programmatic-testing/SKILL.md +142 -0
  13. package/.github/skills/mcp-yaml-testing/SKILL.md +136 -0
  14. package/.github/skills/salesforce-developer-site-scraper/SKILL.md +102 -0
  15. package/.github/skills/salesforce-developer-site-scraper/scripts/scrape-to-markdown.js +205 -0
  16. package/.github/skills/salesforce-help-site-scraper/SKILL.md +84 -0
  17. package/.github/skills/salesforce-help-site-scraper/scripts/scrape-help-to-markdown.js +212 -0
  18. package/.github/skills/skill-authoring/SKILL.md +228 -0
  19. package/.github/skills/skill-authoring/references/PATTERNS.md +384 -0
  20. package/.github/workflows/ci.yml +3 -3
  21. package/.github/workflows/deploy-pages.yml +9 -19
  22. package/.github/workflows/publish.yml +5 -2
  23. package/.github/workflows/update-docs.yml +1 -1
  24. package/AGENTS.md +140 -286
  25. package/CONTRIBUTING.md +10 -22
  26. package/README.md +48 -16
  27. package/ai-instructions/{github-copilot/copilot-instructions.md → AGENTS.md} +99 -127
  28. package/ai-instructions/skills/sfcc-caching/SKILL.md +89 -0
  29. package/{dist/docs/best-practices/cartridge_creation.md → ai-instructions/skills/sfcc-cartridge-development/SKILL.md} +31 -7
  30. package/ai-instructions/skills/sfcc-forms-development/SKILL.md +261 -0
  31. package/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +143 -0
  32. package/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +127 -0
  33. package/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +95 -0
  34. package/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +39 -0
  35. package/ai-instructions/skills/sfcc-isml-development/SKILL.md +370 -0
  36. package/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +116 -0
  37. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +50 -0
  38. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +45 -0
  39. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +85 -0
  40. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +63 -0
  41. package/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +159 -0
  42. package/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +13 -0
  43. package/ai-instructions/skills/sfcc-job-development/SKILL.md +334 -0
  44. package/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +393 -0
  45. package/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +271 -0
  46. package/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +257 -0
  47. package/ai-instructions/skills/sfcc-localization/SKILL.md +92 -0
  48. package/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +63 -0
  49. package/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +29 -0
  50. package/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +33 -0
  51. package/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +41 -0
  52. package/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +35 -0
  53. package/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +740 -0
  54. package/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +25 -0
  55. package/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +67 -0
  56. package/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +23 -0
  57. package/ai-instructions/skills/sfcc-localization/references/TESTING.md +21 -0
  58. package/{docs/best-practices/localserviceregistry.md → ai-instructions/skills/sfcc-localserviceregistry/SKILL.md} +65 -31
  59. package/ai-instructions/skills/sfcc-logging/SKILL.md +352 -0
  60. package/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +282 -0
  61. package/{docs/best-practices/ocapi_hooks.md → ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md} +51 -16
  62. package/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +108 -0
  63. package/ai-instructions/skills/sfcc-page-designer/SKILL.md +353 -0
  64. package/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +436 -0
  65. package/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +322 -0
  66. package/{dist/docs/best-practices/performance.md → ai-instructions/skills/sfcc-performance/SKILL.md} +35 -3
  67. package/ai-instructions/skills/sfcc-platform-limits/SKILL.md +89 -0
  68. package/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +237 -0
  69. package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +214 -0
  70. package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +253 -0
  71. package/{docs/best-practices/scapi_hooks.md → ai-instructions/skills/sfcc-scapi-hooks/SKILL.md} +44 -17
  72. package/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +380 -0
  73. package/{docs/best-practices/security.md → ai-instructions/skills/sfcc-security/SKILL.md} +12 -3
  74. package/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +270 -0
  75. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +285 -0
  76. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +206 -0
  77. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +165 -0
  78. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +185 -0
  79. package/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +347 -0
  80. package/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +257 -0
  81. package/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +193 -0
  82. package/{dist/docs/best-practices/sfra_controllers.md → ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md} +0 -670
  83. package/ai-instructions/skills/sfcc-sfra-models/SKILL.md +322 -0
  84. package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +530 -0
  85. package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +234 -0
  86. package/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +417 -0
  87. package/{dist/docs/best-practices/sfra_scss.md → ai-instructions/skills/sfcc-sfra-scss/SKILL.md} +5 -0
  88. package/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +111 -0
  89. package/dist/ai-instructions/AGENTS.md +628 -0
  90. package/dist/ai-instructions/skills/sfcc-caching/SKILL.md +89 -0
  91. package/{docs/best-practices/cartridge_creation.md → dist/ai-instructions/skills/sfcc-cartridge-development/SKILL.md} +31 -7
  92. package/dist/ai-instructions/skills/sfcc-forms-development/SKILL.md +261 -0
  93. package/dist/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +143 -0
  94. package/dist/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +127 -0
  95. package/dist/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +95 -0
  96. package/dist/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +39 -0
  97. package/dist/ai-instructions/skills/sfcc-isml-development/SKILL.md +370 -0
  98. package/dist/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +116 -0
  99. package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +50 -0
  100. package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +45 -0
  101. package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +85 -0
  102. package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +63 -0
  103. package/dist/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +159 -0
  104. package/dist/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +13 -0
  105. package/dist/ai-instructions/skills/sfcc-job-development/SKILL.md +334 -0
  106. package/dist/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +393 -0
  107. package/dist/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +271 -0
  108. package/dist/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +257 -0
  109. package/dist/ai-instructions/skills/sfcc-localization/SKILL.md +92 -0
  110. package/dist/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +63 -0
  111. package/dist/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +29 -0
  112. package/dist/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +33 -0
  113. package/dist/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +41 -0
  114. package/dist/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +35 -0
  115. package/dist/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +740 -0
  116. package/dist/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +25 -0
  117. package/dist/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +67 -0
  118. package/dist/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +23 -0
  119. package/dist/ai-instructions/skills/sfcc-localization/references/TESTING.md +21 -0
  120. package/dist/{docs/best-practices/localserviceregistry.md → ai-instructions/skills/sfcc-localserviceregistry/SKILL.md} +65 -31
  121. package/dist/ai-instructions/skills/sfcc-logging/SKILL.md +352 -0
  122. package/dist/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +282 -0
  123. package/dist/{docs/best-practices/ocapi_hooks.md → ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md} +51 -16
  124. package/dist/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +108 -0
  125. package/dist/ai-instructions/skills/sfcc-page-designer/SKILL.md +353 -0
  126. package/dist/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +436 -0
  127. package/dist/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +322 -0
  128. package/{docs/best-practices/performance.md → dist/ai-instructions/skills/sfcc-performance/SKILL.md} +35 -3
  129. package/dist/ai-instructions/skills/sfcc-platform-limits/SKILL.md +89 -0
  130. package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +237 -0
  131. package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +214 -0
  132. package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +253 -0
  133. package/dist/{docs/best-practices/scapi_hooks.md → ai-instructions/skills/sfcc-scapi-hooks/SKILL.md} +44 -17
  134. package/dist/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +380 -0
  135. package/dist/{docs/best-practices/security.md → ai-instructions/skills/sfcc-security/SKILL.md} +12 -3
  136. package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +270 -0
  137. package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +285 -0
  138. package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +206 -0
  139. package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +165 -0
  140. package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +185 -0
  141. package/dist/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +347 -0
  142. package/dist/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +257 -0
  143. package/dist/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +193 -0
  144. package/{docs/best-practices/sfra_controllers.md → dist/ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md} +0 -670
  145. package/dist/ai-instructions/skills/sfcc-sfra-models/SKILL.md +322 -0
  146. package/dist/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +530 -0
  147. package/dist/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +234 -0
  148. package/dist/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +417 -0
  149. package/{docs/best-practices/sfra_scss.md → dist/ai-instructions/skills/sfcc-sfra-scss/SKILL.md} +5 -0
  150. package/dist/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +111 -0
  151. package/dist/clients/agent-instructions-client.d.ts +66 -0
  152. package/dist/clients/agent-instructions-client.d.ts.map +1 -0
  153. package/dist/clients/agent-instructions-client.js +277 -0
  154. package/dist/clients/agent-instructions-client.js.map +1 -0
  155. package/dist/clients/base/abstract-documentation-client.d.ts +146 -0
  156. package/dist/clients/base/abstract-documentation-client.d.ts.map +1 -0
  157. package/dist/clients/base/abstract-documentation-client.js +265 -0
  158. package/dist/clients/base/abstract-documentation-client.js.map +1 -0
  159. package/dist/clients/base/oauth-token.d.ts +18 -0
  160. package/dist/clients/base/oauth-token.d.ts.map +1 -1
  161. package/dist/clients/base/oauth-token.js +45 -2
  162. package/dist/clients/base/oauth-token.js.map +1 -1
  163. package/dist/clients/cartridge/cartridge-generation-client.d.ts +59 -0
  164. package/dist/clients/cartridge/cartridge-generation-client.d.ts.map +1 -0
  165. package/dist/clients/cartridge/cartridge-generation-client.js +224 -0
  166. package/dist/clients/cartridge/cartridge-generation-client.js.map +1 -0
  167. package/dist/clients/cartridge/cartridge-structure.d.ts +17 -0
  168. package/dist/clients/cartridge/cartridge-structure.d.ts.map +1 -0
  169. package/dist/clients/cartridge/cartridge-structure.js +33 -0
  170. package/dist/clients/cartridge/cartridge-structure.js.map +1 -0
  171. package/dist/clients/cartridge/cartridge-templates.d.ts +22 -0
  172. package/dist/clients/cartridge/cartridge-templates.d.ts.map +1 -0
  173. package/dist/clients/cartridge/cartridge-templates.js +225 -0
  174. package/dist/clients/cartridge/cartridge-templates.js.map +1 -0
  175. package/dist/clients/cartridge/index.d.ts +7 -0
  176. package/dist/clients/cartridge/index.d.ts.map +1 -0
  177. package/dist/clients/cartridge/index.js +7 -0
  178. package/dist/clients/cartridge/index.js.map +1 -0
  179. package/dist/clients/docs/documentation-scanner.d.ts +5 -2
  180. package/dist/clients/docs/documentation-scanner.d.ts.map +1 -1
  181. package/dist/clients/docs/documentation-scanner.js +38 -23
  182. package/dist/clients/docs/documentation-scanner.js.map +1 -1
  183. package/dist/clients/docs-client.d.ts +13 -4
  184. package/dist/clients/docs-client.d.ts.map +1 -1
  185. package/dist/clients/docs-client.js +44 -11
  186. package/dist/clients/docs-client.js.map +1 -1
  187. package/dist/clients/isml-client.d.ts +71 -0
  188. package/dist/clients/isml-client.d.ts.map +1 -0
  189. package/dist/clients/isml-client.js +252 -0
  190. package/dist/clients/isml-client.js.map +1 -0
  191. package/dist/clients/ocapi/code-versions-client.d.ts.map +1 -1
  192. package/dist/clients/ocapi/code-versions-client.js +6 -1
  193. package/dist/clients/ocapi/code-versions-client.js.map +1 -1
  194. package/dist/clients/ocapi-client.d.ts +9 -101
  195. package/dist/clients/ocapi-client.d.ts.map +1 -1
  196. package/dist/clients/ocapi-client.js +11 -93
  197. package/dist/clients/ocapi-client.js.map +1 -1
  198. package/dist/clients/script-debugger/index.d.ts +5 -0
  199. package/dist/clients/script-debugger/index.d.ts.map +1 -0
  200. package/dist/clients/script-debugger/index.js +5 -0
  201. package/dist/clients/script-debugger/index.js.map +1 -0
  202. package/dist/clients/script-debugger/script-debugger-client.d.ts +147 -0
  203. package/dist/clients/script-debugger/script-debugger-client.d.ts.map +1 -0
  204. package/dist/clients/script-debugger/script-debugger-client.js +591 -0
  205. package/dist/clients/script-debugger/script-debugger-client.js.map +1 -0
  206. package/dist/clients/sfra-client.d.ts +13 -62
  207. package/dist/clients/sfra-client.d.ts.map +1 -1
  208. package/dist/clients/sfra-client.js +105 -326
  209. package/dist/clients/sfra-client.js.map +1 -1
  210. package/dist/config/configuration-factory.d.ts +1 -1
  211. package/dist/config/configuration-factory.d.ts.map +1 -1
  212. package/dist/config/configuration-factory.js +5 -1
  213. package/dist/config/configuration-factory.js.map +1 -1
  214. package/dist/config/dw-json-loader.d.ts +7 -0
  215. package/dist/config/dw-json-loader.d.ts.map +1 -1
  216. package/dist/config/dw-json-loader.js +92 -15
  217. package/dist/config/dw-json-loader.js.map +1 -1
  218. package/dist/config/workspace-roots.d.ts +143 -0
  219. package/dist/config/workspace-roots.d.ts.map +1 -0
  220. package/dist/config/workspace-roots.js +448 -0
  221. package/dist/config/workspace-roots.js.map +1 -0
  222. package/dist/constants/index.d.ts +1 -0
  223. package/dist/constants/index.d.ts.map +1 -0
  224. package/dist/constants/index.js +3 -0
  225. package/dist/constants/index.js.map +1 -0
  226. package/dist/core/handlers/abstract-client-handler.d.ts +52 -0
  227. package/dist/core/handlers/abstract-client-handler.d.ts.map +1 -0
  228. package/dist/core/handlers/abstract-client-handler.js +51 -0
  229. package/dist/core/handlers/abstract-client-handler.js.map +1 -0
  230. package/dist/core/handlers/agent-instructions-handler.d.ts +17 -0
  231. package/dist/core/handlers/agent-instructions-handler.d.ts.map +1 -0
  232. package/dist/core/handlers/agent-instructions-handler.js +38 -0
  233. package/dist/core/handlers/agent-instructions-handler.js.map +1 -0
  234. package/dist/core/handlers/base-handler.d.ts +3 -68
  235. package/dist/core/handlers/base-handler.d.ts.map +1 -1
  236. package/dist/core/handlers/base-handler.js +11 -84
  237. package/dist/core/handlers/base-handler.js.map +1 -1
  238. package/dist/core/handlers/cartridge-handler.d.ts +10 -11
  239. package/dist/core/handlers/cartridge-handler.d.ts.map +1 -1
  240. package/dist/core/handlers/cartridge-handler.js +10 -28
  241. package/dist/core/handlers/cartridge-handler.js.map +1 -1
  242. package/dist/core/handlers/client-factory.d.ts +12 -2
  243. package/dist/core/handlers/client-factory.d.ts.map +1 -1
  244. package/dist/core/handlers/client-factory.js +28 -1
  245. package/dist/core/handlers/client-factory.js.map +1 -1
  246. package/dist/core/handlers/code-version-handler.d.ts +11 -11
  247. package/dist/core/handlers/code-version-handler.d.ts.map +1 -1
  248. package/dist/core/handlers/code-version-handler.js +13 -27
  249. package/dist/core/handlers/code-version-handler.js.map +1 -1
  250. package/dist/core/handlers/docs-handler.d.ts +6 -12
  251. package/dist/core/handlers/docs-handler.d.ts.map +1 -1
  252. package/dist/core/handlers/docs-handler.js +11 -36
  253. package/dist/core/handlers/docs-handler.js.map +1 -1
  254. package/dist/core/handlers/isml-handler.d.ts +11 -0
  255. package/dist/core/handlers/isml-handler.d.ts.map +1 -0
  256. package/dist/core/handlers/isml-handler.js +18 -0
  257. package/dist/core/handlers/isml-handler.js.map +1 -0
  258. package/dist/core/handlers/job-log-handler.d.ts +8 -7
  259. package/dist/core/handlers/job-log-handler.d.ts.map +1 -1
  260. package/dist/core/handlers/job-log-handler.js +14 -5
  261. package/dist/core/handlers/job-log-handler.js.map +1 -1
  262. package/dist/core/handlers/log-handler.d.ts +8 -7
  263. package/dist/core/handlers/log-handler.d.ts.map +1 -1
  264. package/dist/core/handlers/log-handler.js +14 -5
  265. package/dist/core/handlers/log-handler.js.map +1 -1
  266. package/dist/core/handlers/script-debugger-handler.d.ts +18 -0
  267. package/dist/core/handlers/script-debugger-handler.d.ts.map +1 -0
  268. package/dist/core/handlers/script-debugger-handler.js +31 -0
  269. package/dist/core/handlers/script-debugger-handler.js.map +1 -0
  270. package/dist/core/handlers/sfra-handler.d.ts +6 -12
  271. package/dist/core/handlers/sfra-handler.d.ts.map +1 -1
  272. package/dist/core/handlers/sfra-handler.js +11 -36
  273. package/dist/core/handlers/sfra-handler.js.map +1 -1
  274. package/dist/core/handlers/simple-client-handler.d.ts +41 -0
  275. package/dist/core/handlers/simple-client-handler.d.ts.map +1 -0
  276. package/dist/core/handlers/simple-client-handler.js +49 -0
  277. package/dist/core/handlers/simple-client-handler.js.map +1 -0
  278. package/dist/core/handlers/system-object-handler.d.ts +11 -11
  279. package/dist/core/handlers/system-object-handler.d.ts.map +1 -1
  280. package/dist/core/handlers/system-object-handler.js +13 -27
  281. package/dist/core/handlers/system-object-handler.js.map +1 -1
  282. package/dist/core/handlers/validation-helpers.d.ts +22 -24
  283. package/dist/core/handlers/validation-helpers.d.ts.map +1 -1
  284. package/dist/core/handlers/validation-helpers.js +89 -39
  285. package/dist/core/handlers/validation-helpers.js.map +1 -1
  286. package/dist/core/instruction-advisor.d.ts +28 -0
  287. package/dist/core/instruction-advisor.d.ts.map +1 -0
  288. package/dist/core/instruction-advisor.js +114 -0
  289. package/dist/core/instruction-advisor.js.map +1 -0
  290. package/dist/core/server.d.ts +25 -0
  291. package/dist/core/server.d.ts.map +1 -1
  292. package/dist/core/server.js +151 -11
  293. package/dist/core/server.js.map +1 -1
  294. package/dist/core/tool-definitions.d.ts +6 -854
  295. package/dist/core/tool-definitions.d.ts.map +1 -1
  296. package/dist/core/tool-definitions.js +8 -1064
  297. package/dist/core/tool-definitions.js.map +1 -1
  298. package/dist/core/tool-schemas/agent-instruction-tools.d.ts +77 -0
  299. package/dist/core/tool-schemas/agent-instruction-tools.d.ts.map +1 -0
  300. package/dist/core/tool-schemas/agent-instruction-tools.js +72 -0
  301. package/dist/core/tool-schemas/agent-instruction-tools.js.map +1 -0
  302. package/dist/core/tool-schemas/cartridge-tools.d.ts +27 -0
  303. package/dist/core/tool-schemas/cartridge-tools.d.ts.map +1 -0
  304. package/dist/core/tool-schemas/cartridge-tools.js +29 -0
  305. package/dist/core/tool-schemas/cartridge-tools.js.map +1 -0
  306. package/dist/core/tool-schemas/code-version-tools.d.ts +28 -0
  307. package/dist/core/tool-schemas/code-version-tools.d.ts.map +1 -0
  308. package/dist/core/tool-schemas/code-version-tools.js +28 -0
  309. package/dist/core/tool-schemas/code-version-tools.js.map +1 -0
  310. package/dist/core/tool-schemas/documentation-tools.d.ts +139 -0
  311. package/dist/core/tool-schemas/documentation-tools.d.ts.map +1 -0
  312. package/dist/core/tool-schemas/documentation-tools.js +104 -0
  313. package/dist/core/tool-schemas/documentation-tools.js.map +1 -0
  314. package/dist/core/tool-schemas/index.d.ts +17 -0
  315. package/dist/core/tool-schemas/index.d.ts.map +1 -0
  316. package/dist/core/tool-schemas/index.js +19 -0
  317. package/dist/core/tool-schemas/index.js.map +1 -0
  318. package/dist/core/tool-schemas/isml-tools.d.ts +98 -0
  319. package/dist/core/tool-schemas/isml-tools.d.ts.map +1 -0
  320. package/dist/core/tool-schemas/isml-tools.js +89 -0
  321. package/dist/core/tool-schemas/isml-tools.js.map +1 -0
  322. package/dist/core/tool-schemas/log-tools.d.ts +221 -0
  323. package/dist/core/tool-schemas/log-tools.d.ts.map +1 -0
  324. package/dist/core/tool-schemas/log-tools.js +180 -0
  325. package/dist/core/tool-schemas/log-tools.js.map +1 -0
  326. package/dist/core/tool-schemas/script-debugger-tools.d.ts +44 -0
  327. package/dist/core/tool-schemas/script-debugger-tools.d.ts.map +1 -0
  328. package/dist/core/tool-schemas/script-debugger-tools.js +83 -0
  329. package/dist/core/tool-schemas/script-debugger-tools.js.map +1 -0
  330. package/dist/core/tool-schemas/sfra-tools.d.ts +63 -0
  331. package/dist/core/tool-schemas/sfra-tools.d.ts.map +1 -0
  332. package/dist/core/tool-schemas/sfra-tools.js +65 -0
  333. package/dist/core/tool-schemas/sfra-tools.js.map +1 -0
  334. package/dist/core/tool-schemas/shared-schemas.d.ts +350 -0
  335. package/dist/core/tool-schemas/shared-schemas.d.ts.map +1 -0
  336. package/dist/core/tool-schemas/shared-schemas.js +153 -0
  337. package/dist/core/tool-schemas/shared-schemas.js.map +1 -0
  338. package/dist/core/tool-schemas/system-object-tools.d.ts +511 -0
  339. package/dist/core/tool-schemas/system-object-tools.d.ts.map +1 -0
  340. package/dist/core/tool-schemas/system-object-tools.js +126 -0
  341. package/dist/core/tool-schemas/system-object-tools.js.map +1 -0
  342. package/dist/docs/dw_net/HTTPClient.md +46 -2
  343. package/dist/docs/dw_net/HTTPClientLoggingConfig.md +296 -0
  344. package/dist/docs/dw_order/Basket.md +7 -7
  345. package/dist/docs/dw_order/BasketMgr.md +22 -6
  346. package/dist/docs/dw_order.hooks/BasketMergeHooks.md +42 -0
  347. package/dist/docs/dw_svc/ServiceCallback.md +2 -2
  348. package/dist/docs/isml/isactivedatacontext.md +382 -0
  349. package/dist/docs/isml/isactivedatahead.md +566 -0
  350. package/dist/docs/isml/isanalyticsoff.md +537 -0
  351. package/dist/docs/isml/isapplepay.md +667 -0
  352. package/dist/docs/isml/isbreak.md +687 -0
  353. package/dist/docs/isml/isbuynow.md +682 -0
  354. package/dist/docs/isml/iscache.md +802 -0
  355. package/dist/docs/isml/iscomment.md +794 -0
  356. package/dist/docs/isml/iscomponent.md +797 -0
  357. package/dist/docs/isml/iscontent.md +594 -0
  358. package/dist/docs/isml/iscontinue.md +563 -0
  359. package/dist/docs/isml/iscookie.md +798 -0
  360. package/dist/docs/isml/isdecorate.md +818 -0
  361. package/dist/docs/isml/isif.md +737 -0
  362. package/dist/docs/isml/isinclude.md +874 -0
  363. package/dist/docs/isml/isloop.md +377 -0
  364. package/dist/docs/isml/ismodule.md +844 -0
  365. package/dist/docs/isml/isnext.md +672 -0
  366. package/dist/docs/isml/isobject.md +760 -0
  367. package/dist/docs/isml/ispayment.md +577 -0
  368. package/dist/docs/isml/ispaymentmessages.md +664 -0
  369. package/dist/docs/isml/isprint.md +875 -0
  370. package/dist/docs/isml/isredirect.md +716 -0
  371. package/dist/docs/isml/isremove.md +725 -0
  372. package/dist/docs/isml/isreplace.md +783 -0
  373. package/dist/docs/isml/isscript.md +859 -0
  374. package/dist/docs/isml/isselect.md +908 -0
  375. package/dist/docs/isml/isset.md +585 -0
  376. package/dist/docs/isml/isslot.md +824 -0
  377. package/dist/docs/isml/isstatus.md +711 -0
  378. package/dist/main.d.ts +16 -0
  379. package/dist/main.d.ts.map +1 -1
  380. package/dist/main.js +60 -28
  381. package/dist/main.js.map +1 -1
  382. package/dist/services/index.d.ts +4 -2
  383. package/dist/services/index.d.ts.map +1 -1
  384. package/dist/services/index.js +2 -2
  385. package/dist/services/index.js.map +1 -1
  386. package/dist/tool-configs/agent-instructions-tool-config.d.ts +6 -0
  387. package/dist/tool-configs/agent-instructions-tool-config.d.ts.map +1 -0
  388. package/dist/tool-configs/agent-instructions-tool-config.js +74 -0
  389. package/dist/tool-configs/agent-instructions-tool-config.js.map +1 -0
  390. package/dist/tool-configs/code-version-tool-config.d.ts.map +1 -1
  391. package/dist/tool-configs/code-version-tool-config.js +0 -5
  392. package/dist/tool-configs/code-version-tool-config.js.map +1 -1
  393. package/dist/tool-configs/docs-tool-config.d.ts.map +1 -1
  394. package/dist/tool-configs/docs-tool-config.js +0 -7
  395. package/dist/tool-configs/docs-tool-config.js.map +1 -1
  396. package/dist/tool-configs/isml-tool-config.d.ts +11 -0
  397. package/dist/tool-configs/isml-tool-config.d.ts.map +1 -0
  398. package/dist/tool-configs/isml-tool-config.js +77 -0
  399. package/dist/tool-configs/isml-tool-config.js.map +1 -0
  400. package/dist/tool-configs/job-log-tool-config.d.ts +1 -2
  401. package/dist/tool-configs/job-log-tool-config.d.ts.map +1 -1
  402. package/dist/tool-configs/job-log-tool-config.js +11 -15
  403. package/dist/tool-configs/job-log-tool-config.js.map +1 -1
  404. package/dist/tool-configs/log-tool-config.d.ts +1 -2
  405. package/dist/tool-configs/log-tool-config.d.ts.map +1 -1
  406. package/dist/tool-configs/log-tool-config.js +35 -51
  407. package/dist/tool-configs/log-tool-config.js.map +1 -1
  408. package/dist/tool-configs/script-debugger-tool-config.d.ts +11 -0
  409. package/dist/tool-configs/script-debugger-tool-config.d.ts.map +1 -0
  410. package/dist/tool-configs/script-debugger-tool-config.js +35 -0
  411. package/dist/tool-configs/script-debugger-tool-config.js.map +1 -0
  412. package/dist/tool-configs/sfra-tool-config.d.ts.map +1 -1
  413. package/dist/tool-configs/sfra-tool-config.js +0 -11
  414. package/dist/tool-configs/sfra-tool-config.js.map +1 -1
  415. package/dist/tool-configs/system-object-tool-config.d.ts.map +1 -1
  416. package/dist/tool-configs/system-object-tool-config.js +0 -5
  417. package/dist/tool-configs/system-object-tool-config.js.map +1 -1
  418. package/dist/types/types.d.ts +2 -0
  419. package/dist/types/types.d.ts.map +1 -1
  420. package/dist/utils/cache.d.ts +12 -10
  421. package/dist/utils/cache.d.ts.map +1 -1
  422. package/dist/utils/cache.js +47 -47
  423. package/dist/utils/cache.js.map +1 -1
  424. package/dist/utils/category-utils.d.ts +31 -0
  425. package/dist/utils/category-utils.d.ts.map +1 -0
  426. package/dist/utils/category-utils.js +45 -0
  427. package/dist/utils/category-utils.js.map +1 -0
  428. package/dist/utils/log-tool-constants.d.ts +16 -13
  429. package/dist/utils/log-tool-constants.d.ts.map +1 -1
  430. package/dist/utils/log-tool-constants.js +10 -11
  431. package/dist/utils/log-tool-constants.js.map +1 -1
  432. package/dist/utils/logger.d.ts +11 -0
  433. package/dist/utils/logger.d.ts.map +1 -1
  434. package/dist/utils/logger.js +35 -1
  435. package/dist/utils/logger.js.map +1 -1
  436. package/dist/utils/markdown-utils.d.ts +60 -0
  437. package/dist/utils/markdown-utils.d.ts.map +1 -0
  438. package/dist/utils/markdown-utils.js +206 -0
  439. package/dist/utils/markdown-utils.js.map +1 -0
  440. package/dist/utils/path-resolver.d.ts +12 -4
  441. package/dist/utils/path-resolver.d.ts.map +1 -1
  442. package/dist/utils/path-resolver.js +22 -8
  443. package/dist/utils/path-resolver.js.map +1 -1
  444. package/dist/utils/path-validation.d.ts +40 -0
  445. package/dist/utils/path-validation.d.ts.map +1 -0
  446. package/dist/utils/path-validation.js +84 -0
  447. package/dist/utils/path-validation.js.map +1 -0
  448. package/docs/dw_net/HTTPClient.md +46 -2
  449. package/docs/dw_net/HTTPClientLoggingConfig.md +296 -0
  450. package/docs/dw_order/Basket.md +7 -7
  451. package/docs/dw_order/BasketMgr.md +22 -6
  452. package/docs/dw_order.hooks/BasketMergeHooks.md +42 -0
  453. package/docs/dw_svc/ServiceCallback.md +2 -2
  454. package/docs/isml/isactivedatacontext.md +382 -0
  455. package/docs/isml/isactivedatahead.md +566 -0
  456. package/docs/isml/isanalyticsoff.md +537 -0
  457. package/docs/isml/isapplepay.md +667 -0
  458. package/docs/isml/isbreak.md +687 -0
  459. package/docs/isml/isbuynow.md +682 -0
  460. package/docs/isml/iscache.md +802 -0
  461. package/docs/isml/iscomment.md +794 -0
  462. package/docs/isml/iscomponent.md +797 -0
  463. package/docs/isml/iscontent.md +594 -0
  464. package/docs/isml/iscontinue.md +563 -0
  465. package/docs/isml/iscookie.md +798 -0
  466. package/docs/isml/isdecorate.md +818 -0
  467. package/docs/isml/isif.md +737 -0
  468. package/docs/isml/isinclude.md +874 -0
  469. package/docs/isml/isloop.md +377 -0
  470. package/docs/isml/ismodule.md +844 -0
  471. package/docs/isml/isnext.md +672 -0
  472. package/docs/isml/isobject.md +760 -0
  473. package/docs/isml/ispayment.md +577 -0
  474. package/docs/isml/ispaymentmessages.md +664 -0
  475. package/docs/isml/isprint.md +875 -0
  476. package/docs/isml/isredirect.md +716 -0
  477. package/docs/isml/isremove.md +725 -0
  478. package/docs/isml/isreplace.md +783 -0
  479. package/docs/isml/isscript.md +859 -0
  480. package/docs/isml/isselect.md +908 -0
  481. package/docs/isml/isset.md +585 -0
  482. package/docs/isml/isslot.md +824 -0
  483. package/docs/isml/isstatus.md +711 -0
  484. package/docs-site-v2/.vitepress/config.mts +190 -0
  485. package/docs-site-v2/.vitepress/theme/components/AssistantTabs.vue +96 -0
  486. package/docs-site-v2/.vitepress/theme/components/Callout.vue +10 -0
  487. package/docs-site-v2/.vitepress/theme/components/Collapsible.vue +14 -0
  488. package/docs-site-v2/.vitepress/theme/components/DwJsonBuilder.vue +82 -0
  489. package/docs-site-v2/.vitepress/theme/components/HomeSections.vue +552 -0
  490. package/docs-site-v2/.vitepress/theme/components/InstructionFilesTabs.vue +87 -0
  491. package/docs-site-v2/.vitepress/theme/components/ModeTabs.vue +70 -0
  492. package/docs-site-v2/.vitepress/theme/components/NewcomerCTA.vue +14 -0
  493. package/docs-site-v2/.vitepress/theme/components/QuickStartCards.vue +20 -0
  494. package/docs-site-v2/.vitepress/theme/components/QuickStartHero.vue +20 -0
  495. package/docs-site-v2/.vitepress/theme/components/SkillsList.vue +48 -0
  496. package/docs-site-v2/.vitepress/theme/components/ToolExplorer.vue +85 -0
  497. package/docs-site-v2/.vitepress/theme/custom.css +1373 -0
  498. package/docs-site-v2/.vitepress/theme/index.ts +39 -0
  499. package/docs-site-v2/data/skills.ts +147 -0
  500. package/docs-site-v2/data/tools.ts +490 -0
  501. package/docs-site-v2/development/index.md +151 -0
  502. package/docs-site-v2/examples/index.md +333 -0
  503. package/docs-site-v2/features/index.md +144 -0
  504. package/docs-site-v2/guide/ai-interfaces.md +58 -0
  505. package/docs-site-v2/guide/configuration.md +208 -0
  506. package/docs-site-v2/guide/index.md +50 -0
  507. package/docs-site-v2/index.md +32 -0
  508. package/docs-site-v2/package-lock.json +2511 -0
  509. package/docs-site-v2/package.json +15 -0
  510. package/docs-site-v2/public/android-chrome-192x192.png +0 -0
  511. package/docs-site-v2/public/android-chrome-512x512.png +0 -0
  512. package/docs-site-v2/public/apple-touch-icon.png +0 -0
  513. package/docs-site-v2/public/favicon-16x16.png +0 -0
  514. package/docs-site-v2/public/favicon-32x32.png +0 -0
  515. package/docs-site-v2/public/favicon.ico +0 -0
  516. package/docs-site-v2/public/index.css +4174 -0
  517. package/docs-site-v2/public/llms.txt +44 -0
  518. package/docs-site-v2/public/logo-dark.svg +8 -0
  519. package/docs-site-v2/public/logo.svg +8 -0
  520. package/{docs-site → docs-site-v2}/public/robots.txt +1 -6
  521. package/{docs-site → docs-site-v2}/public/site.webmanifest +1 -1
  522. package/{docs-site → docs-site-v2}/public/sitemap.xml +33 -12
  523. package/docs-site-v2/script-debugger/index.md +105 -0
  524. package/docs-site-v2/scripts/generate-llms.js +71 -0
  525. package/docs-site-v2/scripts/generate-sitemap.js +97 -0
  526. package/docs-site-v2/security/index.md +115 -0
  527. package/docs-site-v2/skills/index.md +40 -0
  528. package/docs-site-v2/tools/index.md +36 -0
  529. package/docs-site-v2/troubleshooting/index.md +204 -0
  530. package/eslint.config.js +3 -1
  531. package/memories/repo/docs-site-v2-build.json +11 -0
  532. package/package.json +18 -14
  533. package/scripts/validate-server-json.js +68 -0
  534. package/server.json +4 -6
  535. package/src/clients/agent-instructions-client.ts +370 -0
  536. package/src/clients/base/abstract-documentation-client.ts +405 -0
  537. package/src/clients/base/oauth-token.ts +52 -2
  538. package/src/clients/cartridge/cartridge-generation-client.ts +302 -0
  539. package/src/clients/cartridge/cartridge-structure.ts +37 -0
  540. package/src/clients/cartridge/cartridge-templates.ts +246 -0
  541. package/src/clients/cartridge/index.ts +6 -0
  542. package/src/clients/docs/documentation-scanner.ts +44 -28
  543. package/src/clients/docs-client.ts +54 -14
  544. package/src/clients/isml-client.ts +353 -0
  545. package/src/clients/ocapi/code-versions-client.ts +7 -1
  546. package/src/clients/ocapi-client.ts +11 -166
  547. package/src/clients/script-debugger/index.ts +5 -0
  548. package/src/clients/script-debugger/script-debugger-client.ts +754 -0
  549. package/src/clients/sfra-client.ts +134 -397
  550. package/src/config/configuration-factory.ts +6 -1
  551. package/src/config/dw-json-loader.ts +96 -15
  552. package/src/config/workspace-roots.ts +540 -0
  553. package/src/constants/index.ts +1 -0
  554. package/src/core/handlers/abstract-client-handler.ts +85 -0
  555. package/src/core/handlers/agent-instructions-handler.ts +48 -0
  556. package/src/core/handlers/base-handler.ts +17 -127
  557. package/src/core/handlers/cartridge-handler.ts +13 -33
  558. package/src/core/handlers/client-factory.ts +32 -2
  559. package/src/core/handlers/code-version-handler.ts +17 -32
  560. package/src/core/handlers/docs-handler.ts +12 -44
  561. package/src/core/handlers/isml-handler.ts +19 -0
  562. package/src/core/handlers/job-log-handler.ts +19 -8
  563. package/src/core/handlers/log-handler.ts +19 -8
  564. package/src/core/handlers/script-debugger-handler.ts +46 -0
  565. package/src/core/handlers/sfra-handler.ts +12 -44
  566. package/src/core/handlers/simple-client-handler.ts +78 -0
  567. package/src/core/handlers/system-object-handler.ts +17 -32
  568. package/src/core/handlers/validation-helpers.ts +87 -47
  569. package/src/core/instruction-advisor.ts +122 -0
  570. package/src/core/server.ts +178 -13
  571. package/src/core/tool-definitions.ts +25 -1071
  572. package/src/core/tool-schemas/agent-instruction-tools.ts +72 -0
  573. package/src/core/tool-schemas/cartridge-tools.ts +29 -0
  574. package/src/core/tool-schemas/code-version-tools.ts +28 -0
  575. package/src/core/tool-schemas/documentation-tools.ts +104 -0
  576. package/src/core/tool-schemas/index.ts +27 -0
  577. package/src/core/tool-schemas/isml-tools.ts +89 -0
  578. package/src/core/tool-schemas/log-tools.ts +196 -0
  579. package/src/core/tool-schemas/script-debugger-tools.ts +83 -0
  580. package/src/core/tool-schemas/sfra-tools.ts +65 -0
  581. package/src/core/tool-schemas/shared-schemas.ts +158 -0
  582. package/src/core/tool-schemas/system-object-tools.ts +127 -0
  583. package/src/main.ts +63 -30
  584. package/src/services/index.ts +4 -10
  585. package/src/tool-configs/agent-instructions-tool-config.ts +83 -0
  586. package/src/tool-configs/cartridge-tool-config.ts +1 -1
  587. package/src/tool-configs/code-version-tool-config.ts +0 -5
  588. package/src/tool-configs/docs-tool-config.ts +0 -7
  589. package/src/tool-configs/isml-tool-config.ts +87 -0
  590. package/src/tool-configs/job-log-tool-config.ts +18 -17
  591. package/src/tool-configs/log-tool-config.ts +49 -64
  592. package/src/tool-configs/script-debugger-tool-config.ts +69 -0
  593. package/src/tool-configs/sfra-tool-config.ts +0 -11
  594. package/src/tool-configs/system-object-tool-config.ts +0 -5
  595. package/src/types/types.ts +2 -0
  596. package/src/utils/cache.ts +49 -54
  597. package/src/utils/category-utils.ts +70 -0
  598. package/src/utils/log-tool-constants.ts +25 -17
  599. package/src/utils/logger.ts +38 -1
  600. package/src/utils/markdown-utils.ts +280 -0
  601. package/src/utils/path-resolver.ts +25 -9
  602. package/src/utils/path-validation.ts +113 -0
  603. package/tests/base-handler.test.ts +1 -1
  604. package/tests/cache.test.ts +2 -2
  605. package/tests/cartridge-handler.test.ts +4 -4
  606. package/tests/client-factory.test.ts +1 -1
  607. package/tests/code-version-handler.test.ts +3 -3
  608. package/tests/docs-handler.test.ts +2 -2
  609. package/tests/documentation-scanner.test.ts +4 -4
  610. package/tests/isml-client.test.ts +463 -0
  611. package/tests/isml-handler.test.ts +375 -0
  612. package/tests/job-log-handler.test.ts +1 -1
  613. package/tests/log-handler.test.ts +8 -8
  614. package/tests/log-validation.test.ts +149 -0
  615. package/tests/mcp/README.md +22 -18
  616. package/tests/mcp/node/activate-code-version-advanced.full-mode.programmatic.test.js +30 -12
  617. package/tests/mcp/node/evaluate-script.full-mode.programmatic.test.js +387 -0
  618. package/tests/mcp/node/generate-cartridge-structure.docs-only.programmatic.test.js +14 -8
  619. package/tests/mcp/node/get-isml-categories.programmatic.test.js +278 -0
  620. package/tests/mcp/node/get-isml-element.programmatic.test.js +278 -0
  621. package/tests/mcp/node/get-isml-elements-by-category.programmatic.test.js +363 -0
  622. package/tests/mcp/node/get-sfra-categories.docs-only.programmatic.test.js +24 -24
  623. package/tests/mcp/node/get-sfra-document.programmatic.test.js +4 -2
  624. package/tests/mcp/node/list-isml-elements.programmatic.test.js +311 -0
  625. package/tests/mcp/node/list-sfcc-classes.docs-only.programmatic.test.js +2 -33
  626. package/tests/mcp/node/search-isml-elements.programmatic.test.js +325 -0
  627. package/tests/mcp/node/search-sfcc-classes.docs-only.programmatic.test.js +5 -9
  628. package/tests/mcp/node/search-sfcc-methods.docs-only.programmatic.test.js +7 -9
  629. package/tests/mcp/node/tools.docs-only.programmatic.test.js +42 -65
  630. package/tests/mcp/node/tools.full-mode.programmatic.test.js +7 -8
  631. package/tests/mcp/yaml/activate-code-version.full-mode.test.mcp.yml +2 -2
  632. package/tests/mcp/yaml/evaluate-script.full-mode.test.mcp.yml +281 -0
  633. package/tests/mcp/yaml/get-isml-categories.docs-only.test.mcp.yml +330 -0
  634. package/tests/mcp/yaml/get-isml-element.docs-only.test.mcp.yml +294 -0
  635. package/tests/mcp/yaml/get-isml-elements-by-category.docs-only.test.mcp.yml +334 -0
  636. package/tests/mcp/yaml/get-sfcc-class-info.docs-only.test.mcp.yml +2 -2
  637. package/tests/mcp/yaml/get-sfra-categories.docs-only.test.mcp.yml +13 -13
  638. package/tests/mcp/yaml/get-sfra-categories.full-mode.test.mcp.yml +13 -13
  639. package/tests/mcp/yaml/get-system-object-definitions.docs-only.test.mcp.yml +1 -16
  640. package/tests/mcp/yaml/list-isml-elements.docs-only.test.mcp.yml +212 -0
  641. package/tests/mcp/yaml/search-isml-elements.docs-only.test.mcp.yml +312 -0
  642. package/tests/mcp/yaml/search-sfcc-classes.docs-only.test.mcp.yml +1 -1
  643. package/tests/mcp/yaml/search-sfcc-classes.full-mode.test.mcp.yml +1 -1
  644. package/tests/mcp/yaml/search-site-preferences.docs-only.test.mcp.yml +1 -1
  645. package/tests/mcp/yaml/tools.docs-only.test.mcp.yml +3 -57
  646. package/tests/mcp/yaml/tools.full-mode.test.mcp.yml +3 -3
  647. package/tests/oauth-token.test.ts +107 -12
  648. package/tests/ocapi-client.test.ts +53 -106
  649. package/tests/script-debugger-client.test.ts +430 -0
  650. package/tests/servers/sfcc-mock-server/src/app.js +15 -0
  651. package/tests/servers/sfcc-mock-server/src/routes/cartridge-webdav.js +258 -0
  652. package/tests/servers/sfcc-mock-server/src/routes/ocapi/debugger-handler.js +396 -0
  653. package/tests/servers/sfcc-mock-server/src/routes/ocapi.js +5 -0
  654. package/tests/servers/sfcc-mock-server/src/routes/storefront.js +86 -0
  655. package/tests/servers/sfcc-mock-server/src/routes/webdav.js +6 -4
  656. package/tests/validation-helpers.test.ts +0 -31
  657. package/tests/workspace-roots.test.ts +227 -0
  658. package/ai-instructions/claude-desktop/claude_custom_instructions.md +0 -321
  659. package/ai-instructions/cursor/.cursor/rules/debugging-workflows.mdc +0 -171
  660. package/ai-instructions/cursor/.cursor/rules/hooks-development.mdc +0 -168
  661. package/ai-instructions/cursor/.cursor/rules/isml-templates.mdc +0 -209
  662. package/ai-instructions/cursor/.cursor/rules/job-framework.mdc +0 -379
  663. package/ai-instructions/cursor/.cursor/rules/performance-optimization.mdc +0 -215
  664. package/ai-instructions/cursor/.cursor/rules/scapi-endpoints.mdc +0 -98
  665. package/ai-instructions/cursor/.cursor/rules/security-patterns.mdc +0 -375
  666. package/ai-instructions/cursor/.cursor/rules/sfcc-development.mdc +0 -144
  667. package/ai-instructions/cursor/.cursor/rules/sfra-controllers.mdc +0 -376
  668. package/ai-instructions/cursor/.cursor/rules/sfra-models.mdc +0 -412
  669. package/ai-instructions/cursor/.cursor/rules/system-objects.mdc +0 -383
  670. package/ai-instructions/cursor/.cursor/rules/testing-patterns.mdc +0 -418
  671. package/dist/clients/best-practices-client.d.ts +0 -57
  672. package/dist/clients/best-practices-client.d.ts.map +0 -1
  673. package/dist/clients/best-practices-client.js +0 -288
  674. package/dist/clients/best-practices-client.js.map +0 -1
  675. package/dist/clients/cartridge-generation-client.d.ts +0 -57
  676. package/dist/clients/cartridge-generation-client.d.ts.map +0 -1
  677. package/dist/clients/cartridge-generation-client.js +0 -384
  678. package/dist/clients/cartridge-generation-client.js.map +0 -1
  679. package/dist/clients/logs/index.d.ts +0 -13
  680. package/dist/clients/logs/index.d.ts.map +0 -1
  681. package/dist/clients/logs/index.js +0 -15
  682. package/dist/clients/logs/index.js.map +0 -1
  683. package/dist/clients/logs/log-analyzer.d.ts +0 -55
  684. package/dist/clients/logs/log-analyzer.d.ts.map +0 -1
  685. package/dist/clients/logs/log-analyzer.js +0 -228
  686. package/dist/clients/logs/log-analyzer.js.map +0 -1
  687. package/dist/clients/logs/log-client.d.ts +0 -87
  688. package/dist/clients/logs/log-client.d.ts.map +0 -1
  689. package/dist/clients/logs/log-client.js +0 -418
  690. package/dist/clients/logs/log-client.js.map +0 -1
  691. package/dist/clients/logs/log-constants.d.ts +0 -37
  692. package/dist/clients/logs/log-constants.d.ts.map +0 -1
  693. package/dist/clients/logs/log-constants.js +0 -37
  694. package/dist/clients/logs/log-constants.js.map +0 -1
  695. package/dist/clients/logs/log-file-discovery.d.ts +0 -62
  696. package/dist/clients/logs/log-file-discovery.d.ts.map +0 -1
  697. package/dist/clients/logs/log-file-discovery.js +0 -238
  698. package/dist/clients/logs/log-file-discovery.js.map +0 -1
  699. package/dist/clients/logs/log-file-reader.d.ts +0 -53
  700. package/dist/clients/logs/log-file-reader.d.ts.map +0 -1
  701. package/dist/clients/logs/log-file-reader.js +0 -194
  702. package/dist/clients/logs/log-file-reader.js.map +0 -1
  703. package/dist/clients/logs/log-formatter.d.ts +0 -90
  704. package/dist/clients/logs/log-formatter.d.ts.map +0 -1
  705. package/dist/clients/logs/log-formatter.js +0 -189
  706. package/dist/clients/logs/log-formatter.js.map +0 -1
  707. package/dist/clients/logs/log-processor.d.ts +0 -91
  708. package/dist/clients/logs/log-processor.d.ts.map +0 -1
  709. package/dist/clients/logs/log-processor.js +0 -328
  710. package/dist/clients/logs/log-processor.js.map +0 -1
  711. package/dist/clients/logs/log-types.d.ts +0 -69
  712. package/dist/clients/logs/log-types.d.ts.map +0 -1
  713. package/dist/clients/logs/log-types.js +0 -5
  714. package/dist/clients/logs/log-types.js.map +0 -1
  715. package/dist/clients/logs/webdav-client-manager.d.ts +0 -28
  716. package/dist/clients/logs/webdav-client-manager.d.ts.map +0 -1
  717. package/dist/clients/logs/webdav-client-manager.js +0 -77
  718. package/dist/clients/logs/webdav-client-manager.js.map +0 -1
  719. package/dist/core/handlers/abstract-log-tool-handler.d.ts +0 -35
  720. package/dist/core/handlers/abstract-log-tool-handler.d.ts.map +0 -1
  721. package/dist/core/handlers/abstract-log-tool-handler.js +0 -46
  722. package/dist/core/handlers/abstract-log-tool-handler.js.map +0 -1
  723. package/dist/core/handlers/best-practices-handler.d.ts +0 -17
  724. package/dist/core/handlers/best-practices-handler.d.ts.map +0 -1
  725. package/dist/core/handlers/best-practices-handler.js +0 -43
  726. package/dist/core/handlers/best-practices-handler.js.map +0 -1
  727. package/dist/core/handlers/job-log-tool-config.d.ts +0 -8
  728. package/dist/core/handlers/job-log-tool-config.d.ts.map +0 -1
  729. package/dist/core/handlers/job-log-tool-config.js +0 -76
  730. package/dist/core/handlers/job-log-tool-config.js.map +0 -1
  731. package/dist/core/handlers/log-tool-config.d.ts +0 -8
  732. package/dist/core/handlers/log-tool-config.d.ts.map +0 -1
  733. package/dist/core/handlers/log-tool-config.js +0 -73
  734. package/dist/core/handlers/log-tool-config.js.map +0 -1
  735. package/dist/docs/best-practices/isml_templates.md +0 -1933
  736. package/dist/docs/best-practices/job_framework.md +0 -1173
  737. package/dist/docs/best-practices/scapi_custom_endpoint.md +0 -963
  738. package/dist/docs/best-practices/sfra_client_side_js.md +0 -736
  739. package/dist/docs/best-practices/sfra_models.md +0 -1142
  740. package/dist/tool-configs/best-practices-tool-config.d.ts +0 -11
  741. package/dist/tool-configs/best-practices-tool-config.d.ts.map +0 -1
  742. package/dist/tool-configs/best-practices-tool-config.js +0 -59
  743. package/dist/tool-configs/best-practices-tool-config.js.map +0 -1
  744. package/dist/utils/job-log-tool-config.d.ts +0 -8
  745. package/dist/utils/job-log-tool-config.d.ts.map +0 -1
  746. package/dist/utils/job-log-tool-config.js +0 -76
  747. package/dist/utils/job-log-tool-config.js.map +0 -1
  748. package/dist/utils/job-log-utils.d.ts +0 -34
  749. package/dist/utils/job-log-utils.d.ts.map +0 -1
  750. package/dist/utils/job-log-utils.js +0 -60
  751. package/dist/utils/job-log-utils.js.map +0 -1
  752. package/dist/utils/log-cache.d.ts +0 -53
  753. package/dist/utils/log-cache.d.ts.map +0 -1
  754. package/dist/utils/log-cache.js +0 -114
  755. package/dist/utils/log-cache.js.map +0 -1
  756. package/dist/utils/log-tool-config.d.ts +0 -8
  757. package/dist/utils/log-tool-config.d.ts.map +0 -1
  758. package/dist/utils/log-tool-config.js +0 -73
  759. package/dist/utils/log-tool-config.js.map +0 -1
  760. package/dist/utils/log-tool-utils.d.ts +0 -39
  761. package/dist/utils/log-tool-utils.d.ts.map +0 -1
  762. package/dist/utils/log-tool-utils.js +0 -94
  763. package/dist/utils/log-tool-utils.js.map +0 -1
  764. package/docs/best-practices/isml_templates.md +0 -1933
  765. package/docs/best-practices/job_framework.md +0 -1173
  766. package/docs/best-practices/scapi_custom_endpoint.md +0 -963
  767. package/docs/best-practices/sfra_client_side_js.md +0 -736
  768. package/docs/best-practices/sfra_models.md +0 -1142
  769. package/docs-site/App.tsx +0 -103
  770. package/docs-site/README.md +0 -113
  771. package/docs-site/components/Badge.tsx +0 -38
  772. package/docs-site/components/BreadcrumbSchema.tsx +0 -34
  773. package/docs-site/components/CodeBlock.tsx +0 -132
  774. package/docs-site/components/Collapsible.tsx +0 -40
  775. package/docs-site/components/ConfigBuilder.tsx +0 -118
  776. package/docs-site/components/ConfigHero.tsx +0 -19
  777. package/docs-site/components/ConfigModeTabs.tsx +0 -42
  778. package/docs-site/components/Layout.tsx +0 -174
  779. package/docs-site/components/LightCodeContainer.tsx +0 -44
  780. package/docs-site/components/NewcomerCTA.tsx +0 -57
  781. package/docs-site/components/NextStepsStrip.tsx +0 -23
  782. package/docs-site/components/OnThisPage.tsx +0 -91
  783. package/docs-site/components/SEO.tsx +0 -79
  784. package/docs-site/components/Search.tsx +0 -207
  785. package/docs-site/components/Sidebar.tsx +0 -96
  786. package/docs-site/components/StructuredData.tsx +0 -72
  787. package/docs-site/components/ToolCard.tsx +0 -84
  788. package/docs-site/components/ToolFilters.tsx +0 -39
  789. package/docs-site/components/Typography.tsx +0 -30
  790. package/docs-site/components/VersionBadge.tsx +0 -18
  791. package/docs-site/components/icons.tsx +0 -37
  792. package/docs-site/constants.tsx +0 -34
  793. package/docs-site/index.html +0 -62
  794. package/docs-site/main.tsx +0 -16
  795. package/docs-site/metadata.json +0 -5
  796. package/docs-site/package-lock.json +0 -3966
  797. package/docs-site/package.json +0 -35
  798. package/docs-site/pages/AIInterfacesPage.tsx +0 -610
  799. package/docs-site/pages/ConfigurationPage.tsx +0 -315
  800. package/docs-site/pages/DevelopmentPage.tsx +0 -607
  801. package/docs-site/pages/ExamplesPage.tsx +0 -558
  802. package/docs-site/pages/FeaturesPage.tsx +0 -353
  803. package/docs-site/pages/HomePage.tsx +0 -1046
  804. package/docs-site/pages/SecurityPage.tsx +0 -372
  805. package/docs-site/pages/ToolsPage.tsx +0 -205
  806. package/docs-site/pages/TroubleshootingPage.tsx +0 -590
  807. package/docs-site/postcss.config.js +0 -6
  808. package/docs-site/public/.well-known/security.txt +0 -6
  809. package/docs-site/public/android-chrome-192x192.png +0 -0
  810. package/docs-site/public/android-chrome-512x512.png +0 -0
  811. package/docs-site/public/apple-touch-icon.png +0 -0
  812. package/docs-site/public/favicon-16x16.png +0 -0
  813. package/docs-site/public/favicon-32x32.png +0 -0
  814. package/docs-site/public/favicon.ico +0 -0
  815. package/docs-site/public/llms.txt +0 -47
  816. package/docs-site/scripts/generate-search-index.js +0 -323
  817. package/docs-site/scripts/generate-sitemap.js +0 -156
  818. package/docs-site/scripts/search-dev.js +0 -112
  819. package/docs-site/src/styles/input.css +0 -248
  820. package/docs-site/src/styles/prism-theme.css +0 -124
  821. package/docs-site/tailwind.config.js +0 -70
  822. package/docs-site/tsconfig.json +0 -29
  823. package/docs-site/types.ts +0 -16
  824. package/docs-site/utils/search.ts +0 -132
  825. package/docs-site/utils/toolsData.ts +0 -116
  826. package/docs-site/vite.config.ts +0 -63
  827. package/src/clients/best-practices-client.ts +0 -332
  828. package/src/clients/cartridge-generation-client.ts +0 -507
  829. package/src/clients/logs/index.ts +0 -18
  830. package/src/clients/logs/log-analyzer.ts +0 -289
  831. package/src/clients/logs/log-client.ts +0 -540
  832. package/src/clients/logs/log-constants.ts +0 -53
  833. package/src/clients/logs/log-file-discovery.ts +0 -299
  834. package/src/clients/logs/log-file-reader.ts +0 -227
  835. package/src/clients/logs/log-formatter.ts +0 -258
  836. package/src/clients/logs/log-processor.ts +0 -402
  837. package/src/clients/logs/log-types.ts +0 -80
  838. package/src/clients/logs/webdav-client-manager.ts +0 -93
  839. package/src/core/handlers/abstract-log-tool-handler.ts +0 -64
  840. package/src/core/handlers/best-practices-handler.ts +0 -55
  841. package/src/core/handlers/job-log-tool-config.ts +0 -89
  842. package/src/core/handlers/log-tool-config.ts +0 -98
  843. package/src/tool-configs/best-practices-tool-config.ts +0 -68
  844. package/src/utils/job-log-tool-config.ts +0 -89
  845. package/src/utils/job-log-utils.ts +0 -78
  846. package/src/utils/log-cache.ts +0 -134
  847. package/src/utils/log-tool-config.ts +0 -98
  848. package/src/utils/log-tool-utils.ts +0 -122
  849. package/tests/best-practices-handler.test.ts +0 -236
  850. package/tests/job-log-utils.test.ts +0 -182
  851. package/tests/mcp/node/get-available-best-practice-guides.docs-only.programmatic.test.js +0 -516
  852. package/tests/mcp/node/get-best-practice-guide.docs-only.programmatic.test.js +0 -733
  853. package/tests/mcp/node/get-hook-reference.docs-only.programmatic.test.js +0 -185
  854. package/tests/mcp/node/search-best-practices.docs-only.programmatic.test.js +0 -836
  855. package/tests/mcp/yaml/get-available-best-practice-guides.docs-only.test.mcp.yml +0 -885
  856. package/tests/mcp/yaml/get-available-best-practice-guides.full-mode.test.mcp.yml +0 -885
  857. package/tests/mcp/yaml/get-best-practice-guide.docs-only.test.mcp.yml +0 -462
  858. package/tests/mcp/yaml/get-best-practice-guide.full-mode.test.mcp.yml +0 -462
  859. package/tests/mcp/yaml/get-hook-reference.docs-only.test.mcp.yml +0 -321
  860. package/tests/mcp/yaml/get-hook-reference.full-mode.test.mcp.yml +0 -321
  861. package/tests/mcp/yaml/search-best-practices.docs-only.test.mcp.yml +0 -655
  862. package/tests/mcp/yaml/search-best-practices.full-mode.test.mcp.yml +0 -655
  863. /package/{docs-site → docs-site-v2}/public/404.html +0 -0
  864. /package/{docs-site → docs-site-v2}/public/explain-product-pricing-methods-no-mcp.png +0 -0
  865. /package/{docs-site → docs-site-v2}/public/explain-product-pricing-methods.png +0 -0
@@ -0,0 +1,798 @@
1
+ # ISML iscookie Element
2
+
3
+ ## Overview
4
+
5
+ The `<iscookie>` element sets a cookie in the browser, allowing you to store user-related information on the shopper's system. Cookies enable persistent storage of preferences, session data, and user identifiers that the browser returns with subsequent requests to the same domain.
6
+
7
+ **Security Note:** Cookie handling includes automatic `SameSite` attribute management based on security settings and the `Secure` flag.
8
+
9
+ ## Syntax
10
+
11
+ ```isml
12
+ <iscookie
13
+ name = cookie_name // required
14
+ value = cookie_value // required
15
+ comment = cookie_use // optional
16
+ domain = domain_name // optional
17
+ path = pathname // optional
18
+ maxAge = cookie_lifetime // optional
19
+ version = cookie_spec // optional
20
+ secure = "on" | "off" // optional
21
+ />
22
+ ```
23
+
24
+ ## Required Attributes
25
+
26
+ ### name
27
+
28
+ **Type:** String or Expression
29
+ **Required:** Yes
30
+
31
+ Specifies the name for the cookie. This is the identifier used to retrieve the cookie value in subsequent requests.
32
+
33
+ **Restrictions:** Names starting with `$` are **not allowed**.
34
+
35
+ **Examples:**
36
+ ```isml
37
+ <!-- String literal -->
38
+ <iscookie name="UserID" value="${customer.ID}"/>
39
+
40
+ <!-- Expression -->
41
+ <iscookie name="${pdict.cookieName}" value="${pdict.cookieValue}"/>
42
+
43
+ <!-- Invalid: starts with $ -->
44
+ <iscookie name="$sessionID" value="123"/> <!-- NOT ALLOWED -->
45
+ ```
46
+
47
+ ### value
48
+
49
+ **Type:** String or Expression
50
+ **Required:** Yes
51
+
52
+ Specifies the value stored by the cookie. This can be any string data such as a user ID, preference setting, or session identifier.
53
+
54
+ **Examples:**
55
+ ```isml
56
+ <!-- Customer UUID -->
57
+ <iscookie name="UserID" value="${pdict.buyer.UUID}"/>
58
+
59
+ <!-- Preference value -->
60
+ <iscookie name="preferredStore" value="${customer.profile.custom.storeLocation}"/>
61
+
62
+ <!-- String literal -->
63
+ <iscookie name="consent" value="accepted"/>
64
+
65
+ <!-- Expression -->
66
+ <iscookie name="sessionData" value="${JSON.stringify(pdict.sessionInfo)}"/>
67
+ ```
68
+
69
+ ## Optional Attributes
70
+
71
+ ### comment
72
+
73
+ **Type:** String or Expression
74
+ **Optional:** Yes
75
+
76
+ Documents the intended use of the cookie. This information can help users decide whether to accept or reject the cookie, especially when cookies contain private information.
77
+
78
+ **Privacy Best Practice:** Always provide meaningful comments for cookies that store personal or sensitive data to support transparency and user consent.
79
+
80
+ ```isml
81
+ <iscookie
82
+ name="UserID"
83
+ value="${customer.UUID}"
84
+ comment="Your international customer ID for personalized shopping experience"/>
85
+
86
+ <iscookie
87
+ name="preferences"
88
+ value="${prefs}"
89
+ comment="Stores your site preferences like language and currency"/>
90
+ ```
91
+
92
+ ### domain
93
+
94
+ **Type:** String or Expression
95
+ **Optional:** Yes
96
+
97
+ Specifies the domain for which the cookie is valid. Controls which domains can access the cookie.
98
+
99
+ **Important Rules:**
100
+ - An explicitly specified domain **must always start with a dot** (`.`)
101
+ - If not specified, the browser sets the domain to the domain that issued the cookie
102
+ - Cookies are sent to the specified domain and all its subdomains
103
+
104
+ **Examples:**
105
+ ```isml
106
+ <!-- Valid for foo.com and all subdomains (www.foo.com, shop.foo.com) -->
107
+ <iscookie name="UserID" value="${customer.ID}" domain=".foo.com"/>
108
+
109
+ <!-- Valid for example.com and all subdomains -->
110
+ <iscookie name="sessionID" value="${session.ID}" domain=".example.com"/>
111
+
112
+ <!-- Browser sets domain automatically (recommended for most cases) -->
113
+ <iscookie name="UserID" value="${customer.ID}"/>
114
+ ```
115
+
116
+ ### path
117
+
118
+ **Type:** String or Expression
119
+ **Optional:** Yes
120
+
121
+ Specifies the URL path subset to which this cookie applies. Pages outside of that path cannot access the cookie.
122
+
123
+ **Path Matching:**
124
+ - Cookie is sent to the specified path and all sub-paths
125
+ - More specific paths provide better security and control
126
+ - Default is typically `/` (root path)
127
+
128
+ **Examples:**
129
+ ```isml
130
+ <!-- Cookie available to /checkout and all sub-paths -->
131
+ <iscookie name="checkoutData" value="${data}" path="/checkout"/>
132
+
133
+ <!-- Cookie available site-wide -->
134
+ <iscookie name="UserID" value="${customer.ID}" path="/"/>
135
+
136
+ <!-- Cookie only for specific section -->
137
+ <iscookie name="adminSession" value="${sessionID}" path="/admin"/>
138
+
139
+ <!-- Dynamic path -->
140
+ <iscookie name="categoryPref" value="${pref}" path="${'/category/' + categoryID}"/>
141
+ ```
142
+
143
+ ### maxAge
144
+
145
+ **Type:** Integer or Expression
146
+ **Optional:** Yes
147
+ **Unit:** Seconds
148
+
149
+ Defines the lifetime of the cookie in seconds. Controls how long the browser should retain the cookie.
150
+
151
+ **Value Meanings:**
152
+ - **Positive integer:** Cookie persists for the specified number of seconds
153
+ - **`0`:** Cookie is deleted immediately
154
+ - **Negative integer:** Cookie is not persistent and is deleted when the browser closes (session cookie)
155
+
156
+ **B2C Commerce Regulations:**
157
+ - Maximum cookie lifetime is **6 months** for compliance with international data storage regulations
158
+ - Anonymous customer cookies adhere to 6-month maximum
159
+ - All B2C Commerce cookies have a lifetime of 6 months or less
160
+
161
+ **Examples:**
162
+ ```isml
163
+ <!-- Session cookie (deleted when browser closes) -->
164
+ <iscookie name="tempData" value="${data}" maxAge="-1"/>
165
+
166
+ <!-- 1 hour (3600 seconds) -->
167
+ <iscookie name="sessionID" value="${session.ID}" maxAge="3600"/>
168
+
169
+ <!-- 1 day (86400 seconds) -->
170
+ <iscookie name="dailyPref" value="${pref}" maxAge="86400"/>
171
+
172
+ <!-- 30 days (2592000 seconds) -->
173
+ <iscookie name="preferences" value="${prefs}" maxAge="2592000"/>
174
+
175
+ <!-- 6 months maximum (15552000 seconds = 180 days) -->
176
+ <iscookie name="UserID" value="${customer.UUID}" maxAge="15552000"/>
177
+
178
+ <!-- Delete cookie immediately -->
179
+ <iscookie name="oldCookie" value="" maxAge="0"/>
180
+
181
+ <!-- Dynamic lifetime -->
182
+ <iscookie name="tempToken" value="${token}" maxAge="${pdict.tokenLifetime}"/>
183
+ ```
184
+
185
+ **Lifetime Calculations:**
186
+ ```isml
187
+ <isscript>
188
+ var ONE_HOUR = 60 * 60; // 3600
189
+ var ONE_DAY = 24 * 60 * 60; // 86400
190
+ var ONE_WEEK = 7 * 24 * 60 * 60; // 604800
191
+ var ONE_MONTH = 30 * 24 * 60 * 60; // 2592000
192
+ var SIX_MONTHS = 180 * 24 * 60 * 60; // 15552000 (B2C Commerce max)
193
+ </isscript>
194
+
195
+ <iscookie name="sessionToken" value="${token}" maxAge="${ONE_HOUR}"/>
196
+ <iscookie name="userPrefs" value="${prefs}" maxAge="${ONE_MONTH}"/>
197
+ ```
198
+
199
+ ### version
200
+
201
+ **Type:** Decimal Integer or Expression
202
+ **Optional:** Yes
203
+
204
+ Identifies the version of the cookie specification to which the cookie conforms.
205
+
206
+ **Valid Values:** Any decimal integer (digits 0-9)
207
+
208
+ **Common Versions:**
209
+ - `0` - Original Netscape cookie specification (most common)
210
+ - `1` - RFC 2109 cookie specification
211
+
212
+ ```isml
213
+ <!-- Version 0 (Netscape specification) -->
214
+ <iscookie name="UserID" value="${customer.ID}" version="0"/>
215
+
216
+ <!-- Version 1 (RFC 2109) -->
217
+ <iscookie name="sessionData" value="${data}" version="1"/>
218
+
219
+ <!-- Dynamic version -->
220
+ <iscookie name="data" value="${value}" version="${pdict.cookieVersion}"/>
221
+ ```
222
+
223
+ ### secure
224
+
225
+ **Type:** String
226
+ **Allowed Values:** `"on"`, `"off"`
227
+ **Optional:** Yes
228
+ **Default:** `"off"`
229
+ **Expressions:** Not allowed
230
+
231
+ Indicates whether the cookie must only be transmitted over secure connections (HTTPS/SSL).
232
+
233
+ **Security Behavior:**
234
+ - `"on"` - Cookie only sent over HTTPS connections
235
+ - `"off"` - Cookie sent over both HTTP and HTTPS
236
+
237
+ **Important:** Setting `secure="on"` affects the automatic `SameSite` attribute (see SameSite Attribute section).
238
+
239
+ ```isml
240
+ <!-- Secure cookie (HTTPS only) -->
241
+ <iscookie name="UserID" value="${customer.UUID}" secure="on"/>
242
+
243
+ <!-- Non-secure cookie (HTTP and HTTPS) -->
244
+ <iscookie name="preferences" value="${prefs}" secure="off"/>
245
+
246
+ <!-- Best practice: Always use secure for sensitive data -->
247
+ <iscookie
248
+ name="sessionToken"
249
+ value="${token}"
250
+ secure="on"
251
+ maxAge="3600"/>
252
+ ```
253
+
254
+ ## SameSite Attribute Management
255
+
256
+ The `SameSite` attribute controls whether cookies are sent with cross-site requests, providing CSRF protection.
257
+
258
+ **Automatic Behavior:** You **cannot** manually set the `SameSite` attribute using the `<iscookie>` tag. The server automatically manages it based on the following rules:
259
+
260
+ ### SameSite=None
261
+
262
+ The server sets `SameSite=None` when **either** condition is true:
263
+ 1. Developer sets `secure="on"` on the cookie
264
+ 2. Global security preference **"Enforce HTTPS"** is enabled
265
+
266
+ **Note:** When `SameSite=None` is set, the `Secure` flag is also automatically set.
267
+
268
+ ```isml
269
+ <!-- Results in SameSite=None; Secure -->
270
+ <iscookie name="crossSiteID" value="${id}" secure="on"/>
271
+ ```
272
+
273
+ ### No SameSite Attribute
274
+
275
+ If neither condition above is met, the server **doesn't set** the `SameSite` attribute, and the browser uses its own default setting (typically `SameSite=Lax`).
276
+
277
+ ```isml
278
+ <!-- Browser uses its default SameSite setting -->
279
+ <iscookie name="localPref" value="${pref}" secure="off"/>
280
+ ```
281
+
282
+ ### Client Compatibility
283
+
284
+ The `SameSite` attribute is **not sent** with a cookie if the server detects that the client doesn't correctly interpret the attribute (older browsers).
285
+
286
+ ## Purpose
287
+
288
+ Cookies serve multiple purposes in B2C Commerce storefronts:
289
+
290
+ 1. **User Identification:** Store unique user IDs to identify returning customers
291
+ 2. **Session Management:** Maintain session state across requests
292
+ 3. **Personalization:** Store user preferences (language, currency, store location)
293
+ 4. **Simplified Login:** Enable "Remember Me" functionality without storing passwords
294
+ 5. **Shopping Cart Persistence:** Maintain cart state for anonymous users
295
+ 6. **Analytics Tracking:** Track user behavior and shopping patterns
296
+ 7. **Consent Management:** Store cookie consent preferences
297
+
298
+ **How Cookies Work:**
299
+ 1. B2C Commerce sends cookie to browser via `<iscookie>` tag
300
+ 2. Browser stores the cookie on the shopper's system
301
+ 3. Browser returns the cookie with every subsequent request to the same domain
302
+ 4. Server reads cookie value to identify user, preferences, or session
303
+
304
+ ## Supporting Objects
305
+
306
+ For programmatic cookie operations in scripts, use these classes:
307
+
308
+ | Class | Purpose |
309
+ |-------|---------|
310
+ | **`dw.system.Request`** | Read cookies from incoming requests |
311
+ | **`dw.web.Cookies`** | Collection of cookies |
312
+ | **`dw.web.Cookie`** | Individual cookie object with properties and methods |
313
+
314
+ **See:** Scripting API documentation for detailed programmatic cookie manipulation.
315
+
316
+ ## Common Use Cases
317
+
318
+ ### Customer Identification Cookie
319
+
320
+ ```isml
321
+ <iscookie
322
+ name="UserID"
323
+ value="${pdict.buyer.UUID}"
324
+ comment="Your international customer ID"
325
+ domain=".foo.com"
326
+ path="/acme"
327
+ maxAge="10000"
328
+ version="0"
329
+ secure="on"
330
+ />
331
+ ```
332
+
333
+ ### Store Preferences
334
+
335
+ ```isml
336
+ <isscript>
337
+ var preferences = {
338
+ language: request.locale,
339
+ currency: session.currency.currencyCode,
340
+ storeID: customer.profile.custom.preferredStore
341
+ };
342
+ </isscript>
343
+
344
+ <iscookie
345
+ name="storePreferences"
346
+ value="${JSON.stringify(preferences)}"
347
+ comment="Stores your language, currency, and preferred store location"
348
+ maxAge="${30 * 24 * 60 * 60}"
349
+ secure="on"
350
+ />
351
+ ```
352
+
353
+ ### Session Cookie
354
+
355
+ ```isml
356
+ <!-- Deleted when browser closes (maxAge = -1) -->
357
+ <iscookie
358
+ name="tempSessionData"
359
+ value="${session.custom.temporaryData}"
360
+ comment="Temporary session information"
361
+ maxAge="-1"
362
+ path="/"
363
+ secure="on"
364
+ />
365
+ ```
366
+
367
+ ### Remember Me Functionality
368
+
369
+ ```isml
370
+ <isif condition="${pdict.rememberMe}">
371
+ <iscookie
372
+ name="rememberToken"
373
+ value="${customer.profile.custom.rememberMeToken}"
374
+ comment="Remember me authentication token"
375
+ maxAge="${30 * 24 * 60 * 60}"
376
+ path="/"
377
+ secure="on"
378
+ />
379
+ </isif>
380
+ ```
381
+
382
+ ### Cookie Consent Tracking
383
+
384
+ ```isml
385
+ <iscookie
386
+ name="cookieConsent"
387
+ value="${pdict.consentLevel}"
388
+ comment="Stores your cookie preferences and consent"
389
+ maxAge="${365 * 24 * 60 * 60}"
390
+ path="/"
391
+ secure="on"
392
+ />
393
+ ```
394
+
395
+ ### Delete a Cookie
396
+
397
+ ```isml
398
+ <!-- Set maxAge to 0 to delete the cookie -->
399
+ <iscookie
400
+ name="oldCookie"
401
+ value=""
402
+ maxAge="0"
403
+ />
404
+ ```
405
+
406
+ ### Shopping Cart Cookie for Anonymous Users
407
+
408
+ ```isml
409
+ <iscookie
410
+ name="anonymousBasket"
411
+ value="${session.custom.basketID}"
412
+ comment="Stores your shopping cart for your next visit"
413
+ maxAge="${7 * 24 * 60 * 60}"
414
+ path="/"
415
+ secure="on"
416
+ />
417
+ ```
418
+
419
+ ### Locale Preference
420
+
421
+ ```isml
422
+ <iscookie
423
+ name="locale"
424
+ value="${request.locale}"
425
+ comment="Your preferred language and region settings"
426
+ maxAge="${90 * 24 * 60 * 60}"
427
+ path="/"
428
+ secure="on"
429
+ />
430
+ ```
431
+
432
+ ## Reading Cookies
433
+
434
+ ### In ISML Templates
435
+
436
+ Access cookies from the current request using the `request.httpCookies` object:
437
+
438
+ ```isml
439
+ <!-- Check if cookie exists -->
440
+ <isif condition="${request.httpCookies['UserID'] != null}">
441
+ <isredirect location="${URLUtils.url('LoginPanel')}"/>
442
+ </isif>
443
+
444
+ <!-- Read cookie value -->
445
+ <isset name="userID" value="${request.httpCookies['UserID'].value}" scope="page"/>
446
+ <div>Welcome back, User ${userID}</div>
447
+
448
+ <!-- Conditional logic based on cookie -->
449
+ <isif condition="${request.httpCookies['cookieConsent'] != null}">
450
+ <!-- Show analytics scripts -->
451
+ <isinclude template="analytics/tracking"/>
452
+ </isif>
453
+ ```
454
+
455
+ ### In Scripts
456
+
457
+ ```javascript
458
+ // Check if cookie exists
459
+ if (request.httpCookies.UserID != null) {
460
+ var userID = request.httpCookies.UserID.value;
461
+ // Use userID...
462
+ }
463
+
464
+ // Iterate over all cookies
465
+ var cookies = request.httpCookies;
466
+ for (var cookieName in cookies) {
467
+ var cookie = cookies[cookieName];
468
+ Logger.debug('Cookie: {0} = {1}', cookieName, cookie.value);
469
+ }
470
+
471
+ // Get specific cookie
472
+ var Cookie = require('dw/web/Cookie');
473
+ var userCookie = request.httpCookies['UserID'];
474
+ if (userCookie) {
475
+ var value = userCookie.value;
476
+ var domain = userCookie.domain;
477
+ var path = userCookie.path;
478
+ var maxAge = userCookie.maxAge;
479
+ }
480
+ ```
481
+
482
+ ## Security Best Practices
483
+
484
+ ### Always Use Secure Flag for Sensitive Data
485
+
486
+ ```isml
487
+ <!-- Good: Secure flag for authentication tokens -->
488
+ <iscookie
489
+ name="authToken"
490
+ value="${token}"
491
+ secure="on"
492
+ maxAge="3600"
493
+ />
494
+
495
+ <!-- Bad: Sensitive data without secure flag -->
496
+ <iscookie
497
+ name="authToken"
498
+ value="${token}"
499
+ secure="off" <!-- INSECURE -->
500
+ />
501
+ ```
502
+
503
+ ### Use HTTPS in Production
504
+
505
+ **Critical:** Always enable **"Enforce HTTPS"** in production environments to ensure:
506
+ - `SameSite=None` is set automatically
507
+ - `Secure` flag is set automatically
508
+ - Protection against man-in-the-middle attacks
509
+
510
+ ### Limit Cookie Lifetime
511
+
512
+ ```isml
513
+ <!-- Good: Short lifetime for sensitive data -->
514
+ <iscookie
515
+ name="sessionToken"
516
+ value="${token}"
517
+ maxAge="3600"
518
+ secure="on"
519
+ />
520
+
521
+ <!-- Avoid: Overly long lifetime for sensitive data -->
522
+ <iscookie
523
+ name="sessionToken"
524
+ value="${token}"
525
+ maxAge="${365 * 24 * 60 * 60}" <!-- Too long for session data -->
526
+ secure="on"
527
+ />
528
+ ```
529
+
530
+ ### Provide Meaningful Comments
531
+
532
+ ```isml
533
+ <!-- Good: Clear privacy documentation -->
534
+ <iscookie
535
+ name="UserID"
536
+ value="${customer.UUID}"
537
+ comment="Stores your unique customer identifier to personalize your shopping experience and remember your preferences"
538
+ secure="on"
539
+ />
540
+
541
+ <!-- Less helpful: Vague comment -->
542
+ <iscookie
543
+ name="UserID"
544
+ value="${customer.UUID}"
545
+ comment="User data"
546
+ />
547
+ ```
548
+
549
+ ### Use Specific Paths When Possible
550
+
551
+ ```isml
552
+ <!-- Good: Restrict cookie to specific path -->
553
+ <iscookie
554
+ name="checkoutToken"
555
+ value="${token}"
556
+ path="/checkout"
557
+ maxAge="1800"
558
+ secure="on"
559
+ />
560
+
561
+ <!-- Less secure: Site-wide access when not needed -->
562
+ <iscookie
563
+ name="checkoutToken"
564
+ value="${token}"
565
+ path="/"
566
+ maxAge="1800"
567
+ secure="on"
568
+ />
569
+ ```
570
+
571
+ ### Never Store Passwords
572
+
573
+ ```isml
574
+ <!-- NEVER DO THIS -->
575
+ <iscookie
576
+ name="password"
577
+ value="${customer.password}" <!-- NEVER STORE PASSWORDS -->
578
+ secure="on"
579
+ />
580
+
581
+ <!-- Instead: Use tokens -->
582
+ <iscookie
583
+ name="authToken"
584
+ value="${generateSecureToken(customer)}"
585
+ secure="on"
586
+ maxAge="3600"
587
+ />
588
+ ```
589
+
590
+ ## Privacy and Compliance
591
+
592
+ ### GDPR and Cookie Consent
593
+
594
+ For GDPR compliance, implement cookie consent management:
595
+
596
+ ```isml
597
+ <!-- Only set non-essential cookies after consent -->
598
+ <isif condition="${pdict.hasAnalyticsConsent}">
599
+ <iscookie
600
+ name="analyticsID"
601
+ value="${pdict.analyticsIdentifier}"
602
+ comment="Used to analyze site usage and improve your shopping experience"
603
+ maxAge="${90 * 24 * 60 * 60}"
604
+ secure="on"
605
+ />
606
+ </isif>
607
+
608
+ <!-- Essential cookies can be set without consent -->
609
+ <iscookie
610
+ name="sessionID"
611
+ value="${session.sessionID}"
612
+ comment="Essential for site functionality and security"
613
+ maxAge="-1"
614
+ secure="on"
615
+ />
616
+ ```
617
+
618
+ ### Cookie Categories
619
+
620
+ Implement different cookie types with appropriate consent:
621
+
622
+ ```isml
623
+ <!-- Essential Cookies (no consent required) -->
624
+ <iscookie name="sessionID" value="${session.ID}" maxAge="-1" secure="on"/>
625
+
626
+ <!-- Functional Cookies (consent recommended) -->
627
+ <isif condition="${pdict.functionalConsent}">
628
+ <iscookie name="preferences" value="${prefs}" maxAge="${90 * 24 * 60 * 60}" secure="on"/>
629
+ </isif>
630
+
631
+ <!-- Analytics Cookies (consent required) -->
632
+ <isif condition="${pdict.analyticsConsent}">
633
+ <iscookie name="analytics" value="${id}" maxAge="${90 * 24 * 60 * 60}" secure="on"/>
634
+ </isif>
635
+
636
+ <!-- Marketing Cookies (consent required) -->
637
+ <isif condition="${pdict.marketingConsent}">
638
+ <iscookie name="marketing" value="${id}" maxAge="${90 * 24 * 60 * 60}" secure="on"/>
639
+ </isif>
640
+ ```
641
+
642
+ ### Transparency Requirements
643
+
644
+ ```isml
645
+ <iscookie
646
+ name="UserTracking"
647
+ value="${trackingID}"
648
+ comment="This cookie tracks your browsing behavior to provide personalized product recommendations. You can opt out in your privacy settings."
649
+ maxAge="${30 * 24 * 60 * 60}"
650
+ secure="on"
651
+ />
652
+ ```
653
+
654
+ ## Performance Considerations
655
+
656
+ ### Cookie Size Limits
657
+
658
+ **Browser Limits:**
659
+ - Maximum cookie size: ~4KB per cookie
660
+ - Maximum cookies per domain: ~50-180 (varies by browser)
661
+ - Maximum total size: ~4KB * number of cookies
662
+
663
+ **Best Practices:**
664
+ - Keep cookie values small
665
+ - Don't store large objects in cookies
666
+ - Use server-side session storage for large data
667
+
668
+ ```isml
669
+ <!-- Bad: Storing large data in cookie -->
670
+ <iscookie
671
+ name="cartData"
672
+ value="${JSON.stringify(basket)}" <!-- Could exceed 4KB -->
673
+ />
674
+
675
+ <!-- Good: Store reference, keep data server-side -->
676
+ <iscookie
677
+ name="cartID"
678
+ value="${basket.UUID}" <!-- Small reference -->
679
+ secure="on"
680
+ />
681
+ ```
682
+
683
+ ### Minimize Cookie Count
684
+
685
+ ```isml
686
+ <!-- Less efficient: Multiple cookies -->
687
+ <iscookie name="language" value="${locale.language}"/>
688
+ <iscookie name="country" value="${locale.country}"/>
689
+ <iscookie name="currency" value="${currency}"/>
690
+
691
+ <!-- More efficient: Single cookie with JSON -->
692
+ <isscript>
693
+ var prefs = {
694
+ language: locale.language,
695
+ country: locale.country,
696
+ currency: currency
697
+ };
698
+ </isscript>
699
+ <iscookie name="preferences" value="${JSON.stringify(prefs)}"/>
700
+ ```
701
+
702
+ ## Troubleshooting
703
+
704
+ ### Cookie Not Being Set
705
+
706
+ **Problem:** Cookie doesn't appear in browser.
707
+
708
+ **Solution:**
709
+ 1. Check that both `name` and `value` are provided
710
+ 2. Verify cookie name doesn't start with `$`
711
+ 3. Ensure `<iscookie>` is executed (not inside false conditional)
712
+ 4. Check browser cookie settings aren't blocking cookies
713
+
714
+ ```isml
715
+ <!-- Verify execution -->
716
+ <iscomment>Cookie should be set here</iscomment>
717
+ <iscookie name="testCookie" value="testValue" maxAge="3600"/>
718
+ ```
719
+
720
+ ### Cookie Not Being Sent
721
+
722
+ **Problem:** Cookie exists but isn't sent with requests.
723
+
724
+ **Solution:**
725
+ 1. Check `domain` attribute matches request domain
726
+ 2. Verify `path` attribute includes request path
727
+ 3. Ensure cookie hasn't expired (`maxAge`)
728
+ 4. Check `secure` flag if using HTTP
729
+
730
+ ```isml
731
+ <!-- Check domain matches -->
732
+ <iscookie
733
+ name="UserID"
734
+ value="${id}"
735
+ domain=".yoursite.com" <!-- Must match request domain -->
736
+ path="/" <!-- Must include request path -->
737
+ />
738
+ ```
739
+
740
+ ### Secure Cookie on HTTP
741
+
742
+ **Problem:** Cookie with `secure="on"` not working on HTTP.
743
+
744
+ **Solution:** Secure cookies only work on HTTPS. Either:
745
+ - Use HTTPS
746
+ - Remove `secure="on"` for development (not recommended for production)
747
+
748
+ ```isml
749
+ <!-- Development: conditional secure flag -->
750
+ <isscript>
751
+ var isProduction = System.getInstanceType() === System.PRODUCTION_SYSTEM;
752
+ </isscript>
753
+
754
+ <iscookie
755
+ name="devCookie"
756
+ value="${value}"
757
+ secure="${isProduction ? 'on' : 'off'}"
758
+ />
759
+ ```
760
+
761
+ ### Cookie Deleted Unexpectedly
762
+
763
+ **Problem:** Cookie disappears before expected.
764
+
765
+ **Solution:**
766
+ 1. Check `maxAge` value is correct (remember it's in seconds)
767
+ 2. Verify another part of code isn't deleting it (`maxAge="0"`)
768
+ 3. Check browser settings for cookie retention
769
+
770
+ ```isml
771
+ <!-- Verify maxAge calculation -->
772
+ <isscript>
773
+ var thirtyDays = 30 * 24 * 60 * 60; // 2,592,000 seconds
774
+ </isscript>
775
+ <iscookie name="longLived" value="${value}" maxAge="${thirtyDays}"/>
776
+ ```
777
+
778
+ ## Related Elements and APIs
779
+
780
+ - **`request.httpCookies`**: Read cookies in ISML templates
781
+ - **`dw.web.Cookie`**: Programmatic cookie class
782
+ - **`dw.web.Cookies`**: Cookie collection class
783
+ - **`dw.system.Request`**: Request object with cookie access
784
+
785
+ ## Summary
786
+
787
+ The `<iscookie>` element is essential for:
788
+
789
+ - ✅ Storing user preferences and personalization data
790
+ - ✅ Managing session state for anonymous users
791
+ - ✅ Enabling "Remember Me" functionality
792
+ - ✅ Tracking consent and privacy preferences
793
+ - ✅ Supporting shopping cart persistence
794
+ - ✅ Automatic `SameSite` attribute management
795
+ - ✅ Security with `Secure` flag for HTTPS-only transmission
796
+ - ✅ Compliance with 6-month maximum lifetime regulation
797
+
798
+ Always prioritize security, privacy, and transparency when implementing cookies in your B2C Commerce storefront.