flintmaker 0.0.0-stage → 0.2.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/README.md CHANGED
@@ -1,3 +1,65 @@
1
- # Temporary Holding Version
1
+ # flint — FlintMaker for your terminal
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ `flint` is an AI coding agent from [FlintMaker](https://flintmaker.com). It reads your project, edits files and runs commands — always showing you the diff or command first.
4
+
5
+ ```sh
6
+ npm install -g flintmaker
7
+ flint login # connect your FlintMaker account (opens the browser)
8
+ cd my-project
9
+ flint # interactive session
10
+ flint "add a dark mode toggle" # one task, then exit (plain output, fine for scripts)
11
+ ```
12
+
13
+ ```text
14
+ ╭────────────────────────────────────────────────────────────╮
15
+ │ ✦ FlintMaker flint v0.2.0 │
16
+ │ ▟█▙ you@example.com · Blaze · 1,200 credits left │
17
+ │ ▟███▙ model Standard · ~/code/my-app │
18
+ ╰────────────────────────────────────────────────────────────╯
19
+
20
+ ❯ fix the failing date test in @src/date.ts
21
+
22
+ ● Read src/date.ts (84 lines)
23
+ ● Edit src/date.ts
24
+ ┌ src/date.ts +2 -1
25
+ │ 41 - return d.getDay()
26
+ │ 41 + return d.getUTCDay()
27
+ └
28
+ ⎿ Updated · +2 -1
29
+ ● Run npm test
30
+ ⎿ ✓ 42 tests passed
31
+
32
+ ✳ Forging… (6s · 4 credits · esc to interrupt)
33
+ ```
34
+
35
+ **In a session**
36
+
37
+ - `enter` sends · `shift+enter`, `ctrl+j` or a trailing `\` adds a line · paste keeps blocks intact
38
+ - `@path` attaches a file (tab completes paths) · `↑/↓` history (kept in `~/.flintmaker/history`)
39
+ - `esc` interrupts the current step · `ctrl+c` twice exits
40
+ - `shift+tab` switches mode: **ask before edits** → **auto-accept edits** → **plan only (no changes)**
41
+ - `/help` `/model` `/mode` `/clear` `/compact` `/credits` `/init` `/login` `/logout` `/exit`
42
+ - `/init` writes `FLINT.md`, a short project memory flint reads at the start of every conversation
43
+ - flint can search the web and read docs pages (current versions, error messages) and cites the URLs. These run on FlintMaker's servers, never touch your machine, and cost 2 credits per search and 1 per page (at most 5 searches and 8 pages per message). Page text is treated as information, never as instructions.
44
+
45
+ **Safety**
46
+
47
+ - Every file change is shown as a full diff and needs your approval (1 = yes, 2 = yes for the rest of the session, 3 = no and say what to do instead).
48
+ - Commands run only after you approve them; chained or risky commands are always asked about.
49
+ - Secret files such as `.env` and private keys are never read, and nothing outside the project folder is touched.
50
+
51
+ **Windows**
52
+
53
+ - Works in PowerShell, Command Prompt (cmd) and Windows Terminal. `flintmaker` is an alias for `flint`.
54
+ - Commands run in `cmd.exe` by default; set `FLINT_SHELL=powershell` (or `pwsh`) to use PowerShell. flint tells the model which OS and shell you use, so it suggests commands that work there.
55
+ - `flint` is not recognized? Add `%APPDATA%\npm` to your PATH (Settings → Environment variables), then open a new terminal.
56
+ - PowerShell says running scripts is disabled? Run `Set-ExecutionPolicy -Scope CurrentUser RemoteSigned` once.
57
+ - Files keep their line endings (CRLF stays CRLF). In the old console window, symbols fall back to plain ASCII (`FLINT_ASCII=1` / `FLINT_UNICODE=1` to force).
58
+
59
+ **Updates**
60
+
61
+ flint checks for a new version once a day in the background and installs it when it was installed with `npm i -g` or the FlintMaker installer (never with sudo); restart to use it. `flint update` updates right away. Turn it off with `FLINT_NO_UPDATE=1` (it is also off when `CI` is set).
62
+
63
+ Uses credits from your FlintMaker plan — see [pricing](https://flintmaker.com/pricing). Respects `NO_COLOR`.
64
+
65
+ Made by PT Jiji Labs Digital · hello@jijilabsdigital.com
@@ -0,0 +1,23 @@
1
+ import{c as b,n as _}from"./chunk-K3ZZ2VJH.js";var S="Interrupted by the user before this finished.",h=class extends Error{},D={list_files:e=>String(e.path??"."),read_file:e=>`${e.path}${e.start_line?`:${e.start_line}-${e.end_line??""}`:""}`,search:e=>`/${e.pattern}/ ${e.path??""}`.trim(),write_file:e=>String(e.path),edit_file:e=>String(e.path),run_command:e=>String(e.command),web_search:e=>`"${e.query??""}"`,web_fetch:e=>String(e.url??"").replace(/^https?:\/\//,"").replace(/\/$/,"")},T=(e,n)=>typeof e=="object"?e.declined:n;async function L(e,n,t,r,i){switch(n){case"list_files":return e.listFiles(typeof t.path=="string"?t.path:".");case"read_file":return e.readFile(String(t.path),R(t.start_line),R(t.end_line));case"search":return e.search(String(t.pattern??""),typeof t.path=="string"?t.path:".");case"write_file":case"edit_file":{let s=await e.plan(n,t),o=await r.approveChange(s);return o!==!0?T(o,"The user declined this change. Ask what they want instead, or try a different approach."):i?.aborted?S:(await s.apply(),`${s.created?"Created":"Updated"} ${s.path}.`)}case"run_command":{let s=String(t.command??"").trim();if(!s)throw new Error("command is required");let o=await r.approveCommand(s);return o!==!0?T(o,"The user declined to run this command."):i?.aborted?S:e.runCommand(s,void 0,i)}default:throw new Error(`unknown tool ${n}`)}}var R=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function F(e){let n=structuredClone(e),t=n.map((r,i)=>({m:r,i})).filter(r=>r.m.role==="tool"&&(r.m.content?.length??0)>400);for(let{m:r}of t.slice(0,Math.max(1,Math.ceil(t.length/2))))r.role==="tool"&&(r.content=`${r.content.slice(0,300)}
2
+ [output trimmed to save context; read again if needed]`);return t.length===0&&n.length>4&&n.splice(1,2),n}async function X(e,n,t,r,i={}){let s=[...n],o=i.signal;try{for(let l=0;l<(i.maxSteps??25);l++){if(o?.aborted)return s;let c=null,m="",w=a=>{m+=a,r.onDelta(a)};for(let a=0;a<4&&!c;a++)try{m="",c=await t(s,w)}catch(g){if(o?.aborted)return m&&s.push({role:"assistant",content:m}),s;if(!(g instanceof h))throw g;s=F(s)}if(!c)throw new Error("This conversation is too long. Start a new one with /clear.");if(c.toolCalls.length===0)return s.push({role:"assistant",content:c.text}),s;s.push({role:"assistant",content:c.text||null,tool_calls:c.toolCalls.map(a=>({id:a.id,type:"function",function:{name:a.name,arguments:a.arguments}}))});for(let a of c.toolCalls){if(o?.aborted){s.push({role:"tool",tool_call_id:a.id,content:S});continue}let g={};try{g=JSON.parse(a.arguments||"{}")}catch{}r.onToolStart(a.name,(D[a.name]??(()=>""))(g),g);let d,u=c.serverResults?.[a.id];if(u){d=u.content,r.onToolResult(a.name,u.ok,u.ok?d:d.replace(/^Error: /,"")),s.push({role:"tool",tool_call_id:a.id,content:d});continue}try{d=await L(e,a.name,g,r,o),r.onToolResult(a.name,!0,d)}catch(E){d=`Error: ${E.message}`,r.onToolResult(a.name,!1,E.message)}s.push({role:"tool",tool_call_id:a.id,content:d})}}}catch(l){throw l&&typeof l=="object"&&Object.assign(l,{partial:s}),l}return s.push({role:"assistant",content:"I stopped after many steps. Tell me how to continue."}),s}function $(){let e="";return n=>{e+=n;let t=e.split(`
3
+
4
+ `);return e=t.pop()??"",t.filter(Boolean).map(r=>{let i="message",s=[];for(let o of r.split(`
5
+ `))o.startsWith("event:")?i=o.slice(6).trim():o.startsWith("data:")&&s.push(o.slice(5).replace(/^ /,""));return{event:i,data:s.join(`
6
+ `)}})}}var p=class extends Error{constructor(t,r="error",i=0){super(t);this.reason=r;this.status=i}reason;status},U=e=>e?new Date(e).toLocaleString(void 0,{weekday:"short",hour:"2-digit",minute:"2-digit"}):"soon";async function C(e,n){let t=await e.json().catch(()=>({})),r=t.requestId?` (ref ${t.requestId})`:"";switch(t.reason){case"signed_out":return new p("You are signed out. Run: flint login","signed_out",e.status);case"limit":return new p(`Out of credits until ${U(t.resetAt)}. Get more at ${n}/pricing`,"limit",e.status);case"busy":return new p("FlintMaker is very busy right now. Please try again later.","busy",e.status);case"upgrade_required":return new p(`The smart model needs a paid plan: ${n}/pricing`,"upgrade_required",e.status);case"in_progress":return new p("Another flint session is still working. Wait for it to finish.","in_progress",e.status);default:return new p(`Request failed (${e.status} ${t.reason??""})${r}`,t.reason??"error",e.status)}}var M=class{constructor(n,t){this.base=n;this.token=t}base;token;headers(){return{"content-type":"application/json","user-agent":"flint-cli",...this.token?{authorization:`Bearer ${this.token}`}:{}}}async json(n,t={}){let r=await fetch(`${this.base}/api${n}`,{...t,headers:{...this.headers(),...t.headers}});if(!r.ok)throw await C(r,this.base);return await r.json()}me(){return this.json("/me")}async deviceLogin(n,t){let r=await this.json("/auth/device",{method:"POST",body:"{}"});n(r.userCode,r.verifyUrl);let i=Date.now()+r.expiresIn*1e3;for(;Date.now()<i;){if(await new Promise(o=>setTimeout(o,r.interval*1e3)),t?.aborted)throw new p("Login cancelled.","cancelled");let s=await fetch(`${this.base}/api/auth/device/token`,{method:"POST",headers:this.headers(),body:JSON.stringify({deviceCode:r.deviceCode})});if(s.status!==428){if(s.ok)return await s.json();throw new p("The login code expired. Run flint login again.","expired",s.status)}}throw new p("The login code expired. Run flint login again.","expired")}stepper(n,t,r){return async(i,s)=>{let o=await fetch(`${this.base}/api/agent`,{method:"POST",headers:{...this.headers(),"x-flint-features":"web"},body:JSON.stringify({messages:i,model:n()}),signal:t()});if(o.status===413)throw new h;if(!o.ok||!o.body)throw await C(o,this.base);let l=$(),c=new TextDecoder,m="",w=[],a={};for await(let g of o.body)for(let d of l(c.decode(g,{stream:!0}))){let u=d.data?JSON.parse(d.data):{};if(d.event==="delta")m+=u.text,s(u.text);else if(d.event==="tool_call")w.push(u);else if(d.event==="tool_result")a[u.id]={ok:u.ok!==!1,content:String(u.content??"")};else if(d.event==="done")r(u.credits,u.usage);else if(d.event==="error")throw new p(`The model hit a problem; no credits were used.${u.requestId?` (ref ${u.requestId})`:""}`,"model")}return{text:m,toolCalls:w,serverResults:a}}}};var A="https://flintmaker.com/pricing";function W(e){let n=e;return n?.name==="TypeError"&&/fetch failed|network/i.test(n.message??"")||["ECONNREFUSED","ENOTFOUND","ECONNRESET","ETIMEDOUT","EAI_AGAIN","UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT"].includes(n?.cause?.code??"")}function oe(e,n={}){let t=n.interactive?"Run /login to connect your FlintMaker account.":"Run: flint login",r=n.retry?[n.retry]:[];if(W(e))return{title:"Can't reach FlintMaker",lines:["Check your internet connection, then try again.",...r],tone:"warn"};if(e instanceof p)switch(e.reason){case"signed_out":return{title:"You are signed out",lines:[t],tone:"warn"};case"limit":return{title:"Out of credits",lines:[e.message.replace(/\. Get more at .*$/,"."),`Upgrade or top up: ${A}`],tone:"warn"};case"upgrade_required":return{title:"Smart needs a paid plan",lines:["Switch back with /model standard, or upgrade:",A],tone:"warn"};case"busy":return{title:"FlintMaker is very busy",lines:["Please try again in a minute.",...r],tone:"warn"};case"in_progress":return{title:"Another flint session is working",lines:["Wait for it to finish, then try again."],tone:"warn"};case"model":return{title:"The model hit a problem",lines:[e.message,...r],tone:"error"};default:return{title:"Something went wrong",lines:[e.message,...r],tone:"error"}}return{title:"Something went wrong",lines:[e?.message??String(e)],tone:"error"}}var k=null,N=[];function ae(e){k?k(e):N.push(e)}function le(e){if(k=e,e)for(let n of N.splice(0))e(n)}import{readdirSync as q}from"node:fs";import{join as B,sep as z}from"node:path";var y=[{name:"help",description:"Show commands and keyboard shortcuts"},{name:"model",args:"[standard|smart]",description:"Switch model and see credit costs"},{name:"mode",args:"[ask|auto|plan]",description:"Change when flint asks before acting (or Shift+Tab)"},{name:"clear",description:"Start a new conversation",aliases:["new","reset"]},{name:"compact",description:"Summarise the conversation to free up context"},{name:"credits",description:"Show credit usage and plans",aliases:["usage"]},{name:"init",description:"Create FLINT.md, the project memory flint reads first"},{name:"login",description:"Connect another FlintMaker account"},{name:"logout",description:"Disconnect this computer"},{name:"exit",description:"Quit flint",aliases:["quit","q"]}];function pe(e){let n=/^\/([a-zA-Z][\w-]*)(?:\s+([\s\S]*))?$/.exec(e.trim());if(!n)return null;let t=n[1].toLowerCase(),r=y.find(i=>i.name===t||i.aliases?.includes(t));return!r&&(t==="smart"||t==="standard")?{name:"model",args:t,command:y.find(i=>i.name==="model")}:{name:r?.name??t,args:(n[2]??"").trim(),command:r}}function G(e,n){let t=Array.from({length:n.length+1},(r,i)=>i);for(let r=1;r<=e.length;r++){let i=t[0];t[0]=r;for(let s=1;s<=n.length;s++){let o=t[s];t[s]=Math.min(t[s]+1,t[s-1]+1,i+(e[r-1]===n[s-1]?0:1)),i=o}}return t[n.length]}function me(e){let n=null,t=1/0;for(let r of y)for(let i of[r.name,...r.aliases??[]]){let s=i.startsWith(e)?0:G(e,i);s<t&&(t=s,n=r.name)}return t<=Math.max(2,Math.floor(e.length/3))?n:null}function ge(e){let n=e.replace(/^\//,"").toLowerCase();return y.filter(t=>t.name.startsWith(n)||t.aliases?.some(r=>r.startsWith(n)))}function he(e){if(e.length===0)return"";let n=e[0];for(let t of e.slice(1))for(;!t.startsWith(n);)n=n.slice(0,-1);return n}var J=new Set(["node_modules",".git","dist","build",".next","coverage",".venv","__pycache__","DerivedData","Pods"]);function fe(e,n){let t=n.lastIndexOf("/"),r=t>=0?n.slice(0,t+1):"",i=t>=0?n.slice(t+1):n;if(r.split("/").includes("..")||r.startsWith("/"))return[];let s;try{s=q(B(e,r.split("/").join(z)),{withFileTypes:!0})}catch{return[]}return s.filter(o=>o.name.startsWith(i)&&!J.has(o.name)&&(i.startsWith(".")||!o.name.startsWith(".")||o.name===".github")).map(o=>r+o.name+(o.isDirectory()?"/":"")).sort((o,l)=>Number(l.endsWith("/"))-Number(o.endsWith("/"))||o.localeCompare(l)).slice(0,50)}function P(e){let n=new Set;for(let t of e.matchAll(/(?:^|\s)@((?:[\w.-]+\/)*[\w.-]+)/g))n.add(t[1]);return[...n]}import{readFileSync as I,statSync as Y}from"node:fs";import{join as K}from"node:path";var x="FLINT.md",j=2e4,f=e=>e.toLocaleString("en-US");function ke(e){return e.creditsLeftToday!==null?`${f(e.creditsLeftToday)} credits left today`:`${f(e.creditsLeftMonth)} credits left`}function ve(e){let n=r=>new Date(r).toLocaleString(void 0,{weekday:"short",day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"}),t=[`Plan: ${e.plan.charAt(0).toUpperCase()+e.plan.slice(1)}`];return e.creditsLeftToday!==null&&t.push(`Today: ${f(e.creditsLeftToday)} credits left (resets ${n(e.resetAt)})`),t.push(`This period: ${f(e.creditsLeftMonth)} of ${f(e.monthlyCredits)} credits left (resets ${n(e.monthResetAt)})`),t}var Ee={standard:{label:"Standard",cost:"\u22482\u20133 credits per step",note:"fast, great for most tasks \xB7 all plans"},smart:{label:"Smart",cost:"\u22482\u20138 credits per step",note:"stronger reasoning, longer answers \xB7 paid plans"}},_e=`Create ${x} in the project root: a concise project memory that you will read at the start of every future conversation.
7
+ First explore the project (list files, read the README, package/config files and a few key sources). Then write ${x} (max ~60 lines) with:
8
+ - What the project is, in 1\u20132 sentences
9
+ - Tech stack and layout (key directories and entry points)
10
+ - How to install, build, run, test and lint (exact commands)
11
+ - Code style and conventions worth following
12
+ - Anything surprising (gotchas, generated files, things not to touch)
13
+ Do not include secrets. Keep it factual and short.`,Te=`Summarise our conversation so far so we can continue in a fresh context. Do not call any tools.
14
+ Include: the goal, decisions made, files changed (with what changed), commands run and their outcomes, open problems and next steps.
15
+ Be concise but keep exact file paths, names and error messages.`,H="[Plan mode is on: do not change files or run commands. Explore with read-only tools (list_files, read_file, search) and reply with a clear, numbered plan. The user will switch modes to let you carry it out.]";function V(e){let n=K(e,x);try{return Y(n).size>j?I(n,"utf8").slice(0,j)+`
16
+ [truncated]`:I(n,"utf8")}catch{return null}}async function Re(e,n,t){let r=[],i=[],s=!1;if(t.first){i.push(_());let o=V(e.root);o&&(s=!0,i.push(`<project-memory file="${x}">
17
+ ${o.trim()}
18
+ </project-memory>`))}t.mode==="plan"&&i.push(H),i.push(n);for(let o of P(n))try{let l=await e.readFile(o),c=l.split(`
19
+ `).filter(m=>/^\d+\t/.test(m)).length;r.push({path:o,lines:c}),i.push(`<file path="${o}">
20
+ ${l}
21
+ </file>`)}catch(l){let c=l.message;r.push({path:o,error:/ENOENT|no such file/.test(c)?"not found":c.replace(`${o} `,"")})}return{content:i.join(`
22
+
23
+ `),attachments:r,memory:s}}var v=new Set(["rm","rmdir","sudo","su","doas","dd","mkfs","shred","curl","wget","ssh","scp","sh","bash","zsh","fish","eval","exec","xargs","env","chmod","chown","kill","killall","git push"]),Q=new Set(["del","erase","rd","rmdir","format","cmd","powershell","pwsh","start","reg","regedit","taskkill","runas","icacls","takeown","attrib","cipher","diskpart","bcdedit","schtasks","sc","net","netsh","wsl","certutil","bitsadmin","mshta","rundll32","wscript","cscript","remove-item","invoke-expression","iex","invoke-webrequest","iwr","curl.exe","move","ren","rename","copy","xcopy","robocopy","mklink","setx","stop-process"]),O=new Set(["node","py","python","python3","ruby","perl","php","deno","bun","npx","pnpx","bunx"]);function $e(e,n=process.platform){let t=e.trim();if(!t||/[;&|<>`$(){}\n\r\\*?!~#'"]/.test(t)||b(n)&&/[%^]/.test(t))return null;let[r,i]=t.split(/\s+/),s=b(n),o=s?r.split("/").pop().toLowerCase().replace(/\.(exe|cmd|bat|com|ps1)$/,""):r.split("/").pop();if(v.has(o)||s&&Q.has(o))return null;let l=i&&/^[a-z][\w:-]*$/i.test(i)?`${r} ${i}`:r;return v.has(l)||s&&v.has(`${o} ${i?.toLowerCase()}`)||O.has(o)&&l===r||O.has(o)&&["npx","pnpx","bunx"].includes(o)?null:l}export{S as a,h as b,F as c,X as d,p as e,M as f,A as g,oe as h,ae as i,le as j,y as k,pe as l,me as m,ge as n,he as o,fe as p,x as q,f as r,ke as s,ve as t,Ee as u,_e as v,Te as w,Re as x,$e as y};
@@ -0,0 +1,72 @@
1
+ import{a as H,c as P,d as fe,e as de,g as xe}from"./chunk-HEEZNIZR.js";import{b as f}from"./chunk-5PRYZOW7.js";function ee(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var v=ee();function _e(r){v=r}var E={exec:()=>null};function I(r){let e=[];return t=>{let s=Math.max(0,Math.min(3,t-1)),n=e[s];return n||(n=r(s),e[s]=n),n}}function g(r,e=""){let t=typeof r=="string"?r:r.source,s={replace:(n,i)=>{let l=typeof i=="string"?i:i.source;return l=l.replace(y.caret,"$1"),t=t.replace(n,l),s},getRegex:()=>new RegExp(t,e)};return s}var je=((r="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+r)}catch{return!1}})(),y={codeRemoveIndent:/^(?: {0,3}\t| {1,4})/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,leadingSpaceTab:/^[ \t]+/,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/,numericCharacterReferenceOrAmpersand:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:r=>new RegExp(`^( {0,3}${r})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:I(r=>new RegExp(`^ {0,${r}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:I(r=>new RegExp(`^ {0,${r}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:I(r=>new RegExp(`^ {0,${r}}(?:\`\`\`|~~~)`)),headingBeginRegex:I(r=>new RegExp(`^ {0,${r}}#`)),htmlBeginRegex:I(r=>new RegExp(`^ {0,${r}}(?:</?(?:${Q})(?: +|$|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)`,"i")),blockquoteBeginRegex:I(r=>new RegExp(`^ {0,${r}}>`))},He=/^(?:[ \t]*(?:\n|$))+/,Ne=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Fe=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,M=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Ge=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,te=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Pe=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Le=g(Pe).replace(/bull/g,te).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Xe=g(Pe).replace(/bull/g,te).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),re=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,Ue=/^[^\n]+/,ne=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,We=g(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ne).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Je=g(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,te).getRegex(),Q="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",se=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Ke=g("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!(?:script|pre|style|textarea)(?![a-z0-9-]))([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",se).replace("tag",Q).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ee=r=>g(re).replace("hr",M).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",r).replace("html"," {0,3}(?:</?(?:tag)(?: +|\\n|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)").replace("tag",Q).getRegex(),Ve=Ee(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),Ye=Ee(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),et=g(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Ye).getRegex(),ie={blockquote:et,code:Ne,def:We,fences:Fe,heading:Ge,hr:M,html:Ke,lheading:Le,list:Je,newline:He,paragraph:Ve,table:E,text:Ue},be=g("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",M).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html"," {0,3}(?:</?(?:tag)(?: +|\\n|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)").replace("tag",Q).getRegex(),tt={...ie,lheading:Xe,table:be,paragraph:g(re).replace("hr",M).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",be).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html"," {0,3}(?:</?(?:tag)(?: +|\\n|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)").replace("tag",Q).getRegex()},rt={...ie,html:g(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",se).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:E,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:g(re).replace("hr",M).replace("heading",` *#{1,6} *[^
2
+ ]`).replace("lheading",Le).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},nt=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,st=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Ce=/^( {2,}|\\)\n(?!\s*$)[ \t]*/,it=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,T=/[\p{P}\p{S}]/u,B=/[\s\p{P}\p{S}]/u,j=/[^\s\p{P}\p{S}]/u,lt=g(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,B).getRegex(),at=/[\p{Pi}\p{Ps}"']/u,ve=/(?!~)[\p{P}\p{S}]/u,ot=/(?!~)[\s\p{P}\p{S}]/u,ct=/(?:[^\s\p{P}\p{S}]|~)/u,ht=g(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",je?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Ie=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,pt=g(Ie,"u").replace(/punct/g,T).getRegex(),ut=g(Ie,"u").replace(/punct/g,ve).getRegex(),gt=/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,kt=g(gt,"u").replace(/openQuote/g,at).replace(/punct/g,T).getRegex(),Be="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",ft=g(Be,"gu").replace(/notPunctSpace/g,j).replace(/punctSpace/g,B).replace(/punct/g,T).getRegex(),dt=g(Be,"gu").replace(/notPunctSpace/g,ct).replace(/punctSpace/g,ot).replace(/punct/g,ve).getRegex(),xt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)",bt=g(xt,"gu").replace(/notPunctSpace/g,j).replace(/punctSpace/g,B).replace(/punct/g,T).getRegex(),mt=g("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,j).replace(/punctSpace/g,B).replace(/punct/g,T).getRegex(),wt="^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)",yt=g(wt,"gu").replace(/notPunctSpace/g,j).replace(/punctSpace/g,B).replace(/punct/g,T).getRegex(),$t=g(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,T).getRegex(),St="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Rt=g(St,"gu").replace(/notPunctSpace/g,j).replace(/punctSpace/g,B).replace(/punct/g,T).getRegex(),Tt=g(/\\(punct)/,"gu").replace(/punct/g,T).getRegex(),At=g(/(`+)(?:[^`]|[^`][\s\S]*?[^`])\1(?!`)|`+|\\(punct)/,"gu").replace(/punct/g,T).getRegex(),zt=g(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),_t=g(se).replace("(?:-->|$)","-->").getRegex(),Pt=g("^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",_t).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),qe=/\[(?:\\[\s\S]|[^\[\]\\])*\]/,F=g(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace("brackets",qe).getRegex(),Lt=g(/^!?\[(label)\]\([ \t\n]*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?[ \t\n]*\)/).replace("label",F).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Et=g(/^!?\[(label)\]\[(ref)\]/).replace("label",F).replace("ref",ne).getRegex(),Ct=g(/^!?\[(ref)\](?:\[\])?/).replace("ref",ne).getRegex(),me=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/,vt=g(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace("brackets",qe).getRegex(),It=g("reflink|nolink(?!\\()","g").replace("reflink",g(/^!?\[(label)\]\[(ref)\]/).replace("label",vt).replace("ref",me).getRegex()).replace("nolink",g(/^!?\[(ref)\](?:\[\])?/).replace("ref",me).getRegex()).getRegex(),we=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Bt=/[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/,qt=g(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g,Bt).getRegex(),le={_backpedal:E,anyPunctuation:Tt,anyPunctuationOutsideCode:At,autolink:zt,blockSkip:ht,br:Ce,code:st,del:E,delLDelim:E,delRDelim:E,emStrongLDelim:pt,emStrongRDelimAst:ft,emStrongRDelimUnd:mt,escape:nt,link:Lt,nolink:Ct,punctuation:lt,reflink:Et,reflinkSearch:It,tag:Pt,text:it,url:E},Zt={...le,emStrongLDelim:kt,emStrongRDelimAst:bt,emStrongRDelimUnd:yt,link:g(/^!?\[(label)\]\((.*?)\)/).replace("label",F).getRegex(),reflink:g(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",F).getRegex()},K={...le,emStrongRDelimAst:dt,emStrongLDelim:ut,delLDelim:$t,delRDelim:Rt,url:g(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("emailProtocol",qt).replace("protocol",we).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:g(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace("protocol",we).replace(/emailProtocol/g,/(?:mailto|xmpp):/).getRegex()},Dt={...K,br:g(Ce).replace("{2,}","*").getRegex(),text:g(K.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},N={normal:ie,gfm:tt,pedantic:rt},D={normal:le,gfm:K,breaks:Dt,pedantic:Zt},Ot={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ye=r=>Ot[r];function $(r,e){if(e){if(y.escapeTest.test(r))return r.replace(y.escapeReplace,ye)}else if(y.escapeTestNoEncode.test(r))return r.replace(y.escapeReplaceNoEncode,ye);return r}function Mt(r){return y.numericCharacterReference.test(r)?r.replace(y.numericCharacterReferenceOrAmpersand,(e,t,s)=>{if(t===void 0&&s===void 0)return"&amp;";let n=t===void 0?Number.parseInt(s,16):Number.parseInt(t,10);return n===0||n>1114111||n>=55296&&n<=57343?"\uFFFD":n===38?"&amp;":String.fromCodePoint(n)}):r}function $e(r){try{r=encodeURI(r).replace(y.percentDecode,"%")}catch{return null}return r}function Se(r,e){let t=r.replace(y.findPipe,(i,l,a)=>{let h=!1,o=l;for(;--o>=0&&a[o]==="\\";)h=!h;return h?"|":" |"}),s=t.split(y.splitPipe),n=0;if(s[0].trim()||s.shift(),s.length>0&&!s.at(-1)?.trim()&&s.pop(),e)if(s.length>e)s.splice(e);else for(;s.length<e;)s.push("");for(;n<s.length;n++)s[n]=s[n].trim().replace(y.slashPipe,"|");return s}function z(r,e,t){let s=r.length;if(s===0)return"";let n=0;for(;n<s;){let i=r.charAt(s-n-1);if(i===e&&!t)n++;else if(i!==e&&t)n++;else break}return r.slice(0,s-n)}function Re(r){let e=r.split(`
3
+ `),t=e.length-1;for(;t>=0&&y.blankLine.test(e[t]);)t--;return e.length-t<=2?r:e.slice(0,t+1).join(`
4
+ `)}function G(r){return r.trim().toLowerCase().toUpperCase().toLowerCase()}function Te(r,e){if(r.indexOf(e[0])===-1&&r.indexOf(e[1])===-1)return-1;let t=0;for(let s=0;s<r.length;s++)if(r[s]==="\\")s++;else if(r[s]===e[0])t++;else if(r[s]===e[1]&&(t--,t<0))return s;return t>0?-2:-1}function J(r,e=0){let t=e,s="";for(let n of r)if(n===" "){let i=4-t%4;s+=" ".repeat(i),t+=i}else s+=n,t++;return s}function Ae(r,e,t,s,n){let i=e.href,l=e.title||null,a=r[1].replace(n.other.outputLinkReplace,"$1"),h=r[0].charAt(0)==="!",o=s.state.inLink,c=s.state.linkEmitted,p=s.state.inRawBlock;s.state.inLink=!0,s.state.linkEmitted=!1;let k=s.inlineTokens(a),u=s.state.linkEmitted;if(s.state.linkEmitted=c,s.state.inLink=o,!h){if(u){s.state.inRawBlock=p;return}s.state.linkEmitted=!0}return{type:h?"image":"link",raw:t,href:i,title:l,text:a,tokens:k}}function Qt(r,e,t){let s=r.match(t.other.indentCodeCompensation);if(s===null)return e;let n=s[1];return e.split(`
5
+ `).map(i=>{let l=i.match(t.other.beginningSpace);if(l===null)return i;let[a]=l;return i.slice(Math.min(a.length,n.length))}).join(`
6
+ `)}function ze(r,e,t,s){if(!e.includes("<"))return!1;for(let n=0;n<e.length;n++){if(e[n]==="\\"){n++;continue}if(e[n]==="`"){let a=s.inline.code.exec(e.slice(n));if(a){n+=a[0].length-1;continue}}if(e[n]!=="<")continue;let i=r.slice(t+n),l=s.inline.tag.exec(i)||s.inline.autolink.exec(i);if(l){if(l[0].length>e.length-n)return!0;n+=l[0].length-1}}return!1}var X=class{options;rules;lexer;constructor(r){this.options=r||v}space(r){let e=this.rules.block.newline.exec(r);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(r){let e=this.rules.block.code.exec(r);if(e){let t=this.options.pedantic?e[0]:Re(e[0]),s=t.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t,codeBlockStyle:"indented",text:s}}}fences(r){let e=this.rules.block.fences.exec(r);if(e){let t=e[0],s=Qt(t,e[3]||"",this.rules);return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:s}}}heading(r){let e=this.rules.block.heading.exec(r);if(e){let t=e[2].trim();if(this.rules.other.endingHash.test(t)){let s=z(t,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceTabChar.test(s))&&(t=s.trim())}return{type:"heading",raw:z(e[0],`
7
+ `),depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(r){let e=this.rules.block.hr.exec(r);if(e)return{type:"hr",raw:z(e[0],`
8
+ `)}}blockquote(r){let e=this.rules.block.blockquote.exec(r);if(e){let t=z(e[0],`
9
+ `).split(`
10
+ `),s="",n="",i=[];for(;t.length>0;){let l=!1,a=[],h;for(h=0;h<t.length;h++)if(this.rules.other.blockquoteStart.test(t[h]))a.push(t[h]),l=!0;else if(!l)a.push(t[h]);else break;t=t.slice(h);let o=a.join(`
11
+ `),c=o.replace(this.rules.other.blockquoteSetextReplace,`
12
+ $1`).replace(this.rules.other.blockquoteSetextReplace2,"");s=s?`${s}
13
+ ${o}`:o,n=n?`${n}
14
+ ${c}`:c;let p=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,i,!0),this.lexer.state.top=p,t.length===0)break;let k=i.at(-1);if(k?.type==="code"||k?.type==="heading"||k?.type==="hr"||k?.type==="html")break;if(k?.type==="blockquote"){let u=k,m=t.join(`
15
+ `),w=u.raw+`
16
+ `+m.replace(this.rules.other.blockquoteSetextReplace2,""),x=this.blockquote(w);i[i.length-1]=x;let _=w.substring(x.raw.length).replace(/^\n/,""),b=_?_.split(`
17
+ `).length:0,q=b?t.slice(0,-b):t;q.length>0&&(s=`${s}
18
+ ${q.join(`
19
+ `)}`),n=n.substring(0,n.length-u.text.length)+x.text;break}else if(k?.type==="list"){let u=k,m=u.raw+`
20
+ `+t.join(`
21
+ `),w=this.list(m);i[i.length-1]=w,s=s.substring(0,s.length-k.raw.length)+w.raw,n=n.substring(0,n.length-u.raw.length)+w.raw,t=m.substring(i.at(-1).raw.length).split(`
22
+ `);continue}}return{type:"blockquote",raw:s,tokens:i,text:n}}}list(r){let e=this.rules.block.list.exec(r);if(e){let t=r,s=()=>t.length-r.length,n=e[1].trim(),i=n.length>1,l={type:"list",raw:"",ordered:i,start:i?+n.slice(0,-1):"",loose:!1,items:[]};n=i?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=i?n:"[*+-]");let a=this.rules.other.listItemRegex(n),h=!1;for(;r;){let c=!1,p="";if(!(e=a.exec(r))||this.rules.block.hr.test(r))break;let k=s();r=r.substring(e[0].length);let u=e[2].split(`
23
+ `,1)[0],m=e[1].length,w=this.options.pedantic?J(u,m):u.replace(this.rules.other.leadingSpaceTab,W=>J(W,m)),x=r.split(`
24
+ `,1)[0],_=!w.trim(),b=0;if(this.options.pedantic?(b=2,p=w.trimStart()):_?b=m+1:(b=w.search(this.rules.other.nonSpaceChar),b=b>4?1:b,p=w.slice(b),b+=m),_&&this.rules.other.blankLine.test(x)&&(r=r.substring(x.length+1),c=!0),!c){let W=this.rules.other.nextBulletRegex(b),pe=this.rules.other.hrRegex(b),ue=this.rules.other.fencesBeginRegex(b),ge=this.rules.other.headingBeginRegex(b),Oe=this.rules.other.htmlBeginRegex(b),Me=this.rules.other.blockquoteBeginRegex(b);for(;r;){let ke=r.split(`
25
+ `,1)[0],Z;if(x=ke,this.options.pedantic?(x=x.replace(this.rules.other.listReplaceNesting," "),Z=x):Z=x.replace(this.rules.other.leadingSpaceTab,Qe=>J(Qe)),ue.test(x)||ge.test(x)||Oe.test(x)||Me.test(x)||W.test(x)||pe.test(x))break;if(Z.search(this.rules.other.nonSpaceChar)>=b||!x.trim())p+=`
26
+ `+Z.slice(b);else{if(_||w.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||ue.test(w)||ge.test(w)||pe.test(w))break;p+=`
27
+ `+x}_=!x.trim(),r=r.substring(ke.length+1),w=Z.slice(b)}}let q=t.slice(k,s());l.loose||(h?l.loose=!0:this.rules.other.doubleBlankLine.test(q)&&(h=!0)),l.items.push({type:"list_item",raw:q,task:!!this.options.gfm&&this.rules.other.listIsTask.test(p),loose:!1,text:p,tokens:[]})}let o=l.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;l.raw=t.slice(0,s()).trimEnd();for(let c of l.items)if(this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]),!l.loose){let p=c.tokens.filter(u=>u.type==="space"),k=p.length>0&&p.some(u=>this.rules.other.anyLine.test(u.raw));l.loose=k}for(let c of l.items){let p=c.tokens[0];if(c.task&&(p?.type==="text"||p?.type==="paragraph")){c.text=c.text.replace(this.rules.other.listReplaceTask,""),p.raw=p.raw.replace(this.rules.other.listReplaceTask,""),p.text=p.text.replace(this.rules.other.listReplaceTask,"");for(let u=this.lexer.inlineQueue.length-1;u>=0;u--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[u].src)){this.lexer.inlineQueue[u].src=this.lexer.inlineQueue[u].src.replace(this.rules.other.listReplaceTask,"");break}let k=this.rules.other.listTaskCheckbox.exec(c.raw);if(k){let u={type:"checkbox",raw:k[0]+" ",checked:k[0]!=="[ ]"};c.checked=u.checked,l.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=u.raw+c.tokens[0].raw,c.tokens[0].text=u.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(u)):c.tokens.unshift({type:"paragraph",raw:u.raw,text:u.raw,tokens:[u]}):c.tokens.unshift(u)}}else c.task&&(c.task=!1)}if(l.loose)for(let c of l.items){c.loose=!0;for(let p of c.tokens)p.type==="text"&&(p.type="paragraph")}return l}}html(r){let e=this.rules.block.html.exec(r);if(e){let t=Re(e[0]);return{type:"html",block:!0,raw:t,pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:t}}}def(r){let e=this.rules.block.def.exec(r);if(e){if(!this.rules.other.startAngleBracket.test(e[2])&&Te(e[2],"()")!==-1)return;let t=G(e[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",n=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:t,raw:z(e[0],`
28
+ `),href:s,title:n}}}table(r){let e=this.rules.block.table.exec(r);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let t=Se(e[1]),s=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),n=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
29
+ `):[],i={type:"table",raw:z(e[0],`
30
+ `),header:[],align:[],rows:[]};if(t.length===s.length){for(let l of s)this.rules.other.tableAlignRight.test(l)?i.align.push("right"):this.rules.other.tableAlignCenter.test(l)?i.align.push("center"):this.rules.other.tableAlignLeft.test(l)?i.align.push("left"):i.align.push(null);for(let l=0;l<t.length;l++)i.header.push({text:t[l],tokens:this.lexer.inline(t[l]),header:!0,align:i.align[l]});for(let l of n)i.rows.push(Se(l,i.header.length).map((a,h)=>({text:a,tokens:this.lexer.inline(a),header:!1,align:i.align[h]})));return i}}lheading(r){let e=this.rules.block.lheading.exec(r);if(e){let t=e[1].trim();return{type:"heading",raw:z(e[0],`
31
+ `),depth:e[2].charAt(0)==="="?1:2,text:t,tokens:this.lexer.inline(t)}}}paragraph(r){let e=this.rules.block.paragraph.exec(r);if(e){let t=e[1].charAt(e[1].length-1)===`
32
+ `?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:t,tokens:this.lexer.inline(t)}}}text(r){let e=this.rules.block.text.exec(r);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(r){let e=this.rules.inline.escape.exec(r);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(r){let e=this.rules.inline.tag.exec(r);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(r){if(this.lexer.state.linkParenPossible===!1)return;let e=this.rules.inline.link.exec(r);if(e){let t=e[0].charAt(0)==="!"?2:1;if(!this.options.pedantic&&ze(r,e[1],t,this.rules))return;let s=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(s)){if(!this.rules.other.endAngleBracket.test(s))return;let l=z(s.slice(0,-1),"\\");if((s.length-l.length)%2===0)return}else{let l=Te(e[2],"()");if(l===-2)return;if(l>-1){let a=(e[0].indexOf("!")===0?5:4)+e[1].length+l;e[2]=e[2].substring(0,l),e[0]=e[0].substring(0,a).trim(),e[3]=""}}let n=e[2],i="";if(this.options.pedantic){let l=this.rules.other.pedanticHrefTitle.exec(n);l&&(n=l[1],i=l[3])}else i=e[3]?e[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(s)?n=n.slice(1):n=n.slice(1,-1)),Ae(e,{href:n&&n.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(r,e){let t;if((t=this.rules.inline.reflink.exec(r))||(t=this.rules.inline.nolink.exec(r))){let s=t[0].charAt(0)==="!"?2:1;if(!this.options.pedantic&&ze(r,t[1],s,this.rules))return;let n=(t[2]||t[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[G(n)];if(!i){let l=t[0].charAt(0);return{type:"text",raw:l,text:l}}return Ae(t,i,t[0],this.lexer,this.rules)}}emStrong(r,e,t=""){let s=this.rules.inline.emStrongLDelim.exec(r);if(!(!s||!s[1]&&!s[2]&&!s[3]&&!s[4]||s[4]&&t.match(this.rules.other.unicodeAlphaNumeric))&&(!(s[1]||s[3])||!t||this.rules.inline.punctuation.exec(t))){let n=[...s[0]].length-1,i,l,a=n,h=0,o=s[0][0],c=t===o,p=o==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(p.lastIndex=0,e=e.slice(-1*r.length+n);(s=p.exec(e))!==null;){if(i=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!i)continue;if(l=[...i].length,s[3]||s[4]){a+=l;continue}else if(s[5]||s[6]){if(n%3&&!((n+l)%3)){h+=l;continue}if(c)break}if(a-=l,a>0)continue;l=Math.min(l,l+a+h);let k=[...s[0]][0].length,u=r.slice(0,n+s.index+k+l);if(Math.min(n,l)%2){let w=u.slice(1,-1);return{type:"em",raw:u,text:w,tokens:this.lexer.inlineTokens(w)}}let m=u.slice(2,-2);return{type:"strong",raw:u,text:m,tokens:this.lexer.inlineTokens(m)}}}}codespan(r){let e=this.rules.inline.code.exec(r);if(e){let t=e[2].replace(this.rules.other.newLineCharGlobal," "),s=this.rules.other.nonSpaceChar.test(t),n=this.rules.other.startingSpaceChar.test(t)&&this.rules.other.endingSpaceChar.test(t);return s&&n&&(t=t.substring(1,t.length-1)),{type:"codespan",raw:e[0],text:t}}}br(r){let e=this.rules.inline.br.exec(r);if(e)return{type:"br",raw:e[0]}}del(r,e,t=""){let s=this.rules.inline.delLDelim.exec(r);if(s&&(!s[1]||!t||this.rules.inline.punctuation.exec(t))){let n=[...s[0]].length-1,i,l,a=n,h=this.rules.inline.delRDelim;for(h.lastIndex=0,e=e.slice(-1*r.length+n);(s=h.exec(e))!==null;){if(i=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!i||(l=[...i].length,l!==n))continue;if(s[3]||s[4]){a+=l;continue}if(a-=l,a>0)continue;l=Math.min(l,l+a);let o=[...s[0]][0].length,c=r.slice(0,n+s.index+o+l),p=c.slice(n,-n);return{type:"del",raw:c,text:p,tokens:this.lexer.inlineTokens(p)}}}}autolink(r){let e=this.rules.inline.autolink.exec(r);if(e){let t,s;return e[2]==="@"?(t=e[1],s="mailto:"+t):(t=e[1],s=t),{type:"link",raw:e[0],text:t,href:s,autolink:!0,tokens:[{type:"text",raw:t,text:t}]}}}url(r){let e;if(e=this.rules.inline.url.exec(r)){let t,s;if(e[2]==="@")t=e[0],s="mailto:"+t;else{let n;do n=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(n!==e[0]);t=e[0],e[1]==="www."?s="http://"+e[0]:s=e[0]}return{type:"link",raw:e[0],text:t,href:s,autolink:!0,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(r){let e=this.rules.inline.text.exec(r);if(e){let t=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:t?e[0]:Mt(e[0]),escaped:t}}}},S=class V{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||v,this.options.tokenizer=this.options.tokenizer||new X,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,linkEmitted:!1,linkParenPossible:!0,top:!0};let t={other:y,block:N.normal,inline:D.normal};this.options.pedantic?(t.block=N.pedantic,t.inline=D.pedantic):this.options.gfm&&(t.block=N.gfm,this.options.breaks?t.inline=D.breaks:t.inline=D.gfm),this.tokenizer.rules=t}static get rules(){return{block:N,inline:D}}static lex(e,t){return new V(t).lex(e)}static lexInline(e,t){return new V(t).inlineTokens(e)}lex(e){e=e.replace(y.carriageReturn,`
33
+ `),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let s=this.inlineQueue[t];this.inlineTokens(s.src,s.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],s=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(y.tabCharGlobal," ").replace(y.spaceLine,""));let n=1/0;for(;e;){if(e.length<n)n=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(a=>(i=a.call({lexer:this},e,t))?(e=e.substring(i.raw.length),t.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let a=t.at(-1);i.raw.length===1&&a!==void 0?a.raw+=`
34
+ `:t.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let a=t.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=(a.raw.endsWith(`
35
+ `)?"":`
36
+ `)+i.raw,a.text+=`
37
+ `+i.text,this.inlineQueue.at(-1).src=a.text):t.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let a=t.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=(a.raw.endsWith(`
38
+ `)?"":`
39
+ `)+i.raw,a.text+=`
40
+ `+i.raw,this.inlineQueue.at(-1).src=a.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},t.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),t.push(i);continue}let l=e;if(this.options.extensions?.startBlock){let a=1/0,h=e.slice(1),o;this.options.extensions.startBlock.forEach(c=>{o=c.call({lexer:this},h),typeof o=="number"&&o>=0&&(a=Math.min(a,o))}),a<1/0&&a>=0&&(l=e.substring(0,a+1))}if(this.state.top&&(i=this.tokenizer.paragraph(l))){let a=t.at(-1);s&&a?.type==="paragraph"?(a.raw+=(a.raw.endsWith(`
41
+ `)?"":`
42
+ `)+i.raw,a.text+=`
43
+ `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):t.push(i),s=l.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let a=t.at(-1);a?.type==="text"?(a.raw+=(a.raw.endsWith(`
44
+ `)?"":`
45
+ `)+i.raw,a.text+=`
46
+ `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):t.push(i);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}linkInText(e){if(!e.includes("["))return!1;let t=this.tokenizer.rules.inline.link;for(let s of e.matchAll(this.tokenizer.rules.inline.blockSkip))if(t.test(s[0])&&e.charAt(s.index-1)!=="!")return!0;for(let s of e.matchAll(this.tokenizer.rules.inline.reflinkSearch)){let n=s[0],i=n.lastIndexOf("[");if(!(n.charAt(0)==="!"||!Object.hasOwn(this.tokens.links,G(n.slice(i+1,-1))))&&!(i>1&&this.linkInText(n.slice(1,i-1))))return!0}return!1}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let s=this.state.linkParenPossible;this.state.linkParenPossible=s&&e.includes(")");try{return this.#e(e,t)}finally{this.state.linkParenPossible=s}}#e(e,t){let s=e;if(this.tokens.links&&e.includes("[")){let a=this.tokenizer.rules.inline.reflinkSearch,h=o=>{let c=o.lastIndexOf("[");if(!Object.hasOwn(this.tokens.links,G(o.slice(c+1,-1))))return o;if(c>1&&o.charAt(0)!=="!"){let p=o.slice(1,c-1);if(this.linkInText(p))return"["+p.replace(a,h)+"]["+"a".repeat(o.length-c-2)+"]"}return"["+"a".repeat(o.length-2)+"]"};s=s.replace(a,h)}s=s.replace(this.tokenizer.rules.inline.anyPunctuationOutsideCode,(a,h,o)=>o?"+".repeat(a.length):h?h+a.slice(h.length,-h.length).replace(/`/g,"+")+h:a),s=s.replace(this.tokenizer.rules.inline.blockSkip,(a,h,o)=>{let c=o?o.length:0;return a.slice(0,c)+"["+"a".repeat(a.length-c-2)+"]"}),s=this.options.hooks?.emStrongMask?.call({lexer:this},s)??s;let n=!1,i="",l=1/0;for(;e;){if(e.length<l)l=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}n||(i=""),n=!1;let a;if(this.options.extensions?.inline?.some(o=>(a=o.call({lexer:this},e,t))?(e=e.substring(a.raw.length),t.push(a),!0):!1))continue;if(a=this.tokenizer.escape(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.tag(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.link(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(a.raw.length);let o=t.at(-1);a.type==="text"&&o?.type==="text"?(o.raw+=a.raw,o.text+=a.text):t.push(a);continue}if(a=this.tokenizer.emStrong(e,s,i)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.codespan(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.br(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.del(e,s,i)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.autolink(e)){e=e.substring(a.raw.length),t.push(a);continue}if(!this.state.inLink&&(a=this.tokenizer.url(e))){e=e.substring(a.raw.length),t.push(a);continue}let h=e;if(this.options.extensions?.startInline){let o=1/0,c=e.slice(1),p;this.options.extensions.startInline.forEach(k=>{p=k.call({lexer:this},c),typeof p=="number"&&p>=0&&(o=Math.min(o,p))}),o<1/0&&o>=0&&(h=e.substring(0,o+1))}if(a=this.tokenizer.inlineText(h)){e=e.substring(a.raw.length),a.raw.slice(-1)!=="_"&&(i=a.raw.slice(-1)),n=!0;let o=t.at(-1);o?.type==="text"?(o.raw+=a.raw,o.text+=a.text):t.push(a);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t="Infinite loop on byte: "+e;if(this.options.silent)console.error(t);else throw new Error(t)}},U=class{options;parser;constructor(r){this.options=r||v}space(r){return""}code({text:r,lang:e,escaped:t}){let s=(e||"").match(y.notSpaceStart)?.[0],n=r?r.replace(y.endingNewline,"")+`
47
+ `:"";return s?'<pre><code class="language-'+$(s)+'">'+(t?n:$(n,!0))+`</code></pre>
48
+ `:"<pre><code>"+(t?n:$(n,!0))+`</code></pre>
49
+ `}blockquote({tokens:r}){return`<blockquote>
50
+ ${this.parser.parse(r)}</blockquote>
51
+ `}html({text:r}){return r}def(r){return""}heading({tokens:r,depth:e}){return`<h${e}>${this.parser.parseInline(r)}</h${e}>
52
+ `}hr(r){return`<hr>
53
+ `}list(r){let e=r.ordered,t=r.start,s="";for(let l=0;l<r.items.length;l++){let a=r.items[l];s+=this.listitem(a)}let n=e?"ol":"ul",i=e&&t!==1?' start="'+t+'"':"";return"<"+n+i+`>
54
+ `+s+"</"+n+`>
55
+ `}listitem(r){return`<li>${this.parser.parse(r.tokens)}</li>
56
+ `}checkbox({checked:r}){return"<input "+(r?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:r}){return`<p>${this.parser.parseInline(r)}</p>
57
+ `}table(r){let e="",t="";for(let n=0;n<r.header.length;n++)t+=this.tablecell(r.header[n]);e+=this.tablerow({text:t});let s="";for(let n=0;n<r.rows.length;n++){let i=r.rows[n];t="";for(let l=0;l<i.length;l++)t+=this.tablecell(i[l]);s+=this.tablerow({text:t})}return s&&(s=`<tbody>${s}</tbody>`),`<table>
58
+ <thead>
59
+ `+e+`</thead>
60
+ `+s+`</table>
61
+ `}tablerow({text:r}){return`<tr>
62
+ ${r}</tr>
63
+ `}tablecell(r){let e=this.parser.parseInline(r.tokens),t=r.header?"th":"td";return(r.align?`<${t} align="${r.align}">`:`<${t}>`)+e+`</${t}>
64
+ `}strong({tokens:r}){return`<strong>${this.parser.parseInline(r)}</strong>`}em({tokens:r}){return`<em>${this.parser.parseInline(r)}</em>`}codespan({text:r}){return`<code>${$(r,!0)}</code>`}br(r){return"<br>"}del({tokens:r}){return`<del>${this.parser.parseInline(r)}</del>`}link({href:r,title:e,text:t,tokens:s,autolink:n}){let i=n?$(t,!0):this.parser.parseInline(s),l=$e(r);if(l===null)return i;r=$(l,n);let a='<a href="'+r+'"';return e&&(a+=' title="'+$(e)+'"'),a+=">"+i+"</a>",a}image({href:r,title:e,text:t,tokens:s}){s&&(t=this.parser.parseInline(s,this.parser.textRenderer));let n=$e(r);if(n===null)return $(t);r=n;let i=`<img src="${$(r)}" alt="${$(t)}"`;return e&&(i+=` title="${$(e)}"`),i+=">",i}text(r){return"tokens"in r&&r.tokens?this.parser.parseInline(r.tokens):"escaped"in r&&r.escaped?r.text:$(r.text)}},ae=class{strong({text:r}){return r}em({text:r}){return r}codespan({text:r}){return r}del({text:r}){return r}html({text:r}){return r}text({text:r}){return r}link({text:r}){return""+r}image({text:r}){return""+r}br(){return""}checkbox({raw:r}){return r}},R=class Y{options;renderer;textRenderer;constructor(e){this.options=e||v,this.options.renderer=this.options.renderer||new U,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new ae}static parse(e,t){return new Y(t).parse(e)}static parseInline(e,t){return new Y(t).parseInline(e)}parse(e){this.renderer.parser=this;let t="";for(let s=0;s<e.length;s++){let n=e[s];if(this.options.extensions?.renderers?.[n.type]){let l=n,a=this.options.extensions.renderers[l.type].call({parser:this},l);if(a!==!1||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(l.type)){t+=a||"";continue}}let i=n;switch(i.type){case"space":{t+=this.renderer.space(i);break}case"hr":{t+=this.renderer.hr(i);break}case"heading":{t+=this.renderer.heading(i);break}case"code":{t+=this.renderer.code(i);break}case"table":{t+=this.renderer.table(i);break}case"blockquote":{t+=this.renderer.blockquote(i);break}case"list":{t+=this.renderer.list(i);break}case"checkbox":{t+=this.renderer.checkbox(i);break}case"html":{t+=this.renderer.html(i);break}case"def":{t+=this.renderer.def(i);break}case"paragraph":{t+=this.renderer.paragraph(i);break}case"text":{t+=this.renderer.text(i);break}default:{let l='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let s="";for(let n=0;n<e.length;n++){let i=e[n];if(this.options.extensions?.renderers?.[i.type]){let a=this.options.extensions.renderers[i.type].call({parser:this},i);if(a!==!1||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(i.type)){s+=a||"";continue}}let l=i;switch(l.type){case"escape":{s+=t.text(l);break}case"html":{s+=t.html(l);break}case"link":{s+=t.link(l);break}case"image":{s+=t.image(l);break}case"checkbox":{s+=t.checkbox(l);break}case"strong":{s+=t.strong(l);break}case"em":{s+=t.em(l);break}case"codespan":{s+=t.codespan(l);break}case"br":{s+=t.br(l);break}case"del":{s+=t.del(l);break}case"text":{s+=t.text(l);break}default:{let a='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return s}},O=class{options;block;constructor(r){this.options=r||v}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(r){return r}postprocess(r){return r}processAllTokens(r){return r}emStrongMask(r){return r}provideLexer(r=this.block){return r?S.lex:S.lexInline}provideParser(r=this.block){return r?R.parse:R.parseInline}};function L(r,e){if(Array.isArray(e))for(let t=0;t<e.length;t++)r.push(e[t]);else r.push(e)}var jt=class{defaults=ee();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=R;Renderer=U;TextRenderer=ae;Lexer=S;Tokenizer=X;Hooks=O;constructor(...r){this.use(...r)}walkTokens(r,e){let t=[];for(let s of r)switch(L(t,e.call(this,s)),s.type){case"table":{let n=s;for(let i of n.header)L(t,this.walkTokens(i.tokens,e));for(let i of n.rows)for(let l of i)L(t,this.walkTokens(l.tokens,e));break}case"list":{let n=s;L(t,this.walkTokens(n.items,e));break}default:{let n=s;this.defaults.extensions?.childTokens?.[n.type]?this.defaults.extensions.childTokens[n.type].forEach(i=>{let l=n[i].flat(1/0);L(t,this.walkTokens(l,e))}):n.tokens&&L(t,this.walkTokens(n.tokens,e))}}return t}use(...r){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return r.forEach(t=>{let s={...t};if(s.async=this.defaults.async||s.async||!1,t.extensions&&(t.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let i=e.renderers[n.name];i?e.renderers[n.name]=function(...l){let a=n.renderer.apply(this,l);return a===!1&&(a=i.apply(this,l)),a}:e.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=e[n.level];i?i.unshift(n.tokenizer):e[n.level]=[n.tokenizer],n.start&&(n.level==="block"?e.startBlock?e.startBlock.push(n.start):e.startBlock=[n.start]:n.level==="inline"&&(e.startInline?e.startInline.push(n.start):e.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(e.childTokens[n.name]=n.childTokens)}),s.extensions=e),t.renderer){let n=this.defaults.renderer||new U(this.defaults);for(let i in t.renderer){if(!(i in n))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let l=i,a=t.renderer[l],h=n[l];n[l]=(...o)=>{let c=a.apply(n,o);return c===!1&&(c=h.apply(n,o)),c||""}}s.renderer=n}if(t.tokenizer){let n=this.defaults.tokenizer||new X(this.defaults);for(let i in t.tokenizer){if(!(i in n))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let l=i,a=t.tokenizer[l],h=n[l];n[l]=(...o)=>{let c=a.apply(n,o);return c===!1&&(c=h.apply(n,o)),c}}s.tokenizer=n}if(t.hooks){let n=this.defaults.hooks||new O;for(let i in t.hooks){if(!(i in n))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let l=i,a=t.hooks[l],h=n[l];O.passThroughHooks.has(i)?n[l]=o=>{if(this.defaults.async&&O.passThroughHooksRespectAsync.has(i))return(async()=>{let p=await a.call(n,o);return h.call(n,p)})();let c=a.call(n,o);return h.call(n,c)}:n[l]=(...o)=>{if(this.defaults.async)return(async()=>{let p=await a.apply(n,o);return p===!1&&(p=await h.apply(n,o)),p})();let c=a.apply(n,o);return c===!1&&(c=h.apply(n,o)),c}}s.hooks=n}if(t.walkTokens){let n=this.defaults.walkTokens,i=t.walkTokens;s.walkTokens=function(l){let a=[];return a.push(i.call(this,l)),n&&L(a,n.call(this,l)),a}}this.defaults={...this.defaults,...s}}),this}setOptions(r){return this.defaults={...this.defaults,...r},this}lexer(r,e){return S.lex(r,e??this.defaults)}parser(r,e){return R.parse(r,e??this.defaults)}parseMarkdown(r){return(e,t)=>{let s={...t},n={...this.defaults,...s},i=this.onError(!!n.silent,!!n.async);if(this.defaults.async===!0&&s.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(n.hooks&&(n.hooks.options=n,n.hooks.block=r),n.async)return(async()=>{let l=n.hooks?await n.hooks.preprocess(e):e,a=await(n.hooks?await n.hooks.provideLexer(r):r?S.lex:S.lexInline)(l,n),h=n.hooks?await n.hooks.processAllTokens(a):a;n.walkTokens&&await Promise.all(this.walkTokens(h,n.walkTokens));let o=await(n.hooks?await n.hooks.provideParser(r):r?R.parse:R.parseInline)(h,n);return n.hooks?await n.hooks.postprocess(o):o})().catch(i);try{n.hooks&&(e=n.hooks.preprocess(e));let l=(n.hooks?n.hooks.provideLexer(r):r?S.lex:S.lexInline)(e,n);n.hooks&&(l=n.hooks.processAllTokens(l)),n.walkTokens&&this.walkTokens(l,n.walkTokens);let a=(n.hooks?n.hooks.provideParser(r):r?R.parse:R.parseInline)(l,n);return n.hooks&&(a=n.hooks.postprocess(a)),a}catch(l){return i(l)}}}onError(r,e){return t=>{if(t.message+=`
65
+ Please report this to https://github.com/markedjs/marked.`,r){let s="<p>An error occurred:</p><pre>"+$(t.message+"",!0)+"</pre>";return e?Promise.resolve(s):s}if(e)return Promise.reject(t);throw t}}},C=new jt;function d(r,e){return C.parse(r,e)}d.options=d.setOptions=function(r){return C.setOptions(r),d.defaults=C.defaults,_e(d.defaults),d};d.getDefaults=ee;d.defaults=v;function Ht(...r){return C.use(...r),d.defaults=C.defaults,_e(d.defaults),d}d.use=Ht;d.walkTokens=function(r,e){return C.walkTokens(r,e)};d.parseInline=C.parseInline;d.Parser=R;d.parser=R.parse;d.Renderer=U;d.TextRenderer=ae;d.Lexer=S;d.lexer=S.lex;d.Tokenizer=X;d.Hooks=O;d.parse=d;var Ut=d.options,Wt=d.setOptions,Jt=d.walkTokens,Kt=d.parseInline;var Vt=R.parse,Yt=S.lex;var ce=null;function cr(r){ce=r}function A(r){return r?r.map(e=>{switch(e.type){case"strong":return f.bold(A(e.tokens));case"em":return f.italic(A(e.tokens));case"del":return f.strike(A(e.tokens));case"codespan":return f.ember(e.text);case"br":return`
66
+ `;case"link":{let t=A(e.tokens),s=H(t);return s===e.href||`mailto:${s}`===e.href?f.underline(f.blue(t)):`${f.underline(f.blue(t))} ${f.grey(`(${e.href})`)}`}case"image":return f.grey(`[image: ${e.text||e.href}]`);case"html":return f.grey(e.text);case"escape":return e.text;case"text":return"tokens"in e&&e.tokens?A(e.tokens):e.text;default:return"text"in e?String(e.text):e.raw}}).join(""):""}function Nt(r,e,t,s){let n=ce?ce(r,e):r,i=f.grey("\u2502"),l=[s+f.grey(`\u256D\u2500 ${e||"code"}`)];for(let a of n.split(`
67
+ `))l.push(`${s}${i} ${a}`);return l.push(s+f.grey("\u2570\u2500")),l}function Ft(r,e,t){let s=r.header.map(p=>f.bold(A(p.tokens))),n=r.rows.map(p=>p.map(k=>A(k.tokens))),i=s.length,l=s.map((p,k)=>Math.max(P(p),...n.map(u=>P(u[k]??"")))),a=e-P(t)-(3*i+1);for(;l.reduce((p,k)=>p+k,0)>a&&Math.max(...l)>4;){let p=l.indexOf(Math.max(...l));l[p]--}let h=(p,k)=>{let u=fe(p,l[k]),m=l[k]-P(u);return r.align[k]==="right"?" ".repeat(m)+u:r.align[k]==="center"?" ".repeat(m>>1)+u+" ".repeat(m-(m>>1)):de(u,l[k])},o=(p,k,u)=>t+f.grey(p+l.map(m=>"\u2500".repeat(m+2)).join(k)+u),c=p=>t+f.grey("\u2502")+p.map((k,u)=>` ${h(k,u)} `).join(f.grey("\u2502"))+f.grey("\u2502");return[o("\u250C","\u252C","\u2510"),c(s),o("\u251C","\u253C","\u2524"),...n.map(c),o("\u2514","\u2534","\u2518")]}function Gt(r,e,t){let s=[],n=typeof r.start=="number"?r.start:1;return r.items.forEach((i,l)=>{let a=r.ordered?f.ember(`${n+l}.`):f.ember("\u2022");i.task&&(a=i.checked?f.green("\u2714"):f.grey("\u2610"));let h=" ".repeat(P(H(a))+1),o=he(i.tokens.filter(p=>p.type!=="checkbox"),e,t+h,!0);o.length===0&&o.push(t+h);let c=o[0].slice(t.length+h.length);i.task&&i.checked&&(c=f.grey(f.strike(H(c)))),s.push(t+a+" "+c,...o.slice(1))}),s}var oe=(r,e,t)=>xe(t+r.replace(/\n/g,`
68
+ ${t}`),e,t);function he(r,e,t,s=!1){let n=[],i=()=>{!s&&n.length&&n.at(-1)!==""&&n.push("")};for(let l of r)switch(l.type){case"space":break;case"heading":{i();let a=A(l.tokens),h=l.depth===1?f.bold(f.gold(a)):l.depth===2?f.bold(f.ember(a)):f.bold(a);n.push(...oe(h,e,t));break}case"paragraph":i(),n.push(...oe(A(l.tokens),e,t));break;case"text":n.push(...oe(A(l.tokens??[l]),e,t));break;case"list":i(),n.push(...Gt(l,e,t));break;case"code":i(),n.push(...Nt(l.text,(l.lang??"").split(/\s/)[0],e,t));break;case"blockquote":{i();let a=he(l.tokens??[],e-2,"",!0);n.push(...a.map(h=>`${t}${f.grey("\u258E")} ${f.italic(h)}`));break}case"hr":i(),n.push(t+f.grey("\u2500".repeat(Math.max(3,Math.min(e-P(t),60)))));break;case"table":i(),n.push(...Ft(l,e,t));break;case"html":i(),n.push(...l.text.replace(/\n$/,"").split(`
69
+ `).map(a=>t+f.grey(a)));break;case"def":break;default:"text"in l&&n.push(t+String(l.text))}return n}function Ze(r,e,t=" "){let s=new S({gfm:!0}).lex(r);return he(s,Math.max(20,e),t)}var Xt=/^ {0,3}(`{3,}|~{3,})/,De=class{constructor(e){this.width=e}width;buf="";block=[];fence=null;emitted=0;push(e){this.buf+=e;let t=[],s;for(;(s=this.buf.indexOf(`
70
+ `))>=0;){let n=this.buf.slice(0,s);this.buf=this.buf.slice(s+1),t.push(...this.line(n))}return t}line(e){let t=Xt.exec(e);if(this.fence)return this.block.push(e),t&&t[1][0]===this.fence[0]&&t[1].length>=this.fence.length&&e.trim()===t[1]?(this.fence=null,this.emit()):[];if(t){let s=this.emit();return this.fence=t[1],this.block.push(e),s}return e.trim()===""?this.emit():(this.block.push(e),[])}emit(){if(this.block.length===0)return[];let e=this.block.join(`
71
+ `);this.block=[];let t=Ze(e,this.width());return t.length===0?[]:this.emitted++>0?["",...t]:t}preview(){let e=[...this.block,this.buf].join(`
72
+ `).trimEnd();return e?Ze(e,this.width()):[]}end(){this.buf&&this.block.push(this.buf),this.buf="",this.fence=null;let e=this.emit();return this.emitted=0,e}get started(){return this.emitted>0||this.block.length>0||this.buf!==""}};export{cr as a,De as b};
@@ -0,0 +1 @@
1
+ import{q as b}from"./chunk-K3ZZ2VJH.js";function T(r=process.env,e=!!process.stdout.isTTY,t=process.platform,i=b(t)){if(r.NO_COLOR!==void 0&&r.NO_COLOR!=="")return 0;let n=r.FORCE_COLOR;if(n!==void 0){if(n==="0"||n==="false")return 0;if(n==="2")return 2;if(n==="3")return 3;if(!e)return 1}return!e||r.TERM==="dumb"?n!==void 0?1:0:/truecolor|24bit/i.test(r.COLORTERM??"")||["iTerm.app","vscode","WezTerm","ghostty","Hyper"].includes(r.TERM_PROGRAM??"")||r.WT_SESSION?3:t==="win32"&&!r.TERM?i>=14931?3:i>=10586?2:1:/kitty|alacritty|foot/.test(r.TERM??"")?3:/256/.test(r.TERM??"")||r.TERM_PROGRAM==="Apple_Terminal"?2:1}var s=T(),E=()=>s;function O([r,e,t]){if(r===e&&e===t)return r<8?16:r>248?231:Math.round((r-8)/247*24)+232;let i=n=>n<48?0:n<115?1:Math.floor((n-35)/40);return 16+36*i(r)+6*i(e)+i(t)}function c(r,e,t){return s===3?`\x1B[${t?48:38};2;${r[0]};${r[1]};${r[2]}m`:s===2?`\x1B[${t?48:38};5;${O(r)}m`:`\x1B[${t?e+10:e}m`}var u=(r,e)=>t=>s===0||t===""?t:`${r()}${t}${e}`,o=(r,e)=>u(()=>c(r,e,!1),"\x1B[39m"),f=(r,e)=>u(()=>c(r,e,!0),"\x1B[49m"),m={ember:[255,122,61],gold:[255,194,74],crimson:[232,51,107],violet:[123,47,247]},d={bold:u(()=>"\x1B[1m","\x1B[22m"),dim:u(()=>"\x1B[2m","\x1B[22m"),italic:u(()=>"\x1B[3m","\x1B[23m"),underline:u(()=>"\x1B[4m","\x1B[24m"),strike:u(()=>"\x1B[9m","\x1B[29m"),inverse:u(()=>"\x1B[7m","\x1B[27m"),ember:o(m.ember,33),gold:o(m.gold,93),crimson:o(m.crimson,35),green:o([120,210,120],32),red:o([255,95,95],31),cyan:o([110,200,220],36),blue:o([120,160,255],34),pink:o([255,122,154],95),grey:o([140,140,150],90),sand:o([230,200,160],33),addBg:f([22,64,34],42),delBg:f([78,24,30],41),addBgStrong:f([36,110,52],42),delBgStrong:f([140,36,46],41)};function L(r,e=[m.crimson,m.ember,m.gold]){if(s<2)return s===0?r:d.bold(d.ember(r));let t=[...r],i=Math.max(1,t.length-1);return t.map((n,R)=>{let l=R/i*(e.length-1),x=e[Math.floor(l)],g=e[Math.min(e.length-1,Math.floor(l)+1)],p=l-Math.floor(l),M=x.map((a,B)=>Math.round(a+(g[B]-a)*p));return n===" "?n:`${c(M,33,!1)}${n}`}).join("")+"\x1B[39m"}export{E as a,d as b,L as c};
@@ -0,0 +1 @@
1
+ import{r as p}from"./chunk-K3ZZ2VJH.js";import{spawn as h}from"node:child_process";var d=t=>/^https:\/\/[\w.-]+\/device(\?[\w=&-]*)?$/.test(t);function I(t){if(!d(t))return;let n=(f,m,l,c)=>{try{let s=h(f,m,{stdio:"ignore",detached:!0,...l});s.on("error",()=>c?.()),s.unref()}catch{c?.()}},{file:i,args:u,options:a}=p(t);n(i,u,a,process.platform==="linux"&&i==="cmd.exe"?()=>n("xdg-open",[t],{}):void 0)}import{chmodSync as g,existsSync as x,mkdirSync as y,readFileSync as A,rmSync as S,writeFileSync as v}from"node:fs";import{homedir as k}from"node:os";import{join as e}from"node:path";var w="https://flintmaker.com",r=()=>e(process.env.XDG_CONFIG_HOME||e(k(),".config"),"flintmaker"),o=(t=r())=>e(t,"auth.json");function P(t=r()){try{let n=JSON.parse(A(o(t),"utf8"));return typeof n?.token=="string"?n:null}catch{return null}}function B(t,n=r()){y(n,{recursive:!0,mode:448}),v(o(n),JSON.stringify(t,null,2),{mode:384});try{g(o(n),384)}catch{}}function C(t=r()){x(o(t))&&S(o(t))}function E(t){return(process.env.FLINT_API||t?.api||w).replace(/\/$/,"")}export{I as a,P as b,B as c,C as d,E as e};
@@ -0,0 +1,9 @@
1
+ import{a as M,b as s,c as S}from"./chunk-5PRYZOW7.js";var I=/\x1b\[[0-?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g,L=t=>t.replace(I,"");function N(t){return t===0||t<32||t>=127&&t<160||t>=768&&t<=879||t>=8203&&t<=8207||t>=65024&&t<=65039||t>=6832&&t<=6911||t>=8400&&t<=8447||t>=917760&&t<=917999?0:t>=4352&&t<=4447||t>=11904&&t<=12350||t>=12353&&t<=13311||t>=13312&&t<=19903||t>=19968&&t<=40959||t>=40960&&t<=42191||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65072&&t<=65103||t>=65280&&t<=65376||t>=65504&&t<=65510||t>=127744&&t<=128591||t>=129280&&t<=129535||t>=128640&&t<=128767||t>=129648&&t<=129791||t>=131072&&t<=262141?2:1}function x(t){let r=0;for(let e of L(t))r+=N(e.codePointAt(0));return r}function*O(t){let r=0;for(let e of t.matchAll(I)){for(let n of t.slice(r,e.index))yield{ansi:!1,text:n};yield{ansi:!0,text:e[0]},r=e.index+e[0].length}for(let e of t.slice(r))yield{ansi:!1,text:e}}function m(t,r,e="\u2026"){if(r<=0)return"";if(x(t)<=r)return t;let n=r-x(e),i=0,o="",l=!1;for(let a of O(t)){if(a.ansi){o+=a.text;continue}if(l)continue;let c=N(a.text.codePointAt(0));if(i+c>n){o+=e,l=!0;continue}o+=a.text,i+=c}return o+(/\x1b\[/.test(o)?"\x1B[0m":"")}var R=(t,r)=>t+" ".repeat(Math.max(0,r-x(t)));function X(t,r){let e=[],n="",i=0;for(let o of t){let l=N(o.codePointAt(0));i+l>r&&n!==""&&(e.push(n),n="",i=0),n+=o,i+=l}return e.push(n),e}function et(t,r,e=""){let n=[];for(let i of t.split(`
2
+ `)){let o=[],l="",a=0,c=[],f="",h=0,d="",b=()=>c.join(""),$=()=>{o.push(l+(c.length?"\x1B[0m":"")),l=e+b(),a=x(e)},p=()=>{if(f){a+x(d)+h>r&&a>x(e)&&($(),d=""),l+=d+f,a+=x(d)+h,d="";for(let u of f.matchAll(/\x1b\[[0-9;]*m/g))/^\x1b\[0?m$/.test(u[0])?c=[]:c.push(u[0]);for(;a>r;){let u=L(l),g=X(u,r)[0];o.push(g),l=e+u.slice(g.length),a=x(l)}f="",h=0}};for(let u of O(i)){if(u.ansi){f+=u.text;continue}if(u.text===" "){p(),d+=" ";continue}f+=u.text,h+=N(u.text.codePointAt(0))}p(),o.push(l),n.push(...o)}return n}function E(t){return t.replace(/\x1b\][^\x07\x1b]*(\x07|\x1b\\)?/g,"").replace(/\x1b\[[0-?]*[ -/]*[@-~]/g,"").replace(/\x1b[@-Z\\-_]/g,"").replace(/[\x00-\x08\x0b-\x1f\x7f-\x9f]/g,"").replace(/[‪-‮⁦-⁩]/g,r=>`<U+${r.charCodeAt(0).toString(16).toUpperCase()}>`)}var B={ask:"ask before edits",auto:"auto-accept edits",plan:"plan only (no changes)"},F={standard:"Standard",smart:"Smart"};function T(t,r,e={}){let n=e.border??s.grey,i=e.padX??1,o=Math.max(4,r-2-i*2),l=e.title?n("\u256D\u2500 ")+e.title+" "+n("\u2500".repeat(Math.max(0,r-5-x(e.title)))+"\u256E"):n("\u256D"+"\u2500".repeat(r-2)+"\u256E"),a=" ".repeat(i);return[l,...t.map(c=>n("\u2502")+a+R(m(c,o),o)+a+n("\u2502")),n("\u2570"+"\u2500".repeat(r-2)+"\u256F")]}var W=[" \u2726 "," \u259F\u2588\u2599 ","\u259F\u2588\u2588\u2588\u2599"];function lt(t,r){let e=Math.min(r-1,76),n=M()===0?W:[s.gold(W[0]),S(W[1],[[255,194,74],[255,122,61]]),S(W[2],[[255,122,61],[232,51,107]])],i=`${s.bold(S("FlintMaker"))} ${s.bold("flint")} ${s.grey(`v${t.version}`)}`,o=t.email?`${t.email}${t.plan?s.grey(" \xB7 ")+H(t.plan):""}${t.credits?s.grey(" \xB7 ")+t.credits:""}`:s.grey(t.status??"connecting\u2026"),l=[i,o,`${s.grey("model")} ${F[t.model]}${s.grey(" \xB7 ")}${s.grey(t.cwd)}`],a=W.map((c,f)=>`${n[f]} ${l[f]}`);return a.push("",s.grey("/help commands \xB7 @ attach files \xB7 esc interrupt \xB7 shift+tab mode")),T(a,e,{border:c=>s.ember(c)})}var H=t=>t.charAt(0).toUpperCase()+t.slice(1),P=["Forging","Sparking","Kindling","Stoking","Smelting","Hammering","Tempering","Igniting","Annealing","Striking","Blazing","Quenching"],j=["\xB7","\u2722","\u2733","\u2736","\u273B","\u273D","\u273B","\u2736","\u2733","\u2722"];function at(t,r,e,n,i){let o=i??P[Math.floor(r/3e3)%P.length],l=j[t%j.length],c=[`${Math.floor(r/1e3)}s`,e?`${e} credit${e===1?"":"s"}`:null,"esc to interrupt"].filter(Boolean).join(" \xB7 ");return m(`${s.ember(l)} ${S(`${o}\u2026`,[[255,122,61],[255,194,74]])} ${s.grey(`(${c})`)}`,n-1)}function ct(t,r){let e=t.mode==="ask"?s.grey(B.ask):t.mode==="auto"?s.gold(`\u23F5\u23F5 ${B.auto}`):s.pink(`\u23F8 ${B.plan}`),n=[s.ember(F[t.model]),e+s.grey(" (shift+tab)")];t.credits&&n.push(s.grey(t.credits)),n.push(s.grey(t.cwd)+(t.branch?s.grey(` \u2387 ${t.branch}`):""));let i=" "+(t.hint?s.gold(t.hint):n.join(s.grey(" \xB7 ")));return m(i,r-1)}var Z={list_files:"List",read_file:"Read",search:"Search",write_file:"Write",edit_file:"Edit",run_command:"Run",web_search:"Web search",web_fetch:"Fetch"};function q(t){return Z[t]??t.replace(/_/g," ")}function gt(t,r,e,n,i=""){let o=e==="running"?s.gold("\u25CF"):e==="ok"?s.ember("\u25CF"):e==="error"?s.red("\u25CF"):s.grey("\u25CF"),l=E(r).replace(/\s*\n\s*/g," \u23CE ");return m(`${o} ${s.bold(q(t))} ${l}${i?s.grey(` ${i}`):""}`,n-1)}function ft(t,r,e=4,n=s.grey){let i=E(t).replace(/\s+$/,"").split(`
3
+ `),l=i.slice(0,e).map((a,c)=>m(` ${c===0?s.grey("\u23BF"):" "} ${n(a.replace(/\t/g," "))}`,r-1));return i.length>e&&l.push(s.grey(` \u2026 +${i.length-e} lines`)),l}function ut(t,r){switch(t){case"read_file":{if(r.startsWith("[binary file"))return{suffix:"(binary)"};let e=r.split(`
4
+ `).filter(n=>/^\d+\t/.test(n)).length;return{suffix:`(${e} line${e===1?"":"s"})`}}case"list_files":{let e=/… (\d+) more files/.exec(r),n=r==="(empty)"?0:r.split(`
5
+ `).filter(i=>i&&!i.startsWith("\u2026 ")).length+(e?Number(e[1]):0);return{detail:`${n} file${n===1?"":"s"}`}}case"search":{if(r==="No matches.")return{detail:"No matches"};let e=r.split(`
6
+ `).filter(Boolean),n=new Set(e.map(i=>i.split(":")[0]));return{detail:`${e.length} match${e.length===1?"":"es"} in ${n.size} file${n.size===1?"":"s"}`}}case"run_command":{let e=/\[exit code (\d+|null)\]$|\[timed out after \d+s\]$|^\[could not run command/.exec(r.trim());return{failed:!e||(e[1]!==void 0?e[1]!=="0":!0)}}case"web_search":{let e=r.split(`
7
+ `),n=e.flatMap((o,l)=>/^\[\d+\] /.test(o)?[G(e[l+1]??"")]:[]).filter(Boolean);if(n.length===0)return{detail:"No results"};let i=[...new Set(n)];return{detail:`${n.length} result${n.length===1?"":"s"}: ${i.slice(0,3).join(", ")}${i.length>3?"\u2026":""}`}}case"web_fetch":{let e=/^Words: (\d+)( \(truncated\))?/m.exec(r);return e?{detail:`${Number(e[1]).toLocaleString("en-US")} words${e[2]?" (truncated)":""}`}:{}}default:return{}}}function G(t){try{return new URL(t).hostname.replace(/^www\./,"")}catch{return""}}function Q(t){let r=0,e=0;for(let n of t.split(`
8
+ `))n.startsWith("+++")||n.startsWith("---")||(n.startsWith("+")?r++:n.startsWith("-")&&e++);return{added:r,removed:e}}function dt(t,r,e,n=!1){let i=E(t),{added:o,removed:l}=Q(i),a=e-1,c=`${s.bold(r)} ${s.green(`+${o}`)} ${s.red(`-${l}`)}${n?s.grey(" (new file)"):""}`,f=[` ${s.grey("\u250C")} ${c}`],h=0,d=0,b=1;for(let g of i.matchAll(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/gm))b=Math.max(b,Number(g[1])+Number(g[2]??1),Number(g[3])+Number(g[4]??1));let $=String(b).length,p=[],u=!0;for(let g of i.split(`
9
+ `)){if(g.startsWith("===")||g.startsWith("Index:")||g.startsWith("---")||g.startsWith("+++"))continue;let v=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/.exec(g);if(v){h=Number(v[1]),d=Number(v[2]),u||p.push(` ${s.grey("\u2506")} ${s.grey(" ".repeat($)+" \u22EE")}`),u=!1;continue}if(g==="\")continue;let y=g[0],D=g.slice(1).replace(/\t/g," "),k,A,w;if(y==="+")k=String(d++),A="+",w=M()>=2?s.addBg:s.green;else if(y==="-")k=String(h++),A="-",w=M()>=2?s.delBg:s.red;else if(y===" ")k=String(d),h++,d++,A=" ",w=_=>_;else continue;let U=` ${s.grey("\u2502")} ${s.grey(k.padStart($))} `,C=Math.max(10,a-($+5)-2);J(`${A} ${D}`,C).forEach((_,K)=>{let z=y===" "?s.grey(_):_,V=y===" "||M()<2?w(z):w(R(z,C));p.push((K===0?U:` ${s.grey("\u2502")} ${" ".repeat($)} `)+V)})}return f.push(...p,` ${s.grey("\u2514")}`),f}function J(t,r){let e=[],n=t;for(;x(n)>r;){let i=0,o=0;for(let l of n){let a=x(l);if(o+a>r)break;o+=a,i+=l.length}e.push(n.slice(0,i)),n=" "+n.slice(i)}return e.push(n),e}function xt(t,r,e,n="error"){let i=n==="error"?s.red:n==="warn"?s.gold:s.ember,o=n==="error"?"\u2717":n==="warn"?"!":"\u2726",l=Math.min(e-1,76);return T([`${i(o)} ${s.bold(t)}`,...r.map(a=>` ${a}`)],l,{border:i})}function ht(t,r,e,n,i="cancel"){let o=[m(s.bold(t),n-1)];return r.forEach((l,a)=>{let c=a===e,f=c?s.ember("\u276F"):" ",h=`${a+1}. ${l.label}`;o.push(m(`${f} ${c?s.ember(h):h}${l.hint?s.grey(` ${l.hint}`):""}`,n-1))}),o.push(s.grey(`\u2191/\u2193 or 1-${r.length} to choose \xB7 enter to confirm \xB7 esc to ${i}`)),o}function mt(t,r,e,n={}){let i=e-1,o=n.prefix??"\u276F ",l=Y(e,o),a=n.maxRows??8,c=0;t.length>a&&(c=Math.min(Math.max(0,r.row-a+1),t.length-a));let f=t.slice(c,c+a),h=t.length===1&&t[0]==="",d=[s.grey("\u256D"+"\u2500".repeat(i-2)+"\u256E")];f.forEach(($,p)=>{let u=p===0&&c===0?s.ember(o):" ".repeat(x(o)),g=h&&n.placeholder?s.grey(m(n.placeholder,l)):$;d.push(s.grey("\u2502")+" "+u+R(g,l)+" "+s.grey("\u2502"))});let b=t.length>a?`\u2500 ${c+f.length}/${t.length} lines `:"";return d.push(s.grey("\u2570"+b+"\u2500".repeat(Math.max(0,i-2-b.length))+"\u256F")),{lines:d,cursorRow:1+(r.row-c),cursorCol:2+x(o)+(h?0:r.col)}}var Y=(t,r="\u276F ")=>Math.max(8,t-1-4-x(r));function bt(t,r,e=32){/^[a-zA-Z]:[\\/]|^\\\\/.test(t)&&(t=t.replace(/\\/g,"/"),r=r.replace(/\\/g,"/"),r&&(t.toLowerCase()===r.toLowerCase()||t.toLowerCase().startsWith(r.toLowerCase()+"/"))&&(t=r+t.slice(r.length)));let n=r&&(t===r||t.startsWith(r+"/"))?`~${t.slice(r.length)}`:t;if(n.length<=e)return n;let i=n.split("/");for(;i.length>2&&i.join("/").length>e-2;)i.splice(1,1);return n=i.length>1?`${i[0]}/\u2026/${i.slice(1).join("/")}`:n,n.length>e?"\u2026"+n.slice(-(e-1)):n}var $t=t=>t.map(L);export{L as a,N as b,x as c,m as d,R as e,X as f,et as g,E as h,B as i,F as j,T as k,lt as l,P as m,j as n,at as o,ct as p,q,gt as r,ft as s,ut as t,Q as u,dt as v,xt as w,ht as x,mt as y,Y as z,bt as A,$t as B};
@@ -0,0 +1,6 @@
1
+ var u=Object.create;var l=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var R=(e,r)=>()=>{try{return r||e((r={exports:{}}).exports,r),r.exports}catch(t){throw r=0,t}};var g=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of m(r))!h.call(e,n)&&n!==t&&l(e,n,{get:()=>r[n],enumerable:!(o=d(r,n))||o.enumerable});return e};var T=(e,r,t)=>(t=e!=null?u(w(e)):{},g(r||!e||!e.__esModule?l(t,"default",{value:e,enumerable:!0}):t,e));import{spawn as S}from"node:child_process";import{release as x}from"node:os";import p from"node:path";var s=(e=process.platform)=>e==="win32",c=(e=process.platform)=>s(e)?p.win32:p.posix;function M(e,r=process.platform){if(c(r).isAbsolute(e))return`${e} is outside the project`;if(s(r)){if(/^[a-zA-Z]:/.test(e)||/^[\\/]/.test(e))return`${e} is outside the project`;if(e.includes(":"))return`${e} is not a valid path on Windows`}return null}function b(e,r,t=process.platform){let o=c(t),n=o.normalize(e),i=o.normalize(r);return s(t)&&(n=n.toLowerCase(),i=i.toLowerCase()),n.endsWith(o.sep)&&(n=n.slice(0,-1)),i===n||i.startsWith(n+o.sep)}function O(e,r=process.platform){return s(r)?e.replace(/[. ]+$/,""):e}function W(e,r=process.platform){return s(r)?e.replace(/\\/g,"/"):e}function $(e){let r=(e.match(/\n/g)??[]).length;return r===0?"lf":(e.match(/\r\n/g)??[]).length===r?"crlf":"lf"}var P=e=>e.replace(/\r\n/g,`
2
+ `),k=e=>P(e).replace(/\n/g,`\r
3
+ `);function a(e=process.platform,r=process.env){if(!s(e))return"sh";let t=(r.FLINT_SHELL??"").trim().toLowerCase();return t==="powershell"||t==="powershell.exe"?"powershell":t==="pwsh"||t==="pwsh.exe"?"pwsh":"cmd"}function v(e,r=process.platform,t=process.env){let o=a(r,t);if(o==="sh")return{file:"/bin/sh",args:["-c",e],options:{detached:!0}};if(o==="cmd")return{file:t.ComSpec||t.COMSPEC||"cmd.exe",args:["/d","/s","/c",`"${e}"`],options:{windowsVerbatimArguments:!0,windowsHide:!0}};let n=Buffer.from(e,"utf16le").toString("base64");return{file:o==="pwsh"?"pwsh.exe":"powershell.exe",args:["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand",n],options:{windowsHide:!0}}}function J(e,r=process.platform,t){if(!e)return t?.();if(s(r)){try{S("taskkill",["/pid",String(e),"/T","/F"],{stdio:"ignore",windowsHide:!0}).on("error",()=>t?.())}catch{t?.()}return}try{process.kill(-e,"SIGKILL")}catch{t?.()}}var E={sh:"/bin/sh",cmd:"cmd.exe (Windows Command Prompt)",powershell:"Windows PowerShell (powershell.exe)",pwsh:"PowerShell 7 (pwsh.exe)"};function N(e=process.platform,r=process.env){return e==="win32"?"Windows":e==="darwin"?"macOS":e==="linux"?r.WSL_DISTRO_NAME?`Linux (WSL, ${r.WSL_DISTRO_NAME})`:"Linux":e}function F(e=process.platform,r=process.env){let t=a(e,r),o=[`OS: ${N(e,r)}`,`run_command shell: ${E[t]}`];return t==="cmd"?o.push("Use Windows cmd syntax: dir, type, copy, move, del, mkdir, findstr, set VAR=x, && to chain. No ls/cat/grep/rm/export, no single-quote quoting."):t!=="sh"&&o.push("Use PowerShell syntax (Get-ChildItem, Get-Content, $env:VAR, ; to chain)."),s(e)&&o.push("File tool paths are project-relative; forward slashes are fine."),`<environment>
4
+ ${o.join(`
5
+ `)}
6
+ </environment>`}function U(e=process.platform,r=process.env){return r.FLINT_ASCII&&r.FLINT_ASCII!=="0"?!1:r.FLINT_UNICODE&&r.FLINT_UNICODE!=="0"?!0:s(e)?!!r.WT_SESSION||!!r.TERMINUS_SUBLIME||r.ConEmuTask==="{cmd::Cmder}"||r.TERM_PROGRAM==="vscode"||r.TERM_PROGRAM==="Terminus-Sublime"||r.TERMINAL_EMULATOR==="JetBrains-JediTerm"||r.TERM==="xterm-256color"||r.TERM==="alacritty"||r.TERM==="rxvt-unicode"||r.TERM==="rxvt-unicode-256color":r.TERM!=="linux"}var f={"\u2726":"*","\u25CF":"*","\u23BF":"`","\u276F":">","\u270E":">","\u23F5":">","\u23F8":"|","\u2387":"@","\u23CE":"/","\u2713":"v","\u2717":"x","\u2722":"*","\u2733":"*","\u2736":"*","\u273B":"*","\u273D":"*","\u259F":"/","\u2599":"\\","\u2588":"#","\u256D":"+","\u256E":"+","\u2570":"+","\u256F":"+","\u250C":"+","\u2510":"+","\u2514":"+","\u2518":"+","\u251C":"+","\u2524":"+","\u252C":"+","\u2534":"+","\u253C":"+","\u2500":"-","\u2502":"|","\u2191":"^","\u2193":"v","\u2192":">","\u2190":"<","\u2026":".","\u2248":"~","\u2013":"-","\u2014":"-","\u25B8":">","\u258C":"|","\u258E":"|","\u2022":"*","\u23F9":"#","\u2714":"v","\u2610":"o","\u2506":":","\u22EE":":","\xD7":"x"},I=new RegExp(`[${Object.keys(f).join("").replace(/[\\\]^-]/g,"\\$&")}]`,"g"),L=e=>e.replace(I,r=>f[r]??r);function j(e){let r=e.write.bind(e);e.write=((t,...o)=>r(typeof t=="string"?L(t):t,...o))}function B(e=process.platform,r=x()){if(!s(e))return 0;let t=r.split(".");return Number(t[0])>=10&&Number(t[2])||0}function G(e,r=process.platform,t=process.env){return r==="darwin"?{file:"open",args:[e],options:{}}:s(r)?{file:t.ComSpec||"cmd.exe",args:["/d","/s","/c",`start "" "${e}"`],options:{windowsVerbatimArguments:!0,windowsHide:!0}}:t.WSL_DISTRO_NAME?{file:"cmd.exe",args:["/d","/c","start",'""',e.replace(/&/g,"^&")],options:{}}:{file:"xdg-open",args:[e],options:{}}}export{R as a,T as b,s as c,c as d,M as e,b as f,O as g,W as h,$ as i,P as j,k,v as l,J as m,F as n,U as o,j as p,B as q,G as r};
@@ -0,0 +1,7 @@
1
+ import{b as v}from"./chunk-5PRYZOW7.js";import{a as pt,b as _t}from"./chunk-K3ZZ2VJH.js";var fn=pt((Ua,En)=>{function an(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(n=>{let t=e[n],a=typeof t;(a==="object"||a==="function")&&!Object.isFrozen(t)&&an(t)}),e}var Oe=class{constructor(n){n.data===void 0&&(n.data={}),this.data=n.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function rn(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function re(e,...n){let t=Object.create(null);for(let a in e)t[a]=e[a];return n.forEach(function(a){for(let c in a)t[c]=a[c]}),t}var Et="</span>",Ve=e=>!!e.scope,ft=(e,{prefix:n})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let t=e.split(".");return[`${n}${t.shift()}`,...t.map((a,c)=>`${a}${"_".repeat(c+1)}`)].join(" ")}return`${n}${e}`},Ke=class{constructor(n,t){this.buffer="",this.classPrefix=t.classPrefix,n.walk(this)}addText(n){this.buffer+=rn(n)}openNode(n){if(!Ve(n))return;let t=ft(n.scope,{prefix:this.classPrefix});this.span(t)}closeNode(n){Ve(n)&&(this.buffer+=Et)}value(){return this.buffer}span(n){this.buffer+=`<span class="${n}">`}},Je=(e={})=>{let n={children:[]};return Object.assign(n,e),n},Ge=class e{constructor(){this.rootNode=Je(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(n){this.top.children.push(n)}openNode(n){let t=Je({scope:n});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(n){return this.constructor._walk(n,this.rootNode)}static _walk(n,t){return typeof t=="string"?n.addText(t):t.children&&(n.openNode(t),t.children.forEach(a=>this._walk(n,a)),n.closeNode(t)),n}static _collapse(n){typeof n!="string"&&n.children&&(n.children.every(t=>typeof t=="string")?n.children=[n.children.join("")]:n.children.forEach(t=>{e._collapse(t)}))}},He=class extends Ge{constructor(n){super(),this.options=n}addText(n){n!==""&&this.add(n)}startScope(n){this.openNode(n)}endScope(){this.closeNode()}__addSublanguage(n,t){let a=n.root;t&&(a.scope=`language:${t}`),this.add(a)}toHTML(){return new Ke(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function Ee(e){return e?typeof e=="string"?e:e.source:null}function sn(e){return ce("(?=",e,")")}function mt(e){return ce("(?:",e,")*")}function ht(e){return ce("(?:",e,")?")}function ce(...e){return e.map(t=>Ee(t)).join("")}function Nt(e){let n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function we(...e){return"("+(Nt(e).capture?"":"?:")+e.map(a=>Ee(a)).join("|")+")"}function on(e){return new RegExp(e.toString()+"|").exec("").length-1}function Tt(e,n){let t=e&&e.exec(n);return t&&t.index===0}var yt=new RegExp(we(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function Ye(e,{joinWith:n}){let t=0;return e.map(a=>{t+=1;let c=t,g=Ee(a),r="";for(;g.length>0;){let i=yt.exec(g);if(!i){r+=g;break}r+=g.substring(0,i.index),g=g.substring(i.index+i[0].length),i[0][0]==="\\"&&i[1]?r+="\\"+String(Number(i[1])+c):(r+=i[0],(i[0]==="("||/^\(\?[<']/.test(i[0]))&&t++)}return r}).map(a=>`(${a})`).join(n)}var St=/\b\B/,cn="[a-zA-Z]\\w*",Ze="[a-zA-Z_]\\w*",ln="\\b\\d+(\\.\\d+)?",dn="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",un="\\b(0b[01]+)",Ot="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",At=(e={})=>{let n=/^#![ ]*\//;return e.binary&&(e.begin=ce(n,/.*\b/,e.binary,/\b.*/)),re({scope:"meta",begin:n,end:/$/,relevance:0,"on:begin":(t,a)=>{t.index!==0&&a.ignoreMatch()}},e)},fe={begin:"\\\\[\\s\\S]",relevance:0},wt={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[fe]},Rt={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[fe]},vt={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Re=function(e,n,t={}){let a=re({scope:"comment",begin:e,end:n,contains:[]},t);a.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let c=we("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return a.contains.push({begin:ce(/[ ]+/,"(",c,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),a},Mt=Re("//","$"),It=Re("/\\*","\\*/"),Ct=Re("#","$"),xt={scope:"number",begin:ln,relevance:0},kt={scope:"number",begin:dn,relevance:0},Dt={scope:"number",begin:un,relevance:0},Lt={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[fe,{begin:/\[/,end:/\]/,relevance:0,contains:[fe]}]},Bt={scope:"title",begin:cn,relevance:0},Pt={scope:"title",begin:Ze,relevance:0},Ut={begin:"\\.\\s*"+Ze,relevance:0},Ft=function(e){return Object.assign(e,{"on:begin":(n,t)=>{t.data._beginMatch=n[1]},"on:end":(n,t)=>{t.data._beginMatch!==n[1]&&t.ignoreMatch()}})},Se=Object.freeze({__proto__:null,APOS_STRING_MODE:wt,BACKSLASH_ESCAPE:fe,BINARY_NUMBER_MODE:Dt,BINARY_NUMBER_RE:un,COMMENT:Re,C_BLOCK_COMMENT_MODE:It,C_LINE_COMMENT_MODE:Mt,C_NUMBER_MODE:kt,C_NUMBER_RE:dn,END_SAME_AS_BEGIN:Ft,HASH_COMMENT_MODE:Ct,IDENT_RE:cn,MATCH_NOTHING_RE:St,METHOD_GUARD:Ut,NUMBER_MODE:xt,NUMBER_RE:ln,PHRASAL_WORDS_MODE:vt,QUOTE_STRING_MODE:Rt,REGEXP_MODE:Lt,RE_STARTERS_RE:Ot,SHEBANG:At,TITLE_MODE:Bt,UNDERSCORE_IDENT_RE:Ze,UNDERSCORE_TITLE_MODE:Pt});function $t(e,n){e.input[e.index-1]==="."&&n.ignoreMatch()}function zt(e,n){e.className!==void 0&&(e.scope=e.className,delete e.className)}function Kt(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=$t,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function Gt(e,n){Array.isArray(e.illegal)&&(e.illegal=we(...e.illegal))}function Ht(e,n){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Wt(e,n){e.relevance===void 0&&(e.relevance=1)}var Yt=(e,n)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");let t=Object.assign({},e);Object.keys(e).forEach(a=>{delete e[a]}),e.keywords=t.keywords,e.begin=ce(t.beforeMatch,sn(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},Zt=["of","and","for","in","not","or","if","then","parent","list","value"],qt="keyword";function gn(e,n,t=qt){let a=Object.create(null);return typeof e=="string"?c(t,e.split(" ")):Array.isArray(e)?c(t,e):Object.keys(e).forEach(function(g){Object.assign(a,gn(e[g],n,g))}),a;function c(g,r){n&&(r=r.map(i=>i.toLowerCase())),r.forEach(function(i){let s=i.split("|");a[s[0]]=[g,Xt(s[0],s[1])]})}}function Xt(e,n){return n?Number(n):Qt(e)?0:1}function Qt(e){return Zt.includes(e.toLowerCase())}var je={},oe=e=>{console.error(e)},en=(e,...n)=>{console.log(`WARN: ${e}`,...n)},ue=(e,n)=>{je[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),je[`${e}/${n}`]=!0)},Ae=new Error;function bn(e,n,{key:t}){let a=0,c=e[t],g={},r={};for(let i=1;i<=n.length;i++)r[i+a]=c[i],g[i+a]=!0,a+=on(n[i-1]);e[t]=r,e[t]._emit=g,e[t]._multi=!0}function Vt(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw oe("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Ae;if(typeof e.beginScope!="object"||e.beginScope===null)throw oe("beginScope must be object"),Ae;bn(e,e.begin,{key:"beginScope"}),e.begin=Ye(e.begin,{joinWith:""})}}function Jt(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw oe("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Ae;if(typeof e.endScope!="object"||e.endScope===null)throw oe("endScope must be object"),Ae;bn(e,e.end,{key:"endScope"}),e.end=Ye(e.end,{joinWith:""})}}function jt(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function ea(e){jt(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Vt(e),Jt(e)}function na(e){function n(r,i){return new RegExp(Ee(r),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(i?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(i,s){s.position=this.position++,this.matchIndexes[this.matchAt]=s,this.regexes.push([s,i]),this.matchAt+=on(i)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let i=this.regexes.map(s=>s[1]);this.matcherRe=n(Ye(i,{joinWith:"|"}),!0),this.lastIndex=0}exec(i){this.matcherRe.lastIndex=this.lastIndex;let s=this.matcherRe.exec(i);if(!s)return null;let l=s.findIndex((m,_)=>_>0&&m!==void 0),d=this.matchIndexes[l];return s.splice(0,l),Object.assign(s,d)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(i){if(this.multiRegexes[i])return this.multiRegexes[i];let s=new t;return this.rules.slice(i).forEach(([l,d])=>s.addRule(l,d)),s.compile(),this.multiRegexes[i]=s,s}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(i,s){this.rules.push([i,s]),s.type==="begin"&&this.count++}exec(i){let s=this.getMatcher(this.regexIndex);s.lastIndex=this.lastIndex;let l=s.exec(i);if(this.resumingScanAtSamePosition()&&!(l&&l.index===this.lastIndex)){let d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,l=d.exec(i)}return l&&(this.regexIndex+=l.position+1,this.regexIndex===this.count&&this.considerAll()),l}}function c(r){let i=new a;return r.contains.forEach(s=>i.addRule(s.begin,{rule:s,type:"begin"})),r.terminatorEnd&&i.addRule(r.terminatorEnd,{type:"end"}),r.illegal&&i.addRule(r.illegal,{type:"illegal"}),i}function g(r,i){let s=r;if(r.isCompiled)return s;[zt,Ht,ea,Yt].forEach(d=>d(r,i)),e.compilerExtensions.forEach(d=>d(r,i)),r.__beforeBegin=null,[Kt,Gt,Wt].forEach(d=>d(r,i)),r.isCompiled=!0;let l=null;return typeof r.keywords=="object"&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),l=r.keywords.$pattern,delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=gn(r.keywords,e.case_insensitive)),s.keywordPatternRe=n(l,!0),i&&(r.begin||(r.begin=/\B|\b/),s.beginRe=n(s.begin),!r.end&&!r.endsWithParent&&(r.end=/\B|\b/),r.end&&(s.endRe=n(s.end)),s.terminatorEnd=Ee(s.end)||"",r.endsWithParent&&i.terminatorEnd&&(s.terminatorEnd+=(r.end?"|":"")+i.terminatorEnd)),r.illegal&&(s.illegalRe=n(r.illegal)),r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map(function(d){return ta(d==="self"?r:d)})),r.contains.forEach(function(d){g(d,s)}),r.starts&&g(r.starts,i),s.matcher=c(s),s}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=re(e.classNameAliases||{}),g(e)}function pn(e){return e?e.endsWithParent||pn(e.starts):!1}function ta(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(n){return re(e,{variants:null},n)})),e.cachedVariants?e.cachedVariants:pn(e)?re(e,{starts:e.starts?re(e.starts):null}):Object.isFrozen(e)?re(e):e}var aa="11.12.0",We=class extends Error{constructor(n,t){super(n),this.name="HTMLInjectionError",this.html=t}},ze=rn,nn=re,tn=Symbol("nomatch"),ia=7,_n=function(e){let n=Object.create(null),t=Object.create(null),a=[],c=!0,g="Could not find the language '{}', did you forget to load/include a language module?",r={disableAutodetect:!0,name:"Plain text",contains:[]},i={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:He};function s(o){return i.noHighlightRe.test(o)}function l(o){let b=o.className+" ";b+=o.parentNode?o.parentNode.className:"";let p=i.languageDetectRe.exec(b);if(p){let y=k(p[1]);return y||(en(g.replace("{}",p[1])),en("Falling back to no-highlight mode for this block.",o)),y?p[1]:"no-highlight"}return b.split(/\s+/).find(y=>s(y)||k(y))}function d(o,b,p){let y="",I="";typeof b=="object"?(y=o,p=b.ignoreIllegals,I=b.language):(ue("10.7.0","highlight(lang, code, ...args) has been deprecated."),ue("10.7.0",`Please use highlight(code, options) instead.
2
+ https://github.com/highlightjs/highlight.js/issues/2277`),I=o,y=b),p===void 0&&(p=!0);let F={code:y,language:I};K("before:highlight",F);let z=F.result?F.result:m(F.language,F.code,p);return z.code=F.code,K("after:highlight",z),z}function m(o,b,p,y){let I=Object.create(null);function F(u,E){return u.keywords[E]}function z(){if(!h.keywords){H.addText($);return}let u=0;h.keywordPatternRe.lastIndex=0;let E=h.keywordPatternRe.exec($),O="";for(;E;){O+=$.substring(u,E.index);let D=j.case_insensitive?E[0].toLowerCase():E[0],Y=F(h,D);if(Y){let[ae,gt]=Y;if(H.addText(O),O="",I[D]=(I[D]||0)+1,I[D]<=ia&&(ye+=gt),ae.startsWith("_"))O+=E[0];else{let bt=j.classNameAliases[ae]||ae;X(E[0],bt)}}else O+=E[0];u=h.keywordPatternRe.lastIndex,E=h.keywordPatternRe.exec($)}O+=$.substring(u),H.addText(O)}function J(){if($==="")return;let u=null;if(typeof h.subLanguage=="string"){if(!n[h.subLanguage]){H.addText($);return}u=m(h.subLanguage,$,!0,Te[h.subLanguage]),Te[h.subLanguage]=u._top}else u=f($,h.subLanguage.length?h.subLanguage:null);h.relevance>0&&(ye+=u.relevance),H.__addSublanguage(u._emitter,u.language)}function q(){h.subLanguage!=null?J():z(),$=""}function X(u,E){u!==""&&(H.startScope(E),H.addText(u),H.endScope())}function le(u,E){let O=1,D=E.length-1;for(;O<=D;){if(!u._emit[O]){O++;continue}let Y=j.classNameAliases[u[O]]||u[O],ae=E[O];Y?X(ae,Y):($=ae,z(),$=""),O++}}function he(u,E){return u.scope&&typeof u.scope=="string"&&H.openNode(j.classNameAliases[u.scope]||u.scope),u.beginScope&&(u.beginScope._wrap?(X($,j.classNameAliases[u.beginScope._wrap]||u.beginScope._wrap),$=""):u.beginScope._multi&&(le(u.beginScope,E),$="")),h=Object.create(u,{parent:{value:h}}),h}function _e(u,E,O){let D=Tt(u.endRe,O);if(D){if(u["on:end"]){let Y=new Oe(u);u["on:end"](E,Y),Y.isMatchIgnored&&(D=!1)}if(D){for(;u.endsParent&&u.parent;)u=u.parent;return u}}if(u.endsWithParent)return _e(u.parent,E,O)}function Le(u){return h.matcher.regexIndex===0?($+=u[0],1):($e=!0,0)}function Be(u){let E=u[0],O=u.rule,D=new Oe(O),Y=[O.__beforeBegin,O["on:begin"]];for(let ae of Y)if(ae&&(ae(u,D),D.isMatchIgnored))return Le(E);return O.skip?$+=E:(O.excludeBegin&&($+=E),q(),!O.returnBegin&&!O.excludeBegin&&($=E)),he(O,u),O.returnBegin?0:E.length}function Pe(u){let E=u[0],O=b.substring(u.index),D=_e(h,u,O);if(!D)return tn;let Y=h;h.endScope&&h.endScope._wrap?(q(),X(E,h.endScope._wrap)):h.endScope&&h.endScope._multi?(q(),le(h.endScope,u)):Y.skip?$+=E:(Y.returnEnd||Y.excludeEnd||($+=E),q(),Y.excludeEnd&&($=E));do h.scope&&H.closeNode(),!h.skip&&!h.subLanguage&&(ye+=h.relevance),h=h.parent;while(h!==D.parent);return D.starts&&he(D.starts,u),Y.returnEnd?0:E.length}function Ue(){let u=[];for(let E=h;E!==j;E=E.parent)E.scope&&u.unshift(E.scope);u.forEach(E=>H.openNode(E))}let de={};function Ne(u,E){let O=E&&E[0];if($+=u,O==null)return q(),0;if(de.type==="begin"&&E.type==="end"&&de.index===E.index&&O===""){if($+=b.slice(E.index,E.index+1),!c){let D=new Error(`0 width match regex (${o})`);throw D.languageName=o,D.badRule=de.rule,D}return 1}if(de=E,E.type==="begin")return Be(E);if(E.type==="illegal"&&!p){let D=new Error('Illegal lexeme "'+O+'" for mode "'+(h.scope||"<unnamed>")+'"');throw D.mode=h,D}else if(E.type==="end"){let D=Pe(E);if(D!==tn)return D}if(E.type==="illegal"&&O==="")return E.index===b.length||($+=`
3
+ `),1;if(Fe>1e5&&Fe>E.index*3)throw new Error("potential infinite loop, way more iterations than matches");return $+=O,O.length}let j=k(o);if(!j)throw oe(g.replace("{}",o)),new Error('Unknown language: "'+o+'"');let B=na(j),ie="",h=y||B,Te={},H=new i.__emitter(i);Ue();let $="",ye=0,se=0,Fe=0,$e=!1;try{if(j.__emitTokens)j.__emitTokens(b,H);else{for(h.matcher.considerAll();;){Fe++,$e?$e=!1:h.matcher.considerAll(),h.matcher.lastIndex=se;let u=h.matcher.exec(b);if(!u)break;let E=b.substring(se,u.index),O=Ne(E,u);se=u.index+O}Ne(b.substring(se))}return H.finalize(),ie=H.toHTML(),{language:o,value:ie,relevance:ye,illegal:!1,_emitter:H,_top:h}}catch(u){if(u.message&&u.message.includes("Illegal"))return{language:o,value:ze(b),illegal:!0,relevance:0,_illegalBy:{message:u.message,index:se,context:b.slice(se-100,se+100),mode:u.mode,resultSoFar:ie},_emitter:H};if(c)return{language:o,value:ze(b),illegal:!1,relevance:0,errorRaised:u,_emitter:H,_top:h};throw u}}function _(o){let b={value:ze(o),illegal:!1,relevance:0,_top:r,_emitter:new i.__emitter(i)};return b._emitter.addText(o),b}function f(o,b){b=b||i.languages||Object.keys(n);let p=_(o),y=b.filter(k).filter(W).map(q=>m(q,o,!1));y.unshift(p);let I=y.sort((q,X)=>{if(q.relevance!==X.relevance)return X.relevance-q.relevance;if(q.language&&X.language){if(k(q.language).supersetOf===X.language)return 1;if(k(X.language).supersetOf===q.language)return-1}return 0}),[F,z]=I,J=F;return J.secondBest=z,J}function T(o,b,p){let y=b&&t[b]||p;o.classList.add("hljs"),o.classList.add(`language-${y}`)}function N(o){let b=null,p=l(o);if(s(p))return;if(K("before:highlightElement",{el:o,language:p}),o.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",o);return}if(o.children.length>0&&(i.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(o)),i.throwUnescapedHTML))throw new We("One of your code blocks includes unescaped HTML.",o.innerHTML);b=o;let y=b.textContent,I=p?d(y,{language:p,ignoreIllegals:!0}):f(y);o.innerHTML=I.value,o.dataset.highlighted="yes",T(o,p,I.language),o.result={language:I.language,re:I.relevance,relevance:I.relevance},I.secondBest&&(o.secondBest={language:I.secondBest.language,relevance:I.secondBest.relevance}),K("after:highlightElement",{el:o,result:I,text:y})}function S(o){i=nn(i,o)}let A=()=>{w(),ue("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function C(){w(),ue("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let U=!1;function w(){function o(){w()}if(document.readyState==="loading"){U||window.addEventListener("DOMContentLoaded",o,!1),U=!0;return}document.querySelectorAll(i.cssSelector).forEach(N)}function M(o,b){let p=null;try{p=b(e)}catch(y){if(oe("Language definition for '{}' could not be registered.".replace("{}",o)),c)oe(y);else throw y;p=r}p.name||(p.name=o),n[o]=p,p.rawDefinition=b.bind(null,e),p.aliases&&L(p.aliases,{languageName:o})}function R(o){delete n[o];for(let b of Object.keys(t))t[b]===o&&delete t[b]}function x(){return Object.keys(n)}function k(o){return o=(o||"").toLowerCase(),n[o]||n[t[o]]}function L(o,{languageName:b}){typeof o=="string"&&(o=[o]),o.forEach(p=>{t[p.toLowerCase()]=b})}function W(o){let b=k(o);return b&&!b.disableAutodetect}function Q(o){o["before:highlightBlock"]&&!o["before:highlightElement"]&&(o["before:highlightElement"]=b=>{o["before:highlightBlock"](Object.assign({block:b.el},b))}),o["after:highlightBlock"]&&!o["after:highlightElement"]&&(o["after:highlightElement"]=b=>{o["after:highlightBlock"](Object.assign({block:b.el},b))})}function V(o){Q(o),a.push(o)}function ee(o){let b=a.indexOf(o);b!==-1&&a.splice(b,1)}function K(o,b){let p=o;a.forEach(function(y){y[p]&&y[p](b)})}function G(o){return ue("10.7.0","highlightBlock will be removed entirely in v12.0"),ue("10.7.0","Please use highlightElement now."),N(o)}Object.assign(e,{highlight:d,highlightAuto:f,highlightAll:w,highlightElement:N,highlightBlock:G,configure:S,initHighlighting:A,initHighlightingOnLoad:C,registerLanguage:M,unregisterLanguage:R,listLanguages:x,getLanguage:k,registerAliases:L,autoDetection:W,inherit:nn,addPlugin:V,removePlugin:ee}),e.debugMode=function(){c=!1},e.safeMode=function(){c=!0},e.versionString=aa,e.regex={concat:ce,lookahead:sn,either:we,optional:ht,anyNumberOfTimes:mt};for(let o in Se)typeof Se[o]=="object"&&an(Se[o]);return Object.assign(e,Se),e},ge=_n({});ge.newInstance=()=>_n({});En.exports=ge;ge.HighlightJS=ge;ge.default=ge});var mn=_t(fn(),1);var ne=mn.default;function hn(e){let n=e.regex,t={},a={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});let c={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},g=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),r={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},i={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,c]};c.contains.push(i);let s={match:/\\"/},l={className:"string",begin:/'/,end:/'/},d={match:/\\'/},m={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},_=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],f=e.SHEBANG({binary:`(${_.join("|")})`,relevance:10}),T={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},N=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],S=["true","false"],A={match:/(\/[a-z._-]+)+/},C=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],U=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],w=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],M=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:N,literal:S,built_in:[...C,...U,"set","shopt",...w,...M]},contains:[f,e.SHEBANG(),T,m,g,r,A,i,s,l,d,t]}}function Nn(e){let n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),a="decltype\\(auto\\)",c="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(c)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",i=n.concat(/\batomic_/,n.either("bool","char","schar","uchar","short","ushort","int","uint","long","ulong","llong","ullong","char16_t","char32_t","wchar_t","int_least8_t","uint_least8_t","int_least16_t","uint_least16_t","int_least32_t","uint_least32_t","int_least64_t","uint_least64_t","int_fast8_t","uint_fast8_t","int_fast16_t","uint_fast16_t","int_fast32_t","uint_fast32_t","int_fast64_t","uint_fast64_t","intptr_t","uintptr_t","size_t","ptrdiff_t","intmax_t","uintmax_t"),/\b/),s={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:i}]},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},m={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},_={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},d,{scope:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},f={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(d,{className:"string"}),t,e.C_BLOCK_COMMENT_MODE]},T=[_,f],N={className:"title",begin:n.optional(c)+e.IDENT_RE,relevance:0},S=n.optional(c)+e.IDENT_RE+"\\s*\\(",A=12,w={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},M=[...T,s,t,e.C_BLOCK_COMMENT_MODE,m,d],R={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:w,contains:M.concat([{begin:/\(/,end:/\)/,keywords:w,contains:M.concat(["self"]),relevance:0}]),relevance:0},x={begin:"("+r+"[\\*&\\s]+){1,"+A+"}"+S,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:w,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:w,relevance:0},{begin:S,returnBegin:!0,contains:[e.inherit(N,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,d,m,s,{begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,d,m,s]}]},s,t,e.C_BLOCK_COMMENT_MODE,...T]};return{name:"C",aliases:["h"],keywords:w,disableAutodetect:!0,illegal:"</",contains:[].concat(R,x,M,[...T,{begin:e.IDENT_RE+"::",keywords:w},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:f,strings:d,keywords:w}}}function Tn(e){let n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),a="decltype\\(auto\\)",c="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+n.optional(c)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",i={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:\\b[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|\\b[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|\\b0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},m={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},l,{scope:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},_={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),t,e.C_BLOCK_COMMENT_MODE]},f=[m,_],T={className:"title",begin:n.optional(c)+e.IDENT_RE,relevance:0},N=n.optional(c)+e.IDENT_RE+"\\s*\\(",S=12,A=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],C=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],U=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],w=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],x={type:C,keyword:A,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:U},k={className:"function.dispatch",relevance:0,keywords:{_hint:w},begin:n.concat(/\b/,`(?!${A.join("|")})`,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},L=[k,...f,i,t,e.C_BLOCK_COMMENT_MODE,d,l],W={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:x,contains:L.concat([{begin:/\(/,end:/\)/,keywords:x,contains:L.concat(["self"]),relevance:0}]),relevance:0},Q={className:"function",begin:"("+r+"[\\*&\\s]+){1,"+S+"}"+N,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:x,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:x,relevance:0},{begin:N,returnBegin:!0,contains:[T],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:x,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,l,d,i,{begin:/\(/,end:/\)/,keywords:x,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,l,d,i]}]},i,t,e.C_BLOCK_COMMENT_MODE,...f]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:x,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(W,Q,k,L,[...f,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:x,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:x},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function yn(e){let n=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],t=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],a=["default","false","null","true"],c=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],g=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],r={keyword:c.concat(g),built_in:n,literal:a},i=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),s="\\d(_*\\d)*",l="([uU][lL]?|[lL][uU]?)?",m={className:"number",variants:[{begin:"\\b0[bB]_*[01](_*[01])*"+l},{begin:"(-?)\\b0[xX]_*[a-fA-F0-9](_*[a-fA-F0-9])*"+l},{begin:"(-?)(\\b"+s+"(\\.("+s+")?)?|\\."+s+")([eE][-+]?"+s+")?"+"([fFdDmM]|[uU][lL]?|[lL][uU]?)?"}],relevance:0},_={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},f={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},T=e.inherit(f,{illegal:/\n/}),N={className:"subst",begin:/\{/,end:/\}/,keywords:r},S=e.inherit(N,{illegal:/\n/}),A={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,S]},C={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},N]},U=e.inherit(C,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},S]});N.contains=[C,A,f,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,m,e.C_BLOCK_COMMENT_MODE],S.contains=[U,A,T,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,m,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];let w={variants:[_,C,A,f,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},M={begin:"<",end:">",contains:[{beginKeywords:"in out"},i]},R=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",x={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:r,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},w,m,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},i,M,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,M,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+R+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:r,contains:[{beginKeywords:t.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,M],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:r,relevance:0,contains:[w,m,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},x]}}var ra=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),sa=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],oa=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],ca=[...sa,...oa],la=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),da=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),ua=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),ga=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Sn(e){let n=e.regex,t=ra(e),a={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},c="and or not only",g=/@-?\w[\w]*(-\w+)*/,r="[a-zA-Z-][a-zA-Z0-9_-]*",i=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[t.BLOCK_COMMENT,a,t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+r,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+da.join("|")+")"},{begin:":(:)?("+ua.join("|")+")"}]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ga.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,t.UNICODE_RANGE,...i,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...i,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:g},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:c,attribute:la.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...i,t.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+ca.join("|")+")\\b"}]}}function On(e){let n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+,\d+ +\+\d+ +@@/,/^@@ +-\d+ +\+\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function An(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"</"}}function wn(e){let g={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:g,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\b0[bB](_?[01])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:g,illegal:/["']/}]}]}}function Rn(e){let n=e.regex,t={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let c={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},g={className:"literal",begin:/\bon|off|true|false|yes|no\b/},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},i={begin:/\[/,end:/\]/,contains:[a,g,c,r,t,"self"],relevance:0},s=/[A-Za-z0-9_-]+/,l=/"(\\"|[^"])*"/,d=/'[^']*'/,m=n.either(s,l,d),_=n.concat(m,"(\\s*\\.\\s*",m,")*",n.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{begin:_,className:"attr",starts:{end:/$/,contains:[a,i,g,c,r,t]}}]}}var be="[0-9](_*[0-9])*",ve=`\\.(${be})`,Me="[0-9a-fA-F](_*[0-9a-fA-F])*",vn={className:"number",variants:[{begin:`(\\b(${be})((${ve})|\\.)?|(${ve}))[eE][+-]?(${be})[fFdD]?\\b`},{begin:`\\b(${be})((${ve})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${ve})[fFdD]?\\b`},{begin:`\\b(${be})[fFdD]\\b`},{begin:`\\b0[xX]((${Me})\\.?|(${Me})?\\.(${Me}))[pP][+-]?(${be})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Me})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Mn(e,n,t){return t===-1?"":e.replace(n,a=>Mn(e,n,t-1))}function In(e){let n=e.regex,t="[\xC0-\u02B8a-zA-Z_$][\xC0-\u02B8a-zA-Z_$0-9]*",a="(?:(?:\\s*\\[\\s*])+)?",c=t+"<@@@>"+a,r="(?:"+("\\?(?:\\s+(?:extends|super)\\s+"+c+")?")+"|"+c+")",i=Mn("(?:\\s*<\\s*"+r+"(?:\\s*,\\s*"+r+")*\\s*>)?",/<@@@>/g,2),_={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},f={className:"meta",begin:"@"+t,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},T={className:"params",begin:/\(/,end:/\)/,keywords:_,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:_,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{beginKeywords:"new throw return else yield assert",relevance:0},{begin:[t,n.concat(i,a,/\s+/),t,a,/\s*/,/=(?!=)/],className:{1:"type",3:"variable",6:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",3:"title.class"},contains:[T,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{begin:[t,n.concat(i,a,/\s+/),t,/\s*(?=\()/],className:{1:"type",3:"title.function"},keywords:_,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:_,relevance:0,contains:[f,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,vn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},vn,f]}}var Cn="[A-Za-z$_][0-9A-Za-z$_]*",ba=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],pa=["true","false","null","undefined","NaN","Infinity"],xn=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],kn=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Dn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],_a=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],Ea=[].concat(Dn,xn,kn);function Ln(e){let n=e.regex,t=(p,{after:y})=>{let I="</"+p[0].slice(1);return p.input.indexOf(I,y)!==-1},a=Cn,c={begin:"<>",end:"</>"},g=/<[A-Za-z0-9\\._:-]+\s*\/>/,r={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(p,y)=>{let I=p[0].length+p.index,F=p.input[I];if(F==="<"||F===","){y.ignoreMatch();return}F===">"&&(t(p,{after:I})||y.ignoreMatch());let z,J=p.input.substring(I);if(z=J.match(/^\s*=/)){y.ignoreMatch();return}if((z=J.match(/^\s+extends\s+/))&&z.index===0){y.ignoreMatch();return}}},i={$pattern:Cn,keyword:ba,literal:pa,built_in:Ea,"variable.language":_a},s="[0-9](_?[0-9])*",l=`\\.(${s})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:`(\\b(${d})((${l})|\\.)?|(${l}))[eE][+-]?(${s})\\b`},{begin:`\\b(${d})\\b((${l})\\b|\\.)?|(${l})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},_={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},f={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,_],subLanguage:"xml"}},T={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,_],subLanguage:"css"}},N={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,_],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,_]},C={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:a+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},U=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,T,N,S,{match:/\$\d+/},m];_.contains=U.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(U)});let w=[].concat(C,_.contains),M=w.concat([{begin:/(\s*)\(/,end:/\)/,keywords:i,contains:["self"].concat(w)}]),R={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:M},x={variants:[{match:[/class/,/\s+/,a,/\s+/,/extends/,/\s+/,n.concat(a,"(",n.concat(/\./,a),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,a],scope:{1:"keyword",3:"title.class"}}]},k={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...xn,...kn]}},L={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},W={variants:[{match:[/function/,/\s+/,a,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[R],illegal:/%/},Q={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function V(p){return n.concat("(?!",p.join("|"),")")}let ee={match:n.concat(/\b/,V([...Dn,"super","import","await"].map(p=>`${p}\\s*\\(`)),a,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},K={begin:n.concat(/\./,n.lookahead(n.concat(a,/(?![0-9A-Za-z$_(])/))),end:a,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},G={match:[/get|set/,/\s+/,a,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},R]},o="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",b={match:[/const|var|let/,/\s+/,a,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(o)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[R]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:M,CLASS_REFERENCE:k},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),L,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,T,N,S,C,{match:/\$\d+/},m,k,{scope:"attr",match:a+n.lookahead(":"),relevance:0},b,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[C,e.REGEXP_MODE,{className:"function",begin:o,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:M}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:c.begin,end:c.end},{match:g},{begin:r.begin,"on:begin":r.isTrulyOpeningTag,end:r.end}],subLanguage:"xml",contains:[{begin:r.begin,end:r.end,skip:!0,contains:["self"]}]}]},W,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[R,e.inherit(e.TITLE_MODE,{begin:a,className:"title.function"})]},{match:/\.\.\./,relevance:0},K,{match:"\\$"+a,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[R]},ee,Q,x,G,{match:/\$[(.]/}]}}var fa="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",ma={scope:"number",match:fa,relevance:0};function Bn(e){let n={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},t={match:/[{}[\],:]/,className:"punctuation",relevance:0},a=["true","false","null"],c={scope:"literal",beginKeywords:a.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:a},contains:[n,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,ma,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var pe="[0-9](_*[0-9])*",Ie=`\\.(${pe})`,Ce="[0-9a-fA-F](_*[0-9a-fA-F])*",ha={className:"number",variants:[{begin:`(\\b(${pe})((${Ie})|\\.)?|(${Ie}))[eE][+-]?(${pe})[fFdD]?\\b`},{begin:`\\b(${pe})((${Ie})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Ie})[fFdD]?\\b`},{begin:`\\b(${pe})[fFdD]\\b`},{begin:`\\b0[xX]((${Ce})\\.?|(${Ce})?\\.(${Ce}))[pP][+-]?(${pe})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ce})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Pn(e){let n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},t={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},a={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},c={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},g={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[g,c]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,g,c]}]};c.contains.push(r);let i={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},s={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}]},l=ha,d=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),m={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},_=m;return _.variants[1].contains=[m],m.variants[1].contains=[_],{name:"Kotlin",aliases:["kt","kts","ktm","ktx"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,d,t,a,i,s,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[m,e.C_LINE_COMMENT_MODE,d],relevance:0},e.C_LINE_COMMENT_MODE,d,i,s,r,e.C_NUMBER_MODE]},d]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},i,s]},r,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
4
+ `},l]}}function Un(e){let n=e.regex,t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},a={match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},c={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},g={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},r={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},i=/[A-Za-z][A-Za-z0-9+.-]*/,s={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:n.concat(/\[.+?\]\(/,i,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},l={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},d={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},m=e.inherit(l,{contains:[]}),_=e.inherit(d,{contains:[]});l.contains.push(_),d.contains.push(m);let f=[t,s];return[l,d,m,_].forEach(A=>{A.contains=A.contains.concat(f)}),f=f.concat(l,d),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:f},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:f}]}]},t,g,a,l,d,{className:"quote",begin:"^>\\s+",contains:f,end:"$"},c,s,r,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function Fn(e){let n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,a=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),c=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),g=n.concat(/[A-Z]+/,t),r={scope:"variable",match:"\\$+"+a},i={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},s={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null}),d=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(s)}),m={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(s),"on:begin":(K,G)=>{G.data._beginMatch=K[1]||K[2]},"on:end":(K,G)=>{G.data._beginMatch!==K[1]&&G.ignoreMatch()}},_=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),f=`[
5
+ ]`,T={scope:"string",variants:[d,l,m,_]},N={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},S=["false","null","true"],A=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],C=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],w={keyword:A,literal:(K=>{let G=[];return K.forEach(o=>{G.push(o),o.toLowerCase()===o?G.push(o.toUpperCase()):G.push(o.toLowerCase())}),G})(S),built_in:C},M=K=>K.map(G=>G.replace(/\|\d+$/,"")),R={variants:[{match:[/new/,n.concat(f,"+"),n.concat("(?!",M(C).join("\\b|"),"\\b)"),c],scope:{1:"keyword",4:"title.class"}}]},x=n.concat(a,"\\b(?!\\()"),k={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),x],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[c,n.concat(/::/,n.lookahead(/(?!class\b)/)),x],scope:{1:"title.class",3:"variable.constant"}},{match:[c,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[c,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},L={scope:"attr",match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},W={relevance:0,begin:/\(/,end:/\)/,keywords:w,contains:[L,r,k,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,T,N,R]},Q={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",M(A).join("\\b|"),"|",M(C).join("\\b|"),"\\b)"),a,n.concat(f,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[W]};W.contains.push(Q);let V=[L,k,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,T,N,R],ee={begin:n.concat(/#\[\s*\\?/,n.either(c,g)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:S,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:S,keyword:["new","array"]},contains:["self",...V]},...V,{scope:"meta",variants:[{match:c},{match:g}]}]};return{case_insensitive:!1,keywords:w,contains:[ee,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},i,{scope:"variable.language",match:/\$this\b/},r,Q,k,{match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},R,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:w,contains:["self",ee,r,k,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,T,N]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},T,N]}}function $n(e){let n=e.regex,t=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","lazy","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a,built_in:["__import__","abs","aiter","all","anext","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozendict","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","sentinel","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},s={className:"meta",begin:/^(>>>|\.\.\.) /},l={className:"subst",begin:/\{/,end:/\}/,keywords:i,illegal:/#/},d={begin:/\{\{/,relevance:0},m={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,s],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,s],relevance:10},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,s,d,l]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,s,d,l]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,d,l]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,d,l]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},_="[0-9](_?[0-9])*",f=`(\\b(${_}))?\\.(${_})|\\b(${_})\\.`,T=`\\b|${a.join("|")}`,N={className:"number",relevance:0,variants:[{begin:`(\\b(${_})|(${f}))[eE][+-]?(${_})[jJ]?(?=${T})`},{begin:`(${f})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${T})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${T})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${T})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${T})`},{begin:`\\b(${_})[jJ](?=${T})`}]},S={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},A={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",s,N,m,e.HASH_COMMENT_MODE]}]};return l.contains=[m,N,s],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[s,N,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},m,S,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[A]},{variants:[{match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[N,A,m]}]}}function zn(e){let n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),c=n.concat(a,/(::\w+)*/),r={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},i={className:"doctag",begin:"@[A-Za-z]+"},s={begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[i]}),e.COMMENT("^=begin","^=end",{contains:[i],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],d={className:"subst",begin:/#\{/,end:/\}/,keywords:r},m={className:"string",contains:[e.BACKSLASH_ESCAPE,d],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,d]})]}]},_="[1-9](_?[0-9])*|0",f="[0-9](_?[0-9])*",T={className:"number",relevance:0,variants:[{begin:`\\b(${_})(\\.(${f}))?([eE][+-]?(${f})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},N={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:r}]},R=[m,{variants:[{match:[/class\s+/,c,/\s+<\s+/,c]},{match:[/\b(class|module)\s+/,c]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,c],scope:{2:"title.class"},keywords:r},{relevance:0,match:[c,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[N]},{begin:"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[m,{begin:t}],relevance:0},T,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,d],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(s,l),relevance:0}].concat(s,l);d.contains=R,N.contains=R;let W=[{begin:/^\s*=>/,starts:{end:"$",contains:R}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:r,contains:R}}];return l.unshift(s),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(W).concat(l).concat(R)}}function Kn(e){let n=e.regex,t=/(r#)?/,a=n.concat(t,e.UNDERSCORE_IDENT_RE),c=n.concat(t,e.IDENT_RE),g={scope:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!(?:let|for|while|if|else|match)\b)/,c,n.lookahead(/\s*\(/))},r="([ui](8|16|32|64|128|size)|f(16|32|64|128))?",i=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","raw","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],s=["true","false","Some","None","Ok","Err"],l=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],d=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f16","f32","f64","f128","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:d,keyword:i,literal:s,built_in:l},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{scope:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|"|\\|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{scope:"number",variants:[{begin:"\\b0b([01_]+)"+r},{begin:"\\b0o([0-7_]+)"+r},{begin:"\\b0x([A-Fa-f0-9_]+)"+r},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+r}],relevance:0},{begin:[/\bsafe/,/\s+/,/extern/],scope:{1:"keyword",3:"keyword"}},{begin:[/fn/,/\s+/,a],scope:{1:"keyword",3:"title.function"}},{scope:"meta",begin:"#!?\\[",end:"\\]",contains:[{scope:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,a],scope:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,a,/\s+/,/in/],scope:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,a],scope:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,a],scope:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:l,type:d}},{scope:"punctuation",begin:"->"},g]}}var Na=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Ta=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ya=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Sa=[...Ta,...ya],Oa=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Aa=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),wa=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Ra=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Gn(e){let n=Na(e),t=wa,a=Aa,c="@[a-z-]+",g="and or not only",i={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Sa.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+a.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+t.join("|")+")"},i,{begin:/\(/,end:/\)/,contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Ra.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[n.BLOCK_COMMENT,i,n.HEXCOLOR,n.CSS_NUMBER_MODE,n.UNICODE_RANGE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:c,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:g,attribute:Oa.join(" ")},contains:[{begin:c,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},i,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]},n.FUNCTION_DISPATCH]}}function Hn(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[./~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function Wn(e){let n=e.regex,t=e.COMMENT("--","$"),a={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},c={begin:/"/,end:/"/,contains:[{match:/""/}]},g=["true","false","unknown"],r=["double precision","large object","with timezone","without timezone"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["add","asc","collation","desc","final","first","last","view"],l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],d=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],m=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],_=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],f=d,T=[...l,...s].filter(M=>!d.includes(M)),N={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},S={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},A={match:n.concat(/\b/,n.either(...f),/\s*\(/),relevance:0,keywords:{built_in:f}};function C(M){return n.concat(/\b/,n.either(...M.map(R=>R.replace(/\s+/,"\\s+"))),/\b/)}let U={scope:"keyword",match:C(_),relevance:0};function w(M,{exceptions:R,when:x}={}){let k=x;return R=R||[],M.map(L=>L.match(/\|\d+$/)||R.includes(L)?L:k(L)?`${L}|0`:L)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:w(T,{when:M=>M.length<3}),literal:g,type:i,built_in:m},contains:[{scope:"type",match:C(r)},U,A,N,a,c,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,S]}}function Xn(e){return e?typeof e=="string"?e:e.source:null}function me(e){return P("(?=",e,")")}function P(...e){return e.map(t=>Xn(t)).join("")}function va(e){let n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function Z(...e){return"("+(va(e).capture?"":"?:")+e.map(a=>Xn(a)).join("|")+")"}new RegExp(Z(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));var Qe=e=>P(/\b/,e,/\w$/.test(e)?/\b/:/\B/),Ma=["Protocol","Type"].map(Qe),Yn=["init","self"].map(Qe),Ia=["Any","Self"],qe=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Zn=["false","nil","true"],Ca=["assignment","associativity","higherThan","left","lowerThan","none","right"],xa=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],qn=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Qn=Z(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Vn=Z(Qn,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Xe=P(Qn,Vn,"*"),Jn=Z(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),ke=Z(Jn,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),te=P(Jn,ke,"*"),xe=P(/[A-Z]/,ke,"*"),ka=["attached","autoclosure",P(/convention\(/,Z("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",P(/objc\(/,te,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],Da=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function jn(e){let n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/",{contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],c={match:[/\./,Z(...Ma,...Yn)],className:{2:"keyword"}},g={match:P(/\./,Z(...qe)),relevance:0},r=qe.filter(B=>typeof B=="string").concat(["_|0"]),i=qe.filter(B=>typeof B!="string").concat(Ia).map(Qe),s={variants:[{className:"keyword",match:Z(...i,...Yn)}]},l={$pattern:Z(/\b\w+/,/#\w+/),keyword:r.concat(xa),literal:Zn},d=[c,g,s],m={match:P(/\./,Z(...qn)),relevance:0},_={className:"built_in",match:P(/\b/,Z(...qn),/(?=\()/)},f=[m,_],T={match:/->/,relevance:0},N={className:"operator",relevance:0,variants:[{match:Xe},{match:`\\.(\\.|${Vn})+`}]},S=[T,N],A="([0-9]_*)+",C="([0-9a-fA-F]_*)+",U={className:"number",relevance:0,variants:[{match:`\\b(${A})(\\.(${A}))?([eE][+-]?(${A}))?\\b`},{match:`\\b0x(${C})(\\.(${C}))?([pP][+-]?(${A}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},w=(B="")=>({className:"subst",variants:[{match:P(/\\/,B,/[0\\tnr"']/)},{match:P(/\\/,B,/u\{[0-9a-fA-F]{1,8}\}/)}]}),M=(B="")=>({className:"subst",match:P(/\\/,B,/[\t ]*(?:[\r\n]|\r\n)/)}),R=(B="")=>({className:"subst",label:"interpol",begin:P(/\\/,B,/\(/),end:/\)/}),x=(B="")=>({begin:P(B,/"""/),end:P(/"""/,B),contains:[w(B),M(B),R(B)]}),k=(B="")=>({begin:P(B,/"/),end:P(/"/,B),contains:[w(B),R(B)]}),L={className:"string",variants:[x(),x("#"),x("##"),x("###"),k(),k("#"),k("##"),k("###")]},W=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],Q={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:W},V=B=>{let ie=P(B,/\//),h=P(/\//,B);return{begin:ie,end:h,contains:[...W,{scope:"comment",begin:`#(?!.*${h})`,end:/$/}]}},ee={scope:"regexp",variants:[V("###"),V("##"),V("#"),Q]},K={match:P(/`/,te,/`/)},G={className:"variable",match:/\$\d+/},o={className:"variable",match:`\\$${ke}+`},b=[K,G,o],p={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:Da,contains:[...S,U,L]}]}},y={scope:"keyword",match:P(/@/,Z(...ka),me(Z(/\(/,/\s+/)))},I={scope:"meta",match:P(/@/,te)},F=[p,y,I],z={match:me(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:P(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,ke,"+")},{className:"type",match:xe,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:P(/\s+&\s+/,me(xe)),relevance:0}]},J={begin:/</,end:/>/,keywords:l,contains:[...a,...d,...F,T,z]};z.contains.push(J);let q={match:P(te,/\s*:/),keywords:"_|0",relevance:0},X={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",q,...a,ee,...d,...f,...S,U,L,...b,...F,z]},le={begin:/</,end:/>/,keywords:"repeat each",contains:[...a,z]},he={begin:Z(me(P(te,/\s*:/)),me(P(te,/\s+/,te,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:te}]},_e={begin:/\(/,end:/\)/,keywords:l,contains:[he,...a,...d,...S,U,L,...F,z,X],endsParent:!0,illegal:/["']/},Le={match:[/(func|macro)/,/\s+/,Z(K.match,te,Xe)],className:{1:"keyword",3:"title.function"},contains:[le,_e,n],illegal:[/\[/,/%/]},Be={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[le,_e,n],illegal:/\[|%/},Pe={match:[/operator/,/\s+/,Xe],className:{1:"keyword",3:"title"}},Ue={begin:[/precedencegroup/,/\s+/,xe],className:{1:"keyword",3:"title"},contains:[z],keywords:[...Ca,...Zn],end:/}/},de={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Ne={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},j={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,te,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:l,contains:[le,...d,{begin:/:/,end:/\{/,keywords:l,contains:[{scope:"title.class.inherited",match:xe},...d],relevance:0}]};for(let B of L.variants){let ie=B.contains.find(Te=>Te.label==="interpol");ie.keywords=l;let h=[...d,...f,...S,U,L,...b];ie.contains=[...h,{begin:/\(/,end:/\)/,contains:["self",...h]}]}return{name:"Swift",keywords:l,contains:[...a,Le,Be,de,Ne,j,Pe,Ue,{beginKeywords:"import",end:/$/,contains:[...a],relevance:0},ee,...d,...f,...S,U,L,...b,...F,z,X]}}var De="[A-Za-z$_][0-9A-Za-z$_]*",et=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],nt=["true","false","null","undefined","NaN","Infinity"],tt=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],at=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],it=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],rt=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],st=[].concat(it,tt,at);function La(e){let n=e.regex,t=(p,{after:y})=>{let I="</"+p[0].slice(1);return p.input.indexOf(I,y)!==-1},a=De,c={begin:"<>",end:"</>"},g=/<[A-Za-z0-9\\._:-]+\s*\/>/,r={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(p,y)=>{let I=p[0].length+p.index,F=p.input[I];if(F==="<"||F===","){y.ignoreMatch();return}F===">"&&(t(p,{after:I})||y.ignoreMatch());let z,J=p.input.substring(I);if(z=J.match(/^\s*=/)){y.ignoreMatch();return}if((z=J.match(/^\s+extends\s+/))&&z.index===0){y.ignoreMatch();return}}},i={$pattern:De,keyword:et,literal:nt,built_in:st,"variable.language":rt},s="[0-9](_?[0-9])*",l=`\\.(${s})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:`(\\b(${d})((${l})|\\.)?|(${l}))[eE][+-]?(${s})\\b`},{begin:`\\b(${d})\\b((${l})\\b|\\.)?|(${l})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},_={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},f={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,_],subLanguage:"xml"}},T={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,_],subLanguage:"css"}},N={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,_],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,_]},C={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:a+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},U=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,T,N,S,{match:/\$\d+/},m];_.contains=U.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(U)});let w=[].concat(C,_.contains),M=w.concat([{begin:/(\s*)\(/,end:/\)/,keywords:i,contains:["self"].concat(w)}]),R={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:M},x={variants:[{match:[/class/,/\s+/,a,/\s+/,/extends/,/\s+/,n.concat(a,"(",n.concat(/\./,a),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,a],scope:{1:"keyword",3:"title.class"}}]},k={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...tt,...at]}},L={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},W={variants:[{match:[/function/,/\s+/,a,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[R],illegal:/%/},Q={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function V(p){return n.concat("(?!",p.join("|"),")")}let ee={match:n.concat(/\b/,V([...it,"super","import","await"].map(p=>`${p}\\s*\\(`)),a,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},K={begin:n.concat(/\./,n.lookahead(n.concat(a,/(?![0-9A-Za-z$_(])/))),end:a,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},G={match:[/get|set/,/\s+/,a,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},R]},o="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",b={match:[/const|var|let/,/\s+/,a,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(o)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[R]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:M,CLASS_REFERENCE:k},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),L,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,T,N,S,C,{match:/\$\d+/},m,k,{scope:"attr",match:a+n.lookahead(":"),relevance:0},b,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[C,e.REGEXP_MODE,{className:"function",begin:o,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:M}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:c.begin,end:c.end},{match:g},{begin:r.begin,"on:begin":r.isTrulyOpeningTag,end:r.end}],subLanguage:"xml",contains:[{begin:r.begin,end:r.end,skip:!0,contains:["self"]}]}]},W,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[R,e.inherit(e.TITLE_MODE,{begin:a,className:"title.function"})]},{match:/\.\.\./,relevance:0},K,{match:"\\$"+a,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[R]},ee,Q,x,G,{match:/\$[(.]/}]}}function ot(e){let n=e.regex,t=La(e),a=De,c=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],g={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},r={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:c},contains:[t.exports.CLASS_REFERENCE]},i={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},s=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],l={$pattern:De,keyword:et.concat(s),literal:nt,built_in:st.concat(c),"variable.language":rt},d={className:"meta",begin:"@"+a},m=(N,S,A)=>{let C=N.contains.findIndex(U=>U.label===S);if(C===-1)throw new Error("can not find mode to replace");N.contains.splice(C,1,A)};Object.assign(t.keywords,l),t.exports.PARAMS_CONTAINS.push(d);let _=t.contains.find(N=>N.scope==="attr"),f=Object.assign({},_,{match:n.concat(a,n.lookahead(/\s*\?:/))});t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,_,f]),t.contains=t.contains.concat([d,g,r,f]),m(t,"shebang",e.SHEBANG()),m(t,"use_strict",i);let T=t.contains.find(N=>N.label==="func.def");return T.relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t}function ct(e){let n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a=/[\p{L}0-9._:-]+/u,c={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},g={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},r=e.inherit(g,{begin:/\(/,end:/\)/}),i=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:a,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[c]},{begin:/'/,end:/'/,contains:[c]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[g,s,i,r,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[g,r,s,i]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},c,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[s]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:"javascript"}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(/</,n.lookahead(n.concat(t,n.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function lt(e){let n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},c={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},g={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},r={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,c]},i=e.inherit(r,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),_={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},f={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},T={begin:/\{/,end:/\}/,contains:[f],illegal:"\\n",relevance:0},N={begin:"\\[",end:"\\]",contains:[f],illegal:"\\n",relevance:0},S=[a,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},_,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},T,N,g,r],A=[...S];return A.pop(),A.push(i),f.contains=A,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:S}}var Ba={bash:hn,c:Nn,cpp:Tn,csharp:yn,css:Sn,diff:On,dockerfile:An,go:wn,ini:Rn,java:In,javascript:Ln,json:Bn,kotlin:Pn,markdown:Un,php:Fn,python:$n,ruby:zn,rust:Kn,scss:Gn,shell:Hn,sql:Wn,swift:jn,typescript:ot,xml:ct,yaml:lt};for(let[e,n]of Object.entries(Ba))ne.registerLanguage(e,n);ne.registerAliases(["sh","zsh","console"],{languageName:"bash"});ne.registerAliases(["toml"],{languageName:"ini"});ne.registerAliases(["html","svg","vue"],{languageName:"xml"});ne.registerAliases(["tsx","mts","cts"],{languageName:"typescript"});ne.registerAliases(["jsx","mjs","cjs"],{languageName:"javascript"});var dt={keyword:v.ember,"selector-tag":v.ember,doctag:v.ember,built_in:v.pink,type:v.pink,title:v.gold,"title.class_":v.pink,"title.function_":v.gold,string:v.green,regexp:v.green,"template-variable":v.sand,subst:v.sand,number:v.gold,literal:v.ember,symbol:v.gold,comment:e=>v.grey(v.italic(e)),quote:e=>v.grey(v.italic(e)),attr:v.sand,attribute:v.sand,property:v.sand,variable:v.sand,params:v.sand,meta:v.grey,tag:v.pink,name:v.pink,addition:v.green,deletion:v.red,section:e=>v.bold(v.gold(e)),bullet:v.ember,emphasis:v.italic,strong:v.bold,link:v.underline},Pa=e=>e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#x27;/g,"'").replace(/&amp;/g,"&");function ut(e){let n=[],t="";for(let a of e.matchAll(/<span class="hljs-([^"]+)">|<\/span>|([^<]+)/g))if(a[1]!==void 0){let c=a[1].split(" "),g=c.length>1?`${c[0]}.${c[1].replace(/^hljs-/,"")}`:c[0];n.push(dt[g]??dt[c[0]]??null)}else if(a[0]==="</span>")n.pop();else{let c=[...n].reverse().find(Boolean),g=Pa(a[2]);t+=c?g.split(`
6
+ `).map(c).join(`
7
+ `):g}return t}function Ui(e,n){let t=n.toLowerCase();try{if(t&&ne.getLanguage(t))return ut(ne.highlight(e,{language:t,ignoreIllegals:!0}).value);if(!t&&e.length<2e4)return ut(ne.highlightAuto(e).value)}catch{}return e}export{Ui as highlight,ut as htmlToAnsi};
@@ -0,0 +1,5 @@
1
+ import{a as U,b as Y}from"./chunk-2XK6FXMP.js";import{d as M,h as _,j as x,s as I,x as P}from"./chunk-2DDAUP6P.js";import{h as m,r as u,s as p,t as L,v as S}from"./chunk-HEEZNIZR.js";import{b as o}from"./chunk-5PRYZOW7.js";import"./chunk-K3ZZ2VJH.js";import{createInterface as R}from"node:readline/promises";var r=(y="")=>process.stdout.write(y+`
2
+ `);async function J(y,s){let a=!!process.stdout.isTTY,n=()=>a?Math.max(40,process.stdout.columns||80):100;a&&await import("./highlight-QJIBHZTN.js").then(e=>U(e.highlight)).catch(()=>{});let C=new Y(()=>n()-1),h=!!process.stdin.isTTY&&a?R({input:process.stdin,output:process.stdout,terminal:!0}):null;x(e=>{process.stderr.isTTY&&process.stderr.write(o.grey(`\u2726 ${e}`)+`
3
+ `)});let l=new AbortController;process.on("SIGINT",()=>{l.signal.aborted&&process.exit(130),l.abort()});let A=null,d=0,f=!1,g=!1,$=()=>{a?C.end().forEach(e=>r(e)):f&&r(),f=!1},E=async e=>{if(s.autoYes)return!0;if(!h)return r(` ${e} no (not a terminal; pass --yes to allow)`),!1;let t=(await h.question(` ${e} ${o.grey("[y/N]")} `)).trim().toLowerCase();return t==="y"||t==="yes"},w="",j={onDelta:e=>{!f&&g&&r(),g=!1;let t=m(e);a?C.push(t).forEach(i=>r(i)):process.stdout.write(t),f=!0},onToolStart:(e,t)=>{$(),w=t,g=!0},onToolResult:(e,t,i="")=>{if(!t){r(u(e,w,"error",n())),p(i,n(),3).forEach(c=>r(c));return}if(e==="write_file"||e==="edit_file"||e==="run_command"){p(i,n(),e==="run_command"?8:2).forEach(c=>r(c));return}let k=L(e,i);r(u(e,w,"ok",n(),k.suffix)),k.detail&&p(k.detail,n()).forEach(c=>r(c))},approveChange:async e=>(r(u(e.created?"write_file":"edit_file",e.path,"ok",n())),S(e.diff,e.path,n(),e.created).forEach(t=>r(t)),s.mode==="plan"?{declined:"Plan mode is on, so no files may be changed."}:E(`${e.created?"Create":"Apply this edit to"} ${m(e.path)}?`)),approveCommand:async e=>(r(`${o.ember("\u25CF")} ${o.bold("Run")} ${m(e)}`),s.mode==="plan"?{declined:"Plan mode is on, so no commands may run."}:E("Run this command?"))},N=s.client.stepper(()=>s.model,()=>l.signal,(e,t)=>{d+=e,A=t}),b=0;try{let e=await P(s.ws,y,{first:!0,mode:s.mode??"ask"});for(let t of e.attachments)t.error&&r(o.gold(`! Could not attach ${t.path}: ${t.error}`));await M(s.ws,[{role:"user",content:e.content}],N,j,{signal:l.signal}),$(),l.signal.aborted&&(r(o.grey("Interrupted.")),b=130)}catch(e){$();let t=_(e);process.stderr.write(`${o.red("\u2717")} ${t.title}
4
+ ${t.lines.map(i=>` ${i}
5
+ `).join("")}`),b=1}finally{h?.close()}let T=A;return(d||T)&&r(o.grey(`${d} credit${d===1?"":"s"} used${T?` \xB7 ${I(T)}`:""}`)),b}export{J as oneShot};
@@ -0,0 +1 @@
1
+ import{A as s,B as t,i as a,j as b,k as c,l as d,m as e,n as f,o as g,p as h,q as i,r as j,s as k,t as l,u as m,v as n,w as o,x as p,y as q,z as r}from"./chunk-HEEZNIZR.js";import"./chunk-5PRYZOW7.js";import"./chunk-K3ZZ2VJH.js";export{b as MODEL_LABEL,a as MODE_LABEL,f as SPARK_FRAMES,e as VERBS,c as box,m as diffStats,o as errorBox,h as footer,q as inputBox,r as inputWidth,p as menu,t as plain,n as renderDiff,k as resultLines,s as shortPath,g as spinnerLine,l as summarize,j as toolLine,i as toolVerb,d as welcome};
@@ -0,0 +1,27 @@
1
+ import{a as Q,c as G,d as R,e as Z}from"./chunk-EUPBID7K.js";import{a as mt,b as pt}from"./chunk-2XK6FXMP.js";import{a as L,b as j,c as H,d as J,e as z,f as I,g as K,h as V,j as N,k as W,l as X,m as tt,n as et,o as st,p as it,q as M,r as F,s as k,t as rt,u as g,v as nt,w as ot,x as ht,y as at}from"./chunk-2DDAUP6P.js";import{A as Tt,b as lt,c as w,d as ct,f as ut,g as dt,h as x,i as ft,j as gt,k as bt,l as wt,m as v,o as xt,p as vt,r as y,s as p,t as yt,u as St,v as $t,w as T,x as Ct,y as Mt,z as kt}from"./chunk-HEEZNIZR.js";import{b as o}from"./chunk-5PRYZOW7.js";import"./chunk-K3ZZ2VJH.js";import{existsSync as Zt}from"node:fs";import{homedir as Vt}from"node:os";import{join as Xt}from"node:path";var S=class{text="";cursor=0;set(t,e=t.length){this.text=t,this.cursor=Math.max(0,Math.min(e,t.length))}clear(){this.set("")}insert(t){this.text=this.text.slice(0,this.cursor)+t+this.text.slice(this.cursor),this.cursor+=t.length}prevIndex(t){if(t<=0)return 0;let e=this.text.charCodeAt(t-1);return e>=56320&&e<=57343&&t>=2?t-2:t-1}nextIndex(t){if(t>=this.text.length)return this.text.length;let e=this.text.codePointAt(t);return t+(e>65535?2:1)}backspace(){if(this.cursor===0)return;let t=this.prevIndex(this.cursor);this.text=this.text.slice(0,t)+this.text.slice(this.cursor),this.cursor=t}del(){this.cursor>=this.text.length||(this.text=this.text.slice(0,this.cursor)+this.text.slice(this.nextIndex(this.cursor)))}left(){this.cursor=this.prevIndex(this.cursor)}right(){this.cursor=this.nextIndex(this.cursor)}lineStart(t=this.cursor){return this.text.lastIndexOf(`
2
+ `,t-1)+1}lineEnd(t=this.cursor){let e=this.text.indexOf(`
3
+ `,t);return e<0?this.text.length:e}home(){this.cursor=this.lineStart()}end(){this.cursor=this.lineEnd()}wordLeft(){let t=this.cursor;for(;t>0&&/\s/.test(this.text[t-1]);)t--;for(;t>0&&!/\s/.test(this.text[t-1]);)t--;this.cursor=t}wordRight(){let t=this.cursor;for(;t<this.text.length&&/\s/.test(this.text[t]);)t++;for(;t<this.text.length&&!/\s/.test(this.text[t]);)t++;this.cursor=t}deleteWordBack(){let t=this.cursor;this.wordLeft(),this.text=this.text.slice(0,this.cursor)+this.text.slice(t)}killToEnd(){let t=this.lineEnd();this.text=this.text.slice(0,this.cursor)+this.text.slice(t===this.cursor?t+1:t)}killToStart(){let t=this.lineStart();this.text=this.text.slice(0,t)+this.text.slice(this.cursor),this.cursor=t}get onFirstLine(){return this.text.lastIndexOf(`
4
+ `,this.cursor-1)<0}get onLastLine(){return this.text.indexOf(`
5
+ `,this.cursor)<0}vertical(t){if(t<0?this.onFirstLine:this.onLastLine)return!1;let e=w(this.text.slice(this.lineStart(),this.cursor)),s=t<0?this.lineStart(this.lineStart()-1):this.lineEnd()+1,i=s,r=0,n=this.lineEnd(s);for(;i<n;){let l=lt(this.text.codePointAt(i));if(r+l>e)break;r+=l,i=this.nextIndex(i)}return this.cursor=i,!0}currentToken(){let t=this.cursor;for(;t>0&&!/\s/.test(this.text[t-1]);)t--;return{start:t,text:this.text.slice(t,this.cursor)}}replaceToken(t,e){this.text=this.text.slice(0,t)+e+this.text.slice(this.cursor),this.cursor=t+e.length}layout(t){let e=[],s=0,i=0,r=0;for(let n of this.text.split(`
6
+ `)){let l=ut(n,Math.max(1,t)),h=r;l.forEach((a,c)=>{let b=c===l.length-1,d=h+a.length;this.cursor>=h&&(this.cursor<d||b&&this.cursor===d)&&(s=e.length,i=w(a.slice(0,this.cursor-h))),e.push(a),h=d}),r+=n.length+1}return i>=t&&(s+=1,i=0,s>=e.length&&e.push("")),{rows:e,row:s,col:i}}};import{readFileSync as Pt,statSync as Ut}from"node:fs";import{dirname as _t,join as At,resolve as Et}from"node:path";function Ot(u){let t=Et(u);for(let e=0;e<40;e++){let s=At(t,".git");try{let r=s;if(Ut(s).isFile()){let h=/^gitdir:\s*(.+)$/m.exec(Pt(s,"utf8"));if(!h)return null;r=Et(t,h[1].trim())}let n=Pt(At(r,"HEAD"),"utf8").trim(),l=/^ref: refs\/heads\/(.+)$/.exec(n);return l?l[1]:n.slice(0,7)}catch{}let i=_t(t);if(i===t)return null;t=i}return null}import{appendFileSync as Bt,mkdirSync as qt,readFileSync as Yt,writeFileSync as jt}from"node:fs";import{homedir as Ht}from"node:os";import{dirname as Jt,join as zt}from"node:path";var Qt=()=>process.env.FLINT_HISTORY||zt(Ht(),".flintmaker","history"),U=500,P=class{constructor(t=Qt()){this.file=t;if(t)try{this.entries=Yt(t,"utf8").split(`
7
+ `).filter(Boolean).map(e=>{try{let s=JSON.parse(e);return typeof s=="string"?s:null}catch{return null}}).filter(e=>e!==null).slice(-U)}catch{}}file;entries=[];index=-1;draft="";add(t){this.reset();let e=t.trim();if(!(!e||this.entries.at(-1)===e)&&(this.entries.push(e),!!this.file))try{qt(Jt(this.file),{recursive:!0,mode:448}),this.entries.length>U*1.5?(this.entries=this.entries.slice(-U),jt(this.file,this.entries.map(s=>JSON.stringify(s)).join(`
8
+ `)+`
9
+ `,{mode:384})):Bt(this.file,JSON.stringify(e)+`
10
+ `,{mode:384})}catch{}}prev(t){return this.entries.length===0||(this.index===-1&&(this.draft=t,this.index=this.entries.length),this.index===0)?null:(this.index--,this.entries[this.index])}next(){return this.index===-1?null:(this.index++,this.index>=this.entries.length?(this.index=-1,this.draft):this.entries[this.index])}reset(){this.index=-1,this.draft=""}};var Gt={1:"home",2:"insert",3:"delete",4:"end",5:"pageup",6:"pagedown",7:"home",8:"end"},_={A:"up",B:"down",C:"right",D:"left",H:"home",F:"end",Z:"tab"},Dt={13:"enter",9:"tab",27:"escape",127:"backspace",8:"backspace",32:"space"};function B(u){let t=(u??1)-1;return{shift:!!(t&1),meta:!!(t&2)||!!(t&8),ctrl:!!(t&4)}}function Lt(u,t){let e=B(t);if(Dt[u])return{name:Dt[u],...e,...u===32&&!e.ctrl&&!e.meta?{text:" "}:{}};let s=String.fromCodePoint(u);return e.ctrl||e.meta?{name:s.toLowerCase(),...e}:{name:s,text:e.shift?s.toUpperCase():s,...e}}var It="\x1B[200~",Rt="\x1B[201~",A=class{constructor(t={}){this.opts=t}opts;buf="";paste=null;pasteUntil=0;feed(t){if(this.opts.pasteHeuristic&&this.paste===null&&this.buf===""&&t!==""&&!t.includes("\x1B")){let s=(this.opts.now??Date.now)();if(/[\r\n][^\r\n]/.test(t)||s<this.pasteUntil)return this.pasteUntil=s+40,[{name:"paste",text:t.replace(/\r\n?/g,`
11
+ `)}]}this.buf+=t;let e=[];for(;;){if(this.paste!==null){let r=this.buf.indexOf(Rt);if(r<0)return this.paste+=this.buf,this.buf="",e;this.paste+=this.buf.slice(0,r),this.buf=this.buf.slice(r+Rt.length),e.push({name:"paste",text:this.paste.replace(/\r\n?/g,`
12
+ `)}),this.paste=null;continue}if(this.buf==="")return e;if(this.buf.startsWith(It)){this.buf=this.buf.slice(It.length),this.paste="";continue}if(this.buf==="\x1B")return e;let[s,i]=this.one(this.buf);if(i===0)return e;this.buf=this.buf.slice(i),s&&e.push(s)}}flush(){if(this.paste!==null||this.buf==="")return[];let t=this.buf;return this.buf="",t.startsWith("\x1B")?[{name:"escape"},...this.feed(t.slice(1))]:this.feed(t)}get pending(){return this.buf!==""&&this.paste===null}one(t){let e=t[0];if(e==="\x1B"){let n=t[1];if(n==="["){let a=/^\x1b\[([0-9;:?<>]*)([ -/]*)([@-~])/.exec(t);if(!a)return t.length<16?[null,0]:[{name:"escape"},1];let[c,b,,d]=a,m=b.split(";").map(f=>Number(f.split(":")[0])||void 0);return d==="u"?[Lt(m[0]??0,m[1]),c.length]:d==="~"?m[0]===27&&m[2]!==void 0?[Lt(m[2],m[1]),c.length]:[{name:Gt[String(m[0])]??"unknown",...B(m[1])},c.length]:d==="Z"?[{name:"tab",shift:!0},c.length]:_[d]?[{name:_[d],...B(m[1])},c.length]:d==="I"||d==="O"?[{name:d==="I"?"focusin":"focusout"},c.length]:[{name:"unknown"},c.length]}if(n==="O"&&t.length>=3)return[{name:_[t[2]]??{P:"f1",Q:"f2",R:"f3",S:"f4"}[t[2]]??"unknown"},3];if(n==="\x1B")return[{name:"escape"},1];if(n==="\r"||n===`
13
+ `)return[{name:"enter",meta:!0},2];if(n==="\x7F"||n==="\b")return[{name:"backspace",meta:!0},2];let l=t.codePointAt(1),h=l>65535?3:2;return[{name:String.fromCodePoint(l).toLowerCase(),meta:!0},h]}if(e==="\r")return[{name:"enter"},t[1]===`
14
+ `?2:1];if(e===`
15
+ `)return[{name:"enter",ctrl:!0},1];if(e===" ")return[{name:"tab"},1];if(e==="\x7F"||e==="\b")return[{name:"backspace"},1];if(e==="\0")return[{name:"space",ctrl:!0},1];let s=e.charCodeAt(0);if(s<32)return[{name:String.fromCharCode(s+96),ctrl:!0},1];let i=t.codePointAt(0),r=String.fromCodePoint(i);return[{name:r,text:r},r.length]}},E=u=>u.name==="enter"&&!!(u.shift||u.meta||u.ctrl);var Kt="\x1B[?2026h",Nt="\x1B[?2026l",$=class{constructor(t){this.out=t;this.lastCols=this.cols}out;lines=[];cursor=null;cursorRow=0;widths=[];lastCols;get cols(){return Math.max(20,this.out.columns||80)}get rows(){return Math.max(10,this.out.rows||24)}eraseSeq(){let t=this.cursorRow;if(this.cols<this.lastCols){t=0;for(let e=0;e<this.cursorRow;e++)t+=Math.max(1,Math.ceil(this.widths[e]/this.cols))}return(t>0?`\x1B[${t}A`:"")+"\r\x1B[J"}drawSeq(){let t=this.cols,e=this.lines.map(r=>w(r)>t-1?ct(r,t-1):r);if(this.widths=e.map(w),this.lastCols=t,e.length===0)return this.cursorRow=0,"";let s=e.join(`\x1B[K\r
16
+ `)+"\x1B[K",i=e.length-1;if(this.cursor){let r=Math.min(this.cursor.row,i);i-r>0&&(s+=`\x1B[${i-r}A`),s+="\r"+(this.cursor.col>0?`\x1B[${this.cursor.col}C`:"")+"\x1B[?25h",this.cursorRow=r}else s+="\x1B[?25l",this.cursorRow=i;return s}render(t,e=null){if(e?.row===this.cursor?.row&&e?.col===this.cursor?.col&&t.length===this.lines.length&&t.every((i,r)=>i===this.lines[r])&&this.cols===this.lastCols)return;let s=this.eraseSeq();this.lines=t,this.cursor=e,this.out.write(Kt+"\x1B[?25l"+s+this.drawSeq()+Nt)}commit(t,e){if(t.length===0)return;let s=this.eraseSeq();e&&(this.lines=e.lines,this.cursor=e.cursor);let i=t.flatMap(r=>r.split(`
17
+ `)).map(r=>r+"\x1B[K").join(`\r
18
+ `)+`\r
19
+ `;this.out.write(Kt+"\x1B[?25l"+s+i+this.drawSeq()+Nt)}clear(){let t=this.eraseSeq();this.lines=[],this.cursor=null,this.widths=[],this.cursorRow=0,this.out.write(t+"\x1B[?25h")}};var O=["ask","auto","plan"],te=new Set(["write_file","edit_file"]),q=class{constructor(t){this.opts=t;this.model=t.model,this.mode=t.mode??"ask",this.client=t.client,this.branch=Ot(t.ws.root),this.cwdShort=Tt(t.ws.root,Vt(),28),this.md=new pt(()=>this.screen.cols-1)}opts;screen=new $(process.stdout);editor=new S;feedback=new S;history=new P;parser=new A({pasteHeuristic:process.platform==="win32"});escTimer;mode="ask";model;client;me=null;usage=null;branch;cwdShort;conversation=[];busy=null;sessionCredits=0;frame=0;spinTimer;md;assistantStarted=!1;running=null;headerShown=!1;lastStats=null;prompt=null;suggestions=null;suggestionsDismissed=!1;queue=[];hint=null;exitArmedUntil=0;allowedKinds=new Set;welcomePending=!0;renderQueued=!1;finished;closed=!1;run(){let t=process.stdin;t.setRawMode(!0),t.setEncoding("utf8"),t.resume(),process.stdout.write("\x1B[?2004h\x1B[>1u"),t.on("data",this.onData),process.stdout.on("resize",this.onResize),process.on("exit",this.restoreTerminal);for(let e of["SIGTERM","SIGHUP"])process.on(e,()=>this.exit());return this.render(),setTimeout(()=>{import("./highlight-QJIBHZTN.js").then(e=>mt(e.highlight)).catch(()=>{})},50),this.loadAccount(),new Promise(e=>this.finished=e)}restoreTerminal=()=>{if(!this.closed){this.closed=!0;try{process.stdout.write("\x1B[<u\x1B[?2004l\x1B[?25h"),process.stdin.isTTY&&process.stdin.setRawMode(!1)}catch{}}};exit(t="Bye."){this.busy?.controller.abort(),this.stopSpinner(),this.prompt=null,this.screen.clear();let e=this.sessionCredits?o.grey(` ${F(this.sessionCredits)} credits used this session.`):"";process.stdout.write(`${o.ember("\u2726")} ${o.grey(t)}${e}\r
20
+ `),this.restoreTerminal(),N(null),process.stdin.off("data",this.onData),process.stdout.off("resize",this.onResize),process.stdin.pause(),this.finished?.()}async loadAccount(){try{this.me=await this.client.me(),this.usage=this.me.usage,this.commitWelcome()}catch(t){this.commitWelcome(),this.showError(t,!1)}}commitWelcome(){this.welcomePending&&(this.welcomePending=!1,this.commit(["",...this.welcomeLines()]),N(t=>this.commit(["",`${o.ember("\u2726")} ${o.grey(t)}`])))}welcomeLines(){return wt({version:this.opts.version,email:this.me?.user.email,plan:this.me?.user.plan,credits:this.usage?k(this.usage):void 0,model:this.model,cwd:this.cwdShort,status:this.me?void 0:"connecting\u2026"},this.screen.cols)}schedule=()=>{this.renderQueued||this.closed||(this.renderQueued=!0,setTimeout(()=>{this.renderQueued=!1,this.render()},16))};onResize=()=>this.render();render(){if(this.closed)return;let{lines:t,cursor:e}=this.compose();this.screen.render(t,e)}compose(){let t=this.screen.cols,e=[],s=[],i=null;if(this.welcomePending&&e.push("",...this.welcomeLines()),this.running&&e.push("",y(this.running.name,this.running.detail,"running",t)),this.busy&&!this.prompt&&e.push("",xt(this.frame,Date.now()-this.busy.start,this.busy.credits,t,this.busy.verb)),this.prompt?.kind==="menu")s.push("",...Ct(this.prompt.question,this.prompt.options,this.prompt.selected,t,this.prompt.esc));else{for(let f of this.queue)s.push(o.grey(` \u23F5 queued: ${f.split(`
21
+ `)[0]}`));s.push("");let a=this.prompt?.kind==="feedback"?this.feedback:this.editor,c=this.prompt?.kind==="feedback"?"\u270E ":"\u276F ",b=a.layout(kt(t,c)),d=this.prompt?.kind==="feedback"?"Tell flint what to do differently (enter to send \xB7 esc to skip)":this.busy?"Type to queue a follow-up\u2026":this.conversation.length===0?'Describe a task, or try "explain this project" \xB7 @ to attach a file':"Reply, or describe the next task\u2026",m=Mt(b.rows,b,t,{placeholder:d,prefix:c,maxRows:Math.max(3,Math.min(10,this.screen.rows-12))});if(i={row:s.length+m.cursorRow,col:m.cursorCol},s.push(...m.lines),this.suggestions&&!this.prompt){let{items:f,selected:Y}=this.suggestions,D=Math.max(0,Math.min(Y-3,f.length-7));f.slice(D,D+7).forEach((C,Wt)=>{let Ft=D+Wt===Y?o.ember(`\u276F ${C.label}`):` ${C.label}`;s.push(` ${Ft}${C.hint?o.grey(` ${C.hint}`):""}`)}),f.length>7&&s.push(o.grey(` ${f.length} matches \xB7 tab to complete`))}}s.push(this.footerLine());let r=this.screen.rows-1-e.length-s.length,n=this.previewLines(),l=r>0?n.slice(Math.max(0,n.length-r)):[],h=[...l,...e,...s];return i&&(i={row:i.row+l.length+e.length,col:i.col}),{lines:h,cursor:this.prompt?.kind==="menu"?null:i}}previewLines(){if(!this.md.started)return[];let t=this.md.preview();return t.length===0?[]:this.assistantStarted?["",...t]:["",this.marker(t[0]),...t.slice(1)]}footerLine(){let t=Date.now();return this.hint&&this.hint.until<t&&(this.hint=null),vt({model:this.model,mode:this.mode,credits:this.usage?k(this.usage):void 0,cwd:this.cwdShort,branch:this.branch,hint:this.hint?.text},this.screen.cols)}flash(t,e=2500){this.hint={text:t,until:Date.now()+e},this.schedule(),setTimeout(this.schedule,e+20)}commit(t){this.closed||this.screen.commit(t,this.compose())}marker(t){return t.startsWith(" ")?o.gold("\u2726")+" "+t.slice(2):t}commitAssistant(t){t.length!==0&&(this.assistantStarted||(this.assistantStarted=!0,t=["",this.marker(t[0]),...t.slice(1)]),this.commit(t))}flushMarkdown(){this.commitAssistant(this.md.end()),this.assistantStarted=!1}showError(t,e=!0){let s=V(t,{interactive:!0,retry:e?"Press \u2191 then enter to try again.":void 0});this.commit(["",...T(s.title,s.lines,this.screen.cols,s.tone)]),this.render()}info(t,e){this.commit(["",...T(t,e,this.screen.cols,"info")])}note(t,e=o.grey){this.commit([` ${o.grey("\u23BF")} ${e(t)}`])}startSpinner(t){let e=new AbortController;this.busy={start:Date.now(),credits:0,verb:t??v[Math.floor(Math.random()*v.length)],controller:e};let s=!t,i=0;return this.spinTimer=setInterval(()=>{this.frame++,s&&++i%40===0&&this.busy&&(this.busy.verb=v[(v.indexOf(this.busy.verb)+1)%v.length]),this.schedule()},100),e}stopSpinner(){this.spinTimer&&clearInterval(this.spinTimer),this.spinTimer=void 0,this.busy=null}onData=t=>{this.escTimer&&clearTimeout(this.escTimer);for(let e of this.parser.feed(t))this.safeKey(e);this.parser.pending&&(this.escTimer=setTimeout(()=>this.parser.flush().forEach(e=>this.safeKey(e)),30))};safeKey(t){try{this.onKey(t)}catch(e){this.showError(e,!1)}}onKey(t){if(t.name==="c"&&t.ctrl)return this.ctrlC();if(this.prompt?.kind==="menu")return this.menuKey(t,this.prompt);if(this.prompt?.kind==="feedback"){let s=this.prompt;return t.name==="escape"?s.resolve(null):t.name==="enter"&&!E(t)?s.resolve(this.feedback.text.trim()):(this.editKey(this.feedback,t),this.schedule())}if(t.name==="tab"&&t.shift)return this.cycleMode();if(t.name==="escape")return this.busy?this.interrupt():this.suggestions?(this.suggestions=null,this.suggestionsDismissed=!0,this.schedule()):void 0;if(t.name==="enter"&&!E(t))return this.enter();if(t.name==="tab")return this.complete();if((t.name==="up"||t.name==="down")&&!t.shift&&!t.meta)return this.upDown(t.name==="up"?-1:1);if(t.name==="d"&&t.ctrl&&this.editor.text==="")return this.exit();if(t.name==="l"&&t.ctrl)return process.stdout.write("\x1B[2J\x1B[3J\x1B[H"),this.screen=new $(process.stdout),this.render();let e=this.editor.text;this.editKey(this.editor,t),this.editor.text!==e&&(this.history.reset(),this.suggestionsDismissed=!1),this.updateSuggestions(),this.schedule()}editKey(t,e){if(e.name==="paste")return t.insert(x(e.text??"").replace(/\t/g," "));if(E(e))return t.insert(`
22
+ `);let s=e.ctrl||e.meta;switch(e.name){case"backspace":return s?t.deleteWordBack():t.backspace();case"delete":return t.del();case"left":return s?t.wordLeft():t.left();case"right":return s?t.wordRight():t.right();case"home":return t.home();case"end":return t.end()}if(e.ctrl){switch(e.name){case"a":return t.home();case"e":return t.end();case"b":return t.left();case"f":return t.right();case"k":return t.killToEnd();case"u":return t.killToStart();case"w":return t.deleteWordBack();case"d":return t.del();case"h":return t.backspace()}return}if(e.meta)return e.name==="b"?t.wordLeft():e.name==="f"?t.wordRight():e.name==="d"?t.deleteWordBack():void 0;e.text&&t.insert(e.text)}ctrlC(){if(this.prompt?.kind==="menu")return this.prompt.resolve(null);if(this.prompt?.kind==="feedback")return this.prompt.resolve(null);if(this.busy)return this.interrupt();if(this.editor.text)return this.editor.clear(),this.suggestions=null,this.schedule();if(Date.now()<this.exitArmedUntil)return this.exit();this.exitArmedUntil=Date.now()+2e3,this.flash("Press Ctrl+C again to exit",2e3)}interrupt(){!this.busy||this.busy.controller.signal.aborted||(this.busy.controller.abort(),this.flash("Interrupting\u2026",1500))}cycleMode(){this.mode=O[(O.indexOf(this.mode)+1)%O.length],this.schedule()}upDown(t){if(this.suggestions){let s=this.suggestions.items.length;return this.suggestions.selected=(this.suggestions.selected+t+s)%s,this.schedule()}if(this.editor.vertical(t))return this.schedule();let e=t<0?this.history.prev(this.editor.text):this.history.next();e!==null&&this.editor.set(e),this.updateSuggestions(),this.schedule()}updateSuggestions(){if(this.suggestionsDismissed)return void(this.suggestions=null);let t=this.editor.text;if(/^\/[\w-]*$/.test(t)&&this.editor.cursor===t.length){let s=et(t).map(r=>({value:`/${r.name}`,label:`/${r.name}${r.args?" "+r.args:""}`,hint:r.description})),i=this.suggestions?.kind==="slash"?this.suggestions.selected:0;this.suggestions=s.length?{items:s,selected:Math.min(i,s.length-1),kind:"slash",start:0}:null;return}let e=this.editor.currentToken();if(e.text.startsWith("@")){let s=it(this.opts.ws.root,e.text.slice(1)).map(i=>({value:`@${i}`,label:i}));this.suggestions=s.length?{items:s,selected:0,kind:"path",start:e.start}:null;return}this.suggestions=null}complete(){if(!this.suggestions&&(this.updateSuggestions(),!this.suggestions))return;let t=this.suggestions;if(t.kind==="slash")this.editor.set(t.items[t.selected].value+" "),this.suggestions=null;else{let e=this.editor.currentToken(),s=t.items.map(n=>n.value),i=st(s),r=i.length>e.text.length?i:t.items[t.selected].value;this.editor.replaceToken(e.start,r+(r.endsWith("/")||s.length>1&&r===i?"":" ")),this.updateSuggestions()}this.schedule()}enter(){let t=this.editor;if(t.cursor===t.text.length&&t.text.endsWith("\\"))return t.backspace(),t.insert(`
23
+ `),this.schedule();if(this.suggestions?.kind==="slash"){let s=this.suggestions.items[this.suggestions.selected].value;W.some(i=>`/${i.name}`===t.text.trim())||t.set(s)}let e=t.text.trim();if(e){if(this.history.add(e),t.clear(),this.suggestions=null,this.busy)return this.queue.push(e),this.schedule();this.submit(e)}}async submit(t){try{let s=X(t);s?await this.command(s.name,s.args,!!s.command):await this.turn(t)}catch(s){this.stopSpinner(),this.showError(s,!1)}let e=this.queue.shift();e!==void 0&&!this.closed&&this.submit(e)}menuKey(t,e){let s=e.options.length;if(t.name==="up"||t.name==="tab"&&t.shift)e.selected=(e.selected-1+s)%s;else if(t.name==="down"||t.name==="tab")e.selected=(e.selected+1)%s;else{if(t.name==="enter")return e.resolve(e.selected);if(t.name==="escape")return e.resolve(null);if(/^[1-9]$/.test(t.name)&&Number(t.name)<=s)return e.resolve(Number(t.name)-1);if(t.name==="y")return e.resolve(0);if(t.name==="n")return e.resolve(s-1)}this.schedule()}ask(t,e,s=0,i="cancel"){return new Promise(r=>{this.prompt={kind:"menu",question:t,options:e,selected:s,esc:i,resolve:n=>{this.prompt=null,this.render(),r(n)}},this.render()})}askFeedback(){return this.feedback.clear(),new Promise(t=>{this.prompt={kind:"feedback",resolve:e=>{this.prompt=null,this.render(),t(e)}},this.render()})}echo(t){let e=t.split(`
24
+ `);this.commit(["",...e.map((s,i)=>`${i===0?o.ember("\u276F"):" "} ${o.bold(x(s))}`)])}stepper(t){return this.client.stepper(()=>this.model,()=>t.signal,(e,s)=>{this.busy&&(this.busy.credits+=e),this.sessionCredits+=e,this.usage=s})}async turn(t,e=t){this.echo(e);let s=await ht(this.opts.ws,t,{first:this.conversation.length===0,mode:this.mode});s.memory&&this.note(`Using ${M} project memory`);for(let a of s.attachments)a.error?this.note(`Could not attach ${a.path}: ${a.error}`,o.gold):this.note(`Attached ${a.path} (${a.lines} line${a.lines===1?"":"s"})`);let i=this.startSpinner(),r=Date.now(),n=[...this.conversation,{role:"user",content:s.content}],l=!1;try{this.conversation=await J(this.opts.ws,n,this.stepper(i),this.agentUI(i),{signal:i.signal})}catch(a){l=!0,this.flushMarkdown();let c=a.partial;c&&c.length>n.length&&(this.conversation=c),this.showError(a),a instanceof z&&a.reason==="signed_out"&&R()}this.flushMarkdown(),this.running=null;let h=this.busy?.credits??0;if(this.stopSpinner(),this.hint?.text==="Interrupting\u2026"&&(this.hint=null),i.signal.aborted)this.commit(["",` ${o.gold("\u23F9")} ${o.grey("Interrupted \xB7 tell flint what to do instead")}`]);else if(!l){let c=[`${Math.max(1,Math.round((Date.now()-r)/1e3))}s`,`${h} credit${h===1?"":"s"}`,this.usage?k(this.usage):null].filter(Boolean);this.commit(["",o.grey(` \u273B ${c.join(" \xB7 ")}`)])}this.render()}agentUI(t){let e=()=>this.screen.cols;return{onDelta:s=>{this.running&&(this.running=null),this.commitAssistant(this.md.push(x(s))),this.schedule()},onToolStart:(s,i)=>{this.flushMarkdown(),this.lastDetail=i,this.lastFeedback="",this.headerShown=!1,this.lastStats=null,this.running={name:s,detail:i},this.schedule()},onToolResult:(s,i,r="")=>{this.running=null;let n=[],l=this.lastDetail;if(!i)this.headerShown||n.push("",y(s,l,"error",e())),n.push(...p(r,e(),3,o.red));else if(te.has(s))if(/^(Created|Updated) /.test(r)){let h=this.lastStats;n.push(...p(`${r.startsWith("Created")?"Created":"Updated"}${h?` \xB7 +${h.added} -${h.removed}`:""}`,e()))}else n.push(...p(r===L?"Interrupted":r.startsWith("Plan mode")?"Skipped (plan mode)":this.declinedText("Not applied"),e()));else if(s==="run_command")if(/^(The user declined|Plan mode is on)/.test(r))n.push(...p(r.startsWith("Plan mode")?"Skipped (plan mode)":this.declinedText("Not run"),e()));else if(r===L||r.startsWith("[interrupted by the user before"))n.push(...p("Interrupted",e()));else{let h=/\n?\[(exit code (\d+|null)|timed out after \d+s|interrupted by the user|could not run command[^\]]*)\]$/.exec(r),a=(h?r.slice(0,h.index):r).trimEnd(),c=!h||h[2]!=="0";this.headerShown||n.push("",y(s,l,c?"error":"ok",e())),a?n.push(...p(a,e(),5)):c||n.push(...p("Done (no output)",e())),c&&h&&n.push(` ${a?" ":o.grey("\u23BF")} ${o.red(h[1])}`)}else{let h=yt(s,r);n.push("",y(s,l,"ok",e(),h.suffix)),h.detail&&n.push(...p(h.detail,e()))}this.commit(n),this.schedule()},approveChange:async s=>(this.running=null,this.headerShown=!0,this.lastStats=St(s.diff),this.lastDetail=s.path,this.commit(["",y(s.created?"write_file":"edit_file",s.path,"ok",e()),...$t(s.diff,s.path,e(),s.created)]),this.mode==="plan"?{declined:"Plan mode is on, so no files may be changed. Put this change in your plan instead."}:this.opts.autoYes||this.mode==="auto"?!0:this.decide(t,`${s.created?"Create":"Make this edit to"} ${o.ember(x(s.path))}?`,"Yes, and don't ask again for edits this session","change",()=>{this.mode="auto"})),approveCommand:async s=>{this.running=null,this.headerShown=!0;let i=x(s),r=dt(`${o.ember("\u25CF")} ${o.bold("Run")} ${i}`,e()-1," ");if(this.commit(["",...r]),this.mode==="plan")return{declined:"Plan mode is on, so no commands may run. Put this command in your plan instead."};if(this.opts.autoYes)return!0;let n=at(s);return n&&this.allowedKinds.has(n)?(this.note(`Allowed (${n} commands are approved for this session)`),!0):this.decide(t,"Run this command?",n?`Yes, and don't ask again for "${n}" commands this session`:null,"command",()=>n&&this.allowedKinds.add(n))}}}lastDetail="";declinedText(t){return this.lastFeedback?`${t} \xB7 you said: ${this.lastFeedback.split(`
25
+ `)[0]}`:t}lastFeedback="";async decide(t,e,s,i,r){let n=[{label:"Yes"}];s&&n.push({label:s,hint:i==="change"?"(auto-accept edits)":void 0}),n.push({label:"No, tell flint what to do differently"});let l=await this.ask(e,n,0,"stop flint");if(l===null)return t.abort(),!1;if(l===0)return!0;if(s&&l===1)return r(),!0;let h=await this.askFeedback();return h===null||h===""?!1:(this.lastFeedback=h,{declined:`The user declined this ${i} and said: ${JSON.stringify(h)}. Follow their instruction instead.`})}async command(t,e,s){if(!s){let i=tt(t);return this.echo(`/${t}${e?" "+e:""}`),this.note(`Unknown command /${t}.${i?` Did you mean /${i}?`:""} Type /help for the list.`,o.gold),this.render()}switch(t){case"help":return this.help();case"exit":return this.exit();case"clear":return this.conversation=[],this.commit(["",o.grey(` ${"\u2500".repeat(3)} new conversation ${"\u2500".repeat(Math.max(3,Math.min(40,this.screen.cols-26)))}`)]),this.render();case"mode":{let i=e.toLowerCase(),r=O.includes(i)?i:i==="auto-accept"?"auto":null;return r?this.mode=r:this.cycleMode(),this.note(`Mode: ${ft[this.mode]}`),this.render()}case"model":return this.modelCommand(e);case"credits":return this.creditsCommand();case"init":return this.initCommand();case"compact":return this.compactCommand();case"login":return this.loginCommand();case"logout":return R(),this.exit("Signed out. Run flint login to connect again.")}}help(){let t=W.map(s=>`${o.ember(`/${s.name}`)}${s.args?o.grey(" "+s.args):""} ${o.grey(s.description)}`),e=[`${o.bold("enter")} send \xB7 ${o.bold("shift+enter")}, ${o.bold("ctrl+j")} or ${o.bold("\\")} new line`,`${o.bold("@path")} attach a file \xB7 ${o.bold("tab")} complete \xB7 ${o.bold("\u2191/\u2193")} history`,`${o.bold("esc")} interrupt \xB7 ${o.bold("shift+tab")} mode \xB7 ${o.bold("ctrl+c")} twice to exit`];this.commit(["",...bt([o.bold("Commands"),...t,"",o.bold("Keys"),...e],Math.min(this.screen.cols-1,76),{border:o.ember})]),this.render()}async modelCommand(t){let e=t==="smart"||t==="standard"?t:null;if(!t){let s=["standard","smart"].map(r=>({label:`${g[r].label}${r===this.model?o.grey(" (current)"):""}`,hint:`${g[r].cost} \xB7 ${g[r].note}`})),i=await this.ask("Choose a model",s,this.model==="smart"?1:0);if(i===null)return;e=i===1?"smart":"standard"}if(!e)return this.note("Usage: /model standard | smart",o.gold);if(e==="smart"&&(this.me?.user.plan??"free")==="free")return this.commit(["",...T("Smart needs a paid plan",["You are on the Free plan, so flint stays on Standard.",`Upgrade: ${K}`],this.screen.cols,"warn")]),this.render();this.model=e,this.note(`Model: ${gt[e]} \xB7 ${g[e].cost}`),this.render()}async creditsCommand(){try{this.me=await this.client.me(),this.usage=this.me.usage;let t=this.sessionCredits?[`This session: ${F(this.sessionCredits)} credits`]:[];this.info("Credits",[...rt(this.usage),...t,"",`Standard ${g.standard.cost} \xB7 Smart ${g.smart.cost}`,`More credits: ${K}`])}catch(t){this.showError(t,!1)}this.render()}async initCommand(){if(Zt(Xt(this.opts.ws.root,M)))return this.info(`${M} already exists`,["flint reads it at the start of every conversation.","Edit it by hand, or ask flint to update it."]),this.render();await this.turn(nt,"/init")}async compactCommand(){if(this.conversation.length<3)return this.note("Nothing to compact yet."),this.render();this.echo("/compact");let t=this.startSpinner("Compacting");try{let e=this.conversation,s="";for(let r=0;r<4&&!s;r++)try{if(s=(await this.stepper(t)([...e,{role:"user",content:ot}],()=>{})).text.trim(),!s)throw new Error("The summary came back empty. Try again, or use /clear.")}catch(n){if(!(n instanceof j))throw n;e=H(e)}if(!s)throw new Error("This conversation is too long to summarise. Start a new one with /clear.");let i=this.conversation.length;this.conversation=[{role:"user",content:`Summary of our conversation so far (compacted to save context):
26
+
27
+ ${s}`},{role:"assistant",content:"Thanks, I have the context. What should we do next?"}],this.note(`Compacted ${i} messages into a summary`),this.commit(p(s,this.screen.cols,6).map(r=>r.replace("\u23BF"," ")))}catch(e){t.signal.aborted||this.showError(e,!1)}this.stopSpinner(),this.render()}async loginCommand(){let t=Z(null),e=new I(t),s=this.startSpinner("Waiting for approval in your browser");try{let i=await e.deviceLogin((r,n)=>{this.info("Connect your FlintMaker account",[`Your code: ${o.bold(o.gold(r))}`,`Opening ${n}`,"Approve it in the browser \xB7 esc to cancel"]),Q(n),this.render()},s.signal);G({token:i.token,email:i.user.email,api:e.base}),this.client=new I(t,i.token),this.me=await this.client.me(),this.usage=this.me.usage,this.note(`Signed in as ${i.user.email}`,o.green)}catch(i){s.signal.aborted||this.showError(i,!1)}this.stopSpinner(),this.render()}};async function Re(u){await new q(u).run()}export{q as App,Re as interactive};
@@ -0,0 +1,17 @@
1
+ import{c as u,d}from"./chunk-K3ZZ2VJH.js";import{spawn as z,spawnSync as Y}from"node:child_process";import{accessSync as O,chmodSync as K,closeSync as q,constants as F,existsSync as I,mkdirSync as T,openSync as G,readFileSync as U,realpathSync as Z,rmSync as B,writeFileSync as w}from"node:fs";import{homedir as D}from"node:os";var f="flintmaker",Q=`https://registry.npmjs.org/${f}/latest`,X=1440*60*1e3,_=/^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/,x=n=>typeof n=="string"&&_.test(n);function nn(n,e){let r=_.exec(n),t=_.exec(e);if(!r||!t)return 0;for(let a=1;a<=3;a++){let l=Number(r[a])-Number(t[a]);if(l)return l>0?1:-1}let o=r[4],s=t[4];if(o===s)return 0;if(o===void 0)return 1;if(s===void 0)return-1;let i=o.split("."),c=s.split(".");for(let a=0;a<Math.max(i.length,c.length);a++){if(i[a]===void 0)return-1;if(c[a]===void 0)return 1;if(i[a]===c[a])continue;let l=/^\d+$/.test(i[a]),m=/^\d+$/.test(c[a]);return l&&m?Number(i[a])>Number(c[a])?1:-1:l!==m?l?-1:1:i[a]>c[a]?1:-1}return 0}var v=(n,e)=>x(n)&&x(e)&&nn(n,e)>0,P=n=>!!n&&n!=="0"&&n.toLowerCase()!=="false";function en(n=process.env,e=""){return P(n.FLINT_NO_UPDATE)?"FLINT_NO_UPDATE is set":P(n.CI)?"running in CI":P(n.NO_UPDATE_NOTIFIER)?"NO_UPDATE_NOTIFIER is set":!x(e)||e.startsWith("0.0.0")?"development build":null}var $=(n=process.env)=>n.FLINT_UPDATE_DIR||d().join(D(),".flintmaker");function b(n=$()){try{let e=JSON.parse(U(d().join(n,"update.json"),"utf8"));return e&&typeof e=="object"?e:{}}catch{return{}}}function p(n,e=$()){try{T(e,{recursive:!0,mode:448}),w(d().join(e,"update.json"),JSON.stringify(n,null,2)+`
2
+ `)}catch{}}var tn=(n,e=Date.now())=>!n.checkedAt||e-n.checkedAt>=X||n.checkedAt>e;function rn(n,e={}){let r=e.platform??process.platform,t=d(r),o=u(r),s=e.env??process.env,i=e.exists??I,c=g=>o?t.normalize(g).toLowerCase():t.normalize(g),a=(g,W)=>c(g).startsWith(c(W).replace(/[\\/]+$/,"")+t.sep),l=t.normalize(n);if(c(l).split(t.sep).includes("_npx"))return{kind:"npx"};let N=`${t.sep}node_modules${t.sep}${f}${t.sep}`,j=c(l).lastIndexOf(c(N));if(j<0)return{kind:"dev"};let J=l.slice(0,j+N.length-f.length-2),h=t.dirname(J),V=e.home??D(),M=t.join(V,".flintmaker");if(a(l,M))return{kind:"flintmaker",prefix:M};if(o){let g=s.APPDATA?t.join(s.APPDATA,"npm"):null;return g&&c(h)===c(g)||i(t.join(h,"npm.cmd"))||i(t.join(h,"node.exe"))?{kind:"npm-global",prefix:h}:{kind:"local"}}return t.basename(h)==="lib"?{kind:"npm-global",prefix:t.dirname(h)}:{kind:"local"}}var E=(n,e=process.platform)=>u(e)?d(e).join(n,"node_modules"):d(e).join(n,"lib","node_modules");function on(n,e){let r=d(e),t=r.dirname(n);return u(e)?r.join(t,"node_modules","npm","bin","npm-cli.js"):r.join(t,"..","lib","node_modules","npm","bin","npm-cli.js")}function S(n,e,r={}){if(n.kind!=="flintmaker"&&n.kind!=="npm-global"||!x(e))return null;let t=r.platform??process.platform,o=d(t),s=r.exists??I,i=["install","-g","--prefix",n.prefix,"--no-fund","--no-audit",`${f}@${e}`],c=[];n.kind==="flintmaker"&&c.push(u(t)?o.join(n.prefix,"node","node.exe"):o.join(n.prefix,"node","bin","node")),c.push(r.execPath??process.execPath);for(let a of c){let l=on(a,t);if(s(a)&&s(l))return{file:a,args:[l,...i],options:{windowsHide:!0}}}if(u(t)){let a=i.map(l=>/[\s&()^]/.test(l)?`"${l}"`:l).join(" ");return{file:r.env?.ComSpec||"cmd.exe",args:["/d","/s","/c",`"npm ${a}"`],options:{windowsVerbatimArguments:!0,windowsHide:!0}}}return{file:"npm",args:i,options:{}}}function H(n,e=process.platform){if(n.kind!=="flintmaker"&&n.kind!=="npm-global")return!1;try{return O(E(n.prefix,e),F.W_OK),u(e)||O(d(e).join(n.prefix,"bin"),F.W_OK),!0}catch{return!1}}function A(){try{return rn(Z(process.argv[1]??""))}catch{return{kind:"dev"}}}var k=(n,e)=>n.kind==="flintmaker"?`Update available v${e}: run flint update`:n.kind==="npx"?`Update available v${e}: run npx flintmaker@latest`:`Update available v${e}: run npm i -g ${f}`;async function C(n=3e3,e=process.env.FLINT_UPDATE_URL||Q){try{let r=await fetch(e,{signal:AbortSignal.timeout(n),headers:{accept:"application/json"}});if(!r.ok)return null;let t=await r.json();return x(t?.version)?t.version:null}catch{return null}}function sn(n){let e="dist/flint.js";if(typeof n=="string")e=n;else if(n&&typeof n=="object"){let r=n,t=r.flint??r.flintmaker??Object.values(r)[0];typeof t=="string"&&(e=t)}return e.replace(/^\.[\\/]/,"")}var y=["flint","flintmaker"];function an(n,e=process.platform){let r=d(e);return u(e)?y.flatMap(t=>["",".cmd",".ps1"].map(o=>r.join(n,t+o))):y.map(t=>r.join(n,"bin",t))}function cn(n,e,r=process.platform){let t=d(r);if(u(r)){let i=["@echo off","rem FlintMaker CLI launcher (written by https://flintmaker.com/install.ps1)","setlocal",'set "FM_HOME=%~dp0"','set "FM_NODE=node"','if exist "%FM_HOME%node\\node.exe" set "FM_NODE=%FM_HOME%node\\node.exe"','if exist "%FM_HOME%node\\node.exe" set "PATH=%FM_HOME%node;%PATH%"',`"%FM_NODE%" "%FM_HOME%node_modules\\flintmaker\\${e.replace(/\//g,"\\")}" %*`,""].join(`\r
3
+ `);return y.map(c=>({path:t.join(n,`${c}.cmd`),content:i}))}let o=i=>i.replace(/[\\"$`]/g,"\\$&"),s=`#!/bin/sh
4
+ # FlintMaker CLI launcher (written by https://flintmaker.com/install.sh)
5
+ FM_HOME="${o(n)}"
6
+ ENTRY="$FM_HOME/lib/node_modules/flintmaker/${o(e)}"
7
+ if [ -x "$FM_HOME/node/bin/node" ]; then
8
+ PATH="$FM_HOME/node/bin:$PATH"; export PATH
9
+ exec "$FM_HOME/node/bin/node" "$ENTRY" "$@"
10
+ fi
11
+ if command -v node >/dev/null 2>&1; then exec node "$ENTRY" "$@"; fi
12
+ echo "flint: Node.js 20+ is missing. Reinstall: curl -fsSL https://flintmaker.com/install.sh | sh" >&2
13
+ exit 127
14
+ `;return y.map(i=>({path:t.join(n,"bin",i),content:s,mode:493}))}function L(n){for(let e of an(n))B(e,{force:!0})}function ln(n,e=process.platform){let r=d(e),t;try{t=JSON.parse(U(r.join(E(n,e),f,"package.json"),"utf8")).bin}catch{}L(n);for(let o of cn(n,sn(t),e))T(r.dirname(o.path),{recursive:!0}),w(o.path,o.content,o.mode?{mode:o.mode}:{}),o.mode&&K(o.path,o.mode)}function R(n,e,r="inherit"){let t=S(n,e);if(!t)return-1;let o=n.kind==="flintmaker";o&&L(n.prefix);let s=-1;try{s=Y(t.file,t.args,{...t.options,stdio:["ignore",r,r],env:{...process.env,npm_config_update_notifier:"false"}}).status??-1}finally{if(o)try{ln(n.prefix)}catch(i){typeof r=="number"&&w(r,`could not write launchers: ${i.message}
15
+ `),s=s===0?1:s}}return s}function gn(n){if(!x(n))return 2;let e=R(A(),n,"inherit");return p({...b(),attempted:n,...e===0?{installed:n,failed:void 0}:{failed:n}}),e}function dn(n,e){return new Promise(r=>{let t="ignore";try{t=G(e,"a"),w(t,`
16
+ [${new Date().toISOString()}] updating to ${f}@${n}
17
+ `)}catch{t="ignore"}try{let o=z(process.execPath,[process.argv[1],"__update",n],{detached:!0,windowsHide:!0,stdio:["ignore",t,t],env:{...process.env,FLINT_NO_UPDATE:"1"}});o.on("error",()=>r(-1)),o.on("exit",s=>r(s??-1)),o.unref()}catch{r(-1)}finally{typeof t=="number"&&q(t)}})}async function hn(n){let e=n.env??process.env;if(en(e,n.current))return"disabled";let r=n.dir??$(e),t=n.now??Date.now(),o=b(r),s=n.install??A();if(!tn(o,t)){let m=o.failed??(s.kind==="flintmaker"||s.kind==="npm-global"?void 0:o.latest);return m&&v(m,n.current)?(n.notify(k(s,m),"info"),"hint"):"throttled"}let i=await(n.fetchLatest??C)();if(!i)return"offline";let c={...o,checkedAt:t,latest:i};return v(i,n.current)?!((n.run||H(s))&&S(s,i)!==null)||o.attempted===i?(p(c,r),n.notify(k(s,i),"info"),"hint"):(p({...c,attempted:i},r),await n.preload?.().catch(()=>{}),await(n.run??dn)(i,d().join(r,"update.log"))===0?(p({...c,attempted:i,installed:i,failed:void 0},r),n.notify(`Updated to v${i} \u2014 restart flint to use it`,"ok"),"updated"):(p({...c,attempted:i,failed:i},r),n.notify(k(s,i),"info"),"failed")):(p({checkedAt:t,latest:i},r),"current")}async function xn(n,e){let r=await C(15e3);if(!r)return e("Could not reach the npm registry. Check your connection and try again."),1;if(!v(r,n))return e(`flint is up to date (v${n}).`),p({...b(),checkedAt:Date.now(),latest:r}),0;let t=A();if(!H(t)||!S(t,r))return t.kind==="npm-global"?e(`v${r} is available, but ${E(t.prefix)} is not writable by you. Run: npm i -g ${f} (without sudo, from a user-owned Node such as nvm), or use the FlintMaker installer.`):e(k(t,r).replace(/^Update available /,"Available: ")),1;e(`Updating flint v${n} \u2192 v${r}\u2026`);let o=R(t,r,"inherit"),s=o===0;return p({...b(),checkedAt:Date.now(),latest:r,attempted:r,...s?{installed:r,failed:void 0}:{failed:r}}),e(s?`Updated to v${r}.`:`Update failed (exit ${o}). Try: npm i -g ${f}`),s?0:1}export{X as CHECK_EVERY_MS,f as PACKAGE,Q as REGISTRY_URL,hn as autoUpdate,nn as compareVersions,A as currentInstall,rn as detectInstall,C as fetchLatest,E as globalModules,R as installVersion,v as isNewer,x as isVersion,sn as launcherEntry,cn as launcherFiles,an as launcherPaths,k as manualHint,b as readState,dn as runDetached,tn as shouldCheck,$ as stateDir,S as updateCommand,en as updateDisabled,xn as updateNow,gn as updateWorker,H as writable,ln as writeLaunchers,p as writeState};
package/dist/flint.js ADDED
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env node
2
+ import{a as ne,b as D,c as ie,d as re,e as R}from"./chunks/chunk-EUPBID7K.js";import{e as F,f as N,h as se,i as le,s as ae}from"./chunks/chunk-2DDAUP6P.js";import{b as g,c as oe}from"./chunks/chunk-5PRYZOW7.js";import{c as V,e as G,f as I,g as B,h as X,i as K,j as $,k as J,l as Q,m as Z,o as ee,p as te}from"./chunks/chunk-K3ZZ2VJH.js";import{spawn as we,execFileSync as ye}from"node:child_process";import{existsSync as xe,lstatSync as be,realpathSync as H}from"node:fs";import{mkdir as ve,readdir as Ee,readFile as U,stat as ce,writeFile as ke}from"node:fs/promises";import{basename as fe,dirname as _e,join as z,relative as de,resolve as Pe,sep as $e}from"node:path";var C=class{diff(e,n,t={}){let i;typeof t=="function"?(i=t,t={}):"callback"in t&&(i=t.callback);let c=this.castInput(e,t),s=this.castInput(n,t),l=this.removeEmpty(this.tokenize(c,t)),r=this.removeEmpty(this.tokenize(s,t));return this.diffWithOptionsObj(l,r,t,i)}diffWithOptionsObj(e,n,t,i){var c;let s=u=>{if(u=this.postProcess(u,t),i){setTimeout(function(){i(u)},0);return}else return u},l=n.length,r=e.length,f=1,a=l+r;t.maxEditLength!=null&&(a=Math.min(a,t.maxEditLength));let d=(c=t.timeout)!==null&&c!==void 0?c:1/0,m=Date.now()+d,h=[{oldPos:-1,lastComponent:void 0}],w=this.extractCommon(h[0],n,e,0,t);if(h[0].oldPos+1>=r&&w+1>=l)return s(this.buildValues(h[0].lastComponent,n,e));let y=-1/0,x=1/0,E=()=>{for(let u=Math.max(y,-f);u<=Math.min(x,f);u+=2){let p,b=h[u-1],v=h[u+1];b&&(h[u-1]=void 0);let P=!1;if(v){let q=v.oldPos-u;P=v&&0<=q&&q<l}let L=b&&b.oldPos+1<r;if(!P&&!L){h[u]=void 0;continue}if(!L||P&&b.oldPos<v.oldPos?p=this.addToPath(v,!0,!1,0,t):p=this.addToPath(b,!1,!0,1,t),w=this.extractCommon(p,n,e,u,t),p.oldPos+1>=r&&w+1>=l)return s(this.buildValues(p.lastComponent,n,e))||!0;h[u]=p,p.oldPos+1>=r&&(x=Math.min(x,u-1)),w+1>=l&&(y=Math.max(y,u+1))}f++};if(i)(function u(){setTimeout(function(){if(f>a||Date.now()>m)return i(void 0);E()||u()},0)})();else for(;f<=a&&Date.now()<=m;){let u=E();if(u)return u}}addToPath(e,n,t,i,c){let s=e.lastComponent;return s&&!c.oneChangePerToken&&s.added===n&&s.removed===t?{oldPos:e.oldPos+i,lastComponent:{count:s.count+1,added:n,removed:t,previousComponent:s.previousComponent}}:{oldPos:e.oldPos+i,lastComponent:{count:1,added:n,removed:t,previousComponent:s}}}extractCommon(e,n,t,i,c){let s=n.length,l=t.length,r=e.oldPos,f=r-i,a=0;for(;f+1<s&&r+1<l&&this.equals(t[r+1],n[f+1],c);)f++,r++,a++,c.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return a&&!c.oneChangePerToken&&(e.lastComponent={count:a,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=r,f}equals(e,n,t){return t.comparator?t.comparator(e,n):e===n||!!t.ignoreCase&&e.toLowerCase()===n.toLowerCase()}removeEmpty(e){let n=[];for(let t=0;t<e.length;t++)e[t]&&n.push(e[t]);return n}castInput(e,n){return e}tokenize(e,n){return Array.from(e)}join(e){return e.join("")}postProcess(e,n){return e}get useLongestToken(){return!1}buildValues(e,n,t){let i=[],c;for(;e;)i.push(e),c=e.previousComponent,delete e.previousComponent,e=c;i.reverse();let s=i.length,l=0,r=0,f=0;for(;l<s;l++){let a=i[l];if(a.removed)a.value=this.join(t.slice(f,f+a.count)),f+=a.count;else{if(!a.added&&this.useLongestToken){let d=n.slice(r,r+a.count);d=d.map(function(m,h){let w=t[f+h];return w.length>m.length?w:m}),a.value=this.join(d)}else a.value=this.join(n.slice(r,r+a.count));r+=a.count,a.added||(f+=a.count)}}return i}};var M=class extends C{constructor(){super(...arguments),this.tokenize=he}equals(e,n,t){return t.ignoreWhitespace?((!t.newlineIsToken||!e.includes(`
3
+ `))&&(e=e.trim()),(!t.newlineIsToken||!n.includes(`
4
+ `))&&(n=n.trim())):t.ignoreNewlineAtEof&&!t.newlineIsToken&&(e.endsWith(`
5
+ `)&&(e=e.slice(0,-1)),n.endsWith(`
6
+ `)&&(n=n.slice(0,-1))),super.equals(e,n,t)}},me=new M;function j(o,e,n){return me.diff(o,e,n)}function he(o,e){e.stripTrailingCr&&(o=o.replace(/\r\n/g,`
7
+ `));let n=[],t=o.split(/(\n|\r\n)/);t[t.length-1]||t.pop();for(let i=0;i<t.length;i++){let c=t[i];i%2&&!e.newlineIsToken?n[n.length-1]+=c:n.push(c)}return n}function pe(o){for(let e=0;e<o.length;e++)if(o[e]<" "||o[e]>"~"||o[e]==='"'||o[e]==="\\")return!0;return!1}function k(o){if(!pe(o))return o;let e='"',n=new TextEncoder().encode(o),t=0;for(;t<n.length;){let i=n[t];i===7?e+="\\a":i===8?e+="\\b":i===9?e+="\\t":i===10?e+="\\n":i===11?e+="\\v":i===12?e+="\\f":i===13?e+="\\r":i===34?e+='\\"':i===92?e+="\\\\":i>=32&&i<=126?e+=String.fromCharCode(i):e+="\\"+i.toString(8).padStart(3,"0"),t++}return e+='"',e}var A={includeIndex:!0,includeUnderline:!0,includeFileHeaders:!0};function O(o,e,n,t,i,c,s){let l;s?typeof s=="function"?l={callback:s}:l=s:l={},typeof l.context>"u"&&(l.context=4);let r=l.context;if(l.newlineIsToken)throw new Error("newlineIsToken may not be used with patch-generation functions, only with diffing functions");if(l.callback){let{callback:a}=l;j(n,t,Object.assign(Object.assign({},l),{callback:d=>{let m=f(d);a(m)}}))}else return f(j(n,t,l));function f(a){if(!a)return;a.push({value:"",lines:[]});function d(u){return u.map(function(p){return" "+p})}let m=[],h=0,w=0,y=[],x=1,E=1;for(let u=0;u<a.length;u++){let p=a[u],b=p.lines||ge(p.value);if(p.lines=b,p.added||p.removed){if(!h){let v=a[u-1];h=x,w=E,v&&(y=r>0?d(v.lines.slice(-r)):[],h-=y.length,w-=y.length)}for(let v of b)y.push((p.added?"+":"-")+v);p.added?E+=b.length:x+=b.length}else{if(h)if(b.length<=r*2&&u<a.length-2)for(let v of d(b))y.push(v);else{let v=Math.min(b.length,r);for(let L of d(b.slice(0,v)))y.push(L);let P={oldStart:h,oldLines:x-h+v,newStart:w,newLines:E-w+v,lines:y};m.push(P),h=0,w=0,y=[]}x+=b.length,E+=b.length}}for(let u of m)for(let p=0;p<u.lines.length;p++)u.lines[p].endsWith(`
8
+ `)?u.lines[p]=u.lines[p].slice(0,-1):(u.lines.splice(p+1,0,"\"),p++);return{oldFileName:o,newFileName:e,oldHeader:i,newHeader:c,hunks:m}}}function T(o,e){var n,t,i,c,s,l;if(e||(e=A),Array.isArray(o)){if(o.length>1&&!e.includeFileHeaders&&!o.every(a=>a.isGit))throw new Error("Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)");return o.map(a=>T(a,e)).join(`
9
+ `)}let r=[];if(o.isGit){if(e=A,!o.oldFileName)throw new Error("oldFileName must be specified for Git patches");if(!o.newFileName)throw new Error("newFileName must be specified for Git patches");let a=o.oldFileName,d=o.newFileName;o.isCreate&&a==="/dev/null"?a=d.replace(/^b\//,"a/"):o.isDelete&&d==="/dev/null"&&(d=a.replace(/^a\//,"b/")),r.push("diff --git "+k(a)+" "+k(d)),o.isDelete&&r.push("deleted file mode "+((n=o.oldMode)!==null&&n!==void 0?n:"100644")),o.isCreate&&r.push("new file mode "+((t=o.newMode)!==null&&t!==void 0?t:"100644")),o.oldMode&&o.newMode&&!o.isDelete&&!o.isCreate&&(r.push("old mode "+o.oldMode),r.push("new mode "+o.newMode)),o.isRename&&(r.push("rename from "+k(((i=o.oldFileName)!==null&&i!==void 0?i:"").replace(/^a\//,""))),r.push("rename to "+k(((c=o.newFileName)!==null&&c!==void 0?c:"").replace(/^b\//,"")))),o.isCopy&&(r.push("copy from "+k(((s=o.oldFileName)!==null&&s!==void 0?s:"").replace(/^a\//,""))),r.push("copy to "+k(((l=o.newFileName)!==null&&l!==void 0?l:"").replace(/^b\//,""))))}else e.includeIndex&&o.oldFileName==o.newFileName&&o.oldFileName!==void 0&&r.push("Index: "+o.oldFileName),e.includeUnderline&&r.push("===================================================================");let f=o.hunks.length>0;e.includeFileHeaders&&o.oldFileName!==void 0&&o.newFileName!==void 0&&(!o.isGit||f)&&(r.push("--- "+k(o.oldFileName)+(o.oldHeader?" "+o.oldHeader:"")),r.push("+++ "+k(o.newFileName)+(o.newHeader?" "+o.newHeader:"")));for(let a=0;a<o.hunks.length;a++){let d=o.hunks[a],m=d.oldLines===0?d.oldStart-1:d.oldStart,h=d.newLines===0?d.newStart-1:d.newStart;r.push("@@ -"+m+","+d.oldLines+" +"+h+","+d.newLines+" @@");for(let w of d.lines)r.push(w)}return r.join(`
10
+ `)+`
11
+ `}function W(o,e,n,t,i,c,s){if(typeof s=="function"&&(s={callback:s}),s?.callback){let{callback:l}=s;O(o,e,n,t,i,c,Object.assign(Object.assign({},s),{callback:r=>{l(r?T(r,s.headerOptions):void 0)}}))}else{let l=O(o,e,n,t,i,c,s);return l?T(l,s?.headerOptions):void 0}}function ge(o){let e=o.endsWith(`
12
+ `),n=o.split(`
13
+ `).map(t=>t+`
14
+ `);return e?n.pop():n.push(n.pop().slice(0,-1)),n}var Ce=new Set(["node_modules",".git","dist","build",".next",".nuxt",".svelte-kit","coverage",".venv","venv","__pycache__",".turbo",".cache","Pods","DerivedData"]),Le=/^(\.env(\..+)?|\.envrc|\.dev\.vars|\.netrc|\.git-credentials|\.npmrc|\.pypirc|.*\.(pem|key|p12|pfx|keystore|jks|tfvars|tfstate)|id_(rsa|dsa|ecdsa|ed25519)(\.pub)?|credentials(\.json)?|.*service[-_]?account.*\.json|.*-credentials\.json)$/i,Te=/^\.env\.(example|sample|template)$/i,Se=1e5,Y=400,Fe=12e3,S=class{root;constructor(e){this.root=H(e)}resolve(e){if(typeof e!="string"||e.trim()==="")throw new Error("path is required");let n=e.trim(),t=G(n);if(t)throw new Error(t);let i=Pe(this.root,n);if(!I(this.root,i))throw new Error(`${n} is outside the project`);let c=this.root;for(let l of de(this.root,i).split($e).filter(Boolean)){c=z(c,l);let r;try{r=be(c)}catch{break}if(r.isSymbolicLink()){let f;try{f=H(c)}catch{throw new Error(`${n} goes through a broken symlink; refusing`)}if(!I(this.root,f))throw new Error(`${n} is outside the project`)}}let s=[B(fe(i))];if(V())try{s.push(fe(H.native(i)))}catch{}if(s.some(l=>Le.test(l)&&!Te.test(l)))throw new Error(`${n} looks like a secret file; flint does not read or change it`);return i}rel(e){return X(de(this.root,e))||"."}async listFiles(e="."){let n=this.resolve(e),t;try{t=ye("git",["ls-files","--cached","--others","--exclude-standard","--",this.rel(n)],{cwd:this.root,encoding:"utf8",stdio:["ignore","pipe","ignore"],windowsHide:!0,maxBuffer:16*1024*1024}).split(/\r?\n/).filter(Boolean)}catch{t=[],await this.walk(n,t)}return t.sort(),t.slice(0,Y).join(`
15
+ `)+(t.length>Y?`
16
+ \u2026 ${t.length-Y} more files`:"")||"(empty)"}async walk(e,n){if(!(n.length>5e3))for(let t of await Ee(e,{withFileTypes:!0}))t.isDirectory()?Ce.has(t.name)||await this.walk(z(e,t.name),n):t.isFile()&&n.push(this.rel(z(e,t.name)))}async readFile(e,n,t){let i=this.resolve(e),c=await ce(i);if(!c.isFile())throw new Error(`${e} is not a file`);let s=await U(i);if(s.subarray(0,8e3).includes(0))return`[binary file, ${c.size} bytes]`;let l=s.toString("utf8").split(/\r?\n/);l.at(-1)===""&&l.pop();let r=Math.max(1,n??1),f=Math.min(l.length,t??l.length),a="";for(let d=r;d<=f;d++){let m=`${d} ${l[d-1]}`;if(a.length+m.length>Se){a+=`
17
+ [truncated at line ${d-1} of ${l.length}; read more with start_line]`;break}a+=(a?`
18
+ `:"")+m}return a}async search(e,n="."){let t;try{t=new RegExp(e)}catch{throw new Error("invalid regular expression")}let i=(await this.listFiles(n)).split(`
19
+ `).filter(s=>s&&!s.startsWith("\u2026 ")),c=[];for(let s of i){if(c.length>=200)break;let l;try{let r=this.resolve(s);if((await ce(r)).size>4e5)continue;let f=await U(r);if(f.subarray(0,8e3).includes(0))continue;l=f.toString("utf8")}catch{continue}l.split(/\r?\n/).forEach((r,f)=>{c.length<200&&t.test(r)&&c.push(`${s}:${f+1}:${r.slice(0,300)}`)})}return c.join(`
20
+ `)||"No matches."}async plan(e,n){let t=this.resolve(n.path),i=this.rel(t),c=xe(t)?await U(t,"utf8"):null,s=c!==null&&K(c)==="crlf",l=c!==null&&s?$(c):c,r;if(e==="write_file"){if(typeof n.content!="string")throw new Error("content is required");r=s?$(n.content):n.content}else{if(l===null)throw new Error(`${i} does not exist`);if(typeof n.old_text!="string"||n.old_text===""||typeof n.new_text!="string")throw new Error("old_text and new_text are required");let d=s?$(n.old_text):n.old_text,m=s?$(n.new_text):n.new_text,h=l.split(d).length-1;if(h===0)throw new Error(`old_text not found in ${i}`);if(h>1)throw new Error(`old_text matches ${h} times in ${i}; include more context`);r=l.replace(d,()=>m)}let f=W(`a/${i}`,`b/${i}`,l??"",r,"","",{context:3}),a=s?J(r):r;return{path:i,diff:f,created:c===null,apply:async()=>{await ve(_e(t),{recursive:!0}),await ke(t,a)}}}runCommand(e,n=12e4,t){return new Promise(i=>{if(t?.aborted)return i("[interrupted by the user before it started]");let c=Q(e),s;try{s=we(c.file,c.args,{...c.options,cwd:this.root,env:{...process.env,FORCE_COLOR:"0",CI:"1"}})}catch(x){return i(`[could not run command: ${x.message}]`)}let l="",r="",f=0,a=x=>{let E=x.toString("utf8");if(l.length<4e3){let u=4e3-l.length;l+=E.slice(0,u),r+=E.slice(u)}else r+=E;r.length>8e3&&(f+=r.length-8e3,r=r.slice(-8e3))};s.stdout.on("data",a),s.stderr.on("data",a);let d=!1,m=!1,h=()=>Z(s.pid,process.platform,()=>s.kill("SIGKILL")),w=setTimeout(()=>{d=!0,h()},n),y=()=>{m=!0,h()};t?.addEventListener("abort",y,{once:!0}),s.on("close",x=>{clearTimeout(w),t?.removeEventListener("abort",y);let E=(l+(f?`
21
+ [\u2026 ${f} characters omitted \u2026]
22
+ `:"")+r).replace(/\r\n/g,`
23
+ `),u=m?"[interrupted by the user]":d?`[timed out after ${Math.round(n/1e3)}s]`:`[exit code ${x}]`;i(`${E.slice(0,Fe)}
24
+ ${u}`.trim())}),s.on("error",x=>{clearTimeout(w),t?.removeEventListener("abort",y),i(`[could not run command: ${x.message}]`)})})}};var _="0.2.0",Ne=()=>`
25
+ ${g.ember("\u2726")} ${g.bold(oe("FlintMaker"))} ${g.bold("flint")} ${g.grey(`v${_}`)} ${g.grey("\u2014 the AI coding agent for your terminal")}
26
+
27
+ ${g.bold("Usage")}
28
+ flint start an interactive session in this folder
29
+ flint "task" do one task, then exit (plain output, good for scripts)
30
+ flint login connect this computer to your FlintMaker account
31
+ flint logout disconnect
32
+ flint whoami show account and credits
33
+ flint update update flint now (it also updates itself daily)
34
+
35
+ ${g.bold("Options")}
36
+ --smart use the Smart model (paid plans, more credits)
37
+ --plan plan only: read the project, change nothing
38
+ --yes approve every change and command (careful!)
39
+ --help, --version
40
+
41
+ ${g.bold("In a session")}
42
+ /help /model /mode /clear /compact /credits /init /login /logout /exit
43
+ @path attaches a file \xB7 shift+tab switches mode \xB7 esc interrupts
44
+ `;function Ie(o){let e=new Set(o.filter(t=>t.startsWith("--"))),n=o.filter(t=>!t.startsWith("--"));return{flags:e,rest:n}}async function ue(){let o=new N(R(null));console.log();let e=await o.deviceLogin((n,t)=>{console.log(` ${g.ember("\u2726")} Your code: ${g.bold(g.gold(n))}`),console.log(` ${g.grey("Opening")} ${t}`),console.log(` ${g.grey("Approve it in the browser. Waiting\u2026")}`),ne(t)});ie({token:e.token,email:e.user.email,api:o.base}),console.log(`
45
+ ${g.green("\u2713")} Signed in as ${g.bold(e.user.email)}. Run ${g.bold("flint")} in any project folder.
46
+ `)}async function De(){let o="";process.stdin.setEncoding("utf8");for await(let e of process.stdin)o+=e;return o.trim()}function Re(){setTimeout(()=>{import("./chunks/update-TVZWTPD2.js").then(o=>o.autoUpdate({current:_,notify:e=>le(e),preload:()=>Promise.all([import("./chunks/repl-LUJ6BCT7.js"),import("./chunks/plain-EQXWFHTX.js"),import("./chunks/highlight-QJIBHZTN.js")])})).catch(()=>{})},200).unref()}async function Me(){if(!ee())for(let m of[process.stdout,process.stderr])m.isTTY&&te(m);let{flags:o,rest:e}=Ie(process.argv.slice(2));if(o.has("--version")||o.has("-v"))return console.log(_);if(o.has("--help")||e[0]==="help"||e[0]==="-h")return console.log(Ne());if(e[0]==="login")return ue();if(e[0]==="__update"&&e[1]){let{updateWorker:m}=await import("./chunks/update-TVZWTPD2.js");return m(e[1])}if(e[0]==="update"&&e.length===1){let{updateNow:m}=await import("./chunks/update-TVZWTPD2.js");return m(_,h=>console.log(` ${h}`))}if(e[0]==="logout")return re(),console.log(`
47
+ Signed out. ${g.grey("Disconnect old terminals any time on your account page.")}
48
+ `);let n=!!process.stdin.isTTY&&!!process.stdout.isTTY;if(!D()){if(!n)return process.stderr.write(`flint: not signed in. Run: flint login
49
+ `),1;let{welcome:m,shortPath:h}=await import("./chunks/render-Q3KDKHPR.js"),{homedir:w}=await import("node:os"),y=Math.max(40,process.stdout.columns||80);console.log();let x={version:_,model:o.has("--smart")?"smart":"standard",cwd:h(process.cwd(),w(),28),status:"not signed in yet"};for(let E of m(x,y))console.log(E);console.log(`
50
+ ${g.ember("\u2726")} Welcome to ${g.bold("flint")}. Let's connect your FlintMaker account (opening your browser):`),await ue()}let t=D(),i=R(t);if(i!==t.api)throw new F(`This token belongs to ${t.api}. Run flint login to use ${i}.`);let c=new N(i,t.token);if(e[0]==="whoami"){let m=await c.me();return console.log(`
51
+ ${g.bold(m.user.email)} \xB7 ${m.user.plan} \xB7 ${ae(m.usage)}
52
+ `)}let s=new S(process.cwd()),l=o.has("--smart")?"smart":"standard",r=o.has("--plan")?"plan":"ask",f=o.has("--yes");Re();let a=e.join(" ").trim();if(!a&&!process.stdin.isTTY&&(a=await De()),a||!n){if(!a)throw new F('Nothing to do. Pass a task: flint "fix the failing test"');let{oneShot:m}=await import("./chunks/plain-EQXWFHTX.js");return m(a,{client:c,ws:s,model:l,autoYes:f,mode:r})}let{interactive:d}=await import("./chunks/repl-LUJ6BCT7.js");await d({version:_,client:c,ws:s,model:l,autoYes:f,mode:r})}Me().then(o=>{typeof o=="number"&&o!==0&&(process.exitCode=o),setTimeout(()=>process.exit(),20).unref()},o=>{let e=se(o);process.stderr.write(`
53
+ ${g.red("\u2717")} ${g.bold(e.title)}
54
+ ${e.lines.map(n=>` ${n}
55
+ `).join("")}
56
+ `),process.exit(1)});
package/package.json CHANGED
@@ -1,6 +1,37 @@
1
1
  {
2
2
  "name": "flintmaker",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.2.0",
4
+ "description": "flint — the FlintMaker AI coding agent for your terminal.",
5
+ "license": "UNLICENSED",
6
+ "author": "PT Jiji Labs Digital",
7
+ "homepage": "https://flintmaker.com",
8
+ "type": "module",
9
+ "bin": {
10
+ "flint": "dist/flint.js",
11
+ "flintmaker": "dist/flint.js"
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "README.md"
16
+ ],
17
+ "engines": {
18
+ "node": ">=20"
19
+ },
20
+ "scripts": {
21
+ "build": "node scripts/build.mjs",
22
+ "test": "vitest run",
23
+ "typecheck": "tsc --noEmit",
24
+ "smoke": "npm run build && node test/smoke/run.mjs"
25
+ },
26
+ "devDependencies": {
27
+ "@types/diff": "^7.0.2",
28
+ "@types/node": "^22.20.5",
29
+ "diff": "^9.0.0",
30
+ "esbuild": "^0.28.2",
31
+ "highlight.js": "^11.12.0",
32
+ "marked": "^18.1.1",
33
+ "picocolors": "^1.1.1",
34
+ "typescript": "^7.0.2",
35
+ "vitest": "^5.0.4"
36
+ }
37
+ }