{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/public\/js\/adapters\/domAdapter.js"
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/public\/js\/adapters\/domAdapter.js",
"content": "\/**\n * DOM Adapter\n * Contract: js-browser-architecture-contract_v2.yaml\n *\n * Wraps all DOM access. Only adapters may access document\/window directly.\n *\/\n\nexport const domAdapter = {\n getElementById: (id) => document.getElementById(id),\n\n querySelector: (element, selector) => element.querySelector(selector),\n\n querySelectorAll: (element, selector) => element.querySelectorAll(selector),\n\n createElement: (tagName) => document.createElement(tagName),\n\n appendChild: (parent, child) => parent.appendChild(child),\n\n removeChild: (parent, child) => parent.removeChild(child),\n\n \/\/ nosemgrep: javascript.browser.security.insecure-document-method.insecure-document-method\n setInnerHTML: (element, html) => { element.innerHTML = html; },\n\n getInnerHTML: (element) => element.innerHTML,\n\n setAttribute: (element, name, value) => element.setAttribute(name, value),\n\n getAttribute: (element, name) => element.getAttribute(name),\n\n addClass: (element, className) => element.classList.add(className),\n\n removeClass: (element, className) => element.classList.remove(className),\n\n hasClass: (element, className) => element.classList.contains(className),\n\n setStyle: (element, property, value) => { element.style[property] = value; },\n\n getTextContent: (element) => element.textContent,\n\n setTextContent: (element, text) => { element.textContent = text; }\n};\n",
"numLines": 42,
"startLine": 1,
"totalLines": 42
}
}
}