chamba 0.6.1 → 0.8.0
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.
- package/LICENSE +53 -14
- package/README.md +38 -11
- package/dist/commands/advanced.js +7 -278
- package/dist/commands/dev.js +11 -612
- package/dist/commands/doctor.js +1 -29
- package/dist/commands/menu.js +1 -80
- package/dist/commands/onboard.js +6 -230
- package/dist/commands/settings.js +15 -349
- package/dist/lib/agent-commands.js +2 -0
- package/dist/lib/agent-context.js +6 -184
- package/dist/lib/browser.js +1 -40
- package/dist/lib/chamba-yaml.js +10 -191
- package/dist/lib/constants.js +1 -125
- package/dist/lib/dockerfile-builder.js +41 -260
- package/dist/lib/env.js +2 -78
- package/dist/lib/git-env.js +1 -21
- package/dist/lib/global-config.js +4 -66
- package/dist/lib/pnpm-store.js +1 -19
- package/dist/lib/ports.js +1 -210
- package/dist/lib/safe-rm.js +1 -26
- package/dist/lib/sessions.js +2 -34
- package/dist/lib/shadows.js +1 -176
- package/dist/lib/skills.js +2 -0
- package/dist/lib/templates.js +1 -0
- package/dist/lib/webterm.js +1 -305
- package/dist/lib/workspace-identity.js +4 -260
- package/package.json +6 -6
- package/templates/Dockerfile +24 -12
- package/templates/claude-statusline.sh +5 -7
- package/templates/context/baseline.md +2 -0
- package/templates/pane-apps/client/assets/c-BNa-DeUl.json +3552 -0
- package/templates/pane-apps/client/assets/cpp-B-T4NRoH.json +20239 -0
- package/templates/pane-apps/client/assets/csharp-BbxHChhA.json +6010 -0
- package/templates/pane-apps/client/assets/css-CWCxuwmz.json +1860 -0
- package/templates/pane-apps/client/assets/diff-B-2N89g8.json +154 -0
- package/templates/pane-apps/client/assets/docker-DWTvYW26.json +103 -0
- package/templates/pane-apps/client/assets/files-D0nJgFAA.js +12 -0
- package/templates/pane-apps/client/assets/files-h0K1vZyQ.css +1 -0
- package/templates/pane-apps/client/assets/go-B2hyYeNg.json +3156 -0
- package/templates/pane-apps/client/assets/graphql-Z6Id2aNO.json +1292 -0
- package/templates/pane-apps/client/assets/html-BtzvlIfu.json +2627 -0
- package/templates/pane-apps/client/assets/ini-Bn3Twap1.json +108 -0
- package/templates/pane-apps/client/assets/java-C7t2dwLO.json +1885 -0
- package/templates/pane-apps/client/assets/javascript-DuC2v0C0.json +5996 -0
- package/templates/pane-apps/client/assets/json-CwdkWeV5.json +206 -0
- package/templates/pane-apps/client/assets/jsonc-MYWDbTU3.json +206 -0
- package/templates/pane-apps/client/assets/jsx-Cn8EZuIC.json +5996 -0
- package/templates/pane-apps/client/assets/kotlin-CFNOz1gw.json +580 -0
- package/templates/pane-apps/client/assets/make-BVnlFCcl.json +629 -0
- package/templates/pane-apps/client/assets/markdown-B4Xk2WM_.json +3263 -0
- package/templates/pane-apps/client/assets/php-CAQzQmmI.json +4188 -0
- package/templates/pane-apps/client/assets/python-CYQee8m4.json +4174 -0
- package/templates/pane-apps/client/assets/reviews-BsoGZ35r.css +1 -0
- package/templates/pane-apps/client/assets/reviews-iW0Mbn4e.js +153 -0
- package/templates/pane-apps/client/assets/ruby-D7R58tus.json +3114 -0
- package/templates/pane-apps/client/assets/rust-BFBbFiei.json +1103 -0
- package/templates/pane-apps/client/assets/scss-TQRhBkPG.json +1874 -0
- package/templates/pane-apps/client/assets/shellscript-DieAkC4W.json +2375 -0
- package/templates/pane-apps/client/assets/specs-D9z3neR-.js +13 -0
- package/templates/pane-apps/client/assets/sql-Bxd030LV.json +634 -0
- package/templates/pane-apps/client/assets/toml-ChrKGzsV.json +430 -0
- package/templates/pane-apps/client/assets/tsx-D2e90MFw.json +5996 -0
- package/templates/pane-apps/client/assets/typescript-DonXQ_n1.json +5747 -0
- package/templates/pane-apps/client/assets/xml-B17r2RXF.json +382 -0
- package/templates/pane-apps/client/assets/yaml-CKn4h1zy.json +627 -0
- package/templates/pane-apps/client/reviews/index.html +15 -0
- package/templates/pane-apps/client/specs/index.html +14 -0
- package/templates/pane-apps/server/reviews.mjs +20 -0
- package/templates/pane-apps/server/specs.mjs +5 -0
- package/templates/skills/chamba-statusline/SKILL.md +7 -19
- package/templates/skills/dx-review/SKILL.md +123 -0
- package/templates/skills/dx-review/references/acts.md +162 -0
- package/templates/skills/dx-spec/SKILL.md +561 -0
- package/templates/skills/dx-spec/references/imagination-guide.md +140 -0
- package/templates/skills/dx-spec/references/principles-template.md +2 -0
- package/templates/skills/dx-spec/references/review-guide.md +127 -0
- package/templates/skills/dx-spec/references/spec-guide.md +145 -0
- package/templates/skills/dx-spec/references/stages.md +484 -0
- package/templates/skills/dx-spec-execute/SKILL.md +437 -0
- package/templates/startup.mjs +10 -4
- package/templates/tool-helper.sh +166 -0
- package/templates/webterm/README.md +79 -9
- package/templates/webterm/color.js +61 -0
- package/templates/webterm/config.js +74 -0
- package/templates/webterm/context/claude.md +0 -1
- package/templates/webterm/public/app/alerts.js +4 -4
- package/templates/webterm/public/app/anchored.js +81 -0
- package/templates/webterm/public/app/composer.js +4 -1
- package/templates/webterm/public/app/connection.js +9 -0
- package/templates/webterm/public/app/dom.js +15 -5
- package/templates/webterm/public/app/frames.js +51 -10
- package/templates/webterm/public/app/main.js +26 -6
- package/templates/webterm/public/app/new-session.js +13 -41
- package/templates/webterm/public/app/palette.js +58 -0
- package/templates/webterm/public/app/pane-shape.js +167 -0
- package/templates/webterm/public/app/pane-shell.js +380 -0
- package/templates/webterm/public/app/pane.js +77 -193
- package/templates/webterm/public/app/reviews-host.js +15 -0
- package/templates/webterm/public/app/specs-host.js +16 -0
- package/templates/webterm/public/app/state.js +5 -0
- package/templates/webterm/public/app/tabs.js +6 -2
- package/templates/webterm/public/app/terminal.js +8 -0
- package/templates/webterm/public/app/theme.js +75 -27
- package/templates/webterm/public/app/tool-host.js +302 -0
- package/templates/webterm/public/app/workspace-color.js +192 -0
- package/templates/webterm/public/index.html +68 -30
- package/templates/webterm/public/styles.css +270 -34
- package/templates/webterm/server.js +321 -0
- package/templates/webterm/tool-document.js +67 -0
- package/templates/webterm/tools/commands.js +61 -0
- package/templates/webterm/tools/index.js +25 -0
- package/templates/webterm/tools/mount.js +337 -0
- package/templates/webterm/tools/paths.js +34 -0
- package/templates/webterm/tools/reviews.js +133 -0
- package/templates/webterm/tools/specs.js +154 -0
- package/templates/webterm/typed-line.js +148 -0
- package/templates/context/context-usage.md +0 -1
- package/templates/context-usage.sh +0 -266
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import{D as e,E as t,O as n,S as r,a as i,c as a,f as o,g as s,o as c,r as l,s as u,t as d,u as f,y as p}from"./files-D0nJgFAA.js";var m=e(),h=t(),g=i(`reviews`);g.receive;var _=g.credentialsReady,v=g.onChange,y=g.onSession;g.openOutside;var b=g.deliver,x=g.sayWaiting,S=g.listen;function C(e){return g.askTheme(e)}var w=c({prefix:`reviews`,label:`Code Reviews`,credentialsReady:_}),T=w.ask;function E(e){return{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}}var D=e=>`review/${encodeURIComponent(e)}`;function O(){return T(`list`)}function ee(e){return T(D(e))}function k(e,t,n){return T(`${D(e)}/hunks?from=${t}&count=${n}`)}function te(e,t,n,r){let i=new URLSearchParams({name:t,from:String(n),count:String(r)});return T(`${D(e)}/blob?${i.toString()}`)}function ne(){return T(`options`)}async function re(e){let t=new URLSearchParams({kind:e.kind});for(let[n,r]of Object.entries(e))n===`kind`||r===void 0||r===``||t.set(n,String(r));let[n]=(await T(`options?${t.toString()}`)).options;if(n===void 0)throw Error(`that selection holds nothing to review`);return n}function ie(e){return T(`start`,E(e))}function ae(e,t,n={}){return T(`${D(e)}/${t}`,E(n))}w.rawUrl;var A=w.fileUrl,j=p(),oe=350,se={"branch-reflog":`base found from the reflog`,"head-reflog":`base found from the reflog`,upstream:`base found from the upstream`,"merge-base":`base found from the merge base`,chosen:`base you chose`,parent:`base is the commit's parent`,range:`base is the start of the range`,root:`base is the repository's first commit`},ce=e=>e.slice(0,7);function le(e){if(e===null)return``;let t=e.summary,n=t.commits.length;return[`${t.files} file${t.files===1?``:`s`}`,`${t.hunks} hunk${t.hunks===1?``:`s`}`,`${n} commit${n===1?``:`s`}`].join(` - `)}function M(e){if(e===null)return``;let t=e.selection;if(t.kind===`branch`||t.kind===`other-branch`){let e=(t.head.split(`/`).pop()??t.head).replace(/[-_]+/g,` `).trim();return e.charAt(0).toUpperCase()+e.slice(1)}let n=e.summary.commits[0]?.subject??``;return n===``?e.label:n}function ue(e){let t=(0,m.useMemo)(()=>{let t=e.offer.options;return{branch:t.find(e=>e.kind===`branch`)??null,last:t.find(e=>e.kind===`last-commit`)??null,others:t.filter(e=>e.kind===`other-branch`)}},[e.offer]),n=t.branch===null?e.offer.notOffered:null,r=e.draft,[i,a]=(0,m.useState)(r?.picked??null),[o,s]=(0,m.useState)(r?.base??null),[c,l]=(0,m.useState)(r?.commit??``),[u,d]=(0,m.useState)(r?.from??``),[f,p]=(0,m.useState)(r?.to??``),[h,g]=(0,m.useState)(r?.other??``),[_,v]=(0,m.useState)(r?.uncommitted??!0),[y,b]=(0,m.useState)(r?.name??``),[x,S]=(0,m.useState)(r?.named??!1),C=e.onDraft;(0,m.useEffect)(()=>{C({picked:i,base:o,commit:c,from:u,to:f,other:h,uncommitted:_,name:y,named:x})},[i,o,c,u,f,h,_,y,x,C]);let[w,T]=(0,m.useState)(!1),[E,D]=(0,m.useState)(null),[O,ee]=(0,m.useState)(null),[k,te]=(0,m.useState)(null),ne=e=>e===`branch`?t.branch!==null||n!==null:e===`last-commit`?t.last!==null:e!==`other-branch`||t.others.length>0,ae=t.branch===null?`last-commit`:`branch`,A=i!==null&&ne(i)?i:ae,ue=t.branch?.selection.head??n?.branch??``,N=t.branch?.selection.baseRef??t.branch?.selection.base??``,P=o??N,F=h===``?t.others[0]??null:t.others.find(e=>e.selection.head===h)??null,I=(0,m.useMemo)(()=>{if(A===`branch`)return o===null||o.trim()===``||o===N?null:{kind:`branch`,base:o.trim(),uncommitted:_};if(A===`commit`)return c.trim()===``?null:{kind:`commit`,commit:c.trim()};if(A===`range`){let e={from:u.trim(),to:f.trim()};return e.from===``||e.to===``?null:{kind:`range`,...e}}return null},[A,o,N,_,c,u,f]);(0,m.useEffect)(()=>{if(I===null){ee(null),te(null);return}let e=!0,t=setTimeout(()=>{re(I).then(t=>{e&&(ee(t),te(null))}).catch(t=>{e&&(ee(null),te(t.message))})},oe);return()=>{e=!1,clearTimeout(t)}},[I]);let de=A===`branch`?I===null?t.branch:O:A===`last-commit`?t.last:A===`other-branch`?F:O,L=M(de),fe=x?y:L,R=e=>{a(e),D(null)},pe=async()=>{if(de!==null){T(!0),D(null);try{let t=A===`branch`?{kind:`branch`,uncommitted:_,...I===null?{}:{base:P.trim()}}:A===`last-commit`?{kind:`last-commit`}:A===`commit`?{kind:`commit`,commit:c.trim()}:A===`range`?{kind:`range`,from:u.trim(),to:f.trim()}:{kind:`other-branch`,branch:de.selection.head};e.onStarted(await ie({name:fe,selection:t}))}catch(e){D(e instanceof Error?e.message:`the review was not filed`),T(!1)}}},me=e=>{let t=e?.summary.commits??[],n=t.slice(0,5);return(0,j.jsxs)(`ul`,{className:`rv-commits`,children:[n.map(e=>(0,j.jsxs)(`li`,{children:[(0,j.jsx)(`span`,{className:`rv-mono`,children:ce(e.hash)}),` `,e.subject]},e.hash)),t.length>n.length&&(0,j.jsxs)(`li`,{children:[`+ `,t.length-n.length,` more`]})]})},he=A===`branch`?de:t.branch,ge=()=>he===null?n===null?``:`pick a base`:le(he),_e=()=>{let e=A===`branch`&&k!==null?k:null;if(he!==null){let t=se[he.selection.baseFoundBy];return e===null?t:`${t} - ${e}`}return e??n?.reason??``},ve=()=>he?.uncommitted.files??t.branch?.uncommitted.files??0,ye=(e,t,n,r,i=null)=>(0,j.jsxs)(`label`,{className:`rv-opt${A===e?` is-chosen`:``}`,children:[(0,j.jsx)(`input`,{type:`radio`,className:`rv-radio-input`,name:`rv-what-to-review`,checked:A===e,onChange:()=>R(e)}),(0,j.jsx)(`span`,{className:`rv-radio`,"aria-hidden":`true`}),(0,j.jsxs)(`span`,{className:`rv-opt-title`,children:[(0,j.jsx)(`b`,{children:t}),(0,j.jsx)(`span`,{className:`rv-count`,children:n})]}),r,i]});return(0,j.jsx)(`div`,{className:`rv-screen`,children:(0,j.jsxs)(`div`,{className:`rv-form`,children:[(0,j.jsx)(`h2`,{children:`New review`}),(0,j.jsx)(`p`,{className:`rv-lead`,children:`Pick what to review. The agent in this session prepares it.`}),(0,j.jsxs)(`div`,{className:`rv-form-row`,children:[(0,j.jsx)(`h3`,{children:`What to review`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.reading,onClick:e.onRefresh,children:e.reading?`Reading…`:`Refresh`})]}),(0,j.jsx)(`p`,{className:`rv-lead`,children:`Each option shows what it holds now. The base and the name can be changed before the review starts.`}),(0,j.jsxs)(`div`,{role:`radiogroup`,"aria-label":`What to review`,children:[e.reading&&e.offer.options.length===0&&(0,j.jsxs)(`p`,{className:`rv-opt is-waiting`,"aria-live":`polite`,children:[(0,j.jsx)(`span`,{className:`rv-dot`}),`Reading the repository. The current branch, the last commit and the other branches appear here once they are counted.`]}),(t.branch!==null||n!==null)&&ye(`branch`,`Current branch against its base`,ge(),(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`span`,{className:`rv-opt-detail`,children:[(0,j.jsx)(`span`,{className:`rv-mono`,children:ue}),` against`,` `,(0,j.jsx)(`input`,{className:`rv-mono`,"aria-label":`The base of this branch`,placeholder:n===null?void 0:`base`,value:P,onChange:e=>{s(e.target.value),R(`branch`)}}),` `,(0,j.jsx)(`span`,{children:_e()})]}),ve()>0&&(0,j.jsxs)(`label`,{className:`rv-check`,children:[(0,j.jsx)(`input`,{type:`checkbox`,checked:_,onChange:e=>v(e.target.checked)}),` `,`Include uncommitted changes (`,ve(),` files)`]})]}),me(A===`branch`?de:t.branch)),t.last!==null&&ye(`last-commit`,`The last commit`,le(t.last),null,me(t.last)),ye(`commit`,`A specific commit`,A===`commit`&&O!==null?le(O):`pick one`,(0,j.jsxs)(`span`,{className:`rv-opt-detail`,children:[(0,j.jsx)(`input`,{className:`rv-mono`,placeholder:`commit`,"aria-label":`A commit to review`,value:c,onChange:e=>{l(e.target.value),R(`commit`)}}),` `,(0,j.jsx)(`span`,{children:A===`commit`&&k!==null?k:`files, hunks and the commit line appear once a commit is typed`})]}),A===`commit`?me(O):null),ye(`range`,`A commit range`,A===`range`&&O!==null?le(O):`pick two`,(0,j.jsxs)(`span`,{className:`rv-opt-detail`,children:[(0,j.jsx)(`input`,{className:`rv-mono`,placeholder:`from`,"aria-label":`The start of the range`,value:u,onChange:e=>{d(e.target.value),R(`range`)}}),` `,`..`,` `,(0,j.jsx)(`input`,{className:`rv-mono`,placeholder:`to`,"aria-label":`The end of the range`,value:f,onChange:e=>{p(e.target.value),R(`range`)}}),` `,(0,j.jsx)(`span`,{children:A===`range`&&k!==null?k:`the commits in the range are listed here`})]}),A===`range`?me(O):null),t.others.length>0&&ye(`other-branch`,`Another branch against its base`,`${t.others.length} branch${t.others.length===1?``:`es`}`,(0,j.jsxs)(`span`,{className:`rv-opt-detail`,children:[(0,j.jsx)(`select`,{"aria-label":`Which branch to review`,value:F?.selection.head??``,onChange:e=>{g(e.target.value),R(`other-branch`)},children:t.others.map(e=>(0,j.jsx)(`option`,{value:e.selection.head,children:e.selection.head},e.selection.head))}),` `,`against`,` `,(0,j.jsx)(`span`,{className:`rv-mono`,children:F?.selection.baseRef??ce(F?.selection.base??``)}),` `,`- `,le(F)]}),A===`other-branch`?me(F):null)]}),(0,j.jsxs)(`div`,{className:`rv-form-foot`,children:[(0,j.jsx)(`label`,{htmlFor:`rv-name`,children:`Name`}),(0,j.jsx)(`input`,{id:`rv-name`,value:fe,onChange:e=>{S(!0),b(e.target.value)}})]}),(0,j.jsx)(`p`,{className:`rv-form-note`,children:`Name proposed from the selection. The agent in this session prepares the review as soon as it is started.`}),E!==null&&(0,j.jsx)(`p`,{className:`rv-refused`,children:E}),(0,j.jsxs)(`div`,{className:`rv-form-acts`,children:[(0,j.jsx)(`button`,{type:`button`,className:`rv-btn`,onClick:e.onCancel,children:`Cancel`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-primary`,disabled:de===null||fe.trim()===``||w,onClick:()=>void pe(),children:`Start review`})]})]})})}var N=`.reviews`,P=`archive`,F=`pending.json`,I=`reader-state.json`,de=`signature.png`,L=`baseline`,fe=`baseline.next`,R=`baseline.gone`,pe=`diff.patch`,me=`blobs`,he=`metadata.json`;`${N}${fe}`,`${N}${R}`,`${N}${L}${pe}`,`${N}${L}${me}`,`${N}${L}${he}`,`${N}${F}`,`${N}${I}`,`${P}${N}${fe}`,`${P}${N}${R}`,`${P}${N}${L}${pe}`,`${P}${N}${L}${me}`,`${P}${N}${L}${he}`,`${P}${N}${F}`,`${P}${N}${I}`;var ge=12;function _e(e){let t=e=>e.slice(0,ge);if(e.followed!==null)return`commit ${t(e.followed)}`;if(e.kind===`branch`||e.kind===`other-branch`){let n=e.baseRef??t(e.base),r=`${e.head} against ${n}`;return e.uncommitted?`${r} - includes uncommitted changes`:r}return e.kind===`range`?`${t(e.base)}..${t(e.head)}`:e.kind===`last-commit`?`last commit ${t(e.head)}`:`commit ${t(e.head)}`}function ve(e){return e.open?e.messages[e.messages.length-1]?.from===`agent`:!1}function ye(e){return e.messages.filter(e=>e.from===`agent`&&e.readAt===null).length}var be={undo:`Undo the change`,explain:`Explain in a comment`,comment:`Comment`,"group-comment":`Comment on group`,fix:`Fix`};function xe(e){return e!==`undo`}function Se(e){if(e.length===0)return``;let t=[...e].sort((e,t)=>e-t),n=t[0],r=t[t.length-1];return n===void 0||r===void 0?``:n===r?`L${n}`:`L${n}-L${r}`}function Ce(e,t){return`${e}\n${t}`}var we=`ungrouped`,Te=600*1e3;function Ee(e,t){if(e===null)return null;let n=new Date(e).getTime();return Number.isNaN(n)?null:Math.max(0,Math.floor((t.getTime()-n)/6e4))}function De(e,t){let n=Ee(e,t);if(n===null)return``;if(n<1)return`just now`;if(n<60)return`${n} minute${n===1?``:`s`} ago`;let r=Math.floor(n/60);if(r<24)return`${r} hour${r===1?``:`s`} ago`;let i=Math.floor(r/24);return`${i} day${i===1?``:`s`} ago`}function Oe(e,t){if(e===null)return!1;let n=new Date(e).getTime();return!Number.isNaN(n)&&t.getTime()-n>Te}function ke(e,t,n=8){let r=[],i=t;for(let t of e){let e=Math.max(t.at,i);r.push(e),i=e+t.height+n}return r}function Ae(e,t,n){return Math.abs(e-t)>n}function je(e,t){let n=e=>Math.round(e),r=n(e.left),i=n(e.top+10),a=n(t.right),o=n(t.top+t.height/2),s=n(t.bottom-1),c=n(t.left+6),l=n((r+a)/2);return[`M${r} ${i}`,`C${l} ${i},${l} ${o},${a} ${o}`,`L${a} ${s}`,`L${c} ${s}`,`L${c} ${o+3}`].join(` `)}function Me(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect();return{left:n.left-r.left,right:n.right-r.left,top:n.top-r.top,bottom:n.bottom-r.top,height:n.height}}function Ne(e){return e.replace(/["\\]/g,e=>`\\${e}`)}function Pe(e,t,n){let r=e.querySelector(`[data-key="${Ne(t)}"]`);if(r===null||n===null)return r;let i=r.querySelector(`[data-line="${n}"]`);return i===null?r:i}var Fe=[`issue`,`attention`,`info`],Ie={issue:`Issues`,attention:`Attention`,info:`Info`};function Le(e){return Fe.find(t=>e.includes(t))??`info`}function Re(e){if(e.length===0)return[];let t=Math.min(...e),n=Math.max(...e);return Array.from({length:n-t+1},(e,n)=>t+n)}function ze(e){return e.lines===null||e.lines.length===0?null:Math.min(...e.lines)}function Be(e){let t=ze(e);if(t===null||e.lines===null)return``;let n=Math.max(...e.lines);return t===n?`L${t}`:`L${t}-${n}`}function Ve(e){let t=[...new Set(e.map(e=>e.kind))].join(` and `);return`${e.length} note${e.length===1?``:`s`} - ${t} - folded with the hunk`}function He(e,t,n,r){let i=new Map;for(let t of e)r!==null&&t.kind!==r||i.set(t.hunk,[...i.get(t.hunk)??[],t]);let a=[];for(let e of t){let t=i.get(e.id)??[];if(t.length!==0){if(e.folded){a.push({key:`${e.key}::fold`,anchor:e.key,hunk:e.id,note:``,line:null,covers:[],kind:Le(t.map(e=>e.kind)),label:``,text:Ve(t),fold:!0,aside:!1});continue}[...t].sort((e,t)=>(ze(e)??-1)-(ze(t)??-1)).forEach((t,r)=>{a.push({key:`${e.key}::${r}`,anchor:e.key,hunk:t.hunk,note:t.key,line:ze(t),covers:t.lines===null?[]:Re(t.lines),kind:t.kind,label:Be(t),text:t.text,fold:!1,aside:n.has(Ce(t.hunk,t.key))})})}}return a}function Ue(e){if(!(e instanceof HTMLElement))return!1;if(e.isContentEditable)return!0;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||t===`SELECT`}function We(e){let t=(0,m.useRef)(null),n=(0,m.useRef)(null),r=(0,m.useRef)(new Map),[i,a]=(0,m.useState)(null),[o,s]=(0,m.useState)(new Set),[c,l]=(0,m.useState)(new Set),[u,d]=(0,m.useState)(null),[f,p]=(0,m.useState)(null),h=He(e.notes,e.drawn,e.dismissed,u),g=e.collapsed,_=new Set(e.drawn.map(e=>e.id)),v=e.notes.filter(e=>_.has(e.hunk)),y=t=>!e.dismissed.has(Ce(t.hunk,t.key)),b=e=>v.filter(t=>t.kind===e&&(e===`info`||y(t))).length,x=h.filter(e=>!e.fold),S=t=>{p(t.key);let n=e.frame.current,r=n===null?null:Pe(n,t.anchor,t.line);r!==null&&typeof r.scrollIntoView==`function`&&r.scrollIntoView({block:`center`})},C=x.length===0||f===x[x.length-1]?.key,w=e=>{if(x.length===0)return;let t=x.findIndex(e=>e.key===f),n=t===-1?e===1?0:x.length-1:t+e,r=x[n];r!==void 0&&S(r)},T=()=>{let t=e.elsewhere?.next??null;t!==null&&(p(null),e.onGroup(t.group),e.onGo(t.hunk))},E=(0,m.useRef)({step:w,cross:T,atEnd:C});E.current={step:w,cross:T,atEnd:C},(0,m.useEffect)(()=>{let e=e=>{if(!(e.altKey||e.ctrlKey||e.metaKey||Ue(e.target))){if(e.key===`p`)E.current.step(-1);else if(e.key===`n`)E.current.atEnd?E.current.cross():E.current.step(1);else return;e.preventDefault()}};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]);let D=(0,m.useRef)(h);if(D.current=h,(0,m.useEffect)(()=>{let t=e.frame.current;if(t===null)return;let n=e=>{let t=e.target instanceof HTMLElement?e.target:null,n=t?.closest(`[data-anchor]`)??null;if(n!==null)return n.dataset.key??null;let r=t?.closest(`.is-note`)??null,i=r?.closest(`[data-key]`)??null;if(r===null||i===null)return null;let a=r.dataset.line,o=a===void 0?null:Number(a);return D.current.find(e=>e.anchor===i.dataset.key&&(o===null?e.line===null:e.covers.includes(o)))?.key??null},r=e=>a(n(e)),i=()=>a(null);return t.addEventListener(`mouseover`,r),t.addEventListener(`mouseleave`,i),()=>{t.removeEventListener(`mouseover`,r),t.removeEventListener(`mouseleave`,i)}},[e.frame]),(0,m.useLayoutEffect)(()=>{let a=t.current,o=e.frame.current;if(a===null||o===null||g)return;let s=[...a.querySelectorAll(`[data-anchor]`)],c=s.map(e=>{let t=e.dataset.line,n=Pe(o,e.dataset.anchor??``,t===void 0?null:Number(t)),r=n?.closest(`[data-key]`),i=e.querySelector(`.rv-note-txt`);return{key:e.dataset.key??``,anchor:n,height:e.offsetHeight,inColumn:n===null?null:Me(n,a),inFrame:n===null?null:Me(n,o),noteInFrame:Me(e,o),cardHeight:r instanceof HTMLElement?r.offsetHeight:0,long:i!==null&&i.scrollHeight>i.clientHeight+1}}),u=n.current===null?8:Me(n.current,a).bottom+8,d=ke(c.map(e=>({at:e.inColumn?.top??u,height:e.height})),u);s.forEach((e,t)=>{e.style.top=`${d[t]??u}px`});let p=d[d.length-1]??u,m=a.querySelector(`.rv-nnext`)?.offsetHeight??0,h=m===0?0:m+8;a.style.minHeight=`${p+(c[c.length-1]?.height??0)+8+h}px`;let _=Me(a,o).top;c.forEach((e,t)=>{let n=r.current.get(e.key)??null;if(n===null)return;let a=d[t]??u,o=e.inColumn!==null&&Ae(a,e.inColumn.top,e.cardHeight),s=i===e.key||f===e.key;if(e.anchor===null||e.inFrame===null||!(o||s)){n.setAttribute(`d`,``);return}let c={left:e.noteInFrame.left,right:e.noteInFrame.right,top:_+a,bottom:_+a+e.height,height:e.height};n.setAttribute(`d`,je(c,e.inFrame))});let v=new Set(c.filter(e=>e.long).map(e=>e.key));l(e=>e.size===v.size&&[...e].every(e=>v.has(e))?e:v)}),g)return(0,j.jsx)(`aside`,{className:`rv-nrail is-collapsed`,"aria-label":`Agent notes`,children:(0,j.jsx)(`button`,{type:`button`,className:`rv-icon`,"aria-expanded":`false`,"aria-label":`Show notes`,onClick:()=>e.onCollapse(!1),children:(0,j.jsx)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,children:(0,j.jsx)(`path`,{d:`M11 3l-5 5 5 5`})})})});let O=e.elsewhere,ee=e=>e===`info`?``:` is-${e}`,k=t=>!e.readable||t.kind===`info`?null:t.aside?(0,j.jsxs)(`div`,{className:`rv-note-acts`,children:[(0,j.jsx)(`span`,{className:`rv-note-aside`,children:`dismissed`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-link`,onClick:()=>e.onDismiss(t.hunk,t.note,!1),children:`Undo`})]}):(0,j.jsxs)(`div`,{className:`rv-note-acts`,children:[t.kind===`issue`&&(0,j.jsx)(`button`,{type:`button`,className:`rv-note-act is-fix`,onClick:()=>e.onAsk(t.hunk,t.covers,t.text),children:`Ask to fix`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-note-act`,onClick:()=>e.onTalk(t.hunk,t.covers),children:`Let's talk`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-note-act`,onClick:()=>e.onDismiss(t.hunk,t.note,!0),children:`Dismiss`})]});return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`aside`,{className:`rv-nrail`,"aria-label":`Agent notes`,ref:t,children:[(0,j.jsxs)(`div`,{className:`rv-nrail-top`,ref:n,children:[(0,j.jsxs)(`p`,{className:`rv-nrail-head`,children:[(0,j.jsx)(`span`,{children:`Agent notes`}),(0,j.jsx)(`span`,{className:`rv-grow`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-icon`,"aria-expanded":`true`,"aria-label":`Collapse notes`,onClick:()=>e.onCollapse(!0),children:(0,j.jsx)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,children:(0,j.jsx)(`path`,{d:`M6 3l5 5-5 5`})})})]}),v.length>0&&(0,j.jsxs)(`div`,{className:`rv-nstrip`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`rv-npill`,"aria-pressed":u===null,onClick:()=>d(null),children:[`All `,v.length]}),Fe.map(e=>(0,j.jsxs)(`button`,{type:`button`,className:`rv-npill${ee(e)}`,"aria-pressed":u===e,onClick:()=>d(t=>t===e?null:e),children:[Ie[e],` `,b(e)]},e)),(0,j.jsx)(`span`,{className:`rv-grow`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-icon`,"aria-label":`Previous note`,disabled:x.length===0,onClick:()=>w(-1),children:`‹`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-icon`,"aria-label":`Next note`,disabled:x.length===0&&O?.next==null,onClick:()=>C&&O?.next!=null?T():w(1),children:`›`})]}),O!==null&&O.count>0&&(0,j.jsx)(`p`,{className:`rv-nelse`,children:(0,j.jsxs)(`button`,{type:`button`,className:`rv-link`,onClick:()=>e.onGroup(null),children:[O.count,` more in other group`,O.count===1?``:`s`]})})]}),h.length===0&&v.length===0&&(0,j.jsxs)(`p`,{className:`rv-note is-waiting`,children:[(0,j.jsx)(`span`,{className:`rv-skel is-wide`}),(0,j.jsx)(`span`,{className:`rv-skel is-half`}),(0,j.jsx)(`small`,{children:`Notes arrive with each group`})]}),h.map(e=>e.fold?(0,j.jsx)(`p`,{className:`rv-nfold${ee(e.kind)}`,"data-key":e.key,"data-anchor":e.anchor,children:e.text},e.key):(0,j.jsxs)(`div`,{className:`rv-note${ee(e.kind)}${e.aside?` is-aside`:``}${f===e.key?` is-current`:``}`,role:`note`,"data-key":e.key,"data-anchor":e.anchor,"data-line":e.line??void 0,children:[(0,j.jsx)(`span`,{className:`rv-note-kind`,children:e.kind}),e.label!==``&&(0,j.jsx)(`span`,{className:`rv-note-ln`,children:e.label}),(0,j.jsx)(`span`,{className:`rv-note-txt${o.has(e.key)?``:` is-clamped`}`,children:e.text}),(c.has(e.key)||o.has(e.key))&&(0,j.jsx)(`button`,{type:`button`,className:`rv-link`,onClick:()=>s(t=>{let n=new Set(t);return n.has(e.key)?n.delete(e.key):n.add(e.key),n}),children:o.has(e.key)?`less`:`more`}),k(e)]},e.key)),O?.next!=null&&h.length>0&&(0,j.jsxs)(`p`,{className:`rv-nnext`,children:[`Last note in this group.`,` `,(0,j.jsxs)(`button`,{type:`button`,className:`rv-link`,onClick:T,children:[`Next: "`,O.next.name,`" ›`]})]})]}),(0,j.jsx)(`svg`,{className:`rv-wire`,"aria-hidden":`true`,children:h.map(e=>(0,j.jsx)(`path`,{className:e.kind===`info`?void 0:`is-${e.kind}`,ref:t=>{r.current.set(e.key,t)}},e.key))})]})}function Ge(e){return e===`agent`?`Not grouped yet`:`Ungrouped`}function Ke(e){let t=e.metadata.groups.map(e=>({id:e.id,name:e.name,narrative:e.narrative,facts:e.facts,hunks:e.hunks}));return e.ungrouped.length>0&&t.push({id:we,name:Ge(e.state.side),narrative:``,facts:[],hunks:e.ungrouped}),t}function qe(e){let t=e.baseline;if(t===null)return`no baseline`;let n=[`${t.totals.hunks} hunks`];e.progress.seen===0&&n.push(`${t.totals.files} files`),n.push(`${e.progress.seen} Seen`);let r=e.attention.waiting,i=e.threads.threads.filter(e=>e.open).length;return r>0?n.push(`${r} thread${r===1?``:`s`} waits on you`):i>0&&n.push(`${i} open thread${i===1?``:`s`}`),n.join(` - `)}function Je(e){let t=/^@@ (-\d+)/.exec(e);return t===null?``:`@@ ${t[1]}`}function Ye(e){return e.split(`/`).pop()??e}function Xe(e){let t=e.review,n=t.baseline,r=new Map((n?.entries??[]).map(e=>[e.id,e])),i=new Set(t.marks.marks.map(e=>e.hunk)),a=new Set(t.pending.items.map(e=>e.hunk).filter(e=>e!==null)),s=new Set(t.threads.threads.filter(e=>e.open).map(e=>e.anchor)),c=new Set(t.threads.threads.filter(e=>ye(e)>0).map(e=>e.anchor)),l=new Set(t.dismissals.items.map(e=>Ce(e.hunk,e.key))),u=new Map;for(let e of t.metadata.notes)l.has(Ce(e.hunk,e.key))||u.set(e.hunk,[...u.get(e.hunk)??[],e]);let d=e=>{let t=u.get(e)??[];if(t.length===0)return null;let n=Le(t.map(e=>e.kind)),r=n===`issue`?`, one an issue`:n===`attention`?`, one for attention`:``,i=`${t.length} note${t.length===1?``:`s`}${r}`;return(0,j.jsxs)(`span`,{className:`rv-qi-notes`,role:`img`,title:i,"aria-label":i,children:[(0,j.jsx)(`span`,{className:`rv-qi-nd${n===`info`?``:` is-${n}`}`}),t.length>1&&(0,j.jsx)(`span`,{className:`rv-qi-nc`,children:t.length})]})},p=Ke(t),m=p.filter(t=>t.id===e.group),h=e.group===null||m.length===0?p:m,g=t.state.side===`you`&&t.state.status!==`archived`,_=t=>{let l=r.get(t),u=l===void 0?null:n?.files[l.file]??null,f=i.has(t)?`✓`:s.has(t)?(0,j.jsx)(o,{size:11}):a.has(t)?`●`:`○`,p=i.has(t)?`is-seen`:s.has(t)?`is-thread`:a.has(t)?`is-pending`:`is-waiting`;return(0,j.jsx)(`li`,{children:(0,j.jsxs)(`button`,{type:`button`,className:`rv-qi`,"aria-current":t===e.at?`true`:void 0,disabled:!g,onClick:()=>e.onPick(t),children:[(0,j.jsx)(`span`,{className:`rv-qi-mark ${p}`,"aria-hidden":`true`,children:f}),(0,j.jsxs)(`span`,{className:`rv-qi-file`,children:[u===null?t:Ye(u.path),` `,(0,j.jsx)(`em`,{children:l===void 0||l.header===``?`whole file`:Je(l.header)}),s.has(t)&&(0,j.jsx)(`em`,{children:` thread`})]}),(0,j.jsx)(`span`,{className:`rv-grow`}),d(t),c.has(t)&&(0,j.jsx)(`span`,{className:`rv-qi-ud`,title:`Unread reply`})]})},`${l?.file??0}-${t}`)};return(0,j.jsxs)(`nav`,{className:`nav has-foot`,"aria-label":`The hunks of this review`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`nav-back`,onClick:e.onBack,children:[(0,j.jsx)(f,{size:11}),`All reviews`]}),(0,j.jsxs)(`div`,{className:`nav-title`,children:[(0,j.jsx)(`div`,{className:`nav-title-name`,children:t.state.name}),(0,j.jsx)(`div`,{className:`nav-title-note`,children:qe(t)})]}),h.map(e=>(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`h2`,{className:`nav-head`,children:[(0,j.jsx)(`span`,{children:e.name}),(0,j.jsx)(`span`,{className:`nav-head-count`,children:t.progress.seen===0?e.hunks.length:`${e.hunks.filter(e=>i.has(e)).length}/${e.hunks.length}`})]}),(0,j.jsx)(`ul`,{className:`nav-list`,children:e.hunks.map(_)})]},e.id)),(0,j.jsxs)(`p`,{className:`nav-foot`,children:[(0,j.jsx)(`span`,{className:`rv-qi-mark is-seen`,children:`✓`}),` Seen`,` `,(0,j.jsx)(`span`,{className:`rv-qi-mark is-pending`,children:`●`}),` pending`,` `,i.size===0&&s.size===0?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{className:`rv-qi-mark is-waiting`,children:`○`}),` not ready`]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{className:`rv-qi-mark is-thread`,children:(0,j.jsx)(o,{size:11})}),` `,`thread`]}),u.size>0&&(0,j.jsxs)(j.Fragment,{children:[` `,(0,j.jsx)(`span`,{className:`rv-qi-nd`}),` info `,(0,j.jsx)(`span`,{className:`rv-qi-nd is-attention`}),` attention`,` `,(0,j.jsx)(`span`,{className:`rv-qi-nd is-issue`}),` issue`]}),c.size>0&&(0,j.jsxs)(j.Fragment,{children:[` `,(0,j.jsx)(`span`,{className:`rv-qi-ud`}),` unread reply`]})]})]})}function Ze(e){if(e===null)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleDateString()}function Qe(e){return e.relation===null?null:e.relation.relation===`out-of-sync`?{text:`Out of sync`,kind:``}:e.relation.relation===`merged`?{text:`Merged`,kind:`is-merged`}:null}function $e(e){return e.approved===null?``:`${e.approved?`Approved`:`Closed`} ${Ze(e.endedAt)}`.trim()}function et(e){return[e.name,e.branch??``,e.selection,Ze(e.endedAt),$e(e)].join(` `).toLowerCase()}function tt(e){let t=e.now??new Date,[n,r]=(0,m.useState)(!1),[i,a]=(0,m.useState)(``),o=(0,m.useMemo)(()=>{let t=i.trim().toLowerCase();return t===``?e.archived:e.archived.filter(e=>et(e).includes(t))},[e.archived,i]),c=n=>{let r=Qe(n),i=n.status===`reviewing`?``:$e(n),a=n.side===`agent`&&n.status===`reviewing`;return(0,j.jsx)(`li`,{children:(0,j.jsxs)(`button`,{type:`button`,className:`rv-row`,"aria-current":n.slug===e.open?`true`:void 0,disabled:n.missing,onClick:()=>e.onOpen(n.slug),children:[(0,j.jsxs)(`span`,{className:`rv-row-top`,children:[(0,j.jsx)(`span`,{className:`rv-row-name`,children:n.name}),r!==null&&(0,j.jsx)(`span`,{className:`rv-row-chip ${r.kind}`.trim(),children:r.text})]}),i===``?(0,j.jsx)(`span`,{className:`rv-bar`,children:(0,j.jsx)(`i`,{style:{width:`${nt(n)}%`}})}):(0,j.jsx)(`span`,{className:`rv-row-ended`,children:i}),a&&(0,j.jsxs)(`span`,{className:`rv-row-state`,children:[(0,j.jsx)(`span`,{className:`rv-dot`}),n.activity===``?`Awaits agent`:`Awaits agent - ${n.activity}`]}),n.missing&&(0,j.jsx)(`span`,{className:`rv-row-note`,children:`Missing on this branch`}),n.filedBy===`terminal`&&n.status===`reviewing`&&!n.missing&&(0,j.jsxs)(`span`,{className:`rv-row-note`,children:[`Filed from the terminal `,De(n.created,t)]})]})},n.slug)};return(0,j.jsxs)(`nav`,{className:`nav`,"aria-label":`Code reviews`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`nav-new`,"aria-pressed":e.starting,disabled:!e.repository,onClick:e.onStart,children:[(0,j.jsx)(s,{size:12}),`New review`]}),e.error!==null&&(0,j.jsx)(`p`,{className:`nav-note`,children:e.error}),(0,j.jsxs)(`h2`,{className:`nav-head`,children:[(0,j.jsx)(`span`,{children:`Active`}),(0,j.jsx)(`span`,{className:`nav-head-count`,children:e.active.length})]}),e.active.length===0?(0,j.jsx)(`p`,{className:`nav-empty`,children:`none yet`}):(0,j.jsx)(`ul`,{className:`nav-list`,children:e.active.map(c)}),e.archived.length>0&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`h2`,{className:`nav-head`,children:(0,j.jsxs)(`button`,{type:`button`,"aria-expanded":n,onClick:()=>r(e=>!e),children:[(0,j.jsx)(`span`,{children:`Archived`}),(0,j.jsxs)(`span`,{className:`nav-head-count`,children:[e.archived.length,` `,n?`▾`:`▸`]})]})}),n&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`nav-search`,children:(0,j.jsx)(`input`,{type:`search`,"aria-label":`Search the archive`,placeholder:`Search name, branch or date`,value:i,onChange:e=>a(e.target.value)})}),o.length===0?(0,j.jsx)(`p`,{className:`nav-empty`,children:`nothing by that name`}):(0,j.jsx)(`ul`,{className:`nav-list nav-archived`,children:o.map(c)})]})]})]})}function nt(e){return e.progress.total===0?0:Math.round(e.progress.seen/e.progress.total*100)}function rt(e){let[t,n]=(0,m.useState)(!1),[r,i]=(0,m.useState)(``);return t?(0,j.jsxs)(`div`,{className:`rv-aclose`,children:[(0,j.jsx)(`textarea`,{"aria-label":`Why it is closed without approval`,rows:2,value:r,disabled:e.busy,onChange:e=>i(e.target.value)}),(0,j.jsxs)(`span`,{className:`rv-aclose-acts`,children:[(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.busy||r.trim()===``,onClick:()=>e.onClose(r.trim()),children:`Close without approval`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,onClick:()=>n(!1),children:`Cancel`})]})]}):(0,j.jsxs)(`div`,{className:`rv-aclose`,children:[(0,j.jsx)(`button`,{type:`button`,className:`rv-link`,disabled:e.busy,onClick:()=>n(!0),children:`Close without approval`}),(0,j.jsx)(`span`,{className:`rv-facts`,children:`Opens a box for the reason.`})]})}function it(e){if(e===null)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}function at(e){let t=e.indexOf(`:`),n=t===-1?``:e.slice(0,t+1),r=e.slice(t+1);return r.length<=12?e:`${n}${r.slice(0,6)}…${r.slice(-4)}`}function ot(e){let t=e.baseline?.resolved;if(t===void 0)return`no baseline`;let n=t.head.slice(0,7);return t.tree?`${n}, includes uncommitted changes`:`${n}, working copy clean`}function st(e){let t=e.review,[n,r]=(0,m.useState)(t.configuredName),[i,a]=(0,m.useState)(!1),o=(0,m.useRef)(null),s=(0,m.useRef)(!1),c=e=>{let t=o.current;if(t===null)return null;let n=t.getBoundingClientRect();return n.width===0||n.height===0?null:{x:(e.clientX-n.left)/n.width*t.width,y:(e.clientY-n.top)/n.height*t.height}},l=(e,t)=>{let n=o.current?.getContext(`2d`)??null,r=c(e);if(!(n===null||r===null)){if(n.strokeStyle=`#e6edf3`,n.lineWidth=2,n.lineCap=`round`,t){n.beginPath(),n.moveTo(r.x,r.y);return}n.lineTo(r.x,r.y),n.stroke(),a(!0)}},u=()=>{let e=o.current,t=e?.getContext(`2d`)??null;e!==null&&t!==null&&t.clearRect(0,0,e.width,e.height),a(!1)},d=()=>{let e=o.current;if(!i||e===null)return null;let t=e.toDataURL(`image/png`);return t.startsWith(`data:image/png;base64,`)?t:null};return(0,j.jsxs)(`section`,{className:`rv-approve`,children:[(0,j.jsxs)(`div`,{className:`rv-ameta`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{className:`rv-k`,children:`Review`}),(0,j.jsx)(`span`,{className:`rv-v`,children:t.state.name})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{className:`rv-k`,children:`Feedback loops`}),(0,j.jsx)(`span`,{className:`rv-v`,children:t.loops})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{className:`rv-k`,children:`Hunks Seen`}),(0,j.jsxs)(`span`,{className:`rv-v`,children:[t.progress.seen,` of `,t.progress.total]})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{className:`rv-k`,children:`Fingerprint`}),(0,j.jsx)(`span`,{className:`rv-v rv-mono`,title:t.baseline?.fingerprint??``,children:at(t.baseline?.fingerprint??``)})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{className:`rv-k`,children:`Commit`}),(0,j.jsx)(`span`,{className:`rv-v rv-mono`,children:ot(t)})]})]}),(0,j.jsxs)(`form`,{className:`rv-aact`,onSubmit:t=>{t.preventDefault(),!(e.busy||n.trim()===``)&&e.onApprove(n.trim(),d())},children:[(0,j.jsxs)(`p`,{className:`rv-field`,children:[(0,j.jsxs)(`label`,{htmlFor:`rv-signer`,children:[`Your name `,(0,j.jsx)(`small`,{children:`from git`})]}),(0,j.jsx)(`input`,{id:`rv-signer`,value:n,disabled:e.busy,onChange:e=>r(e.target.value)})]}),(0,j.jsxs)(`p`,{className:`rv-field`,children:[(0,j.jsxs)(`span`,{className:`rv-label`,children:[`Signature `,(0,j.jsx)(`small`,{children:`optional`})]}),(0,j.jsxs)(`span`,{className:`rv-sig`,children:[(0,j.jsx)(`canvas`,{ref:o,width:520,height:160,"aria-label":`Signature`,onPointerDown:e=>{s.current=!0,e.currentTarget.setPointerCapture?.(e.pointerId),l(e,!0)},onPointerMove:e=>{s.current&&l(e,!1)},onPointerUp:()=>{s.current=!1},onPointerLeave:()=>{s.current=!1}}),(0,j.jsx)(`button`,{type:`button`,className:`rv-link`,disabled:!i,onClick:u,children:`clear`})]})]}),(0,j.jsx)(`button`,{type:`submit`,className:`rv-btn is-ok`,disabled:e.busy||n.trim()===``,children:`Sign and approve`}),(0,j.jsx)(rt,{busy:e.busy,onClose:e.onClose})]})]})}function ct(e){let[t,n]=(0,m.useState)(e.text??``),r=be[e.act],i=Se(e.lines),a=t.trim()!==``||!xe(e.act);return(0,j.jsxs)(`form`,{className:`rv-compose`,onSubmit:n=>{n.preventDefault(),!(!a||e.busy)&&e.onWrite(t.trim())},children:[(0,j.jsxs)(`p`,{className:`rv-compose-head`,children:[(0,j.jsx)(`b`,{children:r}),i!==``&&(0,j.jsx)(`span`,{className:`rv-facts`,children:i})]}),(0,j.jsx)(`textarea`,{"aria-label":r,rows:3,value:t,disabled:e.busy,onChange:t=>{n(t.target.value),e.onChange?.(t.target.value)}}),(0,j.jsxs)(`p`,{className:`rv-compose-acts`,children:[(0,j.jsx)(`button`,{type:`submit`,className:`rv-btn is-small is-primary`,disabled:!a||e.busy,children:`Add to feedback`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,onClick:e.onCancel,children:`Cancel`})]})]})}function lt(e){return e.slice(0,10)}function ut(e){let t=e.approval,[n,r]=(0,m.useState)(null),i=e.slug,a=t.signature;return(0,m.useEffect)(()=>{if(a===null)return;let e=!0;return A(`${i}/${de}`).then(t=>{e&&r(t)}),()=>{e=!1}},[a,i]),(0,j.jsxs)(`div`,{className:`rv-ended`,children:[(0,j.jsxs)(`span`,{children:[t.approved?`Approved`:`Closed`,` `,lt(t.at),t.name!==``&&(0,j.jsxs)(j.Fragment,{children:[` by `,(0,j.jsx)(`b`,{children:t.name})]})]}),n!==null&&(0,j.jsx)(`img`,{src:n,alt:`Signed by ${t.name}`}),!t.approved&&t.reason!==``&&(0,j.jsx)(`span`,{className:`rv-reason`,children:t.reason}),(0,j.jsxs)(`span`,{children:[`fingerprint `,(0,j.jsx)(`span`,{className:`rv-mono`,children:at(t.fingerprint)})]}),(0,j.jsxs)(`span`,{children:[`commit `,(0,j.jsx)(`span`,{className:`rv-mono`,children:t.commit.slice(0,7)}),t.uncommitted&&`, with uncommitted changes`]}),(0,j.jsx)(`span`,{className:`rv-grow`}),!e.filed&&(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.busy,onClick:e.onArchive,children:`File this review away`})]})}function dt(e){return e.from===`agent`?`Agent`:`You`}function ft(e){let t=e.thread,n=!e.agentHolds&&ve(t);return(0,j.jsxs)(`div`,{className:`rv-thread`,"data-thread":t.id,children:[t.messages.map(t=>{let n=t.from===`agent`&&t.readAt===null,r=dt(t);return(0,j.jsxs)(`div`,{className:`rv-msg${n?` is-unread`:``}`,children:[(0,j.jsxs)(`span`,{className:`rv-who${t.from===`agent`?` is-agent`:``}`,children:[`${r} - `,it(t.at),n&&(0,j.jsx)(`span`,{className:`rv-new`,children:`new`})]}),(0,j.jsx)(`div`,{className:`rv-msg-body${t.from===`tool`?` is-tool`:``}`,"data-unread":n?t.id:void 0,ref:n?e.watch:void 0,children:t.text})]},t.id)}),(0,j.jsxs)(`div`,{className:`rv-tf`,children:[t.label===`hunk-removed`&&(0,j.jsx)(`span`,{className:`rv-tag`,children:`hunk removed`}),(0,j.jsx)(`span`,{className:t.open?``:`rv-ok`,children:t.open?n?`Waits on you`:`Waits on the agent`:`Closed${t.closedAt===null?``:` ${it(t.closedAt)}`}`}),t.open&&(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:!e.readable||e.busy,onClick:e.onClose,children:`Close thread`})]})]})}var pt={dockerfile:`docker`,containerfile:`docker`,makefile:`make`,gnumakefile:`make`},mt={ts:`typescript`,mts:`typescript`,cts:`typescript`,tsx:`tsx`,js:`javascript`,mjs:`javascript`,cjs:`javascript`,jsx:`jsx`,json:`json`,jsonc:`jsonc`,yaml:`yaml`,yml:`yaml`,toml:`toml`,md:`markdown`,markdown:`markdown`,html:`html`,htm:`html`,css:`css`,scss:`scss`,sh:`shellscript`,bash:`shellscript`,zsh:`shellscript`,py:`python`,go:`go`,rs:`rust`,java:`java`,kt:`kotlin`,kts:`kotlin`,c:`c`,h:`c`,cpp:`cpp`,cc:`cpp`,cxx:`cpp`,hpp:`cpp`,hh:`cpp`,cs:`csharp`,rb:`ruby`,php:`php`,sql:`sql`,graphql:`graphql`,gql:`graphql`,xml:`xml`,svg:`xml`,mk:`make`,ini:`ini`,cfg:`ini`,diff:`diff`,patch:`diff`};function ht(e){let t=(e.split(`/`).pop()??``).toLowerCase(),n=t.split(`.`)[0]??``,r=pt[t]??pt[n];if(r!==void 0)return r;let i=t.lastIndexOf(`.`);return i<=0?null:mt[t.slice(i+1)]??null}var z=class extends Error{constructor(e){super(e),this.name=`ShikiError`}};function gt(e){return _t(e)}function _t(e){return Array.isArray(e)?vt(e):e instanceof RegExp?e:typeof e==`object`?yt(e):e}function vt(e){let t=[];for(let n=0,r=e.length;n<r;n++)t[n]=_t(e[n]);return t}function yt(e){let t={};for(let n in e)t[n]=_t(e[n]);return t}function bt(e,...t){return t.forEach(t=>{for(let n in t)e[n]=t[n]}),e}function xt(e){let t=~e.lastIndexOf(`/`)||~e.lastIndexOf(`\\`);return t===0?e:~t===e.length-1?xt(e.substring(0,e.length-1)):e.substr(~t+1)}var St=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,Ct=class{static hasCaptures(e){return e===null?!1:(St.lastIndex=0,St.test(e))}static replaceCaptures(e,t,n){return e.replace(St,(e,r,i,a)=>{let o=n[parseInt(r||i,10)];if(o){let e=t.substring(o.start,o.end);for(;e[0]===`.`;)e=e.substring(1);switch(a){case`downcase`:return e.toLowerCase();case`upcase`:return e.toUpperCase();default:return e}}else return e})}};function wt(e,t){return e<t?-1:+(e>t)}function Tt(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)return 1;let n=e.length,r=t.length;if(n===r){for(let r=0;r<n;r++){let n=wt(e[r],t[r]);if(n!==0)return n}return 0}return n-r}function Et(e){return!!(/^#[0-9a-f]{6}$/i.test(e)||/^#[0-9a-f]{8}$/i.test(e)||/^#[0-9a-f]{3}$/i.test(e)||/^#[0-9a-f]{4}$/i.test(e))}function Dt(e){return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,`\\$&`)}var Ot=class{constructor(e){this.fn=e}cache=new Map;get(e){if(this.cache.has(e))return this.cache.get(e);let t=this.fn(e);return this.cache.set(e,t),t}},kt=class{constructor(e,t,n){this._colorMap=e,this._defaults=t,this._root=n}static createFromRawTheme(e,t){return this.createFromParsedTheme(Pt(e),t)}static createFromParsedTheme(e,t){return It(e,t)}_cachedMatchRoot=new Ot(e=>this._root.match(e));getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;let t=e.scopeName,n=this._cachedMatchRoot.get(t).find(t=>jt(e.parent,t.parentScopes));return n?new Nt(n.fontStyle,n.foreground,n.background):null}},At=class e{constructor(e,t){this.parent=e,this.scopeName=t}static push(t,n){for(let r of n)t=new e(t,r);return t}static from(...t){let n=null;for(let r=0;r<t.length;r++)n=new e(n,t[r]);return n}push(t){return new e(this,t)}getSegments(){let e=this,t=[];for(;e;)t.push(e.scopeName),e=e.parent;return t.reverse(),t}toString(){return this.getSegments().join(` `)}extends(e){return this===e||this.parent!==null&&this.parent.extends(e)}getExtensionIfDefined(e){let t=[],n=this;for(;n&&n!==e;)t.push(n.scopeName),n=n.parent;return n===e?t.reverse():void 0}};function jt(e,t){if(t.length===0)return!0;for(let n=0;n<t.length;n++){let r=t[n],i=!1;if(r===`>`){if(n===t.length-1)return!1;r=t[++n],i=!0}for(;e&&!Mt(e.scopeName,r);){if(i)return!1;e=e.parent}if(!e)return!1;e=e.parent}return!0}function Mt(e,t){return t===e||e.startsWith(t)&&e[t.length]===`.`}var Nt=class{constructor(e,t,n){this.fontStyle=e,this.foregroundId=t,this.backgroundId=n}};function Pt(e){if(!e||!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,n=[],r=0;for(let e=0,i=t.length;e<i;e++){let i=t[e];if(!i.settings)continue;let a;if(typeof i.scope==`string`){let e=i.scope;e=e.replace(/^[,]+/,``),e=e.replace(/[,]+$/,``),a=e.split(`,`)}else a=Array.isArray(i.scope)?i.scope:[``];let o=-1;if(typeof i.settings.fontStyle==`string`){o=0;let e=i.settings.fontStyle.split(` `);for(let t=0,n=e.length;t<n;t++)switch(e[t]){case`italic`:o|=1;break;case`bold`:o|=2;break;case`underline`:o|=4;break;case`strikethrough`:o|=8;break}}let s=null;typeof i.settings.foreground==`string`&&Et(i.settings.foreground)&&(s=i.settings.foreground);let c=null;typeof i.settings.background==`string`&&Et(i.settings.background)&&(c=i.settings.background);for(let t=0,i=a.length;t<i;t++){let i=a[t].trim().split(` `),l=i[i.length-1],u=null;i.length>1&&(u=i.slice(0,i.length-1),u.reverse()),n[r++]=new Ft(l,u,e,o,s,c)}}return n}var Ft=class{constructor(e,t,n,r,i,a){this.scope=e,this.parentScopes=t,this.index=n,this.fontStyle=r,this.foreground=i,this.background=a}},B=(e=>(e[e.NotSet=-1]=`NotSet`,e[e.None=0]=`None`,e[e.Italic=1]=`Italic`,e[e.Bold=2]=`Bold`,e[e.Underline=4]=`Underline`,e[e.Strikethrough=8]=`Strikethrough`,e))(B||{});function It(e,t){e.sort((e,t)=>{let n=wt(e.scope,t.scope);return n!==0||(n=Tt(e.parentScopes,t.parentScopes),n!==0)?n:e.index-t.index});let n=0,r=`#000000`,i=`#ffffff`;for(;e.length>=1&&e[0].scope===``;){let t=e.shift();t.fontStyle!==-1&&(n=t.fontStyle),t.foreground!==null&&(r=t.foreground),t.background!==null&&(i=t.background)}let a=new Lt(t),o=new Nt(n,a.getId(r),a.getId(i)),s=new Bt(new zt(0,null,-1,0,0),[]);for(let t=0,n=e.length;t<n;t++){let n=e[t];s.insert(0,n.scope,n.parentScopes,n.fontStyle,a.getId(n.foreground),a.getId(n.background))}return new kt(a,o,s)}var Lt=class{_isFrozen;_lastColorId;_id2color;_color2id;constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,n=e.length;t<n;t++)this._color2id[e[t]]=t,this._id2color[t]=e[t]}else this._isFrozen=!1}getId(e){if(e===null)return 0;e=e.toUpperCase();let t=this._color2id[e];if(t)return t;if(this._isFrozen)throw Error(`Missing color in color map - ${e}`);return t=++this._lastColorId,this._color2id[e]=t,this._id2color[t]=e,t}getColorMap(){return this._id2color.slice(0)}},Rt=Object.freeze([]),zt=class e{scopeDepth;parentScopes;fontStyle;foreground;background;constructor(e,t,n,r,i){this.scopeDepth=e,this.parentScopes=t||Rt,this.fontStyle=n,this.foreground=r,this.background=i}clone(){return new e(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(e){let t=[];for(let n=0,r=e.length;n<r;n++)t[n]=e[n].clone();return t}acceptOverwrite(e,t,n,r){this.scopeDepth>e?console.log(`how did this happen?`):this.scopeDepth=e,t!==-1&&(this.fontStyle=t),n!==0&&(this.foreground=n),r!==0&&(this.background=r)}},Bt=class e{constructor(e,t=[],n={}){this._mainRule=e,this._children=n,this._rulesWithParentScopes=t}_rulesWithParentScopes;static _cmpBySpecificity(e,t){if(e.scopeDepth!==t.scopeDepth)return t.scopeDepth-e.scopeDepth;let n=0,r=0;for(;e.parentScopes[n]===`>`&&n++,t.parentScopes[r]===`>`&&r++,!(n>=e.parentScopes.length||r>=t.parentScopes.length);){let i=t.parentScopes[r].length-e.parentScopes[n].length;if(i!==0)return i;n++,r++}return t.parentScopes.length-e.parentScopes.length}match(t){if(t!==``){let e=t.indexOf(`.`),n,r;if(e===-1?(n=t,r=``):(n=t.substring(0,e),r=t.substring(e+1)),this._children.hasOwnProperty(n))return this._children[n].match(r)}let n=this._rulesWithParentScopes.concat(this._mainRule);return n.sort(e._cmpBySpecificity),n}insert(t,n,r,i,a,o){if(n===``){this._doInsertHere(t,r,i,a,o);return}let s=n.indexOf(`.`),c,l;s===-1?(c=n,l=``):(c=n.substring(0,s),l=n.substring(s+1));let u;this._children.hasOwnProperty(c)?u=this._children[c]:(u=new e(this._mainRule.clone(),zt.cloneArr(this._rulesWithParentScopes)),this._children[c]=u),u.insert(t+1,l,r,i,a,o)}_doInsertHere(e,t,n,r,i){if(t===null){this._mainRule.acceptOverwrite(e,n,r,i);return}for(let a=0,o=this._rulesWithParentScopes.length;a<o;a++){let o=this._rulesWithParentScopes[a];if(Tt(o.parentScopes,t)===0){o.acceptOverwrite(e,n,r,i);return}}n===-1&&(n=this._mainRule.fontStyle),r===0&&(r=this._mainRule.foreground),i===0&&(i=this._mainRule.background),this._rulesWithParentScopes.push(new zt(e,t,n,r,i))}},Vt=class e{static toBinaryStr(e){return e.toString(2).padStart(32,`0`)}static print(t){let n=e.getLanguageId(t),r=e.getTokenType(t),i=e.getFontStyle(t),a=e.getForeground(t),o=e.getBackground(t);console.log({languageId:n,tokenType:r,fontStyle:i,foreground:a,background:o})}static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!=0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static set(t,n,r,i,a,o,s){let c=e.getLanguageId(t),l=e.getTokenType(t),u=+!!e.containsBalancedBrackets(t),d=e.getFontStyle(t),f=e.getForeground(t),p=e.getBackground(t);return n!==0&&(c=n),r!==8&&(l=Ut(r)),i!==null&&(u=+!!i),a!==-1&&(d=a),o!==0&&(f=o),s!==0&&(p=s),(c<<0|l<<8|u<<10|d<<11|f<<15|p<<24)>>>0}};function Ht(e){return e}function Ut(e){return e}function Wt(e,t){let n=[],r=Kt(e),i=r.next();for(;i!==null;){let e=0;if(i.length===2&&i.charAt(1)===`:`){switch(i.charAt(0)){case`R`:e=1;break;case`L`:e=-1;break;default:console.log(`Unknown priority ${i} in scope selector`)}i=r.next()}let t=o();if(n.push({matcher:t,priority:e}),i!==`,`)break;i=r.next()}return n;function a(){if(i===`-`){i=r.next();let e=a();return t=>!!e&&!e(t)}if(i===`(`){i=r.next();let e=s();return i===`)`&&(i=r.next()),e}if(Gt(i)){let e=[];do e.push(i),i=r.next();while(Gt(i));return n=>t(e,n)}return null}function o(){let e=[],t=a();for(;t;)e.push(t),t=a();return t=>e.every(e=>e(t))}function s(){let e=[],t=o();for(;t&&(e.push(t),i===`|`||i===`,`);){do i=r.next();while(i===`|`||i===`,`);t=o()}return t=>e.some(e=>e(t))}}function Gt(e){return!!e&&!!e.match(/[\w\.:]+/)}function Kt(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=t.exec(e);return{next:()=>{if(!n)return null;let r=n[0];return n=t.exec(e),r}}}function qt(e){typeof e.dispose==`function`&&e.dispose()}var Jt=class{constructor(e){this.scopeName=e}toKey(){return this.scopeName}},Yt=class{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}},Xt=class{_references=[];_seenReferenceKeys=new Set;get references(){return this._references}visitedRule=new Set;add(e){let t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}},Zt=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new Jt(this.initialScopeName)]}seenFullScopeRequests=new Set;seenPartialScopeRequests=new Set;Q;processQueue(){let e=this.Q;this.Q=[];let t=new Xt;for(let n of e)Qt(n,this.initialScopeName,this.repo,t);for(let e of t.references)if(e instanceof Jt){if(this.seenFullScopeRequests.has(e.scopeName))continue;this.seenFullScopeRequests.add(e.scopeName),this.Q.push(e)}else{if(this.seenFullScopeRequests.has(e.scopeName)||this.seenPartialScopeRequests.has(e.toKey()))continue;this.seenPartialScopeRequests.add(e.toKey()),this.Q.push(e)}}};function Qt(e,t,n,r){let i=n.lookup(e.scopeName);if(!i){if(e.scopeName===t)throw Error(`No grammar provided for <${t}>`);return}let a=n.lookup(t);e instanceof Jt?en({baseGrammar:a,selfGrammar:i},r):$t(e.ruleName,{baseGrammar:a,selfGrammar:i,repository:i.repository},r);let o=n.injections(e.scopeName);if(o)for(let e of o)r.add(new Jt(e))}function $t(e,t,n){if(t.repository&&t.repository[e]){let r=t.repository[e];tn([r],t,n)}}function en(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&tn(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&tn(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function tn(e,t,n){for(let r of e){if(n.visitedRule.has(r))continue;n.visitedRule.add(r);let e=r.repository?bt({},t.repository,r.repository):t.repository;Array.isArray(r.patterns)&&tn(r.patterns,{...t,repository:e},n);let i=r.include;if(!i)continue;let a=cn(i);switch(a.kind){case 0:en({...t,selfGrammar:t.baseGrammar},n);break;case 1:en(t,n);break;case 2:$t(a.ruleName,{...t,repository:e},n);break;case 3:case 4:let r=a.scopeName===t.selfGrammar.scopeName?t.selfGrammar:a.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(r){let i={baseGrammar:t.baseGrammar,selfGrammar:r,repository:e};a.kind===4?$t(a.ruleName,i,n):en(i,n)}else a.kind===4?n.add(new Yt(a.scopeName,a.ruleName)):n.add(new Jt(a.scopeName));break}}}var nn=class{kind=0},rn=class{kind=1},an=class{constructor(e){this.ruleName=e}kind=2},on=class{constructor(e){this.scopeName=e}kind=3},sn=class{constructor(e,t){this.scopeName=e,this.ruleName=t}kind=4};function cn(e){if(e===`$base`)return new nn;if(e===`$self`)return new rn;let t=e.indexOf(`#`);return t===-1?new on(e):t===0?new an(e.substring(1)):new sn(e.substring(0,t),e.substring(t+1))}var ln=/\\(\d+)/,un=/\\(\d+)/g,dn=-1,fn=-2;function pn(e){return e}function mn(e){return e}var hn=class{$location;id;_nameIsCapturing;_name;_contentNameIsCapturing;_contentName;constructor(e,t,n,r){this.$location=e,this.id=t,this._name=n||null,this._nameIsCapturing=Ct.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=Ct.hasCaptures(this._contentName)}get debugName(){let e=this.$location?`${xt(this.$location.filename)}:${this.$location.line}`:`unknown`;return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||t===null?this._name:Ct.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:Ct.replaceCaptures(this._contentName,e,t)}},gn=class extends hn{retokenizeCapturedWithRuleId;constructor(e,t,n,r,i){super(e,t,n,r),this.retokenizeCapturedWithRuleId=i}dispose(){}collectPatterns(e,t){throw Error(`Not supported!`)}compile(e,t){throw Error(`Not supported!`)}compileAG(e,t,n,r){throw Error(`Not supported!`)}},_n=class extends hn{_match;captures;_cachedCompiledPatterns;constructor(e,t,n,r,i){super(e,t,n,null),this._match=new Sn(r,this.id),this.captures=i,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e).compileAG(e,n,r)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Cn,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},vn=class extends hn{hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,r,i){super(e,t,n,r),this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null)}collectPatterns(e,t){for(let n of this.patterns)e.getRule(n).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e).compileAG(e,n,r)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Cn,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},yn=class extends hn{_begin;beginCaptures;_end;endHasBackReferences;endCaptures;applyEndPatternLast;hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,r,i,a,o,s,c,l){super(e,t,n,r),this._begin=new Sn(i,this.id),this.beginCaptures=a,this._end=new Sn(o||``,-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=s,this.applyEndPatternLast=c||!1,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e,t).compileAG(e,n,r)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Cn;for(let t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}},bn=class extends hn{_begin;beginCaptures;whileCaptures;_while;whileHasBackReferences;hasMissingPatterns;patterns;_cachedCompiledPatterns;_cachedCompiledWhilePatterns;constructor(e,t,n,r,i,a,o,s,c){super(e,t,n,r),this._begin=new Sn(i,this.id),this.beginCaptures=a,this.whileCaptures=s,this._while=new Sn(o,fn),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=c.patterns,this.hasMissingPatterns=c.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null),this._cachedCompiledWhilePatterns&&=(this._cachedCompiledWhilePatterns.dispose(),null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e).compileAG(e,n,r)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Cn;for(let t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,n,r){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,n,r)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new Cn,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||``),this._cachedCompiledWhilePatterns}},xn=class e{static createCaptureRule(e,t,n,r,i){return e.registerRule(e=>new gn(t,e,n,r,i))}static getCompiledRuleId(t,n,r){return t.id||n.registerRule(i=>{if(t.id=i,t.match)return new _n(t.$vscodeTextmateLocation,t.id,t.name,t.match,e._compileCaptures(t.captures,n,r));if(t.begin===void 0){t.repository&&(r=bt({},r,t.repository));let i=t.patterns;return i===void 0&&t.include&&(i=[{include:t.include}]),new vn(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,e._compilePatterns(i,n,r))}return t.while?new bn(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,e._compileCaptures(t.beginCaptures||t.captures,n,r),t.while,e._compileCaptures(t.whileCaptures||t.captures,n,r),e._compilePatterns(t.patterns,n,r)):new yn(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,e._compileCaptures(t.beginCaptures||t.captures,n,r),t.end,e._compileCaptures(t.endCaptures||t.captures,n,r),t.applyEndPatternLast,e._compilePatterns(t.patterns,n,r))}),t.id}static _compileCaptures(t,n,r){let i=[];if(t){let a=0;for(let e in t){if(e===`$vscodeTextmateLocation`)continue;let t=parseInt(e,10);t>a&&(a=t)}for(let e=0;e<=a;e++)i[e]=null;for(let a in t){if(a===`$vscodeTextmateLocation`)continue;let o=parseInt(a,10),s=0;t[a].patterns&&(s=e.getCompiledRuleId(t[a],n,r)),i[o]=e.createCaptureRule(n,t[a].$vscodeTextmateLocation,t[a].name,t[a].contentName,s)}}return i}static _compilePatterns(t,n,r){let i=[];if(t)for(let a=0,o=t.length;a<o;a++){let o=t[a],s=-1;if(o.include){let t=cn(o.include);switch(t.kind){case 0:case 1:s=e.getCompiledRuleId(r[o.include],n,r);break;case 2:let i=r[t.ruleName];i&&(s=e.getCompiledRuleId(i,n,r));break;case 3:case 4:let a=t.scopeName,c=t.kind===4?t.ruleName:null,l=n.getExternalGrammar(a,r);if(l)if(c){let t=l.repository[c];t&&(s=e.getCompiledRuleId(t,n,l.repository))}else s=e.getCompiledRuleId(l.repository.$self,n,l.repository);break}}else s=e.getCompiledRuleId(o,n,r);if(s!==-1){let e=n.getRule(s),t=!1;if((e instanceof vn||e instanceof yn||e instanceof bn)&&e.hasMissingPatterns&&e.patterns.length===0&&(t=!0),t)continue;i.push(s)}}return{patterns:i,hasMissingPatterns:(t?t.length:0)!==i.length}}},Sn=class e{source;ruleId;hasAnchor;hasBackReferences;_anchorCache;constructor(e,t){if(e&&typeof e==`string`){let t=e.length,n=0,r=[],i=!1;for(let a=0;a<t;a++)if(e.charAt(a)===`\\`&&a+1<t){let t=e.charAt(a+1);t===`z`?(r.push(e.substring(n,a)),r.push(`$(?!\\n)(?<!\\n)`),n=a+2):(t===`A`||t===`G`)&&(i=!0),a++}this.hasAnchor=i,n===0?this.source=e:(r.push(e.substring(n,t)),this.source=r.join(``))}else this.hasAnchor=!1,this.source=e;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=t,typeof this.source==`string`?this.hasBackReferences=ln.test(this.source):this.hasBackReferences=!1}clone(){return new e(this.source,this.ruleId)}setSource(e){this.source!==e&&(this.source=e,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(e,t){if(typeof this.source!=`string`)throw Error(`This method should only be called if the source is a string`);let n=t.map(t=>e.substring(t.start,t.end));return un.lastIndex=0,this.source.replace(un,(e,t)=>Dt(n[parseInt(t,10)]||``))}_buildAnchorCache(){if(typeof this.source!=`string`)throw Error(`This method should only be called if the source is a string`);let e=[],t=[],n=[],r=[],i,a,o,s;for(i=0,a=this.source.length;i<a;i++)o=this.source.charAt(i),e[i]=o,t[i]=o,n[i]=o,r[i]=o,o===`\\`&&i+1<a&&(s=this.source.charAt(i+1),s===`A`?(e[i+1]=``,t[i+1]=``,n[i+1]=`A`,r[i+1]=`A`):s===`G`?(e[i+1]=``,t[i+1]=`G`,n[i+1]=``,r[i+1]=`G`):(e[i+1]=s,t[i+1]=s,n[i+1]=s,r[i+1]=s),i++);return{A0_G0:e.join(``),A0_G1:t.join(``),A1_G0:n.join(``),A1_G1:r.join(``)}}resolveAnchors(e,t){return!this.hasAnchor||!this._anchorCache||typeof this.source!=`string`?this.source:e?t?this._anchorCache.A1_G1:this._anchorCache.A1_G0:t?this._anchorCache.A0_G1:this._anchorCache.A0_G0}},Cn=class{_items;_hasAnchors;_cached;_anchorCache;constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&=(this._cached.dispose(),null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(e){this._items.push(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}unshift(e){this._items.unshift(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}length(){return this._items.length}setSource(e,t){this._items[e].source!==t&&(this._disposeCaches(),this._items[e].setSource(t))}compile(e){if(!this._cached){let t=this._items.map(e=>e.source);this._cached=new wn(e,t,this._items.map(e=>e.ruleId))}return this._cached}compileAG(e,t,n){return this._hasAnchors?t?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,n){return new wn(e,this._items.map(e=>e.resolveAnchors(t,n)),this._items.map(e=>e.ruleId))}},wn=class{constructor(e,t,n){this.regExps=t,this.rules=n,this.scanner=e.createOnigScanner(t)}scanner;dispose(){typeof this.scanner.dispose==`function`&&this.scanner.dispose()}toString(){let e=[];for(let t=0,n=this.rules.length;t<n;t++)e.push(` - `+this.rules[t]+`: `+this.regExps[t]);return e.join(`
|
|
2
|
+
`)}findNextMatchSync(e,t,n){let r=this.scanner.findNextMatchSync(e,t,n);return r?{ruleId:this.rules[r.index],captureIndices:r.captureIndices}:null}},Tn=class{constructor(e,t){this.languageId=e,this.tokenType=t}},En=class e{_defaultAttributes;_embeddedLanguagesMatcher;constructor(e,t){this._defaultAttributes=new Tn(e,8),this._embeddedLanguagesMatcher=new Dn(Object.entries(t||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(t){return t===null?e._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(t)}static _NULL_SCOPE_METADATA=new Tn(0,0);_getBasicScopeAttributes=new Ot(e=>new Tn(this._scopeToLanguage(e),this._toStandardTokenType(e)));_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(t){let n=t.match(e.STANDARD_TOKEN_TYPE_REGEXP);if(!n)return 8;switch(n[1]){case`comment`:return 1;case`string`:return 2;case`regex`:return 3;case`meta.embedded`:return 0}throw Error(`Unexpected match for standard token type!`)}static STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/},Dn=class{values;scopesRegExp;constructor(e){if(e.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);let t=e.map(([e,t])=>Dt(e));t.sort(),t.reverse(),this.scopesRegExp=RegExp(`^((${t.join(`)|(`)}))($|\\.)`,``)}}match(e){if(!this.scopesRegExp)return;let t=e.match(this.scopesRegExp);if(t)return this.values.get(t[1])}};typeof process<`u`&&{}.VSCODE_TEXTMATE_DEBUG;var On=class{constructor(e,t){this.stack=e,this.stoppedEarly=t}};function kn(e,t,n,r,i,a,o,s){let c=t.content.length,l=!1,u=-1;if(o){let o=An(e,t,n,r,i,a);i=o.stack,r=o.linePos,n=o.isFirstLine,u=o.anchorPosition}let d=Date.now();for(;!l;){if(s!==0&&Date.now()-d>s)return new On(i,!0);f()}return new On(i,!1);function f(){let o=jn(e,t,n,r,i,u);if(!o){a.produce(i,c),l=!0;return}let s=o.captureIndices,d=o.matchedRuleId,f=s&&s.length>0?s[0].end>r:!1;if(d===dn){let o=i.getRule(e);a.produce(i,s[0].start),i=i.withContentNameScopesList(i.nameScopesList),In(e,t,n,i,a,o.endCaptures,s),a.produce(i,s[0].end);let d=i;if(i=i.parent,u=d.getAnchorPos(),!f&&d.getEnterPos()===r){i=d,a.produce(i,c),l=!0;return}}else{let o=e.getRule(d);a.produce(i,s[0].start);let p=i,m=o.getName(t.content,s),h=i.contentNameScopesList.pushAttributed(m,e);if(i=i.push(d,r,u,s[0].end===c,null,h,h),o instanceof yn){let r=o;In(e,t,n,i,a,r.beginCaptures,s),a.produce(i,s[0].end),u=s[0].end;let d=r.getContentName(t.content,s),m=h.pushAttributed(d,e);if(i=i.withContentNameScopesList(m),r.endHasBackReferences&&(i=i.withEndRule(r.getEndWithResolvedBackReferences(t.content,s))),!f&&p.hasSameRuleAs(i)){i=i.pop(),a.produce(i,c),l=!0;return}}else if(o instanceof bn){let r=o;In(e,t,n,i,a,r.beginCaptures,s),a.produce(i,s[0].end),u=s[0].end;let d=r.getContentName(t.content,s),m=h.pushAttributed(d,e);if(i=i.withContentNameScopesList(m),r.whileHasBackReferences&&(i=i.withEndRule(r.getWhileWithResolvedBackReferences(t.content,s))),!f&&p.hasSameRuleAs(i)){i=i.pop(),a.produce(i,c),l=!0;return}}else if(In(e,t,n,i,a,o.captures,s),a.produce(i,s[0].end),i=i.pop(),!f){i=i.safePop(),a.produce(i,c),l=!0;return}}s[0].end>r&&(r=s[0].end,n=!1)}}function An(e,t,n,r,i,a){let o=i.beginRuleCapturedEOL?0:-1,s=[];for(let t=i;t;t=t.pop()){let n=t.getRule(e);n instanceof bn&&s.push({rule:n,stack:t})}for(let c=s.pop();c;c=s.pop()){let{ruleScanner:s,findOptions:l}=Fn(c.rule,e,c.stack.endRule,n,r===o),u=s.findNextMatchSync(t,r,l);if(u){if(u.ruleId!==fn){i=c.stack.pop();break}u.captureIndices&&u.captureIndices.length&&(a.produce(c.stack,u.captureIndices[0].start),In(e,t,n,c.stack,a,c.rule.whileCaptures,u.captureIndices),a.produce(c.stack,u.captureIndices[0].end),o=u.captureIndices[0].end,u.captureIndices[0].end>r&&(r=u.captureIndices[0].end,n=!1))}else{i=c.stack.pop();break}}return{stack:i,linePos:r,anchorPosition:o,isFirstLine:n}}function jn(e,t,n,r,i,a){let o=Mn(e,t,n,r,i,a),s=e.getInjections();if(s.length===0)return o;let c=Nn(s,e,t,n,r,i,a);if(!c)return o;if(!o)return c;let l=o.captureIndices[0].start,u=c.captureIndices[0].start;return u<l||c.priorityMatch&&u===l?c:o}function Mn(e,t,n,r,i,a){let{ruleScanner:o,findOptions:s}=Pn(i.getRule(e),e,i.endRule,n,r===a),c=o.findNextMatchSync(t,r,s);return c?{captureIndices:c.captureIndices,matchedRuleId:c.ruleId}:null}function Nn(e,t,n,r,i,a,o){let s=Number.MAX_VALUE,c=null,l,u=0,d=a.contentNameScopesList.getScopeNames();for(let a=0,f=e.length;a<f;a++){let f=e[a];if(!f.matcher(d))continue;let{ruleScanner:p,findOptions:m}=Pn(t.getRule(f.ruleId),t,null,r,i===o),h=p.findNextMatchSync(n,i,m);if(!h)continue;let g=h.captureIndices[0].start;if(!(g>=s)&&(s=g,c=h.captureIndices,l=h.ruleId,u=f.priority,s===i))break}return c?{priorityMatch:u===-1,captureIndices:c,matchedRuleId:l}:null}function Pn(e,t,n,r,i){return{ruleScanner:e.compileAG(t,n,r,i),findOptions:0}}function Fn(e,t,n,r,i){return{ruleScanner:e.compileWhileAG(t,n,r,i),findOptions:0}}function In(e,t,n,r,i,a,o){if(a.length===0)return;let s=t.content,c=Math.min(a.length,o.length),l=[],u=o[0].end;for(let t=0;t<c;t++){let c=a[t];if(c===null)continue;let d=o[t];if(d.length===0)continue;if(d.start>u)break;for(;l.length>0&&l[l.length-1].endPos<=d.start;)i.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop();if(l.length>0?i.produceFromScopes(l[l.length-1].scopes,d.start):i.produce(r,d.start),c.retokenizeCapturedWithRuleId){let t=c.getName(s,o),a=r.contentNameScopesList.pushAttributed(t,e),l=c.getContentName(s,o),u=a.pushAttributed(l,e),f=r.push(c.retokenizeCapturedWithRuleId,d.start,-1,!1,null,a,u),p=e.createOnigString(s.substring(0,d.end));kn(e,p,n&&d.start===0,d.start,f,i,!1,0),qt(p);continue}let f=c.getName(s,o);if(f!==null){let t=(l.length>0?l[l.length-1].scopes:r.contentNameScopesList).pushAttributed(f,e);l.push(new Ln(t,d.end))}}for(;l.length>0;)i.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop()}var Ln=class{scopes;endPos;constructor(e,t){this.scopes=e,this.endPos=t}};function Rn(e,t,n,r,i,a,o,s){return new Hn(e,t,n,r,i,a,o,s)}function zn(e,t,n,r,i){let a=Wt(t,Bn),o=xn.getCompiledRuleId(n,r,i.repository);for(let n of a)e.push({debugSelector:t,matcher:n.matcher,ruleId:o,grammar:i,priority:n.priority})}function Bn(e,t){if(t.length<e.length)return!1;let n=0;return e.every(e=>{for(let r=n;r<t.length;r++)if(Vn(t[r],e))return n=r+1,!0;return!1})}function Vn(e,t){if(!e)return!1;if(e===t)return!0;let n=t.length;return e.length>n&&e.substr(0,n)===t&&e[n]===`.`}var Hn=class{constructor(e,t,n,r,i,a,o,s){if(this._rootScopeName=e,this.balancedBracketSelectors=a,this._onigLib=s,this._basicScopeAttributesProvider=new En(n,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=o,this._grammar=Un(t,null),this._injections=null,this._tokenTypeMatchers=[],i)for(let e of Object.keys(i)){let t=Wt(e,Bn);for(let n of t)this._tokenTypeMatchers.push({matcher:n.matcher,type:i[e]})}}_rootId;_lastRuleId;_ruleId2desc;_includedGrammars;_grammarRepository;_grammar;_injections;_basicScopeAttributesProvider;_tokenTypeMatchers;get themeProvider(){return this._grammarRepository}dispose(){for(let e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){let e={lookup:e=>e===this._rootScopeName?this._grammar:this.getExternalGrammar(e),injections:e=>this._grammarRepository.injections(e)},t=[],n=this._rootScopeName,r=e.lookup(n);if(r){let e=r.injections;if(e)for(let n in e)zn(t,n,e[n],this,r);let i=this._grammarRepository.injections(n);i&&i.forEach(e=>{let n=this.getExternalGrammar(e);if(n){let e=n.injectionSelector;e&&zn(t,e,n,this,n)}})}return t.sort((e,t)=>e.priority-t.priority),t}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(e){let t=++this._lastRuleId,n=e(pn(t));return this._ruleId2desc[t]=n,n}getRule(e){return this._ruleId2desc[mn(e)]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){let n=this._grammarRepository.lookup(e);if(n)return this._includedGrammars[e]=Un(n,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,n=0){let r=this._tokenize(e,t,!1,n);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(e,t,n=0){let r=this._tokenize(e,t,!0,n);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(e,t,n,r){this._rootId===-1&&(this._rootId=xn.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let i;if(!t||t===Gn.NULL){i=!0;let e=this._basicScopeAttributesProvider.getDefaultAttributes(),n=this.themeProvider.getDefaults(),r=Vt.set(0,e.languageId,e.tokenType,null,n.fontStyle,n.foregroundId,n.backgroundId),a=this.getRule(this._rootId).getName(null,null),o;o=a?Wn.createRootAndLookUpScopeName(a,r,this):Wn.createRoot(`unknown`,r),t=new Gn(null,this._rootId,-1,-1,!1,null,o,o)}else i=!1,t.reset();e+=`
|
|
3
|
+
`;let a=this.createOnigString(e),o=a.content.length,s=new qn(n,e,this._tokenTypeMatchers,this.balancedBracketSelectors),c=kn(this,a,i,0,t,s,!0,r);return qt(a),{lineLength:o,lineTokens:s,ruleStack:c.stack,stoppedEarly:c.stoppedEarly}}};function Un(e,t){return e=gt(e),e.repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}var Wn=class e{constructor(e,t,n){this.parent=e,this.scopePath=t,this.tokenAttributes=n}static fromExtension(t,n){let r=t,i=t?.scopePath??null;for(let t of n)i=At.push(i,t.scopeNames),r=new e(r,i,t.encodedTokenAttributes);return r}static createRoot(t,n){return new e(null,new At(null,t),n)}static createRootAndLookUpScopeName(t,n,r){let i=r.getMetadataForScope(t),a=new At(null,t),o=r.themeProvider.themeMatch(a),s=e.mergeAttributes(n,i,o);return new e(null,a,s)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(` `)}equals(t){return e.equals(this,t)}static equals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return!1;e=e.parent,t=t.parent}while(!0)}static mergeAttributes(e,t,n){let r=-1,i=0,a=0;return n!==null&&(r=n.fontStyle,i=n.foregroundId,a=n.backgroundId),Vt.set(e,t.languageId,t.tokenType,null,r,i,a)}pushAttributed(t,n){if(t===null)return this;if(t.indexOf(` `)===-1)return e._pushAttributed(this,t,n);let r=t.split(/ /g),i=this;for(let t of r)i=e._pushAttributed(i,t,n);return i}static _pushAttributed(t,n,r){let i=r.getMetadataForScope(n),a=t.scopePath.push(n),o=r.themeProvider.themeMatch(a),s=e.mergeAttributes(t.tokenAttributes,i,o);return new e(t,a,s)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(e){let t=[],n=this;for(;n&&n!==e;)t.push({encodedTokenAttributes:n.tokenAttributes,scopeNames:n.scopePath.getExtensionIfDefined(n.parent?.scopePath??null)}),n=n.parent;return n===e?t.reverse():void 0}},Gn=class e{constructor(e,t,n,r,i,a,o,s){this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=i,this.endRule=a,this.nameScopesList=o,this.contentNameScopesList=s,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=n,this._anchorPos=r}_stackElementBrand=void 0;static NULL=new e(null,0,0,0,!1,null,null,null);_enterPos;_anchorPos;depth;equals(t){return t!==null&&e._equals(this,t)}static _equals(e,t){return e===t?!0:this._structuralEquals(e,t)?Wn.equals(e.contentNameScopesList,t.contentNameScopesList):!1}static _structuralEquals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}while(!0)}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){e._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(t,n,r,i,a,o,s){return new e(this,t,n,r,i,a,o,s)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){let e=[];return this._writeString(e,0),`[`+e.join(`,`)+`]`}_writeString(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(t){return this.endRule===t?this:new e(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1}toStateStackFrame(){return{ruleId:mn(this.ruleId),beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(t,n){let r=Wn.fromExtension(t?.nameScopesList??null,n.nameScopesList);return new e(t,pn(n.ruleId),n.enterPos??-1,n.anchorPos??-1,n.beginRuleCapturedEOL,n.endRule,r,Wn.fromExtension(r,n.contentNameScopesList))}},Kn=class{balancedBracketScopes;unbalancedBracketScopes;allowAny=!1;constructor(e,t){this.balancedBracketScopes=e.flatMap(e=>e===`*`?(this.allowAny=!0,[]):Wt(e,Bn).map(e=>e.matcher)),this.unbalancedBracketScopes=t.flatMap(e=>Wt(e,Bn).map(e=>e.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(e){for(let t of this.unbalancedBracketScopes)if(t(e))return!1;for(let t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}},qn=class{constructor(e,t,n,r){this.balancedBracketSelectors=r,this._emitBinaryTokens=e,this._tokenTypeOverrides=n,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}_emitBinaryTokens;_lineText;_tokens;_binaryTokens;_lastTokenEndIndex;_tokenTypeOverrides;produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let n=e?.tokenAttributes??0,r=!1;if(this.balancedBracketSelectors?.matchesAlways&&(r=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){let t=e?.getScopeNames()??[];for(let e of this._tokenTypeOverrides)e.matcher(t)&&(n=Vt.set(n,0,Ht(e.type),null,-1,0,0));this.balancedBracketSelectors&&(r=this.balancedBracketSelectors.match(t))}if(r&&(n=Vt.set(n,0,8,r,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===n){this._lastTokenEndIndex=t;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(n),this._lastTokenEndIndex=t;return}let n=e?.getScopeNames()??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:n}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);let n=new Uint32Array(this._binaryTokens.length);for(let e=0,t=this._binaryTokens.length;e<t;e++)n[e]=this._binaryTokens[e];return n}},Jn=class{constructor(e,t){this._onigLib=t,this._theme=e}_grammars=new Map;_rawGrammars=new Map;_injectionGrammars=new Map;_theme;dispose(){for(let e of this._grammars.values())e.dispose()}setTheme(e){this._theme=e}getColorMap(){return this._theme.getColorMap()}addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionGrammars.set(e.scopeName,t)}lookup(e){return this._rawGrammars.get(e)}injections(e){return this._injectionGrammars.get(e)}getDefaults(){return this._theme.getDefaults()}themeMatch(e){return this._theme.match(e)}grammarForScopeName(e,t,n,r,i){if(!this._grammars.has(e)){let a=this._rawGrammars.get(e);if(!a)return null;this._grammars.set(e,Rn(e,a,t,n,r,i,this,this._onigLib))}return this._grammars.get(e)}},Yn=class{_options;_syncRegistry;_ensureGrammarCache;constructor(e){this._options=e,this._syncRegistry=new Jn(kt.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(e,t){this._syncRegistry.setTheme(kt.createFromRawTheme(e,t))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(e,t,n){return this.loadGrammarWithConfiguration(e,t,{embeddedLanguages:n})}loadGrammarWithConfiguration(e,t,n){return this._loadGrammar(e,t,n.embeddedLanguages,n.tokenTypes,new Kn(n.balancedBracketSelectors||[],n.unbalancedBracketSelectors||[]))}loadGrammar(e){return this._loadGrammar(e,0,null,null,null)}_loadGrammar(e,t,n,r,i){let a=new Zt(this._syncRegistry,e);for(;a.Q.length>0;)a.Q.map(e=>this._loadSingleGrammar(e.scopeName)),a.processQueue();return this._grammarForScopeName(e,t,n,r,i)}_loadSingleGrammar(e){this._ensureGrammarCache.has(e)||(this._doLoadSingleGrammar(e),this._ensureGrammarCache.set(e,!0))}_doLoadSingleGrammar(e){let t=this._options.loadGrammar(e);if(t){let n=typeof this._options.getInjections==`function`?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,n)}}addGrammar(e,t=[],n=0,r=null){return this._syncRegistry.addGrammar(e,t),this._grammarForScopeName(e.scopeName,n,r)}_grammarForScopeName(e,t=0,n=null,r=null,i=null){return this._syncRegistry.grammarForScopeName(e,t,n,r,i)}},Xn=Gn.NULL;function Zn(e,t){let n=typeof e==`string`?{}:{...e.colorReplacements},r=typeof e==`string`?e:e.name;for(let[e,i]of Object.entries(t?.colorReplacements||{}))typeof i==`string`?n[e]=i:e===r&&Object.assign(n,i);return n}function Qn(e,t){return e&&(t?.[e?.toLowerCase()]||e)}function $n(e){return Array.isArray(e)?e:[e]}async function er(e){return Promise.resolve(typeof e==`function`?e():e).then(e=>e.default||e)}function tr(e){return!e||[`plaintext`,`txt`,`text`,`plain`].includes(e)}function nr(e){return e===`ansi`||tr(e)}function rr(e){return e===`none`}function ir(e){return rr(e)}var ar=/(\r?\n)/g;function or(e,t=!1){if(e.length===0)return[[``,0]];let n=e.split(ar),r=0,i=[];for(let e=0;e<n.length;e+=2){let a=t?n[e]+(n[e+1]||``):n[e];i.push([a,r]),r+=n[e].length,r+=n[e+1]?.length||0}return i}var sr={light:`#333333`,dark:`#bbbbbb`},cr={light:`#fffffe`,dark:`#1e1e1e`},lr=`__shiki_resolved`;function ur(e){if(e?.[lr])return e;let t={...e};t.tokenColors&&!t.settings&&(t.settings=t.tokenColors,delete t.tokenColors),t.type||=`dark`,t.colorReplacements={...t.colorReplacements},t.settings||=[];let{bg:n,fg:r}=t;if(!n||!r){let e=t.settings?t.settings.find(e=>!e.name&&!e.scope):void 0;e?.settings?.foreground&&(r=e.settings.foreground),e?.settings?.background&&(n=e.settings.background),!r&&t?.colors?.[`editor.foreground`]&&(r=t.colors[`editor.foreground`]),!n&&t?.colors?.[`editor.background`]&&(n=t.colors[`editor.background`]),r||=t.type===`light`?sr.light:sr.dark,n||=t.type===`light`?cr.light:cr.dark,t.fg=r,t.bg=n}t.settings[0]&&t.settings[0].settings&&!t.settings[0].scope||t.settings.unshift({settings:{foreground:t.fg,background:t.bg}});let i=0,a=new Map;function o(e){if(a.has(e))return a.get(e);i+=1;let n=`#${i.toString(16).padStart(8,`0`).toLowerCase()}`;return t.colorReplacements?.[`#${n}`]?o(e):(a.set(e,n),n)}t.settings=t.settings.map(e=>{let n=e.settings?.foreground&&!e.settings.foreground.startsWith(`#`),r=e.settings?.background&&!e.settings.background.startsWith(`#`);if(!n&&!r)return e;let i={...e,settings:{...e.settings}};if(n){let n=o(e.settings.foreground);t.colorReplacements[n]=e.settings.foreground,i.settings.foreground=n}if(r){let n=o(e.settings.background);t.colorReplacements[n]=e.settings.background,i.settings.background=n}return i});for(let e of Object.keys(t.colors||{}))if((e===`editor.foreground`||e===`editor.background`||e.startsWith(`terminal.ansi`))&&!t.colors[e]?.startsWith(`#`)){let n=o(t.colors[e]);t.colorReplacements[n]=t.colors[e],t.colors[e]=n}return Object.defineProperty(t,lr,{enumerable:!1,writable:!1,value:!0}),t}async function dr(e){return[...new Set((await Promise.all(e.filter(e=>!nr(e)).map(async e=>await er(e).then(e=>Array.isArray(e)?e:[e])))).flat())]}async function fr(e){return(await Promise.all(e.map(async e=>ir(e)?null:ur(await er(e))))).filter(e=>!!e)}function pr(e,t){if(!t)return e;if(t[e]){let n=new Set([e]);for(;t[e];){if(e=t[e],n.has(e))throw new z(`Circular alias \`${[...n].join(` -> `)} -> ${e}\``);n.add(e)}}return e}var mr=class extends Yn{_resolver;_themes;_langs;_alias;_resolvedThemes=new Map;_resolvedGrammars=new Map;_langMap=new Map;_langGraph=new Map;_textmateThemeCache=new WeakMap;_loadedThemesCache=null;_loadedLanguagesCache=null;constructor(e,t,n,r={}){super(e),this._resolver=e,this._themes=t,this._langs=n,this._alias=r,this._themes.map(e=>this.loadTheme(e)),this.loadLanguages(this._langs)}getTheme(e){return typeof e==`string`?this._resolvedThemes.get(e):this.loadTheme(e)}loadTheme(e){let t=ur(e);return t.name&&(this._resolvedThemes.set(t.name,t),this._loadedThemesCache=null),t}getLoadedThemes(){return this._loadedThemesCache||=[...this._resolvedThemes.keys()],this._loadedThemesCache}setTheme(e){let t=this._textmateThemeCache.get(e);t||(t=kt.createFromRawTheme(e),this._textmateThemeCache.set(e,t)),this._syncRegistry.setTheme(t)}getGrammar(e){return e=pr(e,this._alias),this._resolvedGrammars.get(e)}loadLanguage(e){if(this.getGrammar(e.name))return;let t=new Set([...this._langMap.values()].filter(t=>t.embeddedLangsLazy?.includes(e.name)));this._resolver.addLanguage(e);let n={balancedBracketSelectors:e.balancedBracketSelectors||[`*`],unbalancedBracketSelectors:e.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(e.scopeName,e);let r=this.loadGrammarWithConfiguration(e.scopeName,1,n);if(r.name=e.name,this._resolvedGrammars.set(e.name,r),e.aliases&&e.aliases.forEach(t=>{this._alias[t]=e.name}),this._loadedLanguagesCache=null,t.size)for(let e of t)this._resolvedGrammars.delete(e.name),this._loadedLanguagesCache=null,this._syncRegistry?._injectionGrammars?.delete(e.scopeName),this._syncRegistry?._grammars?.delete(e.scopeName),this.loadLanguage(this._langMap.get(e.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(e){for(let t of e)this.resolveEmbeddedLanguages(t);let t=[...this._langGraph.entries()],n=t.filter(([e,t])=>!t);if(n.length){let e=t.filter(([e,t])=>t?(t.embeddedLanguages||t.embeddedLangs)?.some(e=>n.map(([e])=>e).includes(e)):!1).filter(e=>!n.includes(e));throw new z(`Missing languages ${n.map(([e])=>`\`${e}\``).join(`, `)}, required by ${e.map(([e])=>`\`${e}\``).join(`, `)}`)}for(let[e,n]of t)this._resolver.addLanguage(n);for(let[e,n]of t)this.loadLanguage(n)}getLoadedLanguages(){return this._loadedLanguagesCache||=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])],this._loadedLanguagesCache}resolveEmbeddedLanguages(e){this._langMap.set(e.name,e),this._langGraph.set(e.name,e);let t=e.embeddedLanguages??e.embeddedLangs;if(t)for(let e of t)this._langGraph.set(e,this._langMap.get(e))}},hr=class{_langs=new Map;_scopeToLang=new Map;_injections=new Map;_onigLib;constructor(e,t){this._onigLib={createOnigScanner:t=>e.createScanner(t),createOnigString:t=>e.createString(t)},t.forEach(e=>this.addLanguage(e))}get onigLib(){return this._onigLib}getLangRegistration(e){return this._langs.get(e)}loadGrammar(e){return this._scopeToLang.get(e)}addLanguage(e){this._langs.set(e.name,e),e.aliases&&e.aliases.forEach(t=>{this._langs.set(t,e)}),this._scopeToLang.set(e.scopeName,e),e.injectTo&&e.injectTo.forEach(t=>{this._injections.get(t)||this._injections.set(t,[]),this._injections.get(t).push(e.scopeName)})}getInjections(e){let t=e.split(`.`),n=[];for(let e=1;e<=t.length;e++){let r=t.slice(0,e).join(`.`);n=[...n,...this._injections.get(r)||[]]}return n}},gr=0;function _r(e){gr+=1,e.warnings!==!1&&gr>=10&&gr%10==0&&console.warn(`[Shiki] ${gr} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \`highlighter.dispose()\` to release unused instances.`);let t=!1;if(!e.engine)throw new z("`engine` option is required for synchronous mode");let n=(e.langs||[]).flat(1),r=(e.themes||[]).flat(1).map(ur),i=new mr(new hr(e.engine,n),r,n,e.langAlias),a;function o(t){return pr(t,e.langAlias)}function s(e){g();let t=i.getGrammar(typeof e==`string`?e:e.name);if(!t)throw new z(`Language \`${e}\` not found, you may need to load it first`);return t}function c(e){if(e===`none`)return{bg:``,fg:``,name:`none`,settings:[],type:`dark`};g();let t=i.getTheme(e);if(!t)throw new z(`Theme \`${e}\` not found, you may need to load it first`);return t}function l(e){g();let t=c(e);return a!==e&&(i.setTheme(t),a=e),{theme:t,colorMap:i.getColorMap()}}function u(){return g(),i.getLoadedThemes()}function d(){return g(),i.getLoadedLanguages()}function f(...e){g(),i.loadLanguages(e.flat(1))}async function p(...e){return f(await dr(e))}function m(...e){g();for(let t of e.flat(1))i.loadTheme(t)}async function h(...e){return g(),m(await fr(e))}function g(){if(t)throw new z(`Shiki instance has been disposed`)}function _(){t||(t=!0,i.dispose(),--gr)}return{setTheme:l,getTheme:c,getLanguage:s,getLoadedThemes:u,getLoadedLanguages:d,resolveLangAlias:o,loadLanguage:p,loadLanguageSync:f,loadTheme:h,loadThemeSync:m,dispose:_,[Symbol.dispose]:_}}async function vr(e){e.engine||console.warn("`engine` option is required. Use `createOnigurumaEngine` or `createJavaScriptRegexEngine` to create an engine.");let[t,n,r]=await Promise.all([fr(e.themes||[]),dr(e.langs||[]),e.engine]);return _r({...e,themes:t,langs:n,engine:r})}var yr=new WeakMap;function br(e,t){yr.set(e,t)}function xr(e){return yr.get(e)}var Sr=class e{_stacks={};lang;get themes(){return Object.keys(this._stacks)}get theme(){return this.themes[0]}get _stack(){return this._stacks[this.theme]}static initial(t,n){return new e(Object.fromEntries($n(n).map(e=>[e,Xn])),t)}constructor(...e){if(e.length===2){let[t,n]=e;this.lang=n,this._stacks=t}else{let[t,n,r]=e;this.lang=n,this._stacks={[r]:t}}}getInternalStack(e=this.theme){return this._stacks[e]}getScopes(e=this.theme){return Cr(this._stacks[e])}toJSON(){return{lang:this.lang,theme:this.theme,themes:this.themes,scopes:this.getScopes()}}};function Cr(e){let t=[],n=new Set;function r(e){if(n.has(e))return;n.add(e);let i=e?.nameScopesList?.scopeName;i&&t.push(i),e.parent&&r(e.parent)}return r(e),t}function wr(e,t){if(!(e instanceof Sr))throw new z(`Invalid grammar state`);return e.getInternalStack(t)}var Tr=/,/,Er=/ /;function Dr(e,t,n={}){let{theme:r=e.getLoadedThemes()[0]}=n;if(tr(e.resolveLangAlias(n.lang||`text`))||rr(r))return or(t).map(e=>[{content:e[0],offset:e[1]}]);let{theme:i,colorMap:a}=e.setTheme(r),o=e.getLanguage(n.lang||`text`);if(n.grammarState){if(n.grammarState.lang!==o.name)throw new z(`Grammar state language "${n.grammarState.lang}" does not match highlight language "${o.name}"`);if(!n.grammarState.themes.includes(i.name))throw new z(`Grammar state themes "${n.grammarState.themes}" do not contain highlight theme "${i.name}"`)}return kr(t,o,i,a,n)}function Or(...e){if(e.length===2)return xr(e[1]);let[t,n,r={}]=e,{lang:i=`text`,theme:a=t.getLoadedThemes()[0]}=r;if(tr(i)||rr(a))throw new z(`Plain language does not have grammar state`);if(i===`ansi`)throw new z(`ANSI language does not have grammar state`);let{theme:o,colorMap:s}=t.setTheme(a),c=t.getLanguage(i);return new Sr(Ar(n,c,o,s,r).stateStack,c.name,o.name)}function kr(e,t,n,r,i){let a=Ar(e,t,n,r,i),o=new Sr(a.stateStack,t.name,n.name);return br(a.tokens,o),a.tokens}function Ar(e,t,n,r,i){let a=Zn(n,i),{tokenizeMaxLineLength:o=0,tokenizeTimeLimit:s=500,includeExplanation:c=!1}=i,l=or(e),u=i.grammarState?wr(i.grammarState,n.name)??Xn:i.grammarContextCode==null?Xn:Ar(i.grammarContextCode,t,n,r,{...i,grammarState:void 0,grammarContextCode:void 0}).stateStack,d=[],f=[];for(let e=0,i=l.length;e<i;e++){let[i,p]=l[e];if(i===``){d=[],f.push([]);continue}if(o>0&&i.length>=o){d=[],f.push([{content:i,offset:p,color:``,fontStyle:0}]);continue}let m,h,g;c&&c!==`tokenType`&&(m=t.tokenizeLine(i,u,s),h=m.tokens,g=0);let _=t.tokenizeLine2(i,u,s),v=_.tokens.length/2;for(let e=0;e<v;e++){let t=_.tokens[2*e],o=e+1<v?_.tokens[2*e+2]:i.length;if(t===o)continue;let s=_.tokens[2*e+1],l=Qn(r[Vt.getForeground(s)],a),u=Vt.getFontStyle(s),f={content:i.substring(t,o),offset:p+t,color:l,fontStyle:u};if(c===`tokenType`)f.type=Vt.getTokenType(s);else if(c){let e=[];if(c!==`scopeName`)for(let t of n.settings){let n;switch(typeof t.scope){case`string`:n=t.scope.split(Tr).map(e=>e.trim());break;case`object`:n=t.scope;break;default:continue}e.push({settings:t,selectors:n.map(e=>e.split(Er))})}f.explanation=[];let r=0;for(;t+r<o;){let t=h[g],n=i.substring(t.startIndex,t.endIndex);r+=n.length,f.explanation.push({content:n,scopes:c===`scopeName`?jr(t.scopes):Mr(e,t.scopes)}),g+=1}}d.push(f)}f.push(d),d=[],u=_.ruleStack}return{tokens:f,stateStack:u}}function jr(e){return e.map(e=>({scopeName:e}))}function Mr(e,t){let n=[];for(let r=0,i=t.length;r<i;r++){let i=t[r];n[r]={scopeName:i,themeMatches:Fr(e,i,t.slice(0,r))}}return n}function Nr(e,t){return e===t||t.substring(0,e.length)===e&&t[e.length]===`.`}function Pr(e,t,n){if(!Nr(e.at(-1),t))return!1;let r=e.length-2,i=n.length-1;for(;r>=0&&i>=0;)Nr(e[r],n[i])&&--r,--i;return r===-1}function Fr(e,t,n){let r=[];for(let{selectors:i,settings:a}of e)for(let e of i)if(Pr(e,t,n)){r.push(a);break}return r}function Ir(e,t,n,r=Dr){let i=Object.entries(n.themes).filter(e=>e[1]).map(e=>({color:e[0],theme:e[1]})),a=i.map(i=>{let a=r(e,t,{...n,theme:i.theme});return{tokens:a,state:xr(a),theme:typeof i.theme==`string`?i.theme:i.theme.name}}),o=Lr(...a.map(e=>e.tokens)),s=o[0].map((e,t)=>e.map((e,r)=>{let a={content:e.content,variants:{},offset:e.offset};return`includeExplanation`in n&&n.includeExplanation&&(a.explanation=e.explanation),o.forEach((e,n)=>{let{content:o,explanation:s,offset:c,...l}=e[t][r];a.variants[i[n].color]=l}),a})),c=a[0].state?new Sr(Object.fromEntries(a.map(e=>[e.theme,e.state?.getInternalStack(e.theme)])),a[0].state.lang):void 0;return c&&br(s,c),s}function Lr(...e){let t=e.map(()=>[]),n=e.length;for(let r=0;r<e[0].length;r++){let i=e.map(e=>e[r]),a=t.map(()=>[]);t.forEach((e,t)=>e.push(a[t]));let o=i.map(()=>0),s=i.map(e=>e[0]);for(;s.every(e=>e);){let e=Math.min(...s.map(e=>e.content.length));for(let t=0;t<n;t++){let n=s[t];n.content.length===e?(a[t].push(n),o[t]+=1,s[t]=i[t][o[t]]):(a[t].push({...n,content:n.content.slice(0,e)}),s[t]={...n,content:n.content.slice(e),offset:n.offset+e})}}}return t}var Rr=[`area`,`base`,`basefont`,`bgsound`,`br`,`col`,`command`,`embed`,`frame`,`hr`,`image`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`],zr=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};zr.prototype.normal={},zr.prototype.property={},zr.prototype.space=void 0;function Br(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new zr(n,r,t)}function Vr(e){return e.toLowerCase()}var V=class{constructor(e,t){this.attribute=t,this.property=e}};V.prototype.attribute=``,V.prototype.booleanish=!1,V.prototype.boolean=!1,V.prototype.commaOrSpaceSeparated=!1,V.prototype.commaSeparated=!1,V.prototype.defined=!1,V.prototype.mustUseProperty=!1,V.prototype.number=!1,V.prototype.overloadedBoolean=!1,V.prototype.property=``,V.prototype.spaceSeparated=!1,V.prototype.space=void 0;var Hr=n({boolean:()=>H,booleanish:()=>U,commaOrSpaceSeparated:()=>K,commaSeparated:()=>Gr,number:()=>W,overloadedBoolean:()=>Wr,spaceSeparated:()=>G}),Ur=0,H=Kr(),U=Kr(),Wr=Kr(),W=Kr(),G=Kr(),Gr=Kr(),K=Kr();function Kr(){return 2**++Ur}var qr=Object.keys(Hr),Jr=class extends V{constructor(e,t,n,r){let i=-1;if(super(e,t),Yr(this,`space`,r),typeof n==`number`)for(;++i<qr.length;){let e=qr[i];Yr(this,qr[i],(n&Hr[e])===Hr[e])}}};Jr.prototype.defined=!0;function Yr(e,t,n){n&&(e[t]=n)}function Xr(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new Jr(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[Vr(r)]=r,n[Vr(a.attribute)]=r}return new zr(t,n,e.space)}var Zr=Xr({properties:{ariaActiveDescendant:null,ariaAtomic:U,ariaAutoComplete:null,ariaBusy:U,ariaChecked:U,ariaColCount:W,ariaColIndex:W,ariaColSpan:W,ariaControls:G,ariaCurrent:null,ariaDescribedBy:G,ariaDetails:null,ariaDisabled:U,ariaDropEffect:G,ariaErrorMessage:null,ariaExpanded:U,ariaFlowTo:G,ariaGrabbed:U,ariaHasPopup:null,ariaHidden:U,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:G,ariaLevel:W,ariaLive:null,ariaModal:U,ariaMultiLine:U,ariaMultiSelectable:U,ariaOrientation:null,ariaOwns:G,ariaPlaceholder:null,ariaPosInSet:W,ariaPressed:U,ariaReadOnly:U,ariaRelevant:null,ariaRequired:U,ariaRoleDescription:G,ariaRowCount:W,ariaRowIndex:W,ariaRowSpan:W,ariaSelected:U,ariaSetSize:W,ariaSort:null,ariaValueMax:W,ariaValueMin:W,ariaValueNow:W,ariaValueText:null,role:null},transform(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}});function Qr(e,t){return t in e?e[t]:t}function $r(e,t){return Qr(e,t.toLowerCase())}var ei=Xr({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:Gr,acceptCharset:G,accessKey:G,action:null,allow:null,allowFullScreen:H,allowPaymentRequest:H,allowUserMedia:H,alpha:H,alt:null,as:null,async:H,autoCapitalize:null,autoComplete:G,autoFocus:H,autoPlay:H,blocking:G,capture:null,charSet:null,checked:H,cite:null,className:G,closedBy:null,colorSpace:null,cols:W,colSpan:W,command:null,commandFor:null,content:null,contentEditable:U,controls:H,controlsList:G,coords:W|Gr,crossOrigin:null,data:null,dateTime:null,decoding:null,default:H,defer:H,dir:null,dirName:null,disabled:H,download:Wr,draggable:U,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:H,formTarget:null,headers:G,height:W,hidden:Wr,high:W,href:null,hrefLang:null,htmlFor:G,httpEquiv:G,id:null,imageSizes:null,imageSrcSet:null,inert:H,inputMode:null,integrity:null,is:null,isMap:H,itemId:null,itemProp:G,itemRef:G,itemScope:H,itemType:G,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:H,low:W,manifest:null,max:null,maxLength:W,media:null,method:null,min:null,minLength:W,multiple:H,muted:H,name:null,nonce:null,noModule:H,noValidate:H,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:H,optimum:W,pattern:null,ping:G,placeholder:null,playsInline:H,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:H,referrerPolicy:null,rel:G,required:H,reversed:H,rows:W,rowSpan:W,sandbox:G,scope:null,scoped:H,seamless:H,selected:H,shadowRootClonable:H,shadowRootCustomElementRegistry:H,shadowRootDelegatesFocus:H,shadowRootMode:null,shadowRootSerializable:H,shape:null,size:W,sizes:null,slot:null,span:W,spellCheck:U,src:null,srcDoc:null,srcLang:null,srcSet:null,start:W,step:null,style:null,tabIndex:W,target:null,title:null,translate:null,type:null,typeMustMatch:H,useMap:null,value:U,width:W,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:G,axis:null,background:null,bgColor:null,border:W,borderColor:null,bottomMargin:W,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:H,declare:H,event:null,face:null,frame:null,frameBorder:null,hSpace:W,leftMargin:W,link:null,longDesc:null,lowSrc:null,marginHeight:W,marginWidth:W,noResize:H,noHref:H,noShade:H,noWrap:H,object:null,profile:null,prompt:null,rev:null,rightMargin:W,rules:null,scheme:null,scrolling:U,standby:null,summary:null,text:null,topMargin:W,valueType:null,version:null,vAlign:null,vLink:null,vSpace:W,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:H,disablePictureInPicture:H,disableRemotePlayback:H,exportParts:Gr,part:G,prefix:null,property:null,results:W,security:null,unselectable:null},space:`html`,transform:$r}),ti=Xr({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,dominantBaseline:`dominant-baseline`,enableBackground:`enable-background`,fillOpacity:`fill-opacity`,fillRule:`fill-rule`,floodColor:`flood-color`,floodOpacity:`flood-opacity`,fontFamily:`font-family`,fontSize:`font-size`,fontSizeAdjust:`font-size-adjust`,fontStretch:`font-stretch`,fontStyle:`font-style`,fontVariant:`font-variant`,fontWeight:`font-weight`,glyphName:`glyph-name`,glyphOrientationHorizontal:`glyph-orientation-horizontal`,glyphOrientationVertical:`glyph-orientation-vertical`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,maskType:`mask-type`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,renderingIntent:`rendering-intent`,shapeRendering:`shape-rendering`,stopColor:`stop-color`,stopOpacity:`stop-opacity`,strikethroughPosition:`strikethrough-position`,strikethroughThickness:`strikethrough-thickness`,strokeDashArray:`stroke-dasharray`,strokeDashOffset:`stroke-dashoffset`,strokeLineCap:`stroke-linecap`,strokeLineJoin:`stroke-linejoin`,strokeMiterLimit:`stroke-miterlimit`,strokeOpacity:`stroke-opacity`,strokeWidth:`stroke-width`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,underlinePosition:`underline-position`,underlineThickness:`underline-thickness`,unicodeBidi:`unicode-bidi`,unicodeRange:`unicode-range`,unitsPerEm:`units-per-em`,vAlphabetic:`v-alphabetic`,vHanging:`v-hanging`,vIdeographic:`v-ideographic`,vMathematical:`v-mathematical`,vectorEffect:`vector-effect`,vertAdvY:`vert-adv-y`,vertOriginX:`vert-origin-x`,vertOriginY:`vert-origin-y`,wordSpacing:`word-spacing`,writingMode:`writing-mode`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:K,accentHeight:W,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:W,amplitude:W,arabicForm:null,ascent:W,attributeName:null,attributeType:null,azimuth:W,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:W,by:null,calcMode:null,capHeight:W,className:G,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:W,diffuseConstant:W,direction:null,display:null,dur:null,divisor:W,dominantBaseline:null,download:H,dx:null,dy:null,edgeMode:null,editable:null,elevation:W,enableBackground:null,end:null,event:null,exponent:W,externalResourcesRequired:null,fill:null,fillOpacity:W,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Gr,g2:Gr,glyphName:Gr,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:W,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:W,horizOriginX:W,horizOriginY:W,id:null,ideographic:W,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:W,k:W,k1:W,k2:W,k3:W,k4:W,kernelMatrix:K,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:W,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:W,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:W,overlineThickness:W,paintOrder:null,panose1:null,path:null,pathLength:W,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:G,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:W,pointsAtY:W,pointsAtZ:W,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:K,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:K,rev:K,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:K,requiredFeatures:K,requiredFonts:K,requiredFormats:K,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:W,specularExponent:W,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:W,strikethroughThickness:W,string:null,stroke:null,strokeDashArray:K,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:W,strokeOpacity:W,strokeWidth:null,style:null,surfaceScale:W,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:K,tabIndex:W,tableValues:null,target:null,targetX:W,targetY:W,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:K,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:W,underlineThickness:W,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:W,values:null,vAlphabetic:W,vMathematical:W,vectorEffect:null,vHanging:W,vIdeographic:W,version:null,vertAdvY:W,vertOriginX:W,vertOriginY:W,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:W,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:Qr}),ni=Xr({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(e,t){return`xlink:`+t.slice(5).toLowerCase()}}),ri=Xr({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:$r}),ii=Xr({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),ai=/[A-Z]/g,oi=/-[a-z]/g,si=/^data[-\w.:]+$/i;function ci(e,t){let n=Vr(t),r=t,i=V;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&si.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(oi,ui);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!oi.test(e)){let n=e.replace(ai,li);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=Jr}return new i(r,t)}function li(e){return`-`+e.toLowerCase()}function ui(e){return e.charAt(1).toUpperCase()}var di=Br([Zr,ei,ni,ri,ii],`html`),fi=Br([Zr,ti,ni,ri,ii],`svg`),pi={}.hasOwnProperty;function mi(e,t){let n=t||{};function r(t,...n){let i=r.invalid,a=r.handlers;if(t&&pi.call(t,e)){let n=String(t[e]);i=pi.call(a,n)?a[n]:r.unknown}if(i)return i.call(this,t,...n)}return r.handlers=n.handlers||{},r.invalid=n.invalid,r.unknown=n.unknown,r}var hi=/["&'<>`]/g,gi=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,_i=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,vi=/[|\\{}()[\]^$+*?.]/g,yi=new WeakMap;function bi(e,t){if(e=e.replace(t.subset?xi(t.subset):hi,r),t.subset||t.escapeOnly)return e;return e.replace(gi,n).replace(_i,r);function n(e,n,r){return t.format((e.charCodeAt(0)-55296)*1024+e.charCodeAt(1)-56320+65536,r.charCodeAt(n+2),t)}function r(e,n,r){return t.format(e.charCodeAt(0),r.charCodeAt(n+1),t)}}function xi(e){let t=yi.get(e);return t||(t=Si(e),yi.set(e,t)),t}function Si(e){let t=[],n=-1;for(;++n<e.length;)t.push(e[n].replace(vi,`\\$&`));return RegExp(`(?:`+t.join(`|`)+`)`,`g`)}var Ci=/[\dA-Fa-f]/;function wi(e,t,n){let r=`&#x`+e.toString(16).toUpperCase();return n&&t&&!Ci.test(String.fromCharCode(t))?r:r+`;`}var Ti=/\d/;function Ei(e,t,n){let r=`&#`+String(e);return n&&t&&!Ti.test(String.fromCharCode(t))?r:r+`;`}var Di=`AElig.AMP.Aacute.Acirc.Agrave.Aring.Atilde.Auml.COPY.Ccedil.ETH.Eacute.Ecirc.Egrave.Euml.GT.Iacute.Icirc.Igrave.Iuml.LT.Ntilde.Oacute.Ocirc.Ograve.Oslash.Otilde.Ouml.QUOT.REG.THORN.Uacute.Ucirc.Ugrave.Uuml.Yacute.aacute.acirc.acute.aelig.agrave.amp.aring.atilde.auml.brvbar.ccedil.cedil.cent.copy.curren.deg.divide.eacute.ecirc.egrave.eth.euml.frac12.frac14.frac34.gt.iacute.icirc.iexcl.igrave.iquest.iuml.laquo.lt.macr.micro.middot.nbsp.not.ntilde.oacute.ocirc.ograve.ordf.ordm.oslash.otilde.ouml.para.plusmn.pound.quot.raquo.reg.sect.shy.sup1.sup2.sup3.szlig.thorn.times.uacute.ucirc.ugrave.uml.uuml.yacute.yen.yuml`.split(`.`),Oi={nbsp:`\xA0`,iexcl:`¡`,cent:`¢`,pound:`£`,curren:`¤`,yen:`¥`,brvbar:`¦`,sect:`§`,uml:`¨`,copy:`©`,ordf:`ª`,laquo:`«`,not:`¬`,shy:``,reg:`®`,macr:`¯`,deg:`°`,plusmn:`±`,sup2:`²`,sup3:`³`,acute:`´`,micro:`µ`,para:`¶`,middot:`·`,cedil:`¸`,sup1:`¹`,ordm:`º`,raquo:`»`,frac14:`¼`,frac12:`½`,frac34:`¾`,iquest:`¿`,Agrave:`À`,Aacute:`Á`,Acirc:`Â`,Atilde:`Ã`,Auml:`Ä`,Aring:`Å`,AElig:`Æ`,Ccedil:`Ç`,Egrave:`È`,Eacute:`É`,Ecirc:`Ê`,Euml:`Ë`,Igrave:`Ì`,Iacute:`Í`,Icirc:`Î`,Iuml:`Ï`,ETH:`Ð`,Ntilde:`Ñ`,Ograve:`Ò`,Oacute:`Ó`,Ocirc:`Ô`,Otilde:`Õ`,Ouml:`Ö`,times:`×`,Oslash:`Ø`,Ugrave:`Ù`,Uacute:`Ú`,Ucirc:`Û`,Uuml:`Ü`,Yacute:`Ý`,THORN:`Þ`,szlig:`ß`,agrave:`à`,aacute:`á`,acirc:`â`,atilde:`ã`,auml:`ä`,aring:`å`,aelig:`æ`,ccedil:`ç`,egrave:`è`,eacute:`é`,ecirc:`ê`,euml:`ë`,igrave:`ì`,iacute:`í`,icirc:`î`,iuml:`ï`,eth:`ð`,ntilde:`ñ`,ograve:`ò`,oacute:`ó`,ocirc:`ô`,otilde:`õ`,ouml:`ö`,divide:`÷`,oslash:`ø`,ugrave:`ù`,uacute:`ú`,ucirc:`û`,uuml:`ü`,yacute:`ý`,thorn:`þ`,yuml:`ÿ`,fnof:`ƒ`,Alpha:`Α`,Beta:`Β`,Gamma:`Γ`,Delta:`Δ`,Epsilon:`Ε`,Zeta:`Ζ`,Eta:`Η`,Theta:`Θ`,Iota:`Ι`,Kappa:`Κ`,Lambda:`Λ`,Mu:`Μ`,Nu:`Ν`,Xi:`Ξ`,Omicron:`Ο`,Pi:`Π`,Rho:`Ρ`,Sigma:`Σ`,Tau:`Τ`,Upsilon:`Υ`,Phi:`Φ`,Chi:`Χ`,Psi:`Ψ`,Omega:`Ω`,alpha:`α`,beta:`β`,gamma:`γ`,delta:`δ`,epsilon:`ε`,zeta:`ζ`,eta:`η`,theta:`θ`,iota:`ι`,kappa:`κ`,lambda:`λ`,mu:`μ`,nu:`ν`,xi:`ξ`,omicron:`ο`,pi:`π`,rho:`ρ`,sigmaf:`ς`,sigma:`σ`,tau:`τ`,upsilon:`υ`,phi:`φ`,chi:`χ`,psi:`ψ`,omega:`ω`,thetasym:`ϑ`,upsih:`ϒ`,piv:`ϖ`,bull:`•`,hellip:`…`,prime:`′`,Prime:`″`,oline:`‾`,frasl:`⁄`,weierp:`℘`,image:`ℑ`,real:`ℜ`,trade:`™`,alefsym:`ℵ`,larr:`←`,uarr:`↑`,rarr:`→`,darr:`↓`,harr:`↔`,crarr:`↵`,lArr:`⇐`,uArr:`⇑`,rArr:`⇒`,dArr:`⇓`,hArr:`⇔`,forall:`∀`,part:`∂`,exist:`∃`,empty:`∅`,nabla:`∇`,isin:`∈`,notin:`∉`,ni:`∋`,prod:`∏`,sum:`∑`,minus:`−`,lowast:`∗`,radic:`√`,prop:`∝`,infin:`∞`,ang:`∠`,and:`∧`,or:`∨`,cap:`∩`,cup:`∪`,int:`∫`,there4:`∴`,sim:`∼`,cong:`≅`,asymp:`≈`,ne:`≠`,equiv:`≡`,le:`≤`,ge:`≥`,sub:`⊂`,sup:`⊃`,nsub:`⊄`,sube:`⊆`,supe:`⊇`,oplus:`⊕`,otimes:`⊗`,perp:`⊥`,sdot:`⋅`,lceil:`⌈`,rceil:`⌉`,lfloor:`⌊`,rfloor:`⌋`,lang:`〈`,rang:`〉`,loz:`◊`,spades:`♠`,clubs:`♣`,hearts:`♥`,diams:`♦`,quot:`"`,amp:`&`,lt:`<`,gt:`>`,OElig:`Œ`,oelig:`œ`,Scaron:`Š`,scaron:`š`,Yuml:`Ÿ`,circ:`ˆ`,tilde:`˜`,ensp:` `,emsp:` `,thinsp:` `,zwnj:``,zwj:``,lrm:``,rlm:``,ndash:`–`,mdash:`—`,lsquo:`‘`,rsquo:`’`,sbquo:`‚`,ldquo:`“`,rdquo:`”`,bdquo:`„`,dagger:`†`,Dagger:`‡`,permil:`‰`,lsaquo:`‹`,rsaquo:`›`,euro:`€`},ki=[`cent`,`copy`,`divide`,`gt`,`lt`,`not`,`para`,`times`],Ai={}.hasOwnProperty,ji={},Mi;for(Mi in Oi)Ai.call(Oi,Mi)&&(ji[Oi[Mi]]=Mi);var Ni=/[^\dA-Za-z]/;function Pi(e,t,n,r){let i=String.fromCharCode(e);if(Ai.call(ji,i)){let e=ji[i],a=`&`+e;return n&&Di.includes(e)&&!ki.includes(e)&&(!r||t&&t!==61&&Ni.test(String.fromCharCode(t)))?a:a+`;`}return``}function Fi(e,t,n){let r=wi(e,t,n.omitOptionalSemicolons),i;if((n.useNamedReferences||n.useShortestReferences)&&(i=Pi(e,t,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!i)&&n.useShortestReferences){let i=Ei(e,t,n.omitOptionalSemicolons);i.length<r.length&&(r=i)}return i&&(!n.useShortestReferences||i.length<r.length)?i:r}function Ii(e,t){return bi(e,Object.assign({format:Fi},t))}var Li=/^>|^->|<!--|-->|--!>|<!-$/g,Ri=[`>`],zi=[`<`,`>`];function Bi(e,t,n,r){return r.settings.bogusComments?`<?`+Ii(e.value,Object.assign({},r.settings.characterReferences,{subset:Ri}))+`>`:`<!--`+e.value.replace(Li,i)+`-->`;function i(e){return Ii(e,Object.assign({},r.settings.characterReferences,{subset:zi}))}}function Vi(e,t,n,r){return`<!`+(r.settings.upperDoctype?`DOCTYPE`:`doctype`)+(r.settings.tightDoctype?``:` `)+`html>`}function Hi(e,t){let n=String(e);if(typeof t!=`string`)throw TypeError(`Expected character`);let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function Ui(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}function Wi(e){return e.join(` `).trim()}var Gi=/[ \t\n\f\r]/g;function Ki(e){return typeof e==`object`?e.type===`text`&&qi(e.value):qi(e)}function qi(e){return e.replace(Gi,``)===``}var q=Xi(1),Ji=Xi(-1),Yi=[];function Xi(e){return t;function t(t,n,r){let i=t?t.children:Yi,a=(n||0)+e,o=i[a];if(!r)for(;o&&Ki(o);)a+=e,o=i[a];return o}}var Zi={}.hasOwnProperty;function Qi(e){return t;function t(t,n,r){return Zi.call(e,t.tagName)&&e[t.tagName](t,n,r)}}var $i=Qi({body:na,caption:ea,colgroup:ea,dd:oa,dt:aa,head:ea,html:ta,li:ia,optgroup:ca,option:la,p:ra,rp:sa,rt:sa,tbody:da,td:ma,tfoot:fa,th:ma,thead:ua,tr:pa});function ea(e,t,n){let r=q(n,t,!0);return!r||r.type!==`comment`&&!(r.type===`text`&&Ki(r.value.charAt(0)))}function ta(e,t,n){let r=q(n,t);return!r||r.type!==`comment`}function na(e,t,n){let r=q(n,t);return!r||r.type!==`comment`}function ra(e,t,n){let r=q(n,t);return r?r.type===`element`&&(r.tagName===`address`||r.tagName===`article`||r.tagName===`aside`||r.tagName===`blockquote`||r.tagName===`details`||r.tagName===`div`||r.tagName===`dl`||r.tagName===`fieldset`||r.tagName===`figcaption`||r.tagName===`figure`||r.tagName===`footer`||r.tagName===`form`||r.tagName===`h1`||r.tagName===`h2`||r.tagName===`h3`||r.tagName===`h4`||r.tagName===`h5`||r.tagName===`h6`||r.tagName===`header`||r.tagName===`hgroup`||r.tagName===`hr`||r.tagName===`main`||r.tagName===`menu`||r.tagName===`nav`||r.tagName===`ol`||r.tagName===`p`||r.tagName===`pre`||r.tagName===`section`||r.tagName===`table`||r.tagName===`ul`):!n||!(n.type===`element`&&(n.tagName===`a`||n.tagName===`audio`||n.tagName===`del`||n.tagName===`ins`||n.tagName===`map`||n.tagName===`noscript`||n.tagName===`video`))}function ia(e,t,n){let r=q(n,t);return!r||r.type===`element`&&r.tagName===`li`}function aa(e,t,n){let r=q(n,t);return!!(r&&r.type===`element`&&(r.tagName===`dt`||r.tagName===`dd`))}function oa(e,t,n){let r=q(n,t);return!r||r.type===`element`&&(r.tagName===`dt`||r.tagName===`dd`)}function sa(e,t,n){let r=q(n,t);return!r||r.type===`element`&&(r.tagName===`rp`||r.tagName===`rt`)}function ca(e,t,n){let r=q(n,t);return!r||r.type===`element`&&r.tagName===`optgroup`}function la(e,t,n){let r=q(n,t);return!r||r.type===`element`&&(r.tagName===`option`||r.tagName===`optgroup`)}function ua(e,t,n){let r=q(n,t);return!!(r&&r.type===`element`&&(r.tagName===`tbody`||r.tagName===`tfoot`))}function da(e,t,n){let r=q(n,t);return!r||r.type===`element`&&(r.tagName===`tbody`||r.tagName===`tfoot`)}function fa(e,t,n){return!q(n,t)}function pa(e,t,n){let r=q(n,t);return!r||r.type===`element`&&r.tagName===`tr`}function ma(e,t,n){let r=q(n,t);return!r||r.type===`element`&&(r.tagName===`td`||r.tagName===`th`)}var ha=Qi({body:va,colgroup:ya,head:_a,html:ga,tbody:ba});function ga(e){let t=q(e,-1);return!t||t.type!==`comment`}function _a(e){let t=new Set;for(let n of e.children)if(n.type===`element`&&(n.tagName===`base`||n.tagName===`title`)){if(t.has(n.tagName))return!1;t.add(n.tagName)}let n=e.children[0];return!n||n.type===`element`}function va(e){let t=q(e,-1,!0);return!t||t.type!==`comment`&&!(t.type===`text`&&Ki(t.value.charAt(0)))&&!(t.type===`element`&&(t.tagName===`meta`||t.tagName===`link`||t.tagName===`script`||t.tagName===`style`||t.tagName===`template`))}function ya(e,t,n){let r=Ji(n,t),i=q(e,-1,!0);return n&&r&&r.type===`element`&&r.tagName===`colgroup`&&$i(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`col`)}function ba(e,t,n){let r=Ji(n,t),i=q(e,-1);return n&&r&&r.type===`element`&&(r.tagName===`thead`||r.tagName===`tbody`)&&$i(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`tr`)}var xa={name:[[`
|
|
4
|
+
\f\r &/=>`.split(``),`
|
|
5
|
+
\f\r "&'/=>\``.split(``)],[`\0
|
|
6
|
+
\f\r "&'/<=>`.split(``),`\0
|
|
7
|
+
\f\r "&'/<=>\``.split(``)]],unquoted:[[`
|
|
8
|
+
\f\r &>`.split(``),`\0
|
|
9
|
+
\f\r "&'<=>\``.split(``)],[`\0
|
|
10
|
+
\f\r "&'<=>\``.split(``),`\0
|
|
11
|
+
\f\r "&'<=>\``.split(``)]],single:[[`&'`.split(``),`"&'\``.split(``)],[`\0&'`.split(``),`\0"&'\``.split(``)]],double:[[`"&`.split(``),`"&'\``.split(``)],[`\0"&`.split(``),`\0"&'\``.split(``)]]};function Sa(e,t,n,r){let i=r.schema,a=i.space!==`svg`&&r.settings.omitOptionalTags,o=i.space===`svg`?r.settings.closeEmptyElements:r.settings.voids.includes(e.tagName.toLowerCase()),s=[],c;i.space===`html`&&e.tagName===`svg`&&(r.schema=fi);let l=Ca(r,e.properties),u=r.all(i.space===`html`&&e.tagName===`template`?e.content:e);return r.schema=i,u&&(o=!1),(l||!a||!ha(e,t,n))&&(s.push(`<`,e.tagName,l?` `+l:``),o&&(i.space===`svg`||r.settings.closeSelfClosing)&&(c=l.charAt(l.length-1),(!r.settings.tightSelfClosing||c===`/`||c&&c!==`"`&&c!==`'`)&&s.push(` `),s.push(`/`)),s.push(`>`)),s.push(u),!o&&(!a||!$i(e,t,n))&&s.push(`</`+e.tagName+`>`),s.join(``)}function Ca(e,t){let n=[],r=-1,i;if(t){for(i in t)if(t[i]!==null&&t[i]!==void 0){let r=wa(e,i,t[i]);r&&n.push(r)}}for(;++r<n.length;){let t=e.settings.tightAttributes?n[r].charAt(n[r].length-1):void 0;r!==n.length-1&&t!==`"`&&t!==`'`&&(n[r]+=` `)}return n.join(``)}function wa(e,t,n){let r=ci(e.schema,t),i=e.settings.allowParseErrors&&e.schema.space===`html`?0:1,a=+!e.settings.allowDangerousCharacters,o=e.quote,s;if(r.overloadedBoolean&&(n===r.attribute||n===``)?n=!0:(r.boolean||r.overloadedBoolean)&&(typeof n!=`string`||n===r.attribute||n===``)&&(n=!!n),n==null||n===!1||typeof n==`number`&&Number.isNaN(n))return``;let c=Ii(r.attribute,Object.assign({},e.settings.characterReferences,{subset:xa.name[i][a]}));return n===!0||(n=Array.isArray(n)?(r.commaSeparated?Ui:Wi)(n,{padLeft:!e.settings.tightCommaSeparatedLists}):String(n),e.settings.collapseEmptyAttributes&&!n)?c:(e.settings.preferUnquoted&&(s=Ii(n,Object.assign({},e.settings.characterReferences,{attribute:!0,subset:xa.unquoted[i][a]}))),s!==n&&(e.settings.quoteSmart&&Hi(n,o)>Hi(n,e.alternative)&&(o=e.alternative),s=o+Ii(n,Object.assign({},e.settings.characterReferences,{subset:(o===`'`?xa.single:xa.double)[i][a],attribute:!0}))+o),c+(s&&`=`+s))}var Ta=[`<`,`&`];function Ea(e,t,n,r){return n&&n.type===`element`&&(n.tagName===`script`||n.tagName===`style`)?e.value:Ii(e.value,Object.assign({},r.settings.characterReferences,{subset:Ta}))}function Da(e,t,n,r){return r.settings.allowDangerousHtml?e.value:Ea(e,t,n,r)}function Oa(e,t,n,r){return r.all(e)}var ka=mi(`type`,{invalid:Aa,unknown:ja,handlers:{comment:Bi,doctype:Vi,element:Sa,raw:Da,root:Oa,text:Ea}});function Aa(e){throw Error("Expected node, not `"+e+"`")}function ja(e){throw Error("Cannot compile unknown node `"+e.type+"`")}var Ma={},Na={},Pa=[];function Fa(e,t){let n=t||Ma,r=n.quote||`"`,i=r===`"`?`'`:`"`;if(r!==`"`&&r!==`'`)throw Error("Invalid quote `"+r+"`, expected `'` or `\"`");return{one:Ia,all:La,settings:{omitOptionalTags:n.omitOptionalTags||!1,allowParseErrors:n.allowParseErrors||!1,allowDangerousCharacters:n.allowDangerousCharacters||!1,quoteSmart:n.quoteSmart||!1,preferUnquoted:n.preferUnquoted||!1,tightAttributes:n.tightAttributes||!1,upperDoctype:n.upperDoctype||!1,tightDoctype:n.tightDoctype||!1,bogusComments:n.bogusComments||!1,tightCommaSeparatedLists:n.tightCommaSeparatedLists||!1,tightSelfClosing:n.tightSelfClosing||!1,collapseEmptyAttributes:n.collapseEmptyAttributes||!1,allowDangerousHtml:n.allowDangerousHtml||!1,voids:n.voids||Rr,characterReferences:n.characterReferences||Na,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space===`svg`?fi:di,quote:r,alternative:i}.one(Array.isArray(e)?{type:`root`,children:e}:e,void 0,void 0)}function Ia(e,t,n){return ka(e,t,n,this)}function La(e){let t=[],n=e&&e.children||Pa,r=-1;for(;++r<n.length;)t[r]=this.one(n[r],r,e);return t.join(``)}var Ra=/\s+/g;function za(e,t){if(!t)return e;e.properties||={},e.properties.class||=[],typeof e.properties.class==`string`&&(e.properties.class=e.properties.class.split(Ra)),Array.isArray(e.properties.class)||(e.properties.class=[]);let n=Array.isArray(t)?t:t.split(Ra);for(let t of n)t&&!e.properties.class.includes(t)&&e.properties.class.push(t);return e}function Ba(e){let t=or(e,!0).map(([e])=>e);function n(n){if(n===e.length)return{line:t.length-1,character:t.at(-1).length};let r=n,i=0;for(let e of t){if(r<e.length)break;r-=e.length,i++}return{line:i,character:r}}function r(e,n){let r=0;for(let n=0;n<e;n++)r+=t[n].length;return r+=n,r}return{lines:t,indexToPos:n,posToIndex:r}}var Va=[`color`,`background-color`];function Ha(e,t){let n=0,r=[];for(let i of t)i>n&&r.push({...e,content:e.content.slice(n,i),offset:e.offset+n}),n=i;return n<e.content.length&&r.push({...e,content:e.content.slice(n),offset:e.offset+n}),r}function Ua(e,t){let n=0,r=e.length;for(;n<r;){let i=n+(r-n>>1);e[i]<=t?n=i+1:r=i}return n}function Wa(e,t){let n=[...t instanceof Set?t:new Set(t)].sort((e,t)=>e-t);return n.length?e.map(e=>e.flatMap(e=>{let t=e.offset+e.content.length,r=Ua(n,e.offset),i=r;for(;i<n.length&&n[i]<t;)i++;if(r===i)return e;let a=n.slice(r,i);for(let t=0;t<a.length;t++)a[t]-=e.offset;return Ha(e,a)})):e}function Ga(e,t,n,r,i=`css-vars`){let a={content:e.content,explanation:e.explanation,offset:e.offset},o=t.map(t=>Ka(e.variants[t])),s=new Set(o.flatMap(e=>Object.keys(e))),c={},l=(e,r)=>{let i=r===`color`?``:r===`background-color`?`-bg`:`-${r}`;return n+t[e]+(r===`color`?``:i)};return o.forEach((e,n)=>{for(let a of s){let s=e[a]||`inherit`;if(n===0&&r&&Va.includes(a))if(r===`light-dark()`&&o.length>1){let e=t.findIndex(e=>e===`light`),r=t.findIndex(e=>e===`dark`);if(e===-1||r===-1)throw new z('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');let u=o[e][a]||`inherit`,d=o[r][a]||`inherit`;c[a]=`light-dark(${u}, ${d})`,i===`css-vars`&&(c[l(n,a)]=s)}else c[a]=s;else i===`css-vars`&&(c[l(n,a)]=s)}}),a.htmlStyle=c,a}function Ka(e){let t={};if(e.color&&(t.color=e.color),e.bgColor&&(t[`background-color`]=e.bgColor),e.fontStyle){e.fontStyle&B.Italic&&(t[`font-style`]=`italic`),e.fontStyle&B.Bold&&(t[`font-weight`]=`bold`);let n=[];e.fontStyle&B.Underline&&n.push(`underline`),e.fontStyle&B.Strikethrough&&n.push(`line-through`),n.length&&(t[`text-decoration`]=n.join(` `))}return t}function qa(e){return typeof e==`string`?e:Object.entries(e).map(([e,t])=>`${e}:${t}`).join(`;`)}function Ja(){let e=new WeakMap;function t(t){if(!e.has(t.meta)){let n=Ba(t.source);function r(e){if(typeof e==`number`){if(e<0||e>t.source.length)throw new z(`Invalid decoration offset: ${e}. Code length: ${t.source.length}`);return{...n.indexToPos(e),offset:e}}else{let t=n.lines[e.line];if(t===void 0)throw new z(`Invalid decoration position ${JSON.stringify(e)}. Lines length: ${n.lines.length}`);let r=e.character;if(r<0&&(r=t.length+r),r<0||r>t.length)throw new z(`Invalid decoration position ${JSON.stringify(e)}. Line ${e.line} length: ${t.length}`);return{...e,character:r,offset:n.posToIndex(e.line,r)}}}let i=(t.options.decorations||[]).map(e=>({...e,start:r(e.start),end:r(e.end)}));Ya(i),e.set(t.meta,{decorations:i,converter:n,source:t.source})}return e.get(t.meta)}return{name:`shiki:decorations`,tokens(e){if(this.options.decorations?.length)return Wa(e,t(this).decorations.flatMap(e=>[e.start.offset,e.end.offset]))},code(e){if(!this.options.decorations?.length)return;let n=t(this),r=[...e.children].filter(e=>e.type===`element`&&e.tagName===`span`);if(r.length!==n.converter.lines.length)throw new z(`Number of lines in code element (${r.length}) does not match the number of lines in the source (${n.converter.lines.length}). Failed to apply decorations.`);function i(e,t,n,i){let a=r[e],s=``,c=-1,l=-1;if(t===0&&(c=0),n===0&&(l=0),n===1/0&&(l=a.children.length),c===-1||l===-1)for(let e=0;e<a.children.length;e++)s+=Xa(a.children[e]),c===-1&&s.length===t&&(c=e+1),l===-1&&s.length===n&&(l=e+1);if(c===-1)throw new z(`Failed to find start index for decoration ${JSON.stringify(i.start)}`);if(l===-1)throw new z(`Failed to find end index for decoration ${JSON.stringify(i.end)}`);let u=a.children.slice(c,l);if(!i.alwaysWrap&&u.length===a.children.length)o(a,i,`line`);else if(!i.alwaysWrap&&u.length===1&&u[0].type===`element`)o(u[0],i,`token`);else{let e={type:`element`,tagName:`span`,properties:{},children:u};o(e,i,`wrapper`),a.children.splice(c,u.length,e)}}function a(e,t){r[e]=o(r[e],t,`line`)}function o(e,t,n){let r=t.properties||{},i=t.transform||(e=>e);return e.tagName=t.tagName||`span`,e.properties={...e.properties,...r,class:e.properties.class},t.properties?.class&&za(e,t.properties.class),e=i(e,n)||e,e}let s=[],c=n.decorations.sort((e,t)=>t.start.offset-e.start.offset||e.end.offset-t.end.offset);for(let e of c){let{start:t,end:n}=e;if(t.line===n.line)i(t.line,t.character,n.character,e);else if(t.line<n.line){i(t.line,t.character,1/0,e);for(let r=t.line+1;r<n.line;r++)s.unshift(()=>a(r,e));i(n.line,0,n.character,e)}}s.forEach(e=>e())}}}function Ya(e){for(let t=0;t<e.length;t++){let n=e[t];if(n.start.offset>n.end.offset)throw new z(`Invalid decoration range: ${JSON.stringify(n.start)} - ${JSON.stringify(n.end)}`);for(let r=t+1;r<e.length;r++){let t=e[r],i=n.start.offset<=t.start.offset&&t.start.offset<n.end.offset,a=n.start.offset<t.end.offset&&t.end.offset<=n.end.offset,o=t.start.offset<=n.start.offset&&n.start.offset<t.end.offset,s=t.start.offset<n.end.offset&&n.end.offset<=t.end.offset;if(i||a||o||s){if(i&&a||o&&s||o&&n.start.offset===n.end.offset||a&&t.start.offset===t.end.offset)continue;throw new z(`Decorations ${JSON.stringify(n.start)} and ${JSON.stringify(t.start)} intersect.`)}}}}function Xa(e){return e.type===`text`?e.value:e.type===`element`?e.children.map(Xa).join(``):``}var Za=[Ja()];function Qa(e){let t=$a(e.transformers||[]);return[...t.pre,...t.normal,...t.post,...Za]}function $a(e){let t=[],n=[],r=[];for(let i of e)switch(i.enforce){case`pre`:t.push(i);break;case`post`:n.push(i);break;default:r.push(i)}return{pre:t,post:n,normal:r}}var eo=[`black`,`red`,`green`,`yellow`,`blue`,`magenta`,`cyan`,`white`,`brightBlack`,`brightRed`,`brightGreen`,`brightYellow`,`brightBlue`,`brightMagenta`,`brightCyan`,`brightWhite`],to={1:`bold`,2:`dim`,3:`italic`,4:`underline`,7:`reverse`,8:`hidden`,9:`strikethrough`};function no(e,t){let n=e.indexOf(`\x1B`,t);if(n!==-1&&e[n+1]===`[`){let t=e.indexOf(`m`,n);if(t!==-1)return{sequence:e.substring(n+2,t).split(`;`),startPosition:n,position:t+1}}return{position:e.length}}function ro(e){let t=e.shift();if(t===`2`){let t=e.splice(0,3).map(e=>Number.parseInt(e));return t.length!==3||t.some(e=>Number.isNaN(e))?void 0:{type:`rgb`,rgb:t}}else if(t===`5`){let t=e.shift();if(t)return{type:`table`,index:Number(t)}}}function io(e){let t=[];for(;e.length>0;){let n=e.shift();if(!n)continue;let r=Number.parseInt(n);if(!Number.isNaN(r))if(r===0)t.push({type:`resetAll`});else if(r<=9)to[r]&&t.push({type:`setDecoration`,value:to[r]});else if(r<=29){let e=to[r-20];e&&(t.push({type:`resetDecoration`,value:e}),e===`dim`&&t.push({type:`resetDecoration`,value:`bold`}))}else if(r<=37)t.push({type:`setForegroundColor`,value:{type:`named`,name:eo[r-30]}});else if(r===38){let n=ro(e);n&&t.push({type:`setForegroundColor`,value:n})}else if(r===39)t.push({type:`resetForegroundColor`});else if(r<=47)t.push({type:`setBackgroundColor`,value:{type:`named`,name:eo[r-40]}});else if(r===48){let n=ro(e);n&&t.push({type:`setBackgroundColor`,value:n})}else r===49?t.push({type:`resetBackgroundColor`}):r===53?t.push({type:`setDecoration`,value:`overline`}):r===55?t.push({type:`resetDecoration`,value:`overline`}):r>=90&&r<=97?t.push({type:`setForegroundColor`,value:{type:`named`,name:eo[r-90+8]}}):r>=100&&r<=107&&t.push({type:`setBackgroundColor`,value:{type:`named`,name:eo[r-100+8]}})}return t}function ao(){let e=null,t=null,n=new Set;return{parse(r){let i=[],a=0;do{let o=no(r,a),s=o.sequence?r.substring(a,o.startPosition):r.substring(a);if(s.length>0&&i.push({value:s,foreground:e,background:t,decorations:new Set(n)}),o.sequence){let r=io(o.sequence);for(let i of r)i.type===`resetAll`?(e=null,t=null,n.clear()):i.type===`resetForegroundColor`?e=null:i.type===`resetBackgroundColor`?t=null:i.type===`resetDecoration`&&n.delete(i.value);for(let i of r)i.type===`setForegroundColor`?e=i.value:i.type===`setBackgroundColor`?t=i.value:i.type===`setDecoration`&&n.add(i.value)}a=o.position}while(a<r.length);return i}}}var oo={black:`#000000`,red:`#bb0000`,green:`#00bb00`,yellow:`#bbbb00`,blue:`#0000bb`,magenta:`#ff00ff`,cyan:`#00bbbb`,white:`#eeeeee`,brightBlack:`#555555`,brightRed:`#ff5555`,brightGreen:`#00ff00`,brightYellow:`#ffff55`,brightBlue:`#5555ff`,brightMagenta:`#ff55ff`,brightCyan:`#55ffff`,brightWhite:`#ffffff`};function so(e=oo){function t(t){return e[t]}function n(e){return`#${e.map(e=>Math.max(0,Math.min(e,255)).toString(16).padStart(2,`0`)).join(``)}`}let r;function i(){if(r)return r;r=[];for(let e=0;e<eo.length;e++)r.push(t(eo[e]));let e=[0,95,135,175,215,255];for(let t=0;t<6;t++)for(let i=0;i<6;i++)for(let a=0;a<6;a++)r.push(n([e[t],e[i],e[a]]));let i=8;for(let e=0;e<24;e++,i+=10)r.push(n([i,i,i]));return r}function a(e){return i()[e]}function o(e){switch(e.type){case`named`:return t(e.name);case`rgb`:return n(e.rgb);case`table`:return a(e.index)}}return{value:o}}var co=/#([0-9a-f]{3,8})/i,lo=/var\((--[\w-]+-ansi-[\w-]+)\)/,uo={black:`#000000`,red:`#cd3131`,green:`#0DBC79`,yellow:`#E5E510`,blue:`#2472C8`,magenta:`#BC3FBC`,cyan:`#11A8CD`,white:`#E5E5E5`,brightBlack:`#666666`,brightRed:`#F14C4C`,brightGreen:`#23D18B`,brightYellow:`#F5F543`,brightBlue:`#3B8EEA`,brightMagenta:`#D670D6`,brightCyan:`#29B8DB`,brightWhite:`#FFFFFF`};function fo(e,t,n){let r=Zn(e,n),i=or(t),a=so(Object.fromEntries(eo.map(t=>{let n=`terminal.ansi${t[0].toUpperCase()}${t.substring(1)}`;return[t,e.colors?.[n]||uo[t]]}))),o=ao();return i.map(t=>o.parse(t[0]).map(n=>{let i,o;n.decorations.has(`reverse`)?(i=n.background?a.value(n.background):e.bg,o=n.foreground?a.value(n.foreground):e.fg):(i=n.foreground?a.value(n.foreground):e.fg,o=n.background?a.value(n.background):void 0),i=Qn(i,r),o=Qn(o,r),n.decorations.has(`dim`)&&(i=po(i));let s=B.None;return n.decorations.has(`bold`)&&(s|=B.Bold),n.decorations.has(`italic`)&&(s|=B.Italic),n.decorations.has(`underline`)&&(s|=B.Underline),n.decorations.has(`strikethrough`)&&(s|=B.Strikethrough),{content:n.value,offset:t[1],color:i,bgColor:o,fontStyle:s}}))}function po(e){let t=e.match(co);if(t){let e=t[1];if(e.length===8){let t=Math.round(Number.parseInt(e.slice(6,8),16)/2).toString(16).padStart(2,`0`);return`#${e.slice(0,6)}${t}`}else if(e.length===6)return`#${e}80`;else if(e.length===4){let t=e[0],n=e[1],r=e[2],i=e[3];return`#${t}${t}${n}${n}${r}${r}${Math.round(Number.parseInt(`${i}${i}`,16)/2).toString(16).padStart(2,`0`)}`}else if(e.length===3){let t=e[0],n=e[1],r=e[2];return`#${t}${t}${n}${n}${r}${r}80`}}let n=e.match(lo);return n?`var(${n[1]}-dim)`:e}function mo(e,t,n={}){let r=e.resolveLangAlias(n.lang||`text`),{theme:i=e.getLoadedThemes()[0]}=n;if(!tr(r)&&!rr(i)&&r===`ansi`){let{theme:r}=e.setTheme(i);return fo(r,t,n)}return Dr(e,t,n)}function ho(e,t,n){let r,i,a,o,s,c;if(`themes`in n){let{defaultColor:l=`light`,cssVariablePrefix:u=`--shiki-`,colorsRendering:d=`css-vars`}=n,f=Object.entries(n.themes).filter(e=>e[1]).map(e=>({color:e[0],theme:e[1]})).sort((e,t)=>e.color===l?-1:+(t.color===l));if(f.length===0)throw new z("`themes` option must not be empty");let p=Ir(e,t,n,mo);if(c=xr(p),l&&l!==`light-dark()`&&!f.some(e=>e.color===l))throw new z(`\`themes\` option must contain the defaultColor key \`${l}\``);let m=f.map(t=>e.getTheme(t.theme)),h=f.map(e=>e.color);a=p.map(e=>e.map(e=>Ga(e,h,u,l,d))),c&&br(a,c);let g=f.map(e=>Zn(e.theme,n));i=go(f,m,g,u,l,`fg`,d),r=go(f,m,g,u,l,`bg`,d),o=`shiki-themes ${m.map(e=>e.name).join(` `)}`,s=l?void 0:[i,r].join(`;`)}else if(`theme`in n){let s=Zn(n.theme,n);a=mo(e,t,n);let l=e.getTheme(n.theme);r=Qn(l.bg,s),i=Qn(l.fg,s),o=l.name,c=xr(a)}else throw new z("Invalid options, either `theme` or `themes` must be provided");return{tokens:a,fg:i,bg:r,themeName:o,rootStyle:s,grammarState:c}}function go(e,t,n,r,i,a,o){return e.map((s,c)=>{let l=Qn(t[c][a],n[c])||`inherit`,u=`${r+s.color}${a===`bg`?`-bg`:``}:${l}`;if(c===0&&i){if(i===`light-dark()`&&e.length>1){let r=e.findIndex(e=>e.color===`light`),i=e.findIndex(e=>e.color===`dark`);if(r===-1||i===-1)throw new z('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');return`light-dark(${Qn(t[r][a],n[r])||`inherit`}, ${Qn(t[i][a],n[i])||`inherit`});${u}`}return l}return o===`css-vars`?u:null}).filter(e=>!!e).join(`;`)}var _o=/^\s+$/,vo=/^(\s*)(.*?)(\s*)$/;function yo(e,t,n,r={meta:{},options:n,codeToHast:(t,n)=>yo(e,t,n),codeToTokens:(t,n)=>ho(e,t,n)}){let i=t;for(let e of Qa(n))i=e.preprocess?.call(r,i,n)||i;let{tokens:a,fg:o,bg:s,themeName:c,rootStyle:l,grammarState:u}=ho(e,i,n),{mergeWhitespaces:d=!0,mergeSameStyleTokens:f=!1}=n;d===!0?a=xo(a):d===`never`&&(a=So(a)),f&&(a=Co(a));let p={...r,get source(){return i}};for(let e of Qa(n))a=e.tokens?.call(p,a)||a;return bo(a,{...n,fg:o,bg:s,themeName:c,rootStyle:n.rootStyle===!1?!1:n.rootStyle??l},p,u)}function bo(e,t,n,r=xr(e)){let i=Qa(t),a=[],o={type:`root`,children:[]},{structure:s=`classic`,tabindex:c=`0`}=t,l={class:`shiki ${t.themeName||``}`};t.rootStyle!==!1&&(t.rootStyle==null?l.style=`background-color:${t.bg};color:${t.fg}`:l.style=t.rootStyle),c!==!1&&c!=null&&(l.tabindex=c.toString());for(let[e,n]of Object.entries(t.meta||{}))e.startsWith(`_`)||(l[e]=n);let u={type:`element`,tagName:`pre`,properties:l,children:[],data:t.data},d={type:`element`,tagName:`code`,properties:{},children:a},f=[],p={...n,structure:s,addClassToHast:za,get source(){return n.source},get tokens(){return e},get options(){return t},get root(){return o},get pre(){return u},get code(){return d},get lines(){return f}};if(e.forEach((e,t)=>{t&&(s===`inline`?o.children.push({type:`element`,tagName:`br`,properties:{},children:[]}):s===`classic`&&a.push({type:`text`,value:`
|
|
12
|
+
`}));let n={type:`element`,tagName:`span`,properties:{class:`line`},children:[]},r=0;for(let a of e){let e={type:`element`,tagName:`span`,properties:{...a.htmlAttrs},children:[{type:`text`,value:a.content}]},c=qa(a.htmlStyle||Ka(a));c&&(e.properties.style=c);for(let o of i)e=o?.span?.call(p,e,t+1,r,n,a)||e;s===`inline`?o.children.push(e):s===`classic`&&n.children.push(e),r+=a.content.length}if(s===`classic`){for(let e of i)n=e?.line?.call(p,n,t+1)||n;f.push(n),a.push(n)}else s===`inline`&&f.push(n)}),s===`classic`){for(let e of i)d=e?.code?.call(p,d)||d;u.children.push(d);for(let e of i)u=e?.pre?.call(p,u)||u;o.children.push(u)}else if(s===`inline`){let e=[],t={type:`element`,tagName:`span`,properties:{class:`line`},children:[]};for(let n of o.children)n.type===`element`&&n.tagName===`br`?(e.push(t),t={type:`element`,tagName:`span`,properties:{class:`line`},children:[]}):(n.type===`element`||n.type===`text`)&&t.children.push(n);e.push(t);let n={type:`element`,tagName:`code`,properties:{},children:e};for(let e of i)n=e?.code?.call(p,n)||n;o.children=[];for(let e=0;e<n.children.length;e++){e>0&&o.children.push({type:`element`,tagName:`br`,properties:{},children:[]});let t=n.children[e];t.type===`element`&&o.children.push(...t.children)}}let m=o;for(let e of i)m=e?.root?.call(p,m)||m;return r&&br(m,r),m}function xo(e){return e.map(e=>{let t=[],n=``,r;return e.forEach((i,a)=>{let o=!(i.fontStyle&&(i.fontStyle&B.Underline||i.fontStyle&B.Strikethrough));o&&_o.test(i.content)&&e[a+1]?(r===void 0&&(r=i.offset),n+=i.content):n?(o?t.push({...i,offset:r,content:n+i.content}):t.push({content:n,offset:r},i),r=void 0,n=``):t.push(i)}),t})}function So(e){return e.map(e=>e.flatMap(e=>{if(_o.test(e.content))return e;let t=e.content.match(vo);if(!t)return e;let[,n,r,i]=t;if(!n&&!i)return e;let a=[{...e,offset:e.offset+n.length,content:r}];return n&&a.unshift({content:n,offset:e.offset}),i&&a.push({content:i,offset:e.offset+n.length+r.length}),a}))}function Co(e){return e.map(e=>{let t=[];for(let n of e){if(t.length===0){t.push({...n});continue}let e=t.at(-1),r=qa(e.htmlStyle||Ka(e)),i=qa(n.htmlStyle||Ka(n)),a=e.fontStyle&&(e.fontStyle&B.Underline||e.fontStyle&B.Strikethrough),o=n.fontStyle&&(n.fontStyle&B.Underline||n.fontStyle&B.Strikethrough);!a&&!o&&r===i?e.content+=n.content:t.push({...n})}return t})}var wo=Fa;function To(e,t,n){let r={meta:{},options:n,codeToHast:(t,n)=>yo(e,t,n),codeToTokens:(t,n)=>ho(e,t,n)},i=wo(yo(e,t,n,r));for(let e of Qa(n))i=e.postprocess?.call(r,i,n)||i;return i}async function Eo(e){let t=await vr(e);return{getLastGrammarState:(...e)=>Or(t,...e),codeToTokensBase:(e,n)=>mo(t,e,n),codeToTokensWithThemes:(e,n)=>Ir(t,e,n),codeToTokens:(e,n)=>ho(t,e,n),codeToHast:(e,n)=>yo(t,e,n),codeToHtml:(e,n)=>To(t,e,n),getBundledLanguages:()=>({}),getBundledThemes:()=>({}),...t,getInternalContext:()=>t}}var Do=4294967295,Oo=class{patterns;options;regexps;constructor(e,t={}){this.patterns=e,this.options=t;let{forgiving:n=!1,cache:r,regexConstructor:i}=t;if(!i)throw Error("Option `regexConstructor` is not provided");this.regexps=e.map(e=>{if(typeof e!=`string`)return e;let t=r?.get(e);if(t){if(t instanceof RegExp)return t;if(n)return null;throw t}try{let t=i(e);return r?.set(e,t),t}catch(t){if(r?.set(e,t),n)return null;throw t}})}findNextMatchSync(e,t,n){let r=typeof e==`string`?e:e.content,i=[];function a(e,t,n=0){return{index:e,captureIndices:t.indices.map(e=>e==null?{start:Do,end:Do,length:0}:{start:e[0]+n,end:e[1]+n,length:e[1]-e[0]})}}for(let e=0;e<this.regexps.length;e++){let n=this.regexps[e];if(n)try{n.lastIndex=t;let o=n.exec(r);if(!o)continue;if(o.index===t)return a(e,o,0);i.push([e,o,0])}catch(e){if(this.options.forgiving)continue;throw e}}if(i.length){let e=Math.min(...i.map(e=>e[1].index));for(let[t,n,r]of i)if(n.index===e)return a(t,n,r)}return null}};function ko(e){if([...e].length!==1)throw Error(`Expected "${e}" to be a single code point`);return e.codePointAt(0)}function Ao(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}var jo=new Set([`alnum`,`alpha`,`ascii`,`blank`,`cntrl`,`digit`,`graph`,`lower`,`print`,`punct`,`space`,`upper`,`word`,`xdigit`]),J=String.raw;function Mo(e,t){if(e==null)throw Error(t??`Value expected`);return e}var No=J`\[\^?`,Po=`c.? | C(?:-.?)?|${J`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${J`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${J`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${J`o\{[^\}]*\}?`}|${J`\d{1,3}`}`,Fo=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,Io=new RegExp(J`
|
|
13
|
+
\\ (?:
|
|
14
|
+
${Po}
|
|
15
|
+
| [gk]<[^>]*>?
|
|
16
|
+
| [gk]'[^']*'?
|
|
17
|
+
| .
|
|
18
|
+
)
|
|
19
|
+
| \( (?:
|
|
20
|
+
\? (?:
|
|
21
|
+
[:=!>({]
|
|
22
|
+
| <[=!]
|
|
23
|
+
| <[^>]*>
|
|
24
|
+
| '[^']*'
|
|
25
|
+
| ~\|?
|
|
26
|
+
| #(?:[^)\\]|\\.?)*
|
|
27
|
+
| [^:)]*[:)]
|
|
28
|
+
)?
|
|
29
|
+
| \*[^\)]*\)?
|
|
30
|
+
)?
|
|
31
|
+
| (?:${Fo.source})+
|
|
32
|
+
| ${No}
|
|
33
|
+
| .
|
|
34
|
+
`.replace(/\s+/g,``),`gsu`),Lo=new RegExp(J`
|
|
35
|
+
\\ (?:
|
|
36
|
+
${Po}
|
|
37
|
+
| .
|
|
38
|
+
)
|
|
39
|
+
| \[:(?:\^?\p{Alpha}+|\^):\]
|
|
40
|
+
| ${No}
|
|
41
|
+
| &&
|
|
42
|
+
| .
|
|
43
|
+
`.replace(/\s+/g,``),`gsu`);function Ro(e,t={}){let n={flags:``,...t,rules:{captureGroup:!1,singleline:!1,...t.rules}};if(typeof e!=`string`)throw Error(`String expected as pattern`);let r=ms(n.flags),i=[r.extended],a={captureGroup:n.rules.captureGroup,getCurrentModX(){return i.at(-1)},numOpenGroups:0,popModX(){i.pop()},pushModX(e){i.push(e)},replaceCurrentModX(e){i[i.length-1]=e},singleline:n.rules.singleline},o=[],s;for(Io.lastIndex=0;s=Io.exec(e);){let t=zo(a,e,s[0],Io.lastIndex);t.tokens?o.push(...t.tokens):t.token&&o.push(t.token),t.lastIndex!==void 0&&(Io.lastIndex=t.lastIndex)}let c=[],l=0;o.filter(e=>e.type===`GroupOpen`).forEach(e=>{e.kind===`capturing`?e.number=++l:e.raw===`(`&&c.push(e)}),l||c.forEach((e,t)=>{e.kind=`capturing`,e.number=t+1});let u=l||c.length;return{tokens:o.map(e=>e.type===`EscapedNumber`?gs(e,u):e).flat(),flags:r}}function zo(e,t,n,r){let[i,a]=n;if(n===`[`||n===`[^`){let e=Bo(t,n,r);return{tokens:e.tokens,lastIndex:e.lastIndex}}if(i===`\\`){if(`AbBGyYzZ`.includes(a))return{token:Wo(n,n)};if(/^\\g[<']/.test(n)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(n))throw Error(`Invalid group name "${n}"`);return{token:is(n)}}if(/^\\k[<']/.test(n)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(n))throw Error(`Invalid group name "${n}"`);return{token:Go(n)}}if(a===`K`)return{token:Qo(`keep`,n)};if(a===`N`||a===`R`)return{token:Zo(`newline`,n,{negate:a===`N`})};if(a===`O`)return{token:Zo(`any`,n)};if(a===`X`)return{token:Zo(`text_segment`,n)};let e=Ho(n,{inCharClass:!1});return Array.isArray(e)?{tokens:e}:{token:e}}if(i===`(`){if(a===`*`)return{token:ls(n)};if(n===`(?{`)throw Error(`Unsupported callout "${n}"`);if(n.startsWith(`(?#`)){if(t[r]!==`)`)throw Error(`Unclosed comment group "(?#"`);return{lastIndex:r+1}}if(/^\(\?[-imx]+[:)]$/.test(n))return{token:cs(n,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,n===`(`&&!e.captureGroup||n===`(?:`)return{token:ts(`group`,n)};if(n===`(?>`)return{token:ts(`atomic`,n)};if(n===`(?=`||n===`(?!`||n===`(?<=`||n===`(?<!`)return{token:ts(n[2]===`<`?`lookbehind`:`lookahead`,n,{negate:n.endsWith(`!`)})};if(n===`(`&&e.captureGroup||n.startsWith(`(?<`)&&n.endsWith(`>`)||n.startsWith(`(?'`)&&n.endsWith(`'`))return{token:ts(`capturing`,n,{...n!==`(`&&{name:n.slice(3,-1)}})};if(n.startsWith(`(?~`)){if(n===`(?~|`)throw Error(`Unsupported absence function kind "${n}"`);return{token:ts(`absence_repeater`,n)}}throw Error(n===`(?(`?`Unsupported conditional "${n}"`:`Invalid or unsupported group option "${n}"`)}if(n===`)`){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw Error(`Unmatched ")"`);return{token:es(n)}}if(e.getCurrentModX()){if(n===`#`){let e=t.indexOf(`
|
|
44
|
+
`,r);return{lastIndex:e===-1?t.length:e}}if(/^\s$/.test(n)){let e=/\s+/y;return e.lastIndex=r,{lastIndex:e.exec(t)?e.lastIndex:r}}}return n===`.`?{token:Zo(`dot`,n)}:n===`^`||n===`$`?{token:Wo(e.singleline?{"^":J`\A`,$:J`\Z`}[n]:n,n)}:n===`|`?{token:Uo(n)}:Fo.test(n)?{tokens:_s(n)}:{token:Ko(ko(n),n)}}function Bo(e,t,n){let r=[Xo(t[1]===`^`,t)],i=1,a;for(Lo.lastIndex=n;a=Lo.exec(e);){let e=a[0];if(e[0]===`[`&&e[1]!==`:`)i++,r.push(Xo(e[1]===`^`,e));else if(e===`]`){if(r.at(-1).type===`CharacterClassOpen`)r.push(Ko(93,e));else if(i--,r.push(qo(e)),!i)break}else{let t=Vo(e);Array.isArray(t)?r.push(...t):r.push(t)}}return{tokens:r,lastIndex:Lo.lastIndex||e.length}}function Vo(e){if(e[0]===`\\`)return Ho(e,{inCharClass:!0});if(e[0]===`[`){let t=/\[:(?<negate>\^?)(?<name>[a-z]+):\]/.exec(e);if(!t||!jo.has(t.groups.name))throw Error(`Invalid POSIX class "${e}"`);return Zo(`posix`,e,{value:t.groups.name,negate:!!t.groups.negate})}return e===`-`?Jo(e):e===`&&`?Yo(e):Ko(ko(e),e)}function Ho(e,{inCharClass:t}){let n=e[1];if(n===`c`||n===`C`)return ss(e);if(`dDhHsSwW`.includes(n))return ds(e);if(e.startsWith(J`\o{`))throw Error(`Incomplete, invalid, or unsupported octal code point "${e}"`);if(/^\\[pP]\{/.test(e)){if(e.length===3)throw Error(`Incomplete or invalid Unicode property "${e}"`);return fs(e)}if(/^\\x[89A-Fa-f]\p{AHex}/u.test(e))try{let t=e.split(/\\x/).slice(1).map(e=>parseInt(e,16)),n=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(t)),r=new TextEncoder;return[...n].map(e=>{let t=[...r.encode(e)].map(e=>`\\x${e.toString(16)}`).join(``);return Ko(ko(e),t)})}catch{throw Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(n===`u`||n===`x`)return Ko(hs(e),e);if(os.has(n))return Ko(os.get(n),e);if(/\d/.test(n))return $o(t,e);if(e===`\\`)throw Error(J`Incomplete escape "\"`);if(n===`M`)throw Error(`Unsupported meta "${e}"`);if([...e].length===2)return Ko(e.codePointAt(1),e);throw Error(`Unexpected escape "${e}"`)}function Uo(e){return{type:`Alternator`,raw:e}}function Wo(e,t){return{type:`Assertion`,kind:e,raw:t}}function Go(e){return{type:`Backreference`,raw:e}}function Ko(e,t){return{type:`Character`,value:e,raw:t}}function qo(e){return{type:`CharacterClassClose`,raw:e}}function Jo(e){return{type:`CharacterClassHyphen`,raw:e}}function Yo(e){return{type:`CharacterClassIntersector`,raw:e}}function Xo(e,t){return{type:`CharacterClassOpen`,negate:e,raw:t}}function Zo(e,t,n={}){return{type:`CharacterSet`,kind:e,...n,raw:t}}function Qo(e,t,n={}){return e===`keep`?{type:`Directive`,kind:e,raw:t}:{type:`Directive`,kind:e,flags:Mo(n.flags),raw:t}}function $o(e,t){return{type:`EscapedNumber`,inCharClass:e,raw:t}}function es(e){return{type:`GroupClose`,raw:e}}function ts(e,t,n={}){return{type:`GroupOpen`,kind:e,...n,raw:t}}function ns(e,t,n,r){return{type:`NamedCallout`,kind:e,tag:t,arguments:n,raw:r}}function rs(e,t,n,r){return{type:`Quantifier`,kind:e,min:t,max:n,raw:r}}function is(e){return{type:`Subroutine`,raw:e}}var as=new Set([`COUNT`,`CMP`,`ERROR`,`FAIL`,`MAX`,`MISMATCH`,`SKIP`,`TOTAL_COUNT`]),os=new Map([[`a`,7],[`b`,8],[`e`,27],[`f`,12],[`n`,10],[`r`,13],[`t`,9],[`v`,11]]);function ss(e){let t=e[1]===`c`?e[2]:e[3];if(!t||!/[A-Za-z]/.test(t))throw Error(`Unsupported control character "${e}"`);return Ko(ko(t.toUpperCase())-64,e)}function cs(e,t){let{on:n,off:r}=/^\(\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(e).groups;r??=``;let i=(t.getCurrentModX()||n.includes(`x`))&&!r.includes(`x`),a=ps(n),o=ps(r),s={};if(a&&(s.enable=a),o&&(s.disable=o),e.endsWith(`)`))return t.replaceCurrentModX(i),Qo(`flags`,e,{flags:s});if(e.endsWith(`:`))return t.pushModX(i),t.numOpenGroups++,ts(`group`,e,{...(a||o)&&{flags:s}});throw Error(`Unexpected flag modifier "${e}"`)}function ls(e){let t=/\(\*(?<name>[A-Za-z_]\w*)?(?:\[(?<tag>(?:[A-Za-z_]\w*)?)\])?(?:\{(?<args>[^}]*)\})?\)/.exec(e);if(!t)throw Error(`Incomplete or invalid named callout "${e}"`);let{name:n,tag:r,args:i}=t.groups;if(!n)throw Error(`Invalid named callout "${e}"`);if(r===``)throw Error(`Named callout tag with empty value not allowed "${e}"`);let a=i?i.split(`,`).filter(e=>e!==``).map(e=>/^[+-]?\d+$/.test(e)?+e:e):[],[o,s,c]=a,l=as.has(n)?n.toLowerCase():`custom`;switch(l){case`fail`:case`mismatch`:case`skip`:if(a.length>0)throw Error(`Named callout arguments not allowed "${a}"`);break;case`error`:if(a.length>1)throw Error(`Named callout allows only one argument "${a}"`);if(typeof o==`string`)throw Error(`Named callout argument must be a number "${o}"`);break;case`max`:if(!a.length||a.length>2)throw Error(`Named callout must have one or two arguments "${a}"`);if(typeof o==`string`&&!/^[A-Za-z_]\w*$/.test(o))throw Error(`Named callout argument one must be a tag or number "${o}"`);if(a.length===2&&(typeof s==`number`||!/^[<>X]$/.test(s)))throw Error(`Named callout optional argument two must be '<', '>', or 'X' "${s}"`);break;case`count`:case`total_count`:if(a.length>1)throw Error(`Named callout allows only one argument "${a}"`);if(a.length===1&&(typeof o==`number`||!/^[<>X]$/.test(o)))throw Error(`Named callout optional argument must be '<', '>', or 'X' "${o}"`);break;case`cmp`:if(a.length!==3)throw Error(`Named callout must have three arguments "${a}"`);if(typeof o==`string`&&!/^[A-Za-z_]\w*$/.test(o))throw Error(`Named callout argument one must be a tag or number "${o}"`);if(typeof s==`number`||!/^(?:[<>!=]=|[<>])$/.test(s))throw Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' "${s}"`);if(typeof c==`string`&&!/^[A-Za-z_]\w*$/.test(c))throw Error(`Named callout argument three must be a tag or number "${c}"`);break;case`custom`:throw Error(`Undefined callout name "${n}"`);default:throw Error(`Unexpected named callout kind "${l}"`)}return ns(l,r??null,i?.split(`,`)??null,e)}function us(e){let t=null,n,r;if(e[0]===`{`){let{minStr:i,maxStr:a}=/^\{(?<minStr>\d*)(?:,(?<maxStr>\d*))?/.exec(e).groups,o=1e5;if(+i>o||a&&+a>o)throw Error(`Quantifier value unsupported in Oniguruma`);if(n=+i,r=a===void 0?+i:a===``?1/0:+a,n>r&&(t=`possessive`,[n,r]=[r,n]),e.endsWith(`?`)){if(t===`possessive`)throw Error(`Unsupported possessive interval quantifier chain with "?"`);t=`lazy`}else t||=`greedy`}else n=+(e[0]===`+`),r=e[0]===`?`?1:1/0,t=e[1]===`+`?`possessive`:e[1]===`?`?`lazy`:`greedy`;return rs(t,n,r,e)}function ds(e){let t=e[1].toLowerCase();return Zo({d:`digit`,h:`hex`,s:`space`,w:`word`}[t],e,{negate:e[1]!==t})}function fs(e){let{p:t,neg:n,value:r}=/^\\(?<p>[pP])\{(?<neg>\^?)(?<value>[^}]+)/.exec(e).groups;return Zo(`property`,e,{value:r,negate:t===`P`&&!n||t===`p`&&!!n})}function ps(e){let t={};return e.includes(`i`)&&(t.ignoreCase=!0),e.includes(`m`)&&(t.dotAll=!0),e.includes(`x`)&&(t.extended=!0),Object.keys(t).length?t:null}function ms(e){let t={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii:!1,posixIsAscii:!1,spaceIsAscii:!1,wordIsAscii:!1,textSegmentMode:null};for(let n=0;n<e.length;n++){let r=e[n];if(!`imxDPSWy`.includes(r))throw Error(`Invalid flag "${r}"`);if(r===`y`){if(!/^y{[gw]}/.test(e.slice(n)))throw Error(`Invalid or unspecified flag "y" mode`);t.textSegmentMode=e[n+2]===`g`?`grapheme`:`word`,n+=3;continue}t[{i:`ignoreCase`,m:`dotAll`,x:`extended`,D:`digitIsAscii`,P:`posixIsAscii`,S:`spaceIsAscii`,W:`wordIsAscii`}[r]]=!0}return t}function hs(e){if(/^(?:\\u(?!\p{AHex}{4})|\\x(?!\p{AHex}{1,2}|\{\p{AHex}{1,8}\}))/u.test(e))throw Error(`Incomplete or invalid escape "${e}"`);let t=e[2]===`{`?/^\\x\{\s*(?<hex>\p{AHex}+)/u.exec(e).groups.hex:e.slice(2);return parseInt(t,16)}function gs(e,t){let{raw:n,inCharClass:r}=e,i=n.slice(1);if(!r&&(i!==`0`&&i.length===1||i[0]!==`0`&&+i<=t))return[Go(n)];let a=[],o=i.match(/^[0-7]+|\d/g);for(let e=0;e<o.length;e++){let t=o[e],r;if(e===0&&t!==`8`&&t!==`9`){if(r=parseInt(t,8),r>127)throw Error(J`Octal encoded byte above 177 unsupported "${n}"`)}else r=ko(t);a.push(Ko(r,(e===0?`\\`:``)+t))}return a}function _s(e){let t=[],n=new RegExp(Fo,`gy`),r;for(;r=n.exec(e);){let e=r[0];if(e[0]===`{`){let r=/^\{(?<min>\d+),(?<max>\d+)\}\??$/.exec(e);if(r){let{min:i,max:a}=r.groups;if(+i>+a&&e.endsWith(`?`)){n.lastIndex--,t.push(us(e.slice(0,-1)));continue}}}t.push(us(e))}return t}function vs(e,t){if(!Array.isArray(e.body))throw Error(`Expected node with body array`);if(e.body.length!==1)return!1;let n=e.body[0];return!t||Object.keys(t).every(e=>t[e]===n[e])}function ys(e){return bs.has(e.type)}var bs=new Set([`AbsenceFunction`,`Backreference`,`CapturingGroup`,`Character`,`CharacterClass`,`CharacterSet`,`Group`,`Quantifier`,`Subroutine`]);function xs(e,t={}){let n={flags:``,normalizeUnknownPropertyNames:!1,skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t,rules:{captureGroup:!1,singleline:!1,...t.rules}},r=Ro(e,{flags:n.flags,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline}}),i=(e,t)=>{let n=r.tokens[a.nextIndex];switch(a.parent=e,a.nextIndex++,n.type){case`Alternator`:return js();case`Assertion`:return Ss(n);case`Backreference`:return Cs(n,a);case`Character`:return Fs(n.value,{useLastValid:!!t.isCheckingRangeEnd});case`CharacterClassHyphen`:return ws(n,a,t);case`CharacterClassOpen`:return Ts(n,a,t);case`CharacterSet`:return Es(n,a);case`Directive`:return zs(n.kind,{flags:n.flags});case`GroupOpen`:return Ds(n,a,t);case`NamedCallout`:return Us(n.kind,n.tag,n.arguments);case`Quantifier`:return Os(n,a);case`Subroutine`:return ks(n,a);default:throw Error(`Unexpected token type "${n.type}"`)}},a={capturingGroups:[],hasNumberedRef:!1,namedGroupsByName:new Map,nextIndex:0,normalizeUnknownPropertyNames:n.normalizeUnknownPropertyNames,parent:null,skipBackrefValidation:n.skipBackrefValidation,skipLookbehindValidation:n.skipLookbehindValidation,skipPropertyNameValidation:n.skipPropertyNameValidation,subroutines:[],tokens:r.tokens,unicodePropertyMap:n.unicodePropertyMap,walk:i},o=Ks(Bs(r.flags)),s=o.body[0];for(;a.nextIndex<r.tokens.length;){let e=i(s,{});e.type===`Alternative`?(o.body.push(e),s=e):s.body.push(e)}let{capturingGroups:c,hasNumberedRef:l,namedGroupsByName:u,subroutines:d}=a;if(l&&u.size&&!n.rules.captureGroup)throw Error(`Numbered backref/subroutine not allowed when using named capture`);for(let{ref:e}of d)if(typeof e==`number`){if(e>c.length)throw Error(`Subroutine uses a group number that's not defined`);e&&(c[e-1].isSubroutined=!0)}else if(u.has(e)){if(u.get(e).length>1)throw Error(J`Subroutine uses a duplicate group name "\g<${e}>"`);u.get(e)[0].isSubroutined=!0}else throw Error(J`Subroutine uses a group name that's not defined "\g<${e}>"`);return o}function Ss({kind:e}){return Ms(Mo({"^":`line_start`,$:`line_end`,"\\A":`string_start`,"\\b":`word_boundary`,"\\B":`word_boundary`,"\\G":`search_start`,"\\y":`text_segment_boundary`,"\\Y":`text_segment_boundary`,"\\z":`string_end`,"\\Z":`string_end_newline`}[e],`Unexpected assertion kind "${e}"`),{negate:e===J`\B`||e===J`\Y`})}function Cs({raw:e},t){let n=/^\\k[<']/.test(e),r=n?e.slice(3,-1):e.slice(1),i=(n,r=!1)=>{let i=t.capturingGroups.length,a=!1;if(n>i)if(t.skipBackrefValidation)a=!0;else throw Error(`Not enough capturing groups defined to the left "${e}"`);return t.hasNumberedRef=!0,Ns(r?i+1-n:n,{orphan:a})};if(n){let n=/^(?<sign>-?)0*(?<num>[1-9]\d*)$/.exec(r);if(n)return i(+n.groups.num,!!n.groups.sign);if(/[-+]/.test(r))throw Error(`Invalid backref name "${e}"`);if(!t.namedGroupsByName.has(r))throw Error(`Group name not defined to the left "${e}"`);return Ns(r)}return i(+r)}function ws(e,t,n){let{tokens:r,walk:i}=t,a=t.parent,o=a.body.at(-1),s=r[t.nextIndex];if(!n.isCheckingRangeEnd&&o&&o.type!==`CharacterClass`&&o.type!==`CharacterClassRange`&&s&&s.type!==`CharacterClassOpen`&&s.type!==`CharacterClassClose`&&s.type!==`CharacterClassIntersector`){let e=i(a,{...n,isCheckingRangeEnd:!0});if(o.type===`Character`&&e.type===`Character`)return a.body.pop(),Ls(o,e);throw Error(`Invalid character class range`)}return Fs(ko(`-`))}function Ts({negate:e},t,n){let{tokens:r,walk:i}=t,a=[Is()],o=r[t.nextIndex],s=rc(o);for(;s.type!==`CharacterClassClose`;){if(s.type===`CharacterClassIntersector`)a.push(Is()),t.nextIndex++;else{let e=a.at(-1);e.body.push(i(e,n))}s=rc(r[t.nextIndex],o)}let c=Is({negate:e});return a.length===1?c.body=a[0].body:(c.kind=`intersection`,c.body=a.map(e=>e.body.length===1?e.body[0]:e)),t.nextIndex++,c}function Es({kind:e,negate:t,value:n},r){let{normalizeUnknownPropertyNames:i,skipPropertyNameValidation:a,unicodePropertyMap:o}=r;if(e===`property`){let r=nc(n);if(jo.has(r)&&!o?.has(r))e=`posix`,n=r;else return Js(n,{negate:t,normalizeUnknownPropertyNames:i,skipPropertyNameValidation:a,unicodePropertyMap:o})}return e===`posix`?Ws(n,{negate:t}):Rs(e,{negate:t})}function Ds(e,t,n){let{tokens:r,capturingGroups:i,namedGroupsByName:a,skipLookbehindValidation:o,walk:s}=t,c=Ys(e),l=c.type===`AbsenceFunction`,u=$s(c),d=u&&c.negate;if(c.type===`CapturingGroup`&&(i.push(c),c.name&&Ao(a,c.name,[]).push(c)),l&&n.isInAbsenceFunction)throw Error(`Nested absence function not supported by Oniguruma`);let f=ic(r[t.nextIndex]);for(;f.type!==`GroupClose`;){if(f.type===`Alternator`)c.body.push(js()),t.nextIndex++;else{let e=c.body.at(-1),t=s(e,{...n,isInAbsenceFunction:n.isInAbsenceFunction||l,isInLookbehind:n.isInLookbehind||u,isInNegLookbehind:n.isInNegLookbehind||d});if(e.body.push(t),(u||n.isInLookbehind)&&!o){let e=`Lookbehind includes a pattern not allowed by Oniguruma`;if(d||n.isInNegLookbehind){if(Qs(t)||t.type===`CapturingGroup`)throw Error(e)}else if(Qs(t)||$s(t)&&t.negate)throw Error(e)}}f=ic(r[t.nextIndex])}return t.nextIndex++,c}function Os({kind:e,min:t,max:n},r){let i=r.parent,a=i.body.at(-1);if(!a||!ys(a))throw Error(`Quantifier requires a repeatable token`);let o=Gs(e,t,n,a);return i.body.pop(),o}function ks({raw:e},t){let{capturingGroups:n,subroutines:r}=t,i=e.slice(3,-1),a=/^(?<sign>[-+]?)0*(?<num>[1-9]\d*)$/.exec(i);if(a){let e=+a.groups.num,r=n.length;if(t.hasNumberedRef=!0,i={"":e,"+":r+e,"-":r+1-e}[a.groups.sign],i<1)throw Error(`Invalid subroutine number`)}else i===`0`&&(i=0);let o=qs(i);return r.push(o),o}function As(e,t){if(e!==`repeater`)throw Error(`Unexpected absence function kind "${e}"`);return{type:`AbsenceFunction`,kind:e,body:Xs(t?.body)}}function js(e){return{type:`Alternative`,body:Zs(e?.body)}}function Ms(e,t){let n={type:`Assertion`,kind:e};return(e===`word_boundary`||e===`text_segment_boundary`)&&(n.negate=!!t?.negate),n}function Ns(e,t){let n=!!t?.orphan;return{type:`Backreference`,ref:e,...n&&{orphan:n}}}function Ps(e,t){let n={name:void 0,isSubroutined:!1,...t};if(n.name!==void 0&&!ec(n.name))throw Error(`Group name "${n.name}" invalid in Oniguruma`);return{type:`CapturingGroup`,number:e,...n.name&&{name:n.name},...n.isSubroutined&&{isSubroutined:n.isSubroutined},body:Xs(t?.body)}}function Fs(e,t){let n={useLastValid:!1,...t};if(e>1114111){let t=e.toString(16);if(n.useLastValid)e=1114111;else throw Error(e>1310719?`Invalid code point out of range "\\x{${t}}"`:`Invalid code point out of range in JS "\\x{${t}}"`)}return{type:`Character`,value:e}}function Is(e){let t={kind:`union`,negate:!1,...e};return{type:`CharacterClass`,kind:t.kind,negate:t.negate,body:Zs(e?.body)}}function Ls(e,t){if(t.value<e.value)throw Error(`Character class range out of order`);return{type:`CharacterClassRange`,min:e,max:t}}function Rs(e,t){let n=!!t?.negate,r={type:`CharacterSet`,kind:e};return(e===`digit`||e===`hex`||e===`newline`||e===`space`||e===`word`)&&(r.negate=n),(e===`text_segment`||e===`newline`&&!n)&&(r.variableLength=!0),r}function zs(e,t={}){if(e===`keep`)return{type:`Directive`,kind:e};if(e===`flags`)return{type:`Directive`,kind:e,flags:Mo(t.flags)};throw Error(`Unexpected directive kind "${e}"`)}function Bs(e){return{type:`Flags`,...e}}function Vs(e){let t=e?.atomic,n=e?.flags;if(t&&n)throw Error(`Atomic group cannot have flags`);return{type:`Group`,...t&&{atomic:t},...n&&{flags:n},body:Xs(e?.body)}}function Hs(e){let t={behind:!1,negate:!1,...e};return{type:`LookaroundAssertion`,kind:t.behind?`lookbehind`:`lookahead`,negate:t.negate,body:Xs(e?.body)}}function Us(e,t,n){return{type:`NamedCallout`,kind:e,tag:t,arguments:n}}function Ws(e,t){let n=!!t?.negate;if(!jo.has(e))throw Error(`Invalid POSIX class "${e}"`);return{type:`CharacterSet`,kind:`posix`,value:e,negate:n}}function Gs(e,t,n,r){if(t>n)throw Error(`Invalid reversed quantifier range`);return{type:`Quantifier`,kind:e,min:t,max:n,body:r}}function Ks(e,t){return{type:`Regex`,body:Xs(t?.body),flags:e}}function qs(e){return{type:`Subroutine`,ref:e}}function Js(e,t){let n={negate:!1,normalizeUnknownPropertyNames:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t},r=n.unicodePropertyMap?.get(nc(e));if(!r){if(n.normalizeUnknownPropertyNames)r=tc(e);else if(n.unicodePropertyMap&&!n.skipPropertyNameValidation)throw Error(J`Invalid Unicode property "\p{${e}}"`)}return{type:`CharacterSet`,kind:`property`,value:r??e,negate:n.negate}}function Ys({flags:e,kind:t,name:n,negate:r,number:i}){switch(t){case`absence_repeater`:return As(`repeater`);case`atomic`:return Vs({atomic:!0});case`capturing`:return Ps(i,{name:n});case`group`:return Vs({flags:e});case`lookahead`:case`lookbehind`:return Hs({behind:t===`lookbehind`,negate:r});default:throw Error(`Unexpected group kind "${t}"`)}}function Xs(e){if(e===void 0)e=[js()];else if(!Array.isArray(e)||!e.length||!e.every(e=>e.type===`Alternative`))throw Error(`Invalid body; expected array of one or more Alternative nodes`);return e}function Zs(e){if(e===void 0)e=[];else if(!Array.isArray(e)||!e.every(e=>!!e.type))throw Error(`Invalid body; expected array of nodes`);return e}function Qs(e){return e.type===`LookaroundAssertion`&&e.kind===`lookahead`}function $s(e){return e.type===`LookaroundAssertion`&&e.kind===`lookbehind`}function ec(e){return/^[\p{Alpha}\p{Pc}][^)]*$/u.test(e)}function tc(e){return e.trim().replace(/[- _]+/g,`_`).replace(/[A-Z][a-z]+(?=[A-Z])/g,`$&_`).replace(/[A-Za-z]+/g,e=>e[0].toUpperCase()+e.slice(1).toLowerCase())}function nc(e){return e.replace(/[- _]+/g,``).toLowerCase()}function rc(e,t){let n=t;return Mo(e,`Unclosed character class${n?.type===`Character`&&n.value===93&&n.raw===`]`?` (started with "]")`:``}`)}function ic(e){return Mo(e,`Unclosed group`)}function ac(e,t,n=null){function r(e,t){for(let n=0;n<e.length;n++){let r=i(e[n],t,n,e);n=Math.max(-1,n+r)}}function i(a,o=null,s=null,c=null){let l=0,u=!1,d={node:a,parent:o,key:s,container:c,root:e,remove(){oc(c).splice(Math.max(0,sc(s)+l),1),l--,u=!0},removeAllNextSiblings(){return oc(c).splice(sc(s)+1)},removeAllPrevSiblings(){let e=sc(s)+l;return l-=e,oc(c).splice(0,Math.max(0,e))},replaceWith(e,t={}){let n=!!t.traverse;c?c[Math.max(0,sc(s)+l)]=e:Mo(o,`Can't replace root node`)[s]=e,n&&i(e,o,s,c),u=!0},replaceWithMultiple(e,t={}){let n=!!t.traverse;if(oc(c).splice(Math.max(0,sc(s)+l),1,...e),l+=e.length-1,n){let t=0;for(let n=0;n<e.length;n++)t+=i(e[n],o,sc(s)+n+t,c)}u=!0},skip(){u=!0}},{type:f}=a,p=t[`*`],m=t[f],h=typeof p==`function`?p:p?.enter,g=typeof m==`function`?m:m?.enter;if(h?.(d,n),g?.(d,n),!u)switch(f){case`AbsenceFunction`:case`Alternative`:case`CapturingGroup`:case`CharacterClass`:case`Group`:case`LookaroundAssertion`:r(a.body,a);break;case`Assertion`:case`Backreference`:case`Character`:case`CharacterSet`:case`Directive`:case`Flags`:case`NamedCallout`:case`Subroutine`:break;case`CharacterClassRange`:i(a.min,a,`min`),i(a.max,a,`max`);break;case`Quantifier`:i(a.body,a,`body`);break;case`Regex`:r(a.body,a),i(a.flags,a,`flags`);break;default:throw Error(`Unexpected node type "${f}"`)}return m?.exit?.(d,n),p?.exit?.(d,n),l}return i(e),e}function oc(e){if(!Array.isArray(e))throw Error(`Container expected`);return e}function sc(e){if(typeof e!=`number`)throw Error(`Numeric key expected`);return e}var cc=String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;function lc(e,t){for(let n=0;n<e.length;n++)e[n]>=t&&e[n]++}function uc(e,t,n,r){return e.slice(0,t)+r+e.slice(t+n.length)}var Y=Object.freeze({DEFAULT:`DEFAULT`,CHAR_CLASS:`CHAR_CLASS`});function dc(e,t,n,r){let i=new RegExp(String.raw`${t}|(?<$skip>\[\^?|\\?.)`,`gsu`),a=[!1],o=0,s=``;for(let t of e.matchAll(i)){let{0:e,groups:{$skip:i}}=t;if(!i&&(!r||r===Y.DEFAULT==!o)){n instanceof Function?s+=n(t,{context:o?Y.CHAR_CLASS:Y.DEFAULT,negated:a[a.length-1]}):s+=n;continue}e[0]===`[`?(o++,a.push(e[1]===`^`)):e===`]`&&o&&(o--,a.pop()),s+=e}return s}function fc(e,t,n,r){dc(e,t,n,r)}function pc(e,t,n=0,r){if(!new RegExp(t,`su`).test(e))return null;let i=RegExp(`${t}|(?<$skip>\\\\?.)`,`gsu`);i.lastIndex=n;let a=0,o;for(;o=i.exec(e);){let{0:e,groups:{$skip:t}}=o;if(!t&&(!r||r===Y.DEFAULT==!a))return o;e===`[`?a++:e===`]`&&a&&a--,i.lastIndex==o.index&&i.lastIndex++}return null}function mc(e,t,n){return!!pc(e,t,0,n)}function hc(e,t){let n=/\\?./gsu;n.lastIndex=t;let r=e.length,i=0,a=1,o;for(;o=n.exec(e);){let[e]=o;if(e===`[`)i++;else if(i)e===`]`&&i--;else if(e===`(`)a++;else if(e===`)`&&(a--,!a)){r=o.index;break}}return e.slice(t,r)}var gc=new RegExp(String.raw`(?<noncapturingStart>${cc})|(?<capturingStart>\((?:\?<[^>]+>)?)|\\?.`,`gsu`);function _c(e,t){let n=t?.hiddenCaptures??[],r=t?.captureTransfers??new Map;if(!/\(\?>/.test(e))return{pattern:e,captureTransfers:r,hiddenCaptures:n};let i=[0],a=[],o=0,s=0,c=NaN,l;do{l=!1;let t=0,u=0,d=!1,f;for(gc.lastIndex=Number.isNaN(c)?0:c+7;f=gc.exec(e);){let{0:p,index:m,groups:{capturingStart:h,noncapturingStart:g}}=f;if(p===`[`)t++;else if(t)p===`]`&&t--;else if(p===`(?>`&&!d)c=m,d=!0;else if(d&&g)u++;else if(h)d?u++:(o++,i.push(o+s));else if(p===`)`&&d){if(!u){s++;let t=o+s;if(e=`${e.slice(0,c)}(?:(?=(${e.slice(c+3,m)}))<$$${t}>)${e.slice(m+1)}`,l=!0,a.push(t),lc(n,t),r.size){let e=new Map;r.forEach((n,r)=>{e.set(r>=t?r+1:r,n.map(e=>e>=t?e+1:e))}),r=e}break}u--}}}while(l);return n.push(...a),e=dc(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:e,groups:{backrefNum:t,wrappedBackrefNum:n}})=>{if(t){let n=+t;if(n>i.length-1)throw Error(`Backref "${e}" greater than number of captures`);return`\\${i[n]}`}return`\\${n}`},Y.DEFAULT),{pattern:e,captureTransfers:r,hiddenCaptures:n}}var vc=String.raw`(?:[?*+]|\{\d+(?:,\d*)?\})`,yc=new RegExp(String.raw`
|
|
45
|
+
\\(?: \d+
|
|
46
|
+
| c[A-Za-z]
|
|
47
|
+
| [gk]<[^>]+>
|
|
48
|
+
| [pPu]\{[^\}]+\}
|
|
49
|
+
| u[A-Fa-f\d]{4}
|
|
50
|
+
| x[A-Fa-f\d]{2}
|
|
51
|
+
)
|
|
52
|
+
| \((?: \? (?: [:=!>]
|
|
53
|
+
| <(?:[=!]|[^>]+>)
|
|
54
|
+
| [A-Za-z\-]+:
|
|
55
|
+
| \(DEFINE\)
|
|
56
|
+
))?
|
|
57
|
+
| (?<qBase>${vc})(?<qMod>[?+]?)(?<invalidQ>[?*+\{]?)
|
|
58
|
+
| \\?.
|
|
59
|
+
`.replace(/\s+/g,``),`gsu`);function bc(e){if(!RegExp(`${vc}\\+`).test(e))return{pattern:e};let t=[],n=null,r=null,i=``,a=0,o;for(yc.lastIndex=0;o=yc.exec(e);){let{0:s,index:c,groups:{qBase:l,qMod:u,invalidQ:d}}=o;if(s===`[`)a||(r=c),a++;else if(s===`]`)a?a--:r=null;else if(!a)if(u===`+`&&i&&!i.startsWith(`(`)){if(d)throw Error(`Invalid quantifier "${s}"`);let t=-1;if(/^\{\d+\}$/.test(l))e=uc(e,c+l.length,u,``);else{if(i===`)`||i===`]`){let t=i===`)`?n:r;if(t===null)throw Error(`Invalid unmatched "${i}"`);e=`${e.slice(0,t)}(?>${e.slice(t,c)}${l})${e.slice(c+s.length)}`}else e=`${e.slice(0,c-i.length)}(?>${i}${l})${e.slice(c+s.length)}`;t+=4}yc.lastIndex+=t}else s[0]===`(`?t.push(c):s===`)`&&(n=t.length?t.pop():null);i=s}return{pattern:e}}var X=String.raw,xc=X`\(\?R=(?<rDepth>[^\)]+)\)|${X`\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`}`,Sc=X`\(\?<(?![=!])(?<captureName>[^>]+)>`,Cc=X`${Sc}|(?<unnamed>\()(?!\?)`,wc=new RegExp(X`${Sc}|${xc}|\(\?|\\?.`,`gsu`),Tc=`Cannot use multiple overlapping recursions`;function Ec(e,t){let{hiddenCaptures:n,mode:r}={hiddenCaptures:[],mode:`plugin`,...t},i=t?.captureTransfers??new Map;if(!new RegExp(xc,`su`).test(e))return{pattern:e,captureTransfers:i,hiddenCaptures:n};if(r===`plugin`&&mc(e,X`\(\?\(DEFINE\)`,Y.DEFAULT))throw Error(`DEFINE groups cannot be used with recursion`);let a=[],o=mc(e,X`\\[1-9]`,Y.DEFAULT),s=new Map,c=[],l=!1,u=0,d=0,f;for(wc.lastIndex=0;f=wc.exec(e);){let{0:t,groups:{captureName:p,rDepth:m,gRNameOrNum:h,gRDepth:g}}=f;if(t===`[`)u++;else if(u)t===`]`&&u--;else if(m){if(Dc(m),l)throw Error(Tc);if(o)throw Error(`${r===`external`?`Backrefs`:`Numbered backrefs`} cannot be used with global recursion`);let t=e.slice(0,f.index),s=e.slice(wc.lastIndex);if(mc(s,xc,Y.DEFAULT))throw Error(Tc);let c=m-1;e=Oc(t,s,c,!1,n,a,d),i=jc(i,t,c,a.length,0,d);break}else if(h){Dc(g);let u=!1;for(let e of c)if(e.name===h||e.num===+h){if(u=!0,e.hasRecursedWithin)throw Error(Tc);break}if(!u)throw Error(X`Recursive \g cannot be used outside the referenced group "${r===`external`?h:X`\g<${h}&R=${g}>`}"`);let p=s.get(h),m=hc(e,p);if(o&&mc(m,X`${Sc}|\((?!\?)`,Y.DEFAULT))throw Error(`${r===`external`?`Backrefs`:`Numbered backrefs`} cannot be used with recursion of capturing groups`);let _=e.slice(p,f.index),v=m.slice(_.length+t.length),y=a.length,b=g-1,x=Oc(_,v,b,!0,n,a,d);i=jc(i,_,b,a.length-y,y,d),e=`${e.slice(0,p)}${x}${e.slice(p+m.length)}`,wc.lastIndex+=x.length-t.length-_.length-v.length,c.forEach(e=>e.hasRecursedWithin=!0),l=!0}else if(p)d++,s.set(String(d),wc.lastIndex),s.set(p,wc.lastIndex),c.push({num:d,name:p});else if(t[0]===`(`){let e=t===`(`;e&&(d++,s.set(String(d),wc.lastIndex)),c.push(e?{num:d}:{})}else t===`)`&&c.pop()}return n.push(...a),{pattern:e,captureTransfers:i,hiddenCaptures:n}}function Dc(e){let t=`Max depth must be integer between 2 and 100; used ${e}`;if(!/^[1-9]\d*$/.test(e)||(e=+e,e<2||e>100))throw Error(t)}function Oc(e,t,n,r,i,a,o){let s=new Set;r&&fc(e+t,Sc,({groups:{captureName:e}})=>{s.add(e)},Y.DEFAULT);let c=[n,r?s:null,i,a,o];return`${e}${kc(`(?:${e}`,`forward`,...c)}(?:)${kc(`${t})`,`backward`,...c)}${t}`}function kc(e,t,n,r,i,a,o){let s=e=>t===`forward`?e+2:n-e+2-1,c=``;for(let t=0;t<n;t++){let n=s(t);c+=dc(e,X`${Cc}|\\k<(?<backref>[^>]+)>`,({0:e,groups:{captureName:t,unnamed:s,backref:c}})=>{if(c&&r&&!r.has(c))return e;let l=`_$${n}`;if(s||t){let n=o+a.length+1;return a.push(n),Ac(i,n),s?e:`(?<${t}${l}>`}return X`\k<${c}${l}>`},Y.DEFAULT)}return c}function Ac(e,t){for(let n=0;n<e.length;n++)e[n]>=t&&e[n]++}function jc(e,t,n,r,i,a){if(e.size&&r){let o=0;fc(t,Cc,()=>o++,Y.DEFAULT);let s=a-o+i,c=new Map;return e.forEach((e,t)=>{let i=(r-o*n)/n,a=o*n,l=t>s+o?t+r:t,u=[];for(let t of e)if(t<=s)u.push(t);else if(t>s+o+i)u.push(t+r);else if(t<=s+o)for(let e=0;e<=n;e++)u.push(t+o*e);else for(let e=0;e<=n;e++)u.push(t+a+i*e);c.set(l,u)}),c}return e}var Z=String.fromCodePoint,Q=String.raw,Mc={},Nc=globalThis.RegExp;Mc.flagGroups=(()=>{try{new Nc(`(?i:)`)}catch{return!1}return!0})(),Mc.unicodeSets=(()=>{try{new Nc(`[[]]`,`v`)}catch{return!1}return!0})(),Mc.bugFlagVLiteralHyphenIsRange=Mc.unicodeSets?(()=>{try{new Nc(Q`[\d\-a]`,`v`)}catch{return!0}return!1})():!1,Mc.bugNestedClassIgnoresNegation=Mc.unicodeSets&&new Nc(`[[^a]]`,`v`).test(`a`);function Pc(e,{enable:t,disable:n}){return{dotAll:!n?.dotAll&&!!(t?.dotAll||e.dotAll),ignoreCase:!n?.ignoreCase&&!!(t?.ignoreCase||e.ignoreCase)}}function Fc(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}function Ic(e,t){return Rc[e]>=Rc[t]}function Lc(e,t){if(e==null)throw Error(t??`Value expected`);return e}var Rc={ES2025:2025,ES2024:2024,ES2018:2018},zc={auto:`auto`,ES2025:`ES2025`,ES2024:`ES2024`,ES2018:`ES2018`};function Bc(e={}){if({}.toString.call(e)!==`[object Object]`)throw Error(`Unexpected options`);if(e.target!==void 0&&!zc[e.target])throw Error(`Unexpected target "${e.target}"`);let t={accuracy:`default`,avoidSubclass:!1,flags:``,global:!1,hasIndices:!1,lazyCompileLength:1/0,target:`auto`,verbose:!1,...e,rules:{allowOrphanBackrefs:!1,asciiWordBoundaries:!1,captureGroup:!1,recursionLimit:20,singleline:!1,...e.rules}};return t.target===`auto`&&(t.target=Mc.flagGroups?`ES2025`:Mc.unicodeSets?`ES2024`:`ES2018`),t}var Vc=`[ -\r ]`,Hc=new Set([Z(304),Z(305)]),Uc=Q`[\p{L}\p{M}\p{N}\p{Pc}]`;function Wc(e){if(Hc.has(e))return[e];let t=new Set,n=e.toLowerCase(),r=n.toUpperCase(),i=Jc.get(n),a=Kc.get(n),o=qc.get(n);return[...r].length===1&&t.add(r),o&&t.add(o),i&&t.add(i),t.add(n),a&&t.add(a),[...t]}var Gc=new Map(`C Other
|
|
60
|
+
Cc Control cntrl
|
|
61
|
+
Cf Format
|
|
62
|
+
Cn Unassigned
|
|
63
|
+
Co Private_Use
|
|
64
|
+
Cs Surrogate
|
|
65
|
+
L Letter
|
|
66
|
+
LC Cased_Letter
|
|
67
|
+
Ll Lowercase_Letter
|
|
68
|
+
Lm Modifier_Letter
|
|
69
|
+
Lo Other_Letter
|
|
70
|
+
Lt Titlecase_Letter
|
|
71
|
+
Lu Uppercase_Letter
|
|
72
|
+
M Mark Combining_Mark
|
|
73
|
+
Mc Spacing_Mark
|
|
74
|
+
Me Enclosing_Mark
|
|
75
|
+
Mn Nonspacing_Mark
|
|
76
|
+
N Number
|
|
77
|
+
Nd Decimal_Number digit
|
|
78
|
+
Nl Letter_Number
|
|
79
|
+
No Other_Number
|
|
80
|
+
P Punctuation punct
|
|
81
|
+
Pc Connector_Punctuation
|
|
82
|
+
Pd Dash_Punctuation
|
|
83
|
+
Pe Close_Punctuation
|
|
84
|
+
Pf Final_Punctuation
|
|
85
|
+
Pi Initial_Punctuation
|
|
86
|
+
Po Other_Punctuation
|
|
87
|
+
Ps Open_Punctuation
|
|
88
|
+
S Symbol
|
|
89
|
+
Sc Currency_Symbol
|
|
90
|
+
Sk Modifier_Symbol
|
|
91
|
+
Sm Math_Symbol
|
|
92
|
+
So Other_Symbol
|
|
93
|
+
Z Separator
|
|
94
|
+
Zl Line_Separator
|
|
95
|
+
Zp Paragraph_Separator
|
|
96
|
+
Zs Space_Separator
|
|
97
|
+
ASCII
|
|
98
|
+
ASCII_Hex_Digit AHex
|
|
99
|
+
Alphabetic Alpha
|
|
100
|
+
Any
|
|
101
|
+
Assigned
|
|
102
|
+
Bidi_Control Bidi_C
|
|
103
|
+
Bidi_Mirrored Bidi_M
|
|
104
|
+
Case_Ignorable CI
|
|
105
|
+
Cased
|
|
106
|
+
Changes_When_Casefolded CWCF
|
|
107
|
+
Changes_When_Casemapped CWCM
|
|
108
|
+
Changes_When_Lowercased CWL
|
|
109
|
+
Changes_When_NFKC_Casefolded CWKCF
|
|
110
|
+
Changes_When_Titlecased CWT
|
|
111
|
+
Changes_When_Uppercased CWU
|
|
112
|
+
Dash
|
|
113
|
+
Default_Ignorable_Code_Point DI
|
|
114
|
+
Deprecated Dep
|
|
115
|
+
Diacritic Dia
|
|
116
|
+
Emoji
|
|
117
|
+
Emoji_Component EComp
|
|
118
|
+
Emoji_Modifier EMod
|
|
119
|
+
Emoji_Modifier_Base EBase
|
|
120
|
+
Emoji_Presentation EPres
|
|
121
|
+
Extended_Pictographic ExtPict
|
|
122
|
+
Extender Ext
|
|
123
|
+
Grapheme_Base Gr_Base
|
|
124
|
+
Grapheme_Extend Gr_Ext
|
|
125
|
+
Hex_Digit Hex
|
|
126
|
+
IDS_Binary_Operator IDSB
|
|
127
|
+
IDS_Trinary_Operator IDST
|
|
128
|
+
ID_Continue IDC
|
|
129
|
+
ID_Start IDS
|
|
130
|
+
Ideographic Ideo
|
|
131
|
+
Join_Control Join_C
|
|
132
|
+
Logical_Order_Exception LOE
|
|
133
|
+
Lowercase Lower
|
|
134
|
+
Math
|
|
135
|
+
Noncharacter_Code_Point NChar
|
|
136
|
+
Pattern_Syntax Pat_Syn
|
|
137
|
+
Pattern_White_Space Pat_WS
|
|
138
|
+
Quotation_Mark QMark
|
|
139
|
+
Radical
|
|
140
|
+
Regional_Indicator RI
|
|
141
|
+
Sentence_Terminal STerm
|
|
142
|
+
Soft_Dotted SD
|
|
143
|
+
Terminal_Punctuation Term
|
|
144
|
+
Unified_Ideograph UIdeo
|
|
145
|
+
Uppercase Upper
|
|
146
|
+
Variation_Selector VS
|
|
147
|
+
White_Space space
|
|
148
|
+
XID_Continue XIDC
|
|
149
|
+
XID_Start XIDS`.split(/\s/).map(e=>[nc(e),e])),Kc=new Map([[`s`,Z(383)],[Z(383),`s`]]),qc=new Map([[Z(223),Z(7838)],[Z(107),Z(8490)],[Z(229),Z(8491)],[Z(969),Z(8486)]]),Jc=new Map([Zc(453),Zc(456),Zc(459),Zc(498),...Qc(8072,8079),...Qc(8088,8095),...Qc(8104,8111),Zc(8124),Zc(8140),Zc(8188)]),Yc=new Map([[`alnum`,Q`[\p{Alpha}\p{Nd}]`],[`alpha`,Q`\p{Alpha}`],[`ascii`,Q`\p{ASCII}`],[`blank`,Q`[\p{Zs}\t]`],[`cntrl`,Q`\p{Cc}`],[`digit`,Q`\p{Nd}`],[`graph`,Q`[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]`],[`lower`,Q`\p{Lower}`],[`print`,Q`[[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],[`punct`,Q`[\p{P}\p{S}]`],[`space`,Q`\p{space}`],[`upper`,Q`\p{Upper}`],[`word`,Q`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],[`xdigit`,Q`\p{AHex}`]]);function Xc(e,t){let n=[];for(let r=e;r<=t;r++)n.push(r);return n}function Zc(e){let t=Z(e);return[t.toLowerCase(),t]}function Qc(e,t){return Xc(e,t).map(e=>Zc(e))}var $c=new Set([`Lower`,`Lowercase`,`Upper`,`Uppercase`,`Ll`,`Lowercase_Letter`,`Lt`,`Titlecase_Letter`,`Lu`,`Uppercase_Letter`]);function el(e,t){let n={accuracy:`default`,asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:`ES2025`,...t};il(e);let r={accuracy:n.accuracy,asciiWordBoundaries:n.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:Ic(n.bestEffortTarget,`ES2024`),passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:e.flags.digitIsAscii,spaceIsAscii:e.flags.spaceIsAscii,wordIsAscii:e.flags.wordIsAscii};ac(e,tl,r);let i={dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},a={currentFlags:i,prevFlags:null,globalFlags:i,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:r.subroutineRefMap};return ac(e,nl,a),ac(e,rl,{groupsByName:a.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:a.reffedNodesByReferencer}),e._originMap=a.groupOriginByCopy,e._strategy=r.strategy,e}var tl={AbsenceFunction({node:e,parent:t,replaceWith:n}){let{body:r,kind:i}=e;if(i===`repeater`){let e=Vs();e.body[0].body.push(Hs({negate:!0,body:r}),Js(`Any`));let i=Vs();i.body[0].body.push(Gs(`greedy`,0,1/0,e)),n($(i,t),{traverse:!0})}else throw Error(`Unsupported absence function "(?~|"`)},Alternative:{enter({node:e,parent:t,key:n},{flagDirectivesByAlt:r}){let i=e.body.filter(e=>e.kind===`flags`);for(let e=n+1;e<t.body.length;e++){let n=t.body[e];Fc(r,n,[]).push(...i)}},exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){let n=dl(t.get(e));if(n){let t=Vs({flags:n});t.body[0].body=e.body,e.body=[$(t,e)]}}}},Assertion({node:e,parent:t,key:n,container:r,root:i,remove:a,replaceWith:o},s){let{kind:c,negate:l}=e,{asciiWordBoundaries:u,avoidSubclass:d,supportedGNodes:f,wordIsAscii:p}=s;if(c===`text_segment_boundary`)throw Error(`Unsupported text segment boundary "\\${l?`Y`:`y`}"`);if(c===`line_end`)o($(Hs({body:[js({body:[Ms(`string_end`)]}),js({body:[Fs(10)]})]}),t));else if(c===`line_start`)o($(bl(Q`(?<=\A|\n(?!\z))`,{skipLookbehindValidation:!0}),t));else if(c===`search_start`)if(f.has(e))i.flags.sticky=!0,a();else{let e=r[n-1];if(e&&_l(e))o($(Hs({negate:!0}),t));else if(d)throw Error(Q`Uses "\G" in a way that requires a subclass`);else o(Sl(Ms(`string_start`),t)),s.strategy=`clip_search`}else if(!(c===`string_end`||c===`string_start`))if(c===`string_end_newline`)o($(bl(Q`(?=\n?\z)`),t));else if(c===`word_boundary`){if(!p&&!u){let e=`(?:(?<=${Uc})(?!${Uc})|(?<!${Uc})(?=${Uc}))`,n=`(?:(?<=${Uc})(?=${Uc})|(?<!${Uc})(?!${Uc}))`;o($(bl(l?n:e),t))}}else throw Error(`Unexpected assertion kind "${c}"`)},Backreference({node:e},{jsGroupNameMap:t}){let{ref:n}=e;typeof n==`string`&&!yl(n)&&(n=ul(n,t),e.ref=n)},CapturingGroup({node:e},{jsGroupNameMap:t,subroutineRefMap:n}){let{name:r}=e;r&&!yl(r)&&(r=ul(r,t),e.name=r),n.set(e.number,e),r&&n.set(r,e)},CharacterClassRange({node:e,parent:t,replaceWith:n}){t.kind===`intersection`&&n($(Is({body:[e]}),t),{traverse:!0})},CharacterSet({node:e,parent:t,replaceWith:n},{accuracy:r,minTargetEs2024:i,digitIsAscii:a,spaceIsAscii:o,wordIsAscii:s}){let{kind:c,negate:l,value:u}=e;if(a&&(c===`digit`||u===`digit`)){n(Sl(Rs(`digit`,{negate:l}),t));return}if(o&&(c===`space`||u===`space`)){n($(xl(bl(Vc),l),t));return}if(s&&(c===`word`||u===`word`)){n(Sl(Rs(`word`,{negate:l}),t));return}if(c===`any`)n(Sl(Js(`Any`),t));else if(c===`digit`)n(Sl(Js(`Nd`,{negate:l}),t));else if(c!==`dot`)if(c===`text_segment`){if(r===`strict`)throw Error(Q`Use of "\X" requires non-strict accuracy`);let e=`\\p{Emoji}(?:\\p{EMod}|\\uFE0F\\u20E3?|[\\x{E0020}-\\x{E007E}]+\\x{E007F})?`,a=Q`\p{RI}{2}|${e}(?:\u200D${e})*`;n($(bl(Q`(?>\r\n|${i?Q`\p{RGI_Emoji}`:a}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}),t))}else if(c===`hex`)n(Sl(Js(`AHex`,{negate:l}),t));else if(c===`newline`)n($(bl(l?`[^
|
|
150
|
+
]`:`(?>\r
|
|
151
|
+
?|[
|
|
152
|
+
\v\f
\u2028\u2029])`),t));else if(c===`posix`)if(!i&&(u===`graph`||u===`print`)){if(r===`strict`)throw Error(`POSIX class "${u}" requires min target ES2024 or non-strict accuracy`);let e={graph:`!-~`,print:` -~`}[u];l&&(e=`\0-${Z(e.codePointAt(0)-1)}${Z(e.codePointAt(2)+1)}-\u{10FFFF}`),n($(bl(`[${e}]`),t))}else n($(xl(bl(Yc.get(u)),l),t));else if(c===`property`)Gc.has(nc(u))||(e.key=`sc`);else if(c===`space`)n(Sl(Js(`space`,{negate:l}),t));else if(c===`word`)n($(xl(bl(Uc),l),t));else throw Error(`Unexpected character set kind "${c}"`)},Directive({node:e,parent:t,root:n,remove:r,replaceWith:i,removeAllPrevSiblings:a,removeAllNextSiblings:o}){let{kind:s,flags:c}=e;if(s===`flags`)if(!c.enable&&!c.disable)r();else{let e=Vs({flags:c});e.body[0].body=o(),i($(e,t),{traverse:!0})}else if(s===`keep`){let e=n.body[0],r=n.body.length===1&&vs(e,{type:`Group`})&&e.body[0].body.length===1?e.body[0]:n;if(t.parent!==r||r.body.length>1)throw Error(Q`Uses "\K" in a way that's unsupported`);let o=Hs({behind:!0});o.body[0].body=a(),i($(o,t))}else throw Error(`Unexpected directive kind "${s}"`)},Flags({node:e,parent:t}){if(e.posixIsAscii)throw Error(`Unsupported flag "P"`);if(e.textSegmentMode===`word`)throw Error(`Unsupported flag "y{w}"`);[`digitIsAscii`,`extended`,`posixIsAscii`,`spaceIsAscii`,`wordIsAscii`,`textSegmentMode`].forEach(t=>delete e[t]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),t.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;let{enable:t,disable:n}=e.flags;t?.extended&&delete t.extended,n?.extended&&delete n.extended,t?.dotAll&&n?.dotAll&&delete t.dotAll,t?.ignoreCase&&n?.ignoreCase&&delete t.ignoreCase,t&&!Object.keys(t).length&&delete e.flags.enable,n&&!Object.keys(n).length&&delete e.flags.disable,!e.flags.enable&&!e.flags.disable&&delete e.flags},LookaroundAssertion({node:e},t){let{kind:n}=e;n===`lookbehind`&&(t.passedLookbehind=!0)},NamedCallout({node:e,parent:t,replaceWith:n}){let{kind:r}=e;if(r===`fail`)n($(Hs({negate:!0}),t));else throw Error(`Unsupported named callout "(*${r.toUpperCase()}"`)},Quantifier({node:e}){if(e.body.type===`Quantifier`){let t=Vs();t.body[0].body.push(e.body),e.body=$(t,e)}},Regex:{enter({node:e},{supportedGNodes:t}){let n=[],r=!1,i=!1;for(let t of e.body)if(t.body.length===1&&t.body[0].kind===`search_start`)t.body.pop();else{let e=ml(t.body);e?(r=!0,Array.isArray(e)?n.push(...e):n.push(e)):i=!0}r&&!i&&n.forEach(e=>t.add(e))},exit(e,{accuracy:t,passedLookbehind:n,strategy:r}){if(t===`strict`&&n&&r)throw Error(Q`Uses "\G" in a way that requires non-strict accuracy`)}},Subroutine({node:e},{jsGroupNameMap:t}){let{ref:n}=e;typeof n==`string`&&!yl(n)&&(n=ul(n,t),e.ref=n)}},nl={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:n}){let{orphan:r,ref:i}=e;r||n.set(e,[...t.get(i).map(({node:e})=>e)])},CapturingGroup:{enter({node:e,parent:t,replaceWith:n,skip:r},{groupOriginByCopy:i,groupsByName:a,multiplexCapturesToLeftByRef:o,openRefs:s,reffedNodesByReferencer:c}){let l=i.get(e);if(l&&s.has(e.number)){let r=Sl(cl(e.number),t);c.set(r,s.get(e.number)),n(r);return}s.set(e.number,e),o.set(e.number,[]),e.name&&Fc(o,e.name,[]);let u=o.get(e.name??e.number);for(let t=0;t<u.length;t++){let n=u[t];if(l===n.node||l&&l===n.origin||e===n.origin){u.splice(t,1);break}}if(o.get(e.number).push({node:e,origin:l}),e.name&&o.get(e.name).push({node:e,origin:l}),e.name){let t=Fc(a,e.name,new Map),n=!1;if(l)n=!0;else for(let e of t.values())if(!e.hasDuplicateNameToRemove){n=!0;break}a.get(e.name).set(e,{node:e,hasDuplicateNameToRemove:n})}},exit({node:e},{openRefs:t}){t.get(e.number)===e&&t.delete(e.number)}},Group:{enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=Pc(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Subroutine({node:e,parent:t,replaceWith:n},r){let{isRecursive:i,ref:a}=e;if(i){let n=t;for(;(n=n.parent)&&!(n.type===`CapturingGroup`&&(n.name===a||n.number===a)););r.reffedNodesByReferencer.set(e,n);return}let o=r.subroutineRefMap.get(a),s=a===0,c=s?cl(0):sl(o,r.groupOriginByCopy,null),l=c;if(!s){let e=dl(ll(o,e=>e.type===`Group`&&!!e.flags)),t=e?Pc(r.globalFlags,e):r.globalFlags;al(t,r.currentFlags)||(l=Vs({flags:fl(t)}),l.body[0].body.push(c))}n($(l,t),{traverse:!s})}},rl={Backreference({node:e,parent:t,replaceWith:n},r){if(e.orphan){r.highestOrphanBackref=Math.max(r.highestOrphanBackref,e.ref);return}let i=r.reffedNodesByReferencer.get(e).filter(t=>ol(t,e));i.length?i.length>1?n($(Vs({atomic:!0,body:i.reverse().map(e=>js({body:[Ns(e.number)]}))}),t)):e.ref=i[0].number:n($(Hs({negate:!0}),t))},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,e.name&&t.groupsByName.get(e.name).get(e).hasDuplicateNameToRemove&&delete e.name},Regex:{exit({node:e},t){let n=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let t=0;t<n;t++){let t=Ps();e.body.at(-1).body.push(t)}}},Subroutine({node:e},t){!e.isRecursive||e.ref===0||(e.ref=t.reffedNodesByReferencer.get(e).number)}};function il(e){ac(e,{"*"({node:e,parent:t}){e.parent=t}})}function al(e,t){return e.dotAll===t.dotAll&&e.ignoreCase===t.ignoreCase}function ol(e,t){let n=t;do{if(n.type===`Regex`)return!1;if(n.type===`Alternative`)continue;if(n===e)return!1;let t=pl(n.parent);for(let r of t){if(r===n)break;if(r===e||hl(r,e))return!0}}while(n=n.parent);throw Error(`Unexpected path`)}function sl(e,t,n,r){let i=Array.isArray(e)?[]:{};for(let[a,o]of Object.entries(e))a===`parent`?i.parent=Array.isArray(n)?r:n:o&&typeof o==`object`?i[a]=sl(o,t,i,n):(a===`type`&&o===`CapturingGroup`&&t.set(i,t.get(e)??e),i[a]=o);return i}function cl(e){let t=qs(e);return t.isRecursive=!0,t}function ll(e,t){let n=[];for(;e=e.parent;)(!t||t(e))&&n.push(e);return n}function ul(e,t){if(t.has(e))return t.get(e);let n=`$${t.size}_${e.replace(/^[^$_\p{IDS}]|[^$\u200C\u200D\p{IDC}]/gu,`_`)}`;return t.set(e,n),n}function dl(e){let t=[`dotAll`,`ignoreCase`],n={enable:{},disable:{}};return e.forEach(({flags:e})=>{t.forEach(t=>{e.enable?.[t]&&(delete n.disable[t],n.enable[t]=!0),e.disable?.[t]&&(n.disable[t]=!0)})}),Object.keys(n.enable).length||delete n.enable,Object.keys(n.disable).length||delete n.disable,n.enable||n.disable?n:null}function fl({dotAll:e,ignoreCase:t}){let n={};return(e||t)&&(n.enable={},e&&(n.enable.dotAll=!0),t&&(n.enable.ignoreCase=!0)),(!e||!t)&&(n.disable={},!e&&(n.disable.dotAll=!0),!t&&(n.disable.ignoreCase=!0)),n}function pl(e){if(!e)throw Error(`Node expected`);let{body:t}=e;return Array.isArray(t)?t:t?[t]:null}function ml(e){let t=e.find(e=>e.kind===`search_start`||vl(e,{negate:!1})||!gl(e));if(!t)return null;if(t.kind===`search_start`)return t;if(t.type===`LookaroundAssertion`)return t.body[0].body[0];if(t.type===`CapturingGroup`||t.type===`Group`){let e=[];for(let n of t.body){let t=ml(n.body);if(!t)return null;Array.isArray(t)?e.push(...t):e.push(t)}return e}return null}function hl(e,t){let n=pl(e)??[];for(let e of n)if(e===t||hl(e,t))return!0;return!1}function gl({type:e}){return e===`Assertion`||e===`Directive`||e===`LookaroundAssertion`}function _l(e){let t=[`Character`,`CharacterClass`,`CharacterSet`];return t.includes(e.type)||e.type===`Quantifier`&&e.min&&t.includes(e.body.type)}function vl(e,t){let n={negate:null,...t};return e.type===`LookaroundAssertion`&&(n.negate===null||e.negate===n.negate)&&e.body.length===1&&vs(e.body[0],{type:`Assertion`,kind:`search_start`})}function yl(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function bl(e,t){let n=xs(e,{...t,unicodePropertyMap:Gc}).body;return n.length>1||n[0].body.length>1?Vs({body:n}):n[0].body[0]}function xl(e,t){return e.negate=t,e}function Sl(e,t){return e.parent=t,e}function $(e,t){return il(e),e.parent=t,e}function Cl(e,t){let n=Bc(t),r=Ic(n.target,`ES2024`),i=Ic(n.target,`ES2025`),a=n.rules.recursionLimit;if(!Number.isInteger(a)||a<2||a>20)throw Error(`Invalid recursionLimit; use 2-20`);let o=null,s=null;if(!i){let t=[e.flags.ignoreCase];ac(e,wl,{getCurrentModI:()=>t.at(-1),popModI(){t.pop()},pushModI(e){t.push(e)},setHasCasedChar(){t.at(-1)?o=!0:s=!0}})}let c={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||o)&&!s)},l=e,u={accuracy:n.accuracy,appliedGlobalFlags:c,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:l,originMap:e._originMap,recursionLimit:a,useAppliedIgnoreCase:!!(!i&&o&&s),useFlagMods:i,useFlagV:r,verbose:n.verbose};function d(e){return u.lastNode=l,l=e,Lc(Tl[e.type],`Unexpected node type "${e.type}"`)(e,u,d)}let f={pattern:e.body.map(d).join(`|`),flags:d(e.flags),options:{...e.options}};return r||(delete f.options.force.v,f.options.disable.v=!0,f.options.unicodeSetsPlugin=null),f._captureTransfers=new Map,f._hiddenCaptures=[],u.captureMap.forEach((e,t)=>{e.hidden&&f._hiddenCaptures.push(t),e.transferTo&&Fc(f._captureTransfers,e.transferTo,[]).push(t)}),f}var wl={"*":{enter({node:e},t){if(Ll(e)){let n=t.getCurrentModI();t.pushModI(e.flags?Pc({ignoreCase:n},e.flags).ignoreCase:n)}},exit({node:e},t){Ll(e)&&t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){jl(Z(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},n){t(),Ml(e,{firstOnly:!0}).length&&n.setHasCasedChar()},CharacterSet({node:e},t){e.kind===`property`&&$c.has(e.value)&&t.setHasCasedChar()}},Tl={Alternative({body:e},t,n){return e.map(n).join(``)},Assertion({kind:e,negate:t}){if(e===`string_end`)return`$`;if(e===`string_start`)return`^`;if(e===`word_boundary`)return t?Q`\B`:Q`\b`;throw Error(`Unexpected assertion kind "${e}"`)},Backreference({ref:e},t){if(typeof e!=`number`)throw Error(`Unexpected named backref in transformed AST`);if(!t.useFlagMods&&t.accuracy===`strict`&&t.currentFlags.ignoreCase&&!t.captureMap.get(e).ignoreCase)throw Error(`Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy`);return`\\`+e},CapturingGroup(e,t,n){let{body:r,name:i,number:a}=e,o={ignoreCase:t.currentFlags.ignoreCase},s=t.originMap.get(e);return s&&(o.hidden=!0,a>s.number&&(o.transferTo=s.number)),t.captureMap.set(a,o),`(${i?`?<${i}>`:``}${r.map(n).join(`|`)})`},Character({value:e},t){let n=Z(e),r=Nl(e,{escDigit:t.lastNode.type===`Backreference`,inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(r!==n)return r;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&jl(n)){let e=Wc(n);return t.inCharClass?e.join(``):e.length>1?`[${e.join(``)}]`:e[0]}return n},CharacterClass(e,t,n){let{kind:r,negate:i,parent:a}=e,{body:o}=e;if(r===`intersection`&&!t.useFlagV)throw Error(`Use of character class intersection requires min target ES2024`);Mc.bugFlagVLiteralHyphenIsRange&&t.useFlagV&&o.some(zl)&&(o=[Fs(45),...o.filter(e=>!zl(e))]);let s=()=>`[${i?`^`:``}${o.map(n).join(r===`intersection`?`&&`:``)}]`;if(!t.inCharClass){if((!t.useFlagV||Mc.bugNestedClassIgnoresNegation)&&!i){let t=o.filter(e=>e.type===`CharacterClass`&&e.kind===`union`&&e.negate);if(t.length){let r=Vs(),i=r.body[0];return r.parent=a,i.parent=r,o=o.filter(e=>!t.includes(e)),e.body=o,o.length?(e.parent=i,i.body.push(e)):r.body.pop(),t.forEach(e=>{let t=js({body:[e]});e.parent=t,t.parent=r,r.body.push(t)}),n(r)}}t.inCharClass=!0;let r=s();return t.inCharClass=!1,r}let c=o[0];if(r===`union`&&!i&&c&&((!t.useFlagV||!t.verbose)&&a.kind===`union`&&!(Mc.bugFlagVLiteralHyphenIsRange&&t.useFlagV)||!t.verbose&&a.kind===`intersection`&&o.length===1&&c.type!==`CharacterClassRange`))return o.map(n).join(``);if(!t.useFlagV&&a.type===`CharacterClass`)throw Error(`Uses nested character class in a way that requires min target ES2024`);return s()},CharacterClassRange(e,t){let n=e.min.value,r=e.max.value,i={escDigit:!1,inCharClass:!0,useFlagV:t.useFlagV},a=Nl(n,i),o=Nl(r,i),s=new Set;return t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&Pl(Ml(e)).forEach(e=>{s.add(Array.isArray(e)?`${Nl(e[0],i)}-${Nl(e[1],i)}`:Nl(e,i))}),`${a}-${o}${[...s].join(``)}`},CharacterSet({kind:e,negate:t,value:n,key:r},i){if(e===`dot`)return i.currentFlags.dotAll?i.appliedGlobalFlags.dotAll||i.useFlagMods?`.`:`[^]`:Q`[^\n]`;if(e===`digit`)return t?Q`\D`:Q`\d`;if(e===`property`){if(i.useAppliedIgnoreCase&&i.currentFlags.ignoreCase&&$c.has(n))throw Error(`Unicode property "${n}" can't be case-insensitive when other chars have specific case`);return`${t?Q`\P`:Q`\p`}{${r?`${r}=`:``}${n}}`}if(e===`word`)return t?Q`\W`:Q`\w`;throw Error(`Unexpected character set kind "${e}"`)},Flags(e,t){return(t.appliedGlobalFlags.ignoreCase?`i`:``)+(e.dotAll?`s`:``)+(e.sticky?`y`:``)},Group({atomic:e,body:t,flags:n,parent:r},i,a){let o=i.currentFlags;n&&(i.currentFlags=Pc(o,n));let s=t.map(a).join(`|`),c=!i.verbose&&t.length===1&&r.type!==`Quantifier`&&!e&&(!i.useFlagMods||!n)?s:`(?${Fl(e,n,i.useFlagMods)}${s})`;return i.currentFlags=o,c},LookaroundAssertion({body:e,kind:t,negate:n},r,i){return`(?${`${t===`lookahead`?``:`<`}${n?`!`:`=`}`}${e.map(i).join(`|`)})`},Quantifier(e,t,n){return n(e.body)+Il(e)},Subroutine({isRecursive:e,ref:t},n){if(!e)throw Error(`Unexpected non-recursive subroutine in transformed AST`);let r=n.recursionLimit;return t===0?`(?R=${r})`:Q`\g<${t}&R=${r}>`}},El=new Set([`$`,`(`,`)`,`*`,`+`,`.`,`?`,`[`,`\\`,`]`,`^`,`{`,`|`,`}`]),Dl=new Set([`-`,`\\`,`]`,`^`,`[`]),Ol=new Set("()-/[\\]^{|}!#$%&*+,.:;<=>?@`~".split(``)),kl=new Map([[9,Q`\t`],[10,Q`\n`],[11,Q`\v`],[12,Q`\f`],[13,Q`\r`],[8232,Q`\u2028`],[8233,Q`\u2029`],[65279,Q`\uFEFF`]]),Al=/^\p{Cased}$/u;function jl(e){return Al.test(e)}function Ml(e,t){let n=!!t?.firstOnly,r=e.min.value,i=e.max.value,a=[];if(r<65&&(i===65535||i>=131071)||r===65536&&i>=131071)return a;for(let e=r;e<=i;e++){let t=Z(e);if(!jl(t))continue;let o=Wc(t).filter(e=>{let t=e.codePointAt(0);return t<r||t>i});if(o.length&&(a.push(...o),n))break}return a}function Nl(e,{escDigit:t,inCharClass:n,useFlagV:r}){if(kl.has(e))return kl.get(e);if(e<32||e>126&&e<160||e>262143||t&&Rl(e))return e>255?`\\u{${e.toString(16).toUpperCase()}}`:`\\x${e.toString(16).toUpperCase().padStart(2,`0`)}`;let i=n?r?Ol:Dl:El,a=Z(e);return(i.has(a)?`\\`:``)+a}function Pl(e){let t=e.map(e=>e.codePointAt(0)).sort((e,t)=>e-t),n=[],r=null;for(let e=0;e<t.length;e++)t[e+1]===t[e]+1?r??=t[e]:r===null?n.push(t[e]):(n.push([r,t[e]]),r=null);return n}function Fl(e,t,n){if(e)return`>`;let r=``;if(t&&n){let{enable:e,disable:n}=t;r=(e?.ignoreCase?`i`:``)+(e?.dotAll?`s`:``)+(n?`-`:``)+(n?.ignoreCase?`i`:``)+(n?.dotAll?`s`:``)}return`${r}:`}function Il({kind:e,max:t,min:n}){let r;return r=!n&&t===1?`?`:!n&&t===1/0?`*`:n===1&&t===1/0?`+`:n===t?`{${n}}`:`{${n},${t===1/0?``:t}}`,r+{greedy:``,lazy:`?`,possessive:`+`}[e]}function Ll({type:e}){return e===`CapturingGroup`||e===`Group`||e===`LookaroundAssertion`}function Rl(e){return e>47&&e<58}function zl({type:e,value:t}){return e===`Character`&&t===45}var Bl=class e extends RegExp{#e=new Map;#t=null;#n;#r=null;#i=null;rawOptions={};get source(){return this.#n||`(?:)`}constructor(t,n,r){let i=!!r?.lazyCompile;if(t instanceof RegExp){if(r)throw Error(`Cannot provide options when copying a regexp`);let i=t;super(i,n),this.#n=i.source,i instanceof e&&(this.#e=i.#e,this.#r=i.#r,this.#i=i.#i,this.rawOptions=i.rawOptions)}else{let e={hiddenCaptures:[],strategy:null,transfers:[],...r};super(i?``:t,n),this.#n=t,this.#e=Hl(e.hiddenCaptures,e.transfers),this.#i=e.strategy,this.rawOptions=r??{}}i||(this.#t=this)}exec(t){if(!this.#t){let{lazyCompile:t,...n}=this.rawOptions;this.#t=new e(this.#n,this.flags,n)}let n=this.global||this.sticky,r=this.lastIndex;if(this.#i===`clip_search`&&n&&r){this.lastIndex=0;let e=this.#a(t.slice(r));return e&&(Vl(e,r,t,this.hasIndices),this.lastIndex+=r),e}return this.#a(t)}#a(e){this.#t.lastIndex=this.lastIndex;let t=super.exec.call(this.#t,e);if(this.lastIndex=this.#t.lastIndex,!t||!this.#e.size)return t;let n=[...t];t.length=1;let r;this.hasIndices&&(r=[...t.indices],t.indices.length=1);let i=[0];for(let e=1;e<n.length;e++){let{hidden:a,transferTo:o}=this.#e.get(e)??{};if(a?i.push(null):(i.push(t.length),t.push(n[e]),this.hasIndices&&t.indices.push(r[e])),o&&n[e]!==void 0){let a=i[o];if(!a)throw Error(`Invalid capture transfer to "${a}"`);if(t[a]=n[e],this.hasIndices&&(t.indices[a]=r[e]),t.groups){this.#r||=Ul(this.source);let i=this.#r.get(o);i&&(t.groups[i]=n[e],this.hasIndices&&(t.indices.groups[i]=r[e]))}}}return t}};function Vl(e,t,n,r){if(e.index+=t,e.input=n,r){let n=e.indices;for(let e=0;e<n.length;e++){let r=n[e];r&&(n[e]=[r[0]+t,r[1]+t])}let r=n.groups;r&&Object.keys(r).forEach(e=>{let n=r[e];n&&(r[e]=[n[0]+t,n[1]+t])})}}function Hl(e,t){let n=new Map;for(let t of e)n.set(t,{hidden:!0});for(let[e,r]of t)for(let t of r)Fc(n,t,{}).transferTo=e;return n}function Ul(e){let t=/(?<capture>\((?:\?<(?![=!])(?<name>[^>]+)>|(?!\?)))|\\?./gsu,n=new Map,r=0,i=0,a;for(;a=t.exec(e);){let{0:e,groups:{capture:t,name:o}}=a;e===`[`?r++:r?e===`]`&&r--:t&&(i++,o&&n.set(i,o))}return n}function Wl(e,t){let n=Gl(e,t);return n.options?new Bl(n.pattern,n.flags,n.options):new RegExp(n.pattern,n.flags)}function Gl(e,t){let n=Bc(t),r=el(xs(e,{flags:n.flags,normalizeUnknownPropertyNames:!0,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline},skipBackrefValidation:n.rules.allowOrphanBackrefs,unicodePropertyMap:Gc}),{accuracy:n.accuracy,asciiWordBoundaries:n.rules.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,bestEffortTarget:n.target}),i=Cl(r,n),a=Ec(i.pattern,{captureTransfers:i._captureTransfers,hiddenCaptures:i._hiddenCaptures,mode:`external`}),o=_c(bc(a.pattern).pattern,{captureTransfers:a.captureTransfers,hiddenCaptures:a.hiddenCaptures}),s={pattern:o.pattern,flags:`${n.hasIndices?`d`:``}${n.global?`g`:``}${i.flags}${i.options.disable.v?`u`:`v`}`};if(n.avoidSubclass){if(n.lazyCompileLength!==1/0)throw Error(`Lazy compilation requires subclass`)}else{let e=o.hiddenCaptures.sort((e,t)=>e-t),t=Array.from(o.captureTransfers),i=r._strategy,a=s.pattern.length>=n.lazyCompileLength;(e.length||t.length||i||a)&&(s.options={...e.length&&{hiddenCaptures:e},...t.length&&{transfers:t},...i&&{strategy:i},...a&&{lazyCompile:a}})}return s}function Kl(e,t){return Wl(e,{global:!0,hasIndices:!0,lazyCompileLength:3e3,rules:{allowOrphanBackrefs:!0,asciiWordBoundaries:!0,captureGroup:!0,recursionLimit:5,singleline:!0},...t})}function ql(e={}){let t={target:`auto`,cache:new Map,...e};return t.regexConstructor||=e=>Kl(e,{target:t.target}),{createScanner(e){return new Oo(e,t)},createString(e){return{content:e}}}}var Jl=``+new URL(`c-BNa-DeUl.json`,import.meta.url).href,Yl=``+new URL(`cpp-B-T4NRoH.json`,import.meta.url).href,Xl=``+new URL(`csharp-BbxHChhA.json`,import.meta.url).href,Zl=``+new URL(`css-CWCxuwmz.json`,import.meta.url).href,Ql=``+new URL(`diff-B-2N89g8.json`,import.meta.url).href,$l=``+new URL(`docker-DWTvYW26.json`,import.meta.url).href,eu=``+new URL(`go-B2hyYeNg.json`,import.meta.url).href,tu=``+new URL(`graphql-Z6Id2aNO.json`,import.meta.url).href,nu=``+new URL(`html-BtzvlIfu.json`,import.meta.url).href,ru=``+new URL(`ini-Bn3Twap1.json`,import.meta.url).href,iu=``+new URL(`java-C7t2dwLO.json`,import.meta.url).href,au=``+new URL(`javascript-DuC2v0C0.json`,import.meta.url).href,ou=``+new URL(`json-CwdkWeV5.json`,import.meta.url).href,su=``+new URL(`jsonc-MYWDbTU3.json`,import.meta.url).href,cu=``+new URL(`jsx-Cn8EZuIC.json`,import.meta.url).href,lu=``+new URL(`kotlin-CFNOz1gw.json`,import.meta.url).href,uu=``+new URL(`make-BVnlFCcl.json`,import.meta.url).href,du=``+new URL(`markdown-B4Xk2WM_.json`,import.meta.url).href,fu=``+new URL(`php-CAQzQmmI.json`,import.meta.url).href,pu=``+new URL(`python-CYQee8m4.json`,import.meta.url).href,mu=``+new URL(`ruby-D7R58tus.json`,import.meta.url).href,hu=``+new URL(`rust-BFBbFiei.json`,import.meta.url).href,gu=``+new URL(`scss-TQRhBkPG.json`,import.meta.url).href,_u=``+new URL(`shellscript-DieAkC4W.json`,import.meta.url).href,vu=``+new URL(`sql-Bxd030LV.json`,import.meta.url).href,yu=``+new URL(`toml-ChrKGzsV.json`,import.meta.url).href,bu=``+new URL(`tsx-D2e90MFw.json`,import.meta.url).href,xu=``+new URL(`typescript-DonXQ_n1.json`,import.meta.url).href,Su=``+new URL(`xml-B17r2RXF.json`,import.meta.url).href,Cu={typescript:xu,tsx:bu,javascript:au,jsx:cu,json:ou,jsonc:su,yaml:``+new URL(`yaml-CKn4h1zy.json`,import.meta.url).href,toml:yu,markdown:du,html:nu,css:Zl,scss:gu,shellscript:_u,docker:$l,python:pu,go:eu,rust:hu,java:iu,kotlin:lu,c:Jl,cpp:Yl,csharp:Xl,ruby:mu,php:fu,sql:vu,graphql:tu,xml:Su,make:uu,ini:ru,diff:Ql};function wu(e){return[{scope:[`comment`,`punctuation.definition.comment`],settings:{foreground:e.comment}},{scope:[`constant`,`constant.numeric`,`constant.language`,`support.constant`,`variable.other.constant`,`variable.language`],settings:{foreground:e.constant}},{scope:[`entity`,`entity.name.function`,`support.function`,`meta.function-call`],settings:{foreground:e.entity}},{scope:[`keyword`,`storage`,`storage.type`,`keyword.operator`,`punctuation.definition.keyword`],settings:{foreground:e.keyword}},{scope:[`string`,`string.quoted`,`punctuation.definition.string`,`support.type.property-name`],settings:{foreground:e.string}},{scope:[`variable`,`support.type`,`support.class`,`entity.name.type`,`entity.name.class`],settings:{foreground:e.variable}},{scope:[`entity.name.tag`,`entity.other.attribute-name`,`support.type.property-name.json`],settings:{foreground:e.tag}},{scope:[`markup.heading`,`entity.name.section`],settings:{foreground:e.heading}},{scope:[`markup.inserted`,`markup.inserted.diff`],settings:{foreground:e.inserted}},{scope:[`markup.deleted`,`markup.deleted.diff`],settings:{foreground:e.deleted}}]}var Tu={name:`reviews-dark`,type:`dark`,colors:{"editor.foreground":`#e6edf3`,"editor.background":`#0d1117`},tokenColors:wu({comment:`#8b949e`,constant:`#79c0ff`,entity:`#d2a8ff`,keyword:`#ff7b72`,string:`#a5d6ff`,variable:`#ffa657`,tag:`#7ee787`,heading:`#79c0ff`,inserted:`#7ee787`,deleted:`#ffa198`})},Eu={name:`reviews-light`,type:`light`,colors:{"editor.foreground":`#1f2328`,"editor.background":`#ffffff`},tokenColors:wu({comment:`#6e7781`,constant:`#0550ae`,entity:`#8250df`,keyword:`#cf222e`,string:`#0a3069`,variable:`#953800`,tag:`#116329`,heading:`#0550ae`,inserted:`#116329`,deleted:`#82071e`})},Du=null,Ou=new Map,ku={dark:`reviews-dark`,light:`reviews-light`};function Au(){return Du??=Eo({themes:[Tu,Eu],langs:[],engine:ql()}),Du}function ju(e,t){return fetch(Cu[t]).then(e=>{if(!e.ok)throw Error(`${e.status}`);return e.json()}).then(async n=>(await e.loadLanguage({...n,name:t}),!0)).catch(()=>!1)}async function Mu(e){let t=await Au(),n=Ou.get(e);return n===void 0&&(n=ju(t,e),Ou.set(e,n)),await n?t:null}function Nu(e,t,n,r,i){let{tokens:a}=e.codeToTokens(t.join(`
|
|
153
|
+
`),{lang:n,theme:ku[r],grammarState:i});return{rows:a.map(e=>e.map(e=>({text:e.content,color:e.color??``,at:e.offset}))),state:a.length===0?i:e.getLastGrammarState(a)}}function Pu(e,t){let n=`${e??``}\n${t}`,[r,i]=(0,m.useState)({of:n,hunks:new Map,failure:null}),a=(0,m.useRef)(new Set),o=(0,m.useRef)(new Set),s=(0,m.useRef)([]);r.of!==n&&(s.current=[...a.current],a.current=new Set,o.current=new Set,i({of:n,hunks:new Map,failure:null}));let c=(0,m.useCallback)(r=>{if(e===null||r<0)return;let s=Math.floor(r/50);if(a.current.has(s))return;let c=a.current,l=o.current;c.add(s),k(e,s*50,50).then(e=>{if(e.fingerprint!==t){c.delete(s);return}i(t=>{if(t.of!==n)return t;let r=new Map(t.hunks);for(let t of e.hunks)r.set(t.id,t);return{...t,hunks:r}})}).catch(e=>{c.delete(s),l.add(s),i(t=>t.of===n?{...t,failure:e.message}:t)})},[e,t,n]);(0,m.useEffect)(()=>{c(0);for(let e of s.current)c(e*50);s.current=[]},[c]);let l=(0,m.useCallback)(()=>{let e=[...o.current];o.current=new Set,i(e=>e.of===n?{...e,failure:null}:e);for(let t of e)c(t*50)},[c,n]);return{hunks:r.hunks,need:c,failure:r.failure,retry:l}}function Fu(e,t){let n=(0,m.useRef)(t);n.current=t;let r=(0,m.useRef)(e);r.current=e;let i=(0,m.useRef)(e=>e.dataset[r.current.attribute]),a=(0,m.useRef)(null);return a.current===null&&typeof IntersectionObserver==`function`&&(a.current=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=i.current(t.target);e!==void 0&&n.current(e)}},{rootMargin:e.margin})),(0,m.useEffect)(()=>{let e=a.current;return()=>e?.disconnect()},[]),(0,m.useCallback)(e=>{if(e===null)return;let t=a.current;if(t===null){let t=i.current(e);r.current.atMount&&t!==void 0&&n.current(t);return}return t.observe(e),()=>t.unobserve(e)},[])}function Iu(e){return Fu({attribute:`index`,margin:`400px 0px`,atMount:!0},t=>{let n=Number(t);Number.isFinite(n)&&e(n)})}function Lu(e){return Fu({attribute:`unread`,margin:`0px`,atMount:!1},e)}function Ru(e){let t={old:[],new:[]},n=[];for(let r of e)r.on!==`new`&&t.old.push(r.text),r.on!==`old`&&t.new.push(r.text),n.push(r.on===`old`?{side:`old`,at:t.old.length-1}:{side:`new`,at:t.new.length-1});return{lines:t,from:n}}function zu(e,t,n,r){let[i,a]=(0,m.useState)({of:``,rows:[]}),[o,s]=(0,m.useState)(!1),c=ht(e),l=(0,m.useRef)(t);l.current=t;let u=Fu({attribute:`hunk`,margin:`200px 0px`,atMount:!0},()=>s(!0));(0,m.useEffect)(()=>{if(c===null||!o)return;let e=l.current,t=Ru(e),i=[`old`,`new`].filter(e=>t.from.some(t=>t.side===e)),s=!0,u;return a({of:n,rows:e.map(()=>null)}),Mu(c).then(e=>{if(!s||e===null)return;let o=(l,d,f)=>{if(!s)return;let p=i[l];if(p===void 0)return;let m=t.lines[p],h=Nu(e,m.slice(d,d+100),c,r,f);a(e=>{if(e.of!==n)return e;let r=[...e.rows];return t.from.forEach((e,t)=>{if(e.side!==p)return;let n=h.rows[e.at-d];e.at>=d&&n!==void 0&&(r[t]=n)}),{of:n,rows:r}}),d+100<m.length?u=setTimeout(()=>o(l,d+100,h.state),0):l+1<i.length&&(u=setTimeout(()=>o(l+1,0,void 0),0))};o(0,0,void 0)}),()=>{s=!1,clearTimeout(u)}},[c,n,r,o]);let d=i.of===n?i.rows:[];return(0,m.useMemo)(()=>({ref:u,rows:d}),[u,d])}var Bu=[5,10],Vu=1e5,Hu=[`undo`,`explain`,`talk`,`comment`];function Uu(e){let t=e.lastIndexOf(`/`);return t===-1?{dir:``,name:e}:{dir:e.slice(0,t+1),name:e.slice(t+1)}}var Wu=2;function Gu(e){let t=e.filter(e=>e.lines!==null&&e.lines.length>0).map(e=>({kind:e.kind,first:Math.min(...e.lines),last:Math.max(...e.lines)})).sort((e,t)=>e.first-t.first||t.last-e.last),n=Array.from({length:Wu},()=>0),r=new Map;for(let e of t){let t=n.findIndex(t=>t<e.first),i=t===-1?0:t;n[i]=Math.max(n[i]??0,e.last);for(let t=e.first;t<=e.last;t+=1){let n=r.get(t)??[];n.push({lane:i,kind:e.kind,first:t===e.first,last:t===e.last}),r.set(t,n)}}return r}function Ku(e){return(0,j.jsx)(`span`,{style:{color:e.color},children:e.text},e.at)}function qu(e){return e===`info`?``:` is-${e}`}function Ju(e,t){let n=Math.min(e,t),r=Math.max(e,t);return Array.from({length:r-n+1},(e,t)=>n+t)}function Yu(e){let{file:t,hunk:n}=e,[r,i]=(0,m.useState)([]),[a,o]=(0,m.useState)([]),[s,c]=(0,m.useState)(null),[l,u]=(0,m.useState)(null),[d,f]=(0,m.useState)(!1),[p,h]=(0,m.useState)(e.draft?.act??null),[g,_]=(0,m.useState)(()=>{let t=e.draft?.lines??[];return t.length===0?null:{from:Math.min(...t),to:Math.max(...t)}}),v=e.draft;(0,m.useEffect)(()=>{v===null||p!==null||(h(v.act),_(v.lines.length===0?null:{from:Math.min(...v.lines),to:Math.max(...v.lines)}))},[v,p]);let y=e.entry.id,b=(0,m.useRef)(n?.header??``);n!==null&&b.current!==n.header&&(b.current=n.header,i([]),o([]),c(null));let x=t?.newBlob??null,S=g===null?[]:Ju(g.from,g.to),C=n===null?[]:[...r.map(e=>({text:e,on:`both`})),...n.lines.map(e=>({text:e.text,on:e.kind===`add`?`new`:e.kind===`remove`?`old`:`both`})),...a.map(e=>({text:e,on:`both`}))],w=n===null?``:`${y}|${n.header}|${r.length}|${a.length}`,T=zu(n?.path??``,C,w,e.theme),E=(0,m.useCallback)(async(t,s)=>{if(n===null||x===null)return;let l=n.newStart-r.length,d=n.newStart+n.newLines-1+a.length,f=t===`above`?Math.max(1,l-(s??l-1)):d+1,p=t===`above`?l-f:s??Vu;if(!(p<=0))try{let n=await te(e.slug,x,f,p);if(c(n.total),n.lines.length===0)return;t===`above`?i(e=>[...n.lines,...e]):o(e=>[...e,...n.lines])}catch(e){u(e instanceof Error?e.message:`that context could not be read`)}},[r.length,a.length,x,n,e.slug]),D=e=>{_(t=>t===null?{from:e,to:e}:Ju(t.from,t.to).includes(e)?null:{from:t.from,to:e})};if(n===null)return(0,j.jsxs)(`section`,{className:`rv-hunk rv-waiting`,"data-index":e.index,"data-hunk":y,"data-key":e.cardKey,ref:e.watch,"aria-hidden":`true`,children:[(0,j.jsx)(`span`,{className:`rv-skel is-narrow`}),(0,j.jsx)(`span`,{className:`rv-skel is-wide`}),(0,j.jsx)(`span`,{className:`rv-skel is-half`})]});let{dir:O,name:ee}=Uu(n.path),k=n.header===``?`the whole file`:n.header,ne=Gu(e.notes),re=e.notes.some(e=>e.lines===null||e.lines.length===0),ie=qu(Le(e.notes.map(e=>e.kind))),ae=re?` is-note${ie}`:``;if(e.seen&&!e.open)return(0,j.jsxs)(`div`,{className:`rv-folded${re||ne.size>0?` is-note${ie}`:``}`,"data-hunk":y,"data-key":e.cardKey,children:[(0,j.jsx)(`span`,{className:`rv-ok`,"aria-hidden":`true`,children:`✓`}),(0,j.jsx)(`span`,{children:`Seen`}),(0,j.jsx)(`span`,{className:`rv-mono`,children:n.path}),(0,j.jsx)(`span`,{className:`rv-mono`,children:k}),(0,j.jsx)(`span`,{className:`rv-grow`}),e.changed&&(0,j.jsx)(`span`,{className:`rv-changed`,children:`Changed since you saw it`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-link`,onClick:()=>e.onOpen(!0),children:`Expand`})]});let A=n.newStart-r.length,oe=n.newStart+n.newLines-1+a.length,se=x!==null&&A>1,ce=x!==null&&(s===null||oe<s),le=(e,t,n)=>{let r=e.kind===`add`?` is-add`:e.kind===`remove`?` is-del`:``,i=T.rows[n]??null,a=e.newLine===null?[]:ne.get(e.newLine)??[],o=a.length===0?``:` is-note${qu(Le(a.map(e=>e.kind)))}`,s=e.newLine!==null&&S.includes(e.newLine);return(0,j.jsxs)(`div`,{className:`rv-l${r}${o}${s?` is-picked`:``}`,"data-line":e.newLine??void 0,children:[a.map(e=>(0,j.jsx)(`i`,{className:`rv-nl is-lane${e.lane}${qu(e.kind)}${e.first?` is-first`:``}${e.last?` is-last`:``}`,"aria-hidden":`true`},e.lane)),(0,j.jsx)(`span`,{className:`rv-ln`,children:e.oldLine??``}),e.newLine===null?(0,j.jsx)(`span`,{className:`rv-ln`}):(0,j.jsx)(`button`,{type:`button`,className:`rv-ln`,"aria-label":`Line ${e.newLine}`,"aria-pressed":s,onClick:()=>D(e.newLine),children:e.newLine}),(0,j.jsxs)(`span`,{children:[e.kind===`add`?`+`:e.kind===`remove`?`-`:` `,i===null?e.text:i.map(e=>Ku(e))]})]},t)},M=(e,t,r)=>le({kind:`context`,text:e,oldLine:t-(n.newStart-n.oldStart),newLine:t,noNewline:!1},`c${t}`,r),ue=e=>(0,j.jsxs)(`div`,{className:`rv-expand`,children:[Bu.map(t=>(0,j.jsxs)(`button`,{type:`button`,className:`rv-link`,onClick:()=>void E(e,t),children:[`+`,t]},t)),(0,j.jsx)(`button`,{type:`button`,className:`rv-link`,onClick:()=>void E(e,null),children:`whole file`})]});return(0,j.jsxs)(`section`,{className:`rv-hunk${e.readable?``:` is-dim`}`,"data-hunk":y,"data-key":e.cardKey,"data-index":e.index,ref:T.ref,children:[(0,j.jsxs)(`div`,{className:`rv-fh${ae}`,children:[(0,j.jsxs)(`span`,{className:`rv-path rv-mono`,children:[O!==``&&(0,j.jsx)(`i`,{children:O}),ee]}),(0,j.jsx)(`span`,{className:`rv-mono`,children:k}),e.also.length>0&&(0,j.jsxs)(`span`,{className:`rv-also`,children:[`also in `,e.also.map(e=>`"${e}"`).join(`, `)]}),(0,j.jsx)(`span`,{className:`rv-grow`}),e.changed&&(0,j.jsx)(`span`,{className:`rv-changed`,children:`Changed since you saw it`}),(r.length>0||a.length>0)&&(0,j.jsx)(`button`,{type:`button`,className:`rv-link`,onClick:()=>{i([]),o([])},children:`Back to the hunk`}),e.readable&&!e.fileRead&&(0,j.jsx)(`button`,{type:`button`,className:`rv-link`,disabled:e.busy,onClick:e.onFile,children:`Mark file Seen`}),e.seen&&e.readable?(0,j.jsxs)(`button`,{type:`button`,className:`rv-state is-seen`,disabled:e.busy,"aria-label":`Mark as not seen`,onClick:()=>e.onSeen(!1),children:[(0,j.jsx)(`span`,{className:`rv-state-on`,children:`✓ Seen`}),(0,j.jsx)(`span`,{className:`rv-state-off`,children:`Not seen`})]}):(0,j.jsx)(`span`,{className:`rv-state${e.seen?` is-seen`:``}`,children:e.seen?`✓ Seen`:`pending`}),e.seen&&(0,j.jsx)(`button`,{type:`button`,className:`rv-icon`,"aria-label":`Fold this hunk`,onClick:()=>e.onOpen(!1),children:(0,j.jsx)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,children:(0,j.jsx)(`path`,{d:`M3 10l5-5 5 5`})})})]}),(0,j.jsxs)(`div`,{className:`rv-diff`,children:[se&&ue(`above`),r.map((e,t)=>M(e,A+t,t)),(0,j.jsx)(`div`,{className:`rv-hd`,children:k}),n.lines.map((e,t)=>le(e,`${e.oldLine??`x`}-${e.newLine??`x`}`,r.length+t)),a.map((e,t)=>M(e,n.newStart+n.newLines+t,r.length+n.lines.length+t)),ce&&ue(`below`)]}),l!==null&&(0,j.jsx)(`p`,{className:`rv-trouble`,children:l}),p!==null&&(0,j.jsx)(ct,{act:p,lines:S,text:e.draft?.text??``,busy:e.busy,onChange:t=>e.onDraft({act:p,lines:S,text:t}),onWrite:t=>{h(null),_(null),e.onDraft(null),e.onFeedback(p,t,S)},onCancel:()=>{h(null),e.onDraft(null)}}),e.threads.map(t=>(0,j.jsx)(ft,{thread:t,readable:e.readable,agentHolds:e.agentHolds,busy:e.busy,onClose:()=>e.onCloseThread(t.id),watch:e.watchReply},t.id)),e.readable&&(0,j.jsxs)(j.Fragment,{children:[d&&(0,j.jsxs)(`div`,{className:`rv-fabmenu`,children:[(0,j.jsx)(`button`,{type:`button`,className:`rv-seen`,disabled:e.busy,onClick:()=>{f(!1),e.onSeen(!e.seen)},children:e.seen?`Not seen`:`✓ Seen`}),(0,j.jsx)(`hr`,{}),Hu.map(t=>t===`talk`?(0,j.jsx)(`button`,{type:`button`,disabled:e.busy,onClick:()=>{f(!1),e.onTalk(S),_(null)},children:`Let's talk`},t):(0,j.jsx)(`button`,{type:`button`,disabled:e.busy,onClick:()=>{f(!1),h(t),e.onDraft({act:t,lines:S,text:``})},children:be[t]},t))]}),(0,j.jsx)(`button`,{type:`button`,className:`rv-fab`,"aria-expanded":d,"aria-label":`Act on ${n.path} ${k}`,onClick:()=>f(e=>!e),children:d?`×`:`+`})]})]})}var Xu={binary:`binary`,generated:`generated`,oversize:`too large to read as a diff`,text:`whole file`};function Zu(e,t){let[n,r]=(0,m.useState)({old:null,new:null}),i=t?.oldBlob??null,a=t?.newBlob??null;return(0,m.useEffect)(()=>{let t=!0,n=t=>t===null?Promise.resolve(null):A(`${e}/${me}/${t}`);return Promise.all([n(i),n(a)]).then(([e,n])=>{t&&r({old:e,new:n})}),()=>{t=!1}},[e,i,a]),n}function Qu(e){let{file:t,hunk:n}=e,i=Zu(e.slug,t),a=n?.path??t?.path??e.entry.id,o=Math.max(t?.oldBytes??0,t?.newBytes??0)>d,s=l(a)===`image`&&!o;if(n===null)return(0,j.jsx)(`div`,{className:`rv-nt-row rv-waiting`,"data-index":e.index,"data-hunk":e.entry.id,"data-key":e.cardKey,ref:e.watch,children:(0,j.jsx)(`span`,{className:`rv-mono`,children:a})});let c=t===null||t.added===0&&t.deleted===0?``:`+${t.added} -${t.deleted}`,u=[t?.oldBytes??null,t?.newBytes??null].filter(e=>e!==null).map(r).join(` → `);return(0,j.jsxs)(`div`,{className:`rv-nt-row`,"data-hunk":e.entry.id,"data-key":e.cardKey,"data-index":e.index,children:[(0,j.jsxs)(`div`,{className:`rv-nt-head`,children:[(0,j.jsx)(`span`,{className:`rv-mono`,children:a}),(0,j.jsxs)(`span`,{className:`rv-facts`,children:[Xu[t?.category??`text`],c===``?``:` - ${c}`,u===``?``:` - ${u}`,o?` - too large to show`:``]}),(0,j.jsx)(`span`,{className:`rv-grow`}),e.seen?(0,j.jsx)(`span`,{className:`rv-ok`,children:`✓ Seen`}):e.readable&&(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.busy,onClick:()=>e.onSeen(!0),children:`Mark Seen`})]}),s&&(0,j.jsxs)(`div`,{className:`rv-nt-images`,children:[i.old!==null&&(0,j.jsxs)(`figure`,{children:[(0,j.jsx)(`img`,{src:i.old,alt:`${a} before`}),(0,j.jsx)(`figcaption`,{children:`before`})]}),i.new!==null&&(0,j.jsxs)(`figure`,{children:[(0,j.jsx)(`img`,{src:i.new,alt:`${a} after`}),(0,j.jsx)(`figcaption`,{children:`after`})]})]})]})}function $u(e,t){let n=new Set(e.hunks),r=[],i=new Set;for(let a of t){if(a.id===e.id)continue;let t=a.hunks.filter(e=>n.has(e));if(t.length!==0){r.push(a.name);for(let e of t)i.add(e)}}return{count:i.size,groups:r}}function ed(e,t){return e?.querySelector(`[data-hunk="${Ne(t)}"]`)??null}function td(e){let t=e.review,n=t.baseline,r=(0,m.useRef)(null),i=(0,m.useRef)(null),a=(0,m.useRef)(!1),o=n?.entries??[],s=(0,m.useMemo)(()=>new Map(o.map((e,t)=>[e.id,t])),[o]),c=n?.files??[],l=new Set(t.marks.marks.map(e=>e.hunk)),u=new Set(t.marks.changed.map(e=>e.hunk)),d=new Map;for(let e of t.metadata.groups)for(let t of e.hunks)d.set(t,[...d.get(t)??[],e.name]);let f=new Map;for(let e of t.metadata.notes)f.set(e.hunk,[...f.get(e.hunk)??[],e]);let p=new Map;for(let e of t.threads.threads){let t=`${e.kind}\n${e.anchor}`;p.set(t,[...p.get(t)??[],e])}let h=t.state.side===`you`&&t.state.status===`reviewing`,g=t.state.side===`agent`,_=Ke(t),v=_.filter(t=>e.group===null||t.id===e.group),y=e.at,b=e.need,x=e.hunks,S=e.onLanded;(0,m.useEffect)(()=>{if(y===null)return;let e=s.get(y);if(e!==void 0&&b(e),!x.has(y))return;let t=ed(r.current,y);typeof t?.scrollIntoView==`function`&&t.scrollIntoView({block:`center`}),S()},[y,b,s,x,S]);let C=e.startAt;(0,m.useEffect)(()=>{a.current||x.size===0||r.current===null||(a.current=!0,r.current.scrollTop=C)},[x.size,C]);let w=t.threads.threads.filter(e=>e.open&&e.label===`hunk-removed`),T=[],E=v.map(n=>{let r=new Set(n.hunks),i=o.filter(e=>r.has(e.id)),a=i.filter(e=>c[e.file]?.category===`text`),m=i.filter(e=>c[e.file]?.category!==`text`),v=(r,i)=>{let a=`${n.id}-${r.id}`,m=l.has(r.id),_=`hunk:${r.id}`,v=e.opened.has(r.id)||e.drafts.has(_);T.push({key:a,id:r.id,folded:m&&!v});let y={cardKey:a,slug:t.slug,entry:r,file:c[r.file]??null,hunk:e.hunks.get(r.id)??null,seen:m,busy:e.busy,readable:h,agentHolds:g,onSeen:t=>e.onSeen(r.id,t),index:s.get(r.id)??0,watch:e.watch},b=()=>e.onBulk(`file`,c[r.file]?.key??``);return i?(0,j.jsx)(Qu,{...y},a):(0,j.jsx)(Yu,{...y,theme:e.theme,onFile:b,fileRead:o.every(e=>e.file!==r.file||l.has(e.id)),changed:u.has(r.id),also:(d.get(r.id)??[]).filter(e=>e!==n.name),open:v,onOpen:t=>e.onOpen(r.id,t),draft:e.drafts.get(_)??null,onDraft:t=>e.onDraft(_,t),notes:f.get(r.id)??[],threads:p.get(`hunk\n${r.id}`)??[],onFeedback:(t,n,i)=>e.onFeedback(t,r.id,n,i),onTalk:t=>e.onTalk(r.id,t),onCloseThread:e.onCloseThread,watchReply:e.watchReply},a)};return(0,j.jsxs)(`div`,{className:`rv-section`,children:[(0,j.jsx)(nd,{section:n,review:t,held:i,seen:l,readable:h,agentHolds:g,busy:e.busy,shared:$u(n,_),threads:p.get(`group\n${n.id}`)??[],draft:e.drafts.get(`group:${n.id}`)??null,onDraft:t=>e.onDraft(`group:${n.id}`,t),onBulk:e.onBulk,onGroupComment:e.onGroupComment,onCloseThread:e.onCloseThread,watchReply:e.watchReply}),a.map(e=>v(e,!1)),m.length>0&&(0,j.jsxs)(`details`,{className:`rv-nt`,children:[(0,j.jsxs)(`summary`,{children:[`Non-textual (`,m.length,`)`,(0,j.jsx)(`span`,{className:`rv-nt-names`,children:m.map(e=>c[e.file]?.path??``).join(`, `)})]}),m.map(e=>v(e,!0))]})]},n.id)});return(0,j.jsx)(`div`,{className:`rv-feed`,ref:r,onScroll:t=>e.onScroll(t.currentTarget.scrollTop),children:(0,j.jsxs)(`div`,{className:`rv-fgrid${e.notesShut?` is-shut`:``}`,ref:i,children:[(0,j.jsxs)(`div`,{className:`rv-fmain`,children:[E,e.group===null&&Array.from({length:e.coming},(e,t)=>`coming-${t}`).map(e=>(0,j.jsxs)(`section`,{className:`rv-gcard rv-waiting`,"aria-hidden":`true`,children:[(0,j.jsx)(`span`,{className:`rv-skel is-narrow`}),(0,j.jsx)(`span`,{className:`rv-skel is-wide`}),(0,j.jsx)(`span`,{className:`rv-skel is-half`})]},e)),e.group===null&&w.length>0&&(0,j.jsxs)(`section`,{className:`rv-gcard`,children:[(0,j.jsxs)(`div`,{className:`rv-gcard-top`,children:[(0,j.jsx)(`h3`,{children:`Hunks that are gone`}),(0,j.jsxs)(`span`,{className:`rv-facts`,children:[w.length,` thread`,w.length===1?``:`s`]})]}),(0,j.jsx)(`p`,{children:`The hunk each of these was about is no longer in the change. Close it once it is settled.`}),w.map(t=>(0,j.jsx)(ft,{thread:t,readable:h,agentHolds:g,busy:e.busy,onClose:()=>e.onCloseThread(t.id),watch:e.watchReply},t.id))]}),v.length===0&&e.coming===0&&w.length===0&&(0,j.jsx)(`p`,{className:`rv-facts`,children:t.baseline===null?`This review has no baseline to draw.`:`Nothing is grouped yet, and nothing is left to read.`}),e.footer]}),(0,j.jsx)(We,{notes:t.metadata.notes,drawn:T,dismissed:e.dismissed,elsewhere:e.elsewhere,readable:h,collapsed:e.notesShut,onCollapse:e.onNotesShut,onAsk:(t,n,r)=>e.onDraft(`hunk:${t}`,{act:`fix`,lines:n,text:r}),onTalk:e.onTalk,onDismiss:e.onDismiss,onGroup:e.onGroup,onGo:e.onGo,frame:i})]})})}function nd(e){let[t,n]=(0,m.useState)(e.draft!==null),r=e.section,i=e.held,a=i.filter(t=>e.seen.has(t.id)).length,o=new Set(i.map(e=>e.file)).size,s=new Set(r.hunks),c=e.review.threads.threads.filter(e=>e.open&&s.has(e.anchor)).length;return(0,j.jsxs)(`section`,{className:`rv-gcard${e.readable?``:` is-dim`}`,children:[(0,j.jsxs)(`div`,{className:`rv-gcard-top`,children:[(0,j.jsx)(`h3`,{children:r.name}),(0,j.jsxs)(`span`,{className:`rv-facts`,children:[i.length,` hunk`,i.length===1?``:`s`,` - `,o,` file`,o===1?``:`s`,` - `,a,` Seen`,c===0?``:` - ${c} thread${c===1?``:`s`}`,e.shared.count===0?``:` - ${e.shared.count} shared with ${e.shared.groups.join(`, `)}`]})]}),r.narrative!==``&&(0,j.jsx)(`p`,{children:r.narrative}),r.facts.length>0&&(0,j.jsx)(`ul`,{children:r.facts.map(e=>(0,j.jsx)(`li`,{children:e},e))}),(0,j.jsxs)(`div`,{className:`rv-gcard-acts`,children:[(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:!e.readable||e.busy||a===i.length,onClick:()=>e.onBulk(`group`,r.id),children:`Mark remaining as Seen`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:!e.readable||e.busy,onClick:()=>{n(!0),e.onDraft({act:`group-comment`,lines:[],text:``})},children:`Comment on group`})]}),t&&(0,j.jsx)(ct,{act:`group-comment`,lines:[],text:e.draft?.text??``,busy:e.busy,onChange:t=>e.onDraft({act:`group-comment`,lines:[],text:t}),onWrite:t=>{n(!1),e.onDraft(null),e.onGroupComment(r.id,t)},onCancel:()=>{n(!1),e.onDraft(null)}}),e.threads.map(t=>(0,j.jsx)(ft,{thread:t,readable:e.readable,agentHolds:e.agentHolds,busy:e.busy,onClose:()=>e.onCloseThread(t.id),watch:e.watchReply},t.id))]})}function rd(e){let[t,n]=(0,m.useState)(!1),r=e.items.length;return r===0?null:(0,j.jsxs)(`aside`,{className:`rv-send${t?` is-open`:``}${e.notesShut?` is-wide`:``}`,"aria-label":`Pending feedback`,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),children:[!t&&(0,j.jsxs)(`button`,{type:`button`,className:`rv-sendpill`,onClick:()=>n(!0),children:[`Send to agent`,(0,j.jsx)(`span`,{className:`rv-n`,children:r})]}),t&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`p`,{className:`rv-send-head`,children:`Pending feedback`}),e.items.map(t=>(0,j.jsxs)(`div`,{className:`rv-si`,children:[(0,j.jsx)(`b`,{children:be[t.act]}),(0,j.jsx)(`span`,{className:`rv-f`,children:e.whereOf(t)}),(0,j.jsx)(`span`,{className:`rv-q`,children:t.text}),(0,j.jsxs)(`span`,{className:`rv-si-ctl`,children:[(0,j.jsx)(`button`,{type:`button`,"aria-label":`Edit ${be[t.act]}`,disabled:!e.readable||e.busy,onClick:()=>e.onEdit(t),children:`✎`}),(0,j.jsx)(`button`,{type:`button`,"aria-label":`Remove ${be[t.act]}`,disabled:!e.readable||e.busy,onClick:()=>e.onRemove(t),children:`×`})]})]},t.id)),(0,j.jsxs)(`p`,{className:`rv-send-foot`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`rv-btn is-primary`,disabled:!e.readable||e.busy,onClick:e.onSend,children:[`Send to agent (`,r,`)`]}),(0,j.jsx)(`small`,{children:`The agent works while you wait, and this review turns read-only`})]})]})]})}var id=3e4;function ad(e,t){let[n,r]=(0,m.useState)(()=>t??new Date);return(0,m.useEffect)(()=>{if(t!==void 0||!e)return;let n=setInterval(()=>r(new Date),id);return()=>clearInterval(n)},[e,t]),t??n}function od(e,t){let n=(0,m.useRef)(t);n.current=t;let r=(0,m.useRef)(null),i=(0,m.useRef)(!1),a=(0,m.useCallback)(()=>{r.current=null,!(!i.current||e===null)&&(i.current=!1,ae(e,`place`,n.current()).catch(()=>{}))},[e]),o=(0,m.useCallback)(()=>{i.current=!0,r.current===null&&(r.current=setTimeout(a,500))},[a]);return(0,m.useEffect)(()=>()=>{r.current!==null&&clearTimeout(r.current),r.current=null,a()},[a]),o}function sd(e){return Array.from({length:e},(e,t)=>`waiting-${t}`)}function cd(e){let t=e.state;return t.status===`approved`||t.status===`archived`&&e.approval?.approved?{text:`Approved`,kind:`is-ended`}:t.status===`closed`||t.status===`archived`?{text:`Closed`,kind:`is-ended`}:t.side===`agent`?null:e.ready?{text:`Ready for approval`,kind:`is-ready`}:{text:`Awaits you`,kind:`is-you`}}function ld(e){let t=e.attention,n=[];return t.issues>0&&n.push({kind:`is-issue`,text:`${t.issues} issue${t.issues===1?``:`s`}`}),t.attention>0&&n.push({kind:`is-attention`,text:`${t.attention} attention`}),t.unreadReplies>0&&n.push({kind:`is-reply`,text:`${t.unreadReplies} unread ${t.unreadReplies===1?`reply`:`replies`}`}),t.waiting>0&&n.push({kind:`is-you`,text:`${t.waiting} wait${t.waiting===1?`s`:``} on you`}),t.changed>0&&n.push({kind:`is-changed`,text:`${t.changed} changed since seen`}),n}function ud(e,t){let n=e.filter(e=>t===null||t.has(e.hunk));return{issues:n.filter(e=>e.kind===`issue`).length,attention:n.filter(e=>e.kind===`attention`).length}}function dd(e,t,n,r,i){let a=e.findIndex(e=>e.id===t);if(t===null||a===-1)return null;let o=new Set(e[a]?.hunks??[]),s=n.filter(e=>!o.has(e.hunk)),c=ud(r,new Set(s.map(e=>e.hunk))),l=e=>e.kind===`issue`||e.kind===`attention`,u=null;for(let t=1;t<e.length&&u===null;t+=1){let n=e[(a+t)%e.length];if(n===void 0)continue;let o=new Set(n.hunks),s=new Set(r.filter(e=>l(e)&&o.has(e.hunk)).map(e=>e.hunk)),c=i.find(e=>s.has(e));c!==void 0&&(u={group:n.id,name:n.name,hunk:c})}return{count:s.length,issues:c.issues,attention:c.attention,next:u}}function fd(e){return e.issues===0&&e.attention===0?null:(0,j.jsxs)(`span`,{className:`rv-badge`,children:[e.issues>0&&(0,j.jsxs)(`span`,{className:`rv-badge-one is-issue`,children:[(0,j.jsx)(`i`,{"aria-hidden":`true`}),e.issues]}),e.attention>0&&(0,j.jsxs)(`span`,{className:`rv-badge-one is-attention`,children:[(0,j.jsx)(`i`,{"aria-hidden":`true`}),e.attention]})]})}function pd(e,t){let n=e.state,r=[_e(n.selection)],i=n.selection.kind===`last-commit`||n.selection.kind===`commit`,a=e.baseline?.commits[0]?.subject??``;return i&&a!==``&&r.push(a),n.filedBy===`terminal`&&r.push(`filed from the terminal ${De(n.created,t)}`),r.join(` - `)}function md(e,t){return`${(e===``?`Working on the review`:e).replace(/[.;\s]+$/,``)}${t===`prepare`?`; code changes are best avoided meanwhile`:``}.`}function hd(e,t){let n=new Date(e);return Number.isNaN(n.getTime())||n.toDateString()===t.toDateString()?``:n.toLocaleDateString([],{month:`short`,day:`numeric`})}function gd(e){let t=e.review,n=t.state,r=t.baseline,[i,a]=(0,m.useState)(!1),[o,s]=(0,m.useState)(!1),[c,l]=(0,m.useState)(t.place.group),[u,d]=(0,m.useState)(new Set(t.place.expanded)),[f,p]=(0,m.useState)(()=>new Map(t.place.drafts.map(e=>[e.anchor,e]))),[h,g]=(0,m.useState)(()=>{let e=t.place.drafts.find(e=>e.anchor.startsWith(`pending:`));return e===void 0?null:t.pending.items.find(t=>`pending:${t.id}`===e.anchor)??null}),_=n.side===`agent`&&n.status===`reviewing`,v=t.slug.startsWith(`${P}/`),y=ad(_,e.now),b=cd(t),x=ld(t),S=new Set(t.dismissals.items.map(e=>Ce(e.hunk,e.key))),C=t.metadata.notes.filter(e=>!S.has(Ce(e.hunk,e.key))),w=t.relation,T=w!==null&&w.relation===`out-of-sync`?w:null,E=w!==null&&w.relation===`merged`?w:null,D=(0,m.useRef)(t.place.scroll),O=Pu(t.slug,r?.fingerprint??``),ee=Iu(O.need),k=(0,m.useRef)(new Set),te=od(v?null:t.slug,()=>({scroll:D.current,expanded:[...u],group:c,read:[...k.current],drafts:[...f.values()]})),ne=(e,t)=>{p(n=>{let r=new Map(n);return t===null?r.delete(e):r.set(e,{anchor:e,...t}),r}),te()},re=Lu(e=>{k.current.has(e)||(k.current.add(e),te())}),ie=_&&Oe(n.agent.lastPostAt,y),ae=md(n.agent.activity,n.agent.act),A=t.metadata.groups,oe=n.agent.groups,se=sd(oe===null?0:Math.max(0,oe-A.length)),ce=Ge(n.side),le=new Set(t.marks.marks.map(e=>e.hunk)),M=dd(Ke(t),c,t.metadata.notes,C,(t.baseline?.entries??[]).map(e=>e.id)),ue=e=>{let t=ud(C,e===null?null:new Set(e));return(0,j.jsx)(fd,{issues:t.issues,attention:t.attention})},N=t.progress.total,F=N===0?0:Math.round(t.progress.seen/N*100),I=n.side===`you`&&n.status===`reviewing`,de=e=>{if(e.group!==null){let t=A.find(t=>t.id===e.group);return t===void 0?`the group`:t.name}let t=(r?.entries??[]).find(t=>t.id===e.hunk);if(t===void 0)return e.label===`hunk-removed`?`a hunk that is gone`:e.hunk??``;let n=r?.files[t.file]?.path??``,i=/^@@ (-\d+)/.exec(t.header);return i===null?n:`${n} @@ ${i[1]}`},L=e=>{l(e),te()},{onGroup:fe}=e;return(0,m.useEffect)(()=>fe(c),[c,fe]),(0,j.jsxs)(`div`,{className:`rv-screen`,children:[(0,j.jsxs)(`div`,{className:`rv-head`,children:[(0,j.jsx)(`h2`,{children:n.name}),(0,j.jsx)(`span`,{className:`rv-head-what`,children:pd(t,y)}),(0,j.jsx)(`span`,{className:`rv-grow`}),b!==null&&(0,j.jsx)(`span`,{className:`rv-chip ${b.kind}`,children:b.text})]}),t.approval!==null&&(0,j.jsx)(ut,{approval:t.approval,slug:t.slug,filed:v,busy:e.busy,onArchive:e.onArchive}),_&&(0,j.jsxs)(`div`,{className:`rv-agentbar`,children:[(0,j.jsx)(`b`,{children:`Awaits agent`}),(0,j.jsxs)(`span`,{className:`rv-say`,children:[ae,n.agent.lastPostAt!==null&&(0,j.jsxs)(j.Fragment,{children:[` Last post ${it(n.agent.lastPostAt)}, `,(0,j.jsx)(`span`,{className:ie?`rv-late`:void 0,children:De(n.agent.lastPostAt,y)}),`.`]})]}),(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small is-primary`,disabled:e.busy,onClick:e.onStop,children:`Stop the agent and review now`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small is-outline`,disabled:e.busy,onClick:e.onAsk,children:`Ask the agent to continue`})]}),!_&&T!==null&&(0,j.jsxs)(`div`,{className:`rv-banner`,children:[(0,j.jsx)(`b`,{children:`Out of sync`}),(0,j.jsx)(`span`,{children:`The tree is out of sync with the baseline.`}),(0,j.jsx)(`span`,{className:`rv-grow`}),(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.busy,onClick:e.onSync,children:`Sync the review`})]}),!_&&E!==null&&(0,j.jsxs)(`div`,{className:`rv-banner is-merged`,children:[(0,j.jsx)(`b`,{children:`Merged`}),(0,j.jsx)(`span`,{children:E.mergedAs===null?`This branch was merged.`:`This branch was merged as ${E.mergedAs}.`}),(0,j.jsx)(`span`,{className:`rv-grow`}),E.mergedAs!==null&&(0,j.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.busy,onClick:e.onFollow,children:`Follow the merge`})]}),t.error!==null&&(0,j.jsxs)(`div`,{className:`rv-banner`,children:[(0,j.jsx)(`b`,{children:`Not all there`}),(0,j.jsx)(`span`,{children:t.error}),I&&!t.ready&&(0,j.jsx)(rt,{busy:e.busy,onClose:e.onCloseReview})]}),(0,j.jsxs)(`div`,{className:`rv-pills`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`rv-pill`,"aria-pressed":c===null,onClick:()=>L(null),children:[`All groups`,ue(null)]}),A.map(e=>(0,j.jsxs)(`button`,{type:`button`,className:`rv-pill`,"aria-pressed":c===e.id,onClick:()=>L(e.id),children:[e.name,` `,e.hunks.filter(e=>le.has(e)).length,`/`,e.hunks.length,ue(e.hunks)]},e.id)),t.ungrouped.length>0&&(0,j.jsxs)(`button`,{type:`button`,className:`rv-pill`,"aria-pressed":c===`ungrouped`,onClick:()=>L(`ungrouped`),children:[ce,` `,t.ungrouped.length,ue(t.ungrouped)]}),se.map(e=>(0,j.jsx)(`span`,{className:`rv-pill is-waiting`,children:`loading`},e))]}),(0,j.jsxs)(`div`,{className:`rv-body`,children:[(0,j.jsx)(td,{review:t,group:c,hunks:O.hunks,need:O.need,watch:ee,watchReply:re,at:e.at??null,onLanded:e.onLanded,opened:u,onOpen:(e,t)=>{d(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r}),te()},drafts:f,onDraft:ne,busy:e.busy,onSeen:e.onSeen,onBulk:e.onBulk,onFeedback:e.onFeedback,onGroupComment:e.onGroupComment,onTalk:e.onTalk,onCloseThread:e.onCloseThread,notesShut:o,onNotesShut:s,dismissed:S,elsewhere:M,onDismiss:e.onDismiss,onGroup:L,onGo:e.onGo,startAt:t.place.scroll,theme:e.theme,onScroll:e=>{D.current=e,te()},coming:se.length,footer:I&&t.ready?(0,j.jsx)(st,{review:t,busy:e.busy,onApprove:e.onApprove,onClose:e.onCloseReview}):void 0}),(0,j.jsx)(rd,{items:t.pending.items,whereOf:de,readable:I,busy:e.busy,onEdit:e=>{g(e),ne(`pending:${e.id}`,{act:e.act,lines:[],text:e.text})},onRemove:n=>e.onPending(t.pending.items.filter(e=>e.id!==n.id)),onSend:e.onSend,notesShut:o})]}),h!==null&&(0,j.jsx)(`div`,{className:`rv-editing`,children:(0,j.jsx)(ct,{act:h.act,lines:[],text:f.get(`pending:${h.id}`)?.text??h.text,busy:e.busy,onChange:e=>ne(`pending:${h.id}`,{act:h.act,lines:[],text:e}),onWrite:n=>{let r=h;g(null),ne(`pending:${r.id}`,null),e.onPending(t.pending.items.map(e=>e.id===r.id?{...e,text:n}:e))},onCancel:()=>{ne(`pending:${h.id}`,null),g(null)}})}),O.failure!==null&&(0,j.jsxs)(`p`,{className:`notice notice-failure`,children:[O.failure,` `,(0,j.jsx)(`button`,{type:`button`,className:`rv-link`,onClick:O.retry,children:`Try again`})]}),i&&(0,j.jsx)(`div`,{className:`rv-log`,children:[...n.log].reverse().map(e=>(0,j.jsxs)(`p`,{children:[(0,j.jsxs)(`b`,{children:[hd(e.at,y),` `,it(e.at)]}),` `,e.said]},`${e.at}-${e.said}`))}),(0,j.jsxs)(`div`,{className:`rv-status`,children:[(0,j.jsxs)(`span`,{className:`rv-loops`,title:`Agent-human feedback loops`,children:[(0,j.jsxs)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,fill:`none`,stroke:`currentColor`,children:[(0,j.jsx)(`path`,{d:`M13 8a5 5 0 0 0-8.5-3.5M3 8a5 5 0 0 0 8.5 3.5`,strokeWidth:`1.5`,strokeLinecap:`round`}),(0,j.jsx)(`path`,{d:`M4.5 1.5v3h3M11.5 14.5v-3h-3`,strokeWidth:`1.5`,strokeLinecap:`round`})]}),t.loops]}),(0,j.jsx)(`span`,{className:`rv-prog`,children:(0,j.jsx)(`i`,{style:{width:`${F}%`}})}),(0,j.jsxs)(`span`,{children:[t.progress.seen,` of `,N,` Seen`]}),x.map(e=>(0,j.jsxs)(`span`,{className:`rv-fact ${e.kind}`,children:[(0,j.jsx)(`i`,{"aria-hidden":`true`}),e.text]},e.kind)),(0,j.jsx)(`span`,{className:`rv-grow`}),(0,j.jsxs)(`button`,{type:`button`,className:`rv-log-toggle`,"aria-expanded":i,onClick:()=>a(e=>!e),children:[(0,j.jsx)(`span`,{"aria-hidden":`true`,children:i?`▾`:`▸`}),`Activity (`,n.log.length,`)`]})]})]})}var _d={open:null,starting:!1,at:null,form:null};function vd(){let[e,t]=(0,m.useState)(null),[n,r]=(0,m.useState)(null),[i,o]=(0,m.useState)(null),[s,c]=(0,m.useState)(null),[l,d]=(0,m.useState)(!1),[f,p]=(0,m.useState)({options:[],notOffered:null}),[h,g]=(0,m.useState)(!1),[_,S]=(0,m.useState)(!1),[w,T]=(0,m.useState)(null),[E,D]=(0,m.useState)(null),[k,te]=(0,m.useState)(null),re=u({onSession:y,askTheme:C}),ie=(0,m.useRef)(new Map),A=(0,m.useRef)(null),oe=(0,m.useRef)(_d),se=(0,m.useRef)(null),[ce,le]=(0,m.useState)(0),M=(0,m.useCallback)(()=>{O().then(e=>{t(e),r(null)}).catch(e=>r(e.message))},[]),N=(0,m.useCallback)(e=>{if(e===null){c(null);return}ee(e).then(c).catch(e=>{c(null),T(e.message)})},[]);(0,m.useEffect)(M,[M]),(0,m.useEffect)(()=>N(i),[i,N]),(0,m.useEffect)(()=>v(()=>{M(),N(i)}),[i,M,N]),(0,m.useEffect)(()=>{e!==null&&x(e.awaitingYou,e.any)},[e]);let P=(0,m.useCallback)(async(e,t,n)=>{for(let t of e){let e=await b({event:t.event,detail:t.detail,path:t.path});e.ok||T(`No agent was told: ${e.error}`)}if(!t)return;let r=await b({event:`review`,detail:n});r.ok||T(`No agent was told: ${r.error}`)},[]),F=(0,m.useCallback)(async(e,t,n={})=>{S(!0),T(null);try{let r=await ae(e,t,n);r.review!==null&&(c(r.review),r.review.slug!==e&&o(r.review.slug),M(),await P(r.typed,r.command,r.review.state.name))}catch(e){T(e instanceof Error?e.message:`that act was refused`)}finally{S(!1)}},[M,P]),I=(0,m.useCallback)(()=>{g(!0),ne().then(p).catch(e=>T(e.message)).finally(()=>g(!1))},[]),de=(0,m.useCallback)(()=>{se.current=null,d(!0),o(null),T(null),I()},[I]);(0,m.useEffect)(()=>{oe.current={open:i,starting:l,at:E}},[i,l,E]);let L=(0,m.useCallback)(e=>{if(A.current===e)return;let t=oe.current,n=e===null?void 0:ie.current.get(e);if(A.current===null&&n===void 0){A.current=e;return}A.current!==null&&ie.current.set(A.current,{...t,form:se.current}),A.current=e;let r=n??_d;oe.current=r,se.current=r.form,o(r.open),d(r.starting),D(r.at),le(e=>e+1),T(null),r.starting&&I()},[I]);(0,m.useEffect)(()=>y(e=>L(e.sid)),[L]);let fe=(0,m.useCallback)(e=>{se.current=null,d(!1),o(e.slug),M(),P([],e.command,e.state.name)},[M,P]);if(e===null)return(0,j.jsx)(`p`,{className:`notice notice-failure`,children:n??`Waiting for the pane to hand over…`});let R=s!==null&&s.slug===i?s:null;return(0,j.jsxs)(`div`,{className:`workspace is-alone is-review`,children:[R===null?(0,j.jsx)(tt,{active:e.active,archived:e.archived,open:i,onOpen:e=>{d(!1),o(e)},starting:l,onStart:de,repository:e.repository,error:e.error}):(0,j.jsx)(Xe,{review:R,at:E,group:k,onPick:D,onBack:()=>{o(null),D(null)}}),(0,j.jsxs)(`div`,{className:`stage${R===null?``:` has-bar`}`,"data-theme":re.theme,children:[(0,j.jsx)(a,{theme:re.theme,kept:re.kept,onToggle:re.toggle}),w!==null&&(0,j.jsx)(`p`,{className:`notice notice-failure`,children:w}),l?(0,j.jsx)(ue,{offer:f,reading:h,onRefresh:I,draft:se.current,onDraft:e=>{se.current=e},onCancel:()=>{se.current=null,d(!1)},onStarted:fe},ce):R===null?(0,j.jsx)(`div`,{className:`doc`,children:(0,j.jsx)(`p`,{className:`notice`,children:i===null?`Nothing is open. Pick a review on the left.`:`Reading the review…`})}):(0,j.jsx)(gd,{review:R,at:E,busy:_,theme:re.theme,onStop:()=>void F(R.slug,`stop`),onGroup:te,onAsk:()=>void P([],!0,R.state.name),onSeen:(e,t)=>void F(R.slug,`mark`,t?{hunk:e}:{hunk:e,seen:!1}),onBulk:(e,t)=>void F(R.slug,`bulk`,{kind:e,id:t}),onFeedback:(e,t,n,r)=>void F(R.slug,`comment`,{hunk:t,kind:e,text:n,lines:r}),onGroupComment:(e,t)=>void F(R.slug,`group-comment`,{group:e,text:t}),onTalk:(e,t)=>void F(R.slug,`comment`,{hunk:e,kind:`talk`,text:``,lines:t}),onCloseThread:e=>void F(R.slug,`close-thread`,{thread:e}),onPending:e=>void F(R.slug,`pending`,{items:e}),onDismiss:(e,t,n)=>void F(R.slug,`dismiss`,{hunk:e,key:t,on:n}),onSend:()=>void F(R.slug,`send`),onSync:()=>void F(R.slug,`sync`),onFollow:()=>void F(R.slug,`follow`),onApprove:(e,t)=>void F(R.slug,`approve`,{name:e,signature:t}),onCloseReview:e=>void F(R.slug,`close`,{reason:e}),onArchive:()=>void F(R.slug,`archive`),onGo:D,onLanded:()=>D(null)},R.slug)]})]})}S();var yd=document.getElementById(`root`);yd&&(0,h.createRoot)(yd).render((0,j.jsx)(m.StrictMode,{children:(0,j.jsx)(vd,{})}));
|