@motifx/compiler 1.1.0 → 1.2.0-rc.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/htmlAtributes.ts","../src/constants.ts","../src/diagnostics.ts","../src/propBuilder.ts","../src/explain.ts","../src/motifParser.ts","../src/asyncTracking.ts","../src/elementTags.ts","../src/compiler.ts","../src/vitePlugin.ts","../src/lint.ts","../src/index.ts"],"sourcesContent":["export const htmlAttributes = new Map<string, boolean>();\r\nhtmlAttributes.set('accept', false);\r\nhtmlAttributes.set('bind', false);\r\nhtmlAttributes.set(\"accept-charset\", false);\r\nhtmlAttributes.set('accesskey', false);\r\nhtmlAttributes.set('action', false);\r\nhtmlAttributes.set('align', false);\r\nhtmlAttributes.set('allow', false);\r\nhtmlAttributes.set('alt', false);\r\nhtmlAttributes.set('async', false);\r\nhtmlAttributes.set('autocapitalize', false);\r\nhtmlAttributes.set('autofocus', false);\r\nhtmlAttributes.set('autoplay', false);\r\nhtmlAttributes.set('background', false);\r\nhtmlAttributes.set('bgcolor', false);\r\nhtmlAttributes.set('border', false);\r\nhtmlAttributes.set('buffered', false);\r\nhtmlAttributes.set('capture', false);\r\nhtmlAttributes.set('challenge', false);\r\nhtmlAttributes.set('charset', false);\r\nhtmlAttributes.set('checked', false);\r\nhtmlAttributes.set('cite', false);\r\nhtmlAttributes.set('class', false);\r\nhtmlAttributes.set('code', false);\r\nhtmlAttributes.set('codebase', false);\r\nhtmlAttributes.set('color', false);\r\nhtmlAttributes.set('cols', false);\r\nhtmlAttributes.set('colspan', false);\r\nhtmlAttributes.set('content', false);\r\nhtmlAttributes.set('contenteditable', false);\r\nhtmlAttributes.set('contextmenu', false);\r\nhtmlAttributes.set('controls', false);\r\nhtmlAttributes.set('coords', false);\r\nhtmlAttributes.set('crossorigin', false);\r\nhtmlAttributes.set('csp', false);\r\nhtmlAttributes.set('data', false);\r\nhtmlAttributes.set('data-*', false);\r\nhtmlAttributes.set('datetime', false);\r\nhtmlAttributes.set('decoding', false);\r\nhtmlAttributes.set('default', false);\r\nhtmlAttributes.set('defer', false);\r\nhtmlAttributes.set('dir', false);\r\nhtmlAttributes.set('dirname', false);\r\nhtmlAttributes.set('disabled', false);\r\nhtmlAttributes.set('download', false);\r\nhtmlAttributes.set('draggable', false);\r\nhtmlAttributes.set('enctype', false);\r\nhtmlAttributes.set('enterkeyhint', false);\r\nhtmlAttributes.set('for', false);\r\nhtmlAttributes.set('form', false);\r\nhtmlAttributes.set('formaction', false);\r\nhtmlAttributes.set('formenctype', false);\r\nhtmlAttributes.set('formmethod', false);\r\nhtmlAttributes.set('formnovalidate', false);\r\nhtmlAttributes.set('formtarget', false);\r\nhtmlAttributes.set('headers', false);\r\nhtmlAttributes.set('height', false);\r\nhtmlAttributes.set('hidden', false);\r\nhtmlAttributes.set('high', false);\r\nhtmlAttributes.set('href', false);\r\nhtmlAttributes.set('hreflang', false);\r\nhtmlAttributes.set('http-equiv', false);\r\nhtmlAttributes.set('icon', false);\r\nhtmlAttributes.set('id', false);\r\nhtmlAttributes.set('importance', false);\r\nhtmlAttributes.set('integrity', false);\r\nhtmlAttributes.set('intrinsicsize', false);\r\nhtmlAttributes.set('inputmode', false);\r\nhtmlAttributes.set('ismap', false);\r\nhtmlAttributes.set('itemprop', false);\r\nhtmlAttributes.set('keytype', false);\r\nhtmlAttributes.set('kind', false);\r\nhtmlAttributes.set('label', false);\r\nhtmlAttributes.set('lang', false);\r\nhtmlAttributes.set('language', false);\r\nhtmlAttributes.set('loading', false);\r\nhtmlAttributes.set('list', false);\r\nhtmlAttributes.set('loop', false);\r\nhtmlAttributes.set('low', false);\r\nhtmlAttributes.set('manifest', false);\r\nhtmlAttributes.set('max', false);\r\nhtmlAttributes.set('maxlength', false);\r\nhtmlAttributes.set('minlength', false);\r\nhtmlAttributes.set('media', false);\r\nhtmlAttributes.set('method', false);\r\nhtmlAttributes.set('min', false);\r\nhtmlAttributes.set('multiple', false);\r\nhtmlAttributes.set('muted', false);\r\nhtmlAttributes.set('name', false);\r\nhtmlAttributes.set('novalidate', false);\r\nhtmlAttributes.set('open', false);\r\nhtmlAttributes.set('optimum', false);\r\nhtmlAttributes.set('pattern', false);\r\nhtmlAttributes.set('ping', false);\r\nhtmlAttributes.set('placeholder', false);\r\nhtmlAttributes.set('poster', false);\r\nhtmlAttributes.set('preload', false);\r\nhtmlAttributes.set('radiogroup', false);\r\nhtmlAttributes.set('readonly', false);\r\nhtmlAttributes.set('referrerpolicy', false);\r\nhtmlAttributes.set('rel', false);\r\nhtmlAttributes.set('required', false);\r\nhtmlAttributes.set('reversed', false);\r\nhtmlAttributes.set('role', false);\r\nhtmlAttributes.set('rows', false);\r\nhtmlAttributes.set('rowspan', false);\r\nhtmlAttributes.set('sandbox', false);\r\nhtmlAttributes.set('scope', false);\r\nhtmlAttributes.set('scoped', false);\r\nhtmlAttributes.set('selected', false);\r\nhtmlAttributes.set('shape', false);\r\nhtmlAttributes.set('size', false);\r\nhtmlAttributes.set('sizes', false);\r\nhtmlAttributes.set('slot', false);\r\nhtmlAttributes.set('span', false);\r\nhtmlAttributes.set('spellcheck', false);\r\nhtmlAttributes.set('src', false);\r\nhtmlAttributes.set('srcdoc', false);\r\nhtmlAttributes.set('srclang', false);\r\nhtmlAttributes.set('srcset', false);\r\nhtmlAttributes.set('start', false);\r\nhtmlAttributes.set('step', false);\r\nhtmlAttributes.set('style', false);\r\nhtmlAttributes.set('summary', false);\r\nhtmlAttributes.set('tabindex', false);\r\nhtmlAttributes.set('target', false);\r\nhtmlAttributes.set('title', false);\r\nhtmlAttributes.set('translate', false);\r\nhtmlAttributes.set('type', false);\r\nhtmlAttributes.set('usemap', false);\r\nhtmlAttributes.set('value', false);\r\nhtmlAttributes.set('width', false);\r\nhtmlAttributes.set('wrap', false);\r\nhtmlAttributes.set('aria-readonly', true)\r\nhtmlAttributes.set('className', false)\r\n\r\n\r\n\r\nhtmlAttributes.set('xml:base', false)\r\nhtmlAttributes.set('xml:lang', false)\r\nhtmlAttributes.set('xml:space', false)\r\nhtmlAttributes.set('xmlns:xlink', false)\r\nhtmlAttributes.set('xmlns', false)\r\n\r\nhtmlAttributes.set('alignment-baseline', false);\r\nhtmlAttributes.set('baseline-shift', false);\r\nhtmlAttributes.set('clip', false);\r\nhtmlAttributes.set('clip-path', false);\r\nhtmlAttributes.set('clip-rule', false);\r\nhtmlAttributes.set('color', false);\r\nhtmlAttributes.set('color-interpolation', false);\r\nhtmlAttributes.set('color-interpolation-filters', false);\r\nhtmlAttributes.set('color-profile', false);\r\nhtmlAttributes.set('color-rendering', false);\r\nhtmlAttributes.set('cursor', false);\r\nhtmlAttributes.set('direction', false);\r\nhtmlAttributes.set('display', false);\r\nhtmlAttributes.set('dominant-baseline', false);\r\nhtmlAttributes.set('enable-background', false);\r\nhtmlAttributes.set('fill', false);\r\nhtmlAttributes.set('fill-opacity', false);\r\nhtmlAttributes.set('fill-rule', false);\r\nhtmlAttributes.set('filter', false);\r\nhtmlAttributes.set('flood-color', false);\r\nhtmlAttributes.set('flood-opacity', false);\r\nhtmlAttributes.set('font-family', false);\r\nhtmlAttributes.set('font-size', false);\r\nhtmlAttributes.set('font-size-adjust', false);\r\nhtmlAttributes.set('font-stretch', false);\r\nhtmlAttributes.set('font-style', false);\r\nhtmlAttributes.set('font-variant', false);\r\nhtmlAttributes.set('font-weight', false);\r\nhtmlAttributes.set('glyph-orientation-horizontal', false);\r\nhtmlAttributes.set('glyph-orientation-vertical', false);\r\nhtmlAttributes.set('image-rendering', false);\r\nhtmlAttributes.set('kerning', false);\r\nhtmlAttributes.set('letter-spacing', false);\r\nhtmlAttributes.set('lighting-color', false);\r\nhtmlAttributes.set('marker-end', false);\r\nhtmlAttributes.set('marker-mid', false);\r\nhtmlAttributes.set('marker-start', false);\r\nhtmlAttributes.set('mask', false);\r\nhtmlAttributes.set('opacity', false);\r\nhtmlAttributes.set('overflow', false);\r\nhtmlAttributes.set('pointer-events', false);\r\nhtmlAttributes.set('shape-rendering', false);\r\nhtmlAttributes.set('stop-color', false);\r\nhtmlAttributes.set('stop-opacity', false);\r\nhtmlAttributes.set('stroke', false);\r\nhtmlAttributes.set('stroke-dasharray', false);\r\nhtmlAttributes.set('stroke-dashoffset', false);\r\nhtmlAttributes.set('stroke-linecap', false);\r\nhtmlAttributes.set('stroke-linejoin', false);\r\nhtmlAttributes.set('stroke-miterlimit', false);\r\nhtmlAttributes.set('stroke-opacity', false);\r\nhtmlAttributes.set('stroke-width', false);\r\nhtmlAttributes.set('text-anchor', false);\r\nhtmlAttributes.set('text-decoration', false);\r\nhtmlAttributes.set('text-rendering', false);\r\nhtmlAttributes.set('transform', false);\r\nhtmlAttributes.set('transform-origin', false);\r\nhtmlAttributes.set('unicode-bidi', false);\r\nhtmlAttributes.set('vector-effect', false);\r\nhtmlAttributes.set('visibility', false);\r\nhtmlAttributes.set('word-spacing', false);\r\nhtmlAttributes.set('writing-mode', false);\r\n\r\nhtmlAttributes.set('x1', false);\r\nhtmlAttributes.set('x2', false);\r\nhtmlAttributes.set('y1', false);\r\nhtmlAttributes.set('y2', false);\r\nhtmlAttributes.set('offset', false);\r\nhtmlAttributes.set('d', false);\r\nhtmlAttributes.set('preserveaspectratio', false);\r\nhtmlAttributes.set('viewbox', false);\r\nhtmlAttributes.set('viewBox', false);\r\n\r\n\r\nexport const htmlEvents = new Map<string, boolean>();\r\n\r\nhtmlEvents.set(\"onafterprint\", false);\r\nhtmlEvents.set(\"onbeforeprint\", false);\r\nhtmlEvents.set(\"onbeforeunload\", false);\r\nhtmlEvents.set(\"onerror\", false);\r\nhtmlEvents.set(\"onhashchange\", false);\r\nhtmlEvents.set(\"onload\", false);\r\nhtmlEvents.set(\"onmessage\", false);\r\nhtmlEvents.set(\"onoffline\", false);\r\nhtmlEvents.set(\"ononline\", false);\r\nhtmlEvents.set(\"onpagehide\", false);\r\nhtmlEvents.set(\"onpageshow\", false);\r\nhtmlEvents.set(\"onpopstate\", false);\r\nhtmlEvents.set(\"onresize\", false);\r\nhtmlEvents.set(\"onstorage\", false);\r\nhtmlEvents.set(\"onunload\", false);\r\nhtmlEvents.set(\"onblur\", false);\r\nhtmlEvents.set(\"onchange\", false);\r\nhtmlEvents.set(\"oncontextmenu\", false);\r\nhtmlEvents.set(\"onfocus\", false);\r\nhtmlEvents.set(\"oninput\", false);\r\nhtmlEvents.set(\"oninvalid\", false);\r\nhtmlEvents.set(\"onreset\", false);\r\nhtmlEvents.set(\"onsearch\", false);\r\nhtmlEvents.set(\"onselect\", false);\r\nhtmlEvents.set(\"onsubmit\", false);\r\nhtmlEvents.set(\"onkeydown\", false);\r\nhtmlEvents.set(\"onkeypress\", false);\r\nhtmlEvents.set(\"onkeyup\", false);\r\nhtmlEvents.set(\"onclick\", false);\r\nhtmlEvents.set(\"ondblclick\", false);\r\nhtmlEvents.set(\"onmousedown\", false);\r\nhtmlEvents.set(\"onmousemove\", false);\r\nhtmlEvents.set(\"onmouseout\", false);\r\nhtmlEvents.set(\"onmouseover\", false);\r\nhtmlEvents.set(\"onmouseup\", false);\r\nhtmlEvents.set(\"onmousewheel\", false);\r\nhtmlEvents.set(\"onwheel\", false);\r\nhtmlEvents.set(\"ondrag\", false);\r\nhtmlEvents.set(\"ondragend\", false);\r\nhtmlEvents.set(\"ondragenter\", false);\r\nhtmlEvents.set(\"ondragleave\", false);\r\nhtmlEvents.set(\"ondragover\", false);\r\nhtmlEvents.set(\"ondragstart\", false);\r\nhtmlEvents.set(\"ondrop\", false);\r\nhtmlEvents.set(\"onscroll\", false);\r\nhtmlEvents.set(\"oncopy\", false);\r\nhtmlEvents.set(\"oncut\", false);\r\nhtmlEvents.set(\"onpaste\", false);\r\nhtmlEvents.set(\"onabort\", false);\r\nhtmlEvents.set(\"oncanplay\", false);\r\nhtmlEvents.set(\"oncanplaythrough\", false);\r\nhtmlEvents.set(\"oncuechange\", false);\r\nhtmlEvents.set(\"ondurationchange\", false);\r\nhtmlEvents.set(\"onemptied\", false);\r\nhtmlEvents.set(\"onended\", false);\r\nhtmlEvents.set(\"onerror\", false);\r\nhtmlEvents.set(\"onloadeddata\", false);\r\nhtmlEvents.set(\"onloadedmetadata\", false);\r\nhtmlEvents.set(\"onloadstart\", false);\r\nhtmlEvents.set(\"onpause\", false);\r\nhtmlEvents.set(\"onplay\", false);\r\nhtmlEvents.set(\"onplaying\", false);\r\nhtmlEvents.set(\"onprogress\", false);\r\nhtmlEvents.set(\"onratechange\", false);\r\nhtmlEvents.set(\"onseeked\", false);\r\nhtmlEvents.set(\"onseeking\", false);\r\nhtmlEvents.set(\"onstalled\", false);\r\nhtmlEvents.set(\"onsuspend\", false);\r\nhtmlEvents.set(\"ontimeupdate\", false);\r\nhtmlEvents.set(\"onvolumechange\", false);\r\nhtmlEvents.set(\"onwaiting\", false);\r\nhtmlEvents.set(\"ontoggle\", false);\r\n\r\nvar types = [\r\n ':once',\r\n ':once:passive',\r\n ':once:passive:prevent',\r\n ':once:passive:stop',\r\n ':once:passive:trusted',\r\n ':once:passive:capture',\r\n ':once:passive:self',\r\n ':once:prevent',\r\n ':once:prevent:stop',\r\n ':once:prevent:trusted',\r\n ':once:prevent:trusted:capture',\r\n ':once:prevent:trusted:self',\r\n ':once:stop',\r\n ':once:stop:trusted',\r\n ':once:stop:capture',\r\n ':once:stop:self',\r\n ':once:trusted',\r\n ':once:trusted:capture',\r\n ':once:trusted:self',\r\n ':passive',\r\n ':passive:prevent',\r\n ':passive:prevent:stop',\r\n ':passive:prevent:trusted',\r\n ':passive:prevent:capture',\r\n ':passive:prevent:self',\r\n ':passive:stop',\r\n ':passive:stop:trusted',\r\n ':passive:stop:capture',\r\n ':passive:stop:self',\r\n ':passive:trusted',\r\n ':passive:trusted:capture',\r\n ':passive:trusted:self',\r\n ':passive:capture',\r\n ':passive:capture:self',\r\n ':passive:self',\r\n ':prevent',\r\n ':prevent:stop',\r\n ':prevent:trusted',\r\n ':prevent:capture',\r\n ':prevent:self',\r\n ':stop',\r\n ':stop:trusted',\r\n ':stop:capture',\r\n ':stop:self',\r\n ':trusted',\r\n ':trusted:capture',\r\n ':trusted:self',\r\n ':capture',\r\n ':capture:self',\r\n ':self'\r\n];\r\ntypes.forEach(element => {\r\n\r\n htmlEvents.set(`onafterprint${element}`, false);\r\n htmlEvents.set(`onbeforeprint${element}`, false);\r\n htmlEvents.set(`onbeforeunload${element}`, false);\r\n htmlEvents.set(`onerror${element}`, false);\r\n htmlEvents.set(`onhashchange${element}`, false);\r\n htmlEvents.set(`onload${element}`, false);\r\n htmlEvents.set(`onmessage${element}`, false);\r\n htmlEvents.set(`onoffline${element}`, false);\r\n htmlEvents.set(`ononline${element}`, false);\r\n htmlEvents.set(`onpagehide${element}`, false);\r\n htmlEvents.set(`onpageshow${element}`, false);\r\n htmlEvents.set(`onpopstate${element}`, false);\r\n htmlEvents.set(`onresize${element}`, false);\r\n htmlEvents.set(`onstorage${element}`, false);\r\n htmlEvents.set(`onunload${element}`, false);\r\n htmlEvents.set(`onblur${element}`, false);\r\n htmlEvents.set(`onchange${element}`, false);\r\n htmlEvents.set(`oncontextmenu${element}`, false);\r\n htmlEvents.set(`onfocus${element}`, false);\r\n htmlEvents.set(`oninput${element}`, false);\r\n htmlEvents.set(`oninvalid${element}`, false);\r\n htmlEvents.set(`onreset${element}`, false);\r\n htmlEvents.set(`onsearch${element}`, false);\r\n htmlEvents.set(`onselect${element}`, false);\r\n htmlEvents.set(`onsubmit${element}`, false);\r\n htmlEvents.set(`onkeydown${element}`, false);\r\n htmlEvents.set(`onkeypress${element}`, false);\r\n htmlEvents.set(`onkeyup${element}`, false);\r\n htmlEvents.set(`onclick${element}`, false);\r\n htmlEvents.set(`ondblclick${element}`, false);\r\n htmlEvents.set(`onmousedown${element}`, false);\r\n htmlEvents.set(`onmousemove${element}`, false);\r\n htmlEvents.set(`onmouseout${element}`, false);\r\n htmlEvents.set(`onmouseover${element}`, false);\r\n htmlEvents.set(`onmouseup${element}`, false);\r\n htmlEvents.set(`onmousewheel${element}`, false);\r\n htmlEvents.set(`onwheel${element}`, false);\r\n htmlEvents.set(`ondrag${element}`, false);\r\n htmlEvents.set(`ondragend${element}`, false);\r\n htmlEvents.set(`ondragenter${element}`, false);\r\n htmlEvents.set(`ondragleave${element}`, false);\r\n htmlEvents.set(`ondragover${element}`, false);\r\n htmlEvents.set(`ondragstart${element}`, false);\r\n htmlEvents.set(`ondrop${element}`, false);\r\n htmlEvents.set(`onscroll${element}`, false);\r\n htmlEvents.set(`oncopy${element}`, false);\r\n htmlEvents.set(`oncut${element}`, false);\r\n htmlEvents.set(`onpaste${element}`, false);\r\n htmlEvents.set(`onabort${element}`, false);\r\n htmlEvents.set(`oncanplay${element}`, false);\r\n htmlEvents.set(`oncanplaythrough${element}`, false);\r\n htmlEvents.set(`oncuechange${element}`, false);\r\n htmlEvents.set(`ondurationchange${element}`, false);\r\n htmlEvents.set(`onemptied${element}`, false);\r\n htmlEvents.set(`onended${element}`, false);\r\n htmlEvents.set(`onerror${element}`, false);\r\n htmlEvents.set(`onloadeddata${element}`, false);\r\n htmlEvents.set(`onloadedmetadata${element}`, false);\r\n htmlEvents.set(`onloadstart${element}`, false);\r\n htmlEvents.set(`onpause${element}`, false);\r\n htmlEvents.set(`onplay${element}`, false);\r\n htmlEvents.set(`onplaying${element}`, false);\r\n htmlEvents.set(`onprogress${element}`, false);\r\n htmlEvents.set(`onratechange${element}`, false);\r\n htmlEvents.set(`onseeked${element}`, false);\r\n htmlEvents.set(`onseeking${element}`, false);\r\n htmlEvents.set(`onstalled${element}`, false);\r\n htmlEvents.set(`onsuspend${element}`, false);\r\n htmlEvents.set(`ontimeupdate${element}`, false);\r\n htmlEvents.set(`onvolumechange${element}`, false);\r\n htmlEvents.set(`onwaiting${element}`, false);\r\n htmlEvents.set(`ontoggle${element}`, false);\r\n}); ","import * as BabelCore from '@babel/core';\r\nexport const motifComponent = () => { return \"_mc\" }\r\nexport const motifFragment = () => { return \"_mf\" }\r\nexport const motifFunctionComponent = () => { return \"_mfc\" }\r\nexport const motifCompiled = () => { return \"_mv\" }\r\nexport const COMPILER_CONTRACT = 1;\r\n\r\nexport type State = {\r\n get: (name: string) => any;\r\n set: (name: string, value: any) => any; \r\n file: BabelCore.BabelFile\r\n};\r","import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\n\n\nexport interface MotifDiagnostic {\n code: string;\n message: string;\n file: string;\n line: number | null;\n frame?: string;\n}\n\nlet active: MotifDiagnostic[] | null = null;\nlet seen: Set<string> | null = null;\n\nexport function beginCollect(): void {\n active = [];\n seen = new Set();\n}\n\nexport function endCollect(): MotifDiagnostic[] {\n const out = active ?? [];\n active = null;\n seen = null;\n return out;\n}\n\n/** Uyarıları terminale yazar. Vite/Rollup eklentileri derleme sonunda çağırır. */\nexport function printDiagnostics(list: MotifDiagnostic[]): void {\n for (const d of list) {\n const where = d.line === null ? d.file : `${d.file}:${d.line}`;\n console.warn(`[motifjs] ${d.code}: ${d.message}\\n ${where}${d.frame ? '\\n' + d.frame : ''}`);\n }\n}\n\nexport function fail(code: string, message: string, path: NodePath<t.Node>): never {\n const error = path.buildCodeFrameError(`[motifjs] ${code}: ${message}`) as Error & { code?: string };\n error.code = code;\n throw error;\n}\n\nexport function warn(code: string, message: string, path: NodePath<t.Node> | null, filename: string): void {\n if (!active || !seen) return;\n const line = path?.node?.loc?.start?.line ?? null;\n const key = `${filename}:${line}:${code}`;\n if (seen.has(key)) return;\n seen.add(key);\n\n let frame: string | undefined;\n try {\n frame = path ? (path.buildCodeFrameError('') as Error).message.replace(/^[^\\n]*\\n/, '') : undefined;\n if (frame !== undefined && frame.trim() === '') frame = undefined;\n } catch { frame = undefined; }\n\n active.push({ code, message, file: filename, line, frame });\n}","import * as t from '@babel/types';\r\nimport { NodePath } from '@babel/traverse';\r\n\r\nimport { motifComponent, State } from './constants';\r\nimport { fail } from './diagnostics';\r\n\r\nexport const makeHtmlAttr = (prop: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>,\r\n name: string,\r\n value: t.Expression | t.ObjectMethod,\r\n path: NodePath<t.JSXElement>\r\n): t.ObjectProperty | null => {\r\n if (t.isStringLiteral(value) && value !== null) {\r\n return t.objectProperty(t.stringLiteral(name), value);\r\n } else if (t.isBooleanLiteral(value)) {\r\n return t.objectProperty(t.stringLiteral(name), value || t.booleanLiteral(true));\r\n } else if (t.isArrowFunctionExpression(value) && value !== null) {\r\n var el;\r\n if (t.isBlockStatement(value.body)) {\r\n el = t.functionExpression(null, value.params, value.body);\r\n } else {\r\n el = t.functionExpression(null, value.params, t.blockStatement([t.returnStatement(value.body)]));\r\n }\r\n return t.objectProperty(t.stringLiteral(name), value);\r\n } else if (t.isFunctionExpression(value)) {\r\n return t.objectProperty(t.stringLiteral(name), value);\r\n } else {\r\n if (value != null) {\r\n if (t.isCallExpression(value) && t.isIdentifier(value.callee)) {\r\n if (value.callee.name !== 'motifComponent' && value.callee.name !== motifComponent()) {\r\n return t.objectProperty(t.stringLiteral(name), value);\r\n }\r\n } else if (t.isIdentifier(value)) {\r\n return t.objectProperty(t.stringLiteral(name), value);\r\n\r\n } else if (t.isUnaryExpression(value) && !t.isLiteral(value.argument)) {\r\n return t.objectProperty(t.stringLiteral(name), t.arrowFunctionExpression([], value));\r\n } else if (t.isExpression(value)) {\r\n return t.objectProperty(t.stringLiteral(name), returnIfStatement(value, false));\r\n }\r\n }\r\n\r\n }\r\n return null;\r\n}\r\n\r\nfunction isStringLike(node: t.Node): node is t.StringLiteral | t.TemplateLiteral {\r\n return t.isStringLiteral(node) || t.isTemplateLiteral(node);\r\n}\r\n\r\nfunction extractStringValue(node: t.StringLiteral | t.TemplateLiteral): string {\r\n if (t.isStringLiteral(node)) return node.value;\r\n return node.quasis.map(q => q.value.raw).join('${}');\r\n}\r\n\r\n\r\nexport const mergeHtmlAttributes = (htmlAttrlist: t.ObjectProperty[]): t.ExpressionStatement[] => {\r\n const htmlProps: t.ExpressionStatement[] = [];\r\n if (htmlAttrlist.length > 0) {\r\n var totalAttr: t.ObjectProperty[] = [];\r\n var totalClass: t.ObjectProperty[] = [];\r\n var totalBindClass: t.Expression[] = [];\r\n var totalStringClass: t.Expression[] = [];\r\n htmlAttrlist.forEach(attr => {\r\n if (t.isStringLiteral(attr.key) || t.isTemplateLiteral(attr.key)) {\r\n const keyValue = t.isStringLiteral(attr.key)\r\n ? attr.key.value.toLowerCase()\r\n : attr.key.quasis.map(q => q.value.raw).join(\"\").toLowerCase();\r\n\r\n if (keyValue === \"class\" || keyValue === \"classname\") {\r\n if (t.isObjectExpression(attr.value)) {\r\n const objectProperties: t.ObjectProperty[] = [];\r\n\r\n attr.value.properties.forEach(p => {\r\n if (t.isObjectProperty(p)) {\r\n const val = p.value;\r\n\r\n if (t.isStringLiteral(val)) {\r\n totalStringClass.push(p.key as t.StringLiteral);\r\n } else if (t.isBooleanLiteral(val)) {\r\n totalStringClass.push(p.key as t.StringLiteral);\r\n } else if (t.isFunctionExpression(val) || t.isArrowFunctionExpression(val)) {\r\n objectProperties.push(p);\r\n } else if (t.isTemplateLiteral(val)) {\r\n if (val.expressions.length === 0) {\r\n totalStringClass.push(\r\n t.stringLiteral(val.quasis.map(q => q.value.raw).join(\"\"))\r\n );\r\n } else {\r\n totalBindClass.push(t.arrowFunctionExpression([], val));\r\n }\r\n } else {\r\n totalClass.push(p);\r\n }\r\n } else if (t.isFunctionExpression(p) || t.isArrowFunctionExpression(p)) {\r\n totalBindClass.push(p);\r\n }\r\n });\r\n\r\n if (objectProperties.length > 0) {\r\n totalBindClass.push(t.objectExpression(objectProperties));\r\n }\r\n } else if (t.isMemberExpression(attr.value) || t.isCallExpression(attr.value)) {\r\n totalBindClass.push(attr.value);\r\n } else if (t.isFunctionExpression(attr.value) || t.isArrowFunctionExpression(attr.value)) {\r\n totalBindClass.push(attr.value);\r\n } else if (t.isIdentifier(attr.value)) {\r\n totalBindClass.push(attr.value);\r\n } else if (t.isStringLiteral(attr.value)) {\r\n totalStringClass.push(t.stringLiteral(attr.value.value));\r\n } else if (t.isTemplateLiteral(attr.value)) {\r\n if (attr.value.expressions.length === 0) {\r\n totalStringClass.push(\r\n t.stringLiteral(attr.value.quasis.map(q => q.value.raw).join(\"\"))\r\n );\r\n } else {\r\n totalBindClass.push(t.arrowFunctionExpression([], attr.value));\r\n }\r\n } else if (t.isArrayExpression(attr.value)) {\r\n attr.value.elements.forEach(element => {\r\n if (!element) return;\r\n\r\n if (t.isObjectExpression(element)) {\r\n element.properties.forEach(p => {\r\n if (t.isObjectProperty(p)) {\r\n const val = p.value;\r\n if (t.isStringLiteral(val)) {\r\n totalStringClass.push(p.key as t.StringLiteral);\r\n } else if (t.isBooleanLiteral(val)) {\r\n totalStringClass.push(p.key as t.StringLiteral);\r\n } else if (t.isFunctionExpression(val) || t.isArrowFunctionExpression(val)) {\r\n totalBindClass.push(val);\r\n } else if (t.isTemplateLiteral(val)) {\r\n if (val.expressions.length === 0) {\r\n totalStringClass.push(\r\n t.stringLiteral(val.quasis.map(q => q.value.raw).join(\"\"))\r\n );\r\n } else {\r\n totalBindClass.push(t.arrowFunctionExpression([], val));\r\n }\r\n } else {\r\n totalClass.push(p);\r\n }\r\n } else if (t.isFunctionExpression(p) || t.isArrowFunctionExpression(p)) {\r\n totalBindClass.push(p);\r\n }\r\n });\r\n } else if (t.isStringLiteral(element)) {\r\n totalStringClass.push(element);\r\n } else if (t.isTemplateLiteral(element)) {\r\n if (element.expressions.length === 0) {\r\n totalStringClass.push(\r\n t.stringLiteral(element.quasis.map(q => q.value.raw).join(\"\"))\r\n );\r\n } else {\r\n totalBindClass.push(t.arrowFunctionExpression([], element));\r\n }\r\n } else if (t.isFunctionExpression(element) || t.isArrowFunctionExpression(element)) {\r\n totalBindClass.push(element);\r\n }\r\n });\r\n }\r\n } else if (keyValue === \"style\") {\r\n if (t.isObjectExpression(attr.value)) {\r\n htmlProps.push(\r\n t.expressionStatement(\r\n t.callExpression(t.identifier(\"sender.style\"), [attr.value])\r\n )\r\n );\r\n } else if (t.isStringLiteral(attr.value)) {\r\n htmlProps.push(\r\n t.expressionStatement(\r\n t.callExpression(t.identifier(\"sender.style\"), [attr.value])\r\n )\r\n );\r\n } else if (t.isTemplateLiteral(attr.value)) {\r\n if (attr.value.expressions.length === 0) {\r\n htmlProps.push(\r\n t.expressionStatement(\r\n t.callExpression(\r\n t.identifier(\"sender.style\"),\r\n [t.stringLiteral(attr.value.quasis.map(q => q.value.raw).join(\"\"))]\r\n )\r\n )\r\n );\r\n } else {\r\n htmlProps.push(\r\n t.expressionStatement(\r\n t.callExpression(\r\n t.identifier(\"sender.style\"),\r\n [t.arrowFunctionExpression([], attr.value)]\r\n )\r\n )\r\n );\r\n }\r\n } else if (t.isExpression(attr.value)) {\r\n htmlProps.push(\r\n t.expressionStatement(\r\n t.callExpression(t.identifier(\"sender.style\"), [attr.value])\r\n )\r\n );\r\n }\r\n } else if (keyValue === 'checked' || keyValue === 'value' || keyValue === 'selected') {\r\n const val = attr.value;\r\n if (t.isArrowFunctionExpression(val) || t.isExpression(val)) {\r\n htmlProps.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.add'), [t.stringLiteral(keyValue), val])));\r\n }\r\n\r\n } else {\r\n let keyName: t.StringLiteral;\r\n\r\n if (t.isStringLiteral(attr.key)) {\r\n keyName = t.stringLiteral(attr.key.value);\r\n } else if (t.isTemplateLiteral(attr.key)) {\r\n keyName = t.stringLiteral(attr.key.quasis.map(q => q.value.raw).join(\"\"));\r\n } else {\r\n keyName = t.stringLiteral(\"unknown\");\r\n }\r\n\r\n let valueExpr: t.Expression;\r\n const val = attr.value;\r\n\r\n if (t.isStringLiteral(val)) {\r\n valueExpr = val;\r\n } else if (t.isTemplateLiteral(val)) {\r\n valueExpr =\r\n val.expressions.length === 0\r\n ? t.stringLiteral(val.quasis.map(q => q.value.raw).join(\"\"))\r\n : t.arrowFunctionExpression([], val);\r\n } else if (\r\n t.isObjectExpression(val) ||\r\n t.isCallExpression(val) ||\r\n t.isArrowFunctionExpression(val) ||\r\n t.isMemberExpression(val) ||\r\n t.isIdentifier(val)\r\n ) {\r\n valueExpr = val;\r\n } else if (t.isExpression(val)) {\r\n valueExpr = val;\r\n } else {\r\n valueExpr = t.stringLiteral(\"\");\r\n }\r\n\r\n totalAttr.push(t.objectProperty(keyName, valueExpr));\r\n }\r\n }\r\n })\r\n\r\n\r\n if (totalAttr.length > 0) {\r\n htmlProps.push(t.expressionStatement(t.callExpression(t.identifier('sender.attr.add'), [t.objectExpression(totalAttr)])));\r\n }\r\n if (totalBindClass.length > 0) {\r\n htmlProps.push(t.expressionStatement(t.callExpression(t.identifier('sender.class.add'), [t.arrayExpression(totalBindClass)])));\r\n }\r\n if (totalClass.length > 0) {\r\n htmlProps.push(t.expressionStatement(t.callExpression(t.identifier('sender.class.add'), [t.objectExpression(totalClass)])));\r\n }\r\n if (totalStringClass.length > 0) {\r\n htmlProps.push(t.expressionStatement(t.callExpression(t.identifier('sender.class.add'), [...totalStringClass])));\r\n }\r\n }\r\n\r\n return htmlProps;\r\n}\r\n\r\nexport const makeHtmlEvents = (prop: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>,\r\n name: string,\r\n value: t.Expression | t.ObjectMethod,\r\n path: NodePath<t.JSXElement>\r\n): t.CallExpression | null => {\r\n if (!t.isStringLiteral(value) && !t.isBooleanLiteral(value) && value !== null) {\r\n if (t.isArrowFunctionExpression(value)) {\r\n var el;\r\n if (t.isBlockStatement(value.body)) {\r\n el = t.arrowFunctionExpression(value.params, value.body);\r\n } else {\r\n el = t.arrowFunctionExpression(value.params, t.blockStatement([t.returnStatement(value.body)]));\r\n }\r\n var evName = name.toLowerCase().replace(\"on\", '').replace('doubleclick', 'dblclick');\r\n\r\n return t.callExpression(t.identifier(\"sender.motif.on\"), [t.stringLiteral(evName), el]);\r\n } else if (t.isFunctionExpression(value)) {\r\n var el;\r\n if (t.isBlockStatement(value.body)) {\r\n el = t.functionExpression(null, value.params, value.body);\r\n } else {\r\n el = t.functionExpression(null, value.params, t.blockStatement([t.returnStatement(value.body)]));\r\n }\r\n var evName = name.toLowerCase().replace(\"on\", '').replace('doubleclick', 'dblclick');\r\n\r\n return t.callExpression(t.identifier(\"sender.motif.on\"), [t.stringLiteral(evName), el]);\r\n }\r\n else {\r\n if (t.isExpression(value)) {\r\n var evName = name.toLowerCase().replace(\"on\", '').replace('doubleclick', 'dblclick');\r\n return t.callExpression(t.identifier(\"sender.motif.on\"), [t.stringLiteral(evName), value]);\r\n }\r\n\r\n }\r\n } else {\r\n fail('MJX009', `Event handler \"${name}\" must be a function; string and boolean values are not allowed.`, prop);\r\n }\r\n return null;\r\n}\r\n\r\nexport const makeGlobalEvents = (prop: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>,\r\n name: string,\r\n value: t.Expression | t.ObjectMethod,\r\n path: NodePath<t.JSXElement>\r\n): t.CallExpression | null => {\r\n if (!t.isStringLiteral(value) && !t.isBooleanLiteral(value) && value !== null) {\r\n if (t.isArrowFunctionExpression(value)) {\r\n var el;\r\n if (t.isBlockStatement(value.body)) {\r\n el = t.functionExpression(null, value.params, value.body);\r\n } else {\r\n el = t.functionExpression(null, value.params, t.blockStatement([t.returnStatement(value.body)]));\r\n }\r\n var evName = name.toLowerCase().replace(\"on-\", '').replace('on:', '').replace('on_', '');\r\n\r\n return t.callExpression(t.identifier(\"sender.motif.on\"), [t.stringLiteral(evName), el]);\r\n } else {\r\n if (t.isExpression(value)) {\r\n var evName = name.toLowerCase().replace(\"on\", '').replace('doubleclick', 'dblclick');\r\n return t.callExpression(t.identifier(\"sender.motif.on\"), [t.stringLiteral(evName), value]);\r\n }\r\n\r\n }\r\n } else {\r\n fail('MJX009', `Event handler \"${name}\" must be a function; string and boolean values are not allowed.`, prop);\r\n }\r\n return null;\r\n}\r\n\r\nexport const makeComponentTraps = (prop: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>,\r\n name: string,\r\n value: t.Expression | t.ObjectMethod,\r\n path: NodePath<t.JSXElement>\r\n): t.ObjectProperty | null => {\r\n if (t.isFunctionExpression(value) ||\r\n t.isArrowFunctionExpression(value) && value !== null ||\r\n t.isObjectExpression(value) ||\r\n t.isMemberExpression(value) ||\r\n t.isObjectMethod(value) ||\r\n t.isIdentifier(value)) {\r\n\r\n if (t.isExpression(value)) {\r\n return t.objectProperty(t.identifier(name), value);\r\n } else {\r\n return null;\r\n }\r\n\r\n } else {\r\n fail('MJX010', `Lifecycle hook \"${name}\" must be a function, an object, or a reference to one.`, prop);\r\n return null;\r\n }\r\n}\r\n\r\n\r\nexport const SUPPORTED_DIRECTIVES = ['wait', 'display', 'model', 'text', 'html', 'value', 'watch'] as const;\r\nexport const UNSUPPORTED_DIRECTIVES = new Set(['reload', 'bind', 'effect', 'focus', 'interrupt', 'to', 'list', 'loop']);\r\nconst directiveNames = new Set<string>(SUPPORTED_DIRECTIVES);\r\n\r\nexport function supportedDirectivesText(): string {\r\n return [...SUPPORTED_DIRECTIVES, 'style', 'ref', 'key'].map(d => 'x-' + d).join(', ') + ' and the lifecycle hooks (x-mounted, x-built, x-disposed, …)';\r\n}\r\n\r\nconst ParentIfStatement = (path: t.Expression | t.BlockStatement, state: any[]): any[] => {\r\n if (t.isExpression(path)) {\r\n state.push(path)\r\n } else {\r\n\r\n }\r\n if (t.isFunctionExpression(path)) {\r\n state = ParentIfStatement(path.body, state);\r\n } else if (t.isArrowFunctionExpression(path)) {\r\n state = ParentIfStatement(path.body, state);\r\n } else if (t.isObjectExpression(path)) {\r\n\r\n } else if (t.isMemberExpression(path)) {\r\n\r\n state = ParentIfStatement(path.object, state);\r\n } else if (t.isObjectMethod(path)) {\r\n\r\n\r\n } else if (t.isIdentifier(path)) {\r\n\r\n } else if (t.isCallExpression(path)) {\r\n\r\n if (t.isExpression(path.callee)) {\r\n state = ParentIfStatement(path.callee, state);\r\n }\r\n } else {\r\n\r\n }\r\n\r\n return state;\r\n}\r\n\r\nexport const returnIfStatement = (value: any, enableDefaultreturn: boolean = true, defaultLiteral: any = t.booleanLiteral(false)): any => {\r\n var ifStatement = findIfStatements(value);\r\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', value), t.stringLiteral('function'));\r\n var rtrn;\r\n\r\n if (t.isLogicalExpression(value)) {\r\n rtrn = t.returnStatement(value);\r\n if (enableDefaultreturn) {\r\n return t.arrowFunctionExpression([], t.blockStatement([rtrn, t.returnStatement(defaultLiteral)]));\r\n } else {\r\n return t.arrowFunctionExpression([], t.blockStatement([rtrn]));\r\n }\r\n\r\n } else if (t.isMemberExpression(value) || t.isIdentifier(value)) {\r\n rtrn = t.returnStatement(value);\r\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\r\n if (enableDefaultreturn) {\r\n return t.arrowFunctionExpression([], t.blockStatement([rtrns, t.returnStatement(defaultLiteral)]));\r\n } else {\r\n return t.arrowFunctionExpression([], t.blockStatement([rtrns]));\r\n }\r\n\r\n } else if (t.isFunctionExpression(value)) {\r\n rtrn = t.returnStatement(value);\r\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\r\n if (enableDefaultreturn) {\r\n return t.arrowFunctionExpression([], t.blockStatement([rtrns, t.returnStatement(defaultLiteral)]));\r\n } else {\r\n return t.arrowFunctionExpression([], t.blockStatement([rtrns]));\r\n }\r\n return value;\r\n } else if (t.isBinaryExpression(value)) {\r\n var ifStatementA = findIfStatements(value.left as any);\r\n var ifStatementB = findIfStatements(value.right);\r\n var le = t.logicalExpression('&&', ifStatementA, ifStatementB);\r\n rtrn = t.returnStatement(value);\r\n if (enableDefaultreturn) {\r\n return t.arrowFunctionExpression([], t.blockStatement([t.ifStatement(le, t.blockStatement([rtrn])), t.returnStatement(defaultLiteral)]));\r\n } else {\r\n return t.arrowFunctionExpression([], t.blockStatement([t.ifStatement(le, t.blockStatement([rtrn]))]));\r\n }\r\n\r\n } else if (t.isCallExpression(value)) {\r\n\r\n rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(value, []), value));\r\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\r\n if (enableDefaultreturn) {\r\n return t.arrowFunctionExpression([], t.blockStatement([rtrns, t.returnStatement(defaultLiteral)]));\r\n } else {\r\n return t.arrowFunctionExpression([], t.blockStatement([rtrns]));\r\n }\r\n\r\n } else {\r\n return value;\r\n }\r\n\r\n\r\n}\r\nexport const findIfStatements = (value: t.Expression): any => {\r\n var ifs: any[] = [];\r\n if (t.isExpression(value)) {\r\n\r\n ifs = ParentIfStatement(value, ifs);\r\n }\r\n\r\n if (ifs.length == 1) {\r\n ifs[0] = t.logicalExpression('&&', t.binaryExpression('!==', ifs[0], t.nullLiteral()), t.binaryExpression('!==', ifs[0], t.identifier('undefined')))\r\n }\r\n\r\n const setRight = (l: t.Expression, x: t.Expression, current: number) => {\r\n if (t.isLogicalExpression(l) && t.isNullLiteral(l.right)) {\r\n l.right = x;\r\n } else {\r\n if (t.isLogicalExpression(l)) {\r\n setRight(l.right, x, current)\r\n }\r\n }\r\n }\r\n\r\n ifs.reverse();\r\n var ifStatement: t.LogicalExpression | t.Expression = null as any;\r\n var indexer = 0;\r\n\r\n if (ifs.length > 1) {\r\n ifs.forEach((ttt, index) => {\r\n if (!t.isArrowFunctionExpression(ttt) || !t.isFunctionExpression(ttt)) {\r\n if (ifStatement) {\r\n setRight(ifStatement, t.logicalExpression('&&', ttt, t.nullLiteral()), index)\r\n } else {\r\n ifStatement = t.logicalExpression('&&', ttt, t.nullLiteral());\r\n }\r\n } else {\r\n ifStatement = ttt;\r\n }\r\n })\r\n } else {\r\n ifStatement = ifs[0];\r\n }\r\n\r\n const latestRightFind = (x: t.LogicalExpression, p: t.LogicalExpression) => {\r\n if (t.isLogicalExpression(x)) {\r\n if (t.isNullLiteral(x.right)) {\r\n if (p === null) {\r\n x.right = x.left;\r\n } else {\r\n p.right = t.logicalExpression('&&', t.binaryExpression('!==', (x as t.LogicalExpression).left, t.nullLiteral()), t.binaryExpression('!==', (x as t.LogicalExpression).left, t.identifier('undefined')));\r\n }\r\n } else {\r\n\r\n latestRightFind(x.right as t.LogicalExpression, x)\r\n }\r\n }\r\n }\r\n\r\n if (ifStatement && t.isLogicalExpression(ifStatement)) {\r\n latestRightFind(ifStatement, null as any);\r\n if (t.isArrowFunctionExpression(ifStatement.right)) {\r\n {\r\n ifStatement = ifStatement.left;\r\n }\r\n }\r\n }\r\n\r\n return ifStatement;\r\n}\r\nexport const makeDirectives = (prop: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>,\r\n name: string,\r\n value: t.Expression | t.ObjectMethod,\r\n path: NodePath<t.JSXElement>,\r\n state: State\r\n): t.ExpressionStatement | null => {\r\n var result = null as any;\r\n if (value != null) {\r\n var clearedName = name.toLowerCase().replace(\"x:\", \"\").replace(\"x-\", \"\").replace(\"on:\", \"\");\r\n\r\n var callerName = `sender.bindings.${clearedName}`;\r\n if (directiveNames.has(clearedName)) {\r\n if (clearedName !== 'wait') {\r\n findIfStatements(value as any);\r\n\r\n if (t.isFunctionExpression(value) ||\r\n t.isArrowFunctionExpression(value) && value !== null ||\r\n t.isObjectExpression(value) ||\r\n t.isMemberExpression(value) ||\r\n t.isObjectMethod(value) ||\r\n t.isIdentifier(value) ||\r\n t.isCallExpression(value) && value !== null) {\r\n if (t.isFunctionExpression(value)) {\r\n result = t.expressionStatement(t.callExpression(t.identifier(callerName), [value]));\r\n } else if (t.isArrowFunctionExpression(value)) {\r\n var el;\r\n if (t.isBlockStatement(value.body)) {\r\n var kx = t.functionExpression(null, [], value.body);\r\n el = t.expressionStatement(t.callExpression(t.identifier(callerName), [kx]));\r\n } else {\r\n if (t.isStringLiteral(value.body)) {\r\n var rtrn = t.returnStatement(value.body);\r\n var kx = t.functionExpression(null, [], t.blockStatement([rtrn]));\r\n el = t.expressionStatement(t.callExpression(t.identifier(callerName), [kx]));\r\n } else {\r\n el = t.expressionStatement(t.callExpression(t.identifier(callerName), [returnIfStatement(value, false)]));\r\n }\r\n\r\n }\r\n result = el;\r\n\r\n } else {\r\n if (t.isExpression(value)) {\r\n result = t.expressionStatement(t.callExpression(t.identifier(callerName), [returnIfStatement(value, false)]));\r\n }\r\n }\r\n\r\n } else if (t.isBinaryExpression(value)) {\r\n result = t.expressionStatement(t.callExpression(t.identifier(callerName), [returnIfStatement(value, false, t.booleanLiteral(false))]));\r\n } else {\r\n fail('MJX011', `Directive \"${name}\" does not accept this value; pass a function, an object, or a reference to one.`, prop);\r\n }\r\n }\r\n }\r\n if (result && clearedName === 'model') {\r\n const setter = buildModelSetter(value, path);\r\n if (setter) (result.expression as t.CallExpression).arguments.push(setter);\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nfunction unwrapTypeWrappers(node: t.Node | null | undefined): t.Node | null | undefined {\r\n let current = node;\r\n while (current && (\r\n t.isTSNonNullExpression(current) ||\r\n t.isTSAsExpression(current) ||\r\n t.isTSSatisfiesExpression(current) ||\r\n t.isTSTypeAssertion(current) ||\r\n t.isTypeCastExpression(current) ||\r\n t.isParenthesizedExpression(current))) {\r\n current = current.expression;\r\n }\r\n return current;\r\n}\r\n\r\nexport function modelTargetOf(value: t.Node): t.MemberExpression | t.OptionalMemberExpression | null {\r\n let expression: t.Node | null | undefined = value;\r\n if (t.isArrowFunctionExpression(value)) {\r\n if (value.params.length > 0 || value.async) return null;\r\n if (t.isBlockStatement(value.body)) {\r\n const statements = value.body.body;\r\n if (statements.length !== 1 || !t.isReturnStatement(statements[0])) return null;\r\n expression = statements[0].argument;\r\n } else {\r\n expression = value.body;\r\n }\r\n }\r\n expression = unwrapTypeWrappers(expression);\r\n if (!expression) return null;\r\n if (!t.isMemberExpression(expression) && !t.isOptionalMemberExpression(expression)) return null;\r\n if (t.isPrivateName(expression.property) || t.isSuper(expression.object)) return null;\r\n return expression;\r\n}\r\n\r\nexport function buildModelSetter(value: t.Node, path: NodePath<t.JSXElement>): t.ArrowFunctionExpression | null {\r\n const target = modelTargetOf(value);\r\n if (!target) return null;\r\n const valueId = path.scope.generateUidIdentifier('value');\r\n const ownerId = path.scope.generateUidIdentifier('owner');\r\n const owner = t.cloneNode(target.object as t.Expression, true);\r\n const member = () => t.memberExpression(t.cloneNode(ownerId), t.cloneNode(target.property as t.Expression, true), target.computed);\r\n const ownerMissing = t.logicalExpression('||',\r\n t.binaryExpression('===', t.cloneNode(ownerId), t.nullLiteral()),\r\n t.binaryExpression('===', t.cloneNode(ownerId), t.identifier('undefined')));\r\n const holdsGetter = t.binaryExpression('===', t.unaryExpression('typeof', member()), t.stringLiteral('function'));\r\n return t.arrowFunctionExpression([valueId], t.blockStatement([\r\n t.variableDeclaration('const', [t.variableDeclarator(ownerId, owner)]),\r\n t.ifStatement(t.logicalExpression('||', ownerMissing, holdsGetter), t.returnStatement()),\r\n t.expressionStatement(t.assignmentExpression('=', member(), t.cloneNode(valueId)))\r\n ]));\r\n}\r\n\r\nexport const makePreDirectives = (prop: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>,\r\n name: string,\r\n value: t.Expression | t.ObjectMethod,\r\n path: NodePath<t.JSXElement>\r\n): t.ExpressionStatement | null => {\r\n var result = null as any;\r\n if (value != null) {\r\n var clearedName = name.toLowerCase().replace(\"x:\", \"\").replace(\"x-\", \"\").replace(\"on:\", \"\");\r\n var callerName = `sender.bindings.${clearedName}`;\r\n\r\n if (clearedName === 'wait' || clearedName === 'display') {\r\n if (t.isObjectExpression(value)) {\r\n fail('MJX012', `Directive \"${name}\" does not accept an object literal.`, prop);\r\n } else if (t.isExpression(value)) {\r\n result = t.expressionStatement(t.callExpression(t.identifier(callerName), [returnIfStatement(value, true, t.booleanLiteral(true))]));\r\n }\r\n } else {\r\n fail('MJX006', `Directive \"${name}\" is not supported. Supported: ${supportedDirectivesText()}.`, prop);\r\n }\r\n\r\n }\r\n return result;\r\n}","import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\nimport * as generatorNs from '@babel/generator';\n\n// CJS/ESM ikili paketlemede `default` bazen sarmalanır; iki biçimi de kabul et.\nconst generate: (node: any, opts?: any) => { code: string } =\n ((generatorNs as any).default?.default ?? (generatorNs as any).default ?? generatorNs) as any;\n\n\n/** İfadenin JSX içindeki konumu. */\nexport type ExplainSite =\n | 'child'\n | 'element'\n | 'attr'\n | 'prop'\n | 'event'\n | 'directive'\n | 'component-event'\n | 'key';\n\nexport type ExplainReactivity = 'live' | 'static' | 'once' | 'receiver' | 'runtime' | 'n/a';\n\nexport interface MotifExplanation {\n file: string;\n line: number | null;\n column: number | null;\n /** Konum türü. */\n site: ExplainSite;\n /** İfade şekli */\n shape: string;\n /** Kaynak parça (tek satıra indirgenmiş, kırpılmış). */\n source: string;\n /** İndiği çağrı — üretilmiş koddan alınır, tahmin değildir. */\n lowered: string;\n reactive: ExplainReactivity;\n /** Bağımlılık yüzeyi: hangi okumalar bu bağı yeniden tetikler. */\n deps: string;\n /** Serbest not (tuzak, sözleşme). */\n note?: string;\n}\n\nlet active: MotifExplanation[] | null = null;\n\nexport interface Origin { line: number | null; column: number | null; source: string }\n\n/** Üretilmiş düğüm → kaynak konumu. getChildren'da not edilir, emisyon noktasında okunur. */\nconst origins = new WeakMap<object, Origin>();\n\nexport function beginExplain(): void {\n active = [];\n}\n\nexport function endExplain(): MotifExplanation[] {\n const out = active ?? [];\n active = null;\n const key = (e: MotifExplanation) => (e.line ?? 1e9) * 10000 + (e.column ?? 0);\n return out.map((e, i) => ({ e, i })).sort((a, b) => key(a.e) - key(b.e) || a.i - b.i).map(x => x.e);\n}\n\nexport function isExplaining(): boolean {\n return active !== null;\n}\n\nconst MAX_SOURCE = 90;\nconst MAX_LOWERED = 220;\n\nfunction oneLine(s: string, max: number): string {\n const flat = s.replace(/\\s+/g, ' ').trim();\n return flat.length > max ? flat.slice(0, max - 1) + '…' : flat;\n}\n\n/** Kaynak parçayı orijinal koddan alır (`{…}` süslüleri dahil). JSX elemanında yalnızca açılış etiketi. */\nexport function sourceOf(path: NodePath<t.Node> | null, originalCode: string | undefined): string {\n let n: any = path?.node;\n if (n && t.isJSXElement(n)) n = n.openingElement;\n if (!n || typeof n.start !== 'number' || typeof n.end !== 'number' || !originalCode) return '';\n return oneLine(originalCode.slice(n.start, n.end), MAX_SOURCE);\n}\n\n/** Konumu ve kaynak parçayı ANINDA alır (yol daha sonra değişebilir). */\nexport function captureOrigin(path: NodePath<t.Node>, originalCode: string | undefined): Origin {\n return {\n line: path.node?.loc?.start?.line ?? null,\n column: path.node?.loc?.start?.column ?? null,\n source: sourceOf(path, originalCode),\n };\n}\n\n/** Üretilmiş bir düğümü tek satır koda çevirir. Yalnızca gösterim içindir. */\nexport function codeOf(node: t.Node | null | undefined): string {\n if (!node) return '';\n try {\n const out = generate(node as any, { concise: true, comments: false }).code;\n return oneLine(out.replace(/;$/, ''), MAX_LOWERED);\n } catch {\n return `<${(node as any).type}>`;\n }\n}\n\nexport function noteOrigin(node: unknown, path: NodePath<t.Node>, originalCode: string | undefined): void {\n if (!active || !node || typeof node !== 'object') return;\n if (origins.has(node as object)) return;\n origins.set(node as object, captureOrigin(path, originalCode));\n}\n\n/** Konumu önceden alınmış düğüm için (derleyicinin JSXElement exit'i). */\nexport function noteOriginRaw(node: unknown, origin: Origin): void {\n if (!active || !node || typeof node !== 'object') return;\n if (origins.has(node as object)) return;\n origins.set(node as object, origin);\n}\n\n/** `sender.repeater` → `_mc({initializeComponent: list})` gibi yeniden sarmalarda kaynağı taşır. */\nexport function transferOrigin(from: unknown, to: unknown): void {\n if (!active || !from || !to || typeof from !== 'object' || typeof to !== 'object') return;\n const o = origins.get(from as object);\n if (o) origins.set(to as object, o);\n}\n\nexport interface ExplainInput {\n site: ExplainSite;\n shape: string;\n lowered: t.Node | string | null | undefined;\n reactive: ExplainReactivity;\n deps: string;\n note?: string;\n}\n\n/** Konumu doğrudan bilinen kayıt (öznitelikler). */\nexport function explainAt(path: NodePath<t.Node> | null, filename: string, originalCode: string | undefined, e: ExplainInput): void {\n if (!active) return;\n active.push({\n file: filename,\n line: path?.node?.loc?.start?.line ?? null,\n column: path?.node?.loc?.start?.column ?? null,\n site: e.site,\n shape: e.shape,\n source: sourceOf(path, originalCode),\n lowered: typeof e.lowered === 'string' ? oneLine(e.lowered, MAX_LOWERED) : codeOf(e.lowered),\n reactive: e.reactive,\n deps: e.deps,\n note: e.note,\n });\n}\n\n/** Konumu `noteOrigin` ile kaydedilmiş bir çocuk düğüm için kayıt (emisyon noktası). */\nexport function explainChild(produced: unknown, filename: string, e: ExplainInput): void {\n if (!active || !produced || typeof produced !== 'object') return;\n const o = origins.get(produced as object);\n if (!o) return;\n active.push({\n file: filename,\n line: o.line,\n column: o.column,\n site: e.site,\n shape: e.shape,\n source: o.source,\n lowered: typeof e.lowered === 'string' ? oneLine(e.lowered, MAX_LOWERED) : codeOf(e.lowered),\n reactive: e.reactive,\n deps: e.deps,\n note: e.note,\n });\n}\n\n \nexport const DEPS = {\n none: 'none — no binding is created',\n once: 'none — evaluated once during setup, then frozen',\n getter: 'ALL reactive fields read inside the getter; collected again on every run',\n field: (obj: string, prop: string) => `${obj}.${prop} — this field only (exact)`,\n cond: 'fields read in the condition getter; bindings inside a branch are the branch\\'s own effects, and the branch is rebuilt on every switch',\n list: 'the array source (length + item identity/key); bindings inside an item are the item\\'s own effects',\n receiver: 'wherever the receiving component reads the getter; nowhere if it does not',\n runtime: 'if the value is a function, the fields read inside it; otherwise none (once)',\n model: 'model field ↔ DOM value, two-way',\n modelOneWay: 'ALL reactive fields read inside the getter; the expression is not assignable, so the DOM value is not written back (one-way)',\n} as const;\n \nexport function describeTextNode(node: t.Node): { lowered: string; shape: string; reactive: ExplainReactivity; deps: string; note?: string } | null {\n if (!t.isCallExpression(node)) return null;\n const args = node.arguments;\n if (args.length < 2 || !t.isStringLiteral(args[0]) || args[0].value !== 'text' || !t.isObjectExpression(args[1])) return null;\n const init = args[1].properties.find(p => t.isObjectProperty(p) && t.isIdentifier(p.key) && p.key.name === 'initializeComponent') as t.ObjectProperty | undefined;\n if (!init || !t.isArrowFunctionExpression(init.value) || !t.isBlockStatement(init.value.body)) return null;\n const stmt = init.value.body.body[0];\n if (!stmt || !t.isExpressionStatement(stmt) || !t.isCallExpression(stmt.expression)) return null;\n const call = stmt.expression;\n const callee = t.isIdentifier(call.callee) ? call.callee.name : codeOf(call.callee);\n const lowered = codeOf(call);\n\n if (callee === 'sender.setText') {\n return { lowered, shape: 'text.static', reactive: 'static', deps: DEPS.none };\n }\n if (callee === 'sender.bindings.add') {\n if (call.arguments.length === 3 && t.isStringLiteral(call.arguments[2])) {\n return {\n lowered, shape: 'text.field', reactive: 'live',\n deps: DEPS.field(codeOf(call.arguments[1]), (call.arguments[2] as t.StringLiteral).value),\n };\n }\n const probe = args[1].properties.some(p => t.isObjectProperty(p) && t.isIdentifier(p.key) && p.key.name === '__childExpr');\n return {\n lowered, shape: 'text.getter', reactive: 'live', deps: DEPS.getter,\n note: probe ? 'if the variable holds a component (or an array of components), it is placed with controls.add instead of as text (__childExpr probe, untracked)' : undefined,\n };\n }\n if (callee === 'sender.bindings.when') {\n return { lowered, shape: 'when', reactive: 'live', deps: DEPS.cond };\n }\n return { lowered, shape: 'text', reactive: 'live', deps: DEPS.getter };\n}\n \nconst REACTIVE_LABEL: Record<ExplainReactivity, string> = {\n live: 'LIVE', static: 'STATIC', once: 'ONCE', receiver: 'RECEIVER', runtime: 'RUNTIME', 'n/a': '—',\n};\n\nexport function formatExplanations(list: MotifExplanation[]): string {\n if (list.length === 0) return '';\n const byFile = new Map<string, MotifExplanation[]>();\n for (const e of list) {\n const arr = byFile.get(e.file) ?? [];\n arr.push(e);\n byFile.set(e.file, arr);\n }\n const out: string[] = [];\n for (const [file, items] of byFile) {\n out.push(`[motifjs explain] ${file} — ${items.length} expressions`);\n for (const e of items) {\n const where = e.line === null ? '?' : `${e.line}:${(e.column ?? 0) + 1}`;\n out.push(` ${where.padEnd(8)} ${(e.site + '/' + e.shape).padEnd(24)} ${e.source}`);\n out.push(` => ${e.lowered}`);\n out.push(` ${REACTIVE_LABEL[e.reactive]} · deps: ${e.deps}`);\n if (e.note) out.push(` note: ${e.note}`);\n }\n }\n return out.join('\\n');\n}\n\nexport function printExplanations(list: MotifExplanation[]): void {\n const text = formatExplanations(list);\n if (text) console.info(text);\n}","import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\nimport htmlTags from 'html-tags';\n\nimport { htmlAttributes, htmlEvents } from './htmlAtributes';\nimport svgTags from 'svg-tags';\n\nimport { findIfStatements, makeComponentTraps, makeDirectives, makeHtmlAttr, makeHtmlEvents, makePreDirectives, mergeHtmlAttributes, returnIfStatement, SUPPORTED_DIRECTIVES, UNSUPPORTED_DIRECTIVES, supportedDirectivesText } from './propBuilder';\nimport { motifComponent, motifFragment, State, motifFunctionComponent } from './constants';\nimport { warn as diagWarn, fail } from './diagnostics';\nimport { noteOrigin, transferOrigin, explainAt, explainChild, describeTextNode, codeOf, DEPS, type ExplainReactivity } from './explain';\nconst FRAGMENT = 'Fragment';\n\ntype RefTargetKind = 'call' | 'assign' | 'runtime';\n\nconst isFunctionNode = (n: t.Node | null | undefined): boolean =>\n !!n && (t.isArrowFunctionExpression(n) || t.isFunctionExpression(n));\n\nconst isPlainValueNode = (n: t.Node | null | undefined): boolean =>\n !n || t.isLiteral(n) || t.isObjectExpression(n) || t.isArrayExpression(n) || t.isNewExpression(n) || t.isClassExpression(n);\n\nfunction enclosingClassOfThis(path: NodePath): NodePath<t.ClassDeclaration | t.ClassExpression> | null {\n let cur: NodePath | null = path.parentPath;\n while (cur) {\n if (cur.isClassDeclaration() || cur.isClassExpression()) return cur;\n if (cur.isFunctionDeclaration() || cur.isFunctionExpression() || cur.isObjectMethod()) return null;\n cur = cur.parentPath;\n }\n return null;\n}\n\nconst classMemberKinds = new WeakMap<t.Node, Map<string, RefTargetKind>>();\n\nfunction memberKindsOf(cls: t.ClassDeclaration | t.ClassExpression): Map<string, RefTargetKind> {\n const kinds = new Map<string, RefTargetKind>();\n for (const m of cls.body.body) {\n if (!t.isClassMethod(m) && !t.isClassProperty(m)) continue;\n if (m.computed) continue;\n const key = t.isIdentifier(m.key) ? m.key.name : t.isStringLiteral(m.key) ? m.key.value : null;\n if (key === null || key === 'constructor' || kinds.has(key)) continue;\n if (t.isClassMethod(m)) {\n kinds.set(key, m.kind === 'method' ? 'call' : 'runtime');\n continue;\n }\n const ann = t.isTSTypeAnnotation(m.typeAnnotation) ? m.typeAnnotation.typeAnnotation : null;\n if (isFunctionNode(m.value)) kinds.set(key, 'call');\n else if (ann && t.isTSFunctionType(ann)) kinds.set(key, 'runtime');\n else kinds.set(key, isPlainValueNode(m.value) ? 'assign' : 'runtime');\n }\n return kinds;\n}\n\nexport function recordClassMembers(program: NodePath<t.Program>): void {\n program.traverse({\n Class(path) {\n classMemberKinds.set(path.node, memberKindsOf(path.node));\n }\n });\n}\n\nfunction classMemberKind(cls: NodePath<t.ClassDeclaration | t.ClassExpression>, name: string): RefTargetKind {\n const kinds = classMemberKinds.get(cls.node) ?? memberKindsOf(cls.node);\n return kinds.get(name) ?? 'runtime';\n}\n\nfunction refTargetKind(prop: NodePath<t.JSXAttribute>, value: t.Expression): RefTargetKind {\n if (t.isMemberExpression(value) && t.isThisExpression(value.object) && !value.computed && t.isIdentifier(value.property)) {\n const cls = enclosingClassOfThis(prop);\n return cls ? classMemberKind(cls, value.property.name) : 'runtime';\n }\n if (t.isIdentifier(value)) {\n const binding = prop.scope.getBinding(value.name);\n if (!binding) return 'runtime';\n const node = binding.path.node;\n if (t.isFunctionDeclaration(node)) return 'call';\n if (t.isVariableDeclarator(node)) {\n if (!node.init) return 'assign';\n if (isFunctionNode(node.init) && binding.constant) return 'call';\n }\n return 'runtime';\n }\n return 'runtime';\n}\n\n\nconst componentEvents = new Set(['oncreating', 'onconfig', 'oncreated', 'onbuilding', 'onbuilt', 'ondisposing', 'ondisposed', \"oninitializecomponent\"]);\nfunction isComponentEvent(name: string): boolean {\n return componentEvents.has(name);\n}\nfunction isContextHandler(name: string) {\n return name.toLowerCase().startsWith(\"on-\") || name.toLowerCase().startsWith(\"on:\") || name.toLowerCase().startsWith(\"on_\");\n}\n\nfunction isDirective(name: string) {\n return name.toLowerCase().startsWith(\"x-\") || name.toLowerCase().startsWith(\"x:\");\n}\n\nconst LIFECYCLE_HOOKS = new Set(['built', 'building', 'mounted', 'config', 'configured', 'initializing', 'initialized', 'disposing', 'disposed', 'visibilitychanged', 'activated', 'deactivated']);\nfunction lifecycleHookOf(name: string): string | null {\n const lower = name.toLowerCase();\n let hook: string | null = null;\n if (lower.startsWith('x-') || lower.startsWith('x:')) hook = lower.slice(2);\n else if (lower.startsWith('on')) hook = lower.slice(2);\n return hook !== null && LIFECYCLE_HOOKS.has(hook) ? hook : null;\n}\n\n/** `.some/.every/.find/...` gibi KISA DEVRE yapan dizi yüklemleri (MJX004). */\nconst SHORT_CIRCUIT_ARRAY_METHODS = new Set(['some', 'every', 'find', 'findindex', 'findlast', 'findlastindex']);\n\n/** Bir üye zincirinin kökü `this` mi? (`this.state.rows.some(...)` → evet) */\nfunction isThisRooted(node: t.Node | null | undefined): boolean {\n let cur: any = node;\n while (cur) {\n if (t.isThisExpression(cur)) return true;\n if (t.isMemberExpression(cur)) { cur = cur.object; continue; }\n if (t.isCallExpression(cur)) { cur = cur.callee; continue; }\n return false;\n }\n return false;\n}\n\nfunction findShortCircuitPredicate(node: t.Node | null | undefined): string | null {\n let found: string | null = null;\n const visit = (n: any): void => {\n if (found !== null || n === null || typeof n !== 'object') return;\n if (t.isCallExpression(n) && t.isMemberExpression(n.callee) && t.isIdentifier(n.callee.property)) {\n if (SHORT_CIRCUIT_ARRAY_METHODS.has(n.callee.property.name.toLowerCase()) && isThisRooted(n.callee.object)) {\n found = n.callee.property.name;\n return;\n }\n }\n for (const key of Object.keys(n)) {\n if (key === 'loc' || key === 'leadingComments' || key === 'trailingComments') continue;\n const v = (n as any)[key];\n if (Array.isArray(v)) { v.forEach(visit); }\n else if (v && typeof v === 'object' && typeof v.type === 'string') { visit(v); }\n }\n };\n visit(node);\n return found;\n}\n\nfunction missingListKey(mapper: t.Node | null | undefined): boolean {\n if (!mapper) return false;\n if (!t.isArrowFunctionExpression(mapper) && !t.isFunctionExpression(mapper)) return false;\n\n let body: t.Node | null | undefined = (mapper as any).body;\n if (t.isBlockStatement(body as any)) {\n const ret = (body as t.BlockStatement).body.find(st => t.isReturnStatement(st)) as t.ReturnStatement | undefined;\n body = ret?.argument;\n }\n while (body && t.isParenthesizedExpression(body as any)) body = (body as any).expression;\n\n if (!body || !t.isCallExpression(body)) return false;\n if (!t.isIdentifier(body.callee) || body.callee.name !== motifComponent()) return false;\n\n const propsArg = body.arguments.length > 1 ? body.arguments[1] : body.arguments[0];\n if (!propsArg || !t.isObjectExpression(propsArg)) return false;\n if (propsArg.properties.some(p => t.isSpreadElement(p))) return false;\n\n const hasKey = propsArg.properties.some(p => {\n if (!t.isObjectProperty(p)) return false;\n const n = t.isIdentifier(p.key) ? p.key.name : (t.isStringLiteral(p.key) ? p.key.value : '');\n return n === 'indexkey' || n === 'key';\n });\n return !hasKey;\n}\n\n\nfunction startAttr(v: string) {\n if (v.includes(\"-\")) {\n return true;\n }\n return false;\n}\n\nexport function getAttributeName(attribute: NodePath<t.JSXAttribute>): string {\n const label = attribute.node.name;\n return t.isJSXNamespacedName(label) ? label.namespace.name + ':' + label.name.name : label.name;\n}\n\nexport function getAttributeValue(attribute: NodePath<t.JSXAttribute>, state: State): t.StringLiteral | t.Expression | t.CallExpression | t.ObjectMethod | null {\n const slot = attribute.get('value') as NodePath<t.JSXAttribute['value']>;\n switch (slot.node?.type) {\n case 'JSXElement':\n return ParseComponent(slot as NodePath<t.JSXElement>, state);\n case 'StringLiteral':\n return slot.node;\n case 'JSXExpressionContainer':\n return transformJSXExpressionContainer(slot as NodePath<t.JSXExpressionContainer>);\n default:\n return null;\n }\n}\n\nfunction collapseJsxWhitespace(raw: string): string {\n const rows = raw.split(/\\r\\n|\\n|\\r/);\n const lastRow = rows.length - 1;\n const kept: string[] = [];\n rows.forEach((row, index) => {\n let text = row.replace(/\\t/g, ' ');\n if (index > 0) text = text.replace(/^ +/, '');\n if (index < lastRow) text = text.replace(/ +$/, '');\n if (text !== '') kept.push(text);\n });\n return kept.join(' ');\n}\n\nexport function transformJSXText(text: NodePath<t.JSXText>): t.StringLiteral | null {\n const collapsed = collapseJsxWhitespace(text.node.value);\n return collapsed === '' ? null : t.stringLiteral(collapsed);\n}\n\nfunction memberTagToExpression(tag: t.JSXMemberExpression): t.MemberExpression {\n const segments: string[] = [];\n let head: t.JSXMemberExpression['object'] = tag;\n while (t.isJSXMemberExpression(head)) {\n segments.unshift(head.property.name);\n head = head.object;\n }\n let built: t.Expression = t.isJSXIdentifier(head) ? t.identifier(head.name) : t.nullLiteral();\n for (const segment of segments) {\n built = t.memberExpression(built, t.identifier(segment));\n }\n return built as t.MemberExpression;\n}\n\nexport function transformJSXExpressionContainer(container: NodePath<t.JSXExpressionContainer>): t.Expression {\n const inner = container.node.expression as t.Expression;\n const lazyAttribute = t.isConditionalExpression(inner) && container.parentPath?.isJSXAttribute();\n return lazyAttribute ? t.arrowFunctionExpression([], inner) : inner;\n}\n\nconst isMarkupTagName = (name: string): boolean =>\n name.includes('-') || name === 'center' || htmlTags.includes(name as htmlTags.htmlTags) || svgTags.includes(name);\n\nexport function getTag(element: NodePath<t.JSXElement>): t.Identifier | t.CallExpression | t.StringLiteral | t.MemberExpression {\n const tagPath = element.get('openingElement').get('name');\n const tag = tagPath.node;\n if (t.isJSXIdentifier(tag)) {\n return isMarkupTagName(tag.name) ? t.stringLiteral(tag.name) : t.identifier(tag.name);\n }\n if (t.isJSXMemberExpression(tag)) {\n return memberTagToExpression(tag);\n }\n return fail('MJX013', `Unsupported JSX tag name: ${tagPath.type}.`, tagPath as NodePath<t.Node>);\n}\n\nconst getProps = (props: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>[], path: NodePath<t.JSXElement>, state: State) => {\n\n const objectProps: t.ObjectMethod[] = [];\n const objectExpression: t.ObjectProperty[] = [];\n const eventProps: t.ExpressionStatement[] = [];\n const directives: t.ExpressionStatement[] = [];\n const preDirectives: t.ExpressionStatement[] = [];\n const componentEvents: t.ObjectProperty[] = [];\n let htmlAttrlist: t.ObjectProperty[] = [];\n const thisStatement: t.VariableDeclaration[] = [];\n const spreadProps: t.SpreadElement[] = [];\n\n const fileName = String(state.get('filename') ?? '');\n const originalCode: string | undefined = state.get('originalCode');\n\n /** explain kanalı: bu özniteliğin neye indiğini kaydet. */\n const explainProp = (prop: NodePath<any>, site: 'attr' | 'prop' | 'event' | 'directive' | 'component-event' | 'key', shape: string, lowered: t.Node | string | null | undefined, reactive: ExplainReactivity, deps: string, note?: string) =>\n explainAt(prop, fileName, originalCode, { site, shape, lowered, reactive, deps, note });\n\n /** Bileşen prop'una geçen ifadenin sınıfı. */\n const classifyPropValue = (raw: NodePath<t.JSXAttribute>, value: t.Node): { shape: string; reactive: ExplainReactivity; deps: string; note?: string } => {\n const v = raw.get('value');\n const inner = v.isJSXExpressionContainer() ? v.node.expression : null;\n if (inner && t.isConditionalExpression(inner)) {\n return { shape: 'prop.ternary', reactive: 'receiver', deps: DEPS.receiver,\n note: 'ternary wrapped lazily (by design): the receiving component should declare the prop as Bind<T> and read it with read()/toGetter()' };\n }\n if (t.isArrowFunctionExpression(value) || t.isFunctionExpression(value)) {\n return { shape: 'prop.getter', reactive: 'receiver', deps: DEPS.receiver };\n }\n if (t.isStringLiteral(value) || t.isNumericLiteral(value) || t.isBooleanLiteral(value) || t.isNullLiteral(value) || (t.isTemplateLiteral(value) && value.expressions.length === 0)) {\n return { shape: 'prop.literal', reactive: 'static', deps: DEPS.none };\n }\n if (t.isCallExpression(value) && t.isIdentifier(value.callee) && value.callee.name === motifComponent()) {\n return { shape: 'prop.element', reactive: 'static', deps: DEPS.none, note: 'JSX-valued prop: the component instance is built once and passed' };\n }\n return { shape: 'prop.value', reactive: 'once', deps: DEPS.once,\n note: 'passed as a value; if the object is a reactive proxy, the receiver stays live by reading its fields inside a getter' };\n };\n\n /** DOM özniteliğine yazılan ifadenin sınıfı (makeHtmlAttr'ın gerçek dalları). */\n const classifyAttrValue = (raw: NodePath<t.JSXAttribute>, value: t.Node, emitted: t.ObjectProperty | null): { shape: string; reactive: ExplainReactivity; deps: string; note?: string } => {\n const v = raw.get('value');\n const inner = v.isJSXExpressionContainer() ? v.node.expression : null;\n if (t.isStringLiteral(value) || t.isBooleanLiteral(value) || t.isNumericLiteral(value) || t.isNullLiteral(value)\n || (t.isUnaryExpression(value) && t.isLiteral(value.argument))\n || (t.isTemplateLiteral(value) && value.expressions.length === 0)) {\n return { shape: 'attr.literal', reactive: 'static', deps: DEPS.none };\n }\n if (inner && t.isConditionalExpression(inner)) {\n return { shape: 'attr.ternary', reactive: 'live', deps: DEPS.getter, note: 'ternary wrapped lazily (by design); attr.add calls the getter inside an effect' };\n }\n if (t.isArrowFunctionExpression(value) || t.isFunctionExpression(value)) {\n return { shape: 'attr.getter', reactive: 'live', deps: DEPS.getter };\n }\n if (t.isIdentifier(value)) {\n return { shape: 'attr.identifier', reactive: 'runtime', deps: DEPS.runtime };\n }\n if (t.isCallExpression(value) && t.isIdentifier(value.callee)) {\n return { shape: 'attr.call', reactive: 'once', deps: DEPS.once, note: 'a plain function call is passed as a VALUE; write `() => f(x)` to keep it live' };\n }\n const ev = emitted?.value;\n if (ev && (t.isArrowFunctionExpression(ev) || t.isFunctionExpression(ev))) {\n return { shape: 'attr.expr', reactive: 'live', deps: DEPS.getter, note: 'expression wrapped in a guarded getter (nothing is written while an intermediate link is null)' };\n }\n return { shape: 'attr.value', reactive: 'once', deps: DEPS.once };\n };\n\n /** Etiket bir BİLEŞEN mi (büyük harfle başlıyor ya da üye ifadesi)? */\n const tagIsComponent = (): boolean => {\n if (!t.isJSXElement(path.node)) return false;\n const nameNode = path.node.openingElement.name;\n if (t.isJSXMemberExpression(nameNode)) return true;\n if (!t.isJSXIdentifier(nameNode)) return false;\n const n = nameNode.name;\n return n.length > 0 && n[0].toUpperCase() === n[0] && n !== FRAGMENT;\n };\n\n /** Değersiz öznitelik (`<Comp flag />`) → `flag: true` prop'u. */\n const pushBooleanProp = (name: string) => {\n const key = (name.includes('-') || name.includes(':'))\n ? t.stringLiteral(name)\n : id(name);\n objectExpression.push(t.objectProperty(key, t.booleanLiteral(true)));\n };\n\n const plainTag = t.isStringLiteral(getTag(path));\n let userInit: t.Expression | null = null;\n\n const refEntries: { prop: NodePath<t.JSXAttribute>; lowered: t.Expression }[] = [];\n const pushRef = (prop: NodePath<t.JSXAttribute>, value: t.Expression | t.ObjectMethod) => {\n if (t.isIdentifier(value) || t.isMemberExpression(value)) {\n const kind = refTargetKind(prop, value);\n const callTarget = t.expressionStatement(t.callExpression(t.cloneNode(value), [t.identifier('sender')]));\n const assignTarget = t.expressionStatement(t.assignmentExpression(\"=\", t.cloneNode(value), t.identifier('sender')));\n const refStmt: t.Statement = kind === 'call'\n ? callTarget\n : kind === 'assign'\n ? assignTarget\n : t.ifStatement(t.binaryExpression('===', t.unaryExpression('typeof', t.cloneNode(value)), t.stringLiteral('function')), callTarget, assignTarget);\n const body: t.Statement[] = [refStmt];\n if (enclosingClassOfThis(prop)) {\n body.push(t.expressionStatement(t.callExpression(t.identifier('if(this.onRefCreated) this.onRefCreated'), [t.identifier('sender')])));\n }\n refEntries.push({ prop, lowered: t.arrowFunctionExpression([t.identifier('sender')], t.blockStatement(body)) });\n } else if (t.isFunctionExpression(value) || t.isArrowFunctionExpression(value)) {\n refEntries.push({ prop, lowered: t.arrowFunctionExpression(value.params, value.body) });\n } else if (t.isExpression(value)) {\n var cx = t.expressionStatement(value);\n refEntries.push({ prop, lowered: t.arrowFunctionExpression([t.identifier('sender')], t.blockStatement([cx])) });\n } else {\n objectProps.push(value)\n }\n };\n\n const hookCounts = new Map<string, number>();\n props.forEach(prop => {\n if (!prop.isJSXAttribute() || prop.node.value == null) return;\n const hook = lifecycleHookOf(getAttributeName(prop));\n if (hook !== null) hookCounts.set(hook, (hookCounts.get(hook) ?? 0) + 1);\n });\n const mergedHooks = new Map<string, { prop: NodePath<t.JSXAttribute>; value: t.Expression }[]>();\n hookCounts.forEach((count, hook) => { if (count > 1) mergedHooks.set(hook, []); });\n\n if (props.length > 0) {\n props.forEach(prop => {\n if (prop.isSpreadElement()) {\n spreadProps.push(prop);\n } else if (prop.isJSXSpreadChild()) {\n spreadProps.push(prop);\n } else if (prop.isJSXSpreadAttribute()) {\n \n spreadProps.push(t.spreadElement(prop.node.argument));\n }\n else if (prop.isJSXAttribute()) {\n let name = getAttributeName(prop);\n let value = getAttributeValue(prop, state);\n const mergedHook = lifecycleHookOf(name);\n if (mergedHook !== null && mergedHooks.has(mergedHook) && value != null) {\n if (t.isExpression(value)) {\n mergedHooks.get(mergedHook)!.push({ prop, value });\n } else {\n objectProps.push(value);\n }\n } else if (name === 'initializeComponent' && value != null) {\n if (t.isExpression(value)) {\n userInit = value;\n explainProp(prop, 'component-event', 'lifecycle', `initializeComponent: ${codeOf(value)}`, 'n/a', DEPS.none, plainTag\n ? 'called once during setup with the tag\\'s component as sender (same as initializeComponent on a component tag)'\n : 'passed via runover; called once during setup with the tag\\'s component (the returned root for a function component) as sender');\n } else {\n objectProps.push(value);\n }\n } else if (name === 'ref' && value != null) {\n pushRef(prop, value);\n } else if (isComponentEvent(name.toLowerCase())) {\n if (value != null) {\n var ce = makeComponentTraps(prop, name, value, path);\n if (ce !== null) {\n componentEvents.push(ce)\n explainProp(prop, 'component-event', 'lifecycle', ce, 'n/a', DEPS.none, 'lifecycle hook; called once during component setup/build/dispose');\n }\n }\n } else if (!plainTag && mergedHook !== null && value != null && t.isExpression(value)) {\n const key = name.toLowerCase().startsWith('on') ? name : 'on' + mergedHook;\n const lifecycleProp = t.objectProperty(t.isValidIdentifier(key) ? id(key) : t.stringLiteral(key), value);\n componentEvents.push(lifecycleProp);\n explainProp(prop, 'component-event', 'lifecycle', lifecycleProp, 'n/a', DEPS.none, 'lifecycle hook; on a component tag it is applied via runover to the tag\\'s component (the returned root for a function component)');\n } else if (isContextHandler(name.toLowerCase()) && value != null) {\n const newName = name.slice(3);\n\n const onCall = t.callExpression(id('sender.motif.on'), [t.stringLiteral(newName), value as t.Expression]);\n directives.push(t.expressionStatement(onCall));\n explainProp(prop, 'event', 'event.context', onCall, 'n/a', DEPS.none, 'context event (on:/on-/on_): the handler is passed to motif.on as is; with ≤ 1 declared parameter it is called as fn(event), with 2 or more as fn(sender, event)');\n } else if (name.toLowerCase() === \"key\" || name.toLowerCase() === \"indexkey\") {\n var clearedName = 'indexkey';\n if (t.isIdentifier(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isMemberExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isFunctionExpression(value) || t.isArrowFunctionExpression(value)) {\n var cex = t.arrowFunctionExpression(value.params, value.body)\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n\n } else if (t.isExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex));\n } else {\n }\n explainProp(prop, 'key', 'key', objectExpression[objectExpression.length - 1], 'n/a', 'item identity — ListBinding matches DOM nodes by it', undefined);\n } else if (isDirective(name.toLowerCase())) {\n const directiveName = name.toLowerCase().replace(\"x:\", \"\").replace(\"x-\", \"\");\n if (UNSUPPORTED_DIRECTIVES.has(directiveName)) {\n fail('MJX006', `Directive \"${name}\" is not supported. Supported: ${supportedDirectivesText()}.`, prop);\n }\n if (value != null) {\n var clearedName = name.toLowerCase().replace(\"x:\", \"\").replace(\"x-\", \"\").replace(\"on:\", \"\");\n if ((SUPPORTED_DIRECTIVES as readonly string[]).includes(clearedName)) {\n if (clearedName !== 'wait' && clearedName !== 'display') {\n var directive = makeDirectives(prop, name, value, path, state);\n if (directive != null) {\n directives.push(directive)\n const twoWay = clearedName === 'model' && t.isCallExpression(directive.expression) && directive.expression.arguments.length > 1;\n explainProp(prop, 'directive', 'directive.' + clearedName, directive.expression, 'live',\n twoWay ? DEPS.model : clearedName === 'model' ? DEPS.modelOneWay : DEPS.getter);\n }\n } else {\n var directive = makePreDirectives(prop, name, value, path);\n if (directive != null) {\n preDirectives.push(directive)\n explainProp(prop, 'directive', 'directive.' + clearedName, directive.expression, 'live', DEPS.getter,\n clearedName === 'wait' ? 'true → hidden; if true at start, the element and its children are never built (preconfig, before build)'\n : 'removes/reinserts in the DOM; the instance is kept (preconfig)');\n }\n }\n } else if (clearedName === 'style') {\n const styleAttr = makeHtmlAttr(prop, 'style', value, path);\n if (styleAttr !== null) {\n htmlAttrlist.push(styleAttr);\n const c = classifyAttrValue(prop, value, styleAttr);\n explainProp(prop, 'attr', 'style', `sender.style(${codeOf(styleAttr.value)})`, c.reactive, c.deps, c.note);\n }\n } else if (clearedName === \"ref\") {\n pushRef(prop, value);\n } else if (clearedName === \"inject\") {\n\n if (t.isIdentifier(value)) {\n objectExpression.push(t.objectProperty(id(clearedName), value))\n } else if (t.isMemberExpression(value)) {\n objectExpression.push(t.objectProperty(id(clearedName), value))\n } else if (t.isFunctionExpression(value) || t.isArrowFunctionExpression(value)) {\n objectExpression.push(t.objectProperty(id(clearedName), value))\n\n } else if (t.isExpression(value)) {\n objectExpression.push(t.objectProperty(id(clearedName), value))\n\n } else {\n objectProps.push(value)\n }\n\n } else if (name.toLowerCase() === \"key\" || name.toLowerCase() === \"indexkey\") {\n var clearedName = 'indexkey';\n if (t.isIdentifier(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isMemberExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isFunctionExpression(value) || t.isArrowFunctionExpression(value)) {\n var cex = t.arrowFunctionExpression(value.params, value.body)\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n\n } else if (t.isExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex));\n } else {\n objectProps.push(value);\n }\n } else if (clearedName === \"key\" || clearedName === \"indexkey\") {\n clearedName = 'indexkey';\n if (t.isIdentifier(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isMemberExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isFunctionExpression(value) || t.isArrowFunctionExpression(value)) {\n var cex = t.arrowFunctionExpression(value.params, value.body)\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n\n } else if (t.isExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex));\n } else {\n objectProps.push(value);\n }\n } else {\n if (!isComponentEvent('on' + clearedName) && !LIFECYCLE_HOOKS.has(clearedName) && clearedName !== 'initializecomponent') {\n diagWarn(\n 'MJX007',\n `Unknown directive \"${name}\": it is passed on as the prop \"on${clearedName}\". Supported: ${supportedDirectivesText()}.`,\n prop, fileName,\n );\n }\n if (t.isExpression(value)) {\n objectExpression.push(t.objectProperty(id(\"on\" + clearedName), value))\n } else {\n objectProps.push(value)\n }\n }\n }\n } else if ((htmlAttributes.has(name) || startAttr(name))\n ||\n (\n (<t.JSXIdentifier>(<t.JSXElement>path.node).openingElement.name).name == String((<t.JSXIdentifier>(<t.JSXElement>path.node).openingElement.name).name).toLowerCase() &&\n name.toLowerCase().startsWith(\"on\") == false &&\n name.toLowerCase() != 'indexkey' &&\n name.toLowerCase() != 'key' &&\n name.toLowerCase() != 'props' &&\n name.toLowerCase() != 'settings'\n )\n ) {\n \n var isComponent = tagIsComponent();\n\n if (isComponent) {\n if (value != null) {\n if (t.isExpression(value)) {\n if (name.includes(\"-\") || name.includes(\":\")) {\n objectExpression.push(t.objectProperty(t.stringLiteral(name), value))\n } else {\n objectExpression.push(t.objectProperty(id(name), value))\n }\n {\n const c = classifyPropValue(prop, value);\n explainProp(prop, 'prop', c.shape, objectExpression[objectExpression.length - 1], c.reactive, c.deps, c.note);\n }\n\n } else {\n objectProps.push(value)\n }\n } else {\n pushBooleanProp(name);\n explainProp(prop, 'prop', 'prop.flag', objectExpression[objectExpression.length - 1], 'static', DEPS.none);\n }\n }\n else if (name === 'transition' && value !== null && t.isExpression(value)) {\n objectExpression.push(t.objectProperty(id('transition'), value));\n explainProp(prop, 'prop', 'prop.transition', objectExpression[objectExpression.length - 1], 'static', DEPS.none,\n 'bound to the transition engine (options.transition); no HTML attribute is written');\n }\n else if (name === 'options' && value !== null && t.isExpression(value)) {\n objectExpression.push(t.objectProperty(id('options'), value));\n explainProp(prop, 'prop', 'prop.options', objectExpression[objectExpression.length - 1], 'static', DEPS.none,\n 'copied into motif.options (hideStrategy, disableDisposal); no HTML attribute is written');\n }\n else if (value !== null) {\n var atr = makeHtmlAttr(prop, name, value, path);\n if (atr !== null) {\n htmlAttrlist.push(atr);\n const lname = name.toLowerCase();\n const c = classifyAttrValue(prop, value, atr);\n const call = lname === 'class' || lname === 'classname' ? 'sender.class.add' : lname === 'style' ? 'sender.style' : 'sender.attr.add';\n const shown = call === 'sender.attr.add' ? `${call}({ \"${name}\": ${codeOf(atr.value)} })` : `${call}(${codeOf(atr.value)})`;\n explainProp(prop, 'attr', c.shape, shown, c.reactive, c.deps, c.note);\n }\n } else {\n var atr = makeHtmlAttr(prop, name, t.booleanLiteral(true), path);\n if (atr !== null) {\n htmlAttrlist.push(atr);\n explainProp(prop, 'attr', 'attr.flag', `sender.attr.add({ \"${name}\": true })`, 'static', DEPS.none);\n }\n }\n\n\n } else if (name.toLowerCase().startsWith(\"on\") && htmlEvents.has(name.toLowerCase())) {\n if (tagIsComponent() && name !== name.toLowerCase()) {\n diagWarn(\n 'MJX002',\n `\"${name}\" is a DOM event name; on a component tag this prop is NOT passed as a callback but bound as a DOM listener on the root element, so \"this.props.${name}\" stays undefined. For a callback, choose a name that does not collide with DOM events (e.g. \"onValueChange\", \"onConfirm\", \"onSwitch\").`,\n prop, fileName,\n );\n }\n if (value != null) {\n var evp = makeHtmlEvents(prop, name, value, path);\n if (evp !== null) {\n eventProps.push(t.expressionStatement(evp));\n explainProp(prop, 'event', 'event.dom', evp, 'n/a', DEPS.none,\n tagIsComponent() ? 'DOM event on a component tag: bound as a listener on the root element, it does NOT reach this.props' : undefined);\n }\n }\n } else if (!name.startsWith(\"x\")) {\n if (value != null) {\n if (t.isExpression(value)) {\n if (name.includes(\"-\") || name.includes(\":\")) {\n objectExpression.push(t.objectProperty(t.stringLiteral(name), value))\n } else {\n objectExpression.push(t.objectProperty(id(name), value))\n }\n {\n const c = classifyPropValue(prop, value);\n explainProp(prop, 'prop', c.shape, objectExpression[objectExpression.length - 1], c.reactive, c.deps, c.note);\n }\n\n } else {\n objectProps.push(value)\n }\n\n } else {\n pushBooleanProp(name);\n explainProp(prop, 'prop', 'prop.flag', objectExpression[objectExpression.length - 1], 'static', DEPS.none);\n }\n\n }\n }\n });\n }\n\n if (refEntries.length > 0) {\n const refProp = t.objectProperty(id('ref'), refEntries.length === 1 ? refEntries[0].lowered : t.arrayExpression(refEntries.map(e => e.lowered)));\n objectExpression.push(refProp);\n refEntries.forEach(e => explainProp(e.prop, 'prop', 'ref', refProp, 'n/a', DEPS.none,\n refEntries.length === 1\n ? 'the tag\\'s component is passed to the ref once, while it is being built'\n : 'all ref spellings on the same tag are merged into one list; each is called once, in source order'));\n }\n\n mergedHooks.forEach((entries, hook) => {\n if (entries.length === 0) return;\n const merged = t.objectProperty(id('on' + hook), t.arrayExpression(entries.map(e => e.value)));\n componentEvents.push(merged);\n entries.forEach(e => explainProp(e.prop, 'component-event', 'lifecycle', merged, 'n/a', DEPS.none,\n 'all spellings of the same hook on this tag are merged into one list; each is called once, in source order'));\n });\n\n const htmlProps: t.ExpressionStatement[] = mergeHtmlAttributes(htmlAttrlist);\n\n return { htmlProps, eventProps, objectExpression, objectProps, componentEvents, directives, preDirectives, thisStatement, spreadProps, userInit: userInit as t.Expression | null }\n};\n\n\nexport const getChildren = (\n\n\n paths: NodePath<t.JSXText | t.JSXExpressionContainer | t.JSXSpreadChild | t.JSXElement | t.JSXFragment>[]\n , state: State) => {\n\n\n const originalCode: string | undefined = state.get('originalCode');\n const transformOne = (path: NodePath<t.JSXText | t.JSXExpressionContainer | t.JSXSpreadChild | t.JSXElement | t.JSXFragment>): any => {\n if (path.isJSXText()) {\n const literal = transformJSXText(path);\n return literal === null ? null : mkText(literal);\n }\n\n if (path.isJSXExpressionContainer()) { \n // \"{ () => { return cond ? <A/> : <B/> } }\".\n let expression = transformJSXExpressionContainer(path) as t.Expression;\n\n // Detect: {(() => { switch(expr) { case ... } })()}\n\n if (t.isCallExpression(expression) && (t.isArrowFunctionExpression(expression.callee) || t.isFunctionExpression(expression.callee)) &&\n expression.callee.body && t.isBlockStatement(expression.callee.body)\n ) {\n\n const switchStmt = expression.callee.body.body.find((s: any) => t.isSwitchStatement(s)) as t.SwitchStatement | undefined;\n if (switchStmt) { \n const discriminant = switchStmt.discriminant;\n \n const callee = expression.callee as t.ArrowFunctionExpression | t.FunctionExpression;\n const callArgs = expression.arguments as t.Expression[];\n const params = callee.params;\n\n let discriminatorFn: t.ArrowFunctionExpression;\n \n const casesObjProps: t.ObjectProperty[] = [];\n let defaultFn: t.ArrowFunctionExpression | undefined = undefined;\n for (const caseNode of switchStmt.cases) {\n const ret = caseNode.consequent.find((s: any) => t.isReturnStatement(s)) as t.ReturnStatement | undefined;\n const handlerBody = ret && ret.argument ? [t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier('frame'), t.identifier('navigate')),\n [ret.argument]\n ))] : [t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier('frame'), t.identifier('navigate')),\n [t.callExpression(t.identifier(motifFragment()), [])]\n ))];\n if (!state.get(motifFragment())) {\n state.set(motifFragment(), motifFragment());\n }\n\n const handlerFn = t.arrowFunctionExpression([t.identifier('frame')], t.blockStatement(handlerBody));\n if (caseNode.test) {\n if (t.isStringLiteral(caseNode.test) || t.isNumericLiteral(caseNode.test) || t.isBooleanLiteral(caseNode.test)) {\n casesObjProps.push(\n t.objectProperty(caseNode.test, handlerFn)\n );\n } else {\n // Optionally: throw or skip\n }\n } else {\n defaultFn = handlerFn;\n }\n }\n\n if (\n params.length === 1 &&\n t.isIdentifier(params[0]) &&\n t.isIdentifier(discriminant) &&\n (params[0] as t.Identifier).name === (discriminant as t.Identifier).name &&\n callArgs.length >= 1\n ) {\n // Özel durum (tek parametre): () => arg0\n discriminatorFn = t.arrowFunctionExpression([], callArgs[0] as t.Expression);\n } else if (params.length > 0) {\n discriminatorFn = t.arrowFunctionExpression(\n [],\n t.callExpression(\n t.arrowFunctionExpression(params as any, discriminant),\n callArgs as any\n )\n );\n } else {\n discriminatorFn = t.arrowFunctionExpression([], discriminant);\n }\n\n const args = [discriminatorFn, t.objectExpression(casesObjProps)];\n\n if (defaultFn) args.push(defaultFn);\n\n // return t.callExpression(\n return t.callExpression(\n t.identifier('sender.bindings.switchCase'),\n args\n );\n }\n }\n\n if ((t.isArrowFunctionExpression(expression) || t.isFunctionExpression(expression)) && expression.body && t.isBlockStatement(expression.body)\n ) {\n const switchStmt = expression.body.body.find((s: any) => t.isSwitchStatement(s)) as t.SwitchStatement | undefined;\n if (switchStmt) { \n const discriminant = switchStmt.discriminant; \n const casesObjProps: t.ObjectProperty[] = [];\n let defaultFn: t.ArrowFunctionExpression | undefined = undefined;\n for (const caseNode of switchStmt.cases) {\n const ret = caseNode.consequent.find((s: any) => t.isReturnStatement(s)) as t.ReturnStatement | undefined;\n const handlerBody = ret && ret.argument ? [t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier('frame'), t.identifier('navigate')),\n [ret.argument]\n ))] : [t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier('frame'), t.identifier('navigate')),\n [t.callExpression(t.identifier(motifFragment()), [])]\n ))];\n if (!state.get(motifFragment())) {\n state.set(motifFragment(), motifFragment());\n }\n\n const handlerFn = t.arrowFunctionExpression([t.identifier('frame')], t.blockStatement(handlerBody));\n if (caseNode.test) {\n if (t.isStringLiteral(caseNode.test) || t.isNumericLiteral(caseNode.test) || t.isBooleanLiteral(caseNode.test)) {\n casesObjProps.push(\n t.objectProperty(caseNode.test, handlerFn)\n );\n } else {\n // Optionally: throw or skip\n }\n } else {\n defaultFn = handlerFn;\n }\n }\n const discriminatorFn = t.arrowFunctionExpression([], discriminant);\n const args = [discriminatorFn, t.objectExpression(casesObjProps)];\n if (defaultFn) args.push(defaultFn);\n\n return t.callExpression(\n t.identifier('sender.bindings.switchCase'),\n args\n );\n }\n }\n\n const unwrapConditionalFromFunction = (expr: t.Expression): t.Expression => {\n let current: t.Expression | null = expr;\n while (current) { \n if (t.isArrowFunctionExpression(current) && t.isConditionalExpression(current.body)) {\n current = current.body;\n continue;\n } \n if ((t.isArrowFunctionExpression(current) || t.isFunctionExpression(current)) && t.isBlockStatement(current.body)) {\n const ret = current.body.body.find(s => t.isReturnStatement(s) && (s as t.ReturnStatement).argument && t.isConditionalExpression((s as t.ReturnStatement).argument as t.Expression)) as t.Statement | undefined;\n if (ret && t.isReturnStatement(ret) && ret.argument && t.isConditionalExpression(ret.argument)) {\n const locals = current.body.body\n .filter(s => t.isVariableDeclaration(s))\n .flatMap(s => (s as t.VariableDeclaration).declarations\n .map(d => (t.isIdentifier(d.id) ? d.id.name : null))\n .filter((n): n is string => n !== null));\n if (locals.length > 0) {\n diagWarn(\n 'MJX001',\n `In a block-bodied function in JSX child position the condition is moved out of the closure; ${locals.map(n => '\"' + n + '\"').join(', ')} declared inside it are not visible in the branches and throw ReferenceError. Use an expression-bodied arrow function (\\`{() => cond ? <A t={compute()}/> : <B/>}\\`) or move the logic into a named method.`,\n path, String(state.get('filename') ?? ''),\n );\n }\n current = ret.argument as t.ConditionalExpression;\n continue;\n }\n }\n if (t.isParenthesizedExpression(current) && (current as any).expression) { \n current = (current as any).expression;\n continue;\n }\n break;\n }\n return current || expr;\n };\n\n if (t.isArrowFunctionExpression(expression) || t.isFunctionExpression(expression)) {\n const hit = findShortCircuitPredicate(expression.body);\n if (hit !== null) {\n diagWarn(\n 'MJX004',\n `\"${hit}()\" short-circuits inside a reactive getter: the predicate stops at the first match, so the rest of the array is not tracked as a dependency and the binding does not update when those items change. Keep the result in a computed value or field and read that, or traverse the whole array first (e.g. \"arr.filter(...).length > 0\").`,\n path, String(state.get('filename') ?? ''),\n );\n }\n }\n\n expression = unwrapConditionalFromFunction(expression);\n\n if (isChildsSlot(expression)) {\n return expression;\n }\n\n if (t.isIdentifier(expression)) {\n return mkText(expression)\n }\n\n if (t.isBinaryExpression(expression)) {\n return mkText(expression)\n }\n\n if (t.isConditionalExpression(expression)) {\n const frameId = t.identifier('frame');\n\n const isMotifCall = (e: t.Expression) => t.isCallExpression(e) && t.isIdentifier(e.callee) && (e.callee.name === motifComponent() || e.callee.name === motifFragment());\n const normalize = (e: t.Expression): t.Expression => {\n if (isMotifCall(e)) return e;\n return mkText(e);\n };\n\n const buildBranch = (node: t.Expression): t.Statement[] => {\n if (t.isConditionalExpression(node)) {\n const trueBody = buildBranch(node.consequent);\n const falseBody = buildBranch(node.alternate);\n return [\n t.expressionStatement(\n t.callExpression(t.identifier('sender.bindings.ternaryCall'), [\n t.arrowFunctionExpression([], node.test as t.Expression),\n t.arrowFunctionExpression([], t.blockStatement(trueBody)),\n t.arrowFunctionExpression([], t.blockStatement(falseBody))\n ])\n )\n ];\n }\n return [t.expressionStatement(\n t.callExpression(\n t.memberExpression(frameId, t.identifier('navigate')),\n [normalize(node)]\n )\n )];\n };\n\n const trueFn = t.arrowFunctionExpression([frameId], t.blockStatement(buildBranch(expression.consequent)));\n const falseFn = t.arrowFunctionExpression([frameId], t.blockStatement(buildBranch(expression.alternate)));\n const condFn = t.arrowFunctionExpression([], expression.test);\n if (!state.get(motifFragment())) {\n state.set(motifFragment(), motifFragment());\n }\n\n return t.callExpression(id('sender.bindings.ternary'), [condFn, trueFn, falseFn]);\n }\n\n if (t.isMemberExpression(expression)) {\n return mkText(expression)\n }\n if (t.isFunctionExpression(expression)) {\n return expression;\n }\n if (t.isCallExpression(expression)) {\n\n if (t.isCallExpression(expression)) {\n var b = expression.arguments;\n if (t.isMemberExpression(expression.callee)) {\n if (t.isIdentifier(expression.callee.property)) {\n if (expression.callee.property.name === 'map' || expression.callee.property.name === 'forEach') {\n if (missingListKey(b[0])) {\n diagWarn(\n 'MJX003',\n 'List item has no \"key\". Rows are matched by the item object (primitive items by value), not by key, so a key does not change DOM reuse; a stable key such as `key={item.id}` is checked for duplicates (MJX202).',\n path, String(state.get('filename') ?? ''),\n );\n }\n\n state.set('loop-waiter', expression.callee.object);\n return t.callExpression(id('sender.repeater'), [expression.callee.object, ...b]);\n }\n }\n }\n }\n\n if (t.isMemberExpression(expression.callee)) {\n return makeMemberCallChild(expression);\n }\n }\n\n if (t.isStringLiteral(expression)) {\n return mkText(expression)\n }\n \n if (t.isTemplateLiteral(expression) && expression.expressions.length > 0) { \n return t.arrowFunctionExpression([], expression);\n }\n\n return expression;\n }\n\n const childNode: t.Node = path.node;\n if (t.isCallExpression(childNode)) return childNode;\n if (path.isJSXElement()) return ParseComponent(path, state);\n\n fail('MJX013', `Unsupported JSX child: ${path.type}.`, path as NodePath<t.Node>);\n };\n\n const lowered: any[] = [];\n for (const child of paths) {\n const result = transformOne(child);\n if (result && !child.isJSXText()) noteOrigin(result, child as NodePath<t.Node>, originalCode);\n if (result == null || t.isJSXEmptyExpression(result)) continue;\n lowered.push(result);\n }\n return lowered;\n\n}\n\nfunction id(name: string): t.Identifier {\n return t.identifier(name);\n}\n\nconst isChildsSlot = (e: t.Expression): boolean =>\n (t.isMemberExpression(e) && !e.computed && t.isIdentifier(e.property) && e.property.name === 'childs')\n || (t.isIdentifier(e) && e.name === 'childs');\n\n/** `??` / `||` mi? (C1: bunlar `&&` gibi `when`'e çevrilmemeli) */\nconst isCoalesceLogical = (e: t.Expression): boolean =>\n t.isLogicalExpression(e) && (e.operator === '??' || e.operator === '||');\n\nconst coalesceFn = (cx: t.LogicalExpression): t.ArrowFunctionExpression => {\n const l = t.identifier('__l');\n return t.arrowFunctionExpression([], t.blockStatement([\n t.variableDeclaration('let', [t.variableDeclarator(t.identifier('__l'))]),\n t.tryStatement(\n t.blockStatement([t.expressionStatement(t.assignmentExpression('=', l, cx.left as t.Expression))]),\n t.catchClause(null, t.blockStatement([t.expressionStatement(t.assignmentExpression('=', t.identifier('__l'), t.identifier('undefined')))]))\n ),\n t.returnStatement(t.logicalExpression(cx.operator, t.identifier('__l'), cx.right))\n ]));\n};\n\nconst makeCoalesceChild = (cx: t.LogicalExpression): t.CallExpression =>\n t.callExpression(id('sender.bindings.method'), [coalesceFn(cx)]);\n\nconst makeMemberCallChild = (call: t.CallExpression): t.CallExpression =>\n t.callExpression(id('sender.bindings.method'), [t.arrowFunctionExpression([], t.blockStatement([\n t.tryStatement(\n t.blockStatement([t.returnStatement(call)]),\n t.catchClause(null, t.blockStatement([t.returnStatement(t.identifier('undefined'))]))\n )\n ]))]);\n\n/** JSXElement'in etiket adı (yalnızca basit tanımlayıcı; `<Foo.Bar>` için null). */\nconst jsxTagName = (p: NodePath<t.JSXElement>): string | null => {\n const n = p.node.openingElement.name;\n return t.isJSXIdentifier(n) ? n.name : null;\n};\n\nconst isInsideSvgTree = (path: NodePath<t.JSXElement>): boolean => {\n let p: NodePath | null = path.parentPath;\n while (p) {\n if (p.isJSXElement()) {\n const n = jsxTagName(p as NodePath<t.JSXElement>);\n if (n === 'foreignObject') return false;\n if (n === 'svg' || (n && svgTags.includes(n) && !htmlTags.includes(n as any))) return true;\n }\n p = p.parentPath;\n }\n return false;\n};\n\nconst listSource = (src: t.Expression): t.Expression => {\n if (t.isArrowFunctionExpression(src) || t.isFunctionExpression(src)) return src;\n if (t.isMemberExpression(src) || t.isIdentifier(src) || t.isLogicalExpression(src) || t.isBinaryExpression(src) || t.isCallExpression(src)) {\n return returnIfStatement(src, true, t.arrayExpression());\n }\n return t.arrowFunctionExpression([], src);\n};\n\nconst listRender = (args: t.CallExpression['arguments']): t.Expression => {\n const render = args[1] as t.Expression;\n const thisArg = args[2];\n if (!thisArg || !t.isExpression(thisArg)) return render;\n return t.callExpression(t.memberExpression(render, t.identifier('bind')), [thisArg]);\n};\n\nconst extractMemberExpressionFromFunction = (exp: t.Expression): t.MemberExpression | null => { \n if (t.isArrowFunctionExpression(exp) && exp.params.length === 0 && t.isMemberExpression(exp.body)) {\n return exp.body;\n } \n if ((t.isArrowFunctionExpression(exp) || t.isFunctionExpression(exp)) && exp.params.length === 0 && t.isBlockStatement(exp.body)) {\n const statements = exp.body.body;\n if (statements.length === 1 && t.isReturnStatement(statements[0]) && statements[0].argument && t.isMemberExpression(statements[0].argument)) {\n return statements[0].argument;\n }\n }\n return null;\n};\n\nconst splitMemberExpression = (exp: t.MemberExpression): { object: t.Expression, property: string } | null => {\n if (t.isIdentifier(exp.property)) {\n return {\n object: exp.object,\n property: exp.property.name\n };\n }\n return null;\n};\n\nconst mkText = (exp: t.Expression) => {\n var a1: t.CallExpression;\n \n const childProbe: t.Expression | null =\n (t.isIdentifier(exp) || t.isMemberExpression(exp)) ? t.arrowFunctionExpression([], exp) : null;\n\n if (t.isStringLiteral(exp)) {\n a1 = t.callExpression(id('sender.setText'), [exp]);\n } else if (t.isMemberExpression(exp)) {\n const split = splitMemberExpression(exp);\n if (split) {\n a1 = t.callExpression(id('sender.bindings.add'), [\n t.stringLiteral(\"textContent\"),\n split.object,\n t.stringLiteral(split.property)\n ]);\n } else {\n var ifStatement = findIfStatements(exp);\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n }\n } else if (t.isObjectExpression(exp) || t.isIdentifier(exp)) {\n var ifStatement = findIfStatements(exp);\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns])); \n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n } else if (t.isArrowFunctionExpression(exp)) { \n const memberExp = extractMemberExpressionFromFunction(exp);\n if (memberExp) {\n const split = splitMemberExpression(memberExp);\n if (split) {\n a1 = t.callExpression(id('sender.bindings.add'), [\n t.stringLiteral(\"textContent\"),\n split.object,\n t.stringLiteral(split.property)\n ]);\n } else {\n var ifStatement = findIfStatements(exp);\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n }\n } else {\n var ifStatement = findIfStatements(exp);\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns])); \n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n }\n\n } else if (isCoalesceLogical(exp)) { \n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), coalesceFn(exp as t.LogicalExpression)]);\n } else if (t.isLogicalExpression(exp)) {\n var ifStatement = findIfStatements(exp.left);\n if (t.isFunction(exp.left) || t.isArrowFunctionExpression(exp.left) || t.isFunctionExpression(exp.left) || t.isFunctionDeclaration(exp.left)) {\n\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp.left), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp.left, []), t.arrowFunctionExpression([], exp.left)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n if (!t.isFunctionDeclaration(exp.right) && !t.isArrowFunctionExpression(exp.right)) {\n\n var ifst = t.ifStatement(t.identifier('__v'),\n t.blockStatement([t.returnStatement(exp.right)]),\n t.blockStatement([t.returnStatement(t.callExpression(t.identifier(motifComponent()), [t.objectExpression([])]))]))\n\n exp.right = t.arrowFunctionExpression([t.identifier(\"__v\")], t.blockStatement([t.returnStatement(exp.right)]))\n }\n var a1 = t.callExpression(id('sender.bindings.when'), [kx, exp.right]);\n } else {\n // var rtrn = t.returnStatement(t.arrowFunctionExpression([], exp.left));\n // //var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n // var kx = t.arrowFunctionExpression([], t.blockStatement([rtrn]));\n // if (!t.isFunctionDeclaration(exp.right) && !t.isArrowFunctionExpression(exp.right)) {\n\n // var ifst = t.ifStatement(t.identifier('val'),\n\n // var a1 = t.callExpression(id('sender.bind.logic'), [kx, exp.right]);\n\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([t.returnStatement(exp.left)]));\n var tryStatement = t.tryStatement(t.blockStatement([rtrns]), t.catchClause(null, t.blockStatement([t.returnStatement(t.nullLiteral())])), null);\n var kx = t.arrowFunctionExpression([], t.blockStatement([tryStatement]));\n\n if (!t.isFunctionDeclaration(exp.right) && !t.isArrowFunctionExpression(exp.right)) {\n\n var ifst = t.ifStatement(t.identifier('__v'),\n t.blockStatement([t.returnStatement(exp.right)]),\n t.blockStatement([t.returnStatement(t.callExpression(t.identifier(motifComponent()), [t.objectExpression([])]))]))\n\n exp.right = t.arrowFunctionExpression([t.identifier(\"__v\")], t.blockStatement([t.returnStatement(exp.right)]))\n }\n var a1 = t.callExpression(id('sender.bindings.when'), [kx, exp.right]);\n }\n // var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp.left), t.stringLiteral('function'));\n // var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp.left, []), t.arrowFunctionExpression([], exp.left)));\n // var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n // var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n // if (!t.isFunctionDeclaration(exp.right) && !t.isArrowFunctionExpression(exp.right)) {\n\n // var ifst = t.ifStatement(t.identifier('val'),\n\n // var a1 = t.callExpression(id('sender.bind.logic'), [kx, exp.right]);\n\n } else if (t.isBinaryExpression(exp)) {\n var ifStatement = findIfStatements(exp);\n\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns])); \n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n } else {\n var ifStatement = findIfStatements(exp);\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns])); \n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n }\n\n var arrayBody = t.arrowFunctionExpression([id('sender')], t.blockStatement([t.expressionStatement(a1)]));\n const bodyProps: t.ObjectProperty[] = [t.objectProperty(id('initializeComponent'), arrayBody)];\n if (childProbe) { bodyProps.push(t.objectProperty(id('__childExpr'), childProbe)); }\n var body = t.objectExpression(bodyProps);\n\n return t.callExpression(id(motifComponent()), [t.stringLiteral('text'), body]);\n}\n \n/** `sender.bindings.*` çağrısı olarak gelen çocuk (ternary, switchCase, method, list…). */\nfunction explainBindingCall(cx: t.CallExpression, fileName: string, where?: string): void {\n const name = t.isIdentifier(cx.callee) ? cx.callee.name.replace(/^sender\\.bindings\\./, '') : '';\n const suffix = where ? ` — ${where}` : '';\n const lowered = codeOf(cx) + suffix;\n if (name === 'ternary') {\n explainChild(cx, fileName, { site: 'child', shape: 'ternary', lowered, reactive: 'live', deps: DEPS.cond, note: 'Frame: the first branch is built SYNCHRONOUSLY, later switches in a microtask; a new instance on every switch' });\n } else if (name === 'switchCase') {\n explainChild(cx, fileName, { site: 'child', shape: 'switch', lowered, reactive: 'live', deps: 'fields read in the discriminant getter; branches are rebuilt inside a Frame' });\n } else if (name === 'method') {\n explainChild(cx, fileName, { site: 'child', shape: 'method', lowered, reactive: 'live', deps: DEPS.getter, note: 'reactive text if the result is text, a Frame if it is a component' });\n } else if (name === 'list') {\n explainChild(cx, fileName, { site: 'child', shape: 'list', lowered, reactive: 'live', deps: DEPS.list });\n } else if (name === 'when') {\n explainChild(cx, fileName, { site: 'child', shape: 'when', lowered, reactive: 'live', deps: DEPS.cond });\n } else {\n explainChild(cx, fileName, { site: 'child', shape: name || 'binding', lowered, reactive: 'live', deps: DEPS.getter });\n }\n}\n\n/** `const _comp = cx; sender.controls.add(_comp)` yoluyla yerleştirilen çocuk. */\nfunction explainPlaced(cx: t.Node, fileName: string, where?: string): void {\n const suffix = where ? ` — ${where}` : '';\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && cx.callee.name === motifComponent() && cx.arguments.length === 1 && t.isObjectExpression(cx.arguments[0])) {\n const init = cx.arguments[0].properties.find(p => t.isObjectProperty(p) && t.isIdentifier(p.key) && p.key.name === 'initializeComponent') as t.ObjectProperty | undefined;\n const st = init && t.isArrowFunctionExpression(init.value) && t.isBlockStatement(init.value.body) ? init.value.body.body[0] : null;\n if (st && t.isExpressionStatement(st) && t.isCallExpression(st.expression) && t.isIdentifier(st.expression.callee) && st.expression.callee.name === 'sender.bindings.list') {\n explainChild(cx, fileName, { site: 'child', shape: 'list', lowered: codeOf(st.expression) + suffix, reactive: 'live', deps: DEPS.list, note: 'rows are matched by the item object (primitive items by value), not by key; a key is only checked for duplicates (MJX202)' });\n return;\n }\n }\n const text = describeTextNode(cx);\n if (text) {\n explainChild(cx, fileName, { site: 'child', shape: text.shape, lowered: text.lowered + suffix, reactive: text.reactive, deps: text.deps, note: text.note });\n return;\n }\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && (cx.callee.name === motifComponent() || cx.callee.name === motifFragment())) {\n const tagArg = cx.arguments[0];\n const tagName = t.isStringLiteral(tagArg) ? `<${tagArg.value}>` : t.isIdentifier(tagArg) || t.isMemberExpression(tagArg) ? `<${codeOf(tagArg)}>` : 'fragment';\n explainChild(cx, fileName, { site: 'element', shape: t.isStringLiteral(tagArg) ? 'element.dom' : cx.callee.name === motifFragment() ? 'fragment' : 'element.component', lowered: `sender.controls.add(${cx.callee.name}(${tagName}, …))${suffix}`, reactive: 'static', deps: 'none — the element itself is built once; bindings inside it are their own effects' });\n return;\n }\n explainChild(cx, fileName, { site: 'child', shape: 'value', lowered: `sender.controls.add(${codeOf(cx)})${suffix}`, reactive: 'once', deps: DEPS.once, note: 'the raw expression is placed once (components/arrays/undefined are filtered)' });\n}\n\nfunction makeInitializeComponentProp(statements: t.Statement[], userInit: t.Expression | null): t.ObjectProperty | null {\n if (statements.length > 0) {\n const compiled = t.arrowFunctionExpression([id('sender')], t.blockStatement([...statements]));\n return t.objectProperty(t.identifier('initializeComponent'), userInit ? t.arrayExpression([userInit, compiled]) : compiled);\n }\n return userInit ? t.objectProperty(t.identifier('initializeComponent'), userInit) : null;\n}\n\nexport function ParseComponent(path: NodePath<t.JSXElement>, state: State): t.CallExpression | t.Expression | t.ObjectMethod {\n\n\n\n const props = path.get('openingElement').get('attributes');\n var tag = getTag(path); \n let isSvgHere = false;\n if (t.isStringLiteral(tag)) {\n const tagName = tag.value;\n if (tagName === 'svg') isSvgHere = true;\n else if (svgTags.includes(tagName) && (!htmlTags.includes(tagName as any) || isInsideSvgTree(path))) isSvgHere = true;\n }\n const { htmlProps, eventProps, objectExpression, componentEvents, directives, preDirectives, thisStatement, spreadProps, userInit } = getProps(props, path, state)\n const fileName = String(state.get('filename') ?? '');\n const isComponentTag = !t.isStringLiteral(tag);\n\n const children = getChildren(path.get('children'), state);\n if (isSvgHere) {\n objectExpression.push(t.objectProperty(t.identifier('__isSvgElement'), t.booleanLiteral(true)));\n }\n\n var callArgs: t.Expression[] = [];\n let statements: t.Statement[] = [];\n var childs: t.Expression[] = [];\n\n if (thisStatement.length > 0) {\n statements.push(thisStatement[0])\n\n }\n\n children.forEach(exp => {\n if (t.isExpression(exp)) {\n\n if (exp !== null) {\n\n if (t.isCallExpression(exp) && t.isIdentifier(exp.callee) && exp.callee.name === 'sender.repeater') {\n\n var callerFn = t.objectProperty(t.identifier('initializeComponent'), t.arrowFunctionExpression([id('sender')], t.blockStatement([t.expressionStatement(\n t.callExpression(id('sender.bindings.list'), [\n listSource(exp.arguments[0] as t.Expression),\n listRender(exp.arguments)\n ])\n )])));\n\n var cex = t.callExpression(id('_mc'), [t.objectExpression([callerFn])]);\n transferOrigin(exp, cex);\n childs.push(cex);\n } else {\n childs.push(exp);\n }\n }\n }\n })\n if (htmlProps.length > 0) {\n htmlProps.forEach(d => {\n statements.push(d);\n })\n }\n\n if (eventProps.length > 0) {\n eventProps.forEach(d => {\n statements.push(d);\n })\n }\n\n var hasLoop = false;\n if (directives.length > 0) {\n directives.forEach(d => {\n statements.push(d);\n })\n }\n\n var bodyExpression = t.objectExpression([]);\n\n var existThis = false;\n if (childs.length > 0) {\n childs.forEach(cx => {\n\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && cx.callee.name.startsWith('sender.bindings.')) {\n statements.push(t.expressionStatement(cx));\n explainBindingCall(cx, fileName);\n }\n else if (t.isArrayExpression(cx)) {\n statements.push(t.expressionStatement(t.callExpression(id('sender.controls.add'), [cx])));\n explainChild(cx, fileName, { site: 'child', shape: 'array', lowered: statements[statements.length - 1], reactive: 'static', deps: DEPS.none, note: 'the component array is placed once' });\n }\n else\n if (t.isFunctionExpression(cx)) {\n fail('MJX008', 'A function expression cannot be a JSX child; use an arrow function: {() => …}.', path as NodePath<t.Node>);\n }\n // else if (t.isArrowFunctionExpression(cx)) {\n else if (t.isAssignmentExpression(cx)) {\n statements.push(t.expressionStatement(cx))\n } else if (isCoalesceLogical(cx)) {\n // C1: `{a ?? b}` / `{a || b}` — `when` DEĞİL\n statements.push(t.expressionStatement(makeCoalesceChild(cx as t.LogicalExpression)));\n explainChild(cx, fileName, { site: 'child', shape: 'coalesce', lowered: statements[statements.length - 1], reactive: 'live', deps: DEPS.getter, note: 'reactive text if the result is text, a Frame if it is a component' });\n } else if (t.isLogicalExpression(cx)) {\n\n\n var ifStatement = findIfStatements(cx.left);\n\n\n if (t.isFunction(cx.left) || t.isArrowFunctionExpression(cx.left) || t.isFunctionExpression(cx.left) || t.isFunctionDeclaration(cx.left)) {\n\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', cx.left), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(cx.left, []), t.arrowFunctionExpression([], cx.left)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n var tryStatement = t.tryStatement(t.blockStatement([rtrns]), null, null);\n if (!t.isFunctionDeclaration(cx.right) && !t.isArrowFunctionExpression(cx.right)) {\n\n var ifst = t.ifStatement(t.identifier('__v'),\n t.blockStatement([t.returnStatement(cx.right)]),\n t.blockStatement([t.returnStatement(t.callExpression(t.identifier(motifComponent()), [t.objectExpression([])]))]))\n\n cx.right = t.arrowFunctionExpression([t.identifier(\"__v\")], t.blockStatement([t.returnStatement(cx.right)]))\n }\n var a1 = t.callExpression(id('sender.bindings.when'), [kx, cx.right]);\n } else {\n // var mx = t.binaryExpression('===', t.unaryExpression('typeof', cx.left), t.stringLiteral('function'));\n // var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(cx.left, []), t.arrowFunctionExpression([], cx.left)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([t.returnStatement(cx.left)]));\n var tryStatement = t.tryStatement(t.blockStatement([rtrns]), t.catchClause(null, t.blockStatement([t.returnStatement(t.nullLiteral())])), null);\n var kx = t.arrowFunctionExpression([], t.blockStatement([tryStatement]));\n\n if (!t.isFunctionDeclaration(cx.right) && !t.isArrowFunctionExpression(cx.right)) {\n\n var ifst = t.ifStatement(t.identifier('__v'),\n t.blockStatement([t.returnStatement(cx.right)]),\n t.blockStatement([t.returnStatement(t.callExpression(t.identifier(motifComponent()), [t.objectExpression([])]))]))\n\n cx.right = t.arrowFunctionExpression([t.identifier(\"__v\")], t.blockStatement([t.returnStatement(cx.right)]))\n }\n var a1 = t.callExpression(id('sender.bindings.when'), [kx, cx.right]);\n }\n\n // var mx = t.binaryExpression('===', t.unaryExpression('typeof', cx.left), t.stringLiteral('function'));\n // var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(cx.left, []), t.arrowFunctionExpression([], cx.left)));\n // var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]), t.blockStatement([t.returnStatement(t.arrowFunctionExpression([], t.nullLiteral()))]));\n // var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n // if (!t.isFunctionDeclaration(cx.right) && !t.isArrowFunctionExpression(cx.right)) {\n\n // var ifst = t.ifStatement(t.identifier('val'),\n\n // var a1 = t.callExpression(id('sender.bind.logic'), [kx, cx.right]);\n statements.push(t.expressionStatement(a1))\n explainChild(cx, fileName, { site: 'child', shape: 'when', lowered: a1, reactive: 'live', deps: DEPS.cond, note: 'JS truthiness; false → never built, a NEW instance is built on each switch to true. Deliberate alternative: x-wait' });\n\n\n } else {\n if (t.isStringLiteral(tag)) {\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && cx.callee.name === 'sender.motif.on' && existThis == false) {\n existThis = true;\n }\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && cx.callee.name === 'sender.bindings.list') {\n hasLoop = true;\n statements.push(t.expressionStatement(cx));\n } else {\n if (((t.isFunctionExpression(cx)) && t.isJSXElement((cx as t.FunctionExpression).returnType)) || ((t.isArrowFunctionExpression(cx)) && t.isJSXElement((cx as t.ArrowFunctionExpression).returnType))) {\n statements.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.method'), [cx])));\n explainChild(cx, fileName, { site: 'child', shape: 'method', lowered: statements[statements.length - 1], reactive: 'live', deps: DEPS.getter, note: 'reactive text if the result is text, a Frame if it is a component (the instance is rebuilt on every change)' });\n } else if ((t.isArrowFunctionExpression(cx))) {\n statements.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.method'), [cx])));\n explainChild(cx, fileName, { site: 'child', shape: 'method', lowered: statements[statements.length - 1], reactive: 'live', deps: DEPS.getter, note: 'reactive text if the result is text, a Frame if it is a component (the instance is rebuilt on every change)' });\n } else {\n var uid = path.scope.generateUid('_comp');\n statements.push(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(uid), cx)]));\n statements.push(t.expressionStatement(t.callExpression(t.identifier('sender.controls.add'), [t.identifier(uid)])));\n explainPlaced(cx, fileName);\n }\n\n }\n }\n }\n });\n }\n if (isComponentTag) {\n childs.forEach(cx => {\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && cx.callee.name.startsWith('sender.bindings.')) { explainBindingCall(cx, fileName, 'inside the childs slot'); return; }\n if (t.isLogicalExpression(cx)) { explainChild(cx, fileName, { site: 'child', shape: 'when', lowered: 'bindings.when(…) — inside the childs slot', reactive: 'live', deps: DEPS.cond }); return; }\n if (t.isArrowFunctionExpression(cx)) { explainChild(cx, fileName, { site: 'child', shape: 'method', lowered: 'childs: [fn] — bindings.method when the component places it', reactive: 'live', deps: DEPS.getter }); return; }\n explainPlaced(cx, fileName, 'childs: […] — the component places it with {this.childs}');\n });\n }\n\n\n\n if (t.isStringLiteral(tag)) {\n let preStatements: t.Statement[] = [];\n\n\n if (preDirectives.length > 0) {\n preStatements.push(...preDirectives);\n }\n\n if (preStatements.length > 0) {\n var preconfigProp = t.objectProperty(t.identifier('preconfig'), t.arrowFunctionExpression([id('sender')], t.blockStatement([...preStatements])));\n bodyExpression.properties.push(preconfigProp);\n }\n\n if (componentEvents.length > 0) {\n bodyExpression.properties.push(...componentEvents)\n }\n if (objectExpression.length > 0) {\n // var expr = t.objectProperty(t.identifier('props'), t.objectExpression(objectExpression));\n bodyExpression.properties.push(...objectExpression)\n };\n if (spreadProps.length > 0) {\n bodyExpression.properties.push(...spreadProps)\n };\n\n const initProp = makeInitializeComponentProp(statements, userInit);\n if (initProp) {\n bodyExpression.properties.push(initProp);\n }\n\n\n } else {\n var tts = t.objectProperty(id('childs'), t.arrayExpression(childs));\n if (objectExpression.length > 0) {\n //var expr = t.objectProperty(t.identifier('props'), t.objectExpression({ ...objectExpression, ...spreadProps }));\n bodyExpression.properties.push(...objectExpression)\n };\n\n if (spreadProps.length > 0) {\n bodyExpression.properties.push(...spreadProps)\n };\n\n var takedown = t.objectExpression([]);\n\n const initProp = makeInitializeComponentProp(statements, userInit);\n if (initProp) {\n takedown.properties.push(initProp);\n }\n\n if (preDirectives.length > 0) {\n let preStatements: t.Statement[] = [];\n preStatements.push(...preDirectives)\n var preconfigProp = t.objectProperty(t.identifier('preconfig'), t.arrowFunctionExpression([id('sender')], t.blockStatement([...preStatements])));\n takedown.properties.push(preconfigProp);\n }\n\n if (componentEvents.length > 0) {\n takedown.properties.push(...componentEvents)\n }\n var exp = t.objectProperty(id('runover'), takedown);\n bodyExpression.properties.push(exp);\n bodyExpression.properties.push(tts);\n }\n\n callArgs.push(bodyExpression);\n\n\n return t.callExpression(t.identifier(motifComponent()), [tag, ...callArgs]);\n\n\n}\n\nexport function ParseFrament(path: NodePath<t.JSXElement>, state: State): t.CallExpression | t.Expression | t.ObjectMethod {\n const fileName = String(state.get('filename') ?? '');\n const children = getChildren(path.get('children'), state);\n var childs: t.Expression[] = [];\n var initBody: t.BlockStatement = t.blockStatement([]);\n children.forEach(exp => {\n if (t.isExpression(exp)) {\n if (exp !== null) {\n var uid = path.scope.generateUid('_comp');\n if (t.isCallExpression(exp) && t.isIdentifier(exp.callee) && exp.callee.name === 'sender.repeater') {\n initBody.body.push(t.expressionStatement(t.callExpression(id('sender.bindings.list'), [listSource(exp.arguments[0] as t.Expression), listRender(exp.arguments)])));\n explainChild(exp, fileName, { site: 'child', shape: 'list', lowered: initBody.body[initBody.body.length - 1], reactive: 'live', deps: DEPS.list });\n } else if (isCoalesceLogical(exp)) { \n initBody.body.push(t.expressionStatement(makeCoalesceChild(exp as t.LogicalExpression)));\n explainChild(exp, fileName, { site: 'child', shape: 'coalesce', lowered: initBody.body[initBody.body.length - 1], reactive: 'live', deps: DEPS.getter });\n } else if (t.isLogicalExpression(exp)) { \n var ifStatement = findIfStatements(exp.left);\n var condFn: t.ArrowFunctionExpression;\n if (t.isFunction(exp.left) || t.isArrowFunctionExpression(exp.left) || t.isFunctionExpression(exp.left) || t.isFunctionDeclaration(exp.left)) {\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp.left), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp.left, []), exp.left));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n condFn = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n } else {\n var rtrnsPlain = t.ifStatement(ifStatement!, t.blockStatement([t.returnStatement(exp.left)]));\n var tryStatement = t.tryStatement(t.blockStatement([rtrnsPlain]), t.catchClause(null, t.blockStatement([t.returnStatement(t.nullLiteral())])), null);\n condFn = t.arrowFunctionExpression([], t.blockStatement([tryStatement]));\n }\n if (!t.isFunctionDeclaration(exp.right) && !t.isArrowFunctionExpression(exp.right)) {\n exp.right = t.arrowFunctionExpression([t.identifier(\"val\")], t.blockStatement([t.returnStatement(exp.right)]))\n }\n var a1 = t.callExpression(id('sender.bindings.when'), [condFn, exp.right]);\n initBody.body.push(t.expressionStatement(a1));\n explainChild(exp, fileName, { site: 'child', shape: 'when', lowered: a1, reactive: 'live', deps: DEPS.cond, note: 'at a fragment root; JS truthiness. Deliberate alternative: x-wait' });\n }\n else {\n childs.push(exp);\n initBody.body.push(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(uid), exp)]));\n if ((t.isFunctionExpression(exp)) && t.isJSXElement((exp as t.FunctionExpression).returnType)) {\n initBody.body.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.method'), [t.identifier(uid)])))\n explainChild(exp, fileName, { site: 'child', shape: 'method', lowered: `sender.bindings.method(${codeOf(exp)})`, reactive: 'live', deps: DEPS.getter });\n } else if ((t.isArrowFunctionExpression(exp)) && t.isJSXElement((exp as t.ArrowFunctionExpression).returnType)) {\n initBody.body.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.method'), [t.identifier(uid)])))\n explainChild(exp, fileName, { site: 'child', shape: 'method', lowered: `sender.bindings.method(${codeOf(exp)})`, reactive: 'live', deps: DEPS.getter });\n } else if ((t.isArrowFunctionExpression(exp))) {\n initBody.body.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.method'), [t.identifier(uid)])))\n explainChild(exp, fileName, { site: 'child', shape: 'method', lowered: `sender.bindings.method(${codeOf(exp)})`, reactive: 'live', deps: DEPS.getter, note: 'reactive text if the result is text, a Frame if it is a component' });\n } else if (t.isCallExpression(exp) && t.isIdentifier(exp.callee) && exp.callee.name.startsWith('sender.bindings.')) {\n initBody.body.push(t.expressionStatement(t.callExpression(t.identifier('sender.controls.add'), [t.identifier(uid)])))\n explainBindingCall(exp, fileName, 'at a fragment root');\n } else {\n initBody.body.push(t.expressionStatement(t.callExpression(t.identifier('sender.controls.add'), [t.identifier(uid)])))\n explainPlaced(exp, fileName);\n }\n\n\n\n }\n }\n }\n })\n\n\n if (!state.get(motifFragment())) {\n state.set(motifFragment(), motifFragment());\n }\n\n\n var tts = t.objectProperty(id('nodes'), t.arrayExpression(childs));\n var objExp = t.objectExpression([]);\n if (initBody !== null) {\n\n var initProp = t.objectProperty(t.identifier('initializeComponent'), t.arrowFunctionExpression([id('sender')], t.blockStatement([initBody])));\n\n objExp.properties.push(initProp);\n }\n return t.callExpression(t.identifier(motifFragment()), [objExp]);\n}","import * as t from \"@babel/types\";\nimport { NodePath } from \"@babel/traverse\";\n\nexport const ASYNC_TRACKING_LOCAL = '__motifAsyncTracking';\n\nexport function isVirtualizationDataRequest(path: NodePath<t.JSXAttribute>): boolean {\n const attr = path.node;\n if (!t.isJSXIdentifier(attr.name) || attr.name.name !== 'dataRequest') return false;\n const opening = path.parentPath;\n if (!opening || !t.isJSXOpeningElement(opening.node)) return false;\n const name = opening.node.name;\n if (t.isJSXIdentifier(name)) return name.name === 'Virtualization';\n if (t.isJSXMemberExpression(name)) return name.property.name === 'Virtualization';\n return false;\n}\n\nexport function wrapAwaitsForTracking(fn: NodePath<t.ArrowFunctionExpression | t.FunctionExpression>): boolean {\n if (!fn.node.async) return false;\n\n const token = fn.scope.generateUidIdentifier('mt');\n const call = (method: string, args: t.Expression[]) =>\n t.callExpression(t.memberExpression(t.identifier(ASYNC_TRACKING_LOCAL), t.identifier(method)), args);\n\n const wrapped = new WeakSet<t.Node>();\n let count = 0;\n fn.traverse({\n Function(inner) {\n inner.skip();\n },\n AwaitExpression: {\n exit(p) {\n if (wrapped.has(p.node)) return;\n const awaited = t.awaitExpression(call('suspend', [t.cloneNode(token), p.node.argument]));\n wrapped.add(awaited);\n p.replaceWith(call('resume', [t.cloneNode(token), awaited]));\n count++;\n },\n },\n });\n if (count === 0) return false;\n\n const body = fn.node.body;\n const statements = t.isBlockStatement(body) ? body.body : [t.returnStatement(body)];\n fn.node.body = t.blockStatement([\n t.variableDeclaration('const', [t.variableDeclarator(token, call('capture', []))]),\n t.tryStatement(\n t.blockStatement(statements),\n null,\n t.blockStatement([t.expressionStatement(call('end', [t.cloneNode(token)]))]),\n ),\n ]);\n return true;\n}\n","\nexport const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nconst HTML_TAGS: Record<string, string> = {\n HTMLAnchorElement: 'a',\n HTMLAreaElement: 'area',\n HTMLAudioElement: 'audio',\n HTMLBRElement: 'br',\n HTMLBaseElement: 'base',\n HTMLBodyElement: 'body',\n HTMLButtonElement: 'button',\n HTMLCanvasElement: 'canvas',\n HTMLDListElement: 'dl',\n HTMLDataElement: 'data',\n HTMLDataListElement: 'datalist',\n HTMLDetailsElement: 'details',\n HTMLDialogElement: 'dialog',\n HTMLDivElement: 'div',\n HTMLEmbedElement: 'embed',\n HTMLFieldSetElement: 'fieldset',\n HTMLFormElement: 'form',\n HTMLHRElement: 'hr',\n HTMLHeadElement: 'head',\n HTMLHeadingElement: 'h1',\n HTMLHtmlElement: 'html',\n HTMLIFrameElement: 'iframe',\n HTMLImageElement: 'img',\n HTMLInputElement: 'input',\n HTMLLIElement: 'li',\n HTMLLabelElement: 'label',\n HTMLLegendElement: 'legend',\n HTMLLinkElement: 'link',\n HTMLMapElement: 'map',\n HTMLMenuElement: 'menu',\n HTMLMetaElement: 'meta',\n HTMLMeterElement: 'meter',\n HTMLModElement: 'ins',\n HTMLOListElement: 'ol',\n HTMLObjectElement: 'object',\n HTMLOptGroupElement: 'optgroup',\n HTMLOptionElement: 'option',\n HTMLOutputElement: 'output',\n HTMLParagraphElement: 'p',\n HTMLPictureElement: 'picture',\n HTMLPreElement: 'pre',\n HTMLProgressElement: 'progress',\n HTMLQuoteElement: 'blockquote',\n HTMLScriptElement: 'script',\n HTMLSelectElement: 'select',\n HTMLSlotElement: 'slot',\n HTMLSourceElement: 'source',\n HTMLSpanElement: 'span',\n HTMLStyleElement: 'style',\n HTMLTableCaptionElement: 'caption',\n HTMLTableCellElement: 'td',\n HTMLTableColElement: 'col',\n HTMLTableElement: 'table',\n HTMLTableRowElement: 'tr',\n HTMLTableSectionElement: 'tbody',\n HTMLTemplateElement: 'template',\n HTMLTextAreaElement: 'textarea',\n HTMLTimeElement: 'time',\n HTMLTitleElement: 'title',\n HTMLTrackElement: 'track',\n HTMLUListElement: 'ul',\n HTMLVideoElement: 'video',\n HTMLElement: 'div',\n};\n\nconst SVG_TAGS: Record<string, string> = {\n SVGSVGElement: 'svg',\n SVGGElement: 'g',\n SVGPathElement: 'path',\n SVGCircleElement: 'circle',\n SVGRectElement: 'rect',\n SVGLineElement: 'line',\n SVGTextElement: 'text',\n SVGTSpanElement: 'tspan',\n SVGPolygonElement: 'polygon',\n SVGPolylineElement: 'polyline',\n SVGEllipseElement: 'ellipse',\n SVGUseElement: 'use',\n SVGDefsElement: 'defs',\n SVGImageElement: 'image',\n SVGMaskElement: 'mask',\n SVGSymbolElement: 'symbol',\n SVGMarkerElement: 'marker',\n SVGForeignObjectElement: 'foreignObject',\n SVGLinearGradientElement: 'linearGradient',\n SVGRadialGradientElement: 'radialGradient',\n SVGStopElement: 'stop',\n SVGClipPathElement: 'clipPath',\n};\n\nexport interface ResolvedElementType {\n tag: string;\n namespace?: string;\n}\n\nexport function resolveElementType(typeName: string): ResolvedElementType | undefined {\n if (!typeName) return undefined;\n const html = HTML_TAGS[typeName];\n if (html) return { tag: html };\n const svg = SVG_TAGS[typeName];\n if (svg) return { tag: svg, namespace: SVG_NAMESPACE };\n return undefined;\n}","import * as t from '@babel/types';\nimport { NodePath } from '@babel/core';\nimport * as babel from '@babel/core';\nimport syntax_jsx from \"@babel/plugin-syntax-jsx\";\nimport syntax_flow from \"@babel/plugin-syntax-flow\";\nimport preset_flow from \"@babel/preset-flow\";\nimport preset_typescript from \"@babel/preset-typescript\";\nimport proposal_decorators from \"@babel/plugin-proposal-decorators\";\nimport transform_class_properties from \"@babel/plugin-transform-class-properties\";\nimport transform_class_static_block from \"@babel/plugin-transform-class-static-block\";\nimport { ParseComponent, ParseFrament, recordClassMembers } from './motifParser';\nimport { COMPILER_CONTRACT, motifCompiled, motifComponent, motifFragment, motifFunctionComponent, State } from \"./constants\";\nimport { ASYNC_TRACKING_LOCAL, isVirtualizationDataRequest, wrapAwaitsForTracking } from \"./asyncTracking\";\nimport { resolveElementType } from \"./elementTags\";\nimport { beginCollect, endCollect, type MotifDiagnostic } from \"./diagnostics\";\nimport { beginExplain, endExplain, isExplaining, captureOrigin, noteOriginRaw, type MotifExplanation } from \"./explain\";\n\n\nfunction absorbGeneratedCoreImports(statements: NodePath[], into: Map<string, t.ImportSpecifier>): void {\n const fromCore = statements.filter(statement => t.isImportDeclaration(statement.node) && statement.node.source.value === '@motifx/core');\n for (const statement of fromCore) {\n let absorbed = false;\n for (const specifier of (statement.node as t.ImportDeclaration).specifiers) {\n if (specifier.loc || !t.isImportSpecifier(specifier) || !t.isIdentifier(specifier.imported)) continue;\n const importedName = specifier.imported.name;\n if (into.has(importedName)) continue;\n into.set(importedName, specifier);\n absorbed = true;\n }\n if (absorbed) statement.remove();\n }\n}\n\nfunction hasStaticMember(node: t.ClassDeclaration | t.ClassExpression, name: string): boolean {\n return node.body.body.some(m =>\n (t.isClassProperty(m) || t.isClassMethod(m)) &&\n (m as any).static === true &&\n t.isIdentifier(m.key) &&\n m.key.name === name\n );\n}\n\nfunction injectDeclaredElementTag(path: NodePath<t.ClassDeclaration | t.ClassExpression>) {\n try {\n const node = path.node;\n if (!t.isIdentifier(node.superClass) || node.superClass.name !== 'Component') return;\n if (hasStaticMember(node, 'elementTag')) return;\n\n const typeArgs: any = (node as any).superTypeParameters ?? (node as any).superTypeArguments;\n const first = typeArgs?.params?.[0];\n if (!first || !t.isTSTypeReference(first) || !t.isIdentifier(first.typeName)) return;\n\n const resolved = resolveElementType(first.typeName.name);\n if (!resolved) return;\n\n const members: any[] = [\n t.classProperty(t.identifier('elementTag'), t.stringLiteral(resolved.tag), null, null, false, true)\n ];\n if (resolved.namespace && !hasStaticMember(node, 'elementNamespace')) {\n members.push(\n t.classProperty(t.identifier('elementNamespace'), t.stringLiteral(resolved.namespace), null, null, false, true)\n );\n }\n node.body.body.unshift(...members);\n } catch { /* enjeksiyon başarısızsa derleme bozulmasın */ }\n}\n\n\nconst elementTagPlugin = () => ({\n name: 'motifjs-element-tag',\n visitor: {\n Class: {\n enter(path: NodePath<t.ClassDeclaration | t.ClassExpression>) {\n injectDeclaredElementTag(path);\n }\n }\n }\n});\n\n\n\nexport default class Compiler {\n\n\n public motifCompile(code: string, filename: string): babel.BabelFileResult | null {\n\n return this.start(code, filename);\n }\n public diagnostics: MotifDiagnostic[] = [];\n public explanations: MotifExplanation[] = [];\n\n public start(code: string, filename: string): babel.BabelFileResult | null {\n\n beginCollect();\n try {\n return this._run(code, filename);\n } finally {\n this.diagnostics = endCollect();\n }\n }\n\n public lowerDecorators(code: string, filename: string): babel.BabelFileResult | null {\n const file = filename.split('?')[0];\n return babel.transformSync(code, {\n sourceType: 'module',\n babelrc: false,\n configFile: false,\n code: true,\n sourceMaps: true,\n comments: true,\n highlightCode: false,\n filename: file,\n sourceFileName: file,\n parserOpts: { plugins: /\\.[mc]?ts$/.test(file) ? ['typescript'] : [] },\n plugins: [[proposal_decorators, { \"version\": \"2023-11\" }]],\n });\n }\n\n public explain(code: string, filename: string): babel.BabelFileResult | null {\n beginCollect();\n beginExplain();\n try {\n return this._run(code, filename);\n } finally {\n this.diagnostics = endCollect();\n this.explanations = endExplain();\n }\n }\n\n private _run(code: string, filename: string): babel.BabelFileResult | null {\n return babel.transformSync(code, {\n sourceType: 'module',\n ast: true,\n babelrc: false,\n configFile: false,\n cloneInputAst: false,\n code: true,\n sourceMaps: true,\n comments: true,\n highlightCode: false,\n minified: false,\n compact: false,\n filename: filename,\n sourceFileName: filename,\n presets: [\n preset_flow,\n [preset_typescript, {\n onlyRemoveTypeImports: true,\n isTSX: true,\n allExtensions: true,\n }]\n ],\n plugins: [\n elementTagPlugin,\n [proposal_decorators, { \"version\": \"2023-11\" }],\n [transform_class_properties, { \"loose\": true }],\n transform_class_static_block,\n syntax_flow,\n syntax_jsx,\n function () {\n return {\n visitor: {\n JSXAttribute(path: NodePath<t.JSXAttribute>, state: State) {\n if (!isVirtualizationDataRequest(path)) return;\n const value = path.get('value');\n if (!value.isJSXExpressionContainer()) return;\n const fn = value.get('expression');\n if (!fn.isArrowFunctionExpression() && !fn.isFunctionExpression()) return;\n if (wrapAwaitsForTracking(fn)) state.set(ASYNC_TRACKING_LOCAL, true);\n },\n JSXElement: {\n exit(path: NodePath<t.JSXElement>, state: State) {\n state.set('filename', filename);\n const origin = isExplaining() ? captureOrigin(path as NodePath<t.Node>, code) : null;\n const out = ParseComponent(path, state);\n if (origin) noteOriginRaw(out, origin);\n path.replaceWith(out);\n\n if (!state.get(motifFunctionComponent())) {\n state.set(motifFunctionComponent(), motifFunctionComponent());\n }\n }\n },\n GenericTypeAnnotation: {\n exit(path: NodePath<t.GenericTypeAnnotation>, state: State) {\n\n\n }\n },\n TypeParameterInstantiation: {\n exit(path: NodePath<t.TypeParameterInstantiation>, state: State) {\n\n }\n },\n JSXFragment: {\n exit(path: NodePath<t.JSXElement>, state: State) {\n state.set('filename', filename);\n const origin = isExplaining() ? captureOrigin(path as NodePath<t.Node>, code) : null;\n const out = ParseFrament(path, state);\n if (origin) noteOriginRaw(out, origin);\n path.replaceWith(out);\n var findProgram = (p: any): any => {\n if (p.parent !== null) {\n if (t.isProgram(p.parent)) {\n return p.parent;\n } else {\n return findProgram(p.parent)\n }\n } else {\n return p;\n }\n }\n }\n },\n Program: {\n enter(path: NodePath<t.Program>, state: State) {\n state.set('originalCode', code);\n recordClassMembers(path);\n },\n exit(path: NodePath<t.Program>, state: State) {\n\n const topLevel = path.get('body') as NodePath[];\n const coreImports = new Map<string, t.ImportSpecifier>();\n coreImports.set('motifComponent', t.importSpecifier(t.identifier(motifComponent()), t.identifier(\"motifComponent\")))\n if (state.get(motifFragment())) {\n coreImports.set('motifFragment', t.importSpecifier(t.identifier(motifFragment()), t.identifier(\"motifFragment\")));\n }\n\n coreImports.set('FNComponent', t.importSpecifier(t.identifier(motifFunctionComponent()), t.identifier(\"FNComponent\")));\n coreImports.set('motifCompiled', t.importSpecifier(t.identifier(motifCompiled()), t.identifier('motifCompiled')));\n if (state.get(ASYNC_TRACKING_LOCAL)) {\n coreImports.set('asyncTracking', t.importSpecifier(t.identifier(ASYNC_TRACKING_LOCAL), t.identifier('asyncTracking')));\n }\n\n\n var isSFC = false;\n var viewReturn: t.CallExpression = null as any;\n var setInternal: t.Statement[] = [];\n var setOriginal: t.Statement[] = [];\n path.node.body.forEach(tx => {\n if (t.isVariableDeclaration(tx)) {\n // if (t.isObjectExpression(y.init)) {\n setInternal.push(tx);\n } else if (t.isIfStatement(tx)) {\n setInternal.push(tx);\n } else if (t.isExpressionStatement(tx) && t.isAssignmentExpression(tx.expression)) {\n setInternal.push(tx);\n } else if (t.isExpressionStatement(tx) && t.isCallExpression(tx.expression) && t.isMemberExpression(tx.expression.callee)) {\n setInternal.push(tx);\n } else if (t.isExpressionStatement(tx) && t.isCallExpression(tx.expression) && t.isIdentifier(tx.expression.callee)) {\n if (tx.expression.callee.name === motifComponent() || tx.expression.callee.name === motifFragment()) {\n isSFC = true;\n viewReturn = tx.expression;\n }\n } else {\n setOriginal.push(tx);\n }\n\n\n });\n if (isSFC) {\n var rtrn = t.returnStatement(viewReturn);\n coreImports.set('Component', t.importSpecifier(t.identifier(\"_mC\"), t.identifier(\"Component\")));\n var cls = t.exportDefaultDeclaration(t.classDeclaration(t.identifier('runtimeClass'), t.identifier('_mC'), t.classBody([t.classMethod('method', t.identifier('view'), [t.identifier('sender')], t.blockStatement([...setInternal, rtrn]))])));\n\n\n path.node.body = [...setOriginal, cls];\n }\n state.set('filename', filename);\n absorbGeneratedCoreImports(topLevel, coreImports);\n\n if (coreImports.size > 0) {\n const contractCall = t.callExpression(t.identifier(motifCompiled()), [t.numericLiteral(COMPILER_CONTRACT)]);\n t.addComment(contractCall, 'leading', '#__PURE__');\n const coreImport = t.importDeclaration(Array.from(coreImports.values()), t.stringLiteral('@motifx/core'));\n path.unshiftContainer('body', [coreImport, t.expressionStatement(contractCall)]);\n }\n // if (injectableRegistry.length > 0) {\n // const output = `\n // export const GeneratedInjectables: any[] = [\n\n\n\n // if (allClassesRegistry.length > 0) {\n // const output = `\n // export const ClassReferences: any[] = [\n\n // fs.writeFileSync(pPath.join(process.cwd(), \"generated-class.ts\"), output);\n\n }\n },\n },\n }\n },\n function devOnlyStrip() {\n let isDev = true;\n const flag = (globalThis as any).__MOTIF_DEV__;\n if (typeof flag === 'boolean') isDev = flag;\n if (typeof process !== 'undefined' && process?.env?.MOTIF_DEV === 'false') isDev = false;\n const consumed = new WeakSet<object>();\n const hasMarker = (node: any, pattern: RegExp) => {\n const comments: any[] = ([] as any[]).concat(node.leadingComments || []);\n return comments.some(c => typeof c.value === 'string' && pattern.test(c.value) && !consumed.has(c));\n };\n const consumeMarkers = (node: any) => {\n const comments: any[] = ([] as any[]).concat(node.leadingComments || []);\n for (const c of comments) {\n if (typeof c.value === 'string' && /@DEV-ONLY/.test(c.value)) consumed.add(c);\n }\n };\n const stripIfMarked = (path: NodePath) => {\n if (isDev) return;\n try {\n if (hasMarker(path.node, /@DEV-ONLY/)) {\n consumeMarkers(path.node);\n path.remove();\n }\n } catch { /* ignore single node */ }\n };\n return {\n visitor: {\n Program(path: NodePath<t.Program>) {\n if (isDev) return;\n const bodyPaths = path.get('body') as NodePath[];\n for (const stmtPath of bodyPaths) {\n try {\n const node: any = stmtPath.node;\n if (hasMarker(node, /@DEV-ONLY/)) {\n consumeMarkers(node);\n stmtPath.remove();\n continue;\n } \n const allComments: any[] = ([] as any[]).concat(node.leadingComments || [], node.trailingComments || []);\n if (allComments.some(c => /@DEV-ONLY-BEGIN/.test(c.value) && !consumed.has(c))) {\n consumeMarkers(node);\n stmtPath.remove();\n continue;\n }\n } catch { /* ignore single node */ }\n }\n },\n ClassDeclaration: stripIfMarked,\n FunctionDeclaration: stripIfMarked,\n VariableDeclaration: stripIfMarked\n }\n };\n }\n ],\n\n })\n }\n}","import * as path from \"node:path\";\nimport * as ts from \"typescript\";\nimport Compiler from \"./compiler\";\nimport { printDiagnostics } from \"./diagnostics\";\nimport { printExplanations } from \"./explain\";\nconst fileRegex = /\\.(jsx|tsx|aio|mjsx|mtsx)$/;\nconst decoratorFileRegex = /\\.(ts|mts|cts|js|mjs|cjs)$/;\nconst declarationFileRegex = /\\.d\\.[mc]?ts$/;\nconst decoratorSyntaxRegex = /(?:^|[\\s(,;{}])@[A-Za-z_$]/;\nconst assetQueryRegex = /(?:^|&)(?:raw|url|worker|sharedworker|inline)(?:[&=]|$)/;\n\nfunction sourceFile(id: string): string | null {\n if (id.charCodeAt(0) === 0) return null;\n const queryStart = id.indexOf('?');\n if (queryStart !== -1 && assetQueryRegex.test(id.slice(queryStart + 1))) return null;\n return queryStart === -1 ? id : id.slice(0, queryStart);\n}\n\nexport function shouldTransform(id: string): boolean {\n const file = sourceFile(id);\n return file !== null && fileRegex.test(file);\n}\n\nexport function shouldLowerDecorators(id: string, src: string): boolean {\n const file = sourceFile(id);\n if (file === null || !decoratorFileRegex.test(file) || declarationFileRegex.test(file)) return false;\n if (file.includes('/node_modules/')) return false;\n return decoratorSyntaxRegex.test(src);\n}\n\nfunction legacyDecoratorsChecker() {\n const byConfig = new Map<string, boolean>();\n return (file: string): boolean => {\n const configPath = ts.findConfigFile(path.dirname(file), ts.sys.fileExists);\n if (!configPath) return false;\n let legacy = byConfig.get(configPath);\n if (legacy === undefined) {\n const read = ts.readConfigFile(configPath, ts.sys.readFile);\n legacy = !read.error && ts.parseJsonConfigFileContent(read.config, ts.sys, path.dirname(configPath)).options.experimentalDecorators === true;\n byConfig.set(configPath, legacy);\n }\n return legacy;\n };\n}\n\nexport interface MotifVitePluginOptions {\n diagnostics?: boolean;\n explain?: boolean | string | RegExp;\n}\n\nfunction explainMatches(opt: boolean | string | RegExp | undefined, id: string): boolean {\n if (!opt) return false;\n if (opt === true) return true;\n if (typeof opt === 'string') return id.includes(opt);\n return opt.test(id);\n}\n\nexport default function vitePlugin(options: MotifVitePluginOptions = {}) {\n const showDiagnostics = options.diagnostics !== false;\n const usesLegacyDecorators = legacyDecoratorsChecker();\n return {\n name: 'transform-file-motif-jsx',\n enforce: 'pre' as const,\n transform(src: string, id: string) {\n if (shouldLowerDecorators(id, src)) {\n if (usesLegacyDecorators(sourceFile(id)!)) return;\n const result = new Compiler().lowerDecorators(src, id);\n if (result && result.code) {\n return {\n code: result.code,\n map: result.map\n }\n }\n return;\n }\n if (shouldTransform(id)) {\n if (!src.includes(\"//useReact\") && !src.includes(\"//useVue\")) {\n try {\n const compiler = new Compiler();\n const doExplain = explainMatches(options.explain, id);\n var result = doExplain ? compiler.explain(src, id) : compiler.start(src, id);\n if (doExplain) printExplanations(compiler.explanations);\n if (showDiagnostics && compiler.diagnostics.length > 0) {\n printDiagnostics(compiler.diagnostics);\n }\n if (result && result.code) {\n return {\n code: result.code,\n map: result.map\n }\n }\n } catch (error) {\n throw error;\n }\n }\n }\n }\n }\n}\n","import * as ts from 'typescript';\nimport pPath from 'path';\nimport type { MotifDiagnostic } from './diagnostics';\n\n\nexport interface LintOptions {\n /** tsconfig yolu. Varsayılan: `./tsconfig.json`. */\n project?: string;\n /** Yalnızca bu dosyalar (mutlak ya da proje köküne göre). Verilmezse programın tüm kaynakları. */\n files?: string[];\n}\n\n/** `() => X` bu tipe geçebilir mi? Union'da tek bir çağrılabilir bileşen yeter. */\nexport function acceptsFunction(type: ts.Type, checker: ts.TypeChecker, depth = 0): boolean {\n if (depth > 8) return true; \n const f = type.flags;\n if (f & (ts.TypeFlags.Any | ts.TypeFlags.Unknown | ts.TypeFlags.Never)) return true;\n if (f & ts.TypeFlags.NonPrimitive) return true; \n if (type.isUnion()) return type.types.some(t => acceptsFunction(t, checker, depth + 1));\n if (type.isIntersection()) return type.types.every(t => acceptsFunction(t, checker, depth + 1));\n if (f & ts.TypeFlags.TypeParameter) {\n const c = (type as ts.TypeParameter).getConstraint?.() ?? checker.getBaseConstraintOfType(type);\n return c ? acceptsFunction(c, checker, depth + 1) : true;\n }\n if (checker.getSignaturesOfType(type, ts.SignatureKind.Call).length > 0) return true;\n if (checker.getSignaturesOfType(type, ts.SignatureKind.Construct).length > 0) return true;\n const sym = type.getSymbol();\n if (sym && (sym.name === 'Function' || sym.name === 'CallableFunction')) return true;\n if (f & ts.TypeFlags.Object) {\n const props = checker.getPropertiesOfType(type);\n const idx = checker.getIndexInfosOfType?.(type) ?? [];\n if (props.length === 0 && idx.length === 0 && checker.getSignaturesOfType(type, ts.SignatureKind.Call).length === 0) {\n const decl = sym?.declarations?.[0];\n if (!decl || ts.isTypeLiteralNode(decl) || ts.isInterfaceDeclaration(decl)) return true;\n }\n }\n return false;\n}\n\nfunction stripParens(e: ts.Expression): ts.Expression {\n let cur = e;\n while (ts.isParenthesizedExpression(cur)) cur = cur.expression;\n return cur;\n}\n\n/** Etiket bir bileşen mi? `div` gibi küçük harfli tanımlayıcı DOM'dur; üye ifadesi ve büyük harf bileşendir. */\nfunction isComponentTag(name: ts.JsxTagNameExpression): boolean {\n if (ts.isIdentifier(name)) {\n const n = name.text;\n return n.length > 0 && n[0] !== n[0].toLowerCase();\n }\n return ts.isPropertyAccessExpression(name); \n}\n\nfunction tagText(name: ts.JsxTagNameExpression): string {\n return name.getText();\n}\n \nexport function lintProgram(program: ts.Program, files?: string[]): MotifDiagnostic[] {\n const checker = program.getTypeChecker();\n const out: MotifDiagnostic[] = [];\n const wanted = files ? new Set(files.map(f => normalize(f))) : null;\n\n for (const sf of program.getSourceFiles()) {\n if (sf.isDeclarationFile) continue;\n if (sf.fileName.includes('/node_modules/')) continue;\n if (wanted && !wanted.has(normalize(sf.fileName))) continue;\n if (!/\\.(tsx|jsx|mtsx|mjsx)$/.test(sf.fileName)) continue;\n\n const visit = (node: ts.Node): void => {\n if (ts.isJsxAttribute(node) && node.initializer && ts.isJsxExpression(node.initializer) && node.initializer.expression) {\n const expr = stripParens(node.initializer.expression);\n if (ts.isConditionalExpression(expr)) {\n const attrs = node.parent;\n const opening = attrs.parent;\n if ((ts.isJsxOpeningElement(opening) || ts.isJsxSelfClosingElement(opening)) && isComponentTag(opening.tagName)) {\n check(node, expr, opening);\n }\n }\n }\n ts.forEachChild(node, visit);\n };\n\n const check = (attr: ts.JsxAttribute, expr: ts.ConditionalExpression, opening: ts.JsxOpeningLikeElement): void => {\n const propName = ts.isIdentifier(attr.name) ? attr.name.text : attr.name.getText();\n if (propName === 'key' || propName === 'indexkey' || /^x[-:]/i.test(propName) || /^on[-:_]/i.test(propName)) return;\n\n let type: ts.Type | undefined;\n try {\n const propsType = checker.getContextualType(opening.attributes as unknown as ts.Expression);\n const propSym = propsType ? checker.getPropertyOfType(propsType, propName) : undefined;\n const decl = propSym?.declarations?.find(d => (ts.isPropertySignature(d) || ts.isPropertyDeclaration(d)) && !!d.type) as ts.PropertySignature | ts.PropertyDeclaration | undefined;\n if (decl?.type) type = checker.getTypeFromTypeNode(decl.type);\n else if (propSym) type = checker.getTypeOfSymbolAtLocation(propSym, opening);\n else type = checker.getContextualType((attr.initializer as ts.JsxExpression).expression as ts.Expression);\n } catch { type = undefined; }\n if (!type) return;\n if (acceptsFunction(type, checker)) return;\n\n const typeText = checker.typeToString(type, undefined, ts.TypeFormatFlags.NoTruncation);\n const { line } = sf.getLineAndCharacterOfPosition(attr.getStart(sf));\n out.push({\n code: 'MJX005',\n file: sf.fileName,\n line: line + 1,\n message:\n `<${tagText(opening.tagName)} ${propName}={… ? … : …}>: the component declares \"${propName}\" as \"${typeText}\", ` +\n `but the compiler ALWAYS wraps an attribute ternary in \"() => …\" (by design, for reactivity), so the component receives ` +\n `a FUNCTION at runtime; TypeScript does not see this. Declare the prop as Bind<T> (T | (() => T)) and read it with read()/toGetter(). ` +\n `If the value is really static, compute the ternary outside JSX and pass the variable.`,\n frame: codeFrame(sf, attr),\n });\n };\n\n visit(sf);\n }\n return out;\n}\n\n/** tsconfig'den program kurup denetler. CLI bunu kullanır. */\nexport function lintProject(options: LintOptions = {}): MotifDiagnostic[] {\n const projectPath = options.project ?? 'tsconfig.json';\n const configFile = ts.findConfigFile(process.cwd(), ts.sys.fileExists, projectPath) ?? projectPath;\n const read = ts.readConfigFile(configFile, ts.sys.readFile);\n if (read.error) {\n const error = new Error(`[motifjs] MJX014: Cannot read ${configFile}: ${ts.flattenDiagnosticMessageText(read.error.messageText, '\\n')}`) as Error & { code?: string };\n error.code = 'MJX014';\n throw error;\n }\n const basePath = pPath.dirname(pPath.resolve(configFile));\n const parsed = ts.parseJsonConfigFileContent(read.config, ts.sys, basePath);\n const program = ts.createProgram({ rootNames: parsed.fileNames, options: { ...parsed.options, noEmit: true } });\n const files = options.files?.map(f => pPath.resolve(basePath, f));\n return lintProgram(program, files);\n}\n\nfunction normalize(p: string): string {\n return p.replace(/\\\\/g, '/').toLowerCase();\n}\n\nfunction codeFrame(sf: ts.SourceFile, node: ts.Node): string {\n const start = sf.getLineAndCharacterOfPosition(node.getStart(sf));\n const lines = sf.text.split(/\\r?\\n/);\n const from = Math.max(0, start.line - 1);\n const to = Math.min(lines.length - 1, start.line + 1);\n const width = String(to + 1).length;\n const outLines: string[] = [];\n for (let i = from; i <= to; i++) {\n const mark = i === start.line ? '>' : ' ';\n outLines.push(`${mark} ${String(i + 1).padStart(width)} | ${lines[i]}`);\n if (i === start.line) outLines.push(` ${' '.repeat(width)} | ${' '.repeat(start.character)}^`);\n }\n return outLines.join('\\n');\n}","import Compiler from \"./compiler\";\nimport vitePlugin, { type MotifVitePluginOptions } from \"./vitePlugin\";\nimport { printDiagnostics, type MotifDiagnostic } from \"./diagnostics\";\nimport { printExplanations, formatExplanations, type MotifExplanation, type ExplainReactivity, type ExplainSite } from \"./explain\";\nimport { lintProject, lintProgram, type LintOptions } from \"./lint\";\n\n/** Kaynağı derleyip her JSX ifadesinin neye indiğini döndürür (kod üretilmez, yalnızca kayıt). */\nexport function explain(code: string, filename: string): MotifExplanation[] {\n const c = new Compiler();\n c.explain(code, filename);\n return c.explanations;\n}\n\nexport type { MotifDiagnostic, MotifExplanation, ExplainReactivity, ExplainSite, LintOptions, MotifVitePluginOptions };\nexport { Compiler, printDiagnostics, printExplanations, formatExplanations, lintProject, lintProgram };\nexport default vitePlugin;\n"],"names":["active","diagWarn"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/htmlAtributes.ts","../src/constants.ts","../src/diagnostics.ts","../src/propBuilder.ts","../src/explain.ts","../src/motifParser.ts","../src/asyncTracking.ts","../src/elementTags.ts","../src/compiler.ts","../src/superCalls.ts","../src/vitePlugin.ts","../src/lint.ts","../src/index.ts"],"sourcesContent":["export const htmlAttributes = new Map<string, boolean>();\r\nhtmlAttributes.set('accept', false);\r\nhtmlAttributes.set('bind', false);\r\nhtmlAttributes.set(\"accept-charset\", false);\r\nhtmlAttributes.set('accesskey', false);\r\nhtmlAttributes.set('action', false);\r\nhtmlAttributes.set('align', false);\r\nhtmlAttributes.set('allow', false);\r\nhtmlAttributes.set('alt', false);\r\nhtmlAttributes.set('async', false);\r\nhtmlAttributes.set('autocapitalize', false);\r\nhtmlAttributes.set('autofocus', false);\r\nhtmlAttributes.set('autoplay', false);\r\nhtmlAttributes.set('background', false);\r\nhtmlAttributes.set('bgcolor', false);\r\nhtmlAttributes.set('border', false);\r\nhtmlAttributes.set('buffered', false);\r\nhtmlAttributes.set('capture', false);\r\nhtmlAttributes.set('challenge', false);\r\nhtmlAttributes.set('charset', false);\r\nhtmlAttributes.set('checked', false);\r\nhtmlAttributes.set('cite', false);\r\nhtmlAttributes.set('class', false);\r\nhtmlAttributes.set('code', false);\r\nhtmlAttributes.set('codebase', false);\r\nhtmlAttributes.set('color', false);\r\nhtmlAttributes.set('cols', false);\r\nhtmlAttributes.set('colspan', false);\r\nhtmlAttributes.set('content', false);\r\nhtmlAttributes.set('contenteditable', false);\r\nhtmlAttributes.set('contextmenu', false);\r\nhtmlAttributes.set('controls', false);\r\nhtmlAttributes.set('coords', false);\r\nhtmlAttributes.set('crossorigin', false);\r\nhtmlAttributes.set('csp', false);\r\nhtmlAttributes.set('data', false);\r\nhtmlAttributes.set('data-*', false);\r\nhtmlAttributes.set('datetime', false);\r\nhtmlAttributes.set('decoding', false);\r\nhtmlAttributes.set('default', false);\r\nhtmlAttributes.set('defer', false);\r\nhtmlAttributes.set('dir', false);\r\nhtmlAttributes.set('dirname', false);\r\nhtmlAttributes.set('disabled', false);\r\nhtmlAttributes.set('download', false);\r\nhtmlAttributes.set('draggable', false);\r\nhtmlAttributes.set('enctype', false);\r\nhtmlAttributes.set('enterkeyhint', false);\r\nhtmlAttributes.set('for', false);\r\nhtmlAttributes.set('form', false);\r\nhtmlAttributes.set('formaction', false);\r\nhtmlAttributes.set('formenctype', false);\r\nhtmlAttributes.set('formmethod', false);\r\nhtmlAttributes.set('formnovalidate', false);\r\nhtmlAttributes.set('formtarget', false);\r\nhtmlAttributes.set('headers', false);\r\nhtmlAttributes.set('height', false);\r\nhtmlAttributes.set('hidden', false);\r\nhtmlAttributes.set('high', false);\r\nhtmlAttributes.set('href', false);\r\nhtmlAttributes.set('hreflang', false);\r\nhtmlAttributes.set('http-equiv', false);\r\nhtmlAttributes.set('icon', false);\r\nhtmlAttributes.set('id', false);\r\nhtmlAttributes.set('importance', false);\r\nhtmlAttributes.set('integrity', false);\r\nhtmlAttributes.set('intrinsicsize', false);\r\nhtmlAttributes.set('inputmode', false);\r\nhtmlAttributes.set('ismap', false);\r\nhtmlAttributes.set('itemprop', false);\r\nhtmlAttributes.set('keytype', false);\r\nhtmlAttributes.set('kind', false);\r\nhtmlAttributes.set('label', false);\r\nhtmlAttributes.set('lang', false);\r\nhtmlAttributes.set('language', false);\r\nhtmlAttributes.set('loading', false);\r\nhtmlAttributes.set('list', false);\r\nhtmlAttributes.set('loop', false);\r\nhtmlAttributes.set('low', false);\r\nhtmlAttributes.set('manifest', false);\r\nhtmlAttributes.set('max', false);\r\nhtmlAttributes.set('maxlength', false);\r\nhtmlAttributes.set('minlength', false);\r\nhtmlAttributes.set('media', false);\r\nhtmlAttributes.set('method', false);\r\nhtmlAttributes.set('min', false);\r\nhtmlAttributes.set('multiple', false);\r\nhtmlAttributes.set('muted', false);\r\nhtmlAttributes.set('name', false);\r\nhtmlAttributes.set('novalidate', false);\r\nhtmlAttributes.set('open', false);\r\nhtmlAttributes.set('optimum', false);\r\nhtmlAttributes.set('pattern', false);\r\nhtmlAttributes.set('ping', false);\r\nhtmlAttributes.set('placeholder', false);\r\nhtmlAttributes.set('poster', false);\r\nhtmlAttributes.set('preload', false);\r\nhtmlAttributes.set('radiogroup', false);\r\nhtmlAttributes.set('readonly', false);\r\nhtmlAttributes.set('referrerpolicy', false);\r\nhtmlAttributes.set('rel', false);\r\nhtmlAttributes.set('required', false);\r\nhtmlAttributes.set('reversed', false);\r\nhtmlAttributes.set('role', false);\r\nhtmlAttributes.set('rows', false);\r\nhtmlAttributes.set('rowspan', false);\r\nhtmlAttributes.set('sandbox', false);\r\nhtmlAttributes.set('scope', false);\r\nhtmlAttributes.set('scoped', false);\r\nhtmlAttributes.set('selected', false);\r\nhtmlAttributes.set('shape', false);\r\nhtmlAttributes.set('size', false);\r\nhtmlAttributes.set('sizes', false);\r\nhtmlAttributes.set('slot', false);\r\nhtmlAttributes.set('span', false);\r\nhtmlAttributes.set('spellcheck', false);\r\nhtmlAttributes.set('src', false);\r\nhtmlAttributes.set('srcdoc', false);\r\nhtmlAttributes.set('srclang', false);\r\nhtmlAttributes.set('srcset', false);\r\nhtmlAttributes.set('start', false);\r\nhtmlAttributes.set('step', false);\r\nhtmlAttributes.set('style', false);\r\nhtmlAttributes.set('summary', false);\r\nhtmlAttributes.set('tabindex', false);\r\nhtmlAttributes.set('target', false);\r\nhtmlAttributes.set('title', false);\r\nhtmlAttributes.set('translate', false);\r\nhtmlAttributes.set('type', false);\r\nhtmlAttributes.set('usemap', false);\r\nhtmlAttributes.set('value', false);\r\nhtmlAttributes.set('width', false);\r\nhtmlAttributes.set('wrap', false);\r\nhtmlAttributes.set('aria-readonly', true)\r\nhtmlAttributes.set('className', false)\r\n\r\n\r\n\r\nhtmlAttributes.set('xml:base', false)\r\nhtmlAttributes.set('xml:lang', false)\r\nhtmlAttributes.set('xml:space', false)\r\nhtmlAttributes.set('xmlns:xlink', false)\r\nhtmlAttributes.set('xmlns', false)\r\n\r\nhtmlAttributes.set('alignment-baseline', false);\r\nhtmlAttributes.set('baseline-shift', false);\r\nhtmlAttributes.set('clip', false);\r\nhtmlAttributes.set('clip-path', false);\r\nhtmlAttributes.set('clip-rule', false);\r\nhtmlAttributes.set('color', false);\r\nhtmlAttributes.set('color-interpolation', false);\r\nhtmlAttributes.set('color-interpolation-filters', false);\r\nhtmlAttributes.set('color-profile', false);\r\nhtmlAttributes.set('color-rendering', false);\r\nhtmlAttributes.set('cursor', false);\r\nhtmlAttributes.set('direction', false);\r\nhtmlAttributes.set('display', false);\r\nhtmlAttributes.set('dominant-baseline', false);\r\nhtmlAttributes.set('enable-background', false);\r\nhtmlAttributes.set('fill', false);\r\nhtmlAttributes.set('fill-opacity', false);\r\nhtmlAttributes.set('fill-rule', false);\r\nhtmlAttributes.set('filter', false);\r\nhtmlAttributes.set('flood-color', false);\r\nhtmlAttributes.set('flood-opacity', false);\r\nhtmlAttributes.set('font-family', false);\r\nhtmlAttributes.set('font-size', false);\r\nhtmlAttributes.set('font-size-adjust', false);\r\nhtmlAttributes.set('font-stretch', false);\r\nhtmlAttributes.set('font-style', false);\r\nhtmlAttributes.set('font-variant', false);\r\nhtmlAttributes.set('font-weight', false);\r\nhtmlAttributes.set('glyph-orientation-horizontal', false);\r\nhtmlAttributes.set('glyph-orientation-vertical', false);\r\nhtmlAttributes.set('image-rendering', false);\r\nhtmlAttributes.set('kerning', false);\r\nhtmlAttributes.set('letter-spacing', false);\r\nhtmlAttributes.set('lighting-color', false);\r\nhtmlAttributes.set('marker-end', false);\r\nhtmlAttributes.set('marker-mid', false);\r\nhtmlAttributes.set('marker-start', false);\r\nhtmlAttributes.set('mask', false);\r\nhtmlAttributes.set('opacity', false);\r\nhtmlAttributes.set('overflow', false);\r\nhtmlAttributes.set('pointer-events', false);\r\nhtmlAttributes.set('shape-rendering', false);\r\nhtmlAttributes.set('stop-color', false);\r\nhtmlAttributes.set('stop-opacity', false);\r\nhtmlAttributes.set('stroke', false);\r\nhtmlAttributes.set('stroke-dasharray', false);\r\nhtmlAttributes.set('stroke-dashoffset', false);\r\nhtmlAttributes.set('stroke-linecap', false);\r\nhtmlAttributes.set('stroke-linejoin', false);\r\nhtmlAttributes.set('stroke-miterlimit', false);\r\nhtmlAttributes.set('stroke-opacity', false);\r\nhtmlAttributes.set('stroke-width', false);\r\nhtmlAttributes.set('text-anchor', false);\r\nhtmlAttributes.set('text-decoration', false);\r\nhtmlAttributes.set('text-rendering', false);\r\nhtmlAttributes.set('transform', false);\r\nhtmlAttributes.set('transform-origin', false);\r\nhtmlAttributes.set('unicode-bidi', false);\r\nhtmlAttributes.set('vector-effect', false);\r\nhtmlAttributes.set('visibility', false);\r\nhtmlAttributes.set('word-spacing', false);\r\nhtmlAttributes.set('writing-mode', false);\r\n\r\nhtmlAttributes.set('x1', false);\r\nhtmlAttributes.set('x2', false);\r\nhtmlAttributes.set('y1', false);\r\nhtmlAttributes.set('y2', false);\r\nhtmlAttributes.set('offset', false);\r\nhtmlAttributes.set('d', false);\r\nhtmlAttributes.set('preserveaspectratio', false);\r\nhtmlAttributes.set('viewbox', false);\r\nhtmlAttributes.set('viewBox', false);\r\n\r\n\r\nexport const htmlEvents = new Map<string, boolean>();\r\n\r\nhtmlEvents.set(\"onafterprint\", false);\r\nhtmlEvents.set(\"onbeforeprint\", false);\r\nhtmlEvents.set(\"onbeforeunload\", false);\r\nhtmlEvents.set(\"onerror\", false);\r\nhtmlEvents.set(\"onhashchange\", false);\r\nhtmlEvents.set(\"onload\", false);\r\nhtmlEvents.set(\"onmessage\", false);\r\nhtmlEvents.set(\"onoffline\", false);\r\nhtmlEvents.set(\"ononline\", false);\r\nhtmlEvents.set(\"onpagehide\", false);\r\nhtmlEvents.set(\"onpageshow\", false);\r\nhtmlEvents.set(\"onpopstate\", false);\r\nhtmlEvents.set(\"onresize\", false);\r\nhtmlEvents.set(\"onstorage\", false);\r\nhtmlEvents.set(\"onunload\", false);\r\nhtmlEvents.set(\"onblur\", false);\r\nhtmlEvents.set(\"onchange\", false);\r\nhtmlEvents.set(\"oncontextmenu\", false);\r\nhtmlEvents.set(\"onfocus\", false);\r\nhtmlEvents.set(\"oninput\", false);\r\nhtmlEvents.set(\"oninvalid\", false);\r\nhtmlEvents.set(\"onreset\", false);\r\nhtmlEvents.set(\"onsearch\", false);\r\nhtmlEvents.set(\"onselect\", false);\r\nhtmlEvents.set(\"onsubmit\", false);\r\nhtmlEvents.set(\"onkeydown\", false);\r\nhtmlEvents.set(\"onkeypress\", false);\r\nhtmlEvents.set(\"onkeyup\", false);\r\nhtmlEvents.set(\"onclick\", false);\r\nhtmlEvents.set(\"ondblclick\", false);\r\nhtmlEvents.set(\"onmousedown\", false);\r\nhtmlEvents.set(\"onmousemove\", false);\r\nhtmlEvents.set(\"onmouseout\", false);\r\nhtmlEvents.set(\"onmouseover\", false);\r\nhtmlEvents.set(\"onmouseup\", false);\r\nhtmlEvents.set(\"onmousewheel\", false);\r\nhtmlEvents.set(\"onwheel\", false);\r\nhtmlEvents.set(\"ondrag\", false);\r\nhtmlEvents.set(\"ondragend\", false);\r\nhtmlEvents.set(\"ondragenter\", false);\r\nhtmlEvents.set(\"ondragleave\", false);\r\nhtmlEvents.set(\"ondragover\", false);\r\nhtmlEvents.set(\"ondragstart\", false);\r\nhtmlEvents.set(\"ondrop\", false);\r\nhtmlEvents.set(\"onscroll\", false);\r\nhtmlEvents.set(\"oncopy\", false);\r\nhtmlEvents.set(\"oncut\", false);\r\nhtmlEvents.set(\"onpaste\", false);\r\nhtmlEvents.set(\"onabort\", false);\r\nhtmlEvents.set(\"oncanplay\", false);\r\nhtmlEvents.set(\"oncanplaythrough\", false);\r\nhtmlEvents.set(\"oncuechange\", false);\r\nhtmlEvents.set(\"ondurationchange\", false);\r\nhtmlEvents.set(\"onemptied\", false);\r\nhtmlEvents.set(\"onended\", false);\r\nhtmlEvents.set(\"onerror\", false);\r\nhtmlEvents.set(\"onloadeddata\", false);\r\nhtmlEvents.set(\"onloadedmetadata\", false);\r\nhtmlEvents.set(\"onloadstart\", false);\r\nhtmlEvents.set(\"onpause\", false);\r\nhtmlEvents.set(\"onplay\", false);\r\nhtmlEvents.set(\"onplaying\", false);\r\nhtmlEvents.set(\"onprogress\", false);\r\nhtmlEvents.set(\"onratechange\", false);\r\nhtmlEvents.set(\"onseeked\", false);\r\nhtmlEvents.set(\"onseeking\", false);\r\nhtmlEvents.set(\"onstalled\", false);\r\nhtmlEvents.set(\"onsuspend\", false);\r\nhtmlEvents.set(\"ontimeupdate\", false);\r\nhtmlEvents.set(\"onvolumechange\", false);\r\nhtmlEvents.set(\"onwaiting\", false);\r\nhtmlEvents.set(\"ontoggle\", false);\r\n\r\nvar types = [\r\n ':once',\r\n ':once:passive',\r\n ':once:passive:prevent',\r\n ':once:passive:stop',\r\n ':once:passive:trusted',\r\n ':once:passive:capture',\r\n ':once:passive:self',\r\n ':once:prevent',\r\n ':once:prevent:stop',\r\n ':once:prevent:trusted',\r\n ':once:prevent:trusted:capture',\r\n ':once:prevent:trusted:self',\r\n ':once:stop',\r\n ':once:stop:trusted',\r\n ':once:stop:capture',\r\n ':once:stop:self',\r\n ':once:trusted',\r\n ':once:trusted:capture',\r\n ':once:trusted:self',\r\n ':passive',\r\n ':passive:prevent',\r\n ':passive:prevent:stop',\r\n ':passive:prevent:trusted',\r\n ':passive:prevent:capture',\r\n ':passive:prevent:self',\r\n ':passive:stop',\r\n ':passive:stop:trusted',\r\n ':passive:stop:capture',\r\n ':passive:stop:self',\r\n ':passive:trusted',\r\n ':passive:trusted:capture',\r\n ':passive:trusted:self',\r\n ':passive:capture',\r\n ':passive:capture:self',\r\n ':passive:self',\r\n ':prevent',\r\n ':prevent:stop',\r\n ':prevent:trusted',\r\n ':prevent:capture',\r\n ':prevent:self',\r\n ':stop',\r\n ':stop:trusted',\r\n ':stop:capture',\r\n ':stop:self',\r\n ':trusted',\r\n ':trusted:capture',\r\n ':trusted:self',\r\n ':capture',\r\n ':capture:self',\r\n ':self'\r\n];\r\ntypes.forEach(element => {\r\n\r\n htmlEvents.set(`onafterprint${element}`, false);\r\n htmlEvents.set(`onbeforeprint${element}`, false);\r\n htmlEvents.set(`onbeforeunload${element}`, false);\r\n htmlEvents.set(`onerror${element}`, false);\r\n htmlEvents.set(`onhashchange${element}`, false);\r\n htmlEvents.set(`onload${element}`, false);\r\n htmlEvents.set(`onmessage${element}`, false);\r\n htmlEvents.set(`onoffline${element}`, false);\r\n htmlEvents.set(`ononline${element}`, false);\r\n htmlEvents.set(`onpagehide${element}`, false);\r\n htmlEvents.set(`onpageshow${element}`, false);\r\n htmlEvents.set(`onpopstate${element}`, false);\r\n htmlEvents.set(`onresize${element}`, false);\r\n htmlEvents.set(`onstorage${element}`, false);\r\n htmlEvents.set(`onunload${element}`, false);\r\n htmlEvents.set(`onblur${element}`, false);\r\n htmlEvents.set(`onchange${element}`, false);\r\n htmlEvents.set(`oncontextmenu${element}`, false);\r\n htmlEvents.set(`onfocus${element}`, false);\r\n htmlEvents.set(`oninput${element}`, false);\r\n htmlEvents.set(`oninvalid${element}`, false);\r\n htmlEvents.set(`onreset${element}`, false);\r\n htmlEvents.set(`onsearch${element}`, false);\r\n htmlEvents.set(`onselect${element}`, false);\r\n htmlEvents.set(`onsubmit${element}`, false);\r\n htmlEvents.set(`onkeydown${element}`, false);\r\n htmlEvents.set(`onkeypress${element}`, false);\r\n htmlEvents.set(`onkeyup${element}`, false);\r\n htmlEvents.set(`onclick${element}`, false);\r\n htmlEvents.set(`ondblclick${element}`, false);\r\n htmlEvents.set(`onmousedown${element}`, false);\r\n htmlEvents.set(`onmousemove${element}`, false);\r\n htmlEvents.set(`onmouseout${element}`, false);\r\n htmlEvents.set(`onmouseover${element}`, false);\r\n htmlEvents.set(`onmouseup${element}`, false);\r\n htmlEvents.set(`onmousewheel${element}`, false);\r\n htmlEvents.set(`onwheel${element}`, false);\r\n htmlEvents.set(`ondrag${element}`, false);\r\n htmlEvents.set(`ondragend${element}`, false);\r\n htmlEvents.set(`ondragenter${element}`, false);\r\n htmlEvents.set(`ondragleave${element}`, false);\r\n htmlEvents.set(`ondragover${element}`, false);\r\n htmlEvents.set(`ondragstart${element}`, false);\r\n htmlEvents.set(`ondrop${element}`, false);\r\n htmlEvents.set(`onscroll${element}`, false);\r\n htmlEvents.set(`oncopy${element}`, false);\r\n htmlEvents.set(`oncut${element}`, false);\r\n htmlEvents.set(`onpaste${element}`, false);\r\n htmlEvents.set(`onabort${element}`, false);\r\n htmlEvents.set(`oncanplay${element}`, false);\r\n htmlEvents.set(`oncanplaythrough${element}`, false);\r\n htmlEvents.set(`oncuechange${element}`, false);\r\n htmlEvents.set(`ondurationchange${element}`, false);\r\n htmlEvents.set(`onemptied${element}`, false);\r\n htmlEvents.set(`onended${element}`, false);\r\n htmlEvents.set(`onerror${element}`, false);\r\n htmlEvents.set(`onloadeddata${element}`, false);\r\n htmlEvents.set(`onloadedmetadata${element}`, false);\r\n htmlEvents.set(`onloadstart${element}`, false);\r\n htmlEvents.set(`onpause${element}`, false);\r\n htmlEvents.set(`onplay${element}`, false);\r\n htmlEvents.set(`onplaying${element}`, false);\r\n htmlEvents.set(`onprogress${element}`, false);\r\n htmlEvents.set(`onratechange${element}`, false);\r\n htmlEvents.set(`onseeked${element}`, false);\r\n htmlEvents.set(`onseeking${element}`, false);\r\n htmlEvents.set(`onstalled${element}`, false);\r\n htmlEvents.set(`onsuspend${element}`, false);\r\n htmlEvents.set(`ontimeupdate${element}`, false);\r\n htmlEvents.set(`onvolumechange${element}`, false);\r\n htmlEvents.set(`onwaiting${element}`, false);\r\n htmlEvents.set(`ontoggle${element}`, false);\r\n}); ","import * as BabelCore from '@babel/core';\r\nexport const motifComponent = () => { return \"_mc\" }\r\nexport const motifFragment = () => { return \"_mf\" }\r\nexport const motifFunctionComponent = () => { return \"_mfc\" }\r\nexport const motifCompiled = () => { return \"_mv\" }\r\nexport const COMPILER_CONTRACT = 1;\r\n\r\nexport type State = {\r\n get: (name: string) => any;\r\n set: (name: string, value: any) => any; \r\n file: BabelCore.BabelFile\r\n};\r","import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\n\n\nexport interface MotifDiagnostic {\n code: string;\n message: string;\n file: string;\n line: number | null;\n frame?: string;\n}\n\nlet active: MotifDiagnostic[] | null = null;\nlet seen: Set<string> | null = null;\n\nexport function beginCollect(): void {\n active = [];\n seen = new Set();\n}\n\nexport function endCollect(): MotifDiagnostic[] {\n const out = active ?? [];\n active = null;\n seen = null;\n return out;\n}\n\n/** Uyarıları terminale yazar. Vite/Rollup eklentileri derleme sonunda çağırır. */\nexport function printDiagnostics(list: MotifDiagnostic[]): void {\n for (const d of list) {\n const where = d.line === null ? d.file : `${d.file}:${d.line}`;\n console.warn(`[motifjs] ${d.code}: ${d.message}\\n ${where}${d.frame ? '\\n' + d.frame : ''}`);\n }\n}\n\nexport function fail(code: string, message: string, path: NodePath<t.Node>): never {\n const error = path.buildCodeFrameError(`[motifjs] ${code}: ${message}`) as Error & { code?: string };\n error.code = code;\n throw error;\n}\n\nexport function warn(code: string, message: string, path: NodePath<t.Node> | null, filename: string): void {\n if (!active || !seen) return;\n const line = path?.node?.loc?.start?.line ?? null;\n const key = `${filename}:${line}:${code}`;\n if (seen.has(key)) return;\n seen.add(key);\n\n let frame: string | undefined;\n try {\n frame = path ? (path.buildCodeFrameError('') as Error).message.replace(/^[^\\n]*\\n/, '') : undefined;\n if (frame !== undefined && frame.trim() === '') frame = undefined;\n } catch { frame = undefined; }\n\n active.push({ code, message, file: filename, line, frame });\n}","import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\n\nimport { motifComponent, State } from './constants';\nimport { fail } from './diagnostics';\n\nexport const makeHtmlAttr = (prop: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>,\n name: string,\n value: t.Expression | t.ObjectMethod,\n path: NodePath<t.JSXElement>\n): t.ObjectProperty | null => {\n if (t.isStringLiteral(value) && value !== null) {\n return t.objectProperty(t.stringLiteral(name), value);\n } else if (t.isBooleanLiteral(value)) {\n return t.objectProperty(t.stringLiteral(name), value || t.booleanLiteral(true));\n } else if (t.isArrowFunctionExpression(value) && value !== null) {\n return t.objectProperty(t.stringLiteral(name), value);\n } else if (t.isFunctionExpression(value)) {\n return t.objectProperty(t.stringLiteral(name), value);\n } else {\n if (value != null) {\n if (t.isCallExpression(value) && t.isIdentifier(value.callee)) {\n if (value.callee.name !== 'motifComponent' && value.callee.name !== motifComponent()) {\n return t.objectProperty(t.stringLiteral(name), value);\n }\n } else if (t.isIdentifier(value)) {\n return t.objectProperty(t.stringLiteral(name), value);\n\n } else if (t.isUnaryExpression(value) && !t.isLiteral(value.argument)) {\n return t.objectProperty(t.stringLiteral(name), t.arrowFunctionExpression([], value));\n } else if (t.isExpression(value)) {\n return t.objectProperty(t.stringLiteral(name), returnIfStatement(value, false));\n }\n }\n\n }\n return null;\n}\n\nfunction isStringLike(node: t.Node): node is t.StringLiteral | t.TemplateLiteral {\n return t.isStringLiteral(node) || t.isTemplateLiteral(node);\n}\n\nfunction extractStringValue(node: t.StringLiteral | t.TemplateLiteral): string {\n if (t.isStringLiteral(node)) return node.value;\n return node.quasis.map(q => q.value.raw).join('${}');\n}\n\n\nexport const mergeHtmlAttributes = (htmlAttrlist: t.ObjectProperty[]): t.ExpressionStatement[] => {\n const htmlProps: t.ExpressionStatement[] = [];\n if (htmlAttrlist.length > 0) {\n var totalAttr: t.ObjectProperty[] = [];\n var totalClass: t.ObjectProperty[] = [];\n var totalBindClass: t.Expression[] = [];\n var totalStringClass: t.Expression[] = [];\n htmlAttrlist.forEach(attr => {\n if (t.isStringLiteral(attr.key) || t.isTemplateLiteral(attr.key)) {\n const keyValue = t.isStringLiteral(attr.key)\n ? attr.key.value.toLowerCase()\n : attr.key.quasis.map(q => q.value.raw).join(\"\").toLowerCase();\n\n if (keyValue === \"class\" || keyValue === \"classname\") {\n if (t.isObjectExpression(attr.value)) {\n const objectProperties: t.ObjectProperty[] = [];\n\n attr.value.properties.forEach(p => {\n if (t.isObjectProperty(p)) {\n const val = p.value;\n\n if (t.isStringLiteral(val)) {\n totalStringClass.push(p.key as t.StringLiteral);\n } else if (t.isBooleanLiteral(val)) {\n totalStringClass.push(p.key as t.StringLiteral);\n } else if (t.isFunctionExpression(val) || t.isArrowFunctionExpression(val)) {\n objectProperties.push(p);\n } else if (t.isTemplateLiteral(val)) {\n if (val.expressions.length === 0) {\n totalStringClass.push(\n t.stringLiteral(val.quasis.map(q => q.value.raw).join(\"\"))\n );\n } else {\n totalBindClass.push(t.arrowFunctionExpression([], val));\n }\n } else {\n totalClass.push(p);\n }\n } else if (t.isFunctionExpression(p) || t.isArrowFunctionExpression(p)) {\n totalBindClass.push(p);\n }\n });\n\n if (objectProperties.length > 0) {\n totalBindClass.push(t.objectExpression(objectProperties));\n }\n } else if (t.isMemberExpression(attr.value) || t.isCallExpression(attr.value)) {\n totalBindClass.push(attr.value);\n } else if (t.isFunctionExpression(attr.value) || t.isArrowFunctionExpression(attr.value)) {\n totalBindClass.push(attr.value);\n } else if (t.isIdentifier(attr.value)) {\n totalBindClass.push(attr.value);\n } else if (t.isStringLiteral(attr.value)) {\n totalStringClass.push(t.stringLiteral(attr.value.value));\n } else if (t.isTemplateLiteral(attr.value)) {\n if (attr.value.expressions.length === 0) {\n totalStringClass.push(\n t.stringLiteral(attr.value.quasis.map(q => q.value.raw).join(\"\"))\n );\n } else {\n totalBindClass.push(t.arrowFunctionExpression([], attr.value));\n }\n } else if (t.isArrayExpression(attr.value)) {\n attr.value.elements.forEach(element => {\n if (!element) return;\n\n if (t.isObjectExpression(element)) {\n element.properties.forEach(p => {\n if (t.isObjectProperty(p)) {\n const val = p.value;\n if (t.isStringLiteral(val)) {\n totalStringClass.push(p.key as t.StringLiteral);\n } else if (t.isBooleanLiteral(val)) {\n totalStringClass.push(p.key as t.StringLiteral);\n } else if (t.isFunctionExpression(val) || t.isArrowFunctionExpression(val)) {\n totalBindClass.push(val);\n } else if (t.isTemplateLiteral(val)) {\n if (val.expressions.length === 0) {\n totalStringClass.push(\n t.stringLiteral(val.quasis.map(q => q.value.raw).join(\"\"))\n );\n } else {\n totalBindClass.push(t.arrowFunctionExpression([], val));\n }\n } else {\n totalClass.push(p);\n }\n } else if (t.isFunctionExpression(p) || t.isArrowFunctionExpression(p)) {\n totalBindClass.push(p);\n }\n });\n } else if (t.isStringLiteral(element)) {\n totalStringClass.push(element);\n } else if (t.isTemplateLiteral(element)) {\n if (element.expressions.length === 0) {\n totalStringClass.push(\n t.stringLiteral(element.quasis.map(q => q.value.raw).join(\"\"))\n );\n } else {\n totalBindClass.push(t.arrowFunctionExpression([], element));\n }\n } else if (t.isFunctionExpression(element) || t.isArrowFunctionExpression(element)) {\n totalBindClass.push(element);\n }\n });\n }\n } else if (keyValue === \"style\") {\n if (t.isObjectExpression(attr.value)) {\n htmlProps.push(\n t.expressionStatement(\n t.callExpression(t.identifier(\"sender.style\"), [attr.value])\n )\n );\n } else if (t.isStringLiteral(attr.value)) {\n htmlProps.push(\n t.expressionStatement(\n t.callExpression(t.identifier(\"sender.style\"), [attr.value])\n )\n );\n } else if (t.isTemplateLiteral(attr.value)) {\n if (attr.value.expressions.length === 0) {\n htmlProps.push(\n t.expressionStatement(\n t.callExpression(\n t.identifier(\"sender.style\"),\n [t.stringLiteral(attr.value.quasis.map(q => q.value.raw).join(\"\"))]\n )\n )\n );\n } else {\n htmlProps.push(\n t.expressionStatement(\n t.callExpression(\n t.identifier(\"sender.style\"),\n [t.arrowFunctionExpression([], attr.value)]\n )\n )\n );\n }\n } else if (t.isExpression(attr.value)) {\n htmlProps.push(\n t.expressionStatement(\n t.callExpression(t.identifier(\"sender.style\"), [attr.value])\n )\n );\n }\n } else if (keyValue === 'checked' || keyValue === 'value' || keyValue === 'selected') {\n const val = attr.value;\n if (t.isArrowFunctionExpression(val) || t.isExpression(val)) {\n htmlProps.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.add'), [t.stringLiteral(keyValue), val])));\n }\n\n } else {\n let keyName: t.StringLiteral;\n\n if (t.isStringLiteral(attr.key)) {\n keyName = t.stringLiteral(attr.key.value);\n } else if (t.isTemplateLiteral(attr.key)) {\n keyName = t.stringLiteral(attr.key.quasis.map(q => q.value.raw).join(\"\"));\n } else {\n keyName = t.stringLiteral(\"unknown\");\n }\n\n let valueExpr: t.Expression;\n const val = attr.value;\n\n if (t.isStringLiteral(val)) {\n valueExpr = val;\n } else if (t.isTemplateLiteral(val)) {\n valueExpr =\n val.expressions.length === 0\n ? t.stringLiteral(val.quasis.map(q => q.value.raw).join(\"\"))\n : t.arrowFunctionExpression([], val);\n } else if (\n t.isObjectExpression(val) ||\n t.isCallExpression(val) ||\n t.isArrowFunctionExpression(val) ||\n t.isMemberExpression(val) ||\n t.isIdentifier(val)\n ) {\n valueExpr = val;\n } else if (t.isExpression(val)) {\n valueExpr = val;\n } else {\n valueExpr = t.stringLiteral(\"\");\n }\n\n totalAttr.push(t.objectProperty(keyName, valueExpr));\n }\n }\n })\n\n\n if (totalAttr.length > 0) {\n htmlProps.push(t.expressionStatement(t.callExpression(t.identifier('sender.attr.add'), [t.objectExpression(totalAttr)])));\n }\n if (totalBindClass.length > 0) {\n htmlProps.push(t.expressionStatement(t.callExpression(t.identifier('sender.class.add'), [t.arrayExpression(totalBindClass)])));\n }\n if (totalClass.length > 0) {\n htmlProps.push(t.expressionStatement(t.callExpression(t.identifier('sender.class.add'), [t.objectExpression(totalClass)])));\n }\n if (totalStringClass.length > 0) {\n htmlProps.push(t.expressionStatement(t.callExpression(t.identifier('sender.class.add'), [...totalStringClass])));\n }\n }\n\n return htmlProps;\n}\n\nexport const makeHtmlEvents = (prop: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>,\n name: string,\n value: t.Expression | t.ObjectMethod,\n path: NodePath<t.JSXElement>\n): t.CallExpression | null => {\n if (!t.isStringLiteral(value) && !t.isBooleanLiteral(value) && value !== null) {\n if (t.isExpression(value)) {\n var evName = name.toLowerCase().replace(\"on\", '').replace('doubleclick', 'dblclick');\n return t.callExpression(t.identifier(\"sender.motif.on\"), [t.stringLiteral(evName), value]);\n }\n } else {\n fail('MJX009', `Event handler \"${name}\" must be a function; string and boolean values are not allowed.`, prop);\n }\n return null;\n}\n\nexport const makeComponentTraps = (prop: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>,\n name: string,\n value: t.Expression | t.ObjectMethod,\n path: NodePath<t.JSXElement>\n): t.ObjectProperty | null => {\n if (t.isFunctionExpression(value) ||\n t.isArrowFunctionExpression(value) && value !== null ||\n t.isObjectExpression(value) ||\n t.isMemberExpression(value) ||\n t.isObjectMethod(value) ||\n t.isIdentifier(value)) {\n\n if (t.isExpression(value)) {\n return t.objectProperty(t.identifier(name), value);\n } else {\n return null;\n }\n\n } else {\n fail('MJX010', `Lifecycle hook \"${name}\" must be a function, an object, or a reference to one.`, prop);\n return null;\n }\n}\n\n\nexport const SUPPORTED_DIRECTIVES = ['wait', 'display', 'model', 'text', 'html', 'value', 'watch'] as const;\nexport const UNSUPPORTED_DIRECTIVES = new Set(['reload', 'bind', 'effect', 'focus', 'interrupt', 'to', 'list', 'loop']);\nconst directiveNames = new Set<string>(SUPPORTED_DIRECTIVES);\n\nexport function supportedDirectivesText(): string {\n return [...SUPPORTED_DIRECTIVES, 'style', 'ref', 'key'].map(d => 'x-' + d).join(', ') + ' and the lifecycle hooks (x-mounted, x-built, x-disposed, …)';\n}\n\nconst ParentIfStatement = (path: t.Expression | t.BlockStatement, state: any[]): any[] => {\n if (t.isExpression(path)) {\n state.push(path)\n } else {\n\n }\n if (t.isFunctionExpression(path)) {\n state = ParentIfStatement(path.body, state);\n } else if (t.isArrowFunctionExpression(path)) {\n state = ParentIfStatement(path.body, state);\n } else if (t.isObjectExpression(path)) {\n\n } else if (t.isMemberExpression(path)) {\n\n state = ParentIfStatement(path.object, state);\n } else if (t.isObjectMethod(path)) {\n\n\n } else if (t.isIdentifier(path)) {\n\n } else if (t.isCallExpression(path)) {\n\n if (t.isExpression(path.callee)) {\n state = ParentIfStatement(path.callee, state);\n }\n } else {\n\n }\n\n return state;\n}\n\nexport const returnIfStatement = (value: any, enableDefaultreturn: boolean = true, defaultLiteral: any = t.booleanLiteral(false), callFunctions: boolean = false): any => {\n if (callFunctions && t.isFunctionExpression(value)) {\n return value;\n }\n var ifStatement = findIfStatements(value);\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', value), t.stringLiteral('function'));\n var rtrn;\n\n if (t.isLogicalExpression(value)) {\n rtrn = t.returnStatement(value);\n if (enableDefaultreturn) {\n return t.arrowFunctionExpression([], t.blockStatement([rtrn, t.returnStatement(defaultLiteral)]));\n } else {\n return t.arrowFunctionExpression([], t.blockStatement([rtrn]));\n }\n\n } else if (t.isMemberExpression(value) || t.isIdentifier(value)) {\n rtrn = t.returnStatement(callFunctions\n ? t.conditionalExpression(\n t.binaryExpression('===', t.unaryExpression('typeof', value), t.stringLiteral('function')),\n t.callExpression(value, []),\n value)\n : value);\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n if (enableDefaultreturn) {\n return cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([rtrns, t.returnStatement(defaultLiteral)])), [value]);\n } else {\n return cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([rtrns])), [value]);\n }\n\n } else if (t.isFunctionExpression(value)) {\n rtrn = t.returnStatement(value);\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n if (enableDefaultreturn) {\n return t.arrowFunctionExpression([], t.blockStatement([rtrns, t.returnStatement(defaultLiteral)]));\n } else {\n return t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n }\n return value;\n } else if (t.isBinaryExpression(value)) {\n var ifStatementA = findIfStatements(value.left as any);\n var ifStatementB = findIfStatements(value.right);\n var le = t.logicalExpression('&&', ifStatementA, ifStatementB);\n rtrn = t.returnStatement(value);\n if (enableDefaultreturn) {\n return cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([t.ifStatement(le, t.blockStatement([rtrn])), t.returnStatement(defaultLiteral)])), [value.left, value.right]);\n } else {\n return cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([t.ifStatement(le, t.blockStatement([rtrn]))])), [value.left, value.right]);\n }\n\n } else if (t.isCallExpression(value)) {\n\n rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(value, []), value));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n if (enableDefaultreturn) {\n return cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([rtrns, t.returnStatement(defaultLiteral)])), [value]);\n } else {\n return cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([rtrns])), [value]);\n }\n\n } else {\n return value;\n }\n\n\n}\nexport const findIfStatements = (value: t.Expression): any => {\n var ifs: any[] = [];\n if (t.isExpression(value)) {\n\n ifs = ParentIfStatement(value, ifs);\n }\n\n if (ifs.length == 1) {\n ifs[0] = t.logicalExpression('&&', t.binaryExpression('!==', ifs[0], t.nullLiteral()), t.binaryExpression('!==', ifs[0], t.identifier('undefined')))\n }\n\n const setRight = (l: t.Expression, x: t.Expression, current: number) => {\n if (t.isLogicalExpression(l) && t.isNullLiteral(l.right)) {\n l.right = x;\n } else {\n if (t.isLogicalExpression(l)) {\n setRight(l.right, x, current)\n }\n }\n }\n\n ifs.reverse();\n var ifStatement: t.LogicalExpression | t.Expression = null as any;\n var indexer = 0;\n\n if (ifs.length > 1) {\n ifs.forEach((ttt, index) => {\n if (!t.isArrowFunctionExpression(ttt) || !t.isFunctionExpression(ttt)) {\n if (ifStatement) {\n setRight(ifStatement, t.logicalExpression('&&', ttt, t.nullLiteral()), index)\n } else {\n ifStatement = t.logicalExpression('&&', ttt, t.nullLiteral());\n }\n } else {\n ifStatement = ttt;\n }\n })\n } else {\n ifStatement = ifs[0];\n }\n\n const latestRightFind = (x: t.LogicalExpression, p: t.LogicalExpression) => {\n if (t.isLogicalExpression(x)) {\n if (t.isNullLiteral(x.right)) {\n if (p === null) {\n x.right = x.left;\n } else {\n p.right = t.logicalExpression('&&', t.binaryExpression('!==', (x as t.LogicalExpression).left, t.nullLiteral()), t.binaryExpression('!==', (x as t.LogicalExpression).left, t.identifier('undefined')));\n }\n } else {\n\n latestRightFind(x.right as t.LogicalExpression, x)\n }\n }\n }\n\n if (ifStatement && t.isLogicalExpression(ifStatement)) {\n latestRightFind(ifStatement, null as any);\n if (t.isArrowFunctionExpression(ifStatement.right)) {\n {\n ifStatement = ifStatement.left;\n }\n }\n }\n\n return ifStatement;\n}\n\nconst isEffectNode = (node: t.Node): boolean =>\n t.isCallExpression(node) || t.isOptionalCallExpression(node) || t.isNewExpression(node) ||\n t.isTaggedTemplateExpression(node) || t.isUpdateExpression(node) || t.isAssignmentExpression(node) ||\n t.isAwaitExpression(node) || t.isYieldExpression(node);\n\nconst hasEffect = (node: t.Node | null | undefined): boolean => {\n if (!node || t.isFunction(node) || t.isClass(node)) return false;\n if (isEffectNode(node)) return true;\n for (const key of t.VISITOR_KEYS[node.type] ?? []) {\n const child = (node as any)[key];\n if (Array.isArray(child) ? child.some(c => hasEffect(c)) : hasEffect(child)) return true;\n }\n return false;\n}\n\nconst guardCallLinks = (root: t.Node, found: Set<t.Node>) => {\n if (!t.isExpression(root) || t.isFunction(root)) return;\n if (!t.isIdentifier(root) && !t.isMemberExpression(root) && !t.isThisExpression(root) && !t.isLiteral(root) && hasEffect(root)) {\n found.add(root);\n }\n if (t.isMemberExpression(root)) guardCallLinks(root.object, found);\n else if (t.isCallExpression(root) && t.isExpression(root.callee)) guardCallLinks(root.callee, found);\n}\n\nconst collectNames = (node: t.Node | null | undefined, names: Set<string>) => {\n if (!node) return;\n if (t.isIdentifier(node)) names.add(node.name);\n for (const key of t.VISITOR_KEYS[node.type] ?? []) {\n const child = (node as any)[key];\n if (Array.isArray(child)) child.forEach(c => collectNames(c, names));\n else collectNames(child, names);\n }\n}\n\nexport const cacheGuardCalls = <F extends t.ArrowFunctionExpression>(fn: F, roots: t.Node[]): F => {\n if (!t.isBlockStatement(fn.body)) return fn;\n const links = new Set<t.Node>();\n roots.forEach(r => guardCallLinks(r, links));\n if (links.size === 0) return fn;\n const used = new Set<string>();\n collectNames(fn, used);\n const assigned = new Map<t.Node, string>();\n let counter = 0;\n const nextName = () => {\n let name: string;\n do { name = `__r${++counter}`; } while (used.has(name));\n return name;\n };\n const rewrite = (node: any): any => {\n if (!node || typeof node !== 'object' || !node.type) return node;\n if (links.has(node)) {\n const known = assigned.get(node);\n if (known) return t.identifier(known);\n const name = nextName();\n assigned.set(node, name);\n return t.assignmentExpression('=', t.identifier(name), rewriteChildren(node));\n }\n if (t.isFunction(node) || t.isClass(node)) return node;\n return rewriteChildren(node);\n };\n const rewriteChildren = (node: any): any => {\n const copy = t.cloneNode(node, false);\n for (const key of t.VISITOR_KEYS[node.type] ?? []) {\n const child = node[key];\n (copy as any)[key] = Array.isArray(child) ? child.map(rewrite) : rewrite(child);\n }\n return copy;\n };\n const body = rewriteChildren(fn.body) as t.BlockStatement;\n if (assigned.size === 0) return fn;\n const declaration = t.variableDeclaration('let', [...assigned.values()].map(name => t.variableDeclarator(t.identifier(name))));\n body.body.unshift(declaration);\n const result = t.cloneNode(fn, false);\n result.body = body;\n return result;\n}\n\nexport const makeDirectives = (prop: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>,\n name: string,\n value: t.Expression | t.ObjectMethod,\n path: NodePath<t.JSXElement>,\n state: State\n): t.ExpressionStatement | null => {\n var result = null as any;\n if (value != null) {\n var clearedName = name.toLowerCase().replace(\"x:\", \"\").replace(\"x-\", \"\").replace(\"on:\", \"\");\n\n var callerName = `sender.bindings.${clearedName}`;\n if (directiveNames.has(clearedName)) {\n if (clearedName !== 'wait') {\n findIfStatements(value as any);\n\n if (t.isFunctionExpression(value) ||\n t.isArrowFunctionExpression(value) && value !== null ||\n t.isObjectExpression(value) ||\n t.isMemberExpression(value) ||\n t.isObjectMethod(value) ||\n t.isIdentifier(value) ||\n t.isCallExpression(value) && value !== null) {\n if (t.isFunctionExpression(value)) {\n result = t.expressionStatement(t.callExpression(t.identifier(callerName), [value]));\n } else if (t.isArrowFunctionExpression(value)) {\n var el;\n if (t.isBlockStatement(value.body)) {\n var kx = t.functionExpression(null, [], value.body);\n el = t.expressionStatement(t.callExpression(t.identifier(callerName), [kx]));\n } else {\n if (t.isStringLiteral(value.body)) {\n var rtrn = t.returnStatement(value.body);\n var kx = t.functionExpression(null, [], t.blockStatement([rtrn]));\n el = t.expressionStatement(t.callExpression(t.identifier(callerName), [kx]));\n } else {\n el = t.expressionStatement(t.callExpression(t.identifier(callerName), [returnIfStatement(value, false)]));\n }\n\n }\n result = el;\n\n } else {\n if (t.isExpression(value)) {\n result = t.expressionStatement(t.callExpression(t.identifier(callerName), [returnIfStatement(value, false, t.booleanLiteral(false), true)]));\n }\n }\n\n } else if (t.isBinaryExpression(value)) {\n result = t.expressionStatement(t.callExpression(t.identifier(callerName), [returnIfStatement(value, false, t.booleanLiteral(false))]));\n } else {\n fail('MJX011', `Directive \"${name}\" does not accept this value; pass a function, an object, or a reference to one.`, prop);\n }\n }\n }\n if (result && clearedName === 'model') {\n const setter = buildModelSetter(value, path);\n if (setter) (result.expression as t.CallExpression).arguments.push(setter);\n }\n }\n return result;\n}\n\nfunction unwrapTypeWrappers(node: t.Node | null | undefined): t.Node | null | undefined {\n let current = node;\n while (current && (\n t.isTSNonNullExpression(current) ||\n t.isTSAsExpression(current) ||\n t.isTSSatisfiesExpression(current) ||\n t.isTSTypeAssertion(current) ||\n t.isTypeCastExpression(current) ||\n t.isParenthesizedExpression(current))) {\n current = current.expression;\n }\n return current;\n}\n\nexport function modelTargetOf(value: t.Node): t.MemberExpression | t.OptionalMemberExpression | null {\n let expression: t.Node | null | undefined = value;\n if (t.isArrowFunctionExpression(value)) {\n if (value.params.length > 0 || value.async) return null;\n if (t.isBlockStatement(value.body)) {\n const statements = value.body.body;\n if (statements.length !== 1 || !t.isReturnStatement(statements[0])) return null;\n expression = statements[0].argument;\n } else {\n expression = value.body;\n }\n }\n expression = unwrapTypeWrappers(expression);\n if (!expression) return null;\n if (!t.isMemberExpression(expression) && !t.isOptionalMemberExpression(expression)) return null;\n if (t.isPrivateName(expression.property) || t.isSuper(expression.object)) return null;\n return expression;\n}\n\nexport function buildModelSetter(value: t.Node, path: NodePath<t.JSXElement>): t.ArrowFunctionExpression | null {\n const target = modelTargetOf(value);\n if (!target) return null;\n const valueId = path.scope.generateUidIdentifier('value');\n const ownerId = path.scope.generateUidIdentifier('owner');\n const owner = t.cloneNode(target.object as t.Expression, true);\n const member = () => t.memberExpression(t.cloneNode(ownerId), t.cloneNode(target.property as t.Expression, true), target.computed);\n const ownerMissing = t.logicalExpression('||',\n t.binaryExpression('===', t.cloneNode(ownerId), t.nullLiteral()),\n t.binaryExpression('===', t.cloneNode(ownerId), t.identifier('undefined')));\n const holdsGetter = t.binaryExpression('===', t.unaryExpression('typeof', member()), t.stringLiteral('function'));\n return t.arrowFunctionExpression([valueId], t.blockStatement([\n t.variableDeclaration('const', [t.variableDeclarator(ownerId, owner)]),\n t.ifStatement(t.logicalExpression('||', ownerMissing, holdsGetter), t.returnStatement()),\n t.expressionStatement(t.assignmentExpression('=', member(), t.cloneNode(valueId)))\n ]));\n}\n\nexport const makePreDirectives = (prop: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>,\n name: string,\n value: t.Expression | t.ObjectMethod,\n path: NodePath<t.JSXElement>\n): t.ExpressionStatement | null => {\n var result = null as any;\n if (value != null) {\n var clearedName = name.toLowerCase().replace(\"x:\", \"\").replace(\"x-\", \"\").replace(\"on:\", \"\");\n var callerName = `sender.bindings.${clearedName}`;\n\n if (clearedName === 'wait' || clearedName === 'display') {\n if (t.isObjectExpression(value)) {\n fail('MJX012', `Directive \"${name}\" does not accept an object literal.`, prop);\n } else if (t.isExpression(value)) {\n result = t.expressionStatement(t.callExpression(t.identifier(callerName), [returnIfStatement(value, true, t.booleanLiteral(true), true)]));\n }\n } else {\n fail('MJX006', `Directive \"${name}\" is not supported. Supported: ${supportedDirectivesText()}.`, prop);\n }\n\n }\n return result;\n}","import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\nimport * as generatorNs from '@babel/generator';\n\n// CJS/ESM ikili paketlemede `default` bazen sarmalanır; iki biçimi de kabul et.\nconst generate: (node: any, opts?: any) => { code: string } =\n ((generatorNs as any).default?.default ?? (generatorNs as any).default ?? generatorNs) as any;\n\n\n/** İfadenin JSX içindeki konumu. */\nexport type ExplainSite =\n | 'child'\n | 'element'\n | 'attr'\n | 'prop'\n | 'event'\n | 'directive'\n | 'component-event'\n | 'key';\n\nexport type ExplainReactivity = 'live' | 'static' | 'once' | 'receiver' | 'runtime' | 'n/a';\n\nexport interface MotifExplanation {\n file: string;\n line: number | null;\n column: number | null;\n /** Konum türü. */\n site: ExplainSite;\n /** İfade şekli */\n shape: string;\n /** Kaynak parça (tek satıra indirgenmiş, kırpılmış). */\n source: string;\n /** İndiği çağrı — üretilmiş koddan alınır, tahmin değildir. */\n lowered: string;\n reactive: ExplainReactivity;\n /** Bağımlılık yüzeyi: hangi okumalar bu bağı yeniden tetikler. */\n deps: string;\n /** Serbest not (tuzak, sözleşme). */\n note?: string;\n}\n\nlet active: MotifExplanation[] | null = null;\n\nexport interface Origin { line: number | null; column: number | null; source: string }\n\n/** Üretilmiş düğüm → kaynak konumu. getChildren'da not edilir, emisyon noktasında okunur. */\nconst origins = new WeakMap<object, Origin>();\n\nexport function beginExplain(): void {\n active = [];\n}\n\nexport function endExplain(): MotifExplanation[] {\n const out = active ?? [];\n active = null;\n const key = (e: MotifExplanation) => (e.line ?? 1e9) * 10000 + (e.column ?? 0);\n return out.map((e, i) => ({ e, i })).sort((a, b) => key(a.e) - key(b.e) || a.i - b.i).map(x => x.e);\n}\n\nexport function isExplaining(): boolean {\n return active !== null;\n}\n\nconst MAX_SOURCE = 90;\nconst MAX_LOWERED = 220;\n\nfunction oneLine(s: string, max: number): string {\n const flat = s.replace(/\\s+/g, ' ').trim();\n return flat.length > max ? flat.slice(0, max - 1) + '…' : flat;\n}\n\n/** Kaynak parçayı orijinal koddan alır (`{…}` süslüleri dahil). JSX elemanında yalnızca açılış etiketi. */\nexport function sourceOf(path: NodePath<t.Node> | null, originalCode: string | undefined): string {\n let n: any = path?.node;\n if (n && t.isJSXElement(n)) n = n.openingElement;\n if (!n || typeof n.start !== 'number' || typeof n.end !== 'number' || !originalCode) return '';\n return oneLine(originalCode.slice(n.start, n.end), MAX_SOURCE);\n}\n\n/** Konumu ve kaynak parçayı ANINDA alır (yol daha sonra değişebilir). */\nexport function captureOrigin(path: NodePath<t.Node>, originalCode: string | undefined): Origin {\n return {\n line: path.node?.loc?.start?.line ?? null,\n column: path.node?.loc?.start?.column ?? null,\n source: sourceOf(path, originalCode),\n };\n}\n\n/** Üretilmiş bir düğümü tek satır koda çevirir. Yalnızca gösterim içindir. */\nexport function codeOf(node: t.Node | null | undefined): string {\n if (!node) return '';\n try {\n const out = generate(node as any, { concise: true, comments: false }).code;\n return oneLine(out.replace(/;$/, ''), MAX_LOWERED);\n } catch {\n return `<${(node as any).type}>`;\n }\n}\n\nexport function noteOrigin(node: unknown, path: NodePath<t.Node>, originalCode: string | undefined): void {\n if (!active || !node || typeof node !== 'object') return;\n if (origins.has(node as object)) return;\n origins.set(node as object, captureOrigin(path, originalCode));\n}\n\n/** Konumu önceden alınmış düğüm için (derleyicinin JSXElement exit'i). */\nexport function noteOriginRaw(node: unknown, origin: Origin): void {\n if (!active || !node || typeof node !== 'object') return;\n if (origins.has(node as object)) return;\n origins.set(node as object, origin);\n}\n\n/** `sender.repeater` → `_mc({initializeComponent: list})` gibi yeniden sarmalarda kaynağı taşır. */\nexport function transferOrigin(from: unknown, to: unknown): void {\n if (!active || !from || !to || typeof from !== 'object' || typeof to !== 'object') return;\n const o = origins.get(from as object);\n if (o) origins.set(to as object, o);\n}\n\nexport interface ExplainInput {\n site: ExplainSite;\n shape: string;\n lowered: t.Node | string | null | undefined;\n reactive: ExplainReactivity;\n deps: string;\n note?: string;\n}\n\n/** Konumu doğrudan bilinen kayıt (öznitelikler). */\nexport function explainAt(path: NodePath<t.Node> | null, filename: string, originalCode: string | undefined, e: ExplainInput): void {\n if (!active) return;\n active.push({\n file: filename,\n line: path?.node?.loc?.start?.line ?? null,\n column: path?.node?.loc?.start?.column ?? null,\n site: e.site,\n shape: e.shape,\n source: sourceOf(path, originalCode),\n lowered: typeof e.lowered === 'string' ? oneLine(e.lowered, MAX_LOWERED) : codeOf(e.lowered),\n reactive: e.reactive,\n deps: e.deps,\n note: e.note,\n });\n}\n\n/** Konumu `noteOrigin` ile kaydedilmiş bir çocuk düğüm için kayıt (emisyon noktası). */\nexport function explainChild(produced: unknown, filename: string, e: ExplainInput): void {\n if (!active || !produced || typeof produced !== 'object') return;\n const o = origins.get(produced as object);\n if (!o) return;\n active.push({\n file: filename,\n line: o.line,\n column: o.column,\n site: e.site,\n shape: e.shape,\n source: o.source,\n lowered: typeof e.lowered === 'string' ? oneLine(e.lowered, MAX_LOWERED) : codeOf(e.lowered),\n reactive: e.reactive,\n deps: e.deps,\n note: e.note,\n });\n}\n\n \nexport const DEPS = {\n none: 'none — no binding is created',\n once: 'none — evaluated once during setup, then frozen',\n getter: 'ALL reactive fields read inside the getter; collected again on every run',\n field: (obj: string, prop: string) => `${obj}.${prop} — this field only (exact)`,\n cond: 'fields read in the condition getter; bindings inside a branch are the branch\\'s own effects, and the branch is rebuilt on every switch',\n list: 'the array source (length + item identity/key); bindings inside an item are the item\\'s own effects',\n receiver: 'wherever the receiving component reads the getter; nowhere if it does not',\n runtime: 'if the value is a function, the fields read inside it; otherwise none (once)',\n model: 'model field ↔ DOM value, two-way',\n modelOneWay: 'ALL reactive fields read inside the getter; the expression is not assignable, so the DOM value is not written back (one-way)',\n} as const;\n \nexport function describeTextNode(node: t.Node): { lowered: string; shape: string; reactive: ExplainReactivity; deps: string; note?: string } | null {\n if (!t.isCallExpression(node)) return null;\n const args = node.arguments;\n if (args.length < 2 || !t.isStringLiteral(args[0]) || args[0].value !== 'text' || !t.isObjectExpression(args[1])) return null;\n const init = args[1].properties.find(p => t.isObjectProperty(p) && t.isIdentifier(p.key) && p.key.name === 'initializeComponent') as t.ObjectProperty | undefined;\n if (!init || !t.isArrowFunctionExpression(init.value) || !t.isBlockStatement(init.value.body)) return null;\n const stmt = init.value.body.body[0];\n if (!stmt || !t.isExpressionStatement(stmt) || !t.isCallExpression(stmt.expression)) return null;\n const call = stmt.expression;\n const callee = t.isIdentifier(call.callee) ? call.callee.name : codeOf(call.callee);\n const lowered = codeOf(call);\n\n if (callee === 'sender.setText') {\n return { lowered, shape: 'text.static', reactive: 'static', deps: DEPS.none };\n }\n if (callee === 'sender.bindings.add') {\n if (call.arguments.length === 3 && t.isStringLiteral(call.arguments[2])) {\n return {\n lowered, shape: 'text.field', reactive: 'live',\n deps: DEPS.field(codeOf(call.arguments[1]), (call.arguments[2] as t.StringLiteral).value),\n };\n }\n const probe = args[1].properties.some(p => t.isObjectProperty(p) && t.isIdentifier(p.key) && p.key.name === '__childExpr');\n return {\n lowered, shape: 'text.getter', reactive: 'live', deps: DEPS.getter,\n note: probe ? 'if the variable holds a component (or an array of components), it is placed with controls.add instead of as text (__childExpr probe, untracked)' : undefined,\n };\n }\n if (callee === 'sender.bindings.when') {\n return { lowered, shape: 'when', reactive: 'live', deps: DEPS.cond };\n }\n return { lowered, shape: 'text', reactive: 'live', deps: DEPS.getter };\n}\n \nconst REACTIVE_LABEL: Record<ExplainReactivity, string> = {\n live: 'LIVE', static: 'STATIC', once: 'ONCE', receiver: 'RECEIVER', runtime: 'RUNTIME', 'n/a': '—',\n};\n\nexport function formatExplanations(list: MotifExplanation[]): string {\n if (list.length === 0) return '';\n const byFile = new Map<string, MotifExplanation[]>();\n for (const e of list) {\n const arr = byFile.get(e.file) ?? [];\n arr.push(e);\n byFile.set(e.file, arr);\n }\n const out: string[] = [];\n for (const [file, items] of byFile) {\n out.push(`[motifjs explain] ${file} — ${items.length} expressions`);\n for (const e of items) {\n const where = e.line === null ? '?' : `${e.line}:${(e.column ?? 0) + 1}`;\n out.push(` ${where.padEnd(8)} ${(e.site + '/' + e.shape).padEnd(24)} ${e.source}`);\n out.push(` => ${e.lowered}`);\n out.push(` ${REACTIVE_LABEL[e.reactive]} · deps: ${e.deps}`);\n if (e.note) out.push(` note: ${e.note}`);\n }\n }\n return out.join('\\n');\n}\n\nexport function printExplanations(list: MotifExplanation[]): void {\n const text = formatExplanations(list);\n if (text) console.info(text);\n}","import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\nimport htmlTags from 'html-tags';\n\nimport { htmlAttributes, htmlEvents } from './htmlAtributes';\nimport svgTags from 'svg-tags';\n\nimport { cacheGuardCalls, findIfStatements, makeComponentTraps, makeDirectives, makeHtmlAttr, makeHtmlEvents, makePreDirectives, mergeHtmlAttributes, returnIfStatement, SUPPORTED_DIRECTIVES, UNSUPPORTED_DIRECTIVES, supportedDirectivesText } from './propBuilder';\nimport { motifComponent, motifFragment, State, motifFunctionComponent } from './constants';\nimport { warn as diagWarn, fail } from './diagnostics';\nimport { noteOrigin, transferOrigin, explainAt, explainChild, describeTextNode, codeOf, DEPS, type ExplainReactivity } from './explain';\nconst FRAGMENT = 'Fragment';\n\ntype RefTargetKind = 'call' | 'assign' | 'runtime';\n\nconst isFunctionNode = (n: t.Node | null | undefined): boolean =>\n !!n && (t.isArrowFunctionExpression(n) || t.isFunctionExpression(n));\n\nconst isPlainValueNode = (n: t.Node | null | undefined): boolean =>\n !n || t.isLiteral(n) || t.isObjectExpression(n) || t.isArrayExpression(n) || t.isNewExpression(n) || t.isClassExpression(n);\n\nfunction enclosingClassOfThis(path: NodePath): NodePath<t.ClassDeclaration | t.ClassExpression> | null {\n let cur: NodePath | null = path.parentPath;\n while (cur) {\n if (cur.isClassDeclaration() || cur.isClassExpression()) return cur;\n if (cur.isFunctionDeclaration() || cur.isFunctionExpression() || cur.isObjectMethod()) return null;\n cur = cur.parentPath;\n }\n return null;\n}\n\nconst classMemberKinds = new WeakMap<t.Node, Map<string, RefTargetKind>>();\n\nfunction memberKindsOf(cls: t.ClassDeclaration | t.ClassExpression): Map<string, RefTargetKind> {\n const kinds = new Map<string, RefTargetKind>();\n for (const m of cls.body.body) {\n if (!t.isClassMethod(m) && !t.isClassProperty(m)) continue;\n if (m.computed) continue;\n const key = t.isIdentifier(m.key) ? m.key.name : t.isStringLiteral(m.key) ? m.key.value : null;\n if (key === null || key === 'constructor' || kinds.has(key)) continue;\n if (t.isClassMethod(m)) {\n kinds.set(key, m.kind === 'method' ? 'call' : 'runtime');\n continue;\n }\n const ann = t.isTSTypeAnnotation(m.typeAnnotation) ? m.typeAnnotation.typeAnnotation : null;\n if (isFunctionNode(m.value)) kinds.set(key, 'call');\n else if (ann && t.isTSFunctionType(ann)) kinds.set(key, 'runtime');\n else kinds.set(key, isPlainValueNode(m.value) ? 'assign' : 'runtime');\n }\n return kinds;\n}\n\nexport function recordClassMembers(program: NodePath<t.Program>): void {\n program.traverse({\n Class(path) {\n classMemberKinds.set(path.node, memberKindsOf(path.node));\n }\n });\n}\n\nfunction classMemberKind(cls: NodePath<t.ClassDeclaration | t.ClassExpression>, name: string): RefTargetKind {\n const kinds = classMemberKinds.get(cls.node) ?? memberKindsOf(cls.node);\n return kinds.get(name) ?? 'runtime';\n}\n\nfunction refTargetKind(prop: NodePath<t.JSXAttribute>, value: t.Expression): RefTargetKind {\n if (t.isMemberExpression(value) && t.isThisExpression(value.object) && !value.computed && t.isIdentifier(value.property)) {\n const cls = enclosingClassOfThis(prop);\n return cls ? classMemberKind(cls, value.property.name) : 'runtime';\n }\n if (t.isIdentifier(value)) {\n const binding = prop.scope.getBinding(value.name);\n if (!binding) return 'runtime';\n const node = binding.path.node;\n if (t.isFunctionDeclaration(node)) return 'call';\n if (t.isVariableDeclarator(node)) {\n if (!node.init) return 'assign';\n if (isFunctionNode(node.init) && binding.constant) return 'call';\n }\n return 'runtime';\n }\n return 'runtime';\n}\n\n\nconst componentEvents = new Set(['oncreating', 'onconfig', 'oncreated', 'onbuilding', 'onbuilt', 'ondisposing', 'ondisposed', \"oninitializecomponent\"]);\nfunction isComponentEvent(name: string): boolean {\n return componentEvents.has(name);\n}\nfunction isContextHandler(name: string) {\n return name.toLowerCase().startsWith(\"on-\") || name.toLowerCase().startsWith(\"on:\") || name.toLowerCase().startsWith(\"on_\");\n}\n\nfunction isDirective(name: string) {\n return name.toLowerCase().startsWith(\"x-\") || name.toLowerCase().startsWith(\"x:\");\n}\n\nconst LIFECYCLE_HOOKS = new Set(['built', 'building', 'mounted', 'config', 'configured', 'initializing', 'initialized', 'disposing', 'disposed', 'visibilitychanged', 'activated', 'deactivated']);\nfunction lifecycleHookOf(name: string): string | null {\n const lower = name.toLowerCase();\n let hook: string | null = null;\n if (lower.startsWith('x-') || lower.startsWith('x:')) hook = lower.slice(2);\n else if (lower.startsWith('on')) hook = lower.slice(2);\n return hook !== null && LIFECYCLE_HOOKS.has(hook) ? hook : null;\n}\n\n/** `.some/.every/.find/...` gibi KISA DEVRE yapan dizi yüklemleri (MJX004). */\nconst SHORT_CIRCUIT_ARRAY_METHODS = new Set(['some', 'every', 'find', 'findindex', 'findlast', 'findlastindex']);\n\n/** Bir üye zincirinin kökü `this` mi? (`this.state.rows.some(...)` → evet) */\nfunction isThisRooted(node: t.Node | null | undefined): boolean {\n let cur: any = node;\n while (cur) {\n if (t.isThisExpression(cur)) return true;\n if (t.isMemberExpression(cur)) { cur = cur.object; continue; }\n if (t.isCallExpression(cur)) { cur = cur.callee; continue; }\n return false;\n }\n return false;\n}\n\nfunction findShortCircuitPredicate(node: t.Node | null | undefined): string | null {\n let found: string | null = null;\n const visit = (n: any): void => {\n if (found !== null || n === null || typeof n !== 'object') return;\n if (t.isCallExpression(n) && t.isMemberExpression(n.callee) && t.isIdentifier(n.callee.property)) {\n if (SHORT_CIRCUIT_ARRAY_METHODS.has(n.callee.property.name.toLowerCase()) && isThisRooted(n.callee.object)) {\n found = n.callee.property.name;\n return;\n }\n }\n for (const key of Object.keys(n)) {\n if (key === 'loc' || key === 'leadingComments' || key === 'trailingComments') continue;\n const v = (n as any)[key];\n if (Array.isArray(v)) { v.forEach(visit); }\n else if (v && typeof v === 'object' && typeof v.type === 'string') { visit(v); }\n }\n };\n visit(node);\n return found;\n}\n\nfunction missingListKey(mapper: t.Node | null | undefined): boolean {\n if (!mapper) return false;\n if (!t.isArrowFunctionExpression(mapper) && !t.isFunctionExpression(mapper)) return false;\n\n let body: t.Node | null | undefined = (mapper as any).body;\n if (t.isBlockStatement(body as any)) {\n const ret = (body as t.BlockStatement).body.find(st => t.isReturnStatement(st)) as t.ReturnStatement | undefined;\n body = ret?.argument;\n }\n while (body && t.isParenthesizedExpression(body as any)) body = (body as any).expression;\n\n if (!body || !t.isCallExpression(body)) return false;\n if (!t.isIdentifier(body.callee) || body.callee.name !== motifComponent()) return false;\n\n const propsArg = body.arguments.length > 1 ? body.arguments[1] : body.arguments[0];\n if (!propsArg || !t.isObjectExpression(propsArg)) return false;\n if (propsArg.properties.some(p => t.isSpreadElement(p))) return false;\n\n const hasKey = propsArg.properties.some(p => {\n if (!t.isObjectProperty(p)) return false;\n const n = t.isIdentifier(p.key) ? p.key.name : (t.isStringLiteral(p.key) ? p.key.value : '');\n return n === 'indexkey' || n === 'key';\n });\n return !hasKey;\n}\n\n\nfunction startAttr(v: string) {\n if (v.includes(\"-\")) {\n return true;\n }\n return false;\n}\n\nexport function getAttributeName(attribute: NodePath<t.JSXAttribute>): string {\n const label = attribute.node.name;\n return t.isJSXNamespacedName(label) ? label.namespace.name + ':' + label.name.name : label.name;\n}\n\nexport function getAttributeValue(attribute: NodePath<t.JSXAttribute>, state: State): t.StringLiteral | t.Expression | t.CallExpression | t.ObjectMethod | null {\n const slot = attribute.get('value') as NodePath<t.JSXAttribute['value']>;\n switch (slot.node?.type) {\n case 'JSXElement':\n return ParseComponent(slot as NodePath<t.JSXElement>, state);\n case 'StringLiteral':\n return slot.node;\n case 'JSXExpressionContainer':\n return transformJSXExpressionContainer(slot as NodePath<t.JSXExpressionContainer>);\n default:\n return null;\n }\n}\n\nfunction collapseJsxWhitespace(raw: string): string {\n const rows = raw.split(/\\r\\n|\\n|\\r/);\n const lastRow = rows.length - 1;\n const kept: string[] = [];\n rows.forEach((row, index) => {\n let text = row.replace(/\\t/g, ' ');\n if (index > 0) text = text.replace(/^ +/, '');\n if (index < lastRow) text = text.replace(/ +$/, '');\n if (text !== '') kept.push(text);\n });\n return kept.join(' ');\n}\n\nexport function transformJSXText(text: NodePath<t.JSXText>): t.StringLiteral | null {\n const collapsed = collapseJsxWhitespace(text.node.value);\n return collapsed === '' ? null : t.stringLiteral(collapsed);\n}\n\nfunction memberTagToExpression(tag: t.JSXMemberExpression): t.MemberExpression {\n const segments: string[] = [];\n let head: t.JSXMemberExpression['object'] = tag;\n while (t.isJSXMemberExpression(head)) {\n segments.unshift(head.property.name);\n head = head.object;\n }\n let built: t.Expression = t.isJSXIdentifier(head) ? t.identifier(head.name) : t.nullLiteral();\n for (const segment of segments) {\n built = t.memberExpression(built, t.identifier(segment));\n }\n return built as t.MemberExpression;\n}\n\nexport function transformJSXExpressionContainer(container: NodePath<t.JSXExpressionContainer>): t.Expression {\n const inner = container.node.expression as t.Expression;\n const lazyAttribute = t.isConditionalExpression(inner) && container.parentPath?.isJSXAttribute();\n return lazyAttribute ? t.arrowFunctionExpression([], inner) : inner;\n}\n\nconst isMarkupTagName = (name: string): boolean =>\n name.includes('-') || name === 'center' || htmlTags.includes(name as htmlTags.htmlTags) || svgTags.includes(name);\n\nexport function getTag(element: NodePath<t.JSXElement>): t.Identifier | t.CallExpression | t.StringLiteral | t.MemberExpression {\n const tagPath = element.get('openingElement').get('name');\n const tag = tagPath.node;\n if (t.isJSXIdentifier(tag)) {\n return isMarkupTagName(tag.name) ? t.stringLiteral(tag.name) : t.identifier(tag.name);\n }\n if (t.isJSXMemberExpression(tag)) {\n return memberTagToExpression(tag);\n }\n return fail('MJX013', `Unsupported JSX tag name: ${tagPath.type}.`, tagPath as NodePath<t.Node>);\n}\n\nconst getProps = (props: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>[], path: NodePath<t.JSXElement>, state: State) => {\n\n const objectProps: t.ObjectMethod[] = [];\n const objectExpression: t.ObjectProperty[] = [];\n const eventProps: t.ExpressionStatement[] = [];\n const directives: t.ExpressionStatement[] = [];\n const preDirectives: t.ExpressionStatement[] = [];\n const componentEvents: t.ObjectProperty[] = [];\n let htmlAttrlist: t.ObjectProperty[] = [];\n const thisStatement: t.VariableDeclaration[] = [];\n const spreadProps: t.SpreadElement[] = [];\n\n const fileName = String(state.get('filename') ?? '');\n const originalCode: string | undefined = state.get('originalCode');\n\n /** explain kanalı: bu özniteliğin neye indiğini kaydet. */\n const explainProp = (prop: NodePath<any>, site: 'attr' | 'prop' | 'event' | 'directive' | 'component-event' | 'key', shape: string, lowered: t.Node | string | null | undefined, reactive: ExplainReactivity, deps: string, note?: string) =>\n explainAt(prop, fileName, originalCode, { site, shape, lowered, reactive, deps, note });\n\n /** Bileşen prop'una geçen ifadenin sınıfı. */\n const classifyPropValue = (raw: NodePath<t.JSXAttribute>, value: t.Node): { shape: string; reactive: ExplainReactivity; deps: string; note?: string } => {\n const v = raw.get('value');\n const inner = v.isJSXExpressionContainer() ? v.node.expression : null;\n if (inner && t.isConditionalExpression(inner)) {\n return { shape: 'prop.ternary', reactive: 'receiver', deps: DEPS.receiver,\n note: 'ternary wrapped lazily (by design): the receiving component should declare the prop as Bind<T> and read it with read()/toGetter()' };\n }\n if (t.isArrowFunctionExpression(value) || t.isFunctionExpression(value)) {\n return { shape: 'prop.getter', reactive: 'receiver', deps: DEPS.receiver };\n }\n if (t.isStringLiteral(value) || t.isNumericLiteral(value) || t.isBooleanLiteral(value) || t.isNullLiteral(value) || (t.isTemplateLiteral(value) && value.expressions.length === 0)) {\n return { shape: 'prop.literal', reactive: 'static', deps: DEPS.none };\n }\n if (t.isCallExpression(value) && t.isIdentifier(value.callee) && value.callee.name === motifComponent()) {\n return { shape: 'prop.element', reactive: 'static', deps: DEPS.none, note: 'JSX-valued prop: the component instance is built once and passed' };\n }\n return { shape: 'prop.value', reactive: 'once', deps: DEPS.once,\n note: 'passed as a value; if the object is a reactive proxy, the receiver stays live by reading its fields inside a getter' };\n };\n\n /** DOM özniteliğine yazılan ifadenin sınıfı (makeHtmlAttr'ın gerçek dalları). */\n const classifyAttrValue = (raw: NodePath<t.JSXAttribute>, value: t.Node, emitted: t.ObjectProperty | null): { shape: string; reactive: ExplainReactivity; deps: string; note?: string } => {\n const v = raw.get('value');\n const inner = v.isJSXExpressionContainer() ? v.node.expression : null;\n if (t.isStringLiteral(value) || t.isBooleanLiteral(value) || t.isNumericLiteral(value) || t.isNullLiteral(value)\n || (t.isUnaryExpression(value) && t.isLiteral(value.argument))\n || (t.isTemplateLiteral(value) && value.expressions.length === 0)) {\n return { shape: 'attr.literal', reactive: 'static', deps: DEPS.none };\n }\n if (inner && t.isConditionalExpression(inner)) {\n return { shape: 'attr.ternary', reactive: 'live', deps: DEPS.getter, note: 'ternary wrapped lazily (by design); attr.add calls the getter inside an effect' };\n }\n if (t.isArrowFunctionExpression(value) || t.isFunctionExpression(value)) {\n return { shape: 'attr.getter', reactive: 'live', deps: DEPS.getter };\n }\n if (t.isIdentifier(value)) {\n return { shape: 'attr.identifier', reactive: 'runtime', deps: DEPS.runtime };\n }\n if (t.isCallExpression(value) && t.isIdentifier(value.callee)) {\n return { shape: 'attr.call', reactive: 'once', deps: DEPS.once, note: 'a plain function call is passed as a VALUE; write `() => f(x)` to keep it live' };\n }\n const ev = emitted?.value;\n if (ev && (t.isArrowFunctionExpression(ev) || t.isFunctionExpression(ev))) {\n return { shape: 'attr.expr', reactive: 'live', deps: DEPS.getter, note: 'expression wrapped in a guarded getter (nothing is written while an intermediate link is null)' };\n }\n return { shape: 'attr.value', reactive: 'once', deps: DEPS.once };\n };\n\n /** Etiket bir BİLEŞEN mi (büyük harfle başlıyor ya da üye ifadesi)? */\n const tagIsComponent = (): boolean => {\n if (!t.isJSXElement(path.node)) return false;\n const nameNode = path.node.openingElement.name;\n if (t.isJSXMemberExpression(nameNode)) return true;\n if (!t.isJSXIdentifier(nameNode)) return false;\n const n = nameNode.name;\n return n.length > 0 && n[0].toUpperCase() === n[0] && n !== FRAGMENT;\n };\n\n /** Değersiz öznitelik (`<Comp flag />`) → `flag: true` prop'u. */\n const pushBooleanProp = (name: string) => {\n const key = (name.includes('-') || name.includes(':'))\n ? t.stringLiteral(name)\n : id(name);\n objectExpression.push(t.objectProperty(key, t.booleanLiteral(true)));\n };\n\n const plainTag = t.isStringLiteral(getTag(path));\n let userInit: t.Expression | null = null;\n\n const refEntries: { prop: NodePath<t.JSXAttribute>; lowered: t.Expression }[] = [];\n const pushRef = (prop: NodePath<t.JSXAttribute>, value: t.Expression | t.ObjectMethod) => {\n if (t.isIdentifier(value) || t.isMemberExpression(value)) {\n const kind = refTargetKind(prop, value);\n const callTarget = t.expressionStatement(t.callExpression(t.cloneNode(value), [t.identifier('sender')]));\n const assignTarget = t.expressionStatement(t.assignmentExpression(\"=\", t.cloneNode(value), t.identifier('sender')));\n const refStmt: t.Statement = kind === 'call'\n ? callTarget\n : kind === 'assign'\n ? assignTarget\n : t.ifStatement(t.binaryExpression('===', t.unaryExpression('typeof', t.cloneNode(value)), t.stringLiteral('function')), callTarget, assignTarget);\n const body: t.Statement[] = [refStmt];\n if (enclosingClassOfThis(prop)) {\n body.push(t.expressionStatement(t.callExpression(t.identifier('if(this.onRefCreated) this.onRefCreated'), [t.identifier('sender')])));\n }\n refEntries.push({ prop, lowered: t.arrowFunctionExpression([t.identifier('sender')], t.blockStatement(body)) });\n } else if (t.isFunctionExpression(value) || t.isArrowFunctionExpression(value)) {\n refEntries.push({ prop, lowered: t.arrowFunctionExpression(value.params, value.body, value.async) });\n } else if (t.isExpression(value)) {\n var cx = t.expressionStatement(value);\n refEntries.push({ prop, lowered: t.arrowFunctionExpression([t.identifier('sender')], t.blockStatement([cx])) });\n } else {\n objectProps.push(value)\n }\n };\n\n const hookCounts = new Map<string, number>();\n props.forEach(prop => {\n if (!prop.isJSXAttribute() || prop.node.value == null) return;\n const hook = lifecycleHookOf(getAttributeName(prop));\n if (hook !== null) hookCounts.set(hook, (hookCounts.get(hook) ?? 0) + 1);\n });\n const mergedHooks = new Map<string, { prop: NodePath<t.JSXAttribute>; value: t.Expression }[]>();\n hookCounts.forEach((count, hook) => { if (count > 1) mergedHooks.set(hook, []); });\n\n if (props.length > 0) {\n props.forEach(prop => {\n if (prop.isSpreadElement()) {\n spreadProps.push(prop);\n } else if (prop.isJSXSpreadChild()) {\n spreadProps.push(prop);\n } else if (prop.isJSXSpreadAttribute()) {\n \n spreadProps.push(t.spreadElement(prop.node.argument));\n }\n else if (prop.isJSXAttribute()) {\n let name = getAttributeName(prop);\n let value = getAttributeValue(prop, state);\n const mergedHook = lifecycleHookOf(name);\n if (mergedHook !== null && mergedHooks.has(mergedHook) && value != null) {\n if (t.isExpression(value)) {\n mergedHooks.get(mergedHook)!.push({ prop, value });\n } else {\n objectProps.push(value);\n }\n } else if (name === 'initializeComponent' && value != null) {\n if (t.isExpression(value)) {\n userInit = value;\n explainProp(prop, 'component-event', 'lifecycle', `initializeComponent: ${codeOf(value)}`, 'n/a', DEPS.none, plainTag\n ? 'called once during setup with the tag\\'s component as sender (same as initializeComponent on a component tag)'\n : 'passed via runover; called once during setup with the tag\\'s component (the returned root for a function component) as sender');\n } else {\n objectProps.push(value);\n }\n } else if (name === 'ref' && value != null) {\n pushRef(prop, value);\n } else if (isComponentEvent(name.toLowerCase())) {\n if (value != null) {\n var ce = makeComponentTraps(prop, name, value, path);\n if (ce !== null) {\n componentEvents.push(ce)\n explainProp(prop, 'component-event', 'lifecycle', ce, 'n/a', DEPS.none, 'lifecycle hook; called once during component setup/build/dispose');\n }\n }\n } else if (!plainTag && mergedHook !== null && value != null && t.isExpression(value)) {\n const key = name.toLowerCase().startsWith('on') ? name : 'on' + mergedHook;\n const lifecycleProp = t.objectProperty(t.isValidIdentifier(key) ? id(key) : t.stringLiteral(key), value);\n componentEvents.push(lifecycleProp);\n explainProp(prop, 'component-event', 'lifecycle', lifecycleProp, 'n/a', DEPS.none, 'lifecycle hook; on a component tag it is applied via runover to the tag\\'s component (the returned root for a function component)');\n } else if (isContextHandler(name.toLowerCase()) && value != null) {\n const newName = name.slice(3);\n\n const onCall = t.callExpression(id('sender.motif.on'), [t.stringLiteral(newName), value as t.Expression]);\n directives.push(t.expressionStatement(onCall));\n explainProp(prop, 'event', 'event.context', onCall, 'n/a', DEPS.none, 'context event (on:/on-/on_): the handler is passed to motif.on as is; with ≤ 1 declared parameter it is called as fn(event), with 2 or more as fn(sender, event)');\n } else if (name.toLowerCase() === \"key\" || name.toLowerCase() === \"indexkey\") {\n var clearedName = 'indexkey';\n if (t.isIdentifier(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isMemberExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isFunctionExpression(value) || t.isArrowFunctionExpression(value)) {\n var cex = t.arrowFunctionExpression(value.params, value.body)\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n\n } else if (t.isExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex));\n } else {\n }\n explainProp(prop, 'key', 'key', objectExpression[objectExpression.length - 1], 'n/a', 'item identity — ListBinding matches DOM nodes by it', undefined);\n } else if (isDirective(name.toLowerCase())) {\n const directiveName = name.toLowerCase().replace(\"x:\", \"\").replace(\"x-\", \"\");\n if (UNSUPPORTED_DIRECTIVES.has(directiveName)) {\n fail('MJX006', `Directive \"${name}\" is not supported. Supported: ${supportedDirectivesText()}.`, prop);\n }\n if (value != null) {\n var clearedName = name.toLowerCase().replace(\"x:\", \"\").replace(\"x-\", \"\").replace(\"on:\", \"\");\n if ((SUPPORTED_DIRECTIVES as readonly string[]).includes(clearedName)) {\n if (clearedName !== 'wait' && clearedName !== 'display') {\n var directive = makeDirectives(prop, name, value, path, state);\n if (directive != null) {\n directives.push(directive)\n const twoWay = clearedName === 'model' && t.isCallExpression(directive.expression) && directive.expression.arguments.length > 1;\n explainProp(prop, 'directive', 'directive.' + clearedName, directive.expression, 'live',\n twoWay ? DEPS.model : clearedName === 'model' ? DEPS.modelOneWay : DEPS.getter);\n }\n } else {\n var directive = makePreDirectives(prop, name, value, path);\n if (directive != null) {\n preDirectives.push(directive)\n explainProp(prop, 'directive', 'directive.' + clearedName, directive.expression, 'live', DEPS.getter,\n clearedName === 'wait' ? 'true → hidden; if true at start, the element and its children are never built (preconfig, before build)'\n : 'removes/reinserts in the DOM; the instance is kept (preconfig)');\n }\n }\n } else if (clearedName === 'style') {\n const styleAttr = makeHtmlAttr(prop, 'style', value, path);\n if (styleAttr !== null) {\n htmlAttrlist.push(styleAttr);\n const c = classifyAttrValue(prop, value, styleAttr);\n explainProp(prop, 'attr', 'style', `sender.style(${codeOf(styleAttr.value)})`, c.reactive, c.deps, c.note);\n }\n } else if (clearedName === \"ref\") {\n pushRef(prop, value);\n } else if (clearedName === \"inject\") {\n\n if (t.isIdentifier(value)) {\n objectExpression.push(t.objectProperty(id(clearedName), value))\n } else if (t.isMemberExpression(value)) {\n objectExpression.push(t.objectProperty(id(clearedName), value))\n } else if (t.isFunctionExpression(value) || t.isArrowFunctionExpression(value)) {\n objectExpression.push(t.objectProperty(id(clearedName), value))\n\n } else if (t.isExpression(value)) {\n objectExpression.push(t.objectProperty(id(clearedName), value))\n\n } else {\n objectProps.push(value)\n }\n\n } else if (name.toLowerCase() === \"key\" || name.toLowerCase() === \"indexkey\") {\n var clearedName = 'indexkey';\n if (t.isIdentifier(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isMemberExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isFunctionExpression(value) || t.isArrowFunctionExpression(value)) {\n var cex = t.arrowFunctionExpression(value.params, value.body)\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n\n } else if (t.isExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex));\n } else {\n objectProps.push(value);\n }\n } else if (clearedName === \"key\" || clearedName === \"indexkey\") {\n clearedName = 'indexkey';\n if (t.isIdentifier(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isMemberExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n } else if (t.isFunctionExpression(value) || t.isArrowFunctionExpression(value)) {\n var cex = t.arrowFunctionExpression(value.params, value.body)\n objectExpression.push(t.objectProperty(id(clearedName), cex))\n\n } else if (t.isExpression(value)) {\n var cex = t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(value)]))\n objectExpression.push(t.objectProperty(id(clearedName), cex));\n } else {\n objectProps.push(value);\n }\n } else {\n if (!isComponentEvent('on' + clearedName) && !LIFECYCLE_HOOKS.has(clearedName) && clearedName !== 'initializecomponent') {\n diagWarn(\n 'MJX007',\n `Unknown directive \"${name}\": it is passed on as the prop \"on${clearedName}\". Supported: ${supportedDirectivesText()}.`,\n prop, fileName,\n );\n }\n if (t.isExpression(value)) {\n objectExpression.push(t.objectProperty(id(\"on\" + clearedName), value))\n } else {\n objectProps.push(value)\n }\n }\n }\n } else if ((htmlAttributes.has(name) || startAttr(name))\n ||\n (\n (<t.JSXIdentifier>(<t.JSXElement>path.node).openingElement.name).name == String((<t.JSXIdentifier>(<t.JSXElement>path.node).openingElement.name).name).toLowerCase() &&\n name.toLowerCase().startsWith(\"on\") == false &&\n name.toLowerCase() != 'indexkey' &&\n name.toLowerCase() != 'key' &&\n name.toLowerCase() != 'props' &&\n name.toLowerCase() != 'settings'\n )\n ) {\n \n var isComponent = tagIsComponent();\n\n if (isComponent) {\n if (value != null) {\n if (t.isExpression(value)) {\n if (name.includes(\"-\") || name.includes(\":\")) {\n objectExpression.push(t.objectProperty(t.stringLiteral(name), value))\n } else {\n objectExpression.push(t.objectProperty(id(name), value))\n }\n {\n const c = classifyPropValue(prop, value);\n explainProp(prop, 'prop', c.shape, objectExpression[objectExpression.length - 1], c.reactive, c.deps, c.note);\n }\n\n } else {\n objectProps.push(value)\n }\n } else {\n pushBooleanProp(name);\n explainProp(prop, 'prop', 'prop.flag', objectExpression[objectExpression.length - 1], 'static', DEPS.none);\n }\n }\n else if (name === 'transition' && value !== null && t.isExpression(value)) {\n objectExpression.push(t.objectProperty(id('transition'), value));\n explainProp(prop, 'prop', 'prop.transition', objectExpression[objectExpression.length - 1], 'static', DEPS.none,\n 'bound to the transition engine (options.transition); no HTML attribute is written');\n }\n else if (name === 'options' && value !== null && t.isExpression(value)) {\n objectExpression.push(t.objectProperty(id('options'), value));\n explainProp(prop, 'prop', 'prop.options', objectExpression[objectExpression.length - 1], 'static', DEPS.none,\n 'copied into motif.options (hideStrategy, disableDisposal); no HTML attribute is written');\n }\n else if (value !== null) {\n var atr = makeHtmlAttr(prop, name, value, path);\n if (atr !== null) {\n htmlAttrlist.push(atr);\n const lname = name.toLowerCase();\n const c = classifyAttrValue(prop, value, atr);\n const call = lname === 'class' || lname === 'classname' ? 'sender.class.add' : lname === 'style' ? 'sender.style' : 'sender.attr.add';\n const shown = call === 'sender.attr.add' ? `${call}({ \"${name}\": ${codeOf(atr.value)} })` : `${call}(${codeOf(atr.value)})`;\n explainProp(prop, 'attr', c.shape, shown, c.reactive, c.deps, c.note);\n }\n } else {\n var atr = makeHtmlAttr(prop, name, t.booleanLiteral(true), path);\n if (atr !== null) {\n htmlAttrlist.push(atr);\n explainProp(prop, 'attr', 'attr.flag', `sender.attr.add({ \"${name}\": true })`, 'static', DEPS.none);\n }\n }\n\n\n } else if (name.toLowerCase().startsWith(\"on\") && htmlEvents.has(name.toLowerCase())) {\n if (tagIsComponent() && name !== name.toLowerCase()) {\n diagWarn(\n 'MJX002',\n `\"${name}\" is a DOM event name; on a component tag this prop is NOT passed as a callback but bound as a DOM listener on the root element, so \"this.props.${name}\" stays undefined. For a callback, choose a name that does not collide with DOM events (e.g. \"onValueChange\", \"onConfirm\", \"onSwitch\").`,\n prop, fileName,\n );\n }\n if (value != null) {\n var evp = makeHtmlEvents(prop, name, value, path);\n if (evp !== null) {\n eventProps.push(t.expressionStatement(evp));\n explainProp(prop, 'event', 'event.dom', evp, 'n/a', DEPS.none,\n tagIsComponent() ? 'DOM event on a component tag: bound as a listener on the root element, it does NOT reach this.props' : undefined);\n }\n }\n } else if (!name.startsWith(\"x\")) {\n if (value != null) {\n if (t.isExpression(value)) {\n if (name.includes(\"-\") || name.includes(\":\")) {\n objectExpression.push(t.objectProperty(t.stringLiteral(name), value))\n } else {\n objectExpression.push(t.objectProperty(id(name), value))\n }\n {\n const c = classifyPropValue(prop, value);\n explainProp(prop, 'prop', c.shape, objectExpression[objectExpression.length - 1], c.reactive, c.deps, c.note);\n }\n\n } else {\n objectProps.push(value)\n }\n\n } else {\n pushBooleanProp(name);\n explainProp(prop, 'prop', 'prop.flag', objectExpression[objectExpression.length - 1], 'static', DEPS.none);\n }\n\n }\n }\n });\n }\n\n if (refEntries.length > 0) {\n const refProp = t.objectProperty(id('ref'), refEntries.length === 1 ? refEntries[0].lowered : t.arrayExpression(refEntries.map(e => e.lowered)));\n objectExpression.push(refProp);\n refEntries.forEach(e => explainProp(e.prop, 'prop', 'ref', refProp, 'n/a', DEPS.none,\n refEntries.length === 1\n ? 'the tag\\'s component is passed to the ref once, while it is being built'\n : 'all ref spellings on the same tag are merged into one list; each is called once, in source order'));\n }\n\n mergedHooks.forEach((entries, hook) => {\n if (entries.length === 0) return;\n const merged = t.objectProperty(id('on' + hook), t.arrayExpression(entries.map(e => e.value)));\n componentEvents.push(merged);\n entries.forEach(e => explainProp(e.prop, 'component-event', 'lifecycle', merged, 'n/a', DEPS.none,\n 'all spellings of the same hook on this tag are merged into one list; each is called once, in source order'));\n });\n\n const htmlProps: t.ExpressionStatement[] = mergeHtmlAttributes(htmlAttrlist);\n\n return { htmlProps, eventProps, objectExpression, objectProps, componentEvents, directives, preDirectives, thisStatement, spreadProps, userInit: userInit as t.Expression | null }\n};\n\n\nexport const getChildren = (\n\n\n paths: NodePath<t.JSXText | t.JSXExpressionContainer | t.JSXSpreadChild | t.JSXElement | t.JSXFragment>[]\n , state: State) => {\n\n\n const originalCode: string | undefined = state.get('originalCode');\n const transformOne = (path: NodePath<t.JSXText | t.JSXExpressionContainer | t.JSXSpreadChild | t.JSXElement | t.JSXFragment>): any => {\n if (path.isJSXText()) {\n const literal = transformJSXText(path);\n return literal === null ? null : mkText(literal);\n }\n\n if (path.isJSXExpressionContainer()) { \n // \"{ () => { return cond ? <A/> : <B/> } }\".\n let expression = transformJSXExpressionContainer(path) as t.Expression;\n\n // Detect: {(() => { switch(expr) { case ... } })()}\n\n if (t.isCallExpression(expression) && (t.isArrowFunctionExpression(expression.callee) || t.isFunctionExpression(expression.callee)) &&\n expression.callee.body && t.isBlockStatement(expression.callee.body)\n ) {\n\n const switchStmt = expression.callee.body.body.find((s: any) => t.isSwitchStatement(s)) as t.SwitchStatement | undefined;\n if (switchStmt) { \n const discriminant = switchStmt.discriminant;\n \n const callee = expression.callee as t.ArrowFunctionExpression | t.FunctionExpression;\n const callArgs = expression.arguments as t.Expression[];\n const params = callee.params;\n\n let discriminatorFn: t.ArrowFunctionExpression;\n \n const casesObjProps: t.ObjectProperty[] = [];\n let defaultFn: t.ArrowFunctionExpression | undefined = undefined;\n for (const caseNode of switchStmt.cases) {\n const ret = caseNode.consequent.find((s: any) => t.isReturnStatement(s)) as t.ReturnStatement | undefined;\n const handlerBody = ret && ret.argument ? [t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier('frame'), t.identifier('navigate')),\n [ret.argument]\n ))] : [t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier('frame'), t.identifier('navigate')),\n [t.callExpression(t.identifier(motifFragment()), [])]\n ))];\n if (!state.get(motifFragment())) {\n state.set(motifFragment(), motifFragment());\n }\n\n const handlerFn = t.arrowFunctionExpression([t.identifier('frame')], t.blockStatement(handlerBody));\n if (caseNode.test) {\n if (t.isStringLiteral(caseNode.test) || t.isNumericLiteral(caseNode.test) || t.isBooleanLiteral(caseNode.test)) {\n casesObjProps.push(\n t.objectProperty(caseNode.test, handlerFn)\n );\n } else {\n // Optionally: throw or skip\n }\n } else {\n defaultFn = handlerFn;\n }\n }\n\n if (\n params.length === 1 &&\n t.isIdentifier(params[0]) &&\n t.isIdentifier(discriminant) &&\n (params[0] as t.Identifier).name === (discriminant as t.Identifier).name &&\n callArgs.length >= 1\n ) {\n // Özel durum (tek parametre): () => arg0\n discriminatorFn = t.arrowFunctionExpression([], callArgs[0] as t.Expression);\n } else if (params.length > 0) {\n discriminatorFn = t.arrowFunctionExpression(\n [],\n t.callExpression(\n t.arrowFunctionExpression(params as any, discriminant),\n callArgs as any\n )\n );\n } else {\n discriminatorFn = t.arrowFunctionExpression([], discriminant);\n }\n\n const args = [discriminatorFn, t.objectExpression(casesObjProps)];\n\n if (defaultFn) args.push(defaultFn);\n\n // return t.callExpression(\n return t.callExpression(\n t.identifier('sender.bindings.switchCase'),\n args\n );\n }\n }\n\n if ((t.isArrowFunctionExpression(expression) || t.isFunctionExpression(expression)) && expression.body && t.isBlockStatement(expression.body)\n ) {\n const switchStmt = expression.body.body.find((s: any) => t.isSwitchStatement(s)) as t.SwitchStatement | undefined;\n if (switchStmt) { \n const discriminant = switchStmt.discriminant; \n const casesObjProps: t.ObjectProperty[] = [];\n let defaultFn: t.ArrowFunctionExpression | undefined = undefined;\n for (const caseNode of switchStmt.cases) {\n const ret = caseNode.consequent.find((s: any) => t.isReturnStatement(s)) as t.ReturnStatement | undefined;\n const handlerBody = ret && ret.argument ? [t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier('frame'), t.identifier('navigate')),\n [ret.argument]\n ))] : [t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier('frame'), t.identifier('navigate')),\n [t.callExpression(t.identifier(motifFragment()), [])]\n ))];\n if (!state.get(motifFragment())) {\n state.set(motifFragment(), motifFragment());\n }\n\n const handlerFn = t.arrowFunctionExpression([t.identifier('frame')], t.blockStatement(handlerBody));\n if (caseNode.test) {\n if (t.isStringLiteral(caseNode.test) || t.isNumericLiteral(caseNode.test) || t.isBooleanLiteral(caseNode.test)) {\n casesObjProps.push(\n t.objectProperty(caseNode.test, handlerFn)\n );\n } else {\n // Optionally: throw or skip\n }\n } else {\n defaultFn = handlerFn;\n }\n }\n const discriminatorFn = t.arrowFunctionExpression([], discriminant);\n const args = [discriminatorFn, t.objectExpression(casesObjProps)];\n if (defaultFn) args.push(defaultFn);\n\n return t.callExpression(\n t.identifier('sender.bindings.switchCase'),\n args\n );\n }\n }\n\n const unwrapConditionalFromFunction = (expr: t.Expression): t.Expression => {\n let current: t.Expression | null = expr;\n while (current) { \n if (t.isArrowFunctionExpression(current) && t.isConditionalExpression(current.body)) {\n current = current.body;\n continue;\n } \n if ((t.isArrowFunctionExpression(current) || t.isFunctionExpression(current)) && t.isBlockStatement(current.body)) {\n const ret = current.body.body.find(s => t.isReturnStatement(s) && (s as t.ReturnStatement).argument && t.isConditionalExpression((s as t.ReturnStatement).argument as t.Expression)) as t.Statement | undefined;\n if (ret && t.isReturnStatement(ret) && ret.argument && t.isConditionalExpression(ret.argument)) {\n const locals = current.body.body\n .filter(s => t.isVariableDeclaration(s))\n .flatMap(s => (s as t.VariableDeclaration).declarations\n .map(d => (t.isIdentifier(d.id) ? d.id.name : null))\n .filter((n): n is string => n !== null));\n if (locals.length > 0) {\n diagWarn(\n 'MJX001',\n `In a block-bodied function in JSX child position the condition is moved out of the closure; ${locals.map(n => '\"' + n + '\"').join(', ')} declared inside it are not visible in the branches and throw ReferenceError. Use an expression-bodied arrow function (\\`{() => cond ? <A t={compute()}/> : <B/>}\\`) or move the logic into a named method.`,\n path, String(state.get('filename') ?? ''),\n );\n }\n current = ret.argument as t.ConditionalExpression;\n continue;\n }\n }\n if (t.isParenthesizedExpression(current) && (current as any).expression) { \n current = (current as any).expression;\n continue;\n }\n break;\n }\n return current || expr;\n };\n\n if (t.isArrowFunctionExpression(expression) || t.isFunctionExpression(expression)) {\n const hit = findShortCircuitPredicate(expression.body);\n if (hit !== null) {\n diagWarn(\n 'MJX004',\n `\"${hit}()\" short-circuits inside a reactive getter: the predicate stops at the first match, so the rest of the array is not tracked as a dependency and the binding does not update when those items change. Keep the result in a computed value or field and read that, or traverse the whole array first (e.g. \"arr.filter(...).length > 0\").`,\n path, String(state.get('filename') ?? ''),\n );\n }\n }\n\n expression = unwrapConditionalFromFunction(expression);\n\n if (isChildsSlot(expression)) {\n return expression;\n }\n\n if (t.isIdentifier(expression)) {\n return mkText(expression)\n }\n\n if (t.isBinaryExpression(expression)) {\n return mkText(expression)\n }\n\n if (t.isConditionalExpression(expression)) {\n const frameId = t.identifier('frame');\n\n const isMotifCall = (e: t.Expression) => t.isCallExpression(e) && t.isIdentifier(e.callee) && (e.callee.name === motifComponent() || e.callee.name === motifFragment());\n const normalize = (e: t.Expression): t.Expression => {\n if (isMotifCall(e)) return e;\n return mkText(e);\n };\n\n const buildBranch = (node: t.Expression): t.Statement[] => {\n if (t.isConditionalExpression(node)) {\n const trueBody = buildBranch(node.consequent);\n const falseBody = buildBranch(node.alternate);\n return [\n t.expressionStatement(\n t.callExpression(t.identifier('sender.bindings.ternaryCall'), [\n t.arrowFunctionExpression([], node.test as t.Expression),\n t.arrowFunctionExpression([], t.blockStatement(trueBody)),\n t.arrowFunctionExpression([], t.blockStatement(falseBody))\n ])\n )\n ];\n }\n return [t.expressionStatement(\n t.callExpression(\n t.memberExpression(frameId, t.identifier('navigate')),\n [normalize(node)]\n )\n )];\n };\n\n const trueFn = t.arrowFunctionExpression([frameId], t.blockStatement(buildBranch(expression.consequent)));\n const falseFn = t.arrowFunctionExpression([frameId], t.blockStatement(buildBranch(expression.alternate)));\n const condFn = t.arrowFunctionExpression([], expression.test);\n if (!state.get(motifFragment())) {\n state.set(motifFragment(), motifFragment());\n }\n\n return t.callExpression(id('sender.bindings.ternary'), [condFn, trueFn, falseFn]);\n }\n\n if (t.isMemberExpression(expression)) {\n return mkText(expression)\n }\n if (t.isFunctionExpression(expression)) {\n return expression;\n }\n if (t.isCallExpression(expression)) {\n\n if (t.isCallExpression(expression)) {\n var b = expression.arguments;\n if (t.isMemberExpression(expression.callee)) {\n if (t.isIdentifier(expression.callee.property)) {\n if (expression.callee.property.name === 'map' || expression.callee.property.name === 'forEach') {\n if (missingListKey(b[0])) {\n diagWarn(\n 'MJX003',\n 'List item has no \"key\". Rows are matched by the item object (primitive items by value), not by key, so a key does not change DOM reuse; a stable key such as `key={item.id}` is checked for duplicates (MJX202).',\n path, String(state.get('filename') ?? ''),\n );\n }\n\n state.set('loop-waiter', expression.callee.object);\n return t.callExpression(id('sender.repeater'), [expression.callee.object, ...b]);\n }\n }\n }\n }\n\n if (t.isMemberExpression(expression.callee)) {\n return makeMemberCallChild(expression);\n }\n }\n\n if (t.isStringLiteral(expression)) {\n return mkText(expression)\n }\n \n if (t.isTemplateLiteral(expression) && expression.expressions.length > 0) { \n return t.arrowFunctionExpression([], expression);\n }\n\n return expression;\n }\n\n const childNode: t.Node = path.node;\n if (t.isCallExpression(childNode)) return childNode;\n if (path.isJSXElement()) return ParseComponent(path, state);\n\n fail('MJX013', `Unsupported JSX child: ${path.type}.`, path as NodePath<t.Node>);\n };\n\n const lowered: any[] = [];\n for (const child of paths) {\n const result = transformOne(child);\n if (result && !child.isJSXText()) noteOrigin(result, child as NodePath<t.Node>, originalCode);\n if (result == null || t.isJSXEmptyExpression(result)) continue;\n lowered.push(result);\n }\n return lowered;\n\n}\n\nfunction id(name: string): t.Identifier {\n return t.identifier(name);\n}\n\nconst isChildsSlot = (e: t.Expression): boolean =>\n (t.isMemberExpression(e) && !e.computed && t.isIdentifier(e.property) && e.property.name === 'childs')\n || (t.isIdentifier(e) && e.name === 'childs');\n\n/** `??` / `||` mi? (C1: bunlar `&&` gibi `when`'e çevrilmemeli) */\nconst isCoalesceLogical = (e: t.Expression): boolean =>\n t.isLogicalExpression(e) && (e.operator === '??' || e.operator === '||');\n\nconst coalesceFn = (cx: t.LogicalExpression): t.ArrowFunctionExpression => {\n const l = t.identifier('__l');\n return t.arrowFunctionExpression([], t.blockStatement([\n t.variableDeclaration('let', [t.variableDeclarator(t.identifier('__l'))]),\n t.tryStatement(\n t.blockStatement([t.expressionStatement(t.assignmentExpression('=', l, cx.left as t.Expression))]),\n t.catchClause(null, t.blockStatement([t.expressionStatement(t.assignmentExpression('=', t.identifier('__l'), t.identifier('undefined')))]))\n ),\n t.returnStatement(t.logicalExpression(cx.operator, t.identifier('__l'), cx.right))\n ]));\n};\n\nconst makeCoalesceChild = (cx: t.LogicalExpression): t.CallExpression =>\n t.callExpression(id('sender.bindings.method'), [coalesceFn(cx)]);\n\nconst makeMemberCallChild = (call: t.CallExpression): t.CallExpression =>\n t.callExpression(id('sender.bindings.method'), [t.arrowFunctionExpression([], t.blockStatement([\n t.tryStatement(\n t.blockStatement([t.returnStatement(call)]),\n t.catchClause(null, t.blockStatement([t.returnStatement(t.identifier('undefined'))]))\n )\n ]))]);\n\n/** JSXElement'in etiket adı (yalnızca basit tanımlayıcı; `<Foo.Bar>` için null). */\nconst jsxTagName = (p: NodePath<t.JSXElement>): string | null => {\n const n = p.node.openingElement.name;\n return t.isJSXIdentifier(n) ? n.name : null;\n};\n\nconst isInsideSvgTree = (path: NodePath<t.JSXElement>): boolean => {\n let p: NodePath | null = path.parentPath;\n while (p) {\n if (p.isJSXElement()) {\n const n = jsxTagName(p as NodePath<t.JSXElement>);\n if (n === 'foreignObject') return false;\n if (n === 'svg' || (n && svgTags.includes(n) && !htmlTags.includes(n as any))) return true;\n }\n p = p.parentPath;\n }\n return false;\n};\n\nconst listSource = (src: t.Expression): t.Expression => {\n if (t.isArrowFunctionExpression(src) || t.isFunctionExpression(src)) return src;\n if (t.isMemberExpression(src) || t.isIdentifier(src) || t.isLogicalExpression(src) || t.isBinaryExpression(src) || t.isCallExpression(src)) {\n return returnIfStatement(src, true, t.arrayExpression());\n }\n return t.arrowFunctionExpression([], src);\n};\n\nconst listRender = (args: t.CallExpression['arguments']): t.Expression => {\n const render = args[1] as t.Expression;\n const thisArg = args[2];\n if (!thisArg || !t.isExpression(thisArg)) return render;\n return t.callExpression(t.memberExpression(render, t.identifier('bind')), [thisArg]);\n};\n\nconst extractMemberExpressionFromFunction = (exp: t.Expression): t.MemberExpression | null => { \n if (t.isArrowFunctionExpression(exp) && exp.params.length === 0 && t.isMemberExpression(exp.body)) {\n return exp.body;\n } \n if ((t.isArrowFunctionExpression(exp) || t.isFunctionExpression(exp)) && exp.params.length === 0 && t.isBlockStatement(exp.body)) {\n const statements = exp.body.body;\n if (statements.length === 1 && t.isReturnStatement(statements[0]) && statements[0].argument && t.isMemberExpression(statements[0].argument)) {\n return statements[0].argument;\n }\n }\n return null;\n};\n\nconst splitMemberExpression = (exp: t.MemberExpression): { object: t.Expression, property: string } | null => {\n if (t.isIdentifier(exp.property)) {\n return {\n object: exp.object,\n property: exp.property.name\n };\n }\n return null;\n};\n\nconst mkText = (exp: t.Expression) => {\n var a1: t.CallExpression;\n \n const childProbe: t.Expression | null =\n (t.isIdentifier(exp) || t.isMemberExpression(exp)) ? t.arrowFunctionExpression([], exp) : null;\n\n if (t.isStringLiteral(exp)) {\n a1 = t.callExpression(id('sender.setText'), [exp]);\n } else if (t.isMemberExpression(exp)) {\n const split = splitMemberExpression(exp);\n if (split) {\n a1 = t.callExpression(id('sender.bindings.add'), [\n t.stringLiteral(\"textContent\"),\n split.object,\n t.stringLiteral(split.property)\n ]);\n } else {\n var ifStatement = findIfStatements(exp);\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([rtrns])), [exp]);\n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n }\n } else if (t.isObjectExpression(exp) || t.isIdentifier(exp)) {\n var ifStatement = findIfStatements(exp);\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns])); \n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n } else if (t.isArrowFunctionExpression(exp)) { \n const memberExp = extractMemberExpressionFromFunction(exp);\n if (memberExp) {\n const split = splitMemberExpression(memberExp);\n if (split) {\n a1 = t.callExpression(id('sender.bindings.add'), [\n t.stringLiteral(\"textContent\"),\n split.object,\n t.stringLiteral(split.property)\n ]);\n } else {\n var ifStatement = findIfStatements(exp);\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n }\n } else {\n var ifStatement = findIfStatements(exp);\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns])); \n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n }\n\n } else if (isCoalesceLogical(exp)) { \n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), coalesceFn(exp as t.LogicalExpression)]);\n } else if (t.isLogicalExpression(exp)) {\n var ifStatement = findIfStatements(exp.left);\n if (t.isFunction(exp.left) || t.isArrowFunctionExpression(exp.left) || t.isFunctionExpression(exp.left) || t.isFunctionDeclaration(exp.left)) {\n\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp.left), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp.left, []), t.arrowFunctionExpression([], exp.left)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n if (!t.isFunctionDeclaration(exp.right) && !t.isArrowFunctionExpression(exp.right)) {\n\n var ifst = t.ifStatement(t.identifier('__v'),\n t.blockStatement([t.returnStatement(exp.right)]),\n t.blockStatement([t.returnStatement(t.callExpression(t.identifier(motifComponent()), [t.objectExpression([])]))]))\n\n exp.right = t.arrowFunctionExpression([t.identifier(\"__v\")], t.blockStatement([t.returnStatement(exp.right)]))\n }\n var a1 = t.callExpression(id('sender.bindings.when'), [kx, exp.right]);\n } else {\n // var rtrn = t.returnStatement(t.arrowFunctionExpression([], exp.left));\n // //var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n // var kx = t.arrowFunctionExpression([], t.blockStatement([rtrn]));\n // if (!t.isFunctionDeclaration(exp.right) && !t.isArrowFunctionExpression(exp.right)) {\n\n // var ifst = t.ifStatement(t.identifier('val'),\n\n // var a1 = t.callExpression(id('sender.bind.logic'), [kx, exp.right]);\n\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([t.returnStatement(exp.left)]));\n var tryStatement = t.tryStatement(t.blockStatement([rtrns]), t.catchClause(null, t.blockStatement([t.returnStatement(t.nullLiteral())])), null);\n var kx = cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([tryStatement])), [exp.left]);\n\n if (!t.isFunctionDeclaration(exp.right) && !t.isArrowFunctionExpression(exp.right)) {\n\n var ifst = t.ifStatement(t.identifier('__v'),\n t.blockStatement([t.returnStatement(exp.right)]),\n t.blockStatement([t.returnStatement(t.callExpression(t.identifier(motifComponent()), [t.objectExpression([])]))]))\n\n exp.right = t.arrowFunctionExpression([t.identifier(\"__v\")], t.blockStatement([t.returnStatement(exp.right)]))\n }\n var a1 = t.callExpression(id('sender.bindings.when'), [kx, exp.right]);\n }\n // var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp.left), t.stringLiteral('function'));\n // var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp.left, []), t.arrowFunctionExpression([], exp.left)));\n // var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n // var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n // if (!t.isFunctionDeclaration(exp.right) && !t.isArrowFunctionExpression(exp.right)) {\n\n // var ifst = t.ifStatement(t.identifier('val'),\n\n // var a1 = t.callExpression(id('sender.bind.logic'), [kx, exp.right]);\n\n } else if (t.isBinaryExpression(exp)) {\n var ifStatement = findIfStatements(exp);\n\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([rtrns])), [exp]); \n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n } else {\n var ifStatement = findIfStatements(exp);\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp, []), t.arrowFunctionExpression([], exp)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([rtrns])), [exp]); \n a1 = t.callExpression(id('sender.bindings.add'), [t.stringLiteral(\"textContent\"), kx]);\n }\n\n var arrayBody = t.arrowFunctionExpression([id('sender')], t.blockStatement([t.expressionStatement(a1)]));\n const bodyProps: t.ObjectProperty[] = [t.objectProperty(id('initializeComponent'), arrayBody)];\n if (childProbe) { bodyProps.push(t.objectProperty(id('__childExpr'), childProbe)); }\n var body = t.objectExpression(bodyProps);\n\n return t.callExpression(id(motifComponent()), [t.stringLiteral('text'), body]);\n}\n \n/** `sender.bindings.*` çağrısı olarak gelen çocuk (ternary, switchCase, method, list…). */\nfunction explainBindingCall(cx: t.CallExpression, fileName: string, where?: string): void {\n const name = t.isIdentifier(cx.callee) ? cx.callee.name.replace(/^sender\\.bindings\\./, '') : '';\n const suffix = where ? ` — ${where}` : '';\n const lowered = codeOf(cx) + suffix;\n if (name === 'ternary') {\n explainChild(cx, fileName, { site: 'child', shape: 'ternary', lowered, reactive: 'live', deps: DEPS.cond, note: 'Frame: the first branch is built SYNCHRONOUSLY, later switches in a microtask; a new instance on every switch' });\n } else if (name === 'switchCase') {\n explainChild(cx, fileName, { site: 'child', shape: 'switch', lowered, reactive: 'live', deps: 'fields read in the discriminant getter; branches are rebuilt inside a Frame' });\n } else if (name === 'method') {\n explainChild(cx, fileName, { site: 'child', shape: 'method', lowered, reactive: 'live', deps: DEPS.getter, note: 'reactive text if the result is text, a Frame if it is a component' });\n } else if (name === 'list') {\n explainChild(cx, fileName, { site: 'child', shape: 'list', lowered, reactive: 'live', deps: DEPS.list });\n } else if (name === 'when') {\n explainChild(cx, fileName, { site: 'child', shape: 'when', lowered, reactive: 'live', deps: DEPS.cond });\n } else {\n explainChild(cx, fileName, { site: 'child', shape: name || 'binding', lowered, reactive: 'live', deps: DEPS.getter });\n }\n}\n\n/** `const _comp = cx; sender.controls.add(_comp)` yoluyla yerleştirilen çocuk. */\nfunction explainPlaced(cx: t.Node, fileName: string, where?: string): void {\n const suffix = where ? ` — ${where}` : '';\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && cx.callee.name === motifComponent() && cx.arguments.length === 1 && t.isObjectExpression(cx.arguments[0])) {\n const init = cx.arguments[0].properties.find(p => t.isObjectProperty(p) && t.isIdentifier(p.key) && p.key.name === 'initializeComponent') as t.ObjectProperty | undefined;\n const st = init && t.isArrowFunctionExpression(init.value) && t.isBlockStatement(init.value.body) ? init.value.body.body[0] : null;\n if (st && t.isExpressionStatement(st) && t.isCallExpression(st.expression) && t.isIdentifier(st.expression.callee) && st.expression.callee.name === 'sender.bindings.list') {\n explainChild(cx, fileName, { site: 'child', shape: 'list', lowered: codeOf(st.expression) + suffix, reactive: 'live', deps: DEPS.list, note: 'rows are matched by the item object (primitive items by value), not by key; a key is only checked for duplicates (MJX202)' });\n return;\n }\n }\n const text = describeTextNode(cx);\n if (text) {\n explainChild(cx, fileName, { site: 'child', shape: text.shape, lowered: text.lowered + suffix, reactive: text.reactive, deps: text.deps, note: text.note });\n return;\n }\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && (cx.callee.name === motifComponent() || cx.callee.name === motifFragment())) {\n const tagArg = cx.arguments[0];\n const tagName = t.isStringLiteral(tagArg) ? `<${tagArg.value}>` : t.isIdentifier(tagArg) || t.isMemberExpression(tagArg) ? `<${codeOf(tagArg)}>` : 'fragment';\n explainChild(cx, fileName, { site: 'element', shape: t.isStringLiteral(tagArg) ? 'element.dom' : cx.callee.name === motifFragment() ? 'fragment' : 'element.component', lowered: `sender.controls.add(${cx.callee.name}(${tagName}, …))${suffix}`, reactive: 'static', deps: 'none — the element itself is built once; bindings inside it are their own effects' });\n return;\n }\n explainChild(cx, fileName, { site: 'child', shape: 'value', lowered: `sender.controls.add(${codeOf(cx)})${suffix}`, reactive: 'once', deps: DEPS.once, note: 'the raw expression is placed once (components/arrays/undefined are filtered)' });\n}\n\nfunction makeInitializeComponentProp(statements: t.Statement[], userInit: t.Expression | null): t.ObjectProperty | null {\n if (statements.length > 0) {\n const compiled = t.arrowFunctionExpression([id('sender')], t.blockStatement([...statements]));\n return t.objectProperty(t.identifier('initializeComponent'), userInit ? t.arrayExpression([userInit, compiled]) : compiled);\n }\n return userInit ? t.objectProperty(t.identifier('initializeComponent'), userInit) : null;\n}\n\nexport function ParseComponent(path: NodePath<t.JSXElement>, state: State): t.CallExpression | t.Expression | t.ObjectMethod {\n\n\n\n const props = path.get('openingElement').get('attributes');\n var tag = getTag(path); \n let isSvgHere = false;\n if (t.isStringLiteral(tag)) {\n const tagName = tag.value;\n if (tagName === 'svg') isSvgHere = true;\n else if (svgTags.includes(tagName) && (!htmlTags.includes(tagName as any) || isInsideSvgTree(path))) isSvgHere = true;\n }\n const { htmlProps, eventProps, objectExpression, componentEvents, directives, preDirectives, thisStatement, spreadProps, userInit } = getProps(props, path, state)\n const fileName = String(state.get('filename') ?? '');\n const isComponentTag = !t.isStringLiteral(tag);\n\n const children = getChildren(path.get('children'), state);\n if (isSvgHere) {\n objectExpression.push(t.objectProperty(t.identifier('__isSvgElement'), t.booleanLiteral(true)));\n }\n\n var callArgs: t.Expression[] = [];\n let statements: t.Statement[] = [];\n var childs: t.Expression[] = [];\n\n if (thisStatement.length > 0) {\n statements.push(thisStatement[0])\n\n }\n\n children.forEach(exp => {\n if (t.isExpression(exp)) {\n\n if (exp !== null) {\n\n if (t.isCallExpression(exp) && t.isIdentifier(exp.callee) && exp.callee.name === 'sender.repeater') {\n\n var callerFn = t.objectProperty(t.identifier('initializeComponent'), t.arrowFunctionExpression([id('sender')], t.blockStatement([t.expressionStatement(\n t.callExpression(id('sender.bindings.list'), [\n listSource(exp.arguments[0] as t.Expression),\n listRender(exp.arguments)\n ])\n )])));\n\n var cex = t.callExpression(id('_mc'), [t.objectExpression([callerFn])]);\n transferOrigin(exp, cex);\n childs.push(cex);\n } else {\n childs.push(exp);\n }\n }\n }\n })\n if (htmlProps.length > 0) {\n htmlProps.forEach(d => {\n statements.push(d);\n })\n }\n\n if (eventProps.length > 0) {\n eventProps.forEach(d => {\n statements.push(d);\n })\n }\n\n var hasLoop = false;\n if (directives.length > 0) {\n directives.forEach(d => {\n statements.push(d);\n })\n }\n\n var bodyExpression = t.objectExpression([]);\n\n var existThis = false;\n if (childs.length > 0) {\n childs.forEach(cx => {\n\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && cx.callee.name.startsWith('sender.bindings.')) {\n statements.push(t.expressionStatement(cx));\n explainBindingCall(cx, fileName);\n }\n else if (t.isArrayExpression(cx)) {\n statements.push(t.expressionStatement(t.callExpression(id('sender.controls.add'), [cx])));\n explainChild(cx, fileName, { site: 'child', shape: 'array', lowered: statements[statements.length - 1], reactive: 'static', deps: DEPS.none, note: 'the component array is placed once' });\n }\n else\n if (t.isFunctionExpression(cx)) {\n fail('MJX008', 'A function expression cannot be a JSX child; use an arrow function: {() => …}.', path as NodePath<t.Node>);\n }\n // else if (t.isArrowFunctionExpression(cx)) {\n else if (t.isAssignmentExpression(cx)) {\n statements.push(t.expressionStatement(cx))\n } else if (isCoalesceLogical(cx)) {\n // C1: `{a ?? b}` / `{a || b}` — `when` DEĞİL\n statements.push(t.expressionStatement(makeCoalesceChild(cx as t.LogicalExpression)));\n explainChild(cx, fileName, { site: 'child', shape: 'coalesce', lowered: statements[statements.length - 1], reactive: 'live', deps: DEPS.getter, note: 'reactive text if the result is text, a Frame if it is a component' });\n } else if (t.isLogicalExpression(cx)) {\n\n\n var ifStatement = findIfStatements(cx.left);\n\n\n if (t.isFunction(cx.left) || t.isArrowFunctionExpression(cx.left) || t.isFunctionExpression(cx.left) || t.isFunctionDeclaration(cx.left)) {\n\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', cx.left), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(cx.left, []), t.arrowFunctionExpression([], cx.left)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n var tryStatement = t.tryStatement(t.blockStatement([rtrns]), null, null);\n if (!t.isFunctionDeclaration(cx.right) && !t.isArrowFunctionExpression(cx.right)) {\n\n var ifst = t.ifStatement(t.identifier('__v'),\n t.blockStatement([t.returnStatement(cx.right)]),\n t.blockStatement([t.returnStatement(t.callExpression(t.identifier(motifComponent()), [t.objectExpression([])]))]))\n\n cx.right = t.arrowFunctionExpression([t.identifier(\"__v\")], t.blockStatement([t.returnStatement(cx.right)]))\n }\n var a1 = t.callExpression(id('sender.bindings.when'), [kx, cx.right]);\n } else {\n // var mx = t.binaryExpression('===', t.unaryExpression('typeof', cx.left), t.stringLiteral('function'));\n // var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(cx.left, []), t.arrowFunctionExpression([], cx.left)));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([t.returnStatement(cx.left)]));\n var tryStatement = t.tryStatement(t.blockStatement([rtrns]), t.catchClause(null, t.blockStatement([t.returnStatement(t.nullLiteral())])), null);\n var kx = cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([tryStatement])), [cx.left]);\n\n if (!t.isFunctionDeclaration(cx.right) && !t.isArrowFunctionExpression(cx.right)) {\n\n var ifst = t.ifStatement(t.identifier('__v'),\n t.blockStatement([t.returnStatement(cx.right)]),\n t.blockStatement([t.returnStatement(t.callExpression(t.identifier(motifComponent()), [t.objectExpression([])]))]))\n\n cx.right = t.arrowFunctionExpression([t.identifier(\"__v\")], t.blockStatement([t.returnStatement(cx.right)]))\n }\n var a1 = t.callExpression(id('sender.bindings.when'), [kx, cx.right]);\n }\n\n // var mx = t.binaryExpression('===', t.unaryExpression('typeof', cx.left), t.stringLiteral('function'));\n // var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(cx.left, []), t.arrowFunctionExpression([], cx.left)));\n // var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]), t.blockStatement([t.returnStatement(t.arrowFunctionExpression([], t.nullLiteral()))]));\n // var kx = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n // if (!t.isFunctionDeclaration(cx.right) && !t.isArrowFunctionExpression(cx.right)) {\n\n // var ifst = t.ifStatement(t.identifier('val'),\n\n // var a1 = t.callExpression(id('sender.bind.logic'), [kx, cx.right]);\n statements.push(t.expressionStatement(a1))\n explainChild(cx, fileName, { site: 'child', shape: 'when', lowered: a1, reactive: 'live', deps: DEPS.cond, note: 'JS truthiness; false → never built, a NEW instance is built on each switch to true. Deliberate alternative: x-wait' });\n\n\n } else {\n if (t.isStringLiteral(tag)) {\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && cx.callee.name === 'sender.motif.on' && existThis == false) {\n existThis = true;\n }\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && cx.callee.name === 'sender.bindings.list') {\n hasLoop = true;\n statements.push(t.expressionStatement(cx));\n } else {\n if (((t.isFunctionExpression(cx)) && t.isJSXElement((cx as t.FunctionExpression).returnType)) || ((t.isArrowFunctionExpression(cx)) && t.isJSXElement((cx as t.ArrowFunctionExpression).returnType))) {\n statements.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.method'), [cx])));\n explainChild(cx, fileName, { site: 'child', shape: 'method', lowered: statements[statements.length - 1], reactive: 'live', deps: DEPS.getter, note: 'reactive text if the result is text, a Frame if it is a component (the instance is rebuilt on every change)' });\n } else if ((t.isArrowFunctionExpression(cx))) {\n statements.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.method'), [cx])));\n explainChild(cx, fileName, { site: 'child', shape: 'method', lowered: statements[statements.length - 1], reactive: 'live', deps: DEPS.getter, note: 'reactive text if the result is text, a Frame if it is a component (the instance is rebuilt on every change)' });\n } else {\n var uid = path.scope.generateUid('_comp');\n statements.push(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(uid), cx)]));\n statements.push(t.expressionStatement(t.callExpression(t.identifier('sender.controls.add'), [t.identifier(uid)])));\n explainPlaced(cx, fileName);\n }\n\n }\n }\n }\n });\n }\n if (isComponentTag) {\n childs.forEach(cx => {\n if (t.isCallExpression(cx) && t.isIdentifier(cx.callee) && cx.callee.name.startsWith('sender.bindings.')) { explainBindingCall(cx, fileName, 'inside the childs slot'); return; }\n if (t.isLogicalExpression(cx)) { explainChild(cx, fileName, { site: 'child', shape: 'when', lowered: 'bindings.when(…) — inside the childs slot', reactive: 'live', deps: DEPS.cond }); return; }\n if (t.isArrowFunctionExpression(cx)) { explainChild(cx, fileName, { site: 'child', shape: 'method', lowered: 'childs: [fn] — bindings.method when the component places it', reactive: 'live', deps: DEPS.getter }); return; }\n explainPlaced(cx, fileName, 'childs: […] — the component places it with {this.childs}');\n });\n }\n\n\n\n if (t.isStringLiteral(tag)) {\n let preStatements: t.Statement[] = [];\n\n\n if (preDirectives.length > 0) {\n preStatements.push(...preDirectives);\n }\n\n if (preStatements.length > 0) {\n var preconfigProp = t.objectProperty(t.identifier('preconfig'), t.arrowFunctionExpression([id('sender')], t.blockStatement([...preStatements])));\n bodyExpression.properties.push(preconfigProp);\n }\n\n if (componentEvents.length > 0) {\n bodyExpression.properties.push(...componentEvents)\n }\n if (objectExpression.length > 0) {\n // var expr = t.objectProperty(t.identifier('props'), t.objectExpression(objectExpression));\n bodyExpression.properties.push(...objectExpression)\n };\n if (spreadProps.length > 0) {\n bodyExpression.properties.push(...spreadProps)\n };\n\n const initProp = makeInitializeComponentProp(statements, userInit);\n if (initProp) {\n bodyExpression.properties.push(initProp);\n }\n\n\n } else {\n var tts = t.objectProperty(id('childs'), t.arrayExpression(childs));\n if (objectExpression.length > 0) {\n //var expr = t.objectProperty(t.identifier('props'), t.objectExpression({ ...objectExpression, ...spreadProps }));\n bodyExpression.properties.push(...objectExpression)\n };\n\n if (spreadProps.length > 0) {\n bodyExpression.properties.push(...spreadProps)\n };\n\n var takedown = t.objectExpression([]);\n\n const initProp = makeInitializeComponentProp(statements, userInit);\n if (initProp) {\n takedown.properties.push(initProp);\n }\n\n if (preDirectives.length > 0) {\n let preStatements: t.Statement[] = [];\n preStatements.push(...preDirectives)\n var preconfigProp = t.objectProperty(t.identifier('preconfig'), t.arrowFunctionExpression([id('sender')], t.blockStatement([...preStatements])));\n takedown.properties.push(preconfigProp);\n }\n\n if (componentEvents.length > 0) {\n takedown.properties.push(...componentEvents)\n }\n var exp = t.objectProperty(id('runover'), takedown);\n bodyExpression.properties.push(exp);\n bodyExpression.properties.push(tts);\n }\n\n callArgs.push(bodyExpression);\n\n\n return t.callExpression(t.identifier(motifComponent()), [tag, ...callArgs]);\n\n\n}\n\nexport function ParseFrament(path: NodePath<t.JSXElement>, state: State): t.CallExpression | t.Expression | t.ObjectMethod {\n const fileName = String(state.get('filename') ?? '');\n const children = getChildren(path.get('children'), state);\n var childs: t.Expression[] = [];\n var initBody: t.BlockStatement = t.blockStatement([]);\n children.forEach(exp => {\n if (t.isExpression(exp)) {\n if (exp !== null) {\n var uid = path.scope.generateUid('_comp');\n if (t.isCallExpression(exp) && t.isIdentifier(exp.callee) && exp.callee.name === 'sender.repeater') {\n initBody.body.push(t.expressionStatement(t.callExpression(id('sender.bindings.list'), [listSource(exp.arguments[0] as t.Expression), listRender(exp.arguments)])));\n explainChild(exp, fileName, { site: 'child', shape: 'list', lowered: initBody.body[initBody.body.length - 1], reactive: 'live', deps: DEPS.list });\n } else if (isCoalesceLogical(exp)) { \n initBody.body.push(t.expressionStatement(makeCoalesceChild(exp as t.LogicalExpression)));\n explainChild(exp, fileName, { site: 'child', shape: 'coalesce', lowered: initBody.body[initBody.body.length - 1], reactive: 'live', deps: DEPS.getter });\n } else if (t.isLogicalExpression(exp)) { \n var ifStatement = findIfStatements(exp.left);\n var condFn: t.ArrowFunctionExpression;\n if (t.isFunction(exp.left) || t.isArrowFunctionExpression(exp.left) || t.isFunctionExpression(exp.left) || t.isFunctionDeclaration(exp.left)) {\n var mx = t.binaryExpression('===', t.unaryExpression('typeof', exp.left), t.stringLiteral('function'));\n var rtrn = t.returnStatement(t.conditionalExpression(mx, t.callExpression(exp.left, []), exp.left));\n var rtrns = t.ifStatement(ifStatement!, t.blockStatement([rtrn]));\n condFn = t.arrowFunctionExpression([], t.blockStatement([rtrns]));\n } else {\n var rtrnsPlain = t.ifStatement(ifStatement!, t.blockStatement([t.returnStatement(exp.left)]));\n var tryStatement = t.tryStatement(t.blockStatement([rtrnsPlain]), t.catchClause(null, t.blockStatement([t.returnStatement(t.nullLiteral())])), null);\n condFn = cacheGuardCalls(t.arrowFunctionExpression([], t.blockStatement([tryStatement])), [exp.left]);\n }\n if (!t.isFunctionDeclaration(exp.right) && !t.isArrowFunctionExpression(exp.right)) {\n exp.right = t.arrowFunctionExpression([t.identifier(\"val\")], t.blockStatement([t.returnStatement(exp.right)]))\n }\n var a1 = t.callExpression(id('sender.bindings.when'), [condFn, exp.right]);\n initBody.body.push(t.expressionStatement(a1));\n explainChild(exp, fileName, { site: 'child', shape: 'when', lowered: a1, reactive: 'live', deps: DEPS.cond, note: 'at a fragment root; JS truthiness. Deliberate alternative: x-wait' });\n }\n else {\n childs.push(exp);\n initBody.body.push(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(uid), exp)]));\n if ((t.isFunctionExpression(exp)) && t.isJSXElement((exp as t.FunctionExpression).returnType)) {\n initBody.body.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.method'), [t.identifier(uid)])))\n explainChild(exp, fileName, { site: 'child', shape: 'method', lowered: `sender.bindings.method(${codeOf(exp)})`, reactive: 'live', deps: DEPS.getter });\n } else if ((t.isArrowFunctionExpression(exp)) && t.isJSXElement((exp as t.ArrowFunctionExpression).returnType)) {\n initBody.body.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.method'), [t.identifier(uid)])))\n explainChild(exp, fileName, { site: 'child', shape: 'method', lowered: `sender.bindings.method(${codeOf(exp)})`, reactive: 'live', deps: DEPS.getter });\n } else if ((t.isArrowFunctionExpression(exp))) {\n initBody.body.push(t.expressionStatement(t.callExpression(t.identifier('sender.bindings.method'), [t.identifier(uid)])))\n explainChild(exp, fileName, { site: 'child', shape: 'method', lowered: `sender.bindings.method(${codeOf(exp)})`, reactive: 'live', deps: DEPS.getter, note: 'reactive text if the result is text, a Frame if it is a component' });\n } else if (t.isCallExpression(exp) && t.isIdentifier(exp.callee) && exp.callee.name.startsWith('sender.bindings.')) {\n initBody.body.push(t.expressionStatement(t.callExpression(t.identifier('sender.controls.add'), [t.identifier(uid)])))\n explainBindingCall(exp, fileName, 'at a fragment root');\n } else {\n initBody.body.push(t.expressionStatement(t.callExpression(t.identifier('sender.controls.add'), [t.identifier(uid)])))\n explainPlaced(exp, fileName);\n }\n\n\n\n }\n }\n }\n })\n\n\n if (!state.get(motifFragment())) {\n state.set(motifFragment(), motifFragment());\n }\n\n\n var tts = t.objectProperty(id('nodes'), t.arrayExpression(childs));\n var objExp = t.objectExpression([]);\n if (initBody !== null) {\n\n var initProp = t.objectProperty(t.identifier('initializeComponent'), t.arrowFunctionExpression([id('sender')], t.blockStatement([initBody])));\n\n objExp.properties.push(initProp);\n }\n return t.callExpression(t.identifier(motifFragment()), [objExp]);\n}","import * as t from \"@babel/types\";\nimport { NodePath } from \"@babel/traverse\";\n\nexport const ASYNC_TRACKING_LOCAL = '__motifAsyncTracking';\n\nexport function isVirtualizationDataRequest(path: NodePath<t.JSXAttribute>): boolean {\n const attr = path.node;\n if (!t.isJSXIdentifier(attr.name) || attr.name.name !== 'dataRequest') return false;\n const opening = path.parentPath;\n if (!opening || !t.isJSXOpeningElement(opening.node)) return false;\n const name = opening.node.name;\n if (t.isJSXIdentifier(name)) return name.name === 'Virtualization';\n if (t.isJSXMemberExpression(name)) return name.property.name === 'Virtualization';\n return false;\n}\n\nexport function wrapAwaitsForTracking(fn: NodePath<t.ArrowFunctionExpression | t.FunctionExpression>): boolean {\n if (!fn.node.async) return false;\n\n const token = fn.scope.generateUidIdentifier('mt');\n const call = (method: string, args: t.Expression[]) =>\n t.callExpression(t.memberExpression(t.identifier(ASYNC_TRACKING_LOCAL), t.identifier(method)), args);\n\n const wrapped = new WeakSet<t.Node>();\n let count = 0;\n fn.traverse({\n Function(inner) {\n inner.skip();\n },\n AwaitExpression: {\n exit(p) {\n if (wrapped.has(p.node)) return;\n const awaited = t.awaitExpression(call('suspend', [t.cloneNode(token), p.node.argument]));\n wrapped.add(awaited);\n p.replaceWith(call('resume', [t.cloneNode(token), awaited]));\n count++;\n },\n },\n });\n if (count === 0) return false;\n\n const body = fn.node.body;\n const statements = t.isBlockStatement(body) ? body.body : [t.returnStatement(body)];\n fn.node.body = t.blockStatement([\n t.variableDeclaration('const', [t.variableDeclarator(token, call('capture', []))]),\n t.tryStatement(\n t.blockStatement(statements),\n null,\n t.blockStatement([t.expressionStatement(call('end', [t.cloneNode(token)]))]),\n ),\n ]);\n return true;\n}\n","\nexport const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nconst HTML_TAGS: Record<string, string> = {\n HTMLAnchorElement: 'a',\n HTMLAreaElement: 'area',\n HTMLAudioElement: 'audio',\n HTMLBRElement: 'br',\n HTMLBaseElement: 'base',\n HTMLBodyElement: 'body',\n HTMLButtonElement: 'button',\n HTMLCanvasElement: 'canvas',\n HTMLDListElement: 'dl',\n HTMLDataElement: 'data',\n HTMLDataListElement: 'datalist',\n HTMLDetailsElement: 'details',\n HTMLDialogElement: 'dialog',\n HTMLDivElement: 'div',\n HTMLEmbedElement: 'embed',\n HTMLFieldSetElement: 'fieldset',\n HTMLFormElement: 'form',\n HTMLHRElement: 'hr',\n HTMLHeadElement: 'head',\n HTMLHeadingElement: 'h1',\n HTMLHtmlElement: 'html',\n HTMLIFrameElement: 'iframe',\n HTMLImageElement: 'img',\n HTMLInputElement: 'input',\n HTMLLIElement: 'li',\n HTMLLabelElement: 'label',\n HTMLLegendElement: 'legend',\n HTMLLinkElement: 'link',\n HTMLMapElement: 'map',\n HTMLMenuElement: 'menu',\n HTMLMetaElement: 'meta',\n HTMLMeterElement: 'meter',\n HTMLModElement: 'ins',\n HTMLOListElement: 'ol',\n HTMLObjectElement: 'object',\n HTMLOptGroupElement: 'optgroup',\n HTMLOptionElement: 'option',\n HTMLOutputElement: 'output',\n HTMLParagraphElement: 'p',\n HTMLPictureElement: 'picture',\n HTMLPreElement: 'pre',\n HTMLProgressElement: 'progress',\n HTMLQuoteElement: 'blockquote',\n HTMLScriptElement: 'script',\n HTMLSelectElement: 'select',\n HTMLSlotElement: 'slot',\n HTMLSourceElement: 'source',\n HTMLSpanElement: 'span',\n HTMLStyleElement: 'style',\n HTMLTableCaptionElement: 'caption',\n HTMLTableCellElement: 'td',\n HTMLTableColElement: 'col',\n HTMLTableElement: 'table',\n HTMLTableRowElement: 'tr',\n HTMLTableSectionElement: 'tbody',\n HTMLTemplateElement: 'template',\n HTMLTextAreaElement: 'textarea',\n HTMLTimeElement: 'time',\n HTMLTitleElement: 'title',\n HTMLTrackElement: 'track',\n HTMLUListElement: 'ul',\n HTMLVideoElement: 'video',\n HTMLElement: 'div',\n};\n\nconst SVG_TAGS: Record<string, string> = {\n SVGSVGElement: 'svg',\n SVGGElement: 'g',\n SVGPathElement: 'path',\n SVGCircleElement: 'circle',\n SVGRectElement: 'rect',\n SVGLineElement: 'line',\n SVGTextElement: 'text',\n SVGTSpanElement: 'tspan',\n SVGPolygonElement: 'polygon',\n SVGPolylineElement: 'polyline',\n SVGEllipseElement: 'ellipse',\n SVGUseElement: 'use',\n SVGDefsElement: 'defs',\n SVGImageElement: 'image',\n SVGMaskElement: 'mask',\n SVGSymbolElement: 'symbol',\n SVGMarkerElement: 'marker',\n SVGForeignObjectElement: 'foreignObject',\n SVGLinearGradientElement: 'linearGradient',\n SVGRadialGradientElement: 'radialGradient',\n SVGStopElement: 'stop',\n SVGClipPathElement: 'clipPath',\n};\n\nexport interface ResolvedElementType {\n tag: string;\n namespace?: string;\n}\n\nexport function resolveElementType(typeName: string): ResolvedElementType | undefined {\n if (!typeName) return undefined;\n const html = HTML_TAGS[typeName];\n if (html) return { tag: html };\n const svg = SVG_TAGS[typeName];\n if (svg) return { tag: svg, namespace: SVG_NAMESPACE };\n return undefined;\n}","import * as t from '@babel/types';\nimport { NodePath } from '@babel/core';\nimport * as babel from '@babel/core';\nimport syntax_jsx from \"@babel/plugin-syntax-jsx\";\nimport syntax_flow from \"@babel/plugin-syntax-flow\";\nimport preset_flow from \"@babel/preset-flow\";\nimport preset_typescript from \"@babel/preset-typescript\";\nimport proposal_decorators from \"@babel/plugin-proposal-decorators\";\nimport transform_class_properties from \"@babel/plugin-transform-class-properties\";\nimport transform_class_static_block from \"@babel/plugin-transform-class-static-block\";\nimport { ParseComponent, ParseFrament, recordClassMembers } from './motifParser';\nimport { COMPILER_CONTRACT, motifCompiled, motifComponent, motifFragment, motifFunctionComponent, State } from \"./constants\";\nimport { ASYNC_TRACKING_LOCAL, isVirtualizationDataRequest, wrapAwaitsForTracking } from \"./asyncTracking\";\nimport { resolveElementType } from \"./elementTags\";\nimport { beginCollect, endCollect, type MotifDiagnostic } from \"./diagnostics\";\nimport { beginExplain, endExplain, isExplaining, captureOrigin, noteOriginRaw, type MotifExplanation } from \"./explain\";\n\n\nfunction absorbGeneratedCoreImports(statements: NodePath[], into: Map<string, t.ImportSpecifier>): void {\n const fromCore = statements.filter(statement => t.isImportDeclaration(statement.node) && statement.node.source.value === '@motifx/core');\n for (const statement of fromCore) {\n let absorbed = false;\n for (const specifier of (statement.node as t.ImportDeclaration).specifiers) {\n if (specifier.loc || !t.isImportSpecifier(specifier) || !t.isIdentifier(specifier.imported)) continue;\n const importedName = specifier.imported.name;\n if (into.has(importedName)) continue;\n into.set(importedName, specifier);\n absorbed = true;\n }\n if (absorbed) statement.remove();\n }\n}\n\nfunction hasStaticMember(node: t.ClassDeclaration | t.ClassExpression, name: string): boolean {\n return node.body.body.some(m =>\n (t.isClassProperty(m) || t.isClassMethod(m)) &&\n (m as any).static === true &&\n t.isIdentifier(m.key) &&\n m.key.name === name\n );\n}\n\nfunction injectDeclaredElementTag(path: NodePath<t.ClassDeclaration | t.ClassExpression>) {\n try {\n const node = path.node;\n if (!t.isIdentifier(node.superClass) || node.superClass.name !== 'Component') return;\n if (hasStaticMember(node, 'elementTag')) return;\n\n const typeArgs: any = (node as any).superTypeParameters ?? (node as any).superTypeArguments;\n const first = typeArgs?.params?.[0];\n if (!first || !t.isTSTypeReference(first) || !t.isIdentifier(first.typeName)) return;\n\n const resolved = resolveElementType(first.typeName.name);\n if (!resolved) return;\n\n const members: any[] = [\n t.classProperty(t.identifier('elementTag'), t.stringLiteral(resolved.tag), null, null, false, true)\n ];\n if (resolved.namespace && !hasStaticMember(node, 'elementNamespace')) {\n members.push(\n t.classProperty(t.identifier('elementNamespace'), t.stringLiteral(resolved.namespace), null, null, false, true)\n );\n }\n node.body.body.unshift(...members);\n } catch { /* enjeksiyon başarısızsa derleme bozulmasın */ }\n}\n\n\nconst elementTagPlugin = () => ({\n name: 'motifjs-element-tag',\n visitor: {\n Class: {\n enter(path: NodePath<t.ClassDeclaration | t.ClassExpression>) {\n injectDeclaredElementTag(path);\n }\n }\n }\n});\n\n\n\nexport default class Compiler {\n\n\n public motifCompile(code: string, filename: string): babel.BabelFileResult | null {\n\n return this.start(code, filename);\n }\n public diagnostics: MotifDiagnostic[] = [];\n public explanations: MotifExplanation[] = [];\n\n public start(code: string, filename: string): babel.BabelFileResult | null {\n\n beginCollect();\n try {\n return this._run(code, filename);\n } finally {\n this.diagnostics = endCollect();\n }\n }\n\n public lowerDecorators(code: string, filename: string): babel.BabelFileResult | null {\n const file = filename.split('?')[0];\n return babel.transformSync(code, {\n sourceType: 'module',\n babelrc: false,\n configFile: false,\n code: true,\n sourceMaps: true,\n comments: true,\n highlightCode: false,\n filename: file,\n sourceFileName: file,\n parserOpts: { plugins: /\\.[mc]?ts$/.test(file) ? ['typescript'] : [] },\n plugins: [[proposal_decorators, { \"version\": \"2023-11\" }]],\n });\n }\n\n public explain(code: string, filename: string): babel.BabelFileResult | null {\n beginCollect();\n beginExplain();\n try {\n return this._run(code, filename);\n } finally {\n this.diagnostics = endCollect();\n this.explanations = endExplain();\n }\n }\n\n private _run(code: string, filename: string): babel.BabelFileResult | null {\n return babel.transformSync(code, {\n sourceType: 'module',\n ast: true,\n babelrc: false,\n configFile: false,\n cloneInputAst: false,\n code: true,\n sourceMaps: true,\n comments: true,\n highlightCode: false,\n minified: false,\n compact: false,\n filename: filename,\n sourceFileName: filename,\n presets: [\n preset_flow,\n [preset_typescript, {\n onlyRemoveTypeImports: true,\n isTSX: true,\n allExtensions: true,\n }]\n ],\n plugins: [\n elementTagPlugin,\n [proposal_decorators, { \"version\": \"2023-11\" }],\n [transform_class_properties, { \"loose\": true }],\n transform_class_static_block,\n syntax_flow,\n syntax_jsx,\n function () {\n return {\n visitor: {\n JSXAttribute(path: NodePath<t.JSXAttribute>, state: State) {\n if (!isVirtualizationDataRequest(path)) return;\n const value = path.get('value');\n if (!value.isJSXExpressionContainer()) return;\n const fn = value.get('expression');\n if (!fn.isArrowFunctionExpression() && !fn.isFunctionExpression()) return;\n if (wrapAwaitsForTracking(fn)) state.set(ASYNC_TRACKING_LOCAL, true);\n },\n JSXElement: {\n exit(path: NodePath<t.JSXElement>, state: State) {\n state.set('filename', filename);\n const origin = isExplaining() ? captureOrigin(path as NodePath<t.Node>, code) : null;\n const out = ParseComponent(path, state);\n if (origin) noteOriginRaw(out, origin);\n path.replaceWith(out);\n\n if (!state.get(motifFunctionComponent())) {\n state.set(motifFunctionComponent(), motifFunctionComponent());\n }\n }\n },\n GenericTypeAnnotation: {\n exit(path: NodePath<t.GenericTypeAnnotation>, state: State) {\n\n\n }\n },\n TypeParameterInstantiation: {\n exit(path: NodePath<t.TypeParameterInstantiation>, state: State) {\n\n }\n },\n JSXFragment: {\n exit(path: NodePath<t.JSXElement>, state: State) {\n state.set('filename', filename);\n const origin = isExplaining() ? captureOrigin(path as NodePath<t.Node>, code) : null;\n const out = ParseFrament(path, state);\n if (origin) noteOriginRaw(out, origin);\n path.replaceWith(out);\n var findProgram = (p: any): any => {\n if (p.parent !== null) {\n if (t.isProgram(p.parent)) {\n return p.parent;\n } else {\n return findProgram(p.parent)\n }\n } else {\n return p;\n }\n }\n }\n },\n Program: {\n enter(path: NodePath<t.Program>, state: State) {\n state.set('originalCode', code);\n recordClassMembers(path);\n },\n exit(path: NodePath<t.Program>, state: State) {\n\n const topLevel = path.get('body') as NodePath[];\n const coreImports = new Map<string, t.ImportSpecifier>();\n coreImports.set('motifComponent', t.importSpecifier(t.identifier(motifComponent()), t.identifier(\"motifComponent\")))\n if (state.get(motifFragment())) {\n coreImports.set('motifFragment', t.importSpecifier(t.identifier(motifFragment()), t.identifier(\"motifFragment\")));\n }\n\n coreImports.set('FNComponent', t.importSpecifier(t.identifier(motifFunctionComponent()), t.identifier(\"FNComponent\")));\n coreImports.set('motifCompiled', t.importSpecifier(t.identifier(motifCompiled()), t.identifier('motifCompiled')));\n if (state.get(ASYNC_TRACKING_LOCAL)) {\n coreImports.set('asyncTracking', t.importSpecifier(t.identifier(ASYNC_TRACKING_LOCAL), t.identifier('asyncTracking')));\n }\n\n\n var isSFC = false;\n var viewReturn: t.CallExpression = null as any;\n var setInternal: t.Statement[] = [];\n var setOriginal: t.Statement[] = [];\n path.node.body.forEach(tx => {\n if (t.isVariableDeclaration(tx)) {\n // if (t.isObjectExpression(y.init)) {\n setInternal.push(tx);\n } else if (t.isIfStatement(tx)) {\n setInternal.push(tx);\n } else if (t.isExpressionStatement(tx) && t.isAssignmentExpression(tx.expression)) {\n setInternal.push(tx);\n } else if (t.isExpressionStatement(tx) && t.isCallExpression(tx.expression) && t.isMemberExpression(tx.expression.callee)) {\n setInternal.push(tx);\n } else if (t.isExpressionStatement(tx) && t.isCallExpression(tx.expression) && t.isIdentifier(tx.expression.callee)) {\n if (tx.expression.callee.name === motifComponent() || tx.expression.callee.name === motifFragment()) {\n isSFC = true;\n viewReturn = tx.expression;\n }\n } else {\n setOriginal.push(tx);\n }\n\n\n });\n if (isSFC) {\n var rtrn = t.returnStatement(viewReturn);\n coreImports.set('Component', t.importSpecifier(t.identifier(\"_mC\"), t.identifier(\"Component\")));\n var cls = t.exportDefaultDeclaration(t.classDeclaration(t.identifier('runtimeClass'), t.identifier('_mC'), t.classBody([t.classMethod('method', t.identifier('view'), [t.identifier('sender')], t.blockStatement([...setInternal, rtrn]))])));\n\n\n path.node.body = [...setOriginal, cls];\n }\n state.set('filename', filename);\n absorbGeneratedCoreImports(topLevel, coreImports);\n\n if (coreImports.size > 0) {\n const contractCall = t.callExpression(t.identifier(motifCompiled()), [t.numericLiteral(COMPILER_CONTRACT)]);\n t.addComment(contractCall, 'leading', '#__PURE__');\n const coreImport = t.importDeclaration(Array.from(coreImports.values()), t.stringLiteral('@motifx/core'));\n path.unshiftContainer('body', [coreImport, t.expressionStatement(contractCall)]);\n }\n // if (injectableRegistry.length > 0) {\n // const output = `\n // export const GeneratedInjectables: any[] = [\n\n\n\n // if (allClassesRegistry.length > 0) {\n // const output = `\n // export const ClassReferences: any[] = [\n\n // fs.writeFileSync(pPath.join(process.cwd(), \"generated-class.ts\"), output);\n\n }\n },\n },\n }\n },\n function devOnlyStrip() {\n let isDev = true;\n const flag = (globalThis as any).__MOTIF_DEV__;\n if (typeof flag === 'boolean') isDev = flag;\n if (typeof process !== 'undefined' && process?.env?.MOTIF_DEV === 'false') isDev = false;\n const consumed = new WeakSet<object>();\n const hasMarker = (node: any, pattern: RegExp) => {\n const comments: any[] = ([] as any[]).concat(node.leadingComments || []);\n return comments.some(c => typeof c.value === 'string' && pattern.test(c.value) && !consumed.has(c));\n };\n const consumeMarkers = (node: any) => {\n const comments: any[] = ([] as any[]).concat(node.leadingComments || []);\n for (const c of comments) {\n if (typeof c.value === 'string' && /@DEV-ONLY/.test(c.value)) consumed.add(c);\n }\n };\n const stripIfMarked = (path: NodePath) => {\n if (isDev) return;\n try {\n if (hasMarker(path.node, /@DEV-ONLY/)) {\n consumeMarkers(path.node);\n path.remove();\n }\n } catch { /* ignore single node */ }\n };\n return {\n visitor: {\n Program(path: NodePath<t.Program>) {\n if (isDev) return;\n const bodyPaths = path.get('body') as NodePath[];\n for (const stmtPath of bodyPaths) {\n try {\n const node: any = stmtPath.node;\n if (hasMarker(node, /@DEV-ONLY/)) {\n consumeMarkers(node);\n stmtPath.remove();\n continue;\n } \n const allComments: any[] = ([] as any[]).concat(node.leadingComments || [], node.trailingComments || []);\n if (allComments.some(c => /@DEV-ONLY-BEGIN/.test(c.value) && !consumed.has(c))) {\n consumeMarkers(node);\n stmtPath.remove();\n continue;\n }\n } catch { /* ignore single node */ }\n }\n },\n ClassDeclaration: stripIfMarked,\n FunctionDeclaration: stripIfMarked,\n VariableDeclaration: stripIfMarked\n }\n };\n }\n ],\n\n })\n }\n}","import * as t from '@babel/types';\nimport * as babel from '@babel/core';\n\nexport const SUPER_METHODS = ['build', 'setState', 'reState', 'setText', 'style', 'dispose', 'disposeAsync', 'using', 'doWork', 'getService', '$', 'useModel'];\nexport const SUPER_ACCESSORS = ['context', 'siblings', 'serviceProvider', 'isWait'];\nexport const CORE_COMPONENT_CLASSES = ['Component', 'ComponentBase', 'ContentBlock', 'ContentBody', 'FragmentNode', 'Frame', 'RouterLink', 'RouterView', 'Transport', 'TransportTo', 'Virtualization'];\n\nconst coreComponents = new Set(CORE_COMPONENT_CLASSES);\nconst superNames = new Set([...SUPER_METHODS, ...SUPER_ACCESSORS]);\nconst quickMember = new RegExp(`(?:^|[\\\\s;{}])(?:async\\\\s+|get\\\\s+|set\\\\s+|override\\\\s+|public\\\\s+|protected\\\\s+)*(?:${[...superNames].map(n => n.replace('$', '\\\\$')).join('|')})\\\\s*\\\\(`, 'm');\n\nexport type BaseRef =\n | { kind: 'import'; source: string; name: string }\n | { kind: 'unknown' };\n\nexport interface SuperCallFinding {\n className: string;\n member: string;\n accessor: 'method' | 'get' | 'set';\n kind: 'never' | 'path';\n line: number;\n column: number;\n classLine: number;\n base: BaseRef;\n}\n\nexport interface ModuleExport {\n local?: string;\n from?: string;\n imported?: string;\n}\n\nexport interface ModuleShape {\n findings: SuperCallFinding[];\n classBase(name: string): BaseRef | null;\n exportOf(name: string): ModuleExport | null;\n starSources: string[];\n}\n\nexport function mayHaveSuperOverrides(code: string): boolean {\n return /\\bextends\\b/.test(code) && quickMember.test(code);\n}\n\nexport function isCoreSource(source: string): boolean {\n return source === '@motifx/core' || source.startsWith('@motifx/core/');\n}\n\nexport function isCoreComponent(name: string): boolean {\n return coreComponents.has(name);\n}\n\nexport function parseModule(code: string, filename: string): t.File | null {\n const isTs = /\\.[mc]?tsx?$/.test(filename);\n const isTsx = /\\.tsx$/.test(filename);\n const plugins: any[] = isTs ? ['typescript', 'decorators-legacy', 'classProperties'] : ['jsx', 'decorators-legacy', 'classProperties'];\n if (isTsx) plugins.push('jsx');\n try {\n const ast = babel.parseSync(code, {\n filename,\n babelrc: false,\n configFile: false,\n browserslistConfigFile: false,\n sourceType: 'unambiguous',\n parserOpts: { plugins, errorRecovery: true },\n });\n return (ast as t.File | null) ?? null;\n } catch {\n return null;\n }\n}\n\ntype Use = 'call' | 'get' | 'set';\n\nfunction isSuperMember(node: t.Node | null | undefined, name: string): boolean {\n if (!node || !(t.isMemberExpression(node) || t.isOptionalMemberExpression(node)) || !t.isSuper(node.object)) return false;\n if (!node.computed && t.isIdentifier(node.property)) return node.property.name === name;\n return t.isStringLiteral(node.property) && node.property.value === name;\n}\n\nfunction directUse(node: t.Node, name: string, use: Use): boolean {\n if (use === 'call' && (t.isCallExpression(node) || t.isOptionalCallExpression(node))) {\n const callee = node.callee;\n if (isSuperMember(callee, name)) return true;\n if ((t.isMemberExpression(callee) || t.isOptionalMemberExpression(callee)) && isSuperMember(callee.object, name)\n && t.isIdentifier(callee.property) && (callee.property.name === 'call' || callee.property.name === 'apply')) return true;\n }\n if (use === 'get' && isSuperMember(node, name)) return true;\n if (use === 'set' && t.isAssignmentExpression(node) && isSuperMember(node.left, name)) return true;\n return false;\n}\n\nfunction definitely(node: t.Node | null | undefined, name: string, use: Use): boolean {\n if (!node || typeof node !== 'object') return false;\n if (t.isFunction(node) || t.isClass(node)) return false;\n if (directUse(node, name, use)) return true;\n if (use === 'get' && t.isAssignmentExpression(node) && isSuperMember(node.left, name)) return definitely(node.right, name, use);\n if (t.isLogicalExpression(node)) return definitely(node.left, name, use);\n if (t.isConditionalExpression(node)) return definitely(node.test, name, use) || (definitely(node.consequent, name, use) && definitely(node.alternate, name, use));\n if (t.isOptionalCallExpression(node) || t.isOptionalMemberExpression(node)) {\n const head = t.isOptionalCallExpression(node) ? node.callee : node.object;\n return definitely(head, name, use);\n }\n for (const key of t.VISITOR_KEYS[node.type] ?? []) {\n const child = (node as any)[key];\n if (Array.isArray(child) ? child.some(c => definitely(c, name, use)) : definitely(child, name, use)) return true;\n }\n return false;\n}\n\nfunction mentions(node: t.Node | null | undefined, name: string, use: Use): boolean {\n if (!node || typeof node !== 'object') return false;\n if (directUse(node, name, use)) return true;\n if (t.isClass(node)) return false;\n for (const key of t.VISITOR_KEYS[node.type] ?? []) {\n const child = (node as any)[key];\n if (Array.isArray(child) ? child.some(c => mentions(c, name, use)) : mentions(child, name, use)) return true;\n }\n return false;\n}\n\ninterface Flow {\n normal: boolean | null;\n returns: boolean;\n breaks: boolean | null;\n continues: boolean | null;\n}\n\nconst join = (a: boolean | null, b: boolean | null): boolean | null => a === null ? b : b === null ? a : a && b;\n\nconst GUARDS: Record<string, string[]> = {\n build: ['isBuilt', 'isDisposed', 'isWait'],\n dispose: ['isDisposed'],\n disposeAsync: ['isDisposed'],\n};\n\nfunction isGuardTest(test: t.Expression, member: string): boolean {\n const allowed = GUARDS[member];\n if (!allowed) return false;\n if (t.isLogicalExpression(test) && test.operator === '||') return isGuardTest(test.left, member) && isGuardTest(test.right, member);\n return t.isMemberExpression(test) && t.isThisExpression(test.object) && !test.computed && t.isIdentifier(test.property) && allowed.includes(test.property.name);\n}\n\nfunction isBareReturn(node: t.Statement): boolean {\n if (t.isReturnStatement(node)) return true;\n return t.isBlockStatement(node) && node.body.length === 1 && t.isReturnStatement(node.body[0]);\n}\n\nfunction flow(node: t.Node | null | undefined, called: boolean, name: string, use: Use, member: string): Flow {\n const plain = (c: boolean): Flow => ({ normal: c, returns: true, breaks: null, continues: null });\n if (!node) return plain(called);\n const d = (e: t.Node | null | undefined) => called || definitely(e, name, use);\n\n if (t.isBlockStatement(node) || t.isProgram(node)) return block(node.body, called, name, use, member);\n if (t.isExpressionStatement(node)) return plain(d(node.expression));\n if (t.isVariableDeclaration(node)) return plain(called || node.declarations.some(x => definitely(x.init, name, use)));\n if (t.isReturnStatement(node)) return { normal: null, returns: d(node.argument), breaks: null, continues: null };\n if (t.isThrowStatement(node)) return { normal: null, returns: true, breaks: null, continues: null };\n if (t.isBreakStatement(node)) return { normal: null, returns: true, breaks: called, continues: null };\n if (t.isContinueStatement(node)) return { normal: null, returns: true, breaks: null, continues: called };\n if (t.isIfStatement(node)) {\n const tc = d(node.test);\n if (!tc && isGuardTest(node.test, member) && isBareReturn(node.consequent)) {\n const alt = node.alternate ? flow(node.alternate, tc, name, use, member) : plain(tc);\n return { normal: alt.normal, returns: alt.returns, breaks: alt.breaks, continues: alt.continues };\n }\n const cons = flow(node.consequent, tc, name, use, member);\n const alt = node.alternate ? flow(node.alternate, tc, name, use, member) : plain(tc);\n return { normal: join(cons.normal, alt.normal), returns: cons.returns && alt.returns, breaks: join(cons.breaks, alt.breaks), continues: join(cons.continues, alt.continues) };\n }\n if (t.isWhileStatement(node) || t.isForStatement(node) || t.isForInStatement(node) || t.isForOfStatement(node)) {\n let tc = called;\n if (t.isForStatement(node)) tc = called || definitely(node.init, name, use) || definitely(node.test, name, use);\n else if (t.isWhileStatement(node)) tc = d(node.test);\n else tc = d(node.right);\n const body = flow(node.body, tc, name, use, member);\n return { normal: join(tc, body.breaks), returns: body.returns, breaks: null, continues: null };\n }\n if (t.isDoWhileStatement(node)) {\n const body = flow(node.body, called, name, use, member);\n const afterBody = join(body.normal, body.continues);\n const afterTest = afterBody === null ? null : afterBody || definitely(node.test, name, use);\n return { normal: join(afterTest, body.breaks), returns: body.returns, breaks: null, continues: null };\n }\n if (t.isSwitchStatement(node)) {\n const dc = d(node.discriminant);\n let fall: boolean | null = null;\n let returns = true;\n let breaks: boolean | null = null;\n let continues: boolean | null = null;\n let hasDefault = false;\n for (const c of node.cases) {\n if (!c.test) hasDefault = true;\n const entry = join(fall, dc || definitely(c.test, name, use));\n const out = entry === null ? null : block(c.consequent, entry, name, use, member);\n if (out) {\n returns = returns && out.returns;\n breaks = join(breaks, out.breaks);\n continues = join(continues, out.continues);\n fall = out.normal;\n } else {\n fall = null;\n }\n }\n let normal = join(fall, breaks);\n if (!hasDefault) normal = join(normal, dc);\n return { normal, returns, breaks: null, continues };\n }\n if (t.isTryStatement(node)) {\n const tryOut = flow(node.block, called, name, use, member);\n const catchOut = node.handler ? flow(node.handler.body, called, name, use, member) : null;\n let normal = catchOut ? join(tryOut.normal, catchOut.normal) : tryOut.normal;\n let returns = tryOut.returns && (catchOut ? catchOut.returns : true);\n let breaks = catchOut ? join(tryOut.breaks, catchOut.breaks) : tryOut.breaks;\n let continues = catchOut ? join(tryOut.continues, catchOut.continues) : tryOut.continues;\n if (node.finalizer) {\n const fin = flow(node.finalizer, false, name, use, member);\n if (fin.normal === true) {\n normal = normal === null ? null : true;\n returns = true;\n breaks = breaks === null ? null : true;\n continues = continues === null ? null : true;\n } else if (fin.normal === null) {\n return { normal: null, returns: returns && fin.returns, breaks: fin.breaks, continues: fin.continues };\n }\n returns = returns && fin.returns;\n }\n return { normal, returns, breaks, continues };\n }\n if (t.isLabeledStatement(node)) {\n const body = flow(node.body, called, name, use, member);\n return { normal: join(body.normal, body.breaks), returns: body.returns, breaks: null, continues: body.continues };\n }\n if (t.isFunctionDeclaration(node) || t.isClassDeclaration(node)) return plain(called);\n let c = called;\n for (const key of t.VISITOR_KEYS[node.type] ?? []) {\n const child = (node as any)[key];\n if (Array.isArray(child) ? child.some(x => definitely(x, name, use)) : definitely(child, name, use)) { c = true; break; }\n }\n return plain(c);\n}\n\nfunction block(body: t.Statement[], called: boolean, name: string, use: Use, member: string): Flow {\n let state: boolean | null = called;\n let returns = true;\n let breaks: boolean | null = null;\n let continues: boolean | null = null;\n for (const s of body) {\n if (state === null) break;\n const out = flow(s, state, name, use, member);\n returns = returns && out.returns;\n breaks = join(breaks, out.breaks);\n continues = join(continues, out.continues);\n state = out.normal;\n }\n return { normal: state, returns, breaks, continues };\n}\n\nexport function checkMemberBody(body: t.BlockStatement, member: string, accessor: 'method' | 'get' | 'set'): 'ok' | 'never' | 'path' {\n const use: Use = accessor === 'method' ? 'call' : accessor;\n if (!mentions(body, member, use)) return 'never';\n const out = flow(body, false, member, use, member);\n return out.normal !== false && out.returns ? 'ok' : 'path';\n}\n\nfunction memberName(m: t.Node): string | null {\n const key = (m as any).key;\n if ((m as any).computed) return t.isStringLiteral(key) ? key.value : null;\n if (t.isIdentifier(key)) return key.name;\n if (t.isStringLiteral(key)) return key.value;\n return null;\n}\n\nexport function analyzeModule(ast: t.File): ModuleShape {\n const imports = new Map<string, { source: string; name: string }>();\n const classes = new Map<string, t.Class>();\n const exportsMap = new Map<string, ModuleExport>();\n const starSources: string[] = [];\n const findings: SuperCallFinding[] = [];\n const classNodes: Array<{ node: t.Class; name: string }> = [];\n\n const noteClass = (node: t.Class, name: string | null) => {\n if (name) classes.set(name, node);\n classNodes.push({ node, name: name ?? 'An anonymous class' });\n };\n\n const walk = (node: any, parent: any) => {\n if (!node || typeof node !== 'object' || !node.type) return;\n if (t.isImportDeclaration(node)) {\n for (const s of node.specifiers) {\n if (t.isImportSpecifier(s)) imports.set(s.local.name, { source: node.source.value, name: t.isIdentifier(s.imported) ? s.imported.name : s.imported.value });\n else if (t.isImportDefaultSpecifier(s)) imports.set(s.local.name, { source: node.source.value, name: 'default' });\n else if (t.isImportNamespaceSpecifier(s)) imports.set(s.local.name, { source: node.source.value, name: '*' });\n }\n } else if (t.isExportNamedDeclaration(node)) {\n if (node.source) {\n for (const s of node.specifiers) {\n if (t.isExportSpecifier(s)) {\n const exported = t.isIdentifier(s.exported) ? s.exported.name : s.exported.value;\n exportsMap.set(exported, { from: node.source.value, imported: s.local.name });\n }\n }\n } else {\n for (const s of node.specifiers) {\n if (t.isExportSpecifier(s)) {\n const exported = t.isIdentifier(s.exported) ? s.exported.name : s.exported.value;\n exportsMap.set(exported, { local: s.local.name });\n }\n }\n const decl = node.declaration;\n if (t.isClassDeclaration(decl) && decl.id) exportsMap.set(decl.id.name, { local: decl.id.name });\n if (t.isVariableDeclaration(decl)) {\n for (const v of decl.declarations) if (t.isIdentifier(v.id)) exportsMap.set(v.id.name, { local: v.id.name });\n }\n }\n } else if (t.isExportDefaultDeclaration(node)) {\n const decl = node.declaration;\n if (t.isClassDeclaration(decl)) {\n const local = decl.id?.name ?? '*default*';\n if (!decl.id) classes.set(local, decl);\n exportsMap.set('default', { local });\n } else if (t.isIdentifier(decl)) {\n exportsMap.set('default', { local: decl.name });\n }\n } else if (t.isExportAllDeclaration(node)) {\n starSources.push(node.source.value);\n }\n if (t.isClassDeclaration(node)) {\n noteClass(node, node.id?.name ?? (t.isExportDefaultDeclaration(parent) ? '*default*' : null));\n } else if (t.isClassExpression(node)) {\n const name = node.id?.name ?? (t.isVariableDeclarator(parent) && t.isIdentifier(parent.id) ? parent.id.name : null);\n noteClass(node, name);\n }\n for (const key of t.VISITOR_KEYS[node.type] ?? []) {\n const child = node[key];\n if (Array.isArray(child)) child.forEach(c => walk(c, node));\n else walk(child, node);\n }\n };\n walk(ast.program, null);\n\n const baseOf = (cls: t.Class, seen: Set<t.Class>): BaseRef => {\n if (seen.has(cls)) return { kind: 'unknown' };\n seen.add(cls);\n const sup = cls.superClass;\n if (t.isIdentifier(sup)) {\n const imp = imports.get(sup.name);\n if (imp && imp.name !== '*') return { kind: 'import', source: imp.source, name: imp.name };\n const local = classes.get(sup.name);\n if (local) return baseOf(local, seen);\n return { kind: 'unknown' };\n }\n if (t.isMemberExpression(sup) && t.isIdentifier(sup.object) && !sup.computed && t.isIdentifier(sup.property)) {\n const imp = imports.get(sup.object.name);\n if (imp && imp.name === '*') return { kind: 'import', source: imp.source, name: sup.property.name };\n }\n return { kind: 'unknown' };\n };\n\n for (const { node, name } of classNodes) {\n if (!node.superClass) continue;\n let base: BaseRef | undefined;\n for (const m of node.body.body) {\n if (!(t.isClassMethod(m) || t.isClassPrivateMethod(m)) || (m as any).static || t.isClassPrivateMethod(m)) continue;\n if (m.kind === 'constructor') continue;\n const member = memberName(m);\n if (!member || !superNames.has(member)) continue;\n const accessor: 'method' | 'get' | 'set' = m.kind === 'get' ? 'get' : m.kind === 'set' ? 'set' : 'method';\n if (accessor === 'method' && !SUPER_METHODS.includes(member)) continue;\n if (accessor !== 'method' && !SUPER_ACCESSORS.includes(member)) continue;\n const result = checkMemberBody(m.body, member, accessor);\n if (result === 'ok') continue;\n base ??= baseOf(node, new Set());\n findings.push({\n className: name === '*default*' ? 'The default-exported class' : name,\n member,\n accessor,\n kind: result,\n line: m.loc?.start.line ?? 0,\n column: m.loc?.start.column ?? 0,\n classLine: node.loc?.start.line ?? 0,\n base,\n });\n }\n }\n\n return {\n findings,\n classBase(exportedOrLocal: string) {\n const cls = classes.get(exportedOrLocal);\n return cls ? baseOf(cls, new Set()) : null;\n },\n exportOf(name: string) {\n return exportsMap.get(name) ?? null;\n },\n starSources,\n };\n}\n\nexport function superCallMessage(f: SuperCallFinding): string {\n const target = f.accessor === 'get' ? `read super.${f.member}` : f.accessor === 'set' ? `assign super.${f.member}` : `call super.${f.member}(…)`;\n return f.kind === 'never'\n ? `${f.className}.${f.member} overrides a ComponentBase member and does not ${target}; MotifJS relies on it. Rename the member, or ${target} on every path.`\n : `${f.className}.${f.member} can finish without reaching super.${f.member} (a return, a branch, a loop or a catch skips it); MotifJS relies on it. ${target[0].toUpperCase() + target.slice(1)} on every path.`;\n}\n\nexport type ResolveFn = (source: string, importer: string) => Promise<string | null>;\nexport type ReadFn = (file: string) => Promise<string | null>;\n\nexport function createComponentResolver(resolve: ResolveFn, read: ReadFn) {\n const cache = new Map<string, Promise<boolean>>();\n const shapes = new Map<string, Promise<ModuleShape | null>>();\n\n const shapeOf = (file: string): Promise<ModuleShape | null> => {\n let p = shapes.get(file);\n if (!p) {\n p = (async () => {\n const code = await read(file);\n if (code == null || code.length > 2_000_000) return null;\n const ast = parseModule(code, file);\n return ast ? analyzeModule(ast) : null;\n })();\n shapes.set(file, p);\n }\n return p;\n };\n\n const isComponentExport = (file: string, name: string, depth: number): Promise<boolean> => {\n const key = `${file}#${name}`;\n let p = cache.get(key);\n if (!p) {\n cache.set(key, Promise.resolve(false));\n p = (async () => {\n if (depth > 12) return false;\n const shape = await shapeOf(file);\n if (!shape) return false;\n const exp = shape.exportOf(name);\n if (exp?.from) return isComponentBase({ kind: 'import', source: exp.from, name: exp.imported ?? name }, file, depth + 1);\n const local = exp?.local ?? (name === 'default' ? '*default*' : null);\n if (local) {\n const base = shape.classBase(local);\n if (base) return isComponentBase(base, file, depth + 1);\n return false;\n }\n for (const star of shape.starSources) {\n if (await isComponentBase({ kind: 'import', source: star, name }, file, depth + 1)) return true;\n }\n return false;\n })();\n cache.set(key, p);\n }\n return p;\n };\n\n const isComponentBase = async (base: BaseRef, importer: string, depth = 0): Promise<boolean> => {\n if (base.kind !== 'import') return false;\n if (isCoreSource(base.source)) return isCoreComponent(base.name);\n let file: string | null = null;\n try { file = await resolve(base.source, importer); } catch { file = null; }\n if (!file) return false;\n return isComponentExport(file, base.name, depth);\n };\n\n return isComponentBase;\n}\n","import * as path from \"node:path\";\nimport { promises as fsp } from \"node:fs\";\nimport * as ts from \"typescript\";\nimport Compiler from \"./compiler\";\nimport { MotifDiagnostic, printDiagnostics } from \"./diagnostics\";\nimport { printExplanations } from \"./explain\";\nimport { analyzeModule, createComponentResolver, mayHaveSuperOverrides, parseModule, superCallMessage } from \"./superCalls\";\nconst fileRegex = /\\.(jsx|tsx|aio|mjsx|mtsx)$/;\nconst decoratorFileRegex = /\\.(ts|mts|cts|js|mjs|cjs)$/;\nconst declarationFileRegex = /\\.d\\.[mc]?ts$/;\nconst decoratorSyntaxRegex = /(?:^|[\\s(,;{}])@[A-Za-z_$]/;\nconst assetQueryRegex = /(?:^|&)(?:raw|url|worker|sharedworker|inline)(?:[&=]|$)/;\nconst analyzableFileRegex = /\\.(jsx|tsx|mjsx|mtsx|ts|mts|cts|js|mjs|cjs)$/;\n\nfunction sourceFile(id: string): string | null {\n if (id.charCodeAt(0) === 0) return null;\n const queryStart = id.indexOf('?');\n if (queryStart !== -1 && assetQueryRegex.test(id.slice(queryStart + 1))) return null;\n return queryStart === -1 ? id : id.slice(0, queryStart);\n}\n\nexport function shouldTransform(id: string): boolean {\n const file = sourceFile(id);\n return file !== null && fileRegex.test(file);\n}\n\nexport function shouldLowerDecorators(id: string, src: string): boolean {\n const file = sourceFile(id);\n if (file === null || !decoratorFileRegex.test(file) || declarationFileRegex.test(file)) return false;\n if (file.includes('/node_modules/')) return false;\n return decoratorSyntaxRegex.test(src);\n}\n\nexport function shouldCheckSuperCalls(id: string, src: string): boolean {\n const file = sourceFile(id);\n if (file === null || !analyzableFileRegex.test(file) || declarationFileRegex.test(file)) return false;\n if (file.replace(/\\\\/g, '/').includes('/node_modules/')) return false;\n return mayHaveSuperOverrides(src);\n}\n\nfunction lineFrame(src: string, line: number, column: number): string | undefined {\n const lines = src.split(/\\r?\\n/);\n if (line < 1 || line > lines.length) return undefined;\n const from = Math.max(1, line - 1);\n const to = Math.min(lines.length, line + 1);\n const width = String(to).length;\n const out: string[] = [];\n for (let i = from; i <= to; i++) {\n out.push(`${i === line ? '>' : ' '} ${String(i).padStart(width)} | ${lines[i - 1]}`);\n if (i === line) out.push(` ${' '.repeat(width)} | ${' '.repeat(column)}^`);\n }\n return out.join('\\n');\n}\n\nexport async function checkSuperCalls(src: string, file: string, isComponentBase: ReturnType<typeof createComponentResolver>): Promise<MotifDiagnostic[]> {\n const ast = parseModule(src, file);\n if (!ast) return [];\n const out: MotifDiagnostic[] = [];\n for (const f of analyzeModule(ast).findings) {\n if (!(await isComponentBase(f.base, file))) continue;\n out.push({ code: 'MJX015', message: superCallMessage(f), file, line: f.line, frame: lineFrame(src, f.line, f.column) });\n }\n return out;\n}\n\nfunction legacyDecoratorsChecker() {\n const byConfig = new Map<string, boolean>();\n return (file: string): boolean => {\n const configPath = ts.findConfigFile(path.dirname(file), ts.sys.fileExists);\n if (!configPath) return false;\n let legacy = byConfig.get(configPath);\n if (legacy === undefined) {\n const read = ts.readConfigFile(configPath, ts.sys.readFile);\n legacy = !read.error && ts.parseJsonConfigFileContent(read.config, ts.sys, path.dirname(configPath)).options.experimentalDecorators === true;\n byConfig.set(configPath, legacy);\n }\n return legacy;\n };\n}\n\nexport interface MotifVitePluginOptions {\n diagnostics?: boolean;\n explain?: boolean | string | RegExp;\n}\n\nfunction explainMatches(opt: boolean | string | RegExp | undefined, id: string): boolean {\n if (!opt) return false;\n if (opt === true) return true;\n if (typeof opt === 'string') return id.includes(opt);\n return opt.test(id);\n}\n\nexport default function vitePlugin(options: MotifVitePluginOptions = {}) {\n const showDiagnostics = options.diagnostics !== false;\n const usesLegacyDecorators = legacyDecoratorsChecker();\n let context: any = null;\n const makeResolver = () => createComponentResolver(\n async (source, importer) => {\n if (!context?.resolve) return null;\n const r = await context.resolve(source, importer, { skipSelf: true });\n if (!r || r.external) return null;\n return sourceFile(r.id);\n },\n async (file) => {\n try { return await fsp.readFile(file, 'utf8'); } catch { return null; }\n });\n let isComponentBase = makeResolver();\n const pending = new Set<Promise<void>>();\n return {\n name: 'transform-file-motif-jsx',\n enforce: 'pre' as const,\n watchChange() {\n isComponentBase = makeResolver();\n },\n handleHotUpdate() {\n isComponentBase = makeResolver();\n },\n async buildEnd() {\n await Promise.all([...pending]);\n },\n transform(this: any, src: string, id: string) {\n if (showDiagnostics && shouldCheckSuperCalls(id, src)) {\n context = this;\n const check = checkSuperCalls(src, sourceFile(id)!, isComponentBase)\n .then(found => { if (found.length > 0) printDiagnostics(found); }, () => { })\n .finally(() => { pending.delete(check); });\n pending.add(check);\n }\n if (shouldLowerDecorators(id, src)) {\n if (usesLegacyDecorators(sourceFile(id)!)) return;\n const result = new Compiler().lowerDecorators(src, id);\n if (result && result.code) {\n return {\n code: result.code,\n map: result.map\n }\n }\n return;\n }\n if (shouldTransform(id)) {\n if (!src.includes(\"//useReact\") && !src.includes(\"//useVue\")) {\n try {\n const compiler = new Compiler();\n const doExplain = explainMatches(options.explain, id);\n var result = doExplain ? compiler.explain(src, id) : compiler.start(src, id);\n if (doExplain) printExplanations(compiler.explanations);\n if (showDiagnostics && compiler.diagnostics.length > 0) {\n printDiagnostics(compiler.diagnostics);\n }\n if (result && result.code) {\n return {\n code: result.code,\n map: result.map\n }\n }\n } catch (error) {\n throw error;\n }\n }\n }\n }\n }\n}\n","import * as ts from 'typescript';\nimport pPath from 'path';\nimport type { MotifDiagnostic } from './diagnostics';\nimport { analyzeModule, mayHaveSuperOverrides, parseModule, superCallMessage } from './superCalls';\n\n\nexport interface LintOptions {\n /** tsconfig yolu. Varsayılan: `./tsconfig.json`. */\n project?: string;\n /** Yalnızca bu dosyalar (mutlak ya da proje köküne göre). Verilmezse programın tüm kaynakları. */\n files?: string[];\n}\n\n/** `() => X` bu tipe geçebilir mi? Union'da tek bir çağrılabilir bileşen yeter. */\nexport function acceptsFunction(type: ts.Type, checker: ts.TypeChecker, depth = 0): boolean {\n if (depth > 8) return true; \n const f = type.flags;\n if (f & (ts.TypeFlags.Any | ts.TypeFlags.Unknown | ts.TypeFlags.Never)) return true;\n if (f & ts.TypeFlags.NonPrimitive) return true; \n if (type.isUnion()) return type.types.some(t => acceptsFunction(t, checker, depth + 1));\n if (type.isIntersection()) return type.types.every(t => acceptsFunction(t, checker, depth + 1));\n if (f & ts.TypeFlags.TypeParameter) {\n const c = (type as ts.TypeParameter).getConstraint?.() ?? checker.getBaseConstraintOfType(type);\n return c ? acceptsFunction(c, checker, depth + 1) : true;\n }\n if (checker.getSignaturesOfType(type, ts.SignatureKind.Call).length > 0) return true;\n if (checker.getSignaturesOfType(type, ts.SignatureKind.Construct).length > 0) return true;\n const sym = type.getSymbol();\n if (sym && (sym.name === 'Function' || sym.name === 'CallableFunction')) return true;\n if (f & ts.TypeFlags.Object) {\n const props = checker.getPropertiesOfType(type);\n const idx = checker.getIndexInfosOfType?.(type) ?? [];\n if (props.length === 0 && idx.length === 0 && checker.getSignaturesOfType(type, ts.SignatureKind.Call).length === 0) {\n const decl = sym?.declarations?.[0];\n if (!decl || ts.isTypeLiteralNode(decl) || ts.isInterfaceDeclaration(decl)) return true;\n }\n }\n return false;\n}\n\nfunction stripParens(e: ts.Expression): ts.Expression {\n let cur = e;\n while (ts.isParenthesizedExpression(cur)) cur = cur.expression;\n return cur;\n}\n\n/** Etiket bir bileşen mi? `div` gibi küçük harfli tanımlayıcı DOM'dur; üye ifadesi ve büyük harf bileşendir. */\nfunction isComponentTag(name: ts.JsxTagNameExpression): boolean {\n if (ts.isIdentifier(name)) {\n const n = name.text;\n return n.length > 0 && n[0] !== n[0].toLowerCase();\n }\n return ts.isPropertyAccessExpression(name); \n}\n\nfunction tagText(name: ts.JsxTagNameExpression): string {\n return name.getText();\n}\n \nexport function lintProgram(program: ts.Program, files?: string[]): MotifDiagnostic[] {\n const checker = program.getTypeChecker();\n const out: MotifDiagnostic[] = [];\n const wanted = files ? new Set(files.map(f => normalize(f))) : null;\n\n for (const sf of program.getSourceFiles()) {\n if (sf.isDeclarationFile) continue;\n if (sf.fileName.includes('/node_modules/')) continue;\n if (wanted && !wanted.has(normalize(sf.fileName))) continue;\n out.push(...superCallFindings(sf, checker));\n if (!/\\.(tsx|jsx|mtsx|mjsx)$/.test(sf.fileName)) continue;\n\n const visit = (node: ts.Node): void => {\n if (ts.isJsxAttribute(node) && node.initializer && ts.isJsxExpression(node.initializer) && node.initializer.expression) {\n const expr = stripParens(node.initializer.expression);\n if (ts.isConditionalExpression(expr)) {\n const attrs = node.parent;\n const opening = attrs.parent;\n if ((ts.isJsxOpeningElement(opening) || ts.isJsxSelfClosingElement(opening)) && isComponentTag(opening.tagName)) {\n check(node, expr, opening);\n }\n }\n }\n ts.forEachChild(node, visit);\n };\n\n const check = (attr: ts.JsxAttribute, expr: ts.ConditionalExpression, opening: ts.JsxOpeningLikeElement): void => {\n const propName = ts.isIdentifier(attr.name) ? attr.name.text : attr.name.getText();\n if (propName === 'key' || propName === 'indexkey' || /^x[-:]/i.test(propName) || /^on[-:_]/i.test(propName)) return;\n\n let type: ts.Type | undefined;\n try {\n const propsType = checker.getContextualType(opening.attributes as unknown as ts.Expression);\n const propSym = propsType ? checker.getPropertyOfType(propsType, propName) : undefined;\n const decl = propSym?.declarations?.find(d => (ts.isPropertySignature(d) || ts.isPropertyDeclaration(d)) && !!d.type) as ts.PropertySignature | ts.PropertyDeclaration | undefined;\n if (decl?.type) type = checker.getTypeFromTypeNode(decl.type);\n else if (propSym) type = checker.getTypeOfSymbolAtLocation(propSym, opening);\n else type = checker.getContextualType((attr.initializer as ts.JsxExpression).expression as ts.Expression);\n } catch { type = undefined; }\n if (!type) return;\n if (acceptsFunction(type, checker)) return;\n\n const typeText = checker.typeToString(type, undefined, ts.TypeFormatFlags.NoTruncation);\n const { line } = sf.getLineAndCharacterOfPosition(attr.getStart(sf));\n out.push({\n code: 'MJX005',\n file: sf.fileName,\n line: line + 1,\n message:\n `<${tagText(opening.tagName)} ${propName}={… ? … : …}>: the component declares \"${propName}\" as \"${typeText}\", ` +\n `but the compiler ALWAYS wraps an attribute ternary in \"() => …\" (by design, for reactivity), so the component receives ` +\n `a FUNCTION at runtime; TypeScript does not see this. Declare the prop as Bind<T> (T | (() => T)) and read it with read()/toGetter(). ` +\n `If the value is really static, compute the ternary outside JSX and pass the variable.`,\n frame: codeFrame(sf, attr),\n });\n };\n\n visit(sf);\n }\n return out;\n}\n\nconst coreDeclarationFile = /[\\\\/](?:@motifx[\\\\/]core|motifjs[\\\\/](?:dist|src))[\\\\/]/;\n\nfunction derivesFromComponentBase(node: ts.ClassLikeDeclaration, checker: ts.TypeChecker): boolean {\n try {\n let type: ts.Type | undefined = checker.getTypeAtLocation(node);\n const seen = new Set<ts.Type>();\n const queue: ts.Type[] = type ? [type] : [];\n while (queue.length > 0) {\n type = queue.shift()!;\n const target = ((type as ts.TypeReference).target ?? type) as ts.InterfaceType;\n if (seen.has(target)) continue;\n seen.add(target);\n const sym = target.getSymbol();\n if (sym && sym.getName() === 'ComponentBase' && sym.declarations?.some(d => coreDeclarationFile.test(d.getSourceFile().fileName))) return true;\n if (!(target.objectFlags & (ts.ObjectFlags.Class | ts.ObjectFlags.Interface))) continue;\n for (const b of checker.getBaseTypes(target) ?? []) queue.push(b);\n }\n } catch { }\n return false;\n}\n\nfunction superCallFindings(sf: ts.SourceFile, checker: ts.TypeChecker): MotifDiagnostic[] {\n if (!mayHaveSuperOverrides(sf.text)) return [];\n const ast = parseModule(sf.text, sf.fileName);\n if (!ast) return [];\n const findings = analyzeModule(ast).findings;\n if (findings.length === 0) return [];\n const membersByLine = new Map<string, ts.ClassElement>();\n const collect = (n: ts.Node): void => {\n if ((ts.isMethodDeclaration(n) || ts.isGetAccessorDeclaration(n) || ts.isSetAccessorDeclaration(n)) && (ts.isClassDeclaration(n.parent) || ts.isClassExpression(n.parent))) {\n const name = n.name && (ts.isIdentifier(n.name) || ts.isStringLiteral(n.name)) ? n.name.text : '';\n const lines = [n.getStart(sf), n.name.getStart(sf)].map(p => sf.getLineAndCharacterOfPosition(p).line + 1);\n for (const l of lines) membersByLine.set(`${l}:${name}`, n);\n }\n ts.forEachChild(n, collect);\n };\n collect(sf);\n const out: MotifDiagnostic[] = [];\n for (const f of findings) {\n const member = membersByLine.get(`${f.line}:${f.member}`);\n const cls = member?.parent as ts.ClassLikeDeclaration | undefined;\n if (!member || !cls || !derivesFromComponentBase(cls, checker)) continue;\n out.push({ code: 'MJX015', file: sf.fileName, line: f.line, message: superCallMessage(f), frame: codeFrame(sf, member) });\n }\n return out;\n}\n\n/** tsconfig'den program kurup denetler. CLI bunu kullanır. */\nexport function lintProject(options: LintOptions = {}): MotifDiagnostic[] {\n const projectPath = options.project ?? 'tsconfig.json';\n const configFile = ts.findConfigFile(process.cwd(), ts.sys.fileExists, projectPath) ?? projectPath;\n const read = ts.readConfigFile(configFile, ts.sys.readFile);\n if (read.error) {\n const error = new Error(`[motifjs] MJX014: Cannot read ${configFile}: ${ts.flattenDiagnosticMessageText(read.error.messageText, '\\n')}`) as Error & { code?: string };\n error.code = 'MJX014';\n throw error;\n }\n const basePath = pPath.dirname(pPath.resolve(configFile));\n const parsed = ts.parseJsonConfigFileContent(read.config, ts.sys, basePath);\n const program = ts.createProgram({ rootNames: parsed.fileNames, options: { ...parsed.options, noEmit: true } });\n const files = options.files?.map(f => pPath.resolve(basePath, f));\n return lintProgram(program, files);\n}\n\nfunction normalize(p: string): string {\n return p.replace(/\\\\/g, '/').toLowerCase();\n}\n\nfunction codeFrame(sf: ts.SourceFile, node: ts.Node): string {\n const start = sf.getLineAndCharacterOfPosition(node.getStart(sf));\n const lines = sf.text.split(/\\r?\\n/);\n const from = Math.max(0, start.line - 1);\n const to = Math.min(lines.length - 1, start.line + 1);\n const width = String(to + 1).length;\n const outLines: string[] = [];\n for (let i = from; i <= to; i++) {\n const mark = i === start.line ? '>' : ' ';\n outLines.push(`${mark} ${String(i + 1).padStart(width)} | ${lines[i]}`);\n if (i === start.line) outLines.push(` ${' '.repeat(width)} | ${' '.repeat(start.character)}^`);\n }\n return outLines.join('\\n');\n}","import Compiler from \"./compiler\";\nimport vitePlugin, { type MotifVitePluginOptions } from \"./vitePlugin\";\nimport { printDiagnostics, type MotifDiagnostic } from \"./diagnostics\";\nimport { printExplanations, formatExplanations, type MotifExplanation, type ExplainReactivity, type ExplainSite } from \"./explain\";\nimport { lintProject, lintProgram, type LintOptions } from \"./lint\";\n\n/** Kaynağı derleyip her JSX ifadesinin neye indiğini döndürür (kod üretilmez, yalnızca kayıt). */\nexport function explain(code: string, filename: string): MotifExplanation[] {\n const c = new Compiler();\n c.explain(code, filename);\n return c.explanations;\n}\n\nexport type { MotifDiagnostic, MotifExplanation, ExplainReactivity, ExplainSite, LintOptions, MotifVitePluginOptions };\nexport { Compiler, printDiagnostics, printExplanations, formatExplanations, lintProject, lintProgram };\nexport default vitePlugin;\n"],"names":["active","diagWarn","fsp"],"mappings":"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"}