codarch 0.3.21 → 0.3.23

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.
@@ -0,0 +1 @@
1
+ :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#eef1f2;--panel:#f6f8f8;--ink:#121a20;--ink-soft:#35434c;--muted:#64727b;--line:#c8d1d5;--line-strong:#9fadb4;--cobalt:#2f6fed;--ochre:#d9a21b;--rust:#d95d39;--violet:#7b61ff;--patina:#3f8f7a;--debt:#d64545;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--display:"Bricolage Grotesque", "IBM Plex Sans", system-ui, sans-serif;--topbar-h:64px;--band-h:52px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--paper);color:var(--ink);font:14px/1.45 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button,input,select{font:inherit}button{color:inherit}:focus-visible{outline:2px solid var(--rust);outline-offset:2px}#boot-error{color:#ffd7d7;font:12px/1.5 var(--mono);white-space:pre-wrap;background:#2b1111;margin:0;padding:24px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{background:radial-gradient(circle at 18% 4%, #ffffff8c, transparent 34%), var(--paper);min-height:100dvh}.topbar{z-index:20;min-height:var(--topbar-h);background:var(--ink);color:#f3f6f5;border-bottom:1px solid #05090c;grid-template-columns:minmax(250px,auto) 1fr auto;align-items:center;gap:22px;padding:0 20px;display:grid;position:relative}.brand{align-items:baseline;gap:12px;min-width:0;display:flex}.brand-mark{font:750 18px/1 var(--display);letter-spacing:.16em}.brand-sub{font:500 9.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#a9b7bc;white-space:nowrap}.snapshot-meta{text-align:center;flex-direction:row;justify-content:center;align-items:center;gap:12px;min-width:0;display:flex}.snapshot-meta .mono{color:#93a2a8;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;overflow:hidden}.watch-indicator{font:500 8.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#93a2a8;align-items:center;gap:5px;display:inline-flex}.watch-indicator i{background:#7f8b90;border-radius:50%;width:5px;height:5px}.watch-live{color:#8fe3c0}.watch-live i{background:#45d6a0;box-shadow:0 0 0 3px #45d6a029}.watch-paused{color:#e7c06b}.watch-paused i{background:var(--ochre)}.refresh-notice{font:500 8.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#45d6a0;opacity:0}.refresh-notice.is-new{animation:3s ease-out both refresh-notice}@keyframes refresh-notice{0%{opacity:0}8%{opacity:1}72%{opacity:1}to{opacity:0}}.topbar-actions{justify-content:flex-end;gap:8px;display:flex}.button-label-short{display:none}.button{color:var(--ink);font:600 11px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:#f3f6f5;border:1px solid #f3f6f5;border-radius:2px;padding:8px 12px;transition:background .12s,color .12s}.button:hover{background:#fff}.button.ghost{color:#dbe3e4;background:0 0;border-color:#596970}.open-menu{position:relative}.open-menu>summary{cursor:pointer;align-items:center;list-style:none;display:inline-flex}.open-menu>summary::-webkit-details-marker{display:none}.open-menu[open]>summary{background:#fff}.open-menu-panel{z-index:30;border:1px solid var(--line-strong);background:var(--panel);min-width:216px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 14px 30px #121a202e}.open-menu-panel button{color:var(--ink);text-align:left;font:500 11px/1.3 var(--sans);cursor:pointer;background:0 0;border:0;padding:8px 10px}.open-menu-panel button:hover{background:#2f6fed14}.open-menu-panel p{color:var(--muted);margin:4px 10px 6px;font-size:9.5px;line-height:1.35}.open-menu-panel button:disabled{opacity:.45;cursor:not-allowed}.open-menu-group{padding:2px 0;display:grid}.open-menu-group+.open-menu-group{border-top:1px solid var(--line);margin-top:4px;padding-top:6px}.open-menu-label{color:var(--muted);font:600 9px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:4px 10px 2px}.live-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.live-state{letter-spacing:.11em;text-transform:uppercase;color:var(--muted);font-size:10px}.live-state.is-live{color:var(--patina)}.button.small{margin-top:0;padding:6px 9px;font-size:9px}.button.ghost.dark-text{color:var(--ink);border-color:var(--line-strong);background:0 0}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#121a208c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--line-strong);background:var(--panel);flex-direction:column;width:min(660px,100%);max-height:min(780px,100dvh - 40px);padding:20px;display:flex;box-shadow:0 24px 60px #121a2047}.modal h2{font:650 27px/1.08 var(--display);letter-spacing:-.03em;margin:2px 0 5px}.folder-path{grid-template-columns:32px minmax(0,1fr) auto;gap:6px;margin:14px 0 8px;display:grid}.folder-path input{border:1px solid var(--line);min-width:0;color:var(--ink);font:11px/1.3 var(--mono);background:#fff;padding:7px 8px}.folder-up{border:1px solid var(--line);width:32px;color:var(--ink);cursor:pointer;background:#fff;font-size:16px}.folder-up:disabled{color:var(--line-strong);cursor:default}.folder-list{border:1px solid var(--line);background:#fff;min-height:120px;max-height:340px;margin-bottom:12px;overflow:auto}.folder-entry{width:100%;color:var(--ink);text-align:left;font:12px/1.3 var(--sans);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #c8d1d58c;grid-template-columns:18px minmax(0,1fr);gap:5px;padding:7px 10px;display:grid}.folder-entry:hover{background:#2f6fed12}.folder-icon{color:var(--muted);font-family:var(--mono)}.folder-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folder-empty{color:var(--muted);text-align:center;padding:28px 18px;font-size:11.5px}.folder-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.folder-current{text-overflow:ellipsis;white-space:nowrap;max-width:52%;color:var(--muted);font-size:9.5px;overflow:hidden}.folder-actions{gap:8px;display:flex}.folder-actions .button{margin-top:0}.button.ghost:hover{background:#ffffff14}.shell{min-height:calc(100dvh - var(--topbar-h) - var(--band-h));background:var(--line);grid-template-columns:258px minmax(0,1fr) 302px;gap:1px;display:grid}.rail,.inspector{background:var(--panel);min-height:0;padding:20px 18px;overflow:auto}.rail{border-right:1px solid var(--line)}.inspector{border-left:1px solid var(--line)}.panel-block{border-bottom:1px solid var(--line);margin:0 0 17px;padding:0 0 17px}.panel-block:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.eyebrow{font:500 9.5px/1.2 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.field{margin-bottom:10px;display:block}.field>span{font:500 9.5px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;display:block}.field select,.field input{appearance:none;border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:2px;padding:7px 8px;font-size:12px}.field select{background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 13px) 12px,calc(100% - 9px) 12px;background-repeat:no-repeat;background-size:4px 4px,4px 4px;padding-right:24px}.search-field{margin-top:13px}.url-load{border-top:1px solid var(--line);gap:2px;margin:6px 6px 2px;padding-top:6px;display:grid}.url-load .field{margin-bottom:6px}.url-load .field input{font-family:var(--mono);font-size:10.5px}.url-load>button{border:1px solid var(--line-strong);color:var(--ink);text-align:center;font:500 10px/1.3 var(--mono);letter-spacing:.04em;text-transform:uppercase;margin-top:2px}.tiny{font-size:10.5px}.small{font-size:12px}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.strata{border:1px solid var(--line-strong);background:var(--paper);border-radius:2px;gap:1px;height:24px;padding:1px;display:flex;overflow:hidden}.strata i{min-width:2px;height:100%;display:block}.strata-legend{gap:4px;margin-top:9px;display:grid}.strata-row{color:var(--ink-soft);grid-template-columns:7px 1fr auto;align-items:center;gap:7px;font-size:11px;display:grid}.strata-row i,.legend i,.status-chip i{border-radius:50%;width:7px;height:7px;display:inline-block}.strata-row .mono{color:var(--muted);font-size:10px}.status-row{border-top:1px solid var(--line);flex-wrap:wrap;gap:5px 10px;margin-top:11px;padding-top:9px;display:flex}.status-chip{color:var(--muted);align-items:center;gap:5px;font-size:10.5px;display:inline-flex}.status-chip b{color:var(--ink);font-weight:600}.legend{gap:6px;display:grid}.legend>div{grid-template-columns:7px 1fr auto;align-items:center;gap:7px;font-size:11px;display:grid}.legend .mono{color:var(--muted);font-size:10px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gradient{border:1px solid var(--line);border-radius:1px;height:9px}.gradient.risk{background:linear-gradient(90deg,#ebe7df 0%,#e9cd98 35%,#d68a54 65%,#a42e2c 100%)}.gradient.metric{background:linear-gradient(90deg,#ebe7df 0%,#b9c9cf 50%,#355b6b 100%)}.gradient-labels{font:10px/1 var(--mono);color:var(--muted);justify-content:space-between;margin-top:4px;display:flex}.debt-list{gap:2px;display:grid}.debt-row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:1px;grid-template-columns:minmax(0,1fr) 54px 34px;align-items:center;gap:7px;width:100%;padding:5px 0;display:grid}.debt-row:hover,.debt-row.is-selected{background:#2f6fed12}.debt-name{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);font-size:10.5px;overflow:hidden}.debt-track{background:#e0e6e8;height:5px;overflow:hidden}.debt-track i{height:100%;display:block}.debt-row .mono{text-align:right;color:var(--muted);font-size:10px}.stage{background:var(--paper);flex-direction:column;min-width:0;padding:14px 22px 12px;display:flex}.project-band{z-index:19;height:var(--band-h);color:#f3f6f5;background:#1b262e;border-top:1px solid #ffffff12;align-items:center;gap:18px;padding:0 20px;display:flex;position:relative;overflow:hidden}.project-ident{flex-direction:column;gap:1px;min-width:0;display:flex}.project-label{font:500 8px/1.1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#93a2a8}.project-band h1{max-width:360px;font:650 17px/1.1 var(--display);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.project-band .breadcrumb{color:#93a2a8;min-width:0;margin-top:0}.project-band .breadcrumb button{color:#f3f6f5;border-bottom-color:#5a6a72}.project-band .breadcrumb button:hover{border-bottom-color:#f3f6f5}.project-band .breadcrumb span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-kpis{flex:none;align-items:center;gap:0;margin-left:auto;display:flex}.project-kpis .kpi{border-left:1px solid #ffffff1f;min-width:62px;padding:0 14px}.project-kpis .kpi span{color:#93a2a8;white-space:nowrap;text-overflow:ellipsis;font-size:8px;overflow:hidden}.project-kpis .kpi b{font:600 15px/1 var(--display);color:#f3f6f5}.project-kpis .kpi-debt b{color:#ff9f9f}.kpi{flex-direction:column;gap:2px;display:flex}.kpi span{font:500 8.5px/1.1 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}.kpi b{font:600 20px/1 var(--display);letter-spacing:-.02em}.kpi-debt b{color:var(--debt)}.map-frame{border:1px solid var(--line-strong);background:#f8fafa;flex:1;min-height:440px;position:relative;overflow:hidden;box-shadow:inset 0 1px #fffc,0 10px 30px #121a200d}.map-inner{width:100%;height:100%}.map{width:100%;height:100%;display:block}.cell{cursor:pointer}.cell:hover{filter:brightness(1.08)}.cell:focus-visible{stroke:var(--rust);stroke-width:2.5px;outline:none}.cell.is-cursor,.folder-block.is-cursor{stroke:var(--rust);stroke-width:2px}.folder-block{cursor:zoom-in}.folder-block:hover{fill:#121a200d}.folder-block:focus-visible{stroke:var(--rust);stroke-width:2px;outline:none}.folder-hit{cursor:zoom-in}.folder-hit:focus-visible{stroke:var(--rust);stroke-width:2px;outline:none}.empty{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:30px;display:flex;position:absolute;inset:0}.empty.error{color:var(--debt)}.empty.error span{color:var(--muted);max-width:520px}.drop-hint{border:1px dashed var(--cobalt);color:var(--cobalt);font:600 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;pointer-events:none;background:#2f6fed14;justify-content:center;align-items:center;display:flex;position:absolute;inset:12px}.breadcrumb{font:10px/1.3 var(--mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px;margin-top:6px;display:flex}.breadcrumb button{border:0;border-bottom:1px solid var(--line-strong);color:var(--ink);font:inherit;cursor:pointer;background:0 0;padding:0}.breadcrumb button:hover{border-bottom-color:var(--ink)}.stage-foot{color:var(--muted);justify-content:space-between;gap:18px;margin-top:9px;font-size:10px;display:flex}.stage-foot .mono{text-overflow:ellipsis;white-space:nowrap;max-width:55%;overflow:hidden}.progress-cell{align-items:center;gap:10px;min-width:0;display:inline-flex}.progress-cell .detail-note{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.progress-cell .button{text-transform:none;letter-spacing:.02em;flex:none;padding:3px 9px;font-size:9px}.history-list{gap:1px;display:grid}.history-row{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 6px;display:grid}.history-row:hover{background:#2f6fed14}.history-date{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:10px;overflow:hidden}.history-count{color:var(--muted);font-size:9.5px}.inspector h2{font:650 27px/1.08 var(--display);letter-spacing:-.03em;overflow-wrap:anywhere;margin:6px 0 14px}.inspector-path{font:10.5px/1.45 var(--mono);color:var(--muted);overflow-wrap:anywhere}.inspector-empty h2{margin-top:6px}.inspector-note{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:10px;margin-top:24px;padding-top:12px;font-size:10px;display:flex}.inspector-status{color:var(--ink-soft);align-items:center;gap:7px;margin-bottom:14px;font-size:11px;display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.inspector-status .mono{color:var(--muted);text-transform:uppercase;margin-left:auto;font-size:10px}.metric-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:1fr 1fr;gap:0;margin-bottom:18px;display:grid}.metric{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 10px}.metric span{font:500 8.5px/1.1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block}.metric b{font:600 18px/1 var(--display);letter-spacing:-.02em;margin-top:3px;display:block}.collapsible{margin-top:14px}.collapsible-head{border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:7px;width:100%;padding:7px 0;display:flex}.collapsible-head:hover .collapsible-title{color:var(--cobalt)}.collapsible-head:focus-visible{outline:2px solid var(--rust);outline-offset:1px}.collapsible-chevron{color:var(--muted);transition:transform .12s;display:inline-flex}.collapsible.is-closed .collapsible-chevron svg{transform:rotate(-90deg)}.collapsible-title{min-width:0;font:600 12px/1.2 var(--sans);letter-spacing:-.01em;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.collapsible-count{border:1px solid var(--line);font:500 8.5px/1.5 var(--mono);color:var(--muted);border-radius:999px;padding:0 5px}.collapsible-summary{max-width:55%;font:500 9.5px/1.2 var(--mono);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;overflow:hidden}.collapsible-body{padding-bottom:2px}.metrics-table{margin-top:2px}.metrics-head,.metrics-row{grid-template-columns:minmax(0,1fr) 54px 52px;align-items:center;gap:8px;display:grid}.metrics-head{font:500 8.5px/1.1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 4px 4px 7px}.metrics-head span:nth-child(2){text-align:center}.metrics-head span:last-child{text-align:right}.metrics-rows{gap:1px;display:grid}.metrics-row{text-align:left;width:100%;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:3px 4px 3px 7px;font-size:11px;box-shadow:inset 2px 0 #0000}.metrics-row:hover{background:#2f6fed0f}.metrics-row:focus-visible{outline:2px solid var(--rust);outline-offset:1px}.metrics-row.is-active{box-shadow:inset 2px 0 0 var(--cobalt);background:#2f6fed12}.metrics-label{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;min-width:0;display:flex;overflow:hidden}.metric-help{border:1px solid var(--line);width:12px;height:12px;color:var(--muted);font:600 8px/1 var(--mono);cursor:help;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.metrics-area{border:1px solid var(--line-strong);font:500 8px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-radius:2px;flex:none;padding:0 4px;font-style:normal}.metrics-bar{background:var(--line);height:4px;overflow:hidden}.metrics-bar i{background:var(--muted);height:100%;display:block}.metrics-watch .metrics-bar i{background:var(--ochre)}.metrics-debt .metrics-bar i{background:var(--debt)}.metrics-value{font:600 11px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);justify-self:end;align-items:baseline;gap:2px;display:inline-flex}.metrics-value em{color:var(--muted);font-size:8.5px;font-style:normal;font-weight:500}.metrics-watch .metrics-value{color:var(--ochre)}.metrics-debt .metrics-value{color:var(--debt)}.metrics-row.is-empty .metrics-value{color:var(--muted);font-weight:500}.metrics-note{margin:7px 0 0;line-height:1.35}.live-toggle{align-items:center;gap:7px;display:inline-flex}.live-toggle i{background:var(--line-strong);border-radius:50%;width:7px;height:7px;transition:background .15s ease-out,box-shadow .15s ease-out;box-shadow:0 0 0 3px #0000}.live-toggle.is-live i{background:var(--patina);box-shadow:0 0 0 3px color-mix(in srgb, var(--patina) 22%, transparent)}.icon-button{justify-content:center;align-items:center;width:30px;padding:0;display:inline-flex}.icon-button svg{display:block}.map-controls{border:1px solid var(--line-strong);background:var(--panel);border-radius:6px;align-items:center;gap:1px;margin-right:14px;padding:2px;display:flex}.map-controls button{min-width:24px;height:22px;color:var(--ink-soft);font:500 10.5px/1 var(--mono);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 6px}.map-controls button:hover:not(:disabled){color:var(--ink);background:#121a2012}.map-controls button:disabled{opacity:.4;cursor:not-allowed}.map-controls-hint{font:400 10px/1 var(--sans);color:var(--muted);white-space:nowrap;padding:0 9px}.map-zoom-level{text-align:center;min-width:40px;font:500 10px/1 var(--mono);color:var(--muted)}.stage-tabs{border-bottom:1px solid var(--line);gap:18px;margin:0 0 12px;display:flex}.stage-tab{color:var(--muted);font:500 9.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:0 0 9px;display:inline-flex}.stage-tab:hover{color:var(--ink-soft)}.stage-tab.is-active{color:var(--ink);border-bottom-color:var(--ink)}.plugin-stage{width:100%;height:100%;padding:18px;overflow:auto}.plugin-view{gap:10px;max-width:640px;display:grid}.plugin-view h2{color:var(--ink);margin:0;font-size:15px}.plugin-list{gap:1px;display:grid}.plugin-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.plugin-text{gap:2px;display:grid}.plugin-title{color:var(--ink);font-size:12.5px}.plugin-version{color:var(--muted);font-size:10px}.plugin-warning{color:var(--rust,#be3c28);font-size:10.5px}.plugin-summary{color:var(--ink-soft);margin:0 0 8px;font-size:11px}.plugin-summary b{font:600 12.5px/1 var(--sans)}.plugin-meta{font:500 9.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.plugin-more summary{color:var(--muted);cursor:pointer;width:-moz-fit-content;width:fit-content;font-size:10.5px;list-style:none}.plugin-more summary::-webkit-details-marker{display:none}.plugin-more summary:before{content:"▸ "}.plugin-more[open] summary:before{content:"▾ "}.plugin-more p{color:var(--muted);margin:5px 0 0;font-size:10.5px}.plugin-more code{font-size:10px}.plugin-switch{border:1px solid var(--line);cursor:pointer;background:#ffffff0d;border-radius:10px;width:34px;height:19px;padding:0;position:relative}.plugin-switch i{background:var(--muted);border-radius:50%;width:13px;height:13px;transition:transform .12s ease-out,background .12s ease-out;position:absolute;top:2px;left:2px}.plugin-switch.is-on{background:#2f6fed47;border-color:#2f6fed80}.plugin-switch.is-on i{background:#7aa2f7;transform:translate(15px)}.plugin-switch:disabled{opacity:.45;cursor:not-allowed}.map-label{box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;width:100%;height:100%;line-height:1.05;font-family:var(--sans);pointer-events:none;-webkit-user-select:none;user-select:none;margin:0;padding:0;overflow:hidden}.map-label.is-vertical{writing-mode:vertical-rl;text-orientation:mixed}.map-label.is-folder{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#121a209e}.rail-settings{border:1px solid var(--line);width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;align-self:flex-end;padding:0;font-size:13px;line-height:1}.rail-settings:hover{color:var(--ink);border-color:var(--ink-soft)}.settings-overlay{z-index:40;background:#080c1099;position:fixed;inset:0}.settings-panel{z-index:41;background:var(--panel,#151d24);border:1px solid var(--line);border-radius:10px;flex-direction:column;width:min(620px,100vw - 48px);max-height:min(560px,100vh - 64px);display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 24px 64px #00000080}.settings-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.settings-title{font:500 13px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin:0}.settings-close{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.settings-close:hover{color:var(--ink)}.settings-body{grid-template-columns:148px minmax(0,1fr);min-height:0;display:grid}.settings-sections{border-right:1px solid var(--line);background:#00000024;flex-direction:column;gap:1px;padding:10px 8px;display:flex}.settings-section{color:var(--ink-soft);font:500 11.5px/1.3 var(--sans);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 10px}.settings-section:hover{color:var(--ink);background:#ffffff0a}.settings-section.is-active{color:var(--ink);background:#2f6fed29}.settings-content{align-content:start;gap:14px;padding:16px;display:grid;overflow-y:auto}.settings-row{color:var(--ink-soft);border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:4px 0;font-size:12px;display:flex}.settings-row b{color:var(--ink);font-weight:500}.component-list{gap:8px;display:grid}.component-row{border-bottom:1px solid var(--line);padding:8px 0}.component-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.component-name{font:600 12px/1.2 var(--sans);color:var(--ink)}.component-row p{margin:3px 0 0}.symbol-list{padding-top:2px}.symbol-group+.symbol-group{margin-top:7px}.symbol-group.collapsible{margin-top:6px}.symbol-group>.collapsible-head{border-top:0;padding:5px 0}.symbol-group>.collapsible-head .collapsible-title{font:500 8.5px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.symbol-group>.collapsible-body{padding-bottom:0}.code-panel{padding-top:4px}.code-view{border:1px solid var(--line);max-height:340px;color:var(--ink-soft);font:10.5px/1.45 var(--mono);background:#00000029;border-radius:4px;margin:0;padding:8px;overflow:auto}.code-line{grid-template-columns:42px minmax(0,1fr);gap:8px;display:grid}.code-line i{color:var(--muted);text-align:right;-webkit-user-select:none;user-select:none;font-style:normal}.code-line>span{white-space:pre}.code-note{margin:4px 0 0}.symbol-group-head{font:500 8.5px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;padding:3px 0 2px;display:flex}.symbol-group-line{background:var(--line);flex:1;height:1px}.symbol-group-count{color:var(--muted)}.symbol-file{border-bottom:1px solid var(--line);padding:6px 0}.symbol-file-path{width:100%;color:var(--ink);font:500 11px/1.4 var(--mono);text-align:left;cursor:pointer;background:0 0;border:0;margin-bottom:4px;padding:0;display:block}.symbol-file-path:hover{color:var(--accent,#2f6fed);text-decoration:underline}.symbol-change{color:var(--ink-soft);grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:2px 0 2px 4px;font-size:11px;display:grid}.symbol-row{color:var(--ink-soft);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:3px 0;font-size:11px;display:grid}.symbol-row:hover{background:#2f6fed14}.symbol-row.is-selected{background:#2f6fed24}.chain-list{padding-top:2px}.chain-row{color:var(--ink-soft);grid-template-columns:74px auto minmax(0,1fr);align-items:center;gap:8px;padding:3px 0;font-size:10.5px;display:grid}.chain-date{color:var(--muted);font-size:10px}.chain-events{flex-wrap:wrap;gap:3px;display:flex}.chain-event{font:500 8.5px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:3px;padding:0 4px}.chain-created{color:#0f766e;border-color:#0f766e66}.chain-changed{color:#c2410c;border-color:#c2410c66}.chain-renamed,.chain-moved{color:#2f6fed;border-color:#2f6fed66}.chain-removed{color:var(--rust);border-color:#be3c2866}.chain-path{text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);color:var(--muted);font-size:10px;overflow:hidden}.symbol-kind{font:500 8.5px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;text-align:center;color:var(--muted);border:1px solid var(--line);border-radius:3px}.symbol-function{color:#2f6fed;border-color:#2f6fed66}.symbol-class{color:#c2410c;border-color:#c2410c59}.symbol-interface,.symbol-type{color:#0f766e;border-color:#0f766e59}.symbol-enum{color:#6d28d9;border-color:#6d28d959}.symbol-variable{color:#64748b;border-color:#64748b66}.surface-list,.member-list{padding-top:2px}.surface-group+.surface-group,.member-group+.member-group{margin-top:7px}.surface-row{color:var(--ink-soft);flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:3px 0;font-size:11px;display:flex}.surface-source{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);flex:40%;font-size:10px;overflow:hidden}.surface-names{flex-wrap:wrap;flex:55%;gap:4px;min-width:0;display:flex}.surface-name{border:1px solid var(--line);max-width:100%;font:500 10px/1.5 var(--mono);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:0 4px;overflow:hidden}.surface-badge{font:500 8.5px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.member-row{color:var(--ink-soft);grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;padding:3px 0;font-size:11px;display:grid}.member-kind{font-size:8px}.symbol-name{text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:10.5px;overflow:hidden}.symbol-complexity{color:var(--ink)}.symbol-note{margin:7px 0 0;line-height:1.35}.tabs{border-bottom:1px solid var(--line);gap:18px;margin:-2px 0 16px;display:flex}.tab{color:var(--muted);font:500 9.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:0 0 9px;display:inline-flex}.tab.is-active{color:var(--ink);border-bottom-color:var(--ink)}.tab-dot{background:var(--rust);border-radius:50%;width:5px;height:5px;display:inline-block}.button.dark{background:var(--ink);color:var(--paper);border-color:var(--ink);margin-top:12px}.button.dark:hover{background:#26333b}.change-panel h2{margin-bottom:4px}.change-checksums{color:var(--muted);margin-bottom:14px;font-size:10px}.change-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:1fr 1fr;margin-bottom:16px;display:grid}.change-stat{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 10px}.change-stat span{font:500 8.5px/1.1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block}.change-stat b{font:600 15px/1.1 var(--display);letter-spacing:-.02em;margin-top:3px;display:block}.change-stat-bad b{color:var(--debt)}.change-stat-good b{color:var(--patina)}.change-delta.is-worse{color:var(--debt)}.change-delta.is-better{color:var(--patina)}.change-section{border-top:1px solid var(--line);margin-top:13px;padding-top:12px}.change-summary{color:var(--muted);flex-wrap:wrap;gap:4px 13px;margin-bottom:7px;font-size:10.5px;display:flex}.change-summary b{color:var(--ink)}.violation-list{gap:4px;display:grid}.violation{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:6px 1fr;gap:8px;width:100%;padding:5px 0;display:grid}.violation:hover{background:#d645450f}.violation i{background:var(--muted);border-radius:50%;width:6px;height:6px;margin-top:5px}.violation-error i{background:var(--debt)}.violation-warn i{background:var(--ochre)}.violation-info i{background:var(--cobalt)}.violation b{font:600 11px/1.3 var(--sans);display:block}.violation>span{min-width:0}.violation small{color:var(--muted);overflow-wrap:anywhere;font-size:10.5px;line-height:1.35;display:block}.violation-source{border:1px solid var(--line-strong);font:500 8.5px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);vertical-align:1px;border-radius:2px;margin-left:6px;padding:1px 5px;font-style:normal}.lens-section{margin-top:18px}.lens-section+.lens-section{border-top:1px solid var(--line);padding-top:16px}.lens-risk-head{align-items:baseline;gap:4px;margin-bottom:12px;display:flex}.lens-risk-value{font:600 32px/1 var(--display);letter-spacing:-.04em}.lens-risk-unit{font:10px/1 var(--mono);color:var(--muted)}.lens-bars{gap:7px;display:grid}.lens-bar-row{color:var(--ink-soft);grid-template-columns:70px minmax(0,1fr) 38px 30px;align-items:center;gap:6px;font-size:10.5px;display:grid}.lens-bar-row>.mono{text-align:right;font-size:10px}.lens-weight{font:9px/1 var(--mono);color:var(--muted);text-align:right}.lens-bar{background:var(--line);height:5px;overflow:hidden}.lens-bar i{background:var(--rust);height:100%;display:block}.lens-section .tiny{margin:9px 0 0;line-height:1.4}.lens-counts{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.lens-chip{border:1px solid var(--line-strong);font:500 8.5px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-radius:2px;padding:2px 6px}.lens-chip-new,.lens-new{color:var(--debt);border-color:var(--debt)}.lens-edges{gap:3px;margin-top:10px;display:grid}.lens-edge{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:8px;width:100%;padding:3px 0;display:grid}.lens-edge:hover .lens-edge-path{color:var(--ink)}.lens-flag{font:500 8.5px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;border-radius:2px;padding:1px 5px}.lens-wasm{color:var(--cobalt);border:1px solid var(--cobalt)}.lens-native{color:var(--ochre);border:1px solid var(--ochre)}.lens-edge-path{font:10.5px/1.4 var(--mono);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lens-symbol{font-weight:600}.lens-index{border-top:1px solid var(--line);gap:10px;margin-top:20px;padding-top:14px;display:grid}.lens-index>div{justify-content:space-between;gap:12px;font-size:10.5px;display:flex}.lens-index b{font-weight:600}.lens-index span{color:var(--muted);text-align:right}.rules-panel h2{margin-bottom:4px}.rules-hint{margin-top:8px}.rules-hint .lens-index{margin-top:14px}.rules-file>.lens-section:first-child{margin-top:12px}.rules-change{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.rules-change>.eyebrow{margin-bottom:8px}.rules-empty-title{font:600 13px/1.2 var(--sans);margin:10px 0 2px}.rules-meta{color:var(--muted);margin:-6px 0 10px;font-size:10.5px}.rules-meta b{color:var(--ink)}.rules-sources{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.rules-chip{border:1px solid var(--line-strong);font:500 8.5px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-radius:2px;align-items:baseline;gap:4px;padding:2px 6px;display:inline-flex}.rules-chip b{color:var(--ink);font-size:10px}.rules-group{border-top:1px solid var(--line);margin-top:13px;padding-top:12px}.rules-group-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;display:flex}.rules-group-head .eyebrow{margin:0}.rules-count{border:1px solid var(--line-strong);min-width:18px;font:500 9px/1.4 var(--mono);text-align:center;color:var(--muted);border-radius:2px;padding:1px 5px}.rules-count-introduced{color:var(--debt);border-color:var(--debt)}.rules-count-resolved{color:var(--patina);border-color:var(--patina)}.rules-rule-resolved{opacity:.72}.rules-detail{font:9.5px/1.4 var(--mono);color:var(--muted);overflow-wrap:anywhere;margin-top:2px;display:block}.tab-dot-alert{background:var(--debt)}.change-rows{gap:1px;display:grid}.change-row{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:5px 0;display:grid}.change-row:hover{background:#2f6fed0f}.change-path{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);font-size:10.5px;overflow:hidden}.change-delta{color:var(--muted);font-size:9.5px}.change-cycle{grid-template-columns:22px minmax(0,1fr);gap:6px;padding:4px 0;font-size:10.5px;display:grid}.panel-error{color:var(--debt);margin-top:10px;font-size:11px}code{font-family:var(--mono);background:#64727b1f;border-radius:2px;padding:1px 3px;font-size:10px}@media (min-width:1181px){.app{height:100dvh;overflow:hidden}.shell{height:calc(100dvh - var(--topbar-h) - var(--band-h));min-height:0}.rail,.inspector{min-height:0}.stage{min-height:0;overflow:hidden}.map-frame{min-height:0}}@media (max-width:1180px){.shell{grid-template-columns:226px minmax(0,1fr)}.stage{height:calc(100dvh - var(--topbar-h) - var(--band-h))}.rail{max-height:calc(100dvh - var(--topbar-h) - var(--band-h))}.map-frame{min-height:0}.inspector{border-left:0;border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:30px;display:grid}}@media (max-width:820px){.topbar{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 14px}.snapshot-meta,.brand-sub,.button-label-long{display:none}.button-label-short{display:inline}.topbar-actions{flex-wrap:nowrap}.topbar-actions .button{padding:7px 9px;font-size:9.5px}.shell{flex-direction:column;min-height:0;display:flex}.stage{order:1;padding:16px 12px 12px}.rail{border-right:0;border-top:1px solid var(--line);order:2;grid-template-columns:1fr 1fr;gap:18px;display:grid}.inspector{order:3;display:block}.project-band{gap:12px;padding:0 14px}.project-band h1{max-width:190px}.project-kpis .kpi{min-width:0;padding:0 9px}.project-kpis .kpi b{font-size:14px}.map-frame,.map{min-height:360px}}@media (max-width:560px){.rail{grid-template-columns:1fr}.project-band{gap:8px}.project-band h1{max-width:104px;font-size:15px}.project-ident{flex:auto}.project-kpis{flex:auto;justify-content:flex-end}.project-kpis .kpi{flex:1 1 0;padding:0 5px}.project-kpis .kpi span{max-width:100%;font-size:7px}.project-kpis .kpi b{font-size:13px}.stage-foot{flex-direction:column;gap:3px}.stage-foot .mono{max-width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.refresh-notice.is-new{opacity:1;animation:none!important}}
@@ -1,4 +1,4 @@
1
- import{a as e,i as t,n,r,t as i}from"./index-DoNheLr8.js";var a=e(t(),1),o={minDistance:60,maxDistance:1600,minPolar:.12,maxPolar:Math.PI/2.05},s={azimuth:-.6018,polar:.9813,distance:467.3};function c(e,t,n,r=1.08){let i=Math.max(1,e),a=Math.min(Math.max(t,.2),Math.PI-.2),o=Math.max(.2,n),s=i/Math.sin(a/2),c=2*Math.atan(Math.tan(a/2)*o),l=i/Math.sin(Math.min(c,Math.PI-.2)/2);return Math.max(s,l)*r}function l(e,t){let n=Math.sin(e.polar)*e.distance;return{x:t.x+n*Math.sin(e.azimuth),y:t.y+Math.cos(e.polar)*e.distance,z:t.z+n*Math.cos(e.azimuth)}}function u(e,t=o){return{azimuth:e.azimuth,polar:Math.min(Math.max(e.polar,t.minPolar),t.maxPolar),distance:Math.min(Math.max(e.distance,t.minDistance),t.maxDistance)}}function d(e,t,n){let r=Math.min(Math.max(n,0),1);return{azimuth:e.azimuth+(t.azimuth-e.azimuth)*r,polar:e.polar+(t.polar-e.polar)*r,distance:e.distance+(t.distance-e.distance)*r}}var f=.005,p=5,m=.0015;function h(e,t={}){let n=t.target??{x:0,y:0,z:0},r=t.limits??o,i={...t.start??s},a={...i},c=t.damping??.18,h=new Map,g=0,_=null,v=0,y=()=>{let[e,t]=[...h.values()];return!e||!t?0:Math.hypot(e.x-t.x,e.y-t.y)},b=t=>{if(t.pointerType!==`mouse`||t.button===0){h.set(t.pointerId,{x:t.clientX,y:t.clientY});try{e.setPointerCapture(t.pointerId)}catch{}h.size===1?(_={x:t.clientX,y:t.clientY},v=0):(_=null,g=y())}},x=e=>{let n=h.get(e.pointerId);if(!n)return;let a=e.clientX-n.x,o=e.clientY-n.y;if(h.set(e.pointerId,{x:e.clientX,y:e.clientY}),h.size===1)i.azimuth-=a*f,i.polar=u({...i,polar:i.polar-o*f},r).polar,v+=Math.abs(a)+Math.abs(o),t.onChange?.();else if(h.size===2){let e=y();g>0&&e>0&&(i.distance=u({...i,distance:i.distance*(g/e)},r).distance),g=e,t.onChange?.()}},S=e=>{h.delete(e.pointerId),h.size===0?(_&&v<=p&&t.onTap?.(e.clientX,e.clientY),_=null,g=0):g=h.size===2?y():0},C=e=>{e.preventDefault();let n=e.deltaMode===1?e.deltaY*16:e.deltaMode===2?e.deltaY*400:e.deltaY;i.distance=u({...i,distance:i.distance*Math.exp(n*m)},r).distance,t.onChange?.()};return e.addEventListener(`pointerdown`,b),e.addEventListener(`pointermove`,x),e.addEventListener(`pointerup`,S),e.addEventListener(`pointercancel`,S),e.addEventListener(`wheel`,C,{passive:!1}),{update(){let e=a;return a=d(a,i,c),Math.abs(a.azimuth-e.azimuth)>1e-5||Math.abs(a.polar-e.polar)>1e-5||Math.abs(a.distance-e.distance)>1e-4},pose(){return{position:l(a,n),target:{...n}}},dispose(){e.removeEventListener(`pointerdown`,b),e.removeEventListener(`pointermove`,x),e.removeEventListener(`pointerup`,S),e.removeEventListener(`pointercancel`,S),e.removeEventListener(`wheel`,C)}}}var g=(e,t)=>({x:e.x-t.x,y:e.y-t.y,z:e.z-t.z}),_=(e,t)=>e.x*t.x+e.y*t.y+e.z*t.z,v=(e,t)=>({x:e.y*t.z-e.z*t.y,y:e.z*t.x-e.x*t.z,z:e.x*t.y-e.y*t.x});function y(e){let t=Math.hypot(e.x,e.y,e.z);return t===0||!Number.isFinite(t)?{...e}:{x:e.x/t,y:e.y/t,z:e.z/t}}function b(e,t,n,r){let i=1/Math.tan(Math.max(.01,e)/2),a=Math.max(.01,t),o=n-r,s=new Float32Array(16);return s[0]=i/a,s[5]=i,s[10]=(r+n)/o,s[11]=-1,s[14]=2*r*n/o,s}function x(e,t,n={x:0,y:1,z:0}){let r=y(g(e,t)),i=y(v(n,r));i.x===0&&i.y===0&&i.z===0&&(i=y(v({x:0,y:0,z:1},r)));let a=v(r,i),o=new Float32Array(16);return o[0]=i.x,o[1]=a.x,o[2]=r.x,o[3]=0,o[4]=i.y,o[5]=a.y,o[6]=r.y,o[7]=0,o[8]=i.z,o[9]=a.z,o[10]=r.z,o[11]=0,o[12]=-_(i,e),o[13]=-_(a,e),o[14]=-_(r,e),o[15]=1,o}function S(e,t,n,r,i,a){let o=y(g(t,e)),s=y(v(o,{x:0,y:1,z:0})),c=v(s,o),l=Math.tan(Math.max(.01,i)/2),u=y({x:o.x+s.x*n*l*a+c.x*r*l,y:o.y+s.y*n*l*a+c.y*r*l,z:o.z+s.z*n*l*a+c.z*r*l});return{origin:{...e},direction:u}}function C(e){return{min:{x:e.x,y:e.y,z:e.z},max:{x:e.x+Math.max(e.width,.001),y:e.y+Math.max(e.height,.001),z:e.z+Math.max(e.depth,.001)}}}function w(e,t){let{min:n,max:r}=C(t),i=-1/0,a=1/0;for(let t of[`x`,`y`,`z`]){let o=e.origin[t],s=e.direction[t];if(Math.abs(s)<1e-9){if(o<n[t]||o>r[t])return null;continue}let c=(n[t]-o)/s,l=(r[t]-o)/s;if(c>l&&([c,l]=[l,c]),i=Math.max(i,c),a=Math.min(a,l),i>a)return null}return a<0?null:i>=0?i:a}function ee(e,t){let n=null,r=1/0;for(let i=0;i<t.length;i++){let a=w(e,t[i]);a!==null&&a<r&&(r=a,n=i)}return n}var T=2,E=90,D=1.4;function O(e){return n(e.roots,e.width,e.height).map(t=>k(t,e))}function k(e,t){let{node:n,rect:r}=e,i=Math.max(1,r.w*r.h),a=(e.children??[]).map(e=>k(e,t)).sort((e,t)=>t.area-e.area||e.path.localeCompare(t.path));if(n.kind===`file`&&n.fileIndex!==void 0){let e=t.files[n.fileIndex];return{path:n.path,kind:`file`,x:r.x,z:r.y,width:r.w,depth:r.h,height:T+(e?.risk??0)*E,color:t.colorFor(n.fileIndex),area:i,children:[]}}let o=a.reduce((e,t)=>Math.max(e,t.height),0);return{path:n.path,kind:`folder`,x:r.x,z:r.y,width:r.w,depth:r.h,height:o>0?Math.max(D*2,o):Math.max(6,Math.log2(n.fileCount+1)*4),color:a[0]?.color??t.fallbackColor,area:i,children:a}}function te(e){let t=1/0,n=1/0,r=-1/0,i=-1/0,a=0,o=e=>{t=Math.min(t,e.x),n=Math.min(n,e.z),r=Math.max(r,e.x+e.width),i=Math.max(i,e.z+e.depth),a=Math.max(a,e.height);for(let t of e.children)o(t)};for(let t of e)o(t);if(!Number.isFinite(t))return{cx:0,cz:0,radius:1,maxHeight:0};let s=Math.max(1,r-t),c=Math.max(1,i-n);return{cx:(t+r)/2,cz:(n+i)/2,radius:Math.hypot(s,c,a)/2,maxHeight:a}}var A=1200,j=22;function ne(e,t){let n=[],r=Math.max(1,t.budget??A),i=Math.max(0,t.minPixels??j),a=Math.tan(Math.max(.01,t.fov)/2),o=Math.max(1,t.viewportHeight),s=e=>{if(!(e.kind===`folder`&&e.children.length>0)){n.push(M(e,!1,e.height));return}let c=Math.max(1,Math.hypot(e.x+e.width/2-t.camera.x,e.height/2-t.camera.y,e.z+e.depth/2-t.camera.z)),l=Math.sqrt(e.area)*o/(2*c*a),u=r-n.length;if(l<i||u<e.children.length+1)n.push(M(e,!0,0));else{n.push(M(e,!1,D));for(let t of e.children)s(t)}};for(let t of e)s(t);return n}function M(e,t,n){return{path:e.path,kind:e.kind,x:e.x,y:0,z:e.z,width:e.width,depth:e.depth,height:t?e.height:n,color:e.color,collapsed:t}}var N=50,P=4e3,F=22,re=120,I=`#2f6fed`,L=.6,R=8e6,ie=36,z=9,B=`#version 300 es
1
+ import{a as e,i as t,n,r,t as i}from"./index-C9-EUgd6.js";var a=e(t(),1),o={minDistance:60,maxDistance:1600,minPolar:.12,maxPolar:Math.PI/2.05},s={azimuth:-.6018,polar:.9813,distance:467.3};function c(e,t,n,r=1.08){let i=Math.max(1,e),a=Math.min(Math.max(t,.2),Math.PI-.2),o=Math.max(.2,n),s=i/Math.sin(a/2),c=2*Math.atan(Math.tan(a/2)*o),l=i/Math.sin(Math.min(c,Math.PI-.2)/2);return Math.max(s,l)*r}function l(e,t){let n=Math.sin(e.polar)*e.distance;return{x:t.x+n*Math.sin(e.azimuth),y:t.y+Math.cos(e.polar)*e.distance,z:t.z+n*Math.cos(e.azimuth)}}function u(e,t=o){return{azimuth:e.azimuth,polar:Math.min(Math.max(e.polar,t.minPolar),t.maxPolar),distance:Math.min(Math.max(e.distance,t.minDistance),t.maxDistance)}}function d(e,t,n){let r=Math.min(Math.max(n,0),1);return{azimuth:e.azimuth+(t.azimuth-e.azimuth)*r,polar:e.polar+(t.polar-e.polar)*r,distance:e.distance+(t.distance-e.distance)*r}}var f=.005,p=5,m=.0015;function h(e,t={}){let n=t.target??{x:0,y:0,z:0},r=t.limits??o,i={...t.start??s},a={...i},c=t.damping??.18,h=new Map,g=0,_=null,v=0,y=()=>{let[e,t]=[...h.values()];return!e||!t?0:Math.hypot(e.x-t.x,e.y-t.y)},b=t=>{if(t.pointerType!==`mouse`||t.button===0){h.set(t.pointerId,{x:t.clientX,y:t.clientY});try{e.setPointerCapture(t.pointerId)}catch{}h.size===1?(_={x:t.clientX,y:t.clientY},v=0):(_=null,g=y())}},x=e=>{let n=h.get(e.pointerId);if(!n)return;let a=e.clientX-n.x,o=e.clientY-n.y;if(h.set(e.pointerId,{x:e.clientX,y:e.clientY}),h.size===1)i.azimuth-=a*f,i.polar=u({...i,polar:i.polar-o*f},r).polar,v+=Math.abs(a)+Math.abs(o),t.onChange?.();else if(h.size===2){let e=y();g>0&&e>0&&(i.distance=u({...i,distance:i.distance*(g/e)},r).distance),g=e,t.onChange?.()}},S=e=>{h.delete(e.pointerId),h.size===0?(_&&v<=p&&t.onTap?.(e.clientX,e.clientY),_=null,g=0):g=h.size===2?y():0},C=e=>{e.preventDefault();let n=e.deltaMode===1?e.deltaY*16:e.deltaMode===2?e.deltaY*400:e.deltaY;i.distance=u({...i,distance:i.distance*Math.exp(n*m)},r).distance,t.onChange?.()};return e.addEventListener(`pointerdown`,b),e.addEventListener(`pointermove`,x),e.addEventListener(`pointerup`,S),e.addEventListener(`pointercancel`,S),e.addEventListener(`wheel`,C,{passive:!1}),{update(){let e=a;return a=d(a,i,c),Math.abs(a.azimuth-e.azimuth)>1e-5||Math.abs(a.polar-e.polar)>1e-5||Math.abs(a.distance-e.distance)>1e-4},pose(){return{position:l(a,n),target:{...n}}},dispose(){e.removeEventListener(`pointerdown`,b),e.removeEventListener(`pointermove`,x),e.removeEventListener(`pointerup`,S),e.removeEventListener(`pointercancel`,S),e.removeEventListener(`wheel`,C)}}}var g=(e,t)=>({x:e.x-t.x,y:e.y-t.y,z:e.z-t.z}),_=(e,t)=>e.x*t.x+e.y*t.y+e.z*t.z,v=(e,t)=>({x:e.y*t.z-e.z*t.y,y:e.z*t.x-e.x*t.z,z:e.x*t.y-e.y*t.x});function y(e){let t=Math.hypot(e.x,e.y,e.z);return t===0||!Number.isFinite(t)?{...e}:{x:e.x/t,y:e.y/t,z:e.z/t}}function b(e,t,n,r){let i=1/Math.tan(Math.max(.01,e)/2),a=Math.max(.01,t),o=n-r,s=new Float32Array(16);return s[0]=i/a,s[5]=i,s[10]=(r+n)/o,s[11]=-1,s[14]=2*r*n/o,s}function x(e,t,n={x:0,y:1,z:0}){let r=y(g(e,t)),i=y(v(n,r));i.x===0&&i.y===0&&i.z===0&&(i=y(v({x:0,y:0,z:1},r)));let a=v(r,i),o=new Float32Array(16);return o[0]=i.x,o[1]=a.x,o[2]=r.x,o[3]=0,o[4]=i.y,o[5]=a.y,o[6]=r.y,o[7]=0,o[8]=i.z,o[9]=a.z,o[10]=r.z,o[11]=0,o[12]=-_(i,e),o[13]=-_(a,e),o[14]=-_(r,e),o[15]=1,o}function S(e,t,n,r,i,a){let o=y(g(t,e)),s=y(v(o,{x:0,y:1,z:0})),c=v(s,o),l=Math.tan(Math.max(.01,i)/2),u=y({x:o.x+s.x*n*l*a+c.x*r*l,y:o.y+s.y*n*l*a+c.y*r*l,z:o.z+s.z*n*l*a+c.z*r*l});return{origin:{...e},direction:u}}function C(e){return{min:{x:e.x,y:e.y,z:e.z},max:{x:e.x+Math.max(e.width,.001),y:e.y+Math.max(e.height,.001),z:e.z+Math.max(e.depth,.001)}}}function w(e,t){let{min:n,max:r}=C(t),i=-1/0,a=1/0;for(let t of[`x`,`y`,`z`]){let o=e.origin[t],s=e.direction[t];if(Math.abs(s)<1e-9){if(o<n[t]||o>r[t])return null;continue}let c=(n[t]-o)/s,l=(r[t]-o)/s;if(c>l&&([c,l]=[l,c]),i=Math.max(i,c),a=Math.min(a,l),i>a)return null}return a<0?null:i>=0?i:a}function ee(e,t){let n=null,r=1/0;for(let i=0;i<t.length;i++){let a=w(e,t[i]);a!==null&&a<r&&(r=a,n=i)}return n}var T=2,E=90,D=1.4;function O(e){return n(e.roots,e.width,e.height).map(t=>k(t,e))}function k(e,t){let{node:n,rect:r}=e,i=Math.max(1,r.w*r.h),a=(e.children??[]).map(e=>k(e,t)).sort((e,t)=>t.area-e.area||e.path.localeCompare(t.path));if(n.kind===`file`&&n.fileIndex!==void 0){let e=t.files[n.fileIndex];return{path:n.path,kind:`file`,x:r.x,z:r.y,width:r.w,depth:r.h,height:T+(e?.risk??0)*E,color:t.colorFor(n.fileIndex),area:i,children:[]}}let o=a.reduce((e,t)=>Math.max(e,t.height),0);return{path:n.path,kind:`folder`,x:r.x,z:r.y,width:r.w,depth:r.h,height:o>0?Math.max(D*2,o):Math.max(6,Math.log2(n.fileCount+1)*4),color:a[0]?.color??t.fallbackColor,area:i,children:a}}function te(e){let t=1/0,n=1/0,r=-1/0,i=-1/0,a=0,o=e=>{t=Math.min(t,e.x),n=Math.min(n,e.z),r=Math.max(r,e.x+e.width),i=Math.max(i,e.z+e.depth),a=Math.max(a,e.height);for(let t of e.children)o(t)};for(let t of e)o(t);if(!Number.isFinite(t))return{cx:0,cz:0,radius:1,maxHeight:0};let s=Math.max(1,r-t),c=Math.max(1,i-n);return{cx:(t+r)/2,cz:(n+i)/2,radius:Math.hypot(s,c,a)/2,maxHeight:a}}var A=1200,j=22;function ne(e,t){let n=[],r=Math.max(1,t.budget??A),i=Math.max(0,t.minPixels??j),a=Math.tan(Math.max(.01,t.fov)/2),o=Math.max(1,t.viewportHeight),s=e=>{if(!(e.kind===`folder`&&e.children.length>0)){n.push(M(e,!1,e.height));return}let c=Math.max(1,Math.hypot(e.x+e.width/2-t.camera.x,e.height/2-t.camera.y,e.z+e.depth/2-t.camera.z)),l=Math.sqrt(e.area)*o/(2*c*a),u=r-n.length;if(l<i||u<e.children.length+1)n.push(M(e,!0,0));else{n.push(M(e,!1,D));for(let t of e.children)s(t)}};for(let t of e)s(t);return n}function M(e,t,n){return{path:e.path,kind:e.kind,x:e.x,y:0,z:e.z,width:e.width,depth:e.depth,height:t?e.height:n,color:e.color,collapsed:t}}var N=50,P=4e3,F=22,re=120,I=`#2f6fed`,L=.6,R=8e6,ie=36,z=9,B=`#version 300 es
2
2
  precision highp float;
3
3
 
4
4
  layout(location = 0) in vec3 aOffset;
@@ -1,6 +1,6 @@
1
1
  (function(){var __create=Object.create,__defProp$1=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__commonJSMin=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),__copyProps=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=__getOwnPropNames(t),a=0,o=i.length,s;a<o;a++)s=i[a],!__hasOwnProp.call(e,s)&&s!==n&&__defProp$1(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=__getOwnPropDesc(t,s))||r.enumerable});return e},__toESM=(e,t,n)=>(n=e==null?{}:__create(__getProtoOf(e)),__copyProps(t||!e||!e.__esModule||!__hasOwnProp.call(e,`default`)?__defProp$1(n,`default`,{value:e,enumerable:!0}):n,e)),require___vite_browser_external=/* @__PURE__ */ __commonJSMin(((e,t)=>{t.exports={}})),require_tree_sitter=/* @__PURE__ */ __commonJSMin(((exports,module)=>{var Module=Module===void 0?{}:Module,TreeSitter=function(){var initPromise,document=typeof window==`object`?{currentScript:window.document.currentScript}:null;class Parser{constructor(){this.initialize()}initialize(){throw Error("cannot construct a Parser before calling `init()`")}static init(moduleOptions){return initPromise||=(Module=Object.assign({},Module,moduleOptions),new Promise((resolveInitPromise=>{var moduleOverrides=Object.assign({},Module),arguments_=[],thisProgram=`./this.program`,quit_=(e,t)=>{throw t},ENVIRONMENT_IS_WEB=typeof window==`object`,ENVIRONMENT_IS_WORKER=typeof importScripts==`function`,ENVIRONMENT_IS_NODE=typeof process==`object`&&typeof process.versions==`object`&&typeof process.versions.node==`string`,scriptDirectory=``,read_,readAsync,readBinary,setWindowTitle;function locateFile(e){return Module.locateFile?Module.locateFile(e,scriptDirectory):scriptDirectory+e}if(ENVIRONMENT_IS_NODE){var fs=require___vite_browser_external(),nodePath=require___vite_browser_external();scriptDirectory=ENVIRONMENT_IS_WORKER?nodePath.dirname(scriptDirectory)+`/`:__dirname+`/`,read_=(e,t)=>(e=isFileURI(e)?new URL(e):nodePath.normalize(e),fs.readFileSync(e,t?void 0:`utf8`)),readBinary=e=>{var t=read_(e,!0);return t.buffer||(t=new Uint8Array(t)),t},readAsync=(e,t,n,r=!0)=>{e=isFileURI(e)?new URL(e):nodePath.normalize(e),fs.readFile(e,r?void 0:`utf8`,((e,i)=>{e?n(e):t(r?i.buffer:i)}))},!Module.thisProgram&&process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,`/`)),arguments_=process.argv.slice(2),module!==void 0&&(module.exports=Module),quit_=(e,t)=>{throw process.exitCode=e,t},Module.inspect=()=>`[Emscripten Module object]`}else(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document!==void 0&&document.currentScript&&(scriptDirectory=document.currentScript.src),scriptDirectory=scriptDirectory.indexOf(`blob:`)===0?``:scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,``).lastIndexOf(`/`)+1),read_=e=>{var t=new XMLHttpRequest;return t.open(`GET`,e,!1),t.send(null),t.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=e=>{var t=new XMLHttpRequest;return t.open(`GET`,e,!1),t.responseType=`arraybuffer`,t.send(null),new Uint8Array(t.response)}),readAsync=(e,t,n)=>{var r=new XMLHttpRequest;r.open(`GET`,e,!0),r.responseType=`arraybuffer`,r.onload=()=>{r.status==200||r.status==0&&r.response?t(r.response):n()},r.onerror=n,r.send(null)},setWindowTitle=e=>document.title=e);var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);Object.assign(Module,moduleOverrides),moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var dynamicLibraries=Module.dynamicLibraries||[],wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime=Module.noExitRuntime||!0,wasmMemory;typeof WebAssembly!=`object`&&abort(`no native wasm support detected`);var ABORT=!1,EXITSTATUS,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function assert(e,t){e||abort(t)}function updateMemoryViews(){var e=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(e),Module.HEAP16=HEAP16=new Int16Array(e),Module.HEAP32=HEAP32=new Int32Array(e),Module.HEAPU8=HEAPU8=new Uint8Array(e),Module.HEAPU16=new Uint16Array(e),Module.HEAPU32=HEAPU32=new Uint32Array(e),Module.HEAPF32=HEAPF32=new Float32Array(e),Module.HEAPF64=HEAPF64=new Float64Array(e)}var INITIAL_MEMORY=Module.INITIAL_MEMORY||33554432;assert(INITIAL_MEMORY>=65536,`INITIAL_MEMORY should be larger than STACK_SIZE, was `+INITIAL_MEMORY+`! (STACK_SIZE=65536)`),wasmMemory=Module.wasmMemory?Module.wasmMemory:new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768}),updateMemoryViews(),INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable=new WebAssembly.Table({initial:25,element:`anyfunc`}),__ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],__RELOC_FUNCS__=[],runtimeInitialized=!1,runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module.preRun)for(typeof Module.preRun==`function`&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__RELOC_FUNCS__),callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module.postRun)for(typeof Module.postRun==`function`&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}var runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}function abort(e){throw Module.onAbort&&Module.onAbort(e),err(e=`Aborted(`+e+`)`),ABORT=!0,EXITSTATUS=1,e+=`. Build with -sASSERTIONS for more info.`,new WebAssembly.RuntimeError(e)}var dataURIPrefix=`data:application/octet-stream;base64,`,wasmBinaryFile,tempDouble,tempI64;function isDataURI(e){return e.startsWith(dataURIPrefix)}function isFileURI(e){return e.startsWith(`file://`)}function getBinary(e){try{if(e==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(e);throw`both async and sync fetching of the wasm failed`}catch(e){abort(e)}}function getBinaryPromise(e){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==`function`&&!isFileURI(e))return fetch(e,{credentials:`same-origin`}).then((t=>{if(!t.ok)throw`failed to load wasm binary file at '`+e+`'`;return t.arrayBuffer()})).catch((()=>getBinary(e)));if(readAsync)return new Promise(((t,n)=>{readAsync(e,(e=>t(new Uint8Array(e))),n)}))}return Promise.resolve().then((()=>getBinary(e)))}function instantiateArrayBuffer(e,t,n){return getBinaryPromise(e).then((e=>WebAssembly.instantiate(e,t))).then((e=>e)).then(n,(e=>{err(`failed to asynchronously prepare wasm: `+e),abort(e)}))}function instantiateAsync(e,t,n,r){return e||typeof WebAssembly.instantiateStreaming!=`function`||isDataURI(t)||isFileURI(t)||ENVIRONMENT_IS_NODE||typeof fetch!=`function`?instantiateArrayBuffer(t,n,r):fetch(t,{credentials:`same-origin`}).then((e=>WebAssembly.instantiateStreaming(e,n).then(r,(function(e){return err(`wasm streaming compile failed: `+e),err(`falling back to ArrayBuffer instantiation`),instantiateArrayBuffer(t,n,r)}))))}function createWasm(){var e={env:wasmImports,wasi_snapshot_preview1:wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)};function t(e,t){var n=e.exports;n=relocateExports(n,1024);var r=getDylinkMetadata(t);return r.neededDynlibs&&(dynamicLibraries=r.neededDynlibs.concat(dynamicLibraries)),mergeLibSymbols(n,`main`),Module.asm=n,addOnInit(Module.asm.__wasm_call_ctors),__RELOC_FUNCS__.push(Module.asm.__wasm_apply_data_relocs),removeRunDependency(`wasm-instantiate`),n}if(addRunDependency(`wasm-instantiate`),Module.instantiateWasm)try{return Module.instantiateWasm(e,t)}catch(e){return err(`Module.instantiateWasm callback failed with error: `+e),!1}return instantiateAsync(wasmBinary,wasmBinaryFile,e,(function(e){t(e.instance,e.module)})),{}}wasmBinaryFile=`tree-sitter.wasm`,isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));var ASM_CONSTS={};function ExitStatus(e){this.name=`ExitStatus`,this.message=`Program terminated with exit(`+e+`)`,this.status=e}var GOT={},currentModuleWeakSymbols=/* @__PURE__ */ new Set([]),GOTHandler={get:function(e,t){var n=GOT[t];return n||=GOT[t]=new WebAssembly.Global({value:`i32`,mutable:!0}),currentModuleWeakSymbols.has(t)||(n.required=!0),n}};function callRuntimeCallbacks(e){for(;e.length>0;)e.shift()(Module)}var UTF8Decoder=typeof TextDecoder<`u`?new TextDecoder(`utf8`):void 0;function UTF8ArrayToString(e,t,n){for(var r=t+n,i=t;e[i]&&!(i>=r);)++i;if(i-t>16&&e.buffer&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,i));for(var a=``;t<i;){var o=e[t++];if(128&o){var s=63&e[t++];if((224&o)!=192){var c=63&e[t++];if((o=(240&o)==224?(15&o)<<12|s<<6|c:(7&o)<<18|s<<12|c<<6|63&e[t++])<65536)a+=String.fromCharCode(o);else{var l=o-65536;a+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else a+=String.fromCharCode((31&o)<<6|s)}else a+=String.fromCharCode(o)}return a}function getDylinkMetadata(e){var t=0,n=0;function r(){for(var n=0,r=1;;){var i=e[t++];if(n+=(127&i)*r,r*=128,!(128&i))break}return n}function i(){var n=r();return UTF8ArrayToString(e,(t+=n)-n,n)}function a(e,t){if(e)throw Error(t)}var o=`dylink.0`;if(e instanceof WebAssembly.Module){var s=WebAssembly.Module.customSections(e,o);s.length===0&&(o=`dylink`,s=WebAssembly.Module.customSections(e,o)),a(s.length===0,`need dylink section`),n=(e=new Uint8Array(s[0])).length}else{a(new Uint32Array(new Uint8Array(e.subarray(0,24)).buffer)[0]!=1836278016,`need to see wasm magic number`),a(e[8]!==0,`need the dylink section to be first`),t=9;var c=r();n=t+c,o=i()}var l={neededDynlibs:[],tlsExports:/* @__PURE__ */ new Set,weakImports:/* @__PURE__ */ new Set};if(o==`dylink`){l.memorySize=r(),l.memoryAlign=r(),l.tableSize=r(),l.tableAlign=r();for(var u=r(),d=0;d<u;++d){var f=i();l.neededDynlibs.push(f)}}else for(a(o!==`dylink.0`);t<n;){var p=e[t++],m=r();if(p===1)l.memorySize=r(),l.memoryAlign=r(),l.tableSize=r(),l.tableAlign=r();else if(p===2)for(u=r(),d=0;d<u;++d)f=i(),l.neededDynlibs.push(f);else if(p===3)for(var h=r();h--;){var g=i();256&r()&&l.tlsExports.add(g)}else if(p===4)for(h=r();h--;)i(),g=i(),(3&r())==1&&l.weakImports.add(g);else t+=m}return l}function getValue(e,t=`i8`){switch(t.endsWith(`*`)&&(t=`*`),t){case`i1`:case`i8`:return HEAP8[e|0];case`i16`:return HEAP16[e>>1];case`i32`:case`i64`:return HEAP32[e>>2];case`float`:return HEAPF32[e>>2];case`double`:return HEAPF64[e>>3];case`*`:return HEAPU32[e>>2];default:abort(`invalid type for getValue: `+t)}}function newDSO(e,t,n){var r={refcount:1/0,name:e,exports:n,global:!0};return LDSO.loadedLibsByName[e]=r,t!=null&&(LDSO.loadedLibsByHandle[t]=r),r}var LDSO={loadedLibsByName:{},loadedLibsByHandle:{},init:()=>newDSO(`__main__`,0,wasmImports)},___heap_base=78144;function zeroMemory(e,t){return HEAPU8.fill(0,e,e+t),e}function getMemory(e){if(runtimeInitialized)return zeroMemory(_malloc(e),e);var t=___heap_base,n=t+e+15&-16;return ___heap_base=n,GOT.__heap_base.value=n,t}function isInternalSym(e){return[`__cpp_exception`,`__c_longjmp`,`__wasm_apply_data_relocs`,`__dso_handle`,`__tls_size`,`__tls_align`,`__set_stack_limits`,`_emscripten_tls_init`,`__wasm_init_tls`,`__wasm_call_ctors`,`__start_em_asm`,`__stop_em_asm`].includes(e)}function uleb128Encode(e,t){e<128?t.push(e):t.push(e%128|128,e>>7)}function sigToWasmTypes(e){for(var t={i:`i32`,j:`i32`,f:`f32`,d:`f64`,p:`i32`},n={parameters:[],results:e[0]==`v`?[]:[t[e[0]]]},r=1;r<e.length;++r)n.parameters.push(t[e[r]]),e[r]===`j`&&n.parameters.push(`i32`);return n}function generateFuncType(e,t){var n=e.slice(0,1),r=e.slice(1),i={i:127,p:127,j:126,f:125,d:124};t.push(96),uleb128Encode(r.length,t);for(var a=0;a<r.length;++a)t.push(i[r[a]]);n==`v`?t.push(0):t.push(1,i[n])}function convertJsFunctionToWasm(e,t){if(typeof WebAssembly.Function==`function`)return new WebAssembly.Function(sigToWasmTypes(t),e);var n=[1];generateFuncType(t,n);var r=[0,97,115,109,1,0,0,0,1];uleb128Encode(n.length,r),r.push.apply(r,n),r.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var i=new WebAssembly.Module(new Uint8Array(r));return new WebAssembly.Instance(i,{e:{f:e}}).exports.f}var wasmTableMirror=[];function getWasmTableEntry(e){var t=wasmTableMirror[e];return t||(e>=wasmTableMirror.length&&(wasmTableMirror.length=e+1),wasmTableMirror[e]=t=wasmTable.get(e)),t}function updateTableMap(e,t){if(functionsInTableMap)for(var n=e;n<e+t;n++){var r=getWasmTableEntry(n);r&&functionsInTableMap.set(r,n)}}var functionsInTableMap=void 0;function getFunctionAddress(e){return functionsInTableMap||(functionsInTableMap=/* @__PURE__ */ new WeakMap,updateTableMap(0,wasmTable.length)),functionsInTableMap.get(e)||0}var freeTableIndexes=[];function getEmptyTableSlot(){if(freeTableIndexes.length)return freeTableIndexes.pop();try{wasmTable.grow(1)}catch(e){throw e instanceof RangeError?`Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.`:e}return wasmTable.length-1}function setWasmTableEntry(e,t){wasmTable.set(e,t),wasmTableMirror[e]=wasmTable.get(e)}function addFunction(e,t){var n=getFunctionAddress(e);if(n)return n;var r=getEmptyTableSlot();try{setWasmTableEntry(r,e)}catch(n){if(!(n instanceof TypeError))throw n;setWasmTableEntry(r,convertJsFunctionToWasm(e,t))}return functionsInTableMap.set(e,r),r}function updateGOT(e,t){for(var n in e)if(!isInternalSym(n)){var r=e[n];n.startsWith(`orig$`)&&(n=n.split(`$`)[1],t=!0),GOT[n]||(GOT[n]=new WebAssembly.Global({value:`i32`,mutable:!0})),(t||GOT[n].value==0)&&(typeof r==`function`?GOT[n].value=addFunction(r):typeof r==`number`?GOT[n].value=r:err("unhandled export type for `"+n+"`: "+typeof r))}}function relocateExports(e,t,n){var r={};for(var i in e){var a=e[i];typeof a==`object`&&(a=a.value),typeof a==`number`&&(a+=t),r[i]=a}return updateGOT(r,n),r}function isSymbolDefined(e){var t=wasmImports[e];return!(!t||t.stub)}function resolveGlobalSymbol(e,t=!1){var n;return t&&`orig$`+e in wasmImports&&(e=`orig$`+e),isSymbolDefined(e)?n=wasmImports[e]:e.startsWith(`invoke_`)&&(n=wasmImports[e]=createInvokeFunction(e.split(`_`)[1])),{sym:n,name:e}}function alignMemory(e,t){return Math.ceil(e/t)*t}function dynCallLegacy(e,t,n){var r=Module[`dynCall_`+e];return n&&n.length?r.apply(null,[t].concat(n)):r.call(null,t)}function dynCall(e,t,n){return e.includes(`j`)?dynCallLegacy(e,t,n):getWasmTableEntry(t).apply(null,n)}function createInvokeFunction(e){return function(){var t=stackSave();try{return dynCall(e,arguments[0],Array.prototype.slice.call(arguments,1))}catch(e){if(stackRestore(t),e!==e+0)throw e;_setThrew(1,0)}}}function UTF8ToString(e,t){return e?UTF8ArrayToString(HEAPU8,e,t):``}function loadWebAssemblyModule(binary,flags,localScope,handle){var metadata=getDylinkMetadata(binary);function loadModule(){var firstLoad=!handle||!HEAP8[handle+8|0];if(firstLoad){var memAlign=2**metadata.memoryAlign;memAlign=Math.max(memAlign,16);var memoryBase=metadata.memorySize?alignMemory(getMemory(metadata.memorySize+memAlign),memAlign):0,tableBase=metadata.tableSize?wasmTable.length:0;handle&&(HEAP8[handle+8|0]=1,HEAPU32[handle+12>>2]=memoryBase,HEAP32[handle+16>>2]=metadata.memorySize,HEAPU32[handle+20>>2]=tableBase,HEAP32[handle+24>>2]=metadata.tableSize)}else memoryBase=HEAPU32[handle+12>>2],tableBase=HEAPU32[handle+20>>2];var tableGrowthNeeded=tableBase+metadata.tableSize-wasmTable.length,moduleExports;function resolveSymbol(e){var t=resolveGlobalSymbol(e).sym;return!t&&localScope&&(t=localScope[e]),t||=moduleExports[e],t}tableGrowthNeeded>0&&wasmTable.grow(tableGrowthNeeded);var proxyHandler={get:function(e,t){switch(t){case`__memory_base`:return memoryBase;case`__table_base`:return tableBase}if(t in wasmImports&&!wasmImports[t].stub)return wasmImports[t];var n;return t in e||(e[t]=function(){return n||=resolveSymbol(t),n.apply(null,arguments)}),e[t]}},proxy=new Proxy({},proxyHandler),info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),env:proxy,wasi_snapshot_preview1:proxy};function postInstantiation(instance){function addEmAsm(addr,body){for(var args=[],arity=0;arity<16&&body.indexOf(`$`+arity)!=-1;arity++)args.push(`$`+arity);args=args.join(`,`);var func=`(`+args+` ) => { `+body+`};`;ASM_CONSTS[start]=eval(func)}if(updateTableMap(tableBase,metadata.tableSize),moduleExports=relocateExports(instance.exports,memoryBase),flags.allowUndefined||reportUndefinedSymbols(),`__start_em_asm`in moduleExports)for(var start=moduleExports.__start_em_asm,stop=moduleExports.__stop_em_asm;start<stop;){var jsString=UTF8ToString(start);addEmAsm(start,jsString),start=HEAPU8.indexOf(0,start)+1}var applyRelocs=moduleExports.__wasm_apply_data_relocs;applyRelocs&&(runtimeInitialized?applyRelocs():__RELOC_FUNCS__.push(applyRelocs));var init=moduleExports.__wasm_call_ctors;return init&&(runtimeInitialized?init():__ATINIT__.push(init)),moduleExports}if(flags.loadAsync){if(binary instanceof WebAssembly.Module){var instance=new WebAssembly.Instance(binary,info);return Promise.resolve(postInstantiation(instance))}return WebAssembly.instantiate(binary,info).then((e=>postInstantiation(e.instance)))}var module=binary instanceof WebAssembly.Module?binary:new WebAssembly.Module(binary),instance=new WebAssembly.Instance(module,info);return postInstantiation(instance)}return currentModuleWeakSymbols=metadata.weakImports,flags.loadAsync?metadata.neededDynlibs.reduce(((e,t)=>e.then((()=>loadDynamicLibrary(t,flags)))),Promise.resolve()).then(loadModule):(metadata.neededDynlibs.forEach((e=>loadDynamicLibrary(e,flags,localScope))),loadModule())}function mergeLibSymbols(e,t){for(var n in e){if(!e.hasOwnProperty(n))continue;let t=t=>{isSymbolDefined(t)||(wasmImports[t]=e[n])};t(n);let r=`__main_argc_argv`;n==`main`&&t(r),n==r&&t(`main`),n.startsWith(`dynCall_`)&&!Module.hasOwnProperty(n)&&(Module[n]=e[n])}}function asyncLoad(e,t,n,r){var i=r?``:getUniqueRunDependency(`al `+e);readAsync(e,(n=>{assert(n,`Loading data file "`+e+`" failed (no arrayBuffer).`),t(new Uint8Array(n)),i&&removeRunDependency(i)}),(t=>{if(!n)throw`Loading data file "`+e+`" failed.`;n()})),i&&addRunDependency(i)}function loadDynamicLibrary(e,t={global:!0,nodelete:!0},n,r){var i=LDSO.loadedLibsByName[e];if(i)return t.global&&!i.global&&(i.global=!0,i.exports!==`loading`&&mergeLibSymbols(i.exports,e)),t.nodelete&&i.refcount!==1/0&&(i.refcount=1/0),i.refcount++,r&&(LDSO.loadedLibsByHandle[r]=i),!t.loadAsync||Promise.resolve(!0);function a(){if(t.fs&&t.fs.findObject(e)){var n=t.fs.readFile(e,{encoding:`binary`});return n instanceof Uint8Array||(n=new Uint8Array(n)),t.loadAsync?Promise.resolve(n):n}var r=locateFile(e);if(t.loadAsync)return new Promise((function(e,t){asyncLoad(r,(t=>e(t)),t)}));if(!readBinary)throw Error(r+`: file not found, and synchronous loading of external files is not available`);return readBinary(r)}function o(){if(typeof preloadedWasm<`u`&&preloadedWasm[e]){var i=preloadedWasm[e];return t.loadAsync?Promise.resolve(i):i}return t.loadAsync?a().then((e=>loadWebAssemblyModule(e,t,n,r))):loadWebAssemblyModule(a(),t,n,r)}function s(t){i.global?mergeLibSymbols(t,e):n&&Object.assign(n,t),i.exports=t}return(i=newDSO(e,r,`loading`)).refcount=t.nodelete?1/0:1,i.global=t.global,t.loadAsync?o().then((e=>(s(e),!0))):(s(o()),!0)}function reportUndefinedSymbols(){for(var e in GOT)if(GOT[e].value==0){var t=resolveGlobalSymbol(e,!0).sym;if(!t&&!GOT[e].required)continue;if(typeof t==`function`)GOT[e].value=addFunction(t,t.sig);else{if(typeof t!=`number`)throw Error("bad export type for `"+e+"`: "+typeof t);GOT[e].value=t}}}function loadDylibs(){dynamicLibraries.length?(addRunDependency(`loadDylibs`),dynamicLibraries.reduce(((e,t)=>e.then((()=>loadDynamicLibrary(t,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0})))),Promise.resolve()).then((()=>{reportUndefinedSymbols(),removeRunDependency(`loadDylibs`)}))):reportUndefinedSymbols()}function setValue(e,t,n=`i8`){switch(n.endsWith(`*`)&&(n=`*`),n){case`i1`:case`i8`:HEAP8[e|0]=t;break;case`i16`:HEAP16[e>>1]=t;break;case`i32`:HEAP32[e>>2]=t;break;case`i64`:tempI64=[t>>>0,(tempDouble=t,+Math.abs(tempDouble)>=1?tempDouble>0?Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case`float`:HEAPF32[e>>2]=t;break;case`double`:HEAPF64[e>>3]=t;break;case`*`:HEAPU32[e>>2]=t;break;default:abort(`invalid type for setValue: `+n)}}var ___memory_base=new WebAssembly.Global({value:`i32`,mutable:!1},1024),___stack_pointer=new WebAssembly.Global({value:`i32`,mutable:!0},78144),___table_base=new WebAssembly.Global({value:`i32`,mutable:!1},1),nowIsMonotonic=!0,_emscripten_get_now;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function _abort(){abort(``)}function _emscripten_date_now(){return Date.now()}function _emscripten_memcpy_big(e,t,n){HEAPU8.copyWithin(e,t,t+n)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(e){var t=wasmMemory.buffer;try{return wasmMemory.grow(e-t.byteLength+65535>>>16),updateMemoryViews(),1}catch{}}function _emscripten_resize_heap(e){var t=HEAPU8.length;e>>>=0;var n=getHeapMax();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),emscripten_realloc_buffer(Math.min(n,(a=Math.max(e,i))+((o=65536)-a%o)%o)))return!0}var a,o;return!1}__emscripten_get_now_is_monotonic.sig=`i`,_abort.sig=`v`,_emscripten_date_now.sig=`d`,_emscripten_get_now=ENVIRONMENT_IS_NODE?()=>{var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:()=>performance.now(),_emscripten_get_now.sig=`d`,_emscripten_memcpy_big.sig=`vppp`,_emscripten_resize_heap.sig=`ip`;var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(e,t,n){if(PATH.isAbs(t))return t;var r=e===-100?FS.cwd():SYSCALLS.getStreamFromFD(e).path;if(t.length==0){if(!n)throw new FS.ErrnoError(44);return r}return PATH.join2(r,t)},doStat:function(e,t,n){try{var r=e(t)}catch(e){if(e&&e.node&&PATH.normalize(t)!==PATH.normalize(FS.getPath(e.node)))return-54;throw e}HEAP32[n>>2]=r.dev,HEAP32[n+8>>2]=r.ino,HEAP32[n+12>>2]=r.mode,HEAPU32[n+16>>2]=r.nlink,HEAP32[n+20>>2]=r.uid,HEAP32[n+24>>2]=r.gid,HEAP32[n+28>>2]=r.rdev,tempI64=[r.size>>>0,(tempDouble=r.size,+Math.abs(tempDouble)>=1?tempDouble>0?Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n+40>>2]=tempI64[0],HEAP32[n+44>>2]=tempI64[1],HEAP32[n+48>>2]=4096,HEAP32[n+52>>2]=r.blocks;var i=r.atime.getTime(),a=r.mtime.getTime(),o=r.ctime.getTime();return tempI64=[Math.floor(i/1e3)>>>0,(tempDouble=Math.floor(i/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n+56>>2]=tempI64[0],HEAP32[n+60>>2]=tempI64[1],HEAPU32[n+64>>2]=i%1e3*1e3,tempI64=[Math.floor(a/1e3)>>>0,(tempDouble=Math.floor(a/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n+72>>2]=tempI64[0],HEAP32[n+76>>2]=tempI64[1],HEAPU32[n+80>>2]=a%1e3*1e3,tempI64=[Math.floor(o/1e3)>>>0,(tempDouble=Math.floor(o/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n+88>>2]=tempI64[0],HEAP32[n+92>>2]=tempI64[1],HEAPU32[n+96>>2]=o%1e3*1e3,tempI64=[r.ino>>>0,(tempDouble=r.ino,+Math.abs(tempDouble)>=1?tempDouble>0?Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n+104>>2]=tempI64[0],HEAP32[n+108>>2]=tempI64[1],0},doMsync:function(e,t,n,r,i){if(!FS.isFile(t.node.mode))throw new FS.ErrnoError(43);if(2&r)return 0;var a=HEAPU8.slice(e,e+n);FS.msync(t,a,i,n,r)},varargs:void 0,get:function(){return SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(e){return UTF8ToString(e)},getStreamFromFD:function(e){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(8);return t}};function _fd_close(e){try{var t=SYSCALLS.getStreamFromFD(e);return FS.close(t),0}catch(e){if(typeof FS>`u`||e.name!==`ErrnoError`)throw e;return e.errno}}function convertI32PairToI53Checked(e,t){return t+2097152>>>0<4194305-!!e?(e>>>0)+4294967296*t:NaN}function _fd_seek(e,t,n,r,i){try{var a=convertI32PairToI53Checked(t,n);if(isNaN(a))return 61;var o=SYSCALLS.getStreamFromFD(e);return FS.llseek(o,a,r),tempI64=[o.position>>>0,(tempDouble=o.position,+Math.abs(tempDouble)>=1?tempDouble>0?Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[i>>2]=tempI64[0],HEAP32[i+4>>2]=tempI64[1],o.getdents&&a===0&&r===0&&(o.getdents=null),0}catch(e){if(typeof FS>`u`||e.name!==`ErrnoError`)throw e;return e.errno}}function doWritev(e,t,n,r){for(var i=0,a=0;a<n;a++){var o=HEAPU32[t>>2],s=HEAPU32[t+4>>2];t+=8;var c=FS.write(e,HEAP8,o,s,r);if(c<0)return-1;i+=c,r!==void 0&&(r+=c)}return i}function _fd_write(e,t,n,r){try{var i=doWritev(SYSCALLS.getStreamFromFD(e),t,n);return HEAPU32[r>>2]=i,0}catch(e){if(typeof FS>`u`||e.name!==`ErrnoError`)throw e;return e.errno}}function _tree_sitter_log_callback(e,t){if(currentLogCallback){let n=UTF8ToString(t);currentLogCallback(n,e!==0)}}function _tree_sitter_parse_callback(e,t,n,r,i){let a=currentParseCallback(t,{row:n,column:r});typeof a==`string`?(setValue(i,a.length,`i32`),stringToUTF16(a,e,10240)):setValue(i,0,`i32`)}function _proc_exit(e){EXITSTATUS=e,keepRuntimeAlive()||(Module.onExit&&Module.onExit(e),ABORT=!0),quit_(e,new ExitStatus(e))}function exitJS(e,t){EXITSTATUS=e,_proc_exit(e)}function handleException(e){if(e instanceof ExitStatus||e==`unwind`)return EXITSTATUS;quit_(1,e)}function lengthBytesUTF8(e){for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t}function stringToUTF8Array(e,t,n,r){if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o<e.length;++o){var s=e.charCodeAt(o);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o)),s<=127){if(n>=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|63&s}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|63&s}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|63&s}}return t[n]=0,n-i}function stringToUTF8(e,t,n){return stringToUTF8Array(e,HEAPU8,t,n)}function stringToUTF8OnStack(e){var t=lengthBytesUTF8(e)+1,n=stackAlloc(t);return stringToUTF8(e,n,t),n}function stringToUTF16(e,t,n){if(n===void 0&&(n=2147483647),n<2)return 0;for(var r=t,i=(n-=2)<2*e.length?n/2:e.length,a=0;a<i;++a){var o=e.charCodeAt(a);HEAP16[t>>1]=o,t+=2}return HEAP16[t>>1]=0,t-r}function AsciiToString(e){for(var t=``;;){var n=HEAPU8[e++|0];if(!n)return t;t+=String.fromCharCode(n)}}_fd_close.sig=`ii`,_fd_seek.sig=`iijip`,_fd_write.sig=`iippp`,_proc_exit.sig=`vi`;var wasmImports={__heap_base:___heap_base,__indirect_function_table:wasmTable,__memory_base:___memory_base,__stack_pointer:___stack_pointer,__table_base:___table_base,_emscripten_get_now_is_monotonic:__emscripten_get_now_is_monotonic,abort:_abort,emscripten_get_now:_emscripten_get_now,emscripten_memcpy_big:_emscripten_memcpy_big,emscripten_resize_heap:_emscripten_resize_heap,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,tree_sitter_log_callback:_tree_sitter_log_callback,tree_sitter_parse_callback:_tree_sitter_parse_callback},asm=createWasm(),___wasm_call_ctors=function(){return(___wasm_call_ctors=Module.asm.__wasm_call_ctors).apply(null,arguments)},___wasm_apply_data_relocs=Module.___wasm_apply_data_relocs=function(){return(___wasm_apply_data_relocs=Module.___wasm_apply_data_relocs=Module.asm.__wasm_apply_data_relocs).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.malloc).apply(null,arguments)},_calloc=Module._calloc=function(){return(_calloc=Module._calloc=Module.asm.calloc).apply(null,arguments)},_realloc=Module._realloc=function(){return(_realloc=Module._realloc=Module.asm.realloc).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm.free).apply(null,arguments)},_ts_language_symbol_count=Module._ts_language_symbol_count=function(){return(_ts_language_symbol_count=Module._ts_language_symbol_count=Module.asm.ts_language_symbol_count).apply(null,arguments)},_ts_language_state_count=Module._ts_language_state_count=function(){return(_ts_language_state_count=Module._ts_language_state_count=Module.asm.ts_language_state_count).apply(null,arguments)},_ts_language_version=Module._ts_language_version=function(){return(_ts_language_version=Module._ts_language_version=Module.asm.ts_language_version).apply(null,arguments)},_ts_language_field_count=Module._ts_language_field_count=function(){return(_ts_language_field_count=Module._ts_language_field_count=Module.asm.ts_language_field_count).apply(null,arguments)},_ts_language_next_state=Module._ts_language_next_state=function(){return(_ts_language_next_state=Module._ts_language_next_state=Module.asm.ts_language_next_state).apply(null,arguments)},_ts_language_symbol_name=Module._ts_language_symbol_name=function(){return(_ts_language_symbol_name=Module._ts_language_symbol_name=Module.asm.ts_language_symbol_name).apply(null,arguments)},_ts_language_symbol_for_name=Module._ts_language_symbol_for_name=function(){return(_ts_language_symbol_for_name=Module._ts_language_symbol_for_name=Module.asm.ts_language_symbol_for_name).apply(null,arguments)},_ts_language_symbol_type=Module._ts_language_symbol_type=function(){return(_ts_language_symbol_type=Module._ts_language_symbol_type=Module.asm.ts_language_symbol_type).apply(null,arguments)},_ts_language_field_name_for_id=Module._ts_language_field_name_for_id=function(){return(_ts_language_field_name_for_id=Module._ts_language_field_name_for_id=Module.asm.ts_language_field_name_for_id).apply(null,arguments)},_ts_lookahead_iterator_new=Module._ts_lookahead_iterator_new=function(){return(_ts_lookahead_iterator_new=Module._ts_lookahead_iterator_new=Module.asm.ts_lookahead_iterator_new).apply(null,arguments)},_ts_lookahead_iterator_delete=Module._ts_lookahead_iterator_delete=function(){return(_ts_lookahead_iterator_delete=Module._ts_lookahead_iterator_delete=Module.asm.ts_lookahead_iterator_delete).apply(null,arguments)},_ts_lookahead_iterator_reset_state=Module._ts_lookahead_iterator_reset_state=function(){return(_ts_lookahead_iterator_reset_state=Module._ts_lookahead_iterator_reset_state=Module.asm.ts_lookahead_iterator_reset_state).apply(null,arguments)},_ts_lookahead_iterator_reset=Module._ts_lookahead_iterator_reset=function(){return(_ts_lookahead_iterator_reset=Module._ts_lookahead_iterator_reset=Module.asm.ts_lookahead_iterator_reset).apply(null,arguments)},_ts_lookahead_iterator_next=Module._ts_lookahead_iterator_next=function(){return(_ts_lookahead_iterator_next=Module._ts_lookahead_iterator_next=Module.asm.ts_lookahead_iterator_next).apply(null,arguments)},_ts_lookahead_iterator_current_symbol=Module._ts_lookahead_iterator_current_symbol=function(){return(_ts_lookahead_iterator_current_symbol=Module._ts_lookahead_iterator_current_symbol=Module.asm.ts_lookahead_iterator_current_symbol).apply(null,arguments)},_memset=Module._memset=function(){return(_memset=Module._memset=Module.asm.memset).apply(null,arguments)},_memcpy=Module._memcpy=function(){return(_memcpy=Module._memcpy=Module.asm.memcpy).apply(null,arguments)},_ts_parser_delete=Module._ts_parser_delete=function(){return(_ts_parser_delete=Module._ts_parser_delete=Module.asm.ts_parser_delete).apply(null,arguments)},_ts_parser_reset=Module._ts_parser_reset=function(){return(_ts_parser_reset=Module._ts_parser_reset=Module.asm.ts_parser_reset).apply(null,arguments)},_ts_parser_set_language=Module._ts_parser_set_language=function(){return(_ts_parser_set_language=Module._ts_parser_set_language=Module.asm.ts_parser_set_language).apply(null,arguments)},_ts_parser_timeout_micros=Module._ts_parser_timeout_micros=function(){return(_ts_parser_timeout_micros=Module._ts_parser_timeout_micros=Module.asm.ts_parser_timeout_micros).apply(null,arguments)},_ts_parser_set_timeout_micros=Module._ts_parser_set_timeout_micros=function(){return(_ts_parser_set_timeout_micros=Module._ts_parser_set_timeout_micros=Module.asm.ts_parser_set_timeout_micros).apply(null,arguments)},_memmove=Module._memmove=function(){return(_memmove=Module._memmove=Module.asm.memmove).apply(null,arguments)},_memcmp=Module._memcmp=function(){return(_memcmp=Module._memcmp=Module.asm.memcmp).apply(null,arguments)},_ts_query_new=Module._ts_query_new=function(){return(_ts_query_new=Module._ts_query_new=Module.asm.ts_query_new).apply(null,arguments)},_ts_query_delete=Module._ts_query_delete=function(){return(_ts_query_delete=Module._ts_query_delete=Module.asm.ts_query_delete).apply(null,arguments)},_iswspace=Module._iswspace=function(){return(_iswspace=Module._iswspace=Module.asm.iswspace).apply(null,arguments)},_iswalnum=Module._iswalnum=function(){return(_iswalnum=Module._iswalnum=Module.asm.iswalnum).apply(null,arguments)},_ts_query_pattern_count=Module._ts_query_pattern_count=function(){return(_ts_query_pattern_count=Module._ts_query_pattern_count=Module.asm.ts_query_pattern_count).apply(null,arguments)},_ts_query_capture_count=Module._ts_query_capture_count=function(){return(_ts_query_capture_count=Module._ts_query_capture_count=Module.asm.ts_query_capture_count).apply(null,arguments)},_ts_query_string_count=Module._ts_query_string_count=function(){return(_ts_query_string_count=Module._ts_query_string_count=Module.asm.ts_query_string_count).apply(null,arguments)},_ts_query_capture_name_for_id=Module._ts_query_capture_name_for_id=function(){return(_ts_query_capture_name_for_id=Module._ts_query_capture_name_for_id=Module.asm.ts_query_capture_name_for_id).apply(null,arguments)},_ts_query_string_value_for_id=Module._ts_query_string_value_for_id=function(){return(_ts_query_string_value_for_id=Module._ts_query_string_value_for_id=Module.asm.ts_query_string_value_for_id).apply(null,arguments)},_ts_query_predicates_for_pattern=Module._ts_query_predicates_for_pattern=function(){return(_ts_query_predicates_for_pattern=Module._ts_query_predicates_for_pattern=Module.asm.ts_query_predicates_for_pattern).apply(null,arguments)},_ts_tree_copy=Module._ts_tree_copy=function(){return(_ts_tree_copy=Module._ts_tree_copy=Module.asm.ts_tree_copy).apply(null,arguments)},_ts_tree_delete=Module._ts_tree_delete=function(){return(_ts_tree_delete=Module._ts_tree_delete=Module.asm.ts_tree_delete).apply(null,arguments)},_ts_init=Module._ts_init=function(){return(_ts_init=Module._ts_init=Module.asm.ts_init).apply(null,arguments)},_ts_parser_new_wasm=Module._ts_parser_new_wasm=function(){return(_ts_parser_new_wasm=Module._ts_parser_new_wasm=Module.asm.ts_parser_new_wasm).apply(null,arguments)},_ts_parser_enable_logger_wasm=Module._ts_parser_enable_logger_wasm=function(){return(_ts_parser_enable_logger_wasm=Module._ts_parser_enable_logger_wasm=Module.asm.ts_parser_enable_logger_wasm).apply(null,arguments)},_ts_parser_parse_wasm=Module._ts_parser_parse_wasm=function(){return(_ts_parser_parse_wasm=Module._ts_parser_parse_wasm=Module.asm.ts_parser_parse_wasm).apply(null,arguments)},_ts_language_type_is_named_wasm=Module._ts_language_type_is_named_wasm=function(){return(_ts_language_type_is_named_wasm=Module._ts_language_type_is_named_wasm=Module.asm.ts_language_type_is_named_wasm).apply(null,arguments)},_ts_language_type_is_visible_wasm=Module._ts_language_type_is_visible_wasm=function(){return(_ts_language_type_is_visible_wasm=Module._ts_language_type_is_visible_wasm=Module.asm.ts_language_type_is_visible_wasm).apply(null,arguments)},_ts_tree_root_node_wasm=Module._ts_tree_root_node_wasm=function(){return(_ts_tree_root_node_wasm=Module._ts_tree_root_node_wasm=Module.asm.ts_tree_root_node_wasm).apply(null,arguments)},_ts_tree_edit_wasm=Module._ts_tree_edit_wasm=function(){return(_ts_tree_edit_wasm=Module._ts_tree_edit_wasm=Module.asm.ts_tree_edit_wasm).apply(null,arguments)},_ts_tree_get_changed_ranges_wasm=Module._ts_tree_get_changed_ranges_wasm=function(){return(_ts_tree_get_changed_ranges_wasm=Module._ts_tree_get_changed_ranges_wasm=Module.asm.ts_tree_get_changed_ranges_wasm).apply(null,arguments)},_ts_tree_cursor_new_wasm=Module._ts_tree_cursor_new_wasm=function(){return(_ts_tree_cursor_new_wasm=Module._ts_tree_cursor_new_wasm=Module.asm.ts_tree_cursor_new_wasm).apply(null,arguments)},_ts_tree_cursor_delete_wasm=Module._ts_tree_cursor_delete_wasm=function(){return(_ts_tree_cursor_delete_wasm=Module._ts_tree_cursor_delete_wasm=Module.asm.ts_tree_cursor_delete_wasm).apply(null,arguments)},_ts_tree_cursor_reset_wasm=Module._ts_tree_cursor_reset_wasm=function(){return(_ts_tree_cursor_reset_wasm=Module._ts_tree_cursor_reset_wasm=Module.asm.ts_tree_cursor_reset_wasm).apply(null,arguments)},_ts_tree_cursor_reset_to_wasm=Module._ts_tree_cursor_reset_to_wasm=function(){return(_ts_tree_cursor_reset_to_wasm=Module._ts_tree_cursor_reset_to_wasm=Module.asm.ts_tree_cursor_reset_to_wasm).apply(null,arguments)},_ts_tree_cursor_goto_first_child_wasm=Module._ts_tree_cursor_goto_first_child_wasm=function(){return(_ts_tree_cursor_goto_first_child_wasm=Module._ts_tree_cursor_goto_first_child_wasm=Module.asm.ts_tree_cursor_goto_first_child_wasm).apply(null,arguments)},_ts_tree_cursor_goto_last_child_wasm=Module._ts_tree_cursor_goto_last_child_wasm=function(){return(_ts_tree_cursor_goto_last_child_wasm=Module._ts_tree_cursor_goto_last_child_wasm=Module.asm.ts_tree_cursor_goto_last_child_wasm).apply(null,arguments)},_ts_tree_cursor_goto_next_sibling_wasm=Module._ts_tree_cursor_goto_next_sibling_wasm=function(){return(_ts_tree_cursor_goto_next_sibling_wasm=Module._ts_tree_cursor_goto_next_sibling_wasm=Module.asm.ts_tree_cursor_goto_next_sibling_wasm).apply(null,arguments)},_ts_tree_cursor_goto_previous_sibling_wasm=Module._ts_tree_cursor_goto_previous_sibling_wasm=function(){return(_ts_tree_cursor_goto_previous_sibling_wasm=Module._ts_tree_cursor_goto_previous_sibling_wasm=Module.asm.ts_tree_cursor_goto_previous_sibling_wasm).apply(null,arguments)},_ts_tree_cursor_goto_parent_wasm=Module._ts_tree_cursor_goto_parent_wasm=function(){return(_ts_tree_cursor_goto_parent_wasm=Module._ts_tree_cursor_goto_parent_wasm=Module.asm.ts_tree_cursor_goto_parent_wasm).apply(null,arguments)},_ts_tree_cursor_current_node_type_id_wasm=Module._ts_tree_cursor_current_node_type_id_wasm=function(){return(_ts_tree_cursor_current_node_type_id_wasm=Module._ts_tree_cursor_current_node_type_id_wasm=Module.asm.ts_tree_cursor_current_node_type_id_wasm).apply(null,arguments)},_ts_tree_cursor_current_node_state_id_wasm=Module._ts_tree_cursor_current_node_state_id_wasm=function(){return(_ts_tree_cursor_current_node_state_id_wasm=Module._ts_tree_cursor_current_node_state_id_wasm=Module.asm.ts_tree_cursor_current_node_state_id_wasm).apply(null,arguments)},_ts_tree_cursor_current_node_is_named_wasm=Module._ts_tree_cursor_current_node_is_named_wasm=function(){return(_ts_tree_cursor_current_node_is_named_wasm=Module._ts_tree_cursor_current_node_is_named_wasm=Module.asm.ts_tree_cursor_current_node_is_named_wasm).apply(null,arguments)},_ts_tree_cursor_current_node_is_missing_wasm=Module._ts_tree_cursor_current_node_is_missing_wasm=function(){return(_ts_tree_cursor_current_node_is_missing_wasm=Module._ts_tree_cursor_current_node_is_missing_wasm=Module.asm.ts_tree_cursor_current_node_is_missing_wasm).apply(null,arguments)},_ts_tree_cursor_current_node_id_wasm=Module._ts_tree_cursor_current_node_id_wasm=function(){return(_ts_tree_cursor_current_node_id_wasm=Module._ts_tree_cursor_current_node_id_wasm=Module.asm.ts_tree_cursor_current_node_id_wasm).apply(null,arguments)},_ts_tree_cursor_start_position_wasm=Module._ts_tree_cursor_start_position_wasm=function(){return(_ts_tree_cursor_start_position_wasm=Module._ts_tree_cursor_start_position_wasm=Module.asm.ts_tree_cursor_start_position_wasm).apply(null,arguments)},_ts_tree_cursor_end_position_wasm=Module._ts_tree_cursor_end_position_wasm=function(){return(_ts_tree_cursor_end_position_wasm=Module._ts_tree_cursor_end_position_wasm=Module.asm.ts_tree_cursor_end_position_wasm).apply(null,arguments)},_ts_tree_cursor_start_index_wasm=Module._ts_tree_cursor_start_index_wasm=function(){return(_ts_tree_cursor_start_index_wasm=Module._ts_tree_cursor_start_index_wasm=Module.asm.ts_tree_cursor_start_index_wasm).apply(null,arguments)},_ts_tree_cursor_end_index_wasm=Module._ts_tree_cursor_end_index_wasm=function(){return(_ts_tree_cursor_end_index_wasm=Module._ts_tree_cursor_end_index_wasm=Module.asm.ts_tree_cursor_end_index_wasm).apply(null,arguments)},_ts_tree_cursor_current_field_id_wasm=Module._ts_tree_cursor_current_field_id_wasm=function(){return(_ts_tree_cursor_current_field_id_wasm=Module._ts_tree_cursor_current_field_id_wasm=Module.asm.ts_tree_cursor_current_field_id_wasm).apply(null,arguments)},_ts_tree_cursor_current_node_wasm=Module._ts_tree_cursor_current_node_wasm=function(){return(_ts_tree_cursor_current_node_wasm=Module._ts_tree_cursor_current_node_wasm=Module.asm.ts_tree_cursor_current_node_wasm).apply(null,arguments)},_ts_node_symbol_wasm=Module._ts_node_symbol_wasm=function(){return(_ts_node_symbol_wasm=Module._ts_node_symbol_wasm=Module.asm.ts_node_symbol_wasm).apply(null,arguments)},_ts_node_field_name_for_child_wasm=Module._ts_node_field_name_for_child_wasm=function(){return(_ts_node_field_name_for_child_wasm=Module._ts_node_field_name_for_child_wasm=Module.asm.ts_node_field_name_for_child_wasm).apply(null,arguments)},_ts_node_grammar_symbol_wasm=Module._ts_node_grammar_symbol_wasm=function(){return(_ts_node_grammar_symbol_wasm=Module._ts_node_grammar_symbol_wasm=Module.asm.ts_node_grammar_symbol_wasm).apply(null,arguments)},_ts_node_child_count_wasm=Module._ts_node_child_count_wasm=function(){return(_ts_node_child_count_wasm=Module._ts_node_child_count_wasm=Module.asm.ts_node_child_count_wasm).apply(null,arguments)},_ts_node_named_child_count_wasm=Module._ts_node_named_child_count_wasm=function(){return(_ts_node_named_child_count_wasm=Module._ts_node_named_child_count_wasm=Module.asm.ts_node_named_child_count_wasm).apply(null,arguments)},_ts_node_child_wasm=Module._ts_node_child_wasm=function(){return(_ts_node_child_wasm=Module._ts_node_child_wasm=Module.asm.ts_node_child_wasm).apply(null,arguments)},_ts_node_named_child_wasm=Module._ts_node_named_child_wasm=function(){return(_ts_node_named_child_wasm=Module._ts_node_named_child_wasm=Module.asm.ts_node_named_child_wasm).apply(null,arguments)},_ts_node_child_by_field_id_wasm=Module._ts_node_child_by_field_id_wasm=function(){return(_ts_node_child_by_field_id_wasm=Module._ts_node_child_by_field_id_wasm=Module.asm.ts_node_child_by_field_id_wasm).apply(null,arguments)},_ts_node_next_sibling_wasm=Module._ts_node_next_sibling_wasm=function(){return(_ts_node_next_sibling_wasm=Module._ts_node_next_sibling_wasm=Module.asm.ts_node_next_sibling_wasm).apply(null,arguments)},_ts_node_prev_sibling_wasm=Module._ts_node_prev_sibling_wasm=function(){return(_ts_node_prev_sibling_wasm=Module._ts_node_prev_sibling_wasm=Module.asm.ts_node_prev_sibling_wasm).apply(null,arguments)},_ts_node_next_named_sibling_wasm=Module._ts_node_next_named_sibling_wasm=function(){return(_ts_node_next_named_sibling_wasm=Module._ts_node_next_named_sibling_wasm=Module.asm.ts_node_next_named_sibling_wasm).apply(null,arguments)},_ts_node_prev_named_sibling_wasm=Module._ts_node_prev_named_sibling_wasm=function(){return(_ts_node_prev_named_sibling_wasm=Module._ts_node_prev_named_sibling_wasm=Module.asm.ts_node_prev_named_sibling_wasm).apply(null,arguments)},_ts_node_parent_wasm=Module._ts_node_parent_wasm=function(){return(_ts_node_parent_wasm=Module._ts_node_parent_wasm=Module.asm.ts_node_parent_wasm).apply(null,arguments)},_ts_node_descendant_for_index_wasm=Module._ts_node_descendant_for_index_wasm=function(){return(_ts_node_descendant_for_index_wasm=Module._ts_node_descendant_for_index_wasm=Module.asm.ts_node_descendant_for_index_wasm).apply(null,arguments)},_ts_node_named_descendant_for_index_wasm=Module._ts_node_named_descendant_for_index_wasm=function(){return(_ts_node_named_descendant_for_index_wasm=Module._ts_node_named_descendant_for_index_wasm=Module.asm.ts_node_named_descendant_for_index_wasm).apply(null,arguments)},_ts_node_descendant_for_position_wasm=Module._ts_node_descendant_for_position_wasm=function(){return(_ts_node_descendant_for_position_wasm=Module._ts_node_descendant_for_position_wasm=Module.asm.ts_node_descendant_for_position_wasm).apply(null,arguments)},_ts_node_named_descendant_for_position_wasm=Module._ts_node_named_descendant_for_position_wasm=function(){return(_ts_node_named_descendant_for_position_wasm=Module._ts_node_named_descendant_for_position_wasm=Module.asm.ts_node_named_descendant_for_position_wasm).apply(null,arguments)},_ts_node_start_point_wasm=Module._ts_node_start_point_wasm=function(){return(_ts_node_start_point_wasm=Module._ts_node_start_point_wasm=Module.asm.ts_node_start_point_wasm).apply(null,arguments)},_ts_node_end_point_wasm=Module._ts_node_end_point_wasm=function(){return(_ts_node_end_point_wasm=Module._ts_node_end_point_wasm=Module.asm.ts_node_end_point_wasm).apply(null,arguments)},_ts_node_start_index_wasm=Module._ts_node_start_index_wasm=function(){return(_ts_node_start_index_wasm=Module._ts_node_start_index_wasm=Module.asm.ts_node_start_index_wasm).apply(null,arguments)},_ts_node_end_index_wasm=Module._ts_node_end_index_wasm=function(){return(_ts_node_end_index_wasm=Module._ts_node_end_index_wasm=Module.asm.ts_node_end_index_wasm).apply(null,arguments)},_ts_node_to_string_wasm=Module._ts_node_to_string_wasm=function(){return(_ts_node_to_string_wasm=Module._ts_node_to_string_wasm=Module.asm.ts_node_to_string_wasm).apply(null,arguments)},_ts_node_children_wasm=Module._ts_node_children_wasm=function(){return(_ts_node_children_wasm=Module._ts_node_children_wasm=Module.asm.ts_node_children_wasm).apply(null,arguments)},_ts_node_named_children_wasm=Module._ts_node_named_children_wasm=function(){return(_ts_node_named_children_wasm=Module._ts_node_named_children_wasm=Module.asm.ts_node_named_children_wasm).apply(null,arguments)},_ts_node_descendants_of_type_wasm=Module._ts_node_descendants_of_type_wasm=function(){return(_ts_node_descendants_of_type_wasm=Module._ts_node_descendants_of_type_wasm=Module.asm.ts_node_descendants_of_type_wasm).apply(null,arguments)},_ts_node_is_named_wasm=Module._ts_node_is_named_wasm=function(){return(_ts_node_is_named_wasm=Module._ts_node_is_named_wasm=Module.asm.ts_node_is_named_wasm).apply(null,arguments)},_ts_node_has_changes_wasm=Module._ts_node_has_changes_wasm=function(){return(_ts_node_has_changes_wasm=Module._ts_node_has_changes_wasm=Module.asm.ts_node_has_changes_wasm).apply(null,arguments)},_ts_node_has_error_wasm=Module._ts_node_has_error_wasm=function(){return(_ts_node_has_error_wasm=Module._ts_node_has_error_wasm=Module.asm.ts_node_has_error_wasm).apply(null,arguments)},_ts_node_is_error_wasm=Module._ts_node_is_error_wasm=function(){return(_ts_node_is_error_wasm=Module._ts_node_is_error_wasm=Module.asm.ts_node_is_error_wasm).apply(null,arguments)},_ts_node_is_missing_wasm=Module._ts_node_is_missing_wasm=function(){return(_ts_node_is_missing_wasm=Module._ts_node_is_missing_wasm=Module.asm.ts_node_is_missing_wasm).apply(null,arguments)},_ts_node_parse_state_wasm=Module._ts_node_parse_state_wasm=function(){return(_ts_node_parse_state_wasm=Module._ts_node_parse_state_wasm=Module.asm.ts_node_parse_state_wasm).apply(null,arguments)},_ts_node_next_parse_state_wasm=Module._ts_node_next_parse_state_wasm=function(){return(_ts_node_next_parse_state_wasm=Module._ts_node_next_parse_state_wasm=Module.asm.ts_node_next_parse_state_wasm).apply(null,arguments)},_ts_query_matches_wasm=Module._ts_query_matches_wasm=function(){return(_ts_query_matches_wasm=Module._ts_query_matches_wasm=Module.asm.ts_query_matches_wasm).apply(null,arguments)},_ts_query_captures_wasm=Module._ts_query_captures_wasm=function(){return(_ts_query_captures_wasm=Module._ts_query_captures_wasm=Module.asm.ts_query_captures_wasm).apply(null,arguments)},___errno_location=function(){return(___errno_location=Module.asm.__errno_location).apply(null,arguments)},_iswdigit=Module._iswdigit=function(){return(_iswdigit=Module._iswdigit=Module.asm.iswdigit).apply(null,arguments)},_iswalpha=Module._iswalpha=function(){return(_iswalpha=Module._iswalpha=Module.asm.iswalpha).apply(null,arguments)},_iswblank=Module._iswblank=function(){return(_iswblank=Module._iswblank=Module.asm.iswblank).apply(null,arguments)},_iswlower=Module._iswlower=function(){return(_iswlower=Module._iswlower=Module.asm.iswlower).apply(null,arguments)},_iswupper=Module._iswupper=function(){return(_iswupper=Module._iswupper=Module.asm.iswupper).apply(null,arguments)},_iswxdigit=Module._iswxdigit=function(){return(_iswxdigit=Module._iswxdigit=Module.asm.iswxdigit).apply(null,arguments)},_memchr=Module._memchr=function(){return(_memchr=Module._memchr=Module.asm.memchr).apply(null,arguments)},_strlen=Module._strlen=function(){return(_strlen=Module._strlen=Module.asm.strlen).apply(null,arguments)},_strcmp=Module._strcmp=function(){return(_strcmp=Module._strcmp=Module.asm.strcmp).apply(null,arguments)},_strncpy=Module._strncpy=function(){return(_strncpy=Module._strncpy=Module.asm.strncpy).apply(null,arguments)},_towlower=Module._towlower=function(){return(_towlower=Module._towlower=Module.asm.towlower).apply(null,arguments)},_towupper=Module._towupper=function(){return(_towupper=Module._towupper=Module.asm.towupper).apply(null,arguments)},_setThrew=function(){return(_setThrew=Module.asm.setThrew).apply(null,arguments)},stackSave=function(){return(stackSave=Module.asm.stackSave).apply(null,arguments)},stackRestore=function(){return(stackRestore=Module.asm.stackRestore).apply(null,arguments)},stackAlloc=function(){return(stackAlloc=Module.asm.stackAlloc).apply(null,arguments)},dynCall_jiji=Module.dynCall_jiji=function(){return(dynCall_jiji=Module.dynCall_jiji=Module.asm.dynCall_jiji).apply(null,arguments)},_orig$ts_parser_timeout_micros=Module._orig$ts_parser_timeout_micros=function(){return(_orig$ts_parser_timeout_micros=Module._orig$ts_parser_timeout_micros=Module.asm.orig$ts_parser_timeout_micros).apply(null,arguments)},_orig$ts_parser_set_timeout_micros=Module._orig$ts_parser_set_timeout_micros=function(){return(_orig$ts_parser_set_timeout_micros=Module._orig$ts_parser_set_timeout_micros=Module.asm.orig$ts_parser_set_timeout_micros).apply(null,arguments)},calledRun;function callMain(e=[]){var t=resolveGlobalSymbol(`main`).sym;if(t){e.unshift(thisProgram);var n=e.length,r=stackAlloc(4*(n+1)),i=r>>2;e.forEach((e=>{HEAP32[i++]=stringToUTF8OnStack(e)})),HEAP32[i]=0;try{var a=t(n,r);return exitJS(a,!0),a}catch(e){return handleException(e)}}}Module.AsciiToString=AsciiToString,Module.stringToUTF16=stringToUTF16,dependenciesFulfilled=function e(){calledRun||run(),calledRun||(dependenciesFulfilled=e)};var dylibsLoaded=!1;function run(e=arguments_){function t(){calledRun||(calledRun=!0,Module.calledRun=!0,ABORT||(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),shouldRunNow&&callMain(e),postRun()))}runDependencies>0||!dylibsLoaded&&(loadDylibs(),dylibsLoaded=!0,runDependencies>0)||(preRun(),runDependencies>0||(Module.setStatus?(Module.setStatus(`Running...`),setTimeout((function(){setTimeout((function(){Module.setStatus(``)}),1),t()}),1)):t()))}if(LDSO.init(),Module.preInit)for(typeof Module.preInit==`function`&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run();const C=Module,INTERNAL={},SIZE_OF_INT=4,SIZE_OF_CURSOR=3*SIZE_OF_INT,SIZE_OF_NODE=5*SIZE_OF_INT,SIZE_OF_POINT=2*SIZE_OF_INT,SIZE_OF_RANGE=2*SIZE_OF_INT+2*SIZE_OF_POINT,ZERO_POINT={row:0,column:0},QUERY_WORD_REGEX=/[\w-.]*/g,PREDICATE_STEP_TYPE_CAPTURE=1,PREDICATE_STEP_TYPE_STRING=2,LANGUAGE_FUNCTION_REGEX=/^_?tree_sitter_\w+/;let VERSION,MIN_COMPATIBLE_VERSION,TRANSFER_BUFFER,currentParseCallback,currentLogCallback;class ParserImpl{static init(){TRANSFER_BUFFER=C._ts_init(),VERSION=getValue(TRANSFER_BUFFER,`i32`),MIN_COMPATIBLE_VERSION=getValue(TRANSFER_BUFFER+SIZE_OF_INT,`i32`)}initialize(){C._ts_parser_new_wasm(),this[0]=getValue(TRANSFER_BUFFER,`i32`),this[1]=getValue(TRANSFER_BUFFER+SIZE_OF_INT,`i32`)}delete(){C._ts_parser_delete(this[0]),C._free(this[1]),this[0]=0,this[1]=0}setLanguage(e){let t;if(e){if(e.constructor!==Language)throw Error(`Argument must be a Language`);{t=e[0];let n=C._ts_language_version(t);if(n<MIN_COMPATIBLE_VERSION||VERSION<n)throw Error(`Incompatible language version ${n}. Compatibility range ${MIN_COMPATIBLE_VERSION} through ${VERSION}.`)}}else t=0,e=null;return this.language=e,C._ts_parser_set_language(this[0],t),this}getLanguage(){return this.language}parse(e,t,n){if(typeof e==`string`)currentParseCallback=(t,n,r)=>e.slice(t,r);else{if(typeof e!=`function`)throw Error(`Argument must be a string or a function`);currentParseCallback=e}this.logCallback?(currentLogCallback=this.logCallback,C._ts_parser_enable_logger_wasm(this[0],1)):(currentLogCallback=null,C._ts_parser_enable_logger_wasm(this[0],0));let r=0,i=0;if(n&&n.includedRanges){r=n.includedRanges.length,i=C._calloc(r,SIZE_OF_RANGE);let e=i;for(let t=0;t<r;t++)marshalRange(e,n.includedRanges[t]),e+=SIZE_OF_RANGE}let a=C._ts_parser_parse_wasm(this[0],this[1],t?t[0]:0,i,r);if(!a)throw currentParseCallback=null,currentLogCallback=null,/* @__PURE__ */ Error(`Parsing failed`);let o=new Tree(INTERNAL,a,this.language,currentParseCallback);return currentParseCallback=null,currentLogCallback=null,o}reset(){C._ts_parser_reset(this[0])}setTimeoutMicros(e){C._ts_parser_set_timeout_micros(this[0],e)}getTimeoutMicros(){return C._ts_parser_timeout_micros(this[0])}setLogger(e){if(e){if(typeof e!=`function`)throw Error(`Logger callback must be a function`)}else e=null;return this.logCallback=e,this}getLogger(){return this.logCallback}}class Tree{constructor(e,t,n,r){assertInternal(e),this[0]=t,this.language=n,this.textCallback=r}copy(){let e=C._ts_tree_copy(this[0]);return new Tree(INTERNAL,e,this.language,this.textCallback)}delete(){C._ts_tree_delete(this[0]),this[0]=0}edit(e){marshalEdit(e),C._ts_tree_edit_wasm(this[0])}get rootNode(){return C._ts_tree_root_node_wasm(this[0]),unmarshalNode(this)}getLanguage(){return this.language}walk(){return this.rootNode.walk()}getChangedRanges(e){if(e.constructor!==Tree)throw TypeError(`Argument must be a Tree`);C._ts_tree_get_changed_ranges_wasm(this[0],e[0]);let t=getValue(TRANSFER_BUFFER,`i32`),n=getValue(TRANSFER_BUFFER+SIZE_OF_INT,`i32`),r=Array(t);if(t>0){let e=n;for(let n=0;n<t;n++)r[n]=unmarshalRange(e),e+=SIZE_OF_RANGE;C._free(n)}return r}}class Node{constructor(e,t){assertInternal(e),this.tree=t}get typeId(){return marshalNode(this),C._ts_node_symbol_wasm(this.tree[0])}get grammarId(){return marshalNode(this),C._ts_node_grammar_symbol_wasm(this.tree[0])}get type(){return this.tree.language.types[this.typeId]||`ERROR`}get grammarType(){return this.tree.language.types[this.grammarId]||`ERROR`}get endPosition(){return marshalNode(this),C._ts_node_end_point_wasm(this.tree[0]),unmarshalPoint(TRANSFER_BUFFER)}get endIndex(){return marshalNode(this),C._ts_node_end_index_wasm(this.tree[0])}get text(){return getText(this.tree,this.startIndex,this.endIndex)}get parseState(){return marshalNode(this),C._ts_node_parse_state_wasm(this.tree[0])}get nextParseState(){return marshalNode(this),C._ts_node_next_parse_state_wasm(this.tree[0])}isNamed(){return marshalNode(this),C._ts_node_is_named_wasm(this.tree[0])===1}hasError(){return marshalNode(this),C._ts_node_has_error_wasm(this.tree[0])===1}hasChanges(){return marshalNode(this),C._ts_node_has_changes_wasm(this.tree[0])===1}isError(){return marshalNode(this),C._ts_node_is_error_wasm(this.tree[0])===1}isMissing(){return marshalNode(this),C._ts_node_is_missing_wasm(this.tree[0])===1}equals(e){return this.id===e.id}child(e){return marshalNode(this),C._ts_node_child_wasm(this.tree[0],e),unmarshalNode(this.tree)}fieldNameForChild(e){marshalNode(this);let t=C._ts_node_field_name_for_child_wasm(this.tree[0],e);return t?AsciiToString(t):null}namedChild(e){return marshalNode(this),C._ts_node_named_child_wasm(this.tree[0],e),unmarshalNode(this.tree)}childForFieldId(e){return marshalNode(this),C._ts_node_child_by_field_id_wasm(this.tree[0],e),unmarshalNode(this.tree)}childForFieldName(e){let t=this.tree.language.fields.indexOf(e);if(t!==-1)return this.childForFieldId(t)}get childCount(){return marshalNode(this),C._ts_node_child_count_wasm(this.tree[0])}get namedChildCount(){return marshalNode(this),C._ts_node_named_child_count_wasm(this.tree[0])}get firstChild(){return this.child(0)}get firstNamedChild(){return this.namedChild(0)}get lastChild(){return this.child(this.childCount-1)}get lastNamedChild(){return this.namedChild(this.namedChildCount-1)}get children(){if(!this._children){marshalNode(this),C._ts_node_children_wasm(this.tree[0]);let e=getValue(TRANSFER_BUFFER,`i32`),t=getValue(TRANSFER_BUFFER+SIZE_OF_INT,`i32`);if(this._children=Array(e),e>0){let n=t;for(let t=0;t<e;t++)this._children[t]=unmarshalNode(this.tree,n),n+=SIZE_OF_NODE;C._free(t)}}return this._children}get namedChildren(){if(!this._namedChildren){marshalNode(this),C._ts_node_named_children_wasm(this.tree[0]);let e=getValue(TRANSFER_BUFFER,`i32`),t=getValue(TRANSFER_BUFFER+SIZE_OF_INT,`i32`);if(this._namedChildren=Array(e),e>0){let n=t;for(let t=0;t<e;t++)this._namedChildren[t]=unmarshalNode(this.tree,n),n+=SIZE_OF_NODE;C._free(t)}}return this._namedChildren}descendantsOfType(e,t,n){Array.isArray(e)||(e=[e]),t||=ZERO_POINT,n||=ZERO_POINT;let r=[],i=this.tree.language.types;for(let t=0,n=i.length;t<n;t++)e.includes(i[t])&&r.push(t);let a=C._malloc(SIZE_OF_INT*r.length);for(let e=0,t=r.length;e<t;e++)setValue(a+e*SIZE_OF_INT,r[e],`i32`);marshalNode(this),C._ts_node_descendants_of_type_wasm(this.tree[0],a,r.length,t.row,t.column,n.row,n.column);let o=getValue(TRANSFER_BUFFER,`i32`),s=getValue(TRANSFER_BUFFER+SIZE_OF_INT,`i32`),c=Array(o);if(o>0){let e=s;for(let t=0;t<o;t++)c[t]=unmarshalNode(this.tree,e),e+=SIZE_OF_NODE}return C._free(s),C._free(a),c}get nextSibling(){return marshalNode(this),C._ts_node_next_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get previousSibling(){return marshalNode(this),C._ts_node_prev_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get nextNamedSibling(){return marshalNode(this),C._ts_node_next_named_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get previousNamedSibling(){return marshalNode(this),C._ts_node_prev_named_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get parent(){return marshalNode(this),C._ts_node_parent_wasm(this.tree[0]),unmarshalNode(this.tree)}descendantForIndex(e,t=e){if(typeof e!=`number`||typeof t!=`number`)throw Error(`Arguments must be numbers`);marshalNode(this);let n=TRANSFER_BUFFER+SIZE_OF_NODE;return setValue(n,e,`i32`),setValue(n+SIZE_OF_INT,t,`i32`),C._ts_node_descendant_for_index_wasm(this.tree[0]),unmarshalNode(this.tree)}namedDescendantForIndex(e,t=e){if(typeof e!=`number`||typeof t!=`number`)throw Error(`Arguments must be numbers`);marshalNode(this);let n=TRANSFER_BUFFER+SIZE_OF_NODE;return setValue(n,e,`i32`),setValue(n+SIZE_OF_INT,t,`i32`),C._ts_node_named_descendant_for_index_wasm(this.tree[0]),unmarshalNode(this.tree)}descendantForPosition(e,t=e){if(!isPoint(e)||!isPoint(t))throw Error(`Arguments must be {row, column} objects`);marshalNode(this);let n=TRANSFER_BUFFER+SIZE_OF_NODE;return marshalPoint(n,e),marshalPoint(n+SIZE_OF_POINT,t),C._ts_node_descendant_for_position_wasm(this.tree[0]),unmarshalNode(this.tree)}namedDescendantForPosition(e,t=e){if(!isPoint(e)||!isPoint(t))throw Error(`Arguments must be {row, column} objects`);marshalNode(this);let n=TRANSFER_BUFFER+SIZE_OF_NODE;return marshalPoint(n,e),marshalPoint(n+SIZE_OF_POINT,t),C._ts_node_named_descendant_for_position_wasm(this.tree[0]),unmarshalNode(this.tree)}walk(){return marshalNode(this),C._ts_tree_cursor_new_wasm(this.tree[0]),new TreeCursor(INTERNAL,this.tree)}toString(){marshalNode(this);let e=C._ts_node_to_string_wasm(this.tree[0]),t=AsciiToString(e);return C._free(e),t}}class TreeCursor{constructor(e,t){assertInternal(e),this.tree=t,unmarshalTreeCursor(this)}delete(){marshalTreeCursor(this),C._ts_tree_cursor_delete_wasm(this.tree[0]),this[0]=this[1]=this[2]=0}reset(e){marshalNode(e),marshalTreeCursor(this,TRANSFER_BUFFER+SIZE_OF_NODE),C._ts_tree_cursor_reset_wasm(this.tree[0]),unmarshalTreeCursor(this)}resetTo(e){marshalTreeCursor(this,TRANSFER_BUFFER),marshalTreeCursor(e,TRANSFER_BUFFER+SIZE_OF_CURSOR),C._ts_tree_cursor_reset_to_wasm(this.tree[0],e.tree[0]),unmarshalTreeCursor(this)}get nodeType(){return this.tree.language.types[this.nodeTypeId]||`ERROR`}get nodeTypeId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_type_id_wasm(this.tree[0])}get nodeStateId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_state_id_wasm(this.tree[0])}get nodeId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_id_wasm(this.tree[0])}get nodeIsNamed(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_is_named_wasm(this.tree[0])===1}get nodeIsMissing(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_is_missing_wasm(this.tree[0])===1}get nodeText(){marshalTreeCursor(this);let e=C._ts_tree_cursor_start_index_wasm(this.tree[0]),t=C._ts_tree_cursor_end_index_wasm(this.tree[0]);return getText(this.tree,e,t)}get startPosition(){return marshalTreeCursor(this),C._ts_tree_cursor_start_position_wasm(this.tree[0]),unmarshalPoint(TRANSFER_BUFFER)}get endPosition(){return marshalTreeCursor(this),C._ts_tree_cursor_end_position_wasm(this.tree[0]),unmarshalPoint(TRANSFER_BUFFER)}get startIndex(){return marshalTreeCursor(this),C._ts_tree_cursor_start_index_wasm(this.tree[0])}get endIndex(){return marshalTreeCursor(this),C._ts_tree_cursor_end_index_wasm(this.tree[0])}currentNode(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_wasm(this.tree[0]),unmarshalNode(this.tree)}currentFieldId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_field_id_wasm(this.tree[0])}currentFieldName(){return this.tree.language.fields[this.currentFieldId()]}gotoFirstChild(){marshalTreeCursor(this);let e=C._ts_tree_cursor_goto_first_child_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoLastChild(){marshalTreeCursor(this);let e=C._ts_tree_cursor_goto_last_child_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoNextSibling(){marshalTreeCursor(this);let e=C._ts_tree_cursor_goto_next_sibling_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoPreviousSibling(){marshalTreeCursor(this);let e=C._ts_tree_cursor_goto_previous_sibling_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoParent(){marshalTreeCursor(this);let e=C._ts_tree_cursor_goto_parent_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}}class Language{constructor(e,t){assertInternal(e),this[0]=t,this.types=Array(C._ts_language_symbol_count(this[0]));for(let e=0,t=this.types.length;e<t;e++)C._ts_language_symbol_type(this[0],e)<2&&(this.types[e]=UTF8ToString(C._ts_language_symbol_name(this[0],e)));this.fields=Array(C._ts_language_field_count(this[0])+1);for(let e=0,t=this.fields.length;e<t;e++){let t=C._ts_language_field_name_for_id(this[0],e);this.fields[e]=t===0?null:UTF8ToString(t)}}get version(){return C._ts_language_version(this[0])}get fieldCount(){return this.fields.length-1}get stateCount(){return C._ts_language_state_count(this[0])}fieldIdForName(e){let t=this.fields.indexOf(e);return t===-1?null:t}fieldNameForId(e){return this.fields[e]||null}idForNodeType(e,t){let n=lengthBytesUTF8(e),r=C._malloc(n+1);stringToUTF8(e,r,n+1);let i=C._ts_language_symbol_for_name(this[0],r,n,t);return C._free(r),i||null}get nodeTypeCount(){return C._ts_language_symbol_count(this[0])}nodeTypeForId(e){let t=C._ts_language_symbol_name(this[0],e);return t?UTF8ToString(t):null}nodeTypeIsNamed(e){return!!C._ts_language_type_is_named_wasm(this[0],e)}nodeTypeIsVisible(e){return!!C._ts_language_type_is_visible_wasm(this[0],e)}nextState(e,t){return C._ts_language_next_state(this[0],e,t)}lookaheadIterator(e){let t=C._ts_lookahead_iterator_new(this[0],e);if(t)return new LookaheadIterable(INTERNAL,t,this)}query(e){let t=lengthBytesUTF8(e),n=C._malloc(t+1);stringToUTF8(e,n,t+1);let r=C._ts_query_new(this[0],n,t,TRANSFER_BUFFER,TRANSFER_BUFFER+SIZE_OF_INT);if(!r){let t=getValue(TRANSFER_BUFFER+SIZE_OF_INT,`i32`),r=UTF8ToString(n,getValue(TRANSFER_BUFFER,`i32`)).length,i=e.substr(r,100).split(`
2
2
  `)[0],a,o=i.match(QUERY_WORD_REGEX)[0];switch(t){case 2:a=/* @__PURE__ */ RangeError(`Bad node name '${o}'`);break;case 3:a=/* @__PURE__ */ RangeError(`Bad field name '${o}'`);break;case 4:a=/* @__PURE__ */ RangeError(`Bad capture name @${o}`);break;case 5:a=/* @__PURE__ */ TypeError(`Bad pattern structure at offset ${r}: '${i}'...`),o=``;break;default:a=/* @__PURE__ */ SyntaxError(`Bad syntax at offset ${r}: '${i}'...`),o=``}throw a.index=r,a.length=o.length,C._free(n),a}let i=C._ts_query_string_count(r),a=C._ts_query_capture_count(r),o=C._ts_query_pattern_count(r),s=Array(a),c=Array(i);for(let e=0;e<a;e++){let t=C._ts_query_capture_name_for_id(r,e,TRANSFER_BUFFER),n=getValue(TRANSFER_BUFFER,`i32`);s[e]=UTF8ToString(t,n)}for(let e=0;e<i;e++){let t=C._ts_query_string_value_for_id(r,e,TRANSFER_BUFFER),n=getValue(TRANSFER_BUFFER,`i32`);c[e]=UTF8ToString(t,n)}let l=Array(o),u=Array(o),d=Array(o),f=Array(o),p=Array(o);for(let e=0;e<o;e++){let t=C._ts_query_predicates_for_pattern(r,e,TRANSFER_BUFFER),n=getValue(TRANSFER_BUFFER,`i32`);f[e]=[],p[e]=[];let i=[],a=t;for(let t=0;t<n;t++){let t=getValue(a,`i32`);a+=SIZE_OF_INT;let n=getValue(a,`i32`);if(a+=SIZE_OF_INT,t===PREDICATE_STEP_TYPE_CAPTURE)i.push({type:`capture`,name:s[n]});else if(t===PREDICATE_STEP_TYPE_STRING)i.push({type:`string`,value:c[n]});else if(i.length>0){if(i[0].type!==`string`)throw Error(`Predicates must begin with a literal value`);let t=i[0].value,n,r=!0,a=!0;switch(t){case`any-not-eq?`:case`not-eq?`:r=!1;case`any-eq?`:case`eq?`:if(i.length!==3)throw Error(`Wrong number of arguments to \`#${t}\` predicate. Expected 2, got ${i.length-1}`);if(i[1].type!==`capture`)throw Error(`First argument of \`#${t}\` predicate must be a capture. Got "${i[1].value}"`);if(a=!t.startsWith(`any-`),i[2].type===`capture`){let t=i[1].name,n=i[2].name;p[e].push((function(e){let i=[],o=[];for(let r of e)r.name===t&&i.push(r.node),r.name===n&&o.push(r.node);let s=(e,t,n)=>n?e.text===t.text:e.text!==t.text;return a?i.every((e=>o.some((t=>s(e,t,r))))):i.some((e=>o.some((t=>s(e,t,r)))))}))}else{n=i[1].name;let t=i[2].value,o=e=>e.text===t,s=e=>e.text!==t;p[e].push((function(e){let t=[];for(let r of e)r.name===n&&t.push(r.node);let i=r?o:s;return a?t.every(i):t.some(i)}))}break;case`any-not-match?`:case`not-match?`:r=!1;case`any-match?`:case`match?`:if(i.length!==3)throw Error(`Wrong number of arguments to \`#${t}\` predicate. Expected 2, got ${i.length-1}.`);if(i[1].type!==`capture`)throw Error(`First argument of \`#${t}\` predicate must be a capture. Got "${i[1].value}".`);if(i[2].type!==`string`)throw Error(`Second argument of \`#${t}\` predicate must be a string. Got @${i[2].value}.`);n=i[1].name;let o=new RegExp(i[2].value);a=!t.startsWith(`any-`),p[e].push((function(e){let t=[];for(let r of e)r.name===n&&t.push(r.node.text);let i=(e,t)=>t?o.test(e):!o.test(e);return t.length===0?!r:a?t.every((e=>i(e,r))):t.some((e=>i(e,r)))}));break;case`set!`:if(i.length<2||i.length>3)throw Error(`Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${i.length-1}.`);if(i.some((e=>e.type!==`string`)))throw Error('Arguments to `#set!` predicate must be a strings.".');l[e]||(l[e]={}),l[e][i[1].value]=i[2]?i[2].value:null;break;case`is?`:case`is-not?`:if(i.length<2||i.length>3)throw Error(`Wrong number of arguments to \`#${t}\` predicate. Expected 1 or 2. Got ${i.length-1}.`);if(i.some((e=>e.type!==`string`)))throw Error(`Arguments to \`#${t}\` predicate must be a strings.".`);let s=t===`is?`?u:d;s[e]||(s[e]={}),s[e][i[1].value]=i[2]?i[2].value:null;break;case`not-any-of?`:r=!1;case`any-of?`:if(i.length<2)throw Error(`Wrong number of arguments to \`#${t}\` predicate. Expected at least 1. Got ${i.length-1}.`);if(i[1].type!==`capture`)throw Error(`First argument of \`#${t}\` predicate must be a capture. Got "${i[1].value}".`);for(let e=2;e<i.length;e++)if(i[e].type!==`string`)throw Error(`Arguments to \`#${t}\` predicate must be a strings.".`);n=i[1].name;let c=i.slice(2).map((e=>e.value));p[e].push((function(e){let t=[];for(let r of e)r.name===n&&t.push(r.node.text);return t.length===0?!r:t.every((e=>c.includes(e)))===r}));break;default:f[e].push({operator:t,operands:i.slice(1)})}i.length=0}}Object.freeze(l[e]),Object.freeze(u[e]),Object.freeze(d[e])}return C._free(n),new Query(INTERNAL,r,s,p,f,Object.freeze(l),Object.freeze(u),Object.freeze(d))}static load(e){let t;if(e instanceof Uint8Array)t=Promise.resolve(e);else{let n=e;if(typeof process<`u`&&process.versions&&process.versions.node){let e=require___vite_browser_external();t=Promise.resolve(e.readFileSync(n))}else t=fetch(n).then((e=>e.arrayBuffer().then((t=>{if(e.ok)return new Uint8Array(t);{let n=new TextDecoder(`utf-8`).decode(t);throw Error(`Language.load failed with status ${e.status}.\n\n${n}`)}}))))}return t.then((e=>loadWebAssemblyModule(e,{loadAsync:!0}))).then((e=>{let t=Object.keys(e),n=t.find((e=>LANGUAGE_FUNCTION_REGEX.test(e)&&!e.includes(`external_scanner_`)));n||console.log(`Couldn't find language function in WASM file. Symbols:\n${JSON.stringify(t,null,2)}`);let r=e[n]();return new Language(INTERNAL,r)}))}}class LookaheadIterable{constructor(e,t,n){assertInternal(e),this[0]=t,this.language=n}get currentTypeId(){return C._ts_lookahead_iterator_current_symbol(this[0])}get currentType(){return this.language.types[this.currentTypeId]||`ERROR`}delete(){C._ts_lookahead_iterator_delete(this[0]),this[0]=0}resetState(e){return C._ts_lookahead_iterator_reset_state(this[0],e)}reset(e,t){return!!C._ts_lookahead_iterator_reset(this[0],e[0],t)&&(this.language=e,!0)}[Symbol.iterator](){let e=this;return{next:()=>C._ts_lookahead_iterator_next(e[0])?{done:!1,value:e.currentType}:{done:!0,value:``}}}}class Query{constructor(e,t,n,r,i,a,o,s){assertInternal(e),this[0]=t,this.captureNames=n,this.textPredicates=r,this.predicates=i,this.setProperties=a,this.assertedProperties=o,this.refutedProperties=s,this.exceededMatchLimit=!1}delete(){C._ts_query_delete(this[0]),this[0]=0}matches(e,t,n,r){t||=ZERO_POINT,n||=ZERO_POINT,r||={};let i=r.matchLimit;if(i===void 0)i=0;else if(typeof i!=`number`)throw Error(`Arguments must be numbers`);marshalNode(e),C._ts_query_matches_wasm(this[0],e.tree[0],t.row,t.column,n.row,n.column,i);let a=getValue(TRANSFER_BUFFER,`i32`),o=getValue(TRANSFER_BUFFER+SIZE_OF_INT,`i32`),s=getValue(TRANSFER_BUFFER+2*SIZE_OF_INT,`i32`),c=Array(a);this.exceededMatchLimit=!!s;let l=0,u=o;for(let t=0;t<a;t++){let t=getValue(u,`i32`);u+=SIZE_OF_INT;let n=getValue(u,`i32`);u+=SIZE_OF_INT;let r=Array(n);if(u=unmarshalCaptures(this,e.tree,u,r),this.textPredicates[t].every((e=>e(r)))){c[l]={pattern:t,captures:r};let e=this.setProperties[t];e&&(c[l].setProperties=e);let n=this.assertedProperties[t];n&&(c[l].assertedProperties=n);let i=this.refutedProperties[t];i&&(c[l].refutedProperties=i),l++}}return c.length=l,C._free(o),c}captures(e,t,n,r){t||=ZERO_POINT,n||=ZERO_POINT,r||={};let i=r.matchLimit;if(i===void 0)i=0;else if(typeof i!=`number`)throw Error(`Arguments must be numbers`);marshalNode(e),C._ts_query_captures_wasm(this[0],e.tree[0],t.row,t.column,n.row,n.column,i);let a=getValue(TRANSFER_BUFFER,`i32`),o=getValue(TRANSFER_BUFFER+SIZE_OF_INT,`i32`),s=getValue(TRANSFER_BUFFER+2*SIZE_OF_INT,`i32`),c=[];this.exceededMatchLimit=!!s;let l=[],u=o;for(let t=0;t<a;t++){let t=getValue(u,`i32`);u+=SIZE_OF_INT;let n=getValue(u,`i32`);u+=SIZE_OF_INT;let r=getValue(u,`i32`);if(u+=SIZE_OF_INT,l.length=n,u=unmarshalCaptures(this,e.tree,u,l),this.textPredicates[t].every((e=>e(l)))){let e=l[r],n=this.setProperties[t];n&&(e.setProperties=n);let i=this.assertedProperties[t];i&&(e.assertedProperties=i);let a=this.refutedProperties[t];a&&(e.refutedProperties=a),c.push(e)}}return C._free(o),c}predicatesForPattern(e){return this.predicates[e]}didExceedMatchLimit(){return this.exceededMatchLimit}}function getText(e,t,n){let r=n-t,i=e.textCallback(t,null,n);for(t+=i.length;t<n;){let r=e.textCallback(t,null,n);if(!(r&&r.length>0))break;t+=r.length,i+=r}return t>n&&(i=i.slice(0,r)),i}function unmarshalCaptures(e,t,n,r){for(let i=0,a=r.length;i<a;i++){let a=getValue(n,`i32`),o=unmarshalNode(t,n+=SIZE_OF_INT);n+=SIZE_OF_NODE,r[i]={name:e.captureNames[a],node:o}}return n}function assertInternal(e){if(e!==INTERNAL)throw Error(`Illegal constructor`)}function isPoint(e){return e&&typeof e.row==`number`&&typeof e.column==`number`}function marshalNode(e){let t=TRANSFER_BUFFER;setValue(t,e.id,`i32`),t+=SIZE_OF_INT,setValue(t,e.startIndex,`i32`),t+=SIZE_OF_INT,setValue(t,e.startPosition.row,`i32`),t+=SIZE_OF_INT,setValue(t,e.startPosition.column,`i32`),t+=SIZE_OF_INT,setValue(t,e[0],`i32`)}function unmarshalNode(e,t=TRANSFER_BUFFER){let n=getValue(t,`i32`);if(n===0)return null;let r=getValue(t+=SIZE_OF_INT,`i32`),i=getValue(t+=SIZE_OF_INT,`i32`),a=getValue(t+=SIZE_OF_INT,`i32`),o=getValue(t+=SIZE_OF_INT,`i32`),s=new Node(INTERNAL,e);return s.id=n,s.startIndex=r,s.startPosition={row:i,column:a},s[0]=o,s}function marshalTreeCursor(e,t=TRANSFER_BUFFER){setValue(t+0*SIZE_OF_INT,e[0],`i32`),setValue(t+1*SIZE_OF_INT,e[1],`i32`),setValue(t+2*SIZE_OF_INT,e[2],`i32`)}function unmarshalTreeCursor(e){e[0]=getValue(TRANSFER_BUFFER+0*SIZE_OF_INT,`i32`),e[1]=getValue(TRANSFER_BUFFER+1*SIZE_OF_INT,`i32`),e[2]=getValue(TRANSFER_BUFFER+2*SIZE_OF_INT,`i32`)}function marshalPoint(e,t){setValue(e,t.row,`i32`),setValue(e+SIZE_OF_INT,t.column,`i32`)}function unmarshalPoint(e){return{row:getValue(e,`i32`),column:getValue(e+SIZE_OF_INT,`i32`)}}function marshalRange(e,t){marshalPoint(e,t.startPosition),marshalPoint(e+=SIZE_OF_POINT,t.endPosition),setValue(e+=SIZE_OF_POINT,t.startIndex,`i32`),setValue(e+=SIZE_OF_INT,t.endIndex,`i32`),e+=SIZE_OF_INT}function unmarshalRange(e){let t={};return t.startPosition=unmarshalPoint(e),e+=SIZE_OF_POINT,t.endPosition=unmarshalPoint(e),e+=SIZE_OF_POINT,t.startIndex=getValue(e,`i32`),e+=SIZE_OF_INT,t.endIndex=getValue(e,`i32`),t}function marshalEdit(e){let t=TRANSFER_BUFFER;marshalPoint(t,e.startPosition),t+=SIZE_OF_POINT,marshalPoint(t,e.oldEndPosition),t+=SIZE_OF_POINT,marshalPoint(t,e.newEndPosition),t+=SIZE_OF_POINT,setValue(t,e.startIndex,`i32`),t+=SIZE_OF_INT,setValue(t,e.oldEndIndex,`i32`),t+=SIZE_OF_INT,setValue(t,e.newEndIndex,`i32`),t+=SIZE_OF_INT}for(let e of Object.getOwnPropertyNames(ParserImpl.prototype))Object.defineProperty(Parser.prototype,e,{value:ParserImpl.prototype[e],enumerable:!1,writable:!1});Parser.Language=Language,Module.onRuntimeInitialized=()=>{ParserImpl.init(),resolveInitPromise()}})))}}return Parser}();typeof exports==`object`&&(module.exports=TreeSitter)})),import_tree_sitter=/* @__PURE__ */ __toESM(require_tree_sitter(),1);function stringLiteralValue(e){return e.type===`string`||e.type===`template_string`&&!e.namedChildren.some(e=>e.type===`template_substitution`)?decodeStringBody(e.text.slice(1,-1)):null}function decodeStringBody(e){return e.replace(/\\(u\{([0-9a-fA-F]+)\}|u([0-9a-fA-F]{4})|x([0-9a-fA-F]{2})|([\s\S]))/g,(e,t,n,r,i,a)=>{if(n)return String.fromCodePoint(Number.parseInt(n,16));if(r)return String.fromCharCode(Number.parseInt(r,16));if(i)return String.fromCharCode(Number.parseInt(i,16));switch(a){case`n`:return`
3
- `;case`r`:return`\r`;case`t`:return` `;case`b`:return`\b`;case`f`:return`\f`;case`v`:return`\v`;case`0`:return`\0`;default:return a}})}const EXPORT_DECLARATIONS=/* @__PURE__ */ new Set([`function_declaration`,`generator_function_declaration`,`class_declaration`,`abstract_class_declaration`,`interface_declaration`,`type_alias_declaration`,`enum_declaration`,`lexical_declaration`,`variable_declaration`]);function importedNames(e){let t=e.namedChildren.find(e=>e.type===`import_clause`);if(!t)return[];let n=[];for(let e of t.namedChildren)if(e.type===`identifier`)n.push(`default as ${e.text}`);else if(e.type===`namespace_import`){let t=e.namedChildren.find(e=>e.type===`identifier`);n.push(`* as ${t?.text??`?`}`)}else if(e.type===`named_imports`)for(let t of e.namedChildren){if(t.type!==`import_specifier`)continue;let e=t.namedChildren.filter(e=>e.type===`identifier`),r=t.children.some(e=>e.type===`type`),i=e[0]?.text;if(!i)continue;let a=e[1]?.text;n.push(`${r?`type `:``}${i}${a?` as ${a}`:``}`)}return n}function exportSurface(e){let t=e.startPosition.row+1,n=e.children.some(e=>e.type===`type`),r=e.childForFieldName(`source`)??e.namedChildren.find(e=>e.type===`string`),i=r?stringLiteralValue(r)??void 0:void 0,a=e.children.some(e=>e.type==="default"),o=e.childForFieldName(`declaration`)??e.namedChildren.find(e=>EXPORT_DECLARATIONS.has(e.type));if(a){let e=o?declaredNames(o)[0]:void 0;return[{name:`default`,...e?{local:e}:{},kind:`default`,...n?{typeOnly:n}:{},line:t}]}if(o)return declaredNames(o).map(e=>({name:e,kind:`declaration`,...n?{typeOnly:n}:{},line:t}));let s=e.namedChildren.find(e=>e.type===`export_clause`);if(s){let e=[];for(let r of s.namedChildren){if(r.type!==`export_specifier`)continue;let a=r.namedChildren.filter(e=>e.type===`identifier`),o=a[0]?.text;if(!o)continue;let s=a[1]?.text;e.push({name:s??o,...s?{local:o}:{},...i?{source:i}:{},kind:`named`,...n?{typeOnly:n}:{},line:t})}return e}let c=e.namedChildren.find(e=>e.type===`namespace_export`);return c?[{name:`* as ${c.namedChildren.find(e=>e.type===`identifier`)?.text??`?`}`,...i?{source:i}:{},kind:`namespace`,...n?{typeOnly:n}:{},line:t}]:i?[{name:`*`,source:i,kind:`all`,...n?{typeOnly:n}:{},line:t}]:[]}function declaredNames(e){if(e.type===`lexical_declaration`||e.type===`variable_declaration`){let t=[];for(let n of e.namedChildren){if(n.type!==`variable_declarator`)continue;let e=n.childForFieldName(`name`);if(e){if(e.type===`identifier`)t.push(e.text);else for(let n of e.namedChildren)n.type===`identifier`&&t.push(n.text)}}return t}let t=e.childForFieldName(`name`);return t?[t.text]:[]}function membersOfClass(e,t){let n=e.namedChildren.find(e=>e.type===`class_body`);if(!n)return[];let r=[];for(let e of n.namedChildren){if(e.type===`public_field_definition`){let n=e.childForFieldName(`name`)??e.namedChildren.find(e=>e.type===`property_identifier`);if(!n)continue;r.push({owner:t,name:n.text,line:e.startPosition.row+1,lines:e.endPosition.row-e.startPosition.row+1,from:`field`});continue}if(e.type!==`method_definition`||e.childForFieldName(`name`)?.text!==`constructor`)continue;let n=e.childForFieldName(`parameters`)??e.namedChildren.find(e=>e.type===`formal_parameters`);if(n)for(let e of n.namedChildren){if(e.type!==`required_parameter`&&e.type!==`optional_parameter`||!(e.namedChildren.some(e=>e.type===`accessibility_modifier`)||/^(public|private|protected|readonly)\b/.test(e.text)))continue;let n=e.namedChildren.find(e=>e.type===`identifier`);n&&r.push({owner:t,name:n.text,line:e.startPosition.row+1,lines:e.endPosition.row-e.startPosition.row+1,from:`parameter`})}}return r.sort((e,t)=>e.line-t.line)}const FUNCTION_TYPES=/* @__PURE__ */ new Set([`function_declaration`,`function_expression`,`arrow_function`,`method_definition`,`generator_function_declaration`,`generator_function`]),DECISION_TYPES=/* @__PURE__ */ new Set([`if_statement`,`for_statement`,`for_in_statement`,`while_statement`,`do_statement`,`switch_case`,`catch_clause`,`ternary_expression`,`conditional_expression`]),LOGICAL_OPERATORS=/* @__PURE__ */ new Set([`&&`,`||`,`??`]);function usesTsxGrammar(e){let t=e.toLowerCase();return t.endsWith(`.tsx`)||t.endsWith(`.jsx`)||t.endsWith(`.js`)||t.endsWith(`.mjs`)||t.endsWith(`.cjs`)}function isComment(e){return e.startsWith(`//`)||e.startsWith(`/*`)||e.startsWith(`#!`)}function commentText(e){return isComment(e)}function functionComplexity(e){let t=1,n=e.childForFieldName(`body`),r=[];if(n)r.push(n);else for(let t of e.children)r.push(t);for(;r.length>0;){let e=r.pop();if(!FUNCTION_TYPES.has(e.type)){if(DECISION_TYPES.has(e.type)&&t++,e.type===`binary_expression`||e.type===`augmented_assignment_expression`){let n=e.childForFieldName(`operator`)?.text;n&&LOGICAL_OPERATORS.has(n)&&t++}for(let t of e.children)r.push(t)}}return t}function countLines(e){if(e.length===0)return 0;let t=1;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);(r===10||r===13&&e.charCodeAt(n+1)!==10)&&t++}let n=e.charCodeAt(e.length-1);return n===10||n===13?t-1:t}function findImportSource(e){return e.childForFieldName(`source`)||(e.namedChildren.find(e=>e.type===`import_require_clause`)?.childForFieldName(`source`)??null)}function callImportKind(e){let t=e.childForFieldName(`function`);return t?t.type===`import`?`dynamic`:t.type===`identifier`&&t.text===`require`?`require`:null:null}function walkTree(e,t){let n=e.map(e=>({node:e,path:e.name,depth:0})).reverse();for(;n.length>0;){let e=n.pop();t(e);let r=e.node.children;if(r&&r.length!==0)for(let t=r.length-1;t>=0;t--){let i=r[t];n.push({node:i,path:`${e.path}/${i.name}`,depth:e.depth+1})}}}const fromNumH=e=>e/2**32|0,fromNumL=e=>e>>>0;function setU64FromNum(e,t,n,r){let i=fromNumH(n),a=fromNumL(n);e.setUint32(t,r?a:i,r),e.setUint32(t+4,r?i:a,r)}function isBytes(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}const atitle=e=>e?`"${e}" `:``;function anumber(e,t=``){if(typeof e!=`number`)throw TypeError(atitle(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(atitle(t)+`expected integer >= 0, got `+e);return e}function abytes(e,t,n=``){if(isBytes(e)&&(t===void 0||e.length===t))return e;t!==void 0&&anumber(t,`length`);let r=isBytes(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=atitle(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}const aobject=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError((t===`object`?``:`"${t}" `)+`expected object, got type=`+typeof e)},aopts=(e,t)=>{aobject(e,t);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`"${t}" expected plain object`);if(Object.hasOwn(e,`__proto__`))throw TypeError(`"${t}.__proto__" is not allowed`)};function aexists(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function aoutput(e,t){abytes(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function clean(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function createView(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function rotr(e,t){return e<<32-t|e>>>t}function rotl(e,t){return e<<t|e>>>32-t>>>0}function checkOpts(e,t,n=`opts`){return aopts(e,`defaults`),t!==void 0&&aopts(t,n),Object.assign(Object.create(null),e,t)}function createHasher(e,t={}){if(typeof e!=`function`)throw TypeError(`"hashCons" expected function, got type=`+typeof e);t=checkOpts({},t,`info`);let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}const oidNist=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function Chi(e,t,n){return e&t^~e&n}function Maj(e,t,n){return e&t^e&n^t&n}var HashMD=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,n,r){this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=createView(this.buffer)}update(e){aexists(this),abytes(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length,a=!1;for(let o=0;o<i;){let s=Math.min(r-this.pos,i-o);if(s===r){let t=createView(e);for(;r<=i-o;o+=r)this.process(t,o);a=!0}else n.set(o===0&&s===i?e:e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===r&&(this.process(t,0),this.pos=0,a=!0)}return this.length+=e.length,a&&this.roundClean(),this}digestInto(e){aexists(this),aoutput(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,t.fill(0,a),this.padOffset>r-a&&(this.process(n,0),t.fill(0)),setU64FromNum(n,r-8,this.length*8,i),this.process(n,0),this.roundClean();let o=e===t?n:createView(e),s=this.outputLen,c=s/4,l=this.get();if(s%4||c>l.length)throw Error(`invalid outputLen`);for(let e=0;e<c;e++)o.setUint32(4*e,l[e],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneIntoMeta(e){let{buffer:t,length:n,finished:r,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=r,e.length=n,e.pos=a,a&&e.buffer.set(t),e}clone(){return this._cloneInto()}};const SHA256_IV=/* @__PURE__ */ Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),SHA1_IV=/* @__PURE__ */ Uint32Array.from([1732584193,4023233417,2562383102,271733878,3285377520]),p32=2**32,K=/* @__PURE__ */ Array.from({length:64},(e,t)=>Math.floor(p32*Math.abs(Math.sin(t+1)))),MD5_IV=/* @__PURE__ */ SHA1_IV.slice(0,4),MD5_W=/* @__PURE__ */ new Uint32Array(16),MD5_SHIFTS=/* @__PURE__ */ (()=>{let e=[[7,12,17,22],[5,9,14,20],[4,11,16,23],[6,10,15,21]];return Uint8Array.from({length:64},(t,n)=>e[Math.floor(n/16)][n%4])})();var _MD5=class extends HashMD{A=MD5_IV[0]|0;B=MD5_IV[1]|0;C=MD5_IV[2]|0;D=MD5_IV[3]|0;constructor(){super(64,16,8,!0)}get(){let{A:e,B:t,C:n,D:r}=this;return[e,t,n,r]}set(e,t,n,r){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let n=0;n<16;n++,t+=4)MD5_W[n]=e.getUint32(t,!0);let{A:n,B:r,C:i,D:a}=this;for(let e=0;e<64;e++){let t,o;e<16?(t=Chi(r,i,a),o=e):e<32?(t=Chi(a,r,i),o=(5*e+1)%16):e<48?(t=r^i^a,o=(3*e+5)%16):(t=i^(r|~a),o=7*e%16),t=t+n+K[e]+MD5_W[o],n=a,a=i,i=r,r+=rotl(t,MD5_SHIFTS[e])}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,this.set(n,r,i,a)}roundClean(){clean(MD5_W)}destroy(){this.destroyed=!0,this.set(0,0,0,0),clean(this.buffer)}};const md5=/* @__PURE__ */ createHasher(()=>new _MD5),SHA256_K=/* @__PURE__ */ Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),SHA256_W=/* @__PURE__ */ new Uint32Array(64);var SHA2_32B=class extends HashMD{A=0;B=0;C=0;D=0;E=0;F=0;G=0;H=0;constructor(e,t){super(64,e,8,!1),this.A=t[0]|0,this.B=t[1]|0,this.C=t[2]|0,this.D=t[3]|0,this.E=t[4]|0,this.F=t[5]|0,this.G=t[6]|0,this.H=t[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let n=0;n<16;n++,t+=4)SHA256_W[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=SHA256_W[e-15],n=SHA256_W[e-2],r=rotr(t,7)^rotr(t,18)^t>>>3,i=rotr(n,17)^rotr(n,19)^n>>>10;SHA256_W[e]=i+SHA256_W[e-7]+r+SHA256_W[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=rotr(o,6)^rotr(o,11)^rotr(o,25),u=l+t+Chi(o,s,c)+SHA256_K[e]+SHA256_W[e]|0,d=(rotr(n,2)^rotr(n,13)^rotr(n,22))+Maj(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){clean(SHA256_W)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),clean(this.buffer)}},_SHA256=class extends SHA2_32B{constructor(){super(32,SHA256_IV)}};const sha256=/* @__PURE__ */ createHasher(()=>new _SHA256,/* @__PURE__ */ oidNist(1)),encoder=new TextEncoder;function sha256Hex(e){return toHex(sha256(encoder.encode(e)))}function md5Hex(e){return toHex(md5(encoder.encode(e)))}function toHex(e){let t=``;for(let n of e)t+=n.toString(16).padStart(2,`0`);return t}const ID_LENGTH=16;function normalizeName(e){return e.normalize(`NFC`)}function pathSegments(e){let t=[];for(let n of e.replace(/\\/g,`/`).split(`/`)){let e=normalizeName(n);e!==``&&e!==`.`&&(e===`..`?t.pop():t.push(e))}return t}function canonicalPath(e){return`/${e.map(normalizeName).join(`/`)}`}function idFromCanonicalPath(e,t=`File`){return sha256Hex(t+(e.startsWith(`/`)?e:`/${e}`)).slice(0,16)}function nodeId(e,t){return idFromCanonicalPath(canonicalPath(t),e)}function fileId(e){return nodeId(`File`,pathSegments(e))}function folderId(e){return nodeId(`Folder`,pathSegments(e))}const DECLARATION_KINDS={function_declaration:`function`,generator_function_declaration:`function`,method_definition:`function`,class_declaration:`class`,abstract_class_declaration:`class`,interface_declaration:`interface`,type_alias_declaration:`type`,enum_declaration:`enum`},FUNCTION_VALUES=/* @__PURE__ */ new Set([`arrow_function`,`function_expression`,`generator_function`]),CLASS_VALUES=/* @__PURE__ */ new Set([`class`,`class_expression`]),MODULE_SCOPE_WRAPPERS=/* @__PURE__ */ new Set([`program`,`export_statement`,`ambient_declaration`,`lexical_declaration`,`variable_declaration`]);function declaratorKind(e,t){return e?FUNCTION_VALUES.has(e.type)?`function`:CLASS_VALUES.has(e.type)?`class`:t?`variable`:null:null}function describeSymbol(e,t,n,r,i){let a={name:e,kind:t,line:n.startPosition.row+1,hash:bodyHash(n,r)};return t===`function`&&(a.complexity=i??functionComplexity(n),a.lines=n.endPosition.row-n.startPosition.row+1),a}function bodyHash(e,t){let n=[],r=[e];for(;r.length>0;){let e=r.pop();if(t&&e.childCount===0&&e.startPosition.row===t.startPosition.row&&e.startPosition.column===t.startPosition.column)continue;if(e.childCount===0){if(commentText(e.text))continue;n.push(e.text);continue}let i=e.children;for(let e=i.length-1;e>=0;e--)r.push(i[e])}return sha256Hex(n.join(` `))}function analyzeTree(e,t){let n=/* @__PURE__ */ new Set,r=[],i=[],a=[],o=[],s=/* @__PURE__ */ new Map,c=0,l=0,u=0,d=[{node:t,moduleScope:!0}];for(;d.length>0;){let{node:e,moduleScope:t}=d.pop();if(e.childCount===0){if(!isComment(e.text)&&e.text.trim()!==``)for(let t=e.startPosition.row;t<=e.endPosition.row;t++)n.add(t);continue}if(FUNCTION_TYPES.has(e.type)){c++;let t=complexityOf(e,s),n=e.endPosition.row-e.startPosition.row+1;t>l&&(l=t),n>u&&(u=n)}let f=e.children;if(e.type===`import_statement`){let t=findImportSource(e),n=t?stringLiteralValue(t):null;if(n!==null){let t=e.namedChildren.some(e=>e.type===`import_require_clause`),i=importedNames(e);r.push({specifier:n,kind:t?`require`:`static`,typeOnly:f.some(e=>e.type===`type`),line:e.startPosition.row+1,...i.length>0?{names:i}:{}})}}else if(e.type===`export_statement`){o.push(...exportSurface(e));let t=e.childForFieldName(`source`),n=t?stringLiteralValue(t):null;n!==null&&r.push({specifier:n,kind:`export`,typeOnly:f.some(e=>e.type===`type`),line:e.startPosition.row+1})}else if(e.type===`call_expression`){let t=callImportKind(e);if(t){let n=e.childForFieldName(`arguments`)?.namedChildren[0],i=n?stringLiteralValue(n):null;i!==null&&r.push({specifier:i,kind:t,typeOnly:!1,line:e.startPosition.row+1})}}let p=DECLARATION_KINDS[e.type];if(p){let t=e.childForFieldName(`name`),n=t?.text;n&&(i.push(describeSymbol(n,p,e,t,s.get(positionKey(e)))),p===`class`&&a.push(...membersOfClass(e,n)))}else if(e.type===`variable_declarator`){let n=e.childForFieldName(`name`),r=n?.type===`identifier`?n.text:null,o=e.childForFieldName(`value`),c=declaratorKind(o,t);r&&o&&c&&(c===`function`?i.push(describeSymbol(r,`function`,o,void 0,complexityOf(o,s))):c===`variable`?i.push(describeSymbol(r,`variable`,e,n)):(i.push(describeSymbol(r,c,o)),c===`class`&&a.push(...membersOfClass(o,r))))}let m=t&&MODULE_SCOPE_WRAPPERS.has(e.type);for(let e=f.length-1;e>=0;e--)d.push({node:f[e],moduleScope:m})}return i.sort((e,t)=>e.line-t.line),a.sort((e,t)=>e.line-t.line),o.sort((e,t)=>e.line-t.line),{metrics:{loc:countLines(e),rloc:n.size,functions:c,maxComplexity:l,maxFunctionLength:u},imports:r,symbols:i,members:a,exports:o}}function complexityOf(e,t){let n=positionKey(e),r=t.get(n);if(r!==void 0)return r;let i=functionComplexity(e);return t.set(n,i),i}function positionKey(e){return`${e.startPosition.row}:${e.startPosition.column}`}const EXTENSIONS=[`.ts`,`.tsx`,`.mts`,`.cts`,`.js`,`.jsx`,`.mjs`,`.cjs`];var WasmTypeScriptParser=class e{name=`typescript-wasm`;extensions=EXTENSIONS;tsParser;tsxParser;constructor(e,t){this.tsParser=e,this.tsxParser=t}static async create(t,n,r={}){await import_tree_sitter.default.init(r.runtime?{locateFile:()=>r.runtime}:void 0);let i=await import_tree_sitter.default.Language.load(t),a=await import_tree_sitter.default.Language.load(n),o=new import_tree_sitter.default;o.setLanguage(i);let s=new import_tree_sitter.default;return s.setLanguage(a),new e(o,s)}parse(e,t){let n=(usesTsxGrammar(t)?this.tsxParser:this.tsParser).parse(e).rootNode;return analyzeTree(e,n)}};function buildGraph(e,t){let n=[...new Set(e)].sort(compareStrings$2),r=new Set(n),i=/* @__PURE__ */ new Map;for(let e of t){if(!r.has(e.from)||!r.has(e.to))continue;let t=`${e.from}\u0000${e.to}`,n=i.get(t);n?(n.weight++,e.typeOnly&&n.typeOnly++):i.set(t,{from:e.from,to:e.to,weight:1,typeOnly:+!!e.typeOnly})}let a=[...i.values()].sort((e,t)=>compareStrings$2(e.from,t.from)||compareStrings$2(e.to,t.to)).map(e=>({...e,isCyclic:!1})),o=a.filter(isRuntimeEdge),s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map;for(let e of n)s.set(e,[]),c.set(e,[]),l.set(e,[]),u.set(e,[]);for(let e of a)s.get(e.from)?.push(e.to),c.get(e.to)?.push(e.from);for(let e of o)l.get(e.from)?.push(e.to),u.get(e.to)?.push(e.from);for(let e of s.values())e.sort(compareStrings$2);for(let e of c.values())e.sort(compareStrings$2);for(let e of l.values())e.sort(compareStrings$2);for(let e of u.values())e.sort(compareStrings$2);let d=stronglyConnectedComponents(n,l,u),f=/* @__PURE__ */ new Map;d.forEach((e,t)=>{for(let n of e)f.set(n,t)});let p=new Set(o.filter(e=>e.from===e.to).map(e=>e.from)),m=/* @__PURE__ */ new Set;d.forEach((e,t)=>{(e.length>1||e.length===1&&p.has(e[0]))&&m.add(t)});let h=componentLevels(d,o,f);for(let e of a){let t=f.get(e.from),n=f.get(e.to);e.isCyclic=isRuntimeEdge(e)&&t!==void 0&&t===n&&m.has(t)}let g=/* @__PURE__ */ new Map;for(let e of n){let t=f.get(e);t!==void 0&&g.set(e,{fanIn:c.get(e)?.length??0,fanOut:s.get(e)?.length??0,inCycle:+!!m.has(t),cycleSize:m.has(t)?d[t]?.length??0:0,dependencyLevel:h[t]??0})}return{edges:a,metrics:g,cycles:d.filter((e,t)=>m.has(t))}}function stronglyConnectedComponents(e,t,n){let r=/* @__PURE__ */ new Set,i=[];for(let n of e){if(r.has(n))continue;r.add(n);let e=[{node:n,neighbors:t.get(n)??[],index:0}];for(;e.length>0;){let n=e[e.length-1];if(n.index<n.neighbors.length){let i=n.neighbors[n.index++];r.has(i)||(r.add(i),e.push({node:i,neighbors:t.get(i)??[],index:0}))}else i.push(n.node),e.pop()}}let a=/* @__PURE__ */ new Set,o=[];for(let e=i.length-1;e>=0;e--){let t=i[e];if(a.has(t))continue;let r=[],s=[t];for(a.add(t);s.length>0;){let e=s.pop();r.push(e);for(let t of n.get(e)??[])a.has(t)||(a.add(t),s.push(t))}r.sort(compareStrings$2),o.push(r)}return o.sort((e,t)=>compareStrings$2(e[0],t[0])),o}function componentLevels(e,t,n){let r=/* @__PURE__ */ new Map,i=Array.from({length:e.length}).fill(0);for(let e of t){let t=n.get(e.from),a=n.get(e.to);if(t===void 0||a===void 0||t===a)continue;let o=r.get(t)??/* @__PURE__ */ new Set;o.has(a)||(o.add(a),r.set(t,o),i[a]=(i[a]??0)+1)}let a=Array.from({length:e.length}).fill(0),o=[];for(let t=0;t<e.length;t++)i[t]===0&&o.push(t);let s=0;for(;s<o.length;){let e=o[s++],t=[...r.get(e)??[]].sort((e,t)=>e-t);for(let n of t)a[n]=Math.max(a[n]??0,(a[e]??0)+1),i[n]=(i[n]??0)-1,i[n]===0&&o.push(n)}return a}function isRuntimeEdge(e){return e.weight>e.typeOnly}function compareStrings$2(e,t){return e<t?-1:+(e>t)}const EXTENSION_LANGUAGE={".ts":`ts`,".tsx":`ts`,".mts":`ts`,".cts":`ts`,".js":`js`,".jsx":`js`,".mjs":`js`,".cjs":`js`,".rs":`rust`,".wasm":`wasm`,".node":`node`},MIGRATION_EXTENSIONS=Object.keys(EXTENSION_LANGUAGE),LANGUAGE_ORDER=[`ts`,`js`,`rust`,`wasm`,`node`],RUST_BRIDGE=/#\[\s*(?:napi|wasm_bindgen)(?:\(|\])|\bnapi_derive\b|\bnapi::|\bwasm_bindgen(?:::|\b)|\bwasm-pack\b/,JS_FFI=/\bWebAssembly\s*\.\s*(?:instantiate|compile|Module|Instance)\b|\bprocess\.dlopen\b/;function languageForPath(e){let t=e.toLowerCase(),n=t.lastIndexOf(`.`);return n===-1?null:EXTENSION_LANGUAGE[t.slice(n)]??null}function isTsJsLanguage(e){return e===`ts`||e===`js`}function isNativeLanguage(e){return e===`wasm`||e===`node`}function measureRustSource(e){if(e.length===0)return{loc:0,rloc:0};let t=countPhysicalLines(e),n=/* @__PURE__ */ new Set,r=0,i=!1,a=0,o=!1,s=!1,c=!1,l=-1,u=()=>{i=!0},d=()=>{i&&n.add(r),r++,i=o||l>=0};for(let t=0;t<e.length;t++){let n=e[t],r=e[t+1];if(n===`\r`){if(r===`
3
+ `;case`r`:return`\r`;case`t`:return` `;case`b`:return`\b`;case`f`:return`\f`;case`v`:return`\v`;case`0`:return`\0`;default:return a}})}const EXPORT_DECLARATIONS=/* @__PURE__ */ new Set([`function_declaration`,`generator_function_declaration`,`class_declaration`,`abstract_class_declaration`,`interface_declaration`,`type_alias_declaration`,`enum_declaration`,`lexical_declaration`,`variable_declaration`]);function importedNames(e){let t=e.namedChildren.find(e=>e.type===`import_clause`);if(!t)return[];let n=[];for(let e of t.namedChildren)if(e.type===`identifier`)n.push(`default as ${e.text}`);else if(e.type===`namespace_import`){let t=e.namedChildren.find(e=>e.type===`identifier`);n.push(`* as ${t?.text??`?`}`)}else if(e.type===`named_imports`)for(let t of e.namedChildren){if(t.type!==`import_specifier`)continue;let e=t.namedChildren.filter(e=>e.type===`identifier`),r=t.children.some(e=>e.type===`type`),i=e[0]?.text;if(!i)continue;let a=e[1]?.text;n.push(`${r?`type `:``}${i}${a?` as ${a}`:``}`)}return n}function exportSurface(e){let t=e.startPosition.row+1,n=e.children.some(e=>e.type===`type`),r=e.childForFieldName(`source`)??e.namedChildren.find(e=>e.type===`string`),i=r?stringLiteralValue(r)??void 0:void 0,a=e.children.some(e=>e.type==="default"),o=e.childForFieldName(`declaration`)??e.namedChildren.find(e=>EXPORT_DECLARATIONS.has(e.type));if(a){let e=o?declaredNames(o)[0]:void 0;return[{name:`default`,...e?{local:e}:{},kind:`default`,...n?{typeOnly:n}:{},line:t}]}if(o)return declaredNames(o).map(e=>({name:e,kind:`declaration`,...n?{typeOnly:n}:{},line:t}));let s=e.namedChildren.find(e=>e.type===`export_clause`);if(s){let e=[];for(let r of s.namedChildren){if(r.type!==`export_specifier`)continue;let a=r.namedChildren.filter(e=>e.type===`identifier`),o=a[0]?.text;if(!o)continue;let s=a[1]?.text;e.push({name:s??o,...s?{local:o}:{},...i?{source:i}:{},kind:`named`,...n?{typeOnly:n}:{},line:t})}return e}let c=e.namedChildren.find(e=>e.type===`namespace_export`);return c?[{name:`* as ${c.namedChildren.find(e=>e.type===`identifier`)?.text??`?`}`,...i?{source:i}:{},kind:`namespace`,...n?{typeOnly:n}:{},line:t}]:i?[{name:`*`,source:i,kind:`all`,...n?{typeOnly:n}:{},line:t}]:[]}function declaredNames(e){if(e.type===`lexical_declaration`||e.type===`variable_declaration`){let t=[];for(let n of e.namedChildren){if(n.type!==`variable_declarator`)continue;let e=n.childForFieldName(`name`);if(e){if(e.type===`identifier`)t.push(e.text);else for(let n of e.namedChildren)n.type===`identifier`&&t.push(n.text)}}return t}let t=e.childForFieldName(`name`);return t?[t.text]:[]}function membersOfClass(e,t){let n=e.namedChildren.find(e=>e.type===`class_body`);if(!n)return[];let r=[];for(let e of n.namedChildren){if(e.type===`public_field_definition`){let n=e.childForFieldName(`name`)??e.namedChildren.find(e=>e.type===`property_identifier`);if(!n)continue;r.push({owner:t,name:n.text,line:e.startPosition.row+1,lines:e.endPosition.row-e.startPosition.row+1,from:`field`});continue}if(e.type!==`method_definition`||e.childForFieldName(`name`)?.text!==`constructor`)continue;let n=e.childForFieldName(`parameters`)??e.namedChildren.find(e=>e.type===`formal_parameters`);if(n)for(let e of n.namedChildren){if(e.type!==`required_parameter`&&e.type!==`optional_parameter`||!(e.namedChildren.some(e=>e.type===`accessibility_modifier`)||/^(public|private|protected|readonly)\b/.test(e.text)))continue;let n=e.namedChildren.find(e=>e.type===`identifier`);n&&r.push({owner:t,name:n.text,line:e.startPosition.row+1,lines:e.endPosition.row-e.startPosition.row+1,from:`parameter`})}}return r.sort((e,t)=>e.line-t.line)}const FUNCTION_TYPES=/* @__PURE__ */ new Set([`function_declaration`,`function_expression`,`arrow_function`,`method_definition`,`generator_function_declaration`,`generator_function`]),DECISION_TYPES=/* @__PURE__ */ new Set([`if_statement`,`for_statement`,`for_in_statement`,`while_statement`,`do_statement`,`switch_case`,`catch_clause`,`ternary_expression`,`conditional_expression`]),LOGICAL_OPERATORS=/* @__PURE__ */ new Set([`&&`,`||`,`??`]);function usesTsxGrammar(e){let t=e.toLowerCase();return t.endsWith(`.tsx`)||t.endsWith(`.jsx`)||t.endsWith(`.js`)||t.endsWith(`.mjs`)||t.endsWith(`.cjs`)}function isComment(e){return e.startsWith(`//`)||e.startsWith(`/*`)||e.startsWith(`#!`)}function commentText(e){return isComment(e)}function functionComplexity(e){let t=1,n=e.childForFieldName(`body`),r=[];if(n)r.push(n);else for(let t of e.children)r.push(t);for(;r.length>0;){let e=r.pop();if(!FUNCTION_TYPES.has(e.type)){if(DECISION_TYPES.has(e.type)&&t++,e.type===`binary_expression`||e.type===`augmented_assignment_expression`){let n=e.childForFieldName(`operator`)?.text;n&&LOGICAL_OPERATORS.has(n)&&t++}for(let t of e.children)r.push(t)}}return t}function countLines(e){if(e.length===0)return 0;let t=1;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);(r===10||r===13&&e.charCodeAt(n+1)!==10)&&t++}let n=e.charCodeAt(e.length-1);return n===10||n===13?t-1:t}function findImportSource(e){return e.childForFieldName(`source`)||(e.namedChildren.find(e=>e.type===`import_require_clause`)?.childForFieldName(`source`)??null)}function callImportKind(e){let t=e.childForFieldName(`function`);return t?t.type===`import`?`dynamic`:t.type===`identifier`&&t.text===`require`?`require`:null:null}function walkTree(e,t){let n=e.map(e=>({node:e,path:e.name,depth:0})).reverse();for(;n.length>0;){let e=n.pop();t(e);let r=e.node.children;if(r&&r.length!==0)for(let t=r.length-1;t>=0;t--){let i=r[t];n.push({node:i,path:`${e.path}/${i.name}`,depth:e.depth+1})}}}const fromNumH=e=>e/2**32|0,fromNumL=e=>e>>>0;function setU64FromNum(e,t,n,r){let i=fromNumH(n),a=fromNumL(n);e.setUint32(t,r?a:i,r),e.setUint32(t+4,r?i:a,r)}function isBytes(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}const atitle=e=>e?`"${e}" `:``;function anumber(e,t=``){if(typeof e!=`number`)throw TypeError(atitle(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(atitle(t)+`expected integer >= 0, got `+e);return e}function abytes(e,t,n=``){if(isBytes(e)&&(t===void 0||e.length===t))return e;t!==void 0&&anumber(t,`length`);let r=isBytes(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=atitle(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}const aobject=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError((t===`object`?``:`"${t}" `)+`expected object, got type=`+typeof e)},aopts=(e,t)=>{aobject(e,t);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`"${t}" expected plain object`);if(Object.hasOwn(e,`__proto__`))throw TypeError(`"${t}.__proto__" is not allowed`)};function aexists(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function aoutput(e,t){abytes(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function clean(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function createView(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function rotr(e,t){return e<<32-t|e>>>t}function rotl(e,t){return e<<t|e>>>32-t>>>0}function checkOpts(e,t,n=`opts`){return aopts(e,`defaults`),t!==void 0&&aopts(t,n),Object.assign(Object.create(null),e,t)}function createHasher(e,t={}){if(typeof e!=`function`)throw TypeError(`"hashCons" expected function, got type=`+typeof e);t=checkOpts({},t,`info`);let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}const oidNist=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function Chi(e,t,n){return e&t^~e&n}function Maj(e,t,n){return e&t^e&n^t&n}var HashMD=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,n,r){this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=createView(this.buffer)}update(e){aexists(this),abytes(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length,a=!1;for(let o=0;o<i;){let s=Math.min(r-this.pos,i-o);if(s===r){let t=createView(e);for(;r<=i-o;o+=r)this.process(t,o);a=!0}else n.set(o===0&&s===i?e:e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===r&&(this.process(t,0),this.pos=0,a=!0)}return this.length+=e.length,a&&this.roundClean(),this}digestInto(e){aexists(this),aoutput(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,t.fill(0,a),this.padOffset>r-a&&(this.process(n,0),t.fill(0)),setU64FromNum(n,r-8,this.length*8,i),this.process(n,0),this.roundClean();let o=e===t?n:createView(e),s=this.outputLen,c=s/4,l=this.get();if(s%4||c>l.length)throw Error(`invalid outputLen`);for(let e=0;e<c;e++)o.setUint32(4*e,l[e],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneIntoMeta(e){let{buffer:t,length:n,finished:r,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=r,e.length=n,e.pos=a,a&&e.buffer.set(t),e}clone(){return this._cloneInto()}};const SHA256_IV=/* @__PURE__ */ Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),SHA1_IV=/* @__PURE__ */ Uint32Array.from([1732584193,4023233417,2562383102,271733878,3285377520]),p32=2**32,K=/* @__PURE__ */ Array.from({length:64},(e,t)=>Math.floor(p32*Math.abs(Math.sin(t+1)))),MD5_IV=/* @__PURE__ */ SHA1_IV.slice(0,4),MD5_W=/* @__PURE__ */ new Uint32Array(16),MD5_SHIFTS=/* @__PURE__ */ (()=>{let e=[[7,12,17,22],[5,9,14,20],[4,11,16,23],[6,10,15,21]];return Uint8Array.from({length:64},(t,n)=>e[Math.floor(n/16)][n%4])})();var _MD5=class extends HashMD{A=MD5_IV[0]|0;B=MD5_IV[1]|0;C=MD5_IV[2]|0;D=MD5_IV[3]|0;constructor(){super(64,16,8,!0)}get(){let{A:e,B:t,C:n,D:r}=this;return[e,t,n,r]}set(e,t,n,r){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let n=0;n<16;n++,t+=4)MD5_W[n]=e.getUint32(t,!0);let{A:n,B:r,C:i,D:a}=this;for(let e=0;e<64;e++){let t,o;e<16?(t=Chi(r,i,a),o=e):e<32?(t=Chi(a,r,i),o=(5*e+1)%16):e<48?(t=r^i^a,o=(3*e+5)%16):(t=i^(r|~a),o=7*e%16),t=t+n+K[e]+MD5_W[o],n=a,a=i,i=r,r+=rotl(t,MD5_SHIFTS[e])}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,this.set(n,r,i,a)}roundClean(){clean(MD5_W)}destroy(){this.destroyed=!0,this.set(0,0,0,0),clean(this.buffer)}};const md5=/* @__PURE__ */ createHasher(()=>new _MD5),SHA256_K=/* @__PURE__ */ Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),SHA256_W=/* @__PURE__ */ new Uint32Array(64);var SHA2_32B=class extends HashMD{A=0;B=0;C=0;D=0;E=0;F=0;G=0;H=0;constructor(e,t){super(64,e,8,!1),this.A=t[0]|0,this.B=t[1]|0,this.C=t[2]|0,this.D=t[3]|0,this.E=t[4]|0,this.F=t[5]|0,this.G=t[6]|0,this.H=t[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let n=0;n<16;n++,t+=4)SHA256_W[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=SHA256_W[e-15],n=SHA256_W[e-2],r=rotr(t,7)^rotr(t,18)^t>>>3,i=rotr(n,17)^rotr(n,19)^n>>>10;SHA256_W[e]=i+SHA256_W[e-7]+r+SHA256_W[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=rotr(o,6)^rotr(o,11)^rotr(o,25),u=l+t+Chi(o,s,c)+SHA256_K[e]+SHA256_W[e]|0,d=(rotr(n,2)^rotr(n,13)^rotr(n,22))+Maj(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){clean(SHA256_W)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),clean(this.buffer)}},_SHA256=class extends SHA2_32B{constructor(){super(32,SHA256_IV)}};const sha256=/* @__PURE__ */ createHasher(()=>new _SHA256,/* @__PURE__ */ oidNist(1)),encoder=new TextEncoder;function sha256Hex(e){return toHex(sha256(encoder.encode(e)))}function md5Hex(e){return toHex(md5(encoder.encode(e)))}function toHex(e){let t=``;for(let n of e)t+=n.toString(16).padStart(2,`0`);return t}const ID_LENGTH=16;function normalizeName(e){return e.normalize(`NFC`)}function pathSegments(e){let t=[];for(let n of e.replace(/\\/g,`/`).split(`/`)){let e=normalizeName(n);e!==``&&e!==`.`&&(e===`..`?t.pop():t.push(e))}return t}function canonicalPath(e){return`/${e.map(normalizeName).join(`/`)}`}function idFromCanonicalPath(e,t=`File`){return sha256Hex(t+(e.startsWith(`/`)?e:`/${e}`)).slice(0,16)}function nodeId(e,t){return idFromCanonicalPath(canonicalPath(t),e)}function fileId(e){return nodeId(`File`,pathSegments(e))}function folderId(e){return nodeId(`Folder`,pathSegments(e))}const DECLARATION_KINDS={function_declaration:`function`,generator_function_declaration:`function`,method_definition:`function`,class_declaration:`class`,abstract_class_declaration:`class`,interface_declaration:`interface`,type_alias_declaration:`type`,enum_declaration:`enum`},FUNCTION_VALUES=/* @__PURE__ */ new Set([`arrow_function`,`function_expression`,`generator_function`]),CLASS_VALUES=/* @__PURE__ */ new Set([`class`,`class_expression`]),MODULE_SCOPE_WRAPPERS=/* @__PURE__ */ new Set([`program`,`export_statement`,`ambient_declaration`,`lexical_declaration`,`variable_declaration`]);function declaratorKind(e,t){return e?FUNCTION_VALUES.has(e.type)?`function`:CLASS_VALUES.has(e.type)?`class`:t?`variable`:null:null}function describeSymbol(e,t,n,r,i){let a={name:e,kind:t,line:n.startPosition.row+1,lines:n.endPosition.row-n.startPosition.row+1,hash:bodyHash(n,r)};return t===`function`&&(a.complexity=i??functionComplexity(n)),a}function bodyHash(e,t){let n=[],r=[e];for(;r.length>0;){let e=r.pop();if(t&&e.childCount===0&&e.startPosition.row===t.startPosition.row&&e.startPosition.column===t.startPosition.column)continue;if(e.childCount===0){if(commentText(e.text))continue;n.push(e.text);continue}let i=e.children;for(let e=i.length-1;e>=0;e--)r.push(i[e])}return sha256Hex(n.join(` `))}function analyzeTree(e,t){let n=/* @__PURE__ */ new Set,r=[],i=[],a=[],o=[],s=/* @__PURE__ */ new Map,c=0,l=0,u=0,d=[{node:t,moduleScope:!0}];for(;d.length>0;){let{node:e,moduleScope:t}=d.pop();if(e.childCount===0){if(!isComment(e.text)&&e.text.trim()!==``)for(let t=e.startPosition.row;t<=e.endPosition.row;t++)n.add(t);continue}if(FUNCTION_TYPES.has(e.type)){c++;let t=complexityOf(e,s),n=e.endPosition.row-e.startPosition.row+1;t>l&&(l=t),n>u&&(u=n)}let f=e.children;if(e.type===`import_statement`){let t=findImportSource(e),n=t?stringLiteralValue(t):null;if(n!==null){let t=e.namedChildren.some(e=>e.type===`import_require_clause`),i=importedNames(e);r.push({specifier:n,kind:t?`require`:`static`,typeOnly:f.some(e=>e.type===`type`),line:e.startPosition.row+1,...i.length>0?{names:i}:{}})}}else if(e.type===`export_statement`){o.push(...exportSurface(e));let t=e.childForFieldName(`source`),n=t?stringLiteralValue(t):null;n!==null&&r.push({specifier:n,kind:`export`,typeOnly:f.some(e=>e.type===`type`),line:e.startPosition.row+1})}else if(e.type===`call_expression`){let t=callImportKind(e);if(t){let n=e.childForFieldName(`arguments`)?.namedChildren[0],i=n?stringLiteralValue(n):null;i!==null&&r.push({specifier:i,kind:t,typeOnly:!1,line:e.startPosition.row+1})}}let p=DECLARATION_KINDS[e.type];if(p){let t=e.childForFieldName(`name`),n=t?.text;n&&(i.push(describeSymbol(n,p,e,t,s.get(positionKey(e)))),p===`class`&&a.push(...membersOfClass(e,n)))}else if(e.type===`variable_declarator`){let n=e.childForFieldName(`name`),r=n?.type===`identifier`?n.text:null,o=e.childForFieldName(`value`),c=declaratorKind(o,t);r&&o&&c&&(c===`function`?i.push(describeSymbol(r,`function`,o,void 0,complexityOf(o,s))):c===`variable`?i.push(describeSymbol(r,`variable`,e,n)):(i.push(describeSymbol(r,c,o)),c===`class`&&a.push(...membersOfClass(o,r))))}let m=t&&MODULE_SCOPE_WRAPPERS.has(e.type);for(let e=f.length-1;e>=0;e--)d.push({node:f[e],moduleScope:m})}return i.sort((e,t)=>e.line-t.line),a.sort((e,t)=>e.line-t.line),o.sort((e,t)=>e.line-t.line),{metrics:{loc:countLines(e),rloc:n.size,functions:c,maxComplexity:l,maxFunctionLength:u},imports:r,symbols:i,members:a,exports:o}}function complexityOf(e,t){let n=positionKey(e),r=t.get(n);if(r!==void 0)return r;let i=functionComplexity(e);return t.set(n,i),i}function positionKey(e){return`${e.startPosition.row}:${e.startPosition.column}`}const EXTENSIONS=[`.ts`,`.tsx`,`.mts`,`.cts`,`.js`,`.jsx`,`.mjs`,`.cjs`];var WasmTypeScriptParser=class e{name=`typescript-wasm`;extensions=EXTENSIONS;tsParser;tsxParser;constructor(e,t){this.tsParser=e,this.tsxParser=t}static async create(t,n,r={}){await import_tree_sitter.default.init(r.runtime?{locateFile:()=>r.runtime}:void 0);let i=await import_tree_sitter.default.Language.load(t),a=await import_tree_sitter.default.Language.load(n),o=new import_tree_sitter.default;o.setLanguage(i);let s=new import_tree_sitter.default;return s.setLanguage(a),new e(o,s)}parse(e,t){let n=(usesTsxGrammar(t)?this.tsxParser:this.tsParser).parse(e).rootNode;return analyzeTree(e,n)}};function buildGraph(e,t){let n=[...new Set(e)].sort(compareStrings$2),r=new Set(n),i=/* @__PURE__ */ new Map;for(let e of t){if(!r.has(e.from)||!r.has(e.to))continue;let t=`${e.from}\u0000${e.to}`,n=i.get(t);n?(n.weight++,e.typeOnly&&n.typeOnly++):i.set(t,{from:e.from,to:e.to,weight:1,typeOnly:+!!e.typeOnly})}let a=[...i.values()].sort((e,t)=>compareStrings$2(e.from,t.from)||compareStrings$2(e.to,t.to)).map(e=>({...e,isCyclic:!1})),o=a.filter(isRuntimeEdge),s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map;for(let e of n)s.set(e,[]),c.set(e,[]),l.set(e,[]),u.set(e,[]);for(let e of a)s.get(e.from)?.push(e.to),c.get(e.to)?.push(e.from);for(let e of o)l.get(e.from)?.push(e.to),u.get(e.to)?.push(e.from);for(let e of s.values())e.sort(compareStrings$2);for(let e of c.values())e.sort(compareStrings$2);for(let e of l.values())e.sort(compareStrings$2);for(let e of u.values())e.sort(compareStrings$2);let d=stronglyConnectedComponents(n,l,u),f=/* @__PURE__ */ new Map;d.forEach((e,t)=>{for(let n of e)f.set(n,t)});let p=new Set(o.filter(e=>e.from===e.to).map(e=>e.from)),m=/* @__PURE__ */ new Set;d.forEach((e,t)=>{(e.length>1||e.length===1&&p.has(e[0]))&&m.add(t)});let h=componentLevels(d,o,f);for(let e of a){let t=f.get(e.from),n=f.get(e.to);e.isCyclic=isRuntimeEdge(e)&&t!==void 0&&t===n&&m.has(t)}let g=/* @__PURE__ */ new Map;for(let e of n){let t=f.get(e);t!==void 0&&g.set(e,{fanIn:c.get(e)?.length??0,fanOut:s.get(e)?.length??0,inCycle:+!!m.has(t),cycleSize:m.has(t)?d[t]?.length??0:0,dependencyLevel:h[t]??0})}return{edges:a,metrics:g,cycles:d.filter((e,t)=>m.has(t))}}function stronglyConnectedComponents(e,t,n){let r=/* @__PURE__ */ new Set,i=[];for(let n of e){if(r.has(n))continue;r.add(n);let e=[{node:n,neighbors:t.get(n)??[],index:0}];for(;e.length>0;){let n=e[e.length-1];if(n.index<n.neighbors.length){let i=n.neighbors[n.index++];r.has(i)||(r.add(i),e.push({node:i,neighbors:t.get(i)??[],index:0}))}else i.push(n.node),e.pop()}}let a=/* @__PURE__ */ new Set,o=[];for(let e=i.length-1;e>=0;e--){let t=i[e];if(a.has(t))continue;let r=[],s=[t];for(a.add(t);s.length>0;){let e=s.pop();r.push(e);for(let t of n.get(e)??[])a.has(t)||(a.add(t),s.push(t))}r.sort(compareStrings$2),o.push(r)}return o.sort((e,t)=>compareStrings$2(e[0],t[0])),o}function componentLevels(e,t,n){let r=/* @__PURE__ */ new Map,i=Array.from({length:e.length}).fill(0);for(let e of t){let t=n.get(e.from),a=n.get(e.to);if(t===void 0||a===void 0||t===a)continue;let o=r.get(t)??/* @__PURE__ */ new Set;o.has(a)||(o.add(a),r.set(t,o),i[a]=(i[a]??0)+1)}let a=Array.from({length:e.length}).fill(0),o=[];for(let t=0;t<e.length;t++)i[t]===0&&o.push(t);let s=0;for(;s<o.length;){let e=o[s++],t=[...r.get(e)??[]].sort((e,t)=>e-t);for(let n of t)a[n]=Math.max(a[n]??0,(a[e]??0)+1),i[n]=(i[n]??0)-1,i[n]===0&&o.push(n)}return a}function isRuntimeEdge(e){return e.weight>e.typeOnly}function compareStrings$2(e,t){return e<t?-1:+(e>t)}const EXTENSION_LANGUAGE={".ts":`ts`,".tsx":`ts`,".mts":`ts`,".cts":`ts`,".js":`js`,".jsx":`js`,".mjs":`js`,".cjs":`js`,".rs":`rust`,".wasm":`wasm`,".node":`node`},MIGRATION_EXTENSIONS=Object.keys(EXTENSION_LANGUAGE),LANGUAGE_ORDER=[`ts`,`js`,`rust`,`wasm`,`node`],RUST_BRIDGE=/#\[\s*(?:napi|wasm_bindgen)(?:\(|\])|\bnapi_derive\b|\bnapi::|\bwasm_bindgen(?:::|\b)|\bwasm-pack\b/,JS_FFI=/\bWebAssembly\s*\.\s*(?:instantiate|compile|Module|Instance)\b|\bprocess\.dlopen\b/;function languageForPath(e){let t=e.toLowerCase(),n=t.lastIndexOf(`.`);return n===-1?null:EXTENSION_LANGUAGE[t.slice(n)]??null}function isTsJsLanguage(e){return e===`ts`||e===`js`}function isNativeLanguage(e){return e===`wasm`||e===`node`}function measureRustSource(e){if(e.length===0)return{loc:0,rloc:0};let t=countPhysicalLines(e),n=/* @__PURE__ */ new Set,r=0,i=!1,a=0,o=!1,s=!1,c=!1,l=-1,u=()=>{i=!0},d=()=>{i&&n.add(r),r++,i=o||l>=0};for(let t=0;t<e.length;t++){let n=e[t],r=e[t+1];if(n===`\r`){if(r===`
4
4
  `)continue;d()}else if(n===`
5
5
  `)d();else if(a>0)n===`/`&&r===`*`?(a++,t++):n===`*`&&r===`/`&&(a--,t++);else if(l>=0){if(n===`"`){let n=0;for(;e[t+1+n]===`#`;)n++;n>=l&&(t+=l,l=-1)}}else if(o)u(),c?c=!1:n===`\\`?c=!0:n===`"`&&(o=!1);else if(s)u(),c?c=!1:n===`\\`?c=!0:n===`'`&&(s=!1);else if(n===`/`&&r===`/`)for(;t+1<e.length&&e[t+1]!==`
6
6
  `&&e[t+1]!==`\r`;)t++;else if(n===`/`&&r===`*`)a=1,t++;else{if(n===`r`||n===`b`&&r===`r`){let r=n===`r`?t+1:t+2,i=0;for(;e[r]===`#`;)i++,r++;if(e[r]===`"`){l=i,t=r,u();continue}}n===`"`?(o=!0,u()):n===`'`&&isRustCharLiteral(e,t)?(s=!0,u()):n.trim()!==``&&u()}}return i&&n.add(r),{loc:t,rloc:n.size}}function rustIsBridge(e){return RUST_BRIDGE.test(e)}function jsIsBridge(e,t){return t.some(e=>ffiKindForSpecifier(e)!==null)||JS_FFI.test(e)}function ffiKindForSpecifier(e){let t=e.split(/[?#]/,1)[0]?.toLowerCase()??``;return t.endsWith(`.wasm`)?`wasm`:t.endsWith(`.node`)?`native`:null}function buildMigration(e,t){let n=[...e].sort((e,t)=>compareStrings$1(e.relativePath,t.relativePath)),r=[...t].sort((e,t)=>compareStrings$1(e.from,t.from)||compareStrings$1(e.to,t.to)||compareStrings$1(e.kind,t.kind)),i=/* @__PURE__ */ new Map;for(let e of r)i.set(e.from,(i.get(e.from)??0)+1),i.set(e.to,(i.get(e.to)??0)+1);let a=/* @__PURE__ */ new Map,o={js:0,rust:0,bridge:0,native:0},s=/* @__PURE__ */ new Map,c=0,l=0;for(let e of n){let t=isNativeLanguage(e.language)?`native`:e.bridge?`bridge`:e.language===`rust`?`rust`:`js`,n=isTsJsLanguage(e.language)?(e.maxComplexity+1)*(1+e.fanIn):void 0,r=i.get(e.relativePath)??0;a.set(e.relativePath,{language:e.language,status:t,loc:e.loc,rloc:e.rloc,...n===void 0?{}:{debt:n},crossings:r}),o[t]++,c+=n??0,l+=r;let u=s.get(e.language)??{files:0,loc:0,rloc:0};u.files++,u.loc+=e.loc,u.rloc+=e.rloc,s.set(e.language,u)}let u={};for(let e of LANGUAGE_ORDER){let t=s.get(e);t&&(u[e]=t)}return{nodes:a,edges:r,summary:{files:n.length,languages:u,status:o,bridgeFiles:o.bridge,ffiEdges:r.length,ffiCrossings:l,migrationDebt:c}}}function isRustCharLiteral(e,t){let n=e[t+1];return n===void 0||n===`
package/web/index.html CHANGED
@@ -13,8 +13,8 @@
13
13
  href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,650;12..96,750&family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&display=swap"
14
14
  rel="stylesheet"
15
15
  />
16
- <script type="module" crossorigin src="/assets/index-DoNheLr8.js"></script>
17
- <link rel="stylesheet" crossorigin href="/assets/index-ee4c0zCv.css">
16
+ <script type="module" crossorigin src="/assets/index-C9-EUgd6.js"></script>
17
+ <link rel="stylesheet" crossorigin href="/assets/index-D9anL_zx.css">
18
18
  </head>
19
19
  <body>
20
20
  <div id="root"></div>
@@ -1 +0,0 @@
1
- :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#eef1f2;--panel:#f6f8f8;--ink:#121a20;--ink-soft:#35434c;--muted:#64727b;--line:#c8d1d5;--line-strong:#9fadb4;--cobalt:#2f6fed;--ochre:#d9a21b;--rust:#d95d39;--violet:#7b61ff;--patina:#3f8f7a;--debt:#d64545;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--display:"Bricolage Grotesque", "IBM Plex Sans", system-ui, sans-serif;--topbar-h:64px;--band-h:52px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--paper);color:var(--ink);font:14px/1.45 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button,input,select{font:inherit}button{color:inherit}:focus-visible{outline:2px solid var(--rust);outline-offset:2px}#boot-error{color:#ffd7d7;font:12px/1.5 var(--mono);white-space:pre-wrap;background:#2b1111;margin:0;padding:24px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{background:radial-gradient(circle at 18% 4%, #ffffff8c, transparent 34%), var(--paper);min-height:100dvh}.topbar{z-index:20;min-height:var(--topbar-h);background:var(--ink);color:#f3f6f5;border-bottom:1px solid #05090c;grid-template-columns:minmax(250px,auto) 1fr auto;align-items:center;gap:22px;padding:0 20px;display:grid;position:relative}.brand{align-items:baseline;gap:12px;min-width:0;display:flex}.brand-mark{font:750 18px/1 var(--display);letter-spacing:.16em}.brand-sub{font:500 9.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#a9b7bc;white-space:nowrap}.snapshot-meta{text-align:center;flex-direction:row;justify-content:center;align-items:center;gap:12px;min-width:0;display:flex}.snapshot-meta .mono{color:#93a2a8;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;overflow:hidden}.watch-indicator{font:500 8.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#93a2a8;align-items:center;gap:5px;display:inline-flex}.watch-indicator i{background:#7f8b90;border-radius:50%;width:5px;height:5px}.watch-live{color:#8fe3c0}.watch-live i{background:#45d6a0;box-shadow:0 0 0 3px #45d6a029}.watch-paused{color:#e7c06b}.watch-paused i{background:var(--ochre)}.refresh-notice{font:500 8.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#45d6a0;opacity:0}.refresh-notice.is-new{animation:3s ease-out both refresh-notice}@keyframes refresh-notice{0%{opacity:0}8%{opacity:1}72%{opacity:1}to{opacity:0}}.topbar-actions{justify-content:flex-end;gap:8px;display:flex}.button-label-short{display:none}.button{color:var(--ink);font:600 11px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:#f3f6f5;border:1px solid #f3f6f5;border-radius:2px;padding:8px 12px;transition:background .12s,color .12s}.button:hover{background:#fff}.button.ghost{color:#dbe3e4;background:0 0;border-color:#596970}.open-menu{position:relative}.open-menu>summary{cursor:pointer;align-items:center;list-style:none;display:inline-flex}.open-menu>summary::-webkit-details-marker{display:none}.open-menu[open]>summary{background:#fff}.open-menu-panel{z-index:30;border:1px solid var(--line-strong);background:var(--panel);min-width:216px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 14px 30px #121a202e}.open-menu-panel button{color:var(--ink);text-align:left;font:500 11px/1.3 var(--sans);cursor:pointer;background:0 0;border:0;padding:8px 10px}.open-menu-panel button:hover{background:#2f6fed14}.open-menu-panel p{color:var(--muted);margin:4px 10px 6px;font-size:9.5px;line-height:1.35}.open-menu-panel button:disabled{opacity:.45;cursor:not-allowed}.open-menu-group{padding:2px 0;display:grid}.open-menu-group+.open-menu-group{border-top:1px solid var(--line);margin-top:4px;padding-top:6px}.open-menu-label{color:var(--muted);font:600 9px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:4px 10px 2px}.live-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.live-state{letter-spacing:.11em;text-transform:uppercase;color:var(--muted);font-size:10px}.live-state.is-live{color:var(--patina)}.button.small{margin-top:0;padding:6px 9px;font-size:9px}.button.ghost.dark-text{color:var(--ink);border-color:var(--line-strong);background:0 0}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#121a208c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--line-strong);background:var(--panel);flex-direction:column;width:min(660px,100%);max-height:min(780px,100dvh - 40px);padding:20px;display:flex;box-shadow:0 24px 60px #121a2047}.modal h2{font:650 27px/1.08 var(--display);letter-spacing:-.03em;margin:2px 0 5px}.folder-path{grid-template-columns:32px minmax(0,1fr) auto;gap:6px;margin:14px 0 8px;display:grid}.folder-path input{border:1px solid var(--line);min-width:0;color:var(--ink);font:11px/1.3 var(--mono);background:#fff;padding:7px 8px}.folder-up{border:1px solid var(--line);width:32px;color:var(--ink);cursor:pointer;background:#fff;font-size:16px}.folder-up:disabled{color:var(--line-strong);cursor:default}.folder-list{border:1px solid var(--line);background:#fff;min-height:120px;max-height:340px;margin-bottom:12px;overflow:auto}.folder-entry{width:100%;color:var(--ink);text-align:left;font:12px/1.3 var(--sans);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #c8d1d58c;grid-template-columns:18px minmax(0,1fr);gap:5px;padding:7px 10px;display:grid}.folder-entry:hover{background:#2f6fed12}.folder-icon{color:var(--muted);font-family:var(--mono)}.folder-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folder-empty{color:var(--muted);text-align:center;padding:28px 18px;font-size:11.5px}.folder-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.folder-current{text-overflow:ellipsis;white-space:nowrap;max-width:52%;color:var(--muted);font-size:9.5px;overflow:hidden}.folder-actions{gap:8px;display:flex}.folder-actions .button{margin-top:0}.button.ghost:hover{background:#ffffff14}.shell{min-height:calc(100dvh - var(--topbar-h) - var(--band-h));background:var(--line);grid-template-columns:258px minmax(0,1fr) 302px;gap:1px;display:grid}.rail,.inspector{background:var(--panel);min-height:0;padding:20px 18px;overflow:auto}.rail{border-right:1px solid var(--line)}.inspector{border-left:1px solid var(--line)}.panel-block{border-bottom:1px solid var(--line);margin:0 0 17px;padding:0 0 17px}.panel-block:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.eyebrow{font:500 9.5px/1.2 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.field{margin-bottom:10px;display:block}.field>span{font:500 9.5px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;display:block}.field select,.field input{appearance:none;border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:2px;padding:7px 8px;font-size:12px}.field select{background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 13px) 12px,calc(100% - 9px) 12px;background-repeat:no-repeat;background-size:4px 4px,4px 4px;padding-right:24px}.search-field{margin-top:13px}.url-load{border-top:1px solid var(--line);gap:2px;margin:6px 6px 2px;padding-top:6px;display:grid}.url-load .field{margin-bottom:6px}.url-load .field input{font-family:var(--mono);font-size:10.5px}.url-load>button{border:1px solid var(--line-strong);color:var(--ink);text-align:center;font:500 10px/1.3 var(--mono);letter-spacing:.04em;text-transform:uppercase;margin-top:2px}.tiny{font-size:10.5px}.small{font-size:12px}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.strata{border:1px solid var(--line-strong);background:var(--paper);border-radius:2px;gap:1px;height:24px;padding:1px;display:flex;overflow:hidden}.strata i{min-width:2px;height:100%;display:block}.strata-legend{gap:4px;margin-top:9px;display:grid}.strata-row{color:var(--ink-soft);grid-template-columns:7px 1fr auto;align-items:center;gap:7px;font-size:11px;display:grid}.strata-row i,.legend i,.status-chip i{border-radius:50%;width:7px;height:7px;display:inline-block}.strata-row .mono{color:var(--muted);font-size:10px}.status-row{border-top:1px solid var(--line);flex-wrap:wrap;gap:5px 10px;margin-top:11px;padding-top:9px;display:flex}.status-chip{color:var(--muted);align-items:center;gap:5px;font-size:10.5px;display:inline-flex}.status-chip b{color:var(--ink);font-weight:600}.legend{gap:6px;display:grid}.legend>div{grid-template-columns:7px 1fr auto;align-items:center;gap:7px;font-size:11px;display:grid}.legend .mono{color:var(--muted);font-size:10px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gradient{border:1px solid var(--line);border-radius:1px;height:9px}.gradient.risk{background:linear-gradient(90deg,#ebe7df 0%,#e9cd98 35%,#d68a54 65%,#a42e2c 100%)}.gradient.metric{background:linear-gradient(90deg,#ebe7df 0%,#b9c9cf 50%,#355b6b 100%)}.gradient-labels{font:10px/1 var(--mono);color:var(--muted);justify-content:space-between;margin-top:4px;display:flex}.debt-list{gap:2px;display:grid}.debt-row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:1px;grid-template-columns:minmax(0,1fr) 54px 34px;align-items:center;gap:7px;width:100%;padding:5px 0;display:grid}.debt-row:hover,.debt-row.is-selected{background:#2f6fed12}.debt-name{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);font-size:10.5px;overflow:hidden}.debt-track{background:#e0e6e8;height:5px;overflow:hidden}.debt-track i{height:100%;display:block}.debt-row .mono{text-align:right;color:var(--muted);font-size:10px}.stage{background:var(--paper);flex-direction:column;min-width:0;padding:14px 22px 12px;display:flex}.project-band{z-index:19;height:var(--band-h);color:#f3f6f5;background:#1b262e;border-top:1px solid #ffffff12;align-items:center;gap:18px;padding:0 20px;display:flex;position:relative;overflow:hidden}.project-ident{flex-direction:column;gap:1px;min-width:0;display:flex}.project-label{font:500 8px/1.1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#93a2a8}.project-band h1{max-width:360px;font:650 17px/1.1 var(--display);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.project-band .breadcrumb{color:#93a2a8;min-width:0;margin-top:0}.project-band .breadcrumb button{color:#f3f6f5;border-bottom-color:#5a6a72}.project-band .breadcrumb button:hover{border-bottom-color:#f3f6f5}.project-band .breadcrumb span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-kpis{flex:none;align-items:center;gap:0;margin-left:auto;display:flex}.project-kpis .kpi{border-left:1px solid #ffffff1f;min-width:62px;padding:0 14px}.project-kpis .kpi span{color:#93a2a8;white-space:nowrap;text-overflow:ellipsis;font-size:8px;overflow:hidden}.project-kpis .kpi b{font:600 15px/1 var(--display);color:#f3f6f5}.project-kpis .kpi-debt b{color:#ff9f9f}.kpi{flex-direction:column;gap:2px;display:flex}.kpi span{font:500 8.5px/1.1 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}.kpi b{font:600 20px/1 var(--display);letter-spacing:-.02em}.kpi-debt b{color:var(--debt)}.map-frame{border:1px solid var(--line-strong);background:#f8fafa;flex:1;min-height:440px;position:relative;overflow:hidden;box-shadow:inset 0 1px #fffc,0 10px 30px #121a200d}.map-inner{width:100%;height:100%}.map{width:100%;height:100%;display:block}.cell{cursor:pointer}.cell:hover{filter:brightness(1.08)}.cell:focus-visible{stroke:var(--rust);stroke-width:2.5px;outline:none}.cell.is-cursor,.folder-block.is-cursor{stroke:var(--rust);stroke-width:2px}.folder-block{cursor:zoom-in}.folder-block:hover{fill:#121a200d}.folder-block:focus-visible{stroke:var(--rust);stroke-width:2px;outline:none}.folder-hit{cursor:zoom-in}.folder-hit:focus-visible{stroke:var(--rust);stroke-width:2px;outline:none}.empty{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:30px;display:flex;position:absolute;inset:0}.empty.error{color:var(--debt)}.empty.error span{color:var(--muted);max-width:520px}.drop-hint{border:1px dashed var(--cobalt);color:var(--cobalt);font:600 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;pointer-events:none;background:#2f6fed14;justify-content:center;align-items:center;display:flex;position:absolute;inset:12px}.breadcrumb{font:10px/1.3 var(--mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px;margin-top:6px;display:flex}.breadcrumb button{border:0;border-bottom:1px solid var(--line-strong);color:var(--ink);font:inherit;cursor:pointer;background:0 0;padding:0}.breadcrumb button:hover{border-bottom-color:var(--ink)}.stage-foot{color:var(--muted);justify-content:space-between;gap:18px;margin-top:9px;font-size:10px;display:flex}.stage-foot .mono{text-overflow:ellipsis;white-space:nowrap;max-width:55%;overflow:hidden}.progress-cell{align-items:center;gap:10px;min-width:0;display:inline-flex}.progress-cell .detail-note{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.progress-cell .button{text-transform:none;letter-spacing:.02em;flex:none;padding:3px 9px;font-size:9px}.history-list{gap:1px;display:grid}.history-row{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 6px;display:grid}.history-row:hover{background:#2f6fed14}.history-date{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:10px;overflow:hidden}.history-count{color:var(--muted);font-size:9.5px}.inspector h2{font:650 27px/1.08 var(--display);letter-spacing:-.03em;overflow-wrap:anywhere;margin:6px 0 14px}.inspector-path{font:10.5px/1.45 var(--mono);color:var(--muted);overflow-wrap:anywhere}.inspector-empty h2{margin-top:6px}.inspector-note{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:10px;margin-top:24px;padding-top:12px;font-size:10px;display:flex}.inspector-status{color:var(--ink-soft);align-items:center;gap:7px;margin-bottom:14px;font-size:11px;display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.inspector-status .mono{color:var(--muted);text-transform:uppercase;margin-left:auto;font-size:10px}.metric-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:1fr 1fr;gap:0;margin-bottom:18px;display:grid}.metric{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 10px}.metric span{font:500 8.5px/1.1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block}.metric b{font:600 18px/1 var(--display);letter-spacing:-.02em;margin-top:3px;display:block}.collapsible{margin-top:14px}.collapsible-head{border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:7px;width:100%;padding:7px 0;display:flex}.collapsible-head:hover .collapsible-title{color:var(--cobalt)}.collapsible-head:focus-visible{outline:2px solid var(--rust);outline-offset:1px}.collapsible-chevron{color:var(--muted);transition:transform .12s;display:inline-flex}.collapsible.is-closed .collapsible-chevron svg{transform:rotate(-90deg)}.collapsible-title{min-width:0;font:600 12px/1.2 var(--sans);letter-spacing:-.01em;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.collapsible-count{border:1px solid var(--line);font:500 8.5px/1.5 var(--mono);color:var(--muted);border-radius:999px;padding:0 5px}.collapsible-summary{max-width:55%;font:500 9.5px/1.2 var(--mono);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;overflow:hidden}.collapsible-body{padding-bottom:2px}.metrics-table{margin-top:2px}.metrics-head,.metrics-row{grid-template-columns:minmax(0,1fr) 54px 52px;align-items:center;gap:8px;display:grid}.metrics-head{font:500 8.5px/1.1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 4px 4px 7px}.metrics-head span:nth-child(2){text-align:center}.metrics-head span:last-child{text-align:right}.metrics-rows{gap:1px;display:grid}.metrics-row{text-align:left;width:100%;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:3px 4px 3px 7px;font-size:11px;box-shadow:inset 2px 0 #0000}.metrics-row:hover{background:#2f6fed0f}.metrics-row:focus-visible{outline:2px solid var(--rust);outline-offset:1px}.metrics-row.is-active{box-shadow:inset 2px 0 0 var(--cobalt);background:#2f6fed12}.metrics-label{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;min-width:0;display:flex;overflow:hidden}.metrics-area{border:1px solid var(--line-strong);font:500 8px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-radius:2px;flex:none;padding:0 4px;font-style:normal}.metrics-bar{background:var(--line);height:4px;overflow:hidden}.metrics-bar i{background:var(--muted);height:100%;display:block}.metrics-watch .metrics-bar i{background:var(--ochre)}.metrics-debt .metrics-bar i{background:var(--debt)}.metrics-value{font:600 11px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);justify-self:end;align-items:baseline;gap:2px;display:inline-flex}.metrics-value em{color:var(--muted);font-size:8.5px;font-style:normal;font-weight:500}.metrics-watch .metrics-value{color:var(--ochre)}.metrics-debt .metrics-value{color:var(--debt)}.metrics-row.is-empty .metrics-value{color:var(--muted);font-weight:500}.metrics-note{margin:7px 0 0;line-height:1.35}.live-toggle{align-items:center;gap:7px;display:inline-flex}.live-toggle i{background:var(--line-strong);border-radius:50%;width:7px;height:7px;transition:background .15s ease-out,box-shadow .15s ease-out;box-shadow:0 0 0 3px #0000}.live-toggle.is-live i{background:var(--patina);box-shadow:0 0 0 3px color-mix(in srgb, var(--patina) 22%, transparent)}.icon-button{justify-content:center;align-items:center;width:30px;padding:0;display:inline-flex}.icon-button svg{display:block}.map-controls{border:1px solid var(--line-strong);background:var(--panel);border-radius:6px;align-items:center;gap:1px;margin-right:14px;padding:2px;display:flex}.map-controls button{min-width:24px;height:22px;color:var(--ink-soft);font:500 10.5px/1 var(--mono);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 6px}.map-controls button:hover:not(:disabled){color:var(--ink);background:#121a2012}.map-controls button:disabled{opacity:.4;cursor:not-allowed}.map-controls-hint{font:400 10px/1 var(--sans);color:var(--muted);white-space:nowrap;padding:0 9px}.map-zoom-level{text-align:center;min-width:40px;font:500 10px/1 var(--mono);color:var(--muted)}.stage-tabs{border-bottom:1px solid var(--line);gap:18px;margin:0 0 12px;display:flex}.stage-tab{color:var(--muted);font:500 9.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:0 0 9px;display:inline-flex}.stage-tab:hover{color:var(--ink-soft)}.stage-tab.is-active{color:var(--ink);border-bottom-color:var(--ink)}.plugin-stage{width:100%;height:100%;padding:18px;overflow:auto}.plugin-view{gap:10px;max-width:640px;display:grid}.plugin-view h2{color:var(--ink);margin:0;font-size:15px}.plugin-list{gap:1px;display:grid}.plugin-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.plugin-text{gap:2px;display:grid}.plugin-title{color:var(--ink);font-size:12.5px}.plugin-version{color:var(--muted);font-size:10px}.plugin-warning{color:var(--rust,#be3c28);font-size:10.5px}.plugin-summary{color:var(--ink-soft);margin:0 0 8px;font-size:11px}.plugin-summary b{font:600 12.5px/1 var(--sans)}.plugin-meta{font:500 9.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.plugin-more summary{color:var(--muted);cursor:pointer;width:-moz-fit-content;width:fit-content;font-size:10.5px;list-style:none}.plugin-more summary::-webkit-details-marker{display:none}.plugin-more summary:before{content:"▸ "}.plugin-more[open] summary:before{content:"▾ "}.plugin-more p{color:var(--muted);margin:5px 0 0;font-size:10.5px}.plugin-more code{font-size:10px}.plugin-switch{border:1px solid var(--line);cursor:pointer;background:#ffffff0d;border-radius:10px;width:34px;height:19px;padding:0;position:relative}.plugin-switch i{background:var(--muted);border-radius:50%;width:13px;height:13px;transition:transform .12s ease-out,background .12s ease-out;position:absolute;top:2px;left:2px}.plugin-switch.is-on{background:#2f6fed47;border-color:#2f6fed80}.plugin-switch.is-on i{background:#7aa2f7;transform:translate(15px)}.plugin-switch:disabled{opacity:.45;cursor:not-allowed}.map-label{box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;width:100%;height:100%;line-height:1.05;font-family:var(--sans);pointer-events:none;-webkit-user-select:none;user-select:none;margin:0;padding:0;overflow:hidden}.map-label.is-vertical{writing-mode:vertical-rl;text-orientation:mixed}.map-label.is-folder{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#121a209e}.rail-settings{border:1px solid var(--line);width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;align-self:flex-end;padding:0;font-size:13px;line-height:1}.rail-settings:hover{color:var(--ink);border-color:var(--ink-soft)}.settings-overlay{z-index:40;background:#080c1099;position:fixed;inset:0}.settings-panel{z-index:41;background:var(--panel,#151d24);border:1px solid var(--line);border-radius:10px;flex-direction:column;width:min(620px,100vw - 48px);max-height:min(560px,100vh - 64px);display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 24px 64px #00000080}.settings-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.settings-title{font:500 13px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin:0}.settings-close{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.settings-close:hover{color:var(--ink)}.settings-body{grid-template-columns:148px minmax(0,1fr);min-height:0;display:grid}.settings-sections{border-right:1px solid var(--line);background:#00000024;flex-direction:column;gap:1px;padding:10px 8px;display:flex}.settings-section{color:var(--ink-soft);font:500 11.5px/1.3 var(--sans);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 10px}.settings-section:hover{color:var(--ink);background:#ffffff0a}.settings-section.is-active{color:var(--ink);background:#2f6fed29}.settings-content{align-content:start;gap:14px;padding:16px;display:grid;overflow-y:auto}.settings-row{color:var(--ink-soft);border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:4px 0;font-size:12px;display:flex}.settings-row b{color:var(--ink);font-weight:500}.component-list{gap:8px;display:grid}.component-row{border-bottom:1px solid var(--line);padding:8px 0}.component-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.component-name{font:600 12px/1.2 var(--sans);color:var(--ink)}.component-row p{margin:3px 0 0}.symbol-list{padding-top:2px}.symbol-group+.symbol-group{margin-top:7px}.symbol-group-head{font:500 8.5px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;padding:3px 0 2px;display:flex}.symbol-group-line{background:var(--line);flex:1;height:1px}.symbol-group-count{color:var(--muted)}.symbol-file{border-bottom:1px solid var(--line);padding:6px 0}.symbol-file-path{width:100%;color:var(--ink);font:500 11px/1.4 var(--mono);text-align:left;cursor:pointer;background:0 0;border:0;margin-bottom:4px;padding:0;display:block}.symbol-file-path:hover{color:var(--accent,#2f6fed);text-decoration:underline}.symbol-change{color:var(--ink-soft);grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:2px 0 2px 4px;font-size:11px;display:grid}.symbol-row{color:var(--ink-soft);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:3px 0;font-size:11px;display:grid}.symbol-row:hover{background:#2f6fed14}.symbol-row.is-selected{background:#2f6fed24}.chain-list{padding-top:2px}.chain-row{color:var(--ink-soft);grid-template-columns:74px auto minmax(0,1fr);align-items:center;gap:8px;padding:3px 0;font-size:10.5px;display:grid}.chain-date{color:var(--muted);font-size:10px}.chain-events{flex-wrap:wrap;gap:3px;display:flex}.chain-event{font:500 8.5px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:3px;padding:0 4px}.chain-created{color:#0f766e;border-color:#0f766e66}.chain-changed{color:#c2410c;border-color:#c2410c66}.chain-renamed,.chain-moved{color:#2f6fed;border-color:#2f6fed66}.chain-removed{color:var(--rust);border-color:#be3c2866}.chain-path{text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);color:var(--muted);font-size:10px;overflow:hidden}.symbol-kind{font:500 8.5px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;text-align:center;color:var(--muted);border:1px solid var(--line);border-radius:3px}.symbol-function{color:#2f6fed;border-color:#2f6fed66}.symbol-class{color:#c2410c;border-color:#c2410c59}.symbol-interface,.symbol-type{color:#0f766e;border-color:#0f766e59}.symbol-enum{color:#6d28d9;border-color:#6d28d959}.symbol-variable{color:#64748b;border-color:#64748b66}.surface-list,.member-list{padding-top:2px}.surface-group+.surface-group,.member-group+.member-group{margin-top:7px}.surface-row{color:var(--ink-soft);flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:3px 0;font-size:11px;display:flex}.surface-source{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);flex:40%;font-size:10px;overflow:hidden}.surface-names{flex-wrap:wrap;flex:55%;gap:4px;min-width:0;display:flex}.surface-name{border:1px solid var(--line);max-width:100%;font:500 10px/1.5 var(--mono);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:0 4px;overflow:hidden}.surface-badge{font:500 8.5px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.member-row{color:var(--ink-soft);grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;padding:3px 0;font-size:11px;display:grid}.member-kind{font-size:8px}.symbol-name{text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:10.5px;overflow:hidden}.symbol-complexity{color:var(--ink)}.symbol-note{margin:7px 0 0;line-height:1.35}.tabs{border-bottom:1px solid var(--line);gap:18px;margin:-2px 0 16px;display:flex}.tab{color:var(--muted);font:500 9.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:0 0 9px;display:inline-flex}.tab.is-active{color:var(--ink);border-bottom-color:var(--ink)}.tab-dot{background:var(--rust);border-radius:50%;width:5px;height:5px;display:inline-block}.button.dark{background:var(--ink);color:var(--paper);border-color:var(--ink);margin-top:12px}.button.dark:hover{background:#26333b}.change-panel h2{margin-bottom:4px}.change-checksums{color:var(--muted);margin-bottom:14px;font-size:10px}.change-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:1fr 1fr;margin-bottom:16px;display:grid}.change-stat{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 10px}.change-stat span{font:500 8.5px/1.1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block}.change-stat b{font:600 15px/1.1 var(--display);letter-spacing:-.02em;margin-top:3px;display:block}.change-stat-bad b{color:var(--debt)}.change-stat-good b{color:var(--patina)}.change-delta.is-worse{color:var(--debt)}.change-delta.is-better{color:var(--patina)}.change-section{border-top:1px solid var(--line);margin-top:13px;padding-top:12px}.change-summary{color:var(--muted);flex-wrap:wrap;gap:4px 13px;margin-bottom:7px;font-size:10.5px;display:flex}.change-summary b{color:var(--ink)}.violation-list{gap:4px;display:grid}.violation{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:6px 1fr;gap:8px;width:100%;padding:5px 0;display:grid}.violation:hover{background:#d645450f}.violation i{background:var(--muted);border-radius:50%;width:6px;height:6px;margin-top:5px}.violation-error i{background:var(--debt)}.violation-warn i{background:var(--ochre)}.violation-info i{background:var(--cobalt)}.violation b{font:600 11px/1.3 var(--sans);display:block}.violation>span{min-width:0}.violation small{color:var(--muted);overflow-wrap:anywhere;font-size:10.5px;line-height:1.35;display:block}.violation-source{border:1px solid var(--line-strong);font:500 8.5px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);vertical-align:1px;border-radius:2px;margin-left:6px;padding:1px 5px;font-style:normal}.lens-section{margin-top:18px}.lens-section+.lens-section{border-top:1px solid var(--line);padding-top:16px}.lens-risk-head{align-items:baseline;gap:4px;margin-bottom:12px;display:flex}.lens-risk-value{font:600 32px/1 var(--display);letter-spacing:-.04em}.lens-risk-unit{font:10px/1 var(--mono);color:var(--muted)}.lens-bars{gap:7px;display:grid}.lens-bar-row{color:var(--ink-soft);grid-template-columns:70px minmax(0,1fr) 38px 30px;align-items:center;gap:6px;font-size:10.5px;display:grid}.lens-bar-row>.mono{text-align:right;font-size:10px}.lens-weight{font:9px/1 var(--mono);color:var(--muted);text-align:right}.lens-bar{background:var(--line);height:5px;overflow:hidden}.lens-bar i{background:var(--rust);height:100%;display:block}.lens-section .tiny{margin:9px 0 0;line-height:1.4}.lens-counts{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.lens-chip{border:1px solid var(--line-strong);font:500 8.5px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-radius:2px;padding:2px 6px}.lens-chip-new,.lens-new{color:var(--debt);border-color:var(--debt)}.lens-edges{gap:3px;margin-top:10px;display:grid}.lens-edge{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:8px;width:100%;padding:3px 0;display:grid}.lens-edge:hover .lens-edge-path{color:var(--ink)}.lens-flag{font:500 8.5px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;border-radius:2px;padding:1px 5px}.lens-wasm{color:var(--cobalt);border:1px solid var(--cobalt)}.lens-native{color:var(--ochre);border:1px solid var(--ochre)}.lens-edge-path{font:10.5px/1.4 var(--mono);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lens-symbol{font-weight:600}.lens-index{border-top:1px solid var(--line);gap:10px;margin-top:20px;padding-top:14px;display:grid}.lens-index>div{justify-content:space-between;gap:12px;font-size:10.5px;display:flex}.lens-index b{font-weight:600}.lens-index span{color:var(--muted);text-align:right}.rules-panel h2{margin-bottom:4px}.rules-hint{margin-top:8px}.rules-hint .lens-index{margin-top:14px}.rules-file>.lens-section:first-child{margin-top:12px}.rules-change{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.rules-change>.eyebrow{margin-bottom:8px}.rules-empty-title{font:600 13px/1.2 var(--sans);margin:10px 0 2px}.rules-meta{color:var(--muted);margin:-6px 0 10px;font-size:10.5px}.rules-meta b{color:var(--ink)}.rules-sources{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.rules-chip{border:1px solid var(--line-strong);font:500 8.5px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-radius:2px;align-items:baseline;gap:4px;padding:2px 6px;display:inline-flex}.rules-chip b{color:var(--ink);font-size:10px}.rules-group{border-top:1px solid var(--line);margin-top:13px;padding-top:12px}.rules-group-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;display:flex}.rules-group-head .eyebrow{margin:0}.rules-count{border:1px solid var(--line-strong);min-width:18px;font:500 9px/1.4 var(--mono);text-align:center;color:var(--muted);border-radius:2px;padding:1px 5px}.rules-count-introduced{color:var(--debt);border-color:var(--debt)}.rules-count-resolved{color:var(--patina);border-color:var(--patina)}.rules-rule-resolved{opacity:.72}.rules-detail{font:9.5px/1.4 var(--mono);color:var(--muted);overflow-wrap:anywhere;margin-top:2px;display:block}.tab-dot-alert{background:var(--debt)}.change-rows{gap:1px;display:grid}.change-row{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:5px 0;display:grid}.change-row:hover{background:#2f6fed0f}.change-path{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);font-size:10.5px;overflow:hidden}.change-delta{color:var(--muted);font-size:9.5px}.change-cycle{grid-template-columns:22px minmax(0,1fr);gap:6px;padding:4px 0;font-size:10.5px;display:grid}.panel-error{color:var(--debt);margin-top:10px;font-size:11px}code{font-family:var(--mono);background:#64727b1f;border-radius:2px;padding:1px 3px;font-size:10px}@media (min-width:1181px){.app{height:100dvh;overflow:hidden}.shell{height:calc(100dvh - var(--topbar-h) - var(--band-h));min-height:0}.rail,.inspector{min-height:0}.stage{min-height:0;overflow:hidden}.map-frame{min-height:0}}@media (max-width:1180px){.shell{grid-template-columns:226px minmax(0,1fr)}.stage{height:calc(100dvh - var(--topbar-h) - var(--band-h))}.rail{max-height:calc(100dvh - var(--topbar-h) - var(--band-h))}.map-frame{min-height:0}.inspector{border-left:0;border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:30px;display:grid}}@media (max-width:820px){.topbar{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 14px}.snapshot-meta,.brand-sub,.button-label-long{display:none}.button-label-short{display:inline}.topbar-actions{flex-wrap:nowrap}.topbar-actions .button{padding:7px 9px;font-size:9.5px}.shell{flex-direction:column;min-height:0;display:flex}.stage{order:1;padding:16px 12px 12px}.rail{border-right:0;border-top:1px solid var(--line);order:2;grid-template-columns:1fr 1fr;gap:18px;display:grid}.inspector{order:3;display:block}.project-band{gap:12px;padding:0 14px}.project-band h1{max-width:190px}.project-kpis .kpi{min-width:0;padding:0 9px}.project-kpis .kpi b{font-size:14px}.map-frame,.map{min-height:360px}}@media (max-width:560px){.rail{grid-template-columns:1fr}.project-band{gap:8px}.project-band h1{max-width:104px;font-size:15px}.project-ident{flex:auto}.project-kpis{flex:auto;justify-content:flex-end}.project-kpis .kpi{flex:1 1 0;padding:0 5px}.project-kpis .kpi span{max-width:100%;font-size:7px}.project-kpis .kpi b{font-size:13px}.stage-foot{flex-direction:column;gap:3px}.stage-foot .mono{max-width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.refresh-notice.is-new{opacity:1;animation:none!important}}