@kitn.ai/chat
Version:
Framework-agnostic, Shadow-DOM web components for building AI chat interfaces — works in React, Vue, Angular, Svelte, or plain HTML. Authored in SolidJS.
141 lines • 60.4 kB
JavaScript
var Pn=Object.defineProperty,Fn=Object.getPrototypeOf,Un=Reflect.get,De=e=>{throw TypeError(e)},Bn=(e,n,t)=>n in e?Pn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,ie=(e,n,t)=>Bn(e,typeof n!="symbol"?n+"":n,t),me=(e,n,t)=>n.has(e)||De("Cannot "+t),E=(e,n,t)=>(me(e,n,"read from private field"),t?t.call(e):n.get(e)),X=(e,n,t)=>n.has(e)?De("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(e):n.set(e,t),L=(e,n,t,r)=>(me(e,n,"write to private field"),r?r.call(e,t):n.set(e,t),t),Oe=(e,n,t)=>(me(e,n,"access private method"),t),Gn=(e,n,t)=>Un(Fn(e),t,n),be=class{constructor(e,n={}){ie(this,"patterns"),ie(this,"options"),ie(this,"regexps"),this.patterns=e,this.options=n;const{forgiving:t=!1,cache:r,regexConstructor:a}=n;if(!a)throw new Error("Option `regexConstructor` is not provided");this.regexps=e.map(o=>{if(typeof o!="string")return o;const s=r?.get(o);if(s){if(s instanceof RegExp)return s;if(t)return null;throw s}try{const i=a(o);return r?.set(o,i),i}catch(i){if(r?.set(o,i),t)return null;throw i}})}findNextMatchSync(e,n,t){const r=typeof e=="string"?e:e.content,a=[];function o(s,i,u=0){return{index:s,captureIndices:i.indices.map(c=>c==null?{start:4294967295,end:4294967295,length:0}:{start:c[0]+u,end:c[1]+u,length:c[1]-c[0]})}}for(let s=0;s<this.regexps.length;s++){const i=this.regexps[s];if(i)try{i.lastIndex=n;const u=i.exec(r);if(!u)continue;if(u.index===n)return o(s,u,0);a.push([s,u,0])}catch(u){if(this.options.forgiving)continue;throw u}}if(a.length){const s=Math.min(...a.map(i=>i[1].index));for(const[i,u,c]of a)if(u.index===s)return o(i,u,c)}return null}};function Z(e){if([...e].length!==1)throw new Error(`Expected "${e}" to be a single code point`);return e.codePointAt(0)}function Dn(e,n,t){return e.has(n)||e.set(n,t),e.get(n)}const Ce=new Set(["alnum","alpha","ascii","blank","cntrl","digit","graph","lower","print","punct","space","upper","word","xdigit"]),x=String.raw;function Q(e,n){if(e==null)throw new Error(n??"Value expected");return e}const Te=x`\[\^?`,We=`c.? | C(?:-.?)?|${x`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${x`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${x`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${x`o\{[^\}]*\}?`}|${x`\d{1,3}`}`,xe=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,ue=new RegExp(x`
\\ (?:
${We}
| [gk]<[^>]*>?
| [gk]'[^']*'?
| .
)
| \( (?:
\? (?:
[:=!>({]
| <[=!]
| <[^>]*>
| '[^']*'
| ~\|?
| #(?:[^)\\]|\\.?)*
| [^:)]*[:)]
)?
| \*[^\)]*\)?
)?
| (?:${xe.source})+
| ${Te}
| .
`.replace(/\s+/g,""),"gsu"),ke=new RegExp(x`
\\ (?:
${We}
| .
)
| \[:(?:\^?\p{Alpha}+|\^):\]
| ${Te}
| &&
| .
`.replace(/\s+/g,""),"gsu");function On(e,n={}){const t={flags:"",...n,rules:{captureGroup:!1,singleline:!1,...n.rules}};if(typeof e!="string")throw new Error("String expected as pattern");const r=at(t.flags),a=[r.extended],o={captureGroup:t.rules.captureGroup,getCurrentModX(){return a.at(-1)},numOpenGroups:0,popModX(){a.pop()},pushModX(l){a.push(l)},replaceCurrentModX(l){a[a.length-1]=l},singleline:t.rules.singleline};let s=[],i;for(ue.lastIndex=0;i=ue.exec(e);){const l=Tn(o,e,i[0],ue.lastIndex);l.tokens?s.push(...l.tokens):l.token&&s.push(l.token),l.lastIndex!==void 0&&(ue.lastIndex=l.lastIndex)}const u=[];let c=0;s.filter(l=>l.type==="GroupOpen").forEach(l=>{l.kind==="capturing"?l.number=++c:l.raw==="("&&u.push(l)}),c||u.forEach((l,d)=>{l.kind="capturing",l.number=d+1});const p=c||u.length;return{tokens:s.map(l=>l.type==="EscapedNumber"?it(l,p):l).flat(),flags:r}}function Tn(e,n,t,r){const[a,o]=t;if(t==="["||t==="[^"){const s=Wn(n,t,r);return{tokens:s.tokens,lastIndex:s.lastIndex}}if(a==="\\"){if("AbBGyYzZ".includes(o))return{token:Ve(t,t)};if(/^\\g[<']/.test(t)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(t))throw new Error(`Invalid group name "${t}"`);return{token:Kn(t)}}if(/^\\k[<']/.test(t)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(t))throw new Error(`Invalid group name "${t}"`);return{token:je(t)}}if(o==="K")return{token:Xe("keep",t)};if(o==="N"||o==="R")return{token:O("newline",t,{negate:o==="N"})};if(o==="O")return{token:O("any",t)};if(o==="X")return{token:O("text_segment",t)};const s=ze(t,{inCharClass:!1});return Array.isArray(s)?{tokens:s}:{token:s}}if(a==="("){if(o==="*")return{token:tt(t)};if(t==="(?{")throw new Error(`Unsupported callout "${t}"`);if(t.startsWith("(?#")){if(n[r]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:r+1}}if(/^\(\?[-imx]+[:)]$/.test(t))return{token:nt(t,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,t==="("&&!e.captureGroup||t==="(?:")return{token:q("group",t)};if(t==="(?>")return{token:q("atomic",t)};if(t==="(?="||t==="(?!"||t==="(?<="||t==="(?<!")return{token:q(t[2]==="<"?"lookbehind":"lookahead",t,{negate:t.endsWith("!")})};if(t==="("&&e.captureGroup||t.startsWith("(?<")&&t.endsWith(">")||t.startsWith("(?'")&&t.endsWith("'"))return{token:q("capturing",t,{...t!=="("&&{name:t.slice(3,-1)}})};if(t.startsWith("(?~")){if(t==="(?~|")throw new Error(`Unsupported absence function kind "${t}"`);return{token:q("absence_repeater",t)}}throw t==="(?("?new Error(`Unsupported conditional "${t}"`):new Error(`Invalid or unsupported group option "${t}"`)}if(t===")"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched ")"');return{token:Qn(t)}}if(e.getCurrentModX()){if(t==="#"){const s=n.indexOf(`
`,r);return{lastIndex:s===-1?n.length:s}}if(/^\s$/.test(t)){const s=/\s+/y;return s.lastIndex=r,{lastIndex:s.exec(n)?s.lastIndex:r}}}if(t===".")return{token:O("dot",t)};if(t==="^"||t==="$"){const s=e.singleline?{"^":x`\A`,$:x`\Z`}[t]:t;return{token:Ve(s,t)}}return t==="|"?{token:Vn(t)}:xe.test(t)?{tokens:ut(t)}:{token:R(Z(t),t)}}function Wn(e,n,t){const r=[He(n[1]==="^",n)];let a=1,o;for(ke.lastIndex=t;o=ke.exec(e);){const s=o[0];if(s[0]==="["&&s[1]!==":")a++,r.push(He(s[1]==="^",s));else if(s==="]"){if(r.at(-1).type==="CharacterClassOpen")r.push(R(93,s));else if(a--,r.push(jn(s)),!a)break}else{const i=zn(s);Array.isArray(i)?r.push(...i):r.push(i)}}return{tokens:r,lastIndex:ke.lastIndex||e.length}}function zn(e){if(e[0]==="\\")return ze(e,{inCharClass:!0});if(e[0]==="["){const n=/\[:(?<negate>\^?)(?<name>[a-z]+):\]/.exec(e);if(!n||!Ce.has(n.groups.name))throw new Error(`Invalid POSIX class "${e}"`);return O("posix",e,{value:n.groups.name,negate:!!n.groups.negate})}return e==="-"?Hn(e):e==="&&"?Xn(e):R(Z(e),e)}function ze(e,{inCharClass:n}){const t=e[1];if(t==="c"||t==="C")return et(e);if("dDhHsSwW".includes(t))return rt(e);if(e.startsWith(x`\o{`))throw new Error(`Incomplete, invalid, or unsupported octal code point "${e}"`);if(/^\\[pP]\{/.test(e)){if(e.length===3)throw new Error(`Incomplete or invalid Unicode property "${e}"`);return ot(e)}if(new RegExp("^\\\\x[89A-Fa-f]\\p{AHex}","u").test(e))try{const r=e.split(/\\x/).slice(1).map(s=>parseInt(s,16)),a=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(r)),o=new TextEncoder;return[...a].map(s=>{const i=[...o.encode(s)].map(u=>`\\x${u.toString(16)}`).join("");return R(Z(s),i)})}catch{throw new Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(t==="u"||t==="x")return R(st(e),e);if(Ze.has(t))return R(Ze.get(t),e);if(/\d/.test(t))return Zn(n,e);if(e==="\\")throw new Error(x`Incomplete escape "\"`);if(t==="M")throw new Error(`Unsupported meta "${e}"`);if([...e].length===2)return R(e.codePointAt(1),e);throw new Error(`Unexpected escape "${e}"`)}function Vn(e){return{type:"Alternator",raw:e}}function Ve(e,n){return{type:"Assertion",kind:e,raw:n}}function je(e){return{type:"Backreference",raw:e}}function R(e,n){return{type:"Character",value:e,raw:n}}function jn(e){return{type:"CharacterClassClose",raw:e}}function Hn(e){return{type:"CharacterClassHyphen",raw:e}}function Xn(e){return{type:"CharacterClassIntersector",raw:e}}function He(e,n){return{type:"CharacterClassOpen",negate:e,raw:n}}function O(e,n,t={}){return{type:"CharacterSet",kind:e,...t,raw:n}}function Xe(e,n,t={}){return e==="keep"?{type:"Directive",kind:e,raw:n}:{type:"Directive",kind:e,flags:Q(t.flags),raw:n}}function Zn(e,n){return{type:"EscapedNumber",inCharClass:e,raw:n}}function Qn(e){return{type:"GroupClose",raw:e}}function q(e,n,t={}){return{type:"GroupOpen",kind:e,...t,raw:n}}function qn(e,n,t,r){return{type:"NamedCallout",kind:e,tag:n,arguments:t,raw:r}}function Jn(e,n,t,r){return{type:"Quantifier",kind:e,min:n,max:t,raw:r}}function Kn(e){return{type:"Subroutine",raw:e}}const Yn=new Set(["COUNT","CMP","ERROR","FAIL","MAX","MISMATCH","SKIP","TOTAL_COUNT"]),Ze=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]);function et(e){const n=e[1]==="c"?e[2]:e[3];if(!n||!/[A-Za-z]/.test(n))throw new Error(`Unsupported control character "${e}"`);return R(Z(n.toUpperCase())-64,e)}function nt(e,n){let{on:t,off:r}=/^\(\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(e).groups;r??(r="");const a=(n.getCurrentModX()||t.includes("x"))&&!r.includes("x"),o=qe(t),s=qe(r),i={};if(o&&(i.enable=o),s&&(i.disable=s),e.endsWith(")"))return n.replaceCurrentModX(a),Xe("flags",e,{flags:i});if(e.endsWith(":"))return n.pushModX(a),n.numOpenGroups++,q("group",e,{...(o||s)&&{flags:i}});throw new Error(`Unexpected flag modifier "${e}"`)}function tt(e){const n=/\(\*(?<name>[A-Za-z_]\w*)?(?:\[(?<tag>(?:[A-Za-z_]\w*)?)\])?(?:\{(?<args>[^}]*)\})?\)/.exec(e);if(!n)throw new Error(`Incomplete or invalid named callout "${e}"`);const{name:t,tag:r,args:a}=n.groups;if(!t)throw new Error(`Invalid named callout "${e}"`);if(r==="")throw new Error(`Named callout tag with empty value not allowed "${e}"`);const o=a?a.split(",").filter(p=>p!=="").map(p=>/^[+-]?\d+$/.test(p)?+p:p):[],[s,i,u]=o,c=Yn.has(t)?t.toLowerCase():"custom";switch(c){case"fail":case"mismatch":case"skip":if(o.length>0)throw new Error(`Named callout arguments not allowed "${o}"`);break;case"error":if(o.length>1)throw new Error(`Named callout allows only one argument "${o}"`);if(typeof s=="string")throw new Error(`Named callout argument must be a number "${s}"`);break;case"max":if(!o.length||o.length>2)throw new Error(`Named callout must have one or two arguments "${o}"`);if(typeof s=="string"&&!/^[A-Za-z_]\w*$/.test(s))throw new Error(`Named callout argument one must be a tag or number "${s}"`);if(o.length===2&&(typeof i=="number"||!/^[<>X]$/.test(i)))throw new Error(`Named callout optional argument two must be '<', '>', or 'X' "${i}"`);break;case"count":case"total_count":if(o.length>1)throw new Error(`Named callout allows only one argument "${o}"`);if(o.length===1&&(typeof s=="number"||!/^[<>X]$/.test(s)))throw new Error(`Named callout optional argument must be '<', '>', or 'X' "${s}"`);break;case"cmp":if(o.length!==3)throw new Error(`Named callout must have three arguments "${o}"`);if(typeof s=="string"&&!/^[A-Za-z_]\w*$/.test(s))throw new Error(`Named callout argument one must be a tag or number "${s}"`);if(typeof i=="number"||!/^(?:[<>!=]=|[<>])$/.test(i))throw new Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' "${i}"`);if(typeof u=="string"&&!/^[A-Za-z_]\w*$/.test(u))throw new Error(`Named callout argument three must be a tag or number "${u}"`);break;case"custom":throw new Error(`Undefined callout name "${t}"`);default:throw new Error(`Unexpected named callout kind "${c}"`)}return qn(c,r??null,a?.split(",")??null,e)}function Qe(e){let n=null,t,r;if(e[0]==="{"){const{minStr:a,maxStr:o}=/^\{(?<minStr>\d*)(?:,(?<maxStr>\d*))?/.exec(e).groups,s=1e5;if(+a>s||o&&+o>s)throw new Error("Quantifier value unsupported in Oniguruma");if(t=+a,r=o===void 0?+a:o===""?1/0:+o,t>r&&(n="possessive",[t,r]=[r,t]),e.endsWith("?")){if(n==="possessive")throw new Error('Unsupported possessive interval quantifier chain with "?"');n="lazy"}else n||(n="greedy")}else t=e[0]==="+"?1:0,r=e[0]==="?"?1:1/0,n=e[1]==="+"?"possessive":e[1]==="?"?"lazy":"greedy";return Jn(n,t,r,e)}function rt(e){const n=e[1].toLowerCase();return O({d:"digit",h:"hex",s:"space",w:"word"}[n],e,{negate:e[1]!==n})}function ot(e){const{p:n,neg:t,value:r}=/^\\(?<p>[pP])\{(?<neg>\^?)(?<value>[^}]+)/.exec(e).groups;return O("property",e,{value:r,negate:n==="P"&&!t||n==="p"&&!!t})}function qe(e){const n={};return e.includes("i")&&(n.ignoreCase=!0),e.includes("m")&&(n.dotAll=!0),e.includes("x")&&(n.extended=!0),Object.keys(n).length?n:null}function at(e){const n={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii:!1,posixIsAscii:!1,spaceIsAscii:!1,wordIsAscii:!1,textSegmentMode:null};for(let t=0;t<e.length;t++){const r=e[t];if(!"imxDPSWy".includes(r))throw new Error(`Invalid flag "${r}"`);if(r==="y"){if(!/^y{[gw]}/.test(e.slice(t)))throw new Error('Invalid or unspecified flag "y" mode');n.textSegmentMode=e[t+2]==="g"?"grapheme":"word",t+=3;continue}n[{i:"ignoreCase",m:"dotAll",x:"extended",D:"digitIsAscii",P:"posixIsAscii",S:"spaceIsAscii",W:"wordIsAscii"}[r]]=!0}return n}function st(e){if(new RegExp("^(?:\\\\u(?!\\p{AHex}{4})|\\\\x(?!\\p{AHex}{1,2}|\\{\\p{AHex}{1,8}\\}))","u").test(e))throw new Error(`Incomplete or invalid escape "${e}"`);const n=e[2]==="{"?new RegExp("^\\\\x\\{\\s*(?<hex>\\p{AHex}+)","u").exec(e).groups.hex:e.slice(2);return parseInt(n,16)}function it(e,n){const{raw:t,inCharClass:r}=e,a=t.slice(1);if(!r&&(a!=="0"&&a.length===1||a[0]!=="0"&&+a<=n))return[je(t)];const o=[],s=a.match(/^[0-7]+|\d/g);for(let i=0;i<s.length;i++){const u=s[i];let c;if(i===0&&u!=="8"&&u!=="9"){if(c=parseInt(u,8),c>127)throw new Error(x`Octal encoded byte above 177 unsupported "${t}"`)}else c=Z(u);o.push(R(c,(i===0?"\\":"")+u))}return o}function ut(e){const n=[],t=new RegExp(xe,"gy");let r;for(;r=t.exec(e);){const a=r[0];if(a[0]==="{"){const o=/^\{(?<min>\d+),(?<max>\d+)\}\??$/.exec(a);if(o){const{min:s,max:i}=o.groups;if(+s>+i&&a.endsWith("?")){t.lastIndex--,n.push(Qe(a.slice(0,-1)));continue}}}n.push(Qe(a))}return n}function Je(e,n){if(!Array.isArray(e.body))throw new Error("Expected node with body array");if(e.body.length!==1)return!1;const t=e.body[0];return!n||Object.keys(n).every(r=>n[r]===t[r])}function ct(e){return lt.has(e.type)}const lt=new Set(["AbsenceFunction","Backreference","CapturingGroup","Character","CharacterClass","CharacterSet","Group","Quantifier","Subroutine"]);function Ke(e,n={}){const t={flags:"",normalizeUnknownPropertyNames:!1,skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...n,rules:{captureGroup:!1,singleline:!1,...n.rules}},r=On(e,{flags:t.flags,rules:{captureGroup:t.rules.captureGroup,singleline:t.rules.singleline}}),a=(d,g)=>{const f=r.tokens[o.nextIndex];switch(o.parent=d,o.nextIndex++,f.type){case"Alternator":return T();case"Assertion":return pt(f);case"Backreference":return dt(f,o);case"Character":return ce(f.value,{useLastValid:!!g.isCheckingRangeEnd});case"CharacterClassHyphen":return ft(f,o,g);case"CharacterClassOpen":return gt(f,o,g);case"CharacterSet":return ht(f,o);case"Directive":return xt(f.kind,{flags:f.flags});case"GroupOpen":return wt(f,o,g);case"NamedCallout":return Et(f.kind,f.tag,f.arguments);case"Quantifier":return yt(f,o);case"Subroutine":return mt(f,o);default:throw new Error(`Unexpected token type "${f.type}"`)}},o={capturingGroups:[],hasNumberedRef:!1,namedGroupsByName:new Map,nextIndex:0,normalizeUnknownPropertyNames:t.normalizeUnknownPropertyNames,parent:null,skipBackrefValidation:t.skipBackrefValidation,skipLookbehindValidation:t.skipLookbehindValidation,skipPropertyNameValidation:t.skipPropertyNameValidation,subroutines:[],tokens:r.tokens,unicodePropertyMap:t.unicodePropertyMap,walk:a},s=$t(kt(r.flags));let i=s.body[0];for(;o.nextIndex<r.tokens.length;){const d=a(i,{});d.type==="Alternative"?(s.body.push(d),i=d):i.body.push(d)}const{capturingGroups:u,hasNumberedRef:c,namedGroupsByName:p,subroutines:l}=o;if(c&&p.size&&!t.rules.captureGroup)throw new Error("Numbered backref/subroutine not allowed when using named capture");for(const{ref:d}of l)if(typeof d=="number"){if(d>u.length)throw new Error("Subroutine uses a group number that's not defined");d&&(u[d-1].isSubroutined=!0)}else if(p.has(d)){if(p.get(d).length>1)throw new Error(x`Subroutine uses a duplicate group name "\g<${d}>"`);p.get(d)[0].isSubroutined=!0}else throw new Error(x`Subroutine uses a group name that's not defined "\g<${d}>"`);return s}function pt({kind:e}){return Ee(Q({"^":"line_start",$:"line_end","\\A":"string_start","\\b":"word_boundary","\\B":"word_boundary","\\G":"search_start","\\y":"text_segment_boundary","\\Y":"text_segment_boundary","\\z":"string_end","\\Z":"string_end_newline"}[e],`Unexpected assertion kind "${e}"`),{negate:e===x`\B`||e===x`\Y`})}function dt({raw:e},n){const t=/^\\k[<']/.test(e),r=t?e.slice(3,-1):e.slice(1),a=(o,s=!1)=>{const i=n.capturingGroups.length;let u=!1;if(o>i)if(n.skipBackrefValidation)u=!0;else throw new Error(`Not enough capturing groups defined to the left "${e}"`);return n.hasNumberedRef=!0,ve(s?i+1-o:o,{orphan:u})};if(t){const o=/^(?<sign>-?)0*(?<num>[1-9]\d*)$/.exec(r);if(o)return a(+o.groups.num,!!o.groups.sign);if(/[-+]/.test(r))throw new Error(`Invalid backref name "${e}"`);if(!n.namedGroupsByName.has(r))throw new Error(`Group name not defined to the left "${e}"`);return ve(r)}return a(+r)}function ft(e,n,t){const{tokens:r,walk:a}=n,o=n.parent,s=o.body.at(-1),i=r[n.nextIndex];if(!t.isCheckingRangeEnd&&s&&s.type!=="CharacterClass"&&s.type!=="CharacterClassRange"&&i&&i.type!=="CharacterClassOpen"&&i.type!=="CharacterClassClose"&&i.type!=="CharacterClassIntersector"){const u=a(o,{...t,isCheckingRangeEnd:!0});if(s.type==="Character"&&u.type==="Character")return o.body.pop(),Ct(s,u);throw new Error("Invalid character class range")}return ce(Z("-"))}function gt({negate:e},n,t){const{tokens:r,walk:a}=n,o=[le()],s=r[n.nextIndex];let i=an(s);for(;i.type!=="CharacterClassClose";){if(i.type==="CharacterClassIntersector")o.push(le()),n.nextIndex++;else{const c=o.at(-1);c.body.push(a(c,t))}i=an(r[n.nextIndex],s)}const u=le({negate:e});return o.length===1?u.body=o[0].body:(u.kind="intersection",u.body=o.map(c=>c.body.length===1?c.body[0]:c)),n.nextIndex++,u}function ht({kind:e,negate:n,value:t},r){const{normalizeUnknownPropertyNames:a,skipPropertyNameValidation:o,unicodePropertyMap:s}=r;if(e==="property"){const i=pe(t);if(Ce.has(i)&&!(s!=null&&s.has(i)))e="posix",t=i;else return J(t,{negate:n,normalizeUnknownPropertyNames:a,skipPropertyNameValidation:o,unicodePropertyMap:s})}return e==="posix"?vt(t,{negate:n}):$e(e,{negate:n})}function wt(e,n,t){const{tokens:r,capturingGroups:a,namedGroupsByName:o,skipLookbehindValidation:s,walk:i}=n,u=At(e),c=u.type==="AbsenceFunction",p=on(u),l=p&&u.negate;if(u.type==="CapturingGroup"&&(a.push(u),u.name&&Dn(o,u.name,[]).push(u)),c&&t.isInAbsenceFunction)throw new Error("Nested absence function not supported by Oniguruma");let d=sn(r[n.nextIndex]);for(;d.type!=="GroupClose";){if(d.type==="Alternator")u.body.push(T()),n.nextIndex++;else{const g=u.body.at(-1),f=i(g,{...t,isInAbsenceFunction:t.isInAbsenceFunction||c,isInLookbehind:t.isInLookbehind||p,isInNegLookbehind:t.isInNegLookbehind||l});if(g.body.push(f),(p||t.isInLookbehind)&&!s){const w="Lookbehind includes a pattern not allowed by Oniguruma";if(l||t.isInNegLookbehind){if(rn(f)||f.type==="CapturingGroup")throw new Error(w)}else if(rn(f)||on(f)&&f.negate)throw new Error(w)}}d=sn(r[n.nextIndex])}return n.nextIndex++,u}function yt({kind:e,min:n,max:t},r){const a=r.parent,o=a.body.at(-1);if(!o||!ct(o))throw new Error("Quantifier requires a repeatable token");const s=en(e,n,t,o);return a.body.pop(),s}function mt({raw:e},n){const{capturingGroups:t,subroutines:r}=n;let a=e.slice(3,-1);const o=/^(?<sign>[-+]?)0*(?<num>[1-9]\d*)$/.exec(a);if(o){const i=+o.groups.num,u=t.length;if(n.hasNumberedRef=!0,a={"":i,"+":u+i,"-":u+1-i}[o.groups.sign],a<1)throw new Error("Invalid subroutine number")}else a==="0"&&(a=0);const s=nn(a);return r.push(s),s}function bt(e,n){return{type:"AbsenceFunction",kind:e,body:re(n?.body)}}function T(e){return{type:"Alternative",body:tn(e?.body)}}function Ee(e,n){const t={type:"Assertion",kind:e};return(e==="word_boundary"||e==="text_segment_boundary")&&(t.negate=!!(n!=null&&n.negate)),t}function ve(e,n){const t=!!(n!=null&&n.orphan);return{type:"Backreference",ref:e,...t&&{orphan:t}}}function Ye(e,n){const t={name:void 0,isSubroutined:!1,...n};if(t.name!==void 0&&!It(t.name))throw new Error(`Group name "${t.name}" invalid in Oniguruma`);return{type:"CapturingGroup",number:e,...t.name&&{name:t.name},...t.isSubroutined&&{isSubroutined:t.isSubroutined},body:re(n?.body)}}function ce(e,n){const t={useLastValid:!1,...n};if(e>1114111){const r=e.toString(16);if(t.useLastValid)e=1114111;else throw e>1310719?new Error(`Invalid code point out of range "\\x{${r}}"`):new Error(`Invalid code point out of range in JS "\\x{${r}}"`)}return{type:"Character",value:e}}function le(e){const n={kind:"union",negate:!1,...e};return{type:"CharacterClass",kind:n.kind,negate:n.negate,body:tn(e?.body)}}function Ct(e,n){if(n.value<e.value)throw new Error("Character class range out of order");return{type:"CharacterClassRange",min:e,max:n}}function $e(e,n){const t=!!(n!=null&&n.negate),r={type:"CharacterSet",kind:e};return(e==="digit"||e==="hex"||e==="newline"||e==="space"||e==="word")&&(r.negate=t),(e==="text_segment"||e==="newline"&&!t)&&(r.variableLength=!0),r}function xt(e,n={}){if(e==="keep")return{type:"Directive",kind:e};if(e==="flags")return{type:"Directive",kind:e,flags:Q(n.flags)};throw new Error(`Unexpected directive kind "${e}"`)}function kt(e){return{type:"Flags",...e}}function _(e){const n=e?.atomic,t=e?.flags;if(n&&t)throw new Error("Atomic group cannot have flags");return{type:"Group",...n&&{atomic:n},...t&&{flags:t},body:re(e?.body)}}function W(e){const n={behind:!1,negate:!1,...e};return{type:"LookaroundAssertion",kind:n.behind?"lookbehind":"lookahead",negate:n.negate,body:re(e?.body)}}function Et(e,n,t){return{type:"NamedCallout",kind:e,tag:n,arguments:t}}function vt(e,n){const t=!!(n!=null&&n.negate);if(!Ce.has(e))throw new Error(`Invalid POSIX class "${e}"`);return{type:"CharacterSet",kind:"posix",value:e,negate:t}}function en(e,n,t,r){if(n>t)throw new Error("Invalid reversed quantifier range");return{type:"Quantifier",kind:e,min:n,max:t,body:r}}function $t(e,n){return{type:"Regex",body:re(n?.body),flags:e}}function nn(e){return{type:"Subroutine",ref:e}}function J(e,n){var t;const r={negate:!1,normalizeUnknownPropertyNames:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...n};let a=(t=r.unicodePropertyMap)==null?void 0:t.get(pe(e));if(!a){if(r.normalizeUnknownPropertyNames)a=St(e);else if(r.unicodePropertyMap&&!r.skipPropertyNameValidation)throw new Error(x`Invalid Unicode property "\p{${e}}"`)}return{type:"CharacterSet",kind:"property",value:a??e,negate:r.negate}}function At({flags:e,kind:n,name:t,negate:r,number:a}){switch(n){case"absence_repeater":return bt("repeater");case"atomic":return _({atomic:!0});case"capturing":return Ye(a,{name:t});case"group":return _({flags:e});case"lookahead":case"lookbehind":return W({behind:n==="lookbehind",negate:r});default:throw new Error(`Unexpected group kind "${n}"`)}}function re(e){if(e===void 0)e=[T()];else if(!Array.isArray(e)||!e.length||!e.every(n=>n.type==="Alternative"))throw new Error("Invalid body; expected array of one or more Alternative nodes");return e}function tn(e){if(e===void 0)e=[];else if(!Array.isArray(e)||!e.every(n=>!!n.type))throw new Error("Invalid body; expected array of nodes");return e}function rn(e){return e.type==="LookaroundAssertion"&&e.kind==="lookahead"}function on(e){return e.type==="LookaroundAssertion"&&e.kind==="lookbehind"}function It(e){return/^[\p{Alpha}\p{Pc}][^)]*$/u.test(e)}function St(e){return e.trim().replace(/[- _]+/g,"_").replace(/[A-Z][a-z]+(?=[A-Z])/g,"$&_").replace(/[A-Za-z]+/g,n=>n[0].toUpperCase()+n.slice(1).toLowerCase())}function pe(e){return e.replace(/[- _]+/g,"").toLowerCase()}function an(e,n){const t=n;return Q(e,`Unclosed character class${t?.type==="Character"&&t.value===93&&t.raw==="]"?' (started with "]")':""}`)}function sn(e){return Q(e,"Unclosed group")}function oe(e,n,t=null){function r(o,s){for(let i=0;i<o.length;i++){const u=a(o[i],s,i,o);i=Math.max(-1,i+u)}}function a(o,s=null,i=null,u=null){var c,p;let l=0,d=!1;const g={node:o,parent:s,key:i,container:u,root:e,remove(){de(u).splice(Math.max(0,K(i)+l),1),l--,d=!0},removeAllNextSiblings(){return de(u).splice(K(i)+1)},removeAllPrevSiblings(){const m=K(i)+l;return l-=m,de(u).splice(0,Math.max(0,m))},replaceWith(m,k={}){const I=!!k.traverse;u?u[Math.max(0,K(i)+l)]=m:Q(s,"Can't replace root node")[i]=m,I&&a(m,s,i,u),d=!0},replaceWithMultiple(m,k={}){const I=!!k.traverse;if(de(u).splice(Math.max(0,K(i)+l),1,...m),l+=m.length-1,I){let D=0;for(let S=0;S<m.length;S++)D+=a(m[S],s,K(i)+S+D,u)}d=!0},skip(){d=!0}},{type:f}=o,w=n["*"],y=n[f],N=typeof w=="function"?w:w?.enter,v=typeof y=="function"?y:y?.enter;if(N?.(g,t),v?.(g,t),!d)switch(f){case"AbsenceFunction":case"Alternative":case"CapturingGroup":case"CharacterClass":case"Group":case"LookaroundAssertion":r(o.body,o);break;case"Assertion":case"Backreference":case"Character":case"CharacterSet":case"Directive":case"Flags":case"NamedCallout":case"Subroutine":break;case"CharacterClassRange":a(o.min,o,"min"),a(o.max,o,"max");break;case"Quantifier":a(o.body,o,"body");break;case"Regex":r(o.body,o),a(o.flags,o,"flags");break;default:throw new Error(`Unexpected node type "${f}"`)}return(c=y?.exit)==null||c.call(y,g,t),(p=w?.exit)==null||p.call(w,g,t),l}return a(e),e}function de(e){if(!Array.isArray(e))throw new Error("Container expected");return e}function K(e){if(typeof e!="number")throw new Error("Numeric key expected");return e}const _t=String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;function Mt(e,n){for(let t=0;t<e.length;t++)e[t]>=n&&e[t]++}function Nt(e,n,t,r){return e.slice(0,n)+r+e.slice(n+t.length)}const $=Object.freeze({DEFAULT:"DEFAULT",CHAR_CLASS:"CHAR_CLASS"});function Ae(e,n,t,r){const a=new RegExp(String.raw`${n}|(?<$skip>\[\^?|\\?.)`,"gsu"),o=[!1];let s=0,i="";for(const u of e.matchAll(a)){const{0:c,groups:{$skip:p}}=u;if(!p&&(!r||r===$.DEFAULT==!s)){t instanceof Function?i+=t(u,{context:s?$.CHAR_CLASS:$.DEFAULT,negated:o[o.length-1]}):i+=t;continue}c[0]==="["?(s++,o.push(c[1]==="^")):c==="]"&&s&&(s--,o.pop()),i+=c}return i}function un(e,n,t,r){Ae(e,n,t,r)}function Lt(e,n,t=0,r){if(!new RegExp(n,"su").test(e))return null;const a=new RegExp(`${n}|(?<$skip>\\\\?.)`,"gsu");a.lastIndex=t;let o=0,s;for(;s=a.exec(e);){const{0:i,groups:{$skip:u}}=s;if(!u&&(!r||r===$.DEFAULT==!o))return s;i==="["?o++:i==="]"&&o&&o--,a.lastIndex==s.index&&a.lastIndex++}return null}function fe(e,n,t){return!!Lt(e,n,0,t)}function Rt(e,n){const t=/\\?./gsu;t.lastIndex=n;let r=e.length,a=0,o=1,s;for(;s=t.exec(e);){const[i]=s;if(i==="[")a++;else if(a)i==="]"&&a--;else if(i==="(")o++;else if(i===")"&&(o--,!o)){r=s.index;break}}return e.slice(n,r)}const cn=new RegExp(String.raw`(?<noncapturingStart>${_t})|(?<capturingStart>\((?:\?<[^>]+>)?)|\\?.`,"gsu");function Pt(e,n){const t=n?.hiddenCaptures??[];let r=n?.captureTransfers??new Map;if(!/\(\?>/.test(e))return{pattern:e,captureTransfers:r,hiddenCaptures:t};const a="(?>",o="(?:(?=(",s=[0],i=[];let u=0,c=0,p=NaN,l;do{l=!1;let d=0,g=0,f=!1,w;for(cn.lastIndex=Number.isNaN(p)?0:p+o.length;w=cn.exec(e);){const{0:y,index:N,groups:{capturingStart:v,noncapturingStart:m}}=w;if(y==="[")d++;else if(d)y==="]"&&d--;else if(y===a&&!f)p=N,f=!0;else if(f&&m)g++;else if(v)f?g++:(u++,s.push(u+c));else if(y===")"&&f){if(!g){c++;const k=u+c;if(e=`${e.slice(0,p)}${o}${e.slice(p+a.length,N)}))<$$${k}>)${e.slice(N+1)}`,l=!0,i.push(k),Mt(t,k),r.size){const I=new Map;r.forEach((D,S)=>{I.set(S>=k?S+1:S,D.map(H=>H>=k?H+1:H))}),r=I}break}g--}}}while(l);return t.push(...i),e=Ae(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:d,groups:{backrefNum:g,wrappedBackrefNum:f}})=>{if(g){const w=+g;if(w>s.length-1)throw new Error(`Backref "${d}" greater than number of captures`);return`\\${s[w]}`}return`\\${f}`},$.DEFAULT),{pattern:e,captureTransfers:r,hiddenCaptures:t}}const ln=String.raw`(?:[?*+]|\{\d+(?:,\d*)?\})`,Ie=new RegExp(String.raw`
\\(?: \d+
| c[A-Za-z]
| [gk]<[^>]+>
| [pPu]\{[^\}]+\}
| u[A-Fa-f\d]{4}
| x[A-Fa-f\d]{2}
)
| \((?: \? (?: [:=!>]
| <(?:[=!]|[^>]+>)
| [A-Za-z\-]+:
| \(DEFINE\)
))?
| (?<qBase>${ln})(?<qMod>[?+]?)(?<invalidQ>[?*+\{]?)
| \\?.
`.replace(/\s+/g,""),"gsu");function Ft(e){if(!new RegExp(`${ln}\\+`).test(e))return{pattern:e};const n=[];let t=null,r=null,a="",o=0,s;for(Ie.lastIndex=0;s=Ie.exec(e);){const{0:i,index:u,groups:{qBase:c,qMod:p,invalidQ:l}}=s;if(i==="[")o||(r=u),o++;else if(i==="]")o?o--:r=null;else if(!o)if(p==="+"&&a&&!a.startsWith("(")){if(l)throw new Error(`Invalid quantifier "${i}"`);let d=-1;if(/^\{\d+\}$/.test(c))e=Nt(e,u+c.length,p,"");else{if(a===")"||a==="]"){const g=a===")"?t:r;if(g===null)throw new Error(`Invalid unmatched "${a}"`);e=`${e.slice(0,g)}(?>${e.slice(g,u)}${c})${e.slice(u+i.length)}`}else e=`${e.slice(0,u-a.length)}(?>${a}${c})${e.slice(u+i.length)}`;d+=4}Ie.lastIndex+=d}else i[0]==="("?n.push(u):i===")"&&(t=n.length?n.pop():null);a=i}return{pattern:e}}const A=String.raw,Ut=A`\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`,Se=A`\(\?R=(?<rDepth>[^\)]+)\)|${Ut}`,ge=A`\(\?<(?![=!])(?<captureName>[^>]+)>`,pn=A`${ge}|(?<unnamed>\()(?!\?)`,z=new RegExp(A`${ge}|${Se}|\(\?|\\?.`,"gsu"),_e="Cannot use multiple overlapping recursions";function Bt(e,n){const{hiddenCaptures:t,mode:r}={hiddenCaptures:[],mode:"plugin",...n};let a=n?.captureTransfers??new Map;if(!new RegExp(Se,"su").test(e))return{pattern:e,captureTransfers:a,hiddenCaptures:t};if(r==="plugin"&&fe(e,A`\(\?\(DEFINE\)`,$.DEFAULT))throw new Error("DEFINE groups cannot be used with recursion");const o=[],s=fe(e,A`\\[1-9]`,$.DEFAULT),i=new Map,u=[];let c=!1,p=0,l=0,d;for(z.lastIndex=0;d=z.exec(e);){const{0:g,groups:{captureName:f,rDepth:w,gRNameOrNum:y,gRDepth:N}}=d;if(g==="[")p++;else if(p)g==="]"&&p--;else if(w){if(dn(w),c)throw new Error(_e);if(s)throw new Error(`${r==="external"?"Backrefs":"Numbered backrefs"} cannot be used with global recursion`);const v=e.slice(0,d.index),m=e.slice(z.lastIndex);if(fe(m,Se,$.DEFAULT))throw new Error(_e);const k=+w-1;e=fn(v,m,k,!1,t,o,l),a=hn(a,v,k,o.length,0,l);break}else if(y){dn(N);let v=!1;for(const te of u)if(te.name===y||te.num===+y){if(v=!0,te.hasRecursedWithin)throw new Error(_e);break}if(!v)throw new Error(A`Recursive \g cannot be used outside the referenced group "${r==="external"?y:A`\g<${y}&R=${N}>`}"`);const m=i.get(y),k=Rt(e,m);if(s&&fe(k,A`${ge}|\((?!\?)`,$.DEFAULT))throw new Error(`${r==="external"?"Backrefs":"Numbered backrefs"} cannot be used with recursion of capturing groups`);const I=e.slice(m,d.index),D=k.slice(I.length+g.length),S=o.length,H=+N-1,Ge=fn(I,D,H,!0,t,o,l);a=hn(a,I,H,o.length-S,S,l);const Ln=e.slice(0,m),Rn=e.slice(m+k.length);e=`${Ln}${Ge}${Rn}`,z.lastIndex+=Ge.length-g.length-I.length-D.length,u.forEach(te=>te.hasRecursedWithin=!0),c=!0}else if(f)l++,i.set(String(l),z.lastIndex),i.set(f,z.lastIndex),u.push({num:l,name:f});else if(g[0]==="("){const v=g==="(";v&&(l++,i.set(String(l),z.lastIndex)),u.push(v?{num:l}:{})}else g===")"&&u.pop()}return t.push(...o),{pattern:e,captureTransfers:a,hiddenCaptures:t}}function dn(e){const n=`Max depth must be integer between 2 and 100; used ${e}`;if(!/^[1-9]\d*$/.test(e))throw new Error(n);if(e=+e,e<2||e>100)throw new Error(n)}function fn(e,n,t,r,a,o,s){const i=new Set;r&&un(e+n,ge,({groups:{captureName:c}})=>{i.add(c)},$.DEFAULT);const u=[t,r?i:null,a,o,s];return`${e}${gn(`(?:${e}`,"forward",...u)}(?:)${gn(`${n})`,"backward",...u)}${n}`}function gn(e,n,t,r,a,o,s){const i=c=>n==="forward"?c+2:t-c+2-1;let u="";for(let c=0;c<t;c++){const p=i(c);u+=Ae(e,A`${pn}|\\k<(?<backref>[^>]+)>`,({0:l,groups:{captureName:d,unnamed:g,backref:f}})=>{if(f&&r&&!r.has(f))return l;const w=`_$${p}`;if(g||d){const y=s+o.length+1;return o.push(y),Gt(a,y),g?l:`(?<${d}${w}>`}return A`\k<${f}${w}>`},$.DEFAULT)}return u}function Gt(e,n){for(let t=0;t<e.length;t++)e[t]>=n&&e[t]++}function hn(e,n,t,r,a,o){if(e.size&&r){let s=0;un(n,pn,()=>s++,$.DEFAULT);const i=o-s+a,u=new Map;return e.forEach((c,p)=>{const l=(r-s*t)/t,d=s*t,g=p>i+s?p+r:p,f=[];for(const w of c)if(w<=i)f.push(w);else if(w>i+s+l)f.push(w+r);else if(w<=i+s)for(let y=0;y<=t;y++)f.push(w+s*y);else for(let y=0;y<=t;y++)f.push(w+d+l*y);u.set(g,f)}),u}return e}var C=String.fromCodePoint,h=String.raw,M={},he=globalThis.RegExp;M.flagGroups=(()=>{try{new he("(?i:)")}catch{return!1}return!0})(),M.unicodeSets=(()=>{try{new he("[[]]","v")}catch{return!1}return!0})(),M.bugFlagVLiteralHyphenIsRange=M.unicodeSets?(()=>{try{new he(h`[\d\-a]`,"v")}catch{return!0}return!1})():!1,M.bugNestedClassIgnoresNegation=M.unicodeSets&&new he("[[^a]]","v").test("a");function we(e,{enable:n,disable:t}){return{dotAll:!(t!=null&&t.dotAll)&&!!(n!=null&&n.dotAll||e.dotAll),ignoreCase:!(t!=null&&t.ignoreCase)&&!!(n!=null&&n.ignoreCase||e.ignoreCase)}}function ae(e,n,t){return e.has(n)||e.set(n,t),e.get(n)}function Me(e,n){return wn[e]>=wn[n]}function Dt(e,n){if(e==null)throw new Error(n??"Value expected");return e}var wn={ES2025:2025,ES2024:2024,ES2018:2018},Ot={auto:"auto",ES2025:"ES2025",ES2024:"ES2024",ES2018:"ES2018"};function yn(e={}){if({}.toString.call(e)!=="[object Object]")throw new Error("Unexpected options");if(e.target!==void 0&&!Ot[e.target])throw new Error(`Unexpected target "${e.target}"`);const n={accuracy:"default",avoidSubclass:!1,flags:"",global:!1,hasIndices:!1,lazyCompileLength:1/0,target:"auto",verbose:!1,...e,rules:{allowOrphanBackrefs:!1,asciiWordBoundaries:!1,captureGroup:!1,recursionLimit:20,singleline:!1,...e.rules}};return n.target==="auto"&&(n.target=M.flagGroups?"ES2025":M.unicodeSets?"ES2024":"ES2018"),n}var Tt="[ -\r ]",Wt=new Set([C(304),C(305)]),P=h`[\p{L}\p{M}\p{N}\p{Pc}]`;function mn(e){if(Wt.has(e))return[e];const n=new Set,t=e.toLowerCase(),r=t.toUpperCase(),a=jt.get(t),o=zt.get(t),s=Vt.get(t);return[...r].length===1&&n.add(r),s&&n.add(s),a&&n.add(a),n.add(t),o&&n.add(o),[...n]}var Ne=new Map(`C Other
Cc Control cntrl
Cf Format
Cn Unassigned
Co Private_Use
Cs Surrogate
L Letter
LC Cased_Letter
Ll Lowercase_Letter
Lm Modifier_Letter
Lo Other_Letter
Lt Titlecase_Letter
Lu Uppercase_Letter
M Mark Combining_Mark
Mc Spacing_Mark
Me Enclosing_Mark
Mn Nonspacing_Mark
N Number
Nd Decimal_Number digit
Nl Letter_Number
No Other_Number
P Punctuation punct
Pc Connector_Punctuation
Pd Dash_Punctuation
Pe Close_Punctuation
Pf Final_Punctuation
Pi Initial_Punctuation
Po Other_Punctuation
Ps Open_Punctuation
S Symbol
Sc Currency_Symbol
Sk Modifier_Symbol
Sm Math_Symbol
So Other_Symbol
Z Separator
Zl Line_Separator
Zp Paragraph_Separator
Zs Space_Separator
ASCII
ASCII_Hex_Digit AHex
Alphabetic Alpha
Any
Assigned
Bidi_Control Bidi_C
Bidi_Mirrored Bidi_M
Case_Ignorable CI
Cased
Changes_When_Casefolded CWCF
Changes_When_Casemapped CWCM
Changes_When_Lowercased CWL
Changes_When_NFKC_Casefolded CWKCF
Changes_When_Titlecased CWT
Changes_When_Uppercased CWU
Dash
Default_Ignorable_Code_Point DI
Deprecated Dep
Diacritic Dia
Emoji
Emoji_Component EComp
Emoji_Modifier EMod
Emoji_Modifier_Base EBase
Emoji_Presentation EPres
Extended_Pictographic ExtPict
Extender Ext
Grapheme_Base Gr_Base
Grapheme_Extend Gr_Ext
Hex_Digit Hex
IDS_Binary_Operator IDSB
IDS_Trinary_Operator IDST
ID_Continue IDC
ID_Start IDS
Ideographic Ideo
Join_Control Join_C
Logical_Order_Exception LOE
Lowercase Lower
Math
Noncharacter_Code_Point NChar
Pattern_Syntax Pat_Syn
Pattern_White_Space Pat_WS
Quotation_Mark QMark
Radical
Regional_Indicator RI
Sentence_Terminal STerm
Soft_Dotted SD
Terminal_Punctuation Term
Unified_Ideograph UIdeo
Uppercase Upper
Variation_Selector VS
White_Space space
XID_Continue XIDC
XID_Start XIDS`.split(/\s/).map(e=>[pe(e),e])),zt=new Map([["s",C(383)],[C(383),"s"]]),Vt=new Map([[C(223),C(7838)],[C(107),C(8490)],[C(229),C(8491)],[C(969),C(8486)]]),jt=new Map([U(453),U(456),U(459),U(498),...Le(8072,8079),...Le(8088,8095),...Le(8104,8111),U(8124),U(8140),U(8188)]),Ht=new Map([["alnum",h`[\p{Alpha}\p{Nd}]`],["alpha",h`\p{Alpha}`],["ascii",h`\p{ASCII}`],["blank",h`[\p{Zs}\t]`],["cntrl",h`\p{Cc}`],["digit",h`\p{Nd}`],["graph",h`[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]`],["lower",h`\p{Lower}`],["print",h`[[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],["punct",h`[\p{P}\p{S}]`],["space",h`\p{space}`],["upper",h`\p{Upper}`],["word",h`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],["xdigit",h`\p{AHex}`]]);function Xt(e,n){const t=[];for(let r=e;r<=n;r++)t.push(r);return t}function U(e){const n=C(e);return[n.toLowerCase(),n]}function Le(e,n){return Xt(e,n).map(t=>U(t))}var bn=new Set(["Lower","Lowercase","Upper","Uppercase","Ll","Lowercase_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter"]);function Zt(e,n){const t={accuracy:"default",asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:"ES2025",...n};Cn(e);const r={accuracy:t.accuracy,asciiWordBoundaries:t.asciiWordBoundaries,avoidSubclass:t.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:Me(t.bestEffortTarget,"ES2024"),passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:e.flags.digitIsAscii,spaceIsAscii:e.flags.spaceIsAscii,wordIsAscii:e.flags.wordIsAscii};oe(e,Qt,r);const a={dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},o={currentFlags:a,prevFlags:null,globalFlags:a,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:r.subroutineRefMap};oe(e,qt,o);const s={groupsByName:o.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:o.reffedNodesByReferencer};return oe(e,Jt,s),e._originMap=o.groupOriginByCopy,e._strategy=r.strategy,e}var Qt={AbsenceFunction({node:e,parent:n,replaceWith:t}){const{body:r,kind:a}=e;if(a==="repeater"){const o=_();o.body[0].body.push(W({negate:!0,body:r}),J("Any"));const s=_();s.body[0].body.push(en("greedy",0,1/0,o)),t(b(s,n),{traverse:!0})}else throw new Error('Unsupported absence function "(?~|"')},Alternative:{enter({node:e,parent:n,key:t},{flagDirectivesByAlt:r}){const a=e.body.filter(o=>o.kind==="flags");for(let o=t+1;o<n.body.length;o++){const s=n.body[o];ae(r,s,[]).push(...a)}},exit({node:e},{flagDirectivesByAlt:n}){var t;if((t=n.get(e))!=null&&t.length){const r=En(n.get(e));if(r){const a=_({flags:r});a.body[0].body=e.body,e.body=[b(a,e)]}}}},Assertion({node:e,parent:n,key:t,container:r,root:a,remove:o,replaceWith:s},i){const{kind:u,negate:c}=e,{asciiWordBoundaries:p,avoidSubclass:l,supportedGNodes:d,wordIsAscii:g}=i;if(u==="text_segment_boundary")throw new Error(`Unsupported text segment boundary "\\${c?"Y":"y"}"`);if(u==="line_end")s(b(W({body:[T({body:[Ee("string_end")]}),T({body:[ce(10)]})]}),n));else if(u==="line_start")s(b(F(h`(?<=\A|\n(?!\z))`,{skipLookbehindValidation:!0}),n));else if(u==="search_start")if(d.has(e))a.flags.sticky=!0,o();else{const f=r[t-1];if(f&&rr(f))s(b(W({negate:!0}),n));else{if(l)throw new Error(h`Uses "\G" in a way that requires a subclass`);s(B(Ee("string_start"),n)),i.strategy="clip_search"}}else if(!(u==="string_end"||u==="string_start"))if(u==="string_end_newline")s(b(F(h`(?=\n?\z)`),n));else if(u==="word_boundary"){if(!g&&!p){const f=`(?:(?<=${P})(?!${P})|(?<!${P})(?=${P}))`,w=`(?:(?<=${P})(?=${P})|(?<!${P})(?!${P}))`;s(b(F(c?w:f),n))}}else throw new Error(`Unexpected assertion kind "${u}"`)},Backreference({node:e},{jsGroupNameMap:n}){let{ref:t}=e;typeof t=="string"&&!Pe(t)&&(t=Re(t,n),e.ref=t)},CapturingGroup({node:e},{jsGroupNameMap:n,subroutineRefMap:t}){let{name:r}=e;r&&!Pe(r)&&(r=Re(r,n),e.name=r),t.set(e.number,e),r&&t.set(r,e)},CharacterClassRange({node:e,parent:n,replaceWith:t}){if(n.kind==="intersection"){const r=le({body:[e]});t(b(r,n),{traverse:!0})}},CharacterSet({node:e,parent:n,replaceWith:t},{accuracy:r,minTargetEs2024:a,digitIsAscii:o,spaceIsAscii:s,wordIsAscii:i}){const{kind:u,negate:c,value:p}=e;if(o&&(u==="digit"||p==="digit")){t(B($e("digit",{negate:c}),n));return}if(s&&(u==="space"||p==="space")){t(b(Fe(F(Tt),c),n));return}if(i&&(u==="word"||p==="word")){t(B($e("word",{negate:c}),n));return}if(u==="any")t(B(J("Any"),n));else if(u==="digit")t(B(J("Nd",{negate:c}),n));else if(u!=="dot")if(u==="text_segment"){if(r==="strict")throw new Error(h`Use of "\X" requires non-strict accuracy`);const l="\\p{Emoji}(?:\\p{EMod}|\\uFE0F\\u20E3?|[\\x{E0020}-\\x{E007E}]+\\x{E007F})?",d=h`\p{RI}{2}|${l}(?:\u200D${l})*`;t(b(F(h`(?>\r\n|${a?h`\p{RGI_Emoji}`:d}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}),n))}else if(u==="hex")t(B(J("AHex",{negate:c}),n));else if(u==="newline")t(b(F(c?`[^
]`:`(?>\r
?|[
\v\f\x85\u2028\u2029])`),n));else if(u==="posix")if(!a&&(p==="graph"||p==="print")){if(r==="strict")throw new Error(`POSIX class "${p}" requires min target ES2024 or non-strict accuracy`);let l={graph:"!-~",print:" -~"}[p];c&&(l=`\0-${C(l.codePointAt(0)-1)}${C(l.codePointAt(2)+1)}-\u{10FFFF}`),t(b(F(`[${l}]`),n))}else t(b(Fe(F(Ht.get(p)),c),n));else if(u==="property")Ne.has(pe(p))||(e.key="sc");else if(u==="space")t(B(J("space",{negate:c}),n));else if(u==="word")t(b(Fe(F(P),c),n));else throw new Error(`Unexpected character set kind "${u}"`)},Directive({node:e,parent:n,root:t,remove:r,replaceWith:a,removeAllPrevSiblings:o,removeAllNextSiblings:s}){const{kind:i,flags:u}=e;if(i==="flags")if(!u.enable&&!u.disable)r();else{const c=_({flags:u});c.body[0].body=s(),a(b(c,n),{traverse:!0})}else if(i==="keep"){const c=t.body[0],p=t.body.length===1&&Je(c,{type:"Group"})&&c.body[0].body.length===1?c.body[0]:t;if(n.parent!==p||p.body.length>1)throw new Error(h`Uses "\K" in a way that's unsupported`);const l=W({behind:!0});l.body[0].body=o(),a(b(l,n))}else throw new Error(`Unexpected directive kind "${i}"`)},Flags({node:e,parent:n}){if(e.posixIsAscii)throw new Error('Unsupported flag "P"');if(e.textSegmentMode==="word")throw new Error('Unsupported flag "y{w}"');["digitIsAscii","extended","posixIsAscii","spaceIsAscii","wordIsAscii","textSegmentMode"].forEach(t=>delete e[t]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),n.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;const{enable:n,disable:t}=e.flags;n!=null&&n.extended&&delete n.extended,t!=null&&t.extended&&delete t.extended,n!=null&&n.dotAll&&t!=null&&t.dotAll&&delete n.dotAll,n!=null&&n.ignoreCase&&t!=null&&t.ignoreCase&&delete n.ignoreCase,n&&!Object.keys(n).length&&delete e.flags.enable,t&&!Object.keys(t).length&&delete e.flags.disable,!e.flags.enable&&!e.flags.disable&&delete e.flags},LookaroundAssertion({node:e},n){const{kind:t}=e;t==="lookbehind"&&(n.passedLookbehind=!0)},NamedCallout({node:e,parent:n,replaceWith:t}){const{kind:r}=e;if(r==="fail")t(b(W({negate:!0}),n));else throw new Error(`Unsupported named callout "(*${r.toUpperCase()}"`)},Quantifier({node:e}){if(e.body.type==="Quantifier"){const n=_();n.body[0].body.push(e.body),e.body=b(n,e)}},Regex:{enter({node:e},{supportedGNodes:n}){const t=[];let r=!1,a=!1;for(const o of e.body)if(o.body.length===1&&o.body[0].kind==="search_start")o.body.pop();else{const s=$n(o.body);s?(r=!0,Array.isArray(s)?t.push(...s):t.push(s)):a=!0}r&&!a&&t.forEach(o=>n.add(o))},exit(e,{accuracy:n,passedLookbehind:t,strategy:r}){if(n==="strict"&&t&&r)throw new Error(h`Uses "\G" in a way that requires non-strict accuracy`)}},Subroutine({node:e},{jsGroupNameMap:n}){let{ref:t}=e;typeof t=="string"&&!Pe(t)&&(t=Re(t,n),e.ref=t)}},qt={Backreference({node:e},{multiplexCapturesToLeftByRef:n,reffedNodesByReferencer:t}){const{orphan:r,ref:a}=e;r||t.set(e,[...n.get(a).map(({node:o})=>o)])},CapturingGroup:{enter({node:e,parent:n,replaceWith:t,skip:r},{groupOriginByCopy:a,groupsByName:o,multiplexCapturesToLeftByRef:s,openRefs:i,reffedNodesByReferencer:u}){const c=a.get(e);if(c&&i.has(e.number)){const l=B(kn(e.number),n);u.set(l,i.get(e.number)),t(l);return}i.set(e.number,e),s.set(e.number,[]),e.name&&ae(s,e.name,[]);const p=s.get(e.name??e.number);for(let l=0;l<p.length;l++){const d=p[l];if(c===d.node||c&&c===d.origin||e===d.origin){p.splice(l,1);break}}if(s.get(e.number).push({node:e,origin:c}),e.name&&s.get(e.name).push({node:e,origin:c}),e.name){const l=ae(o,e.name,new Map);let d=!1;if(c)d=!0;else for(const g of l.values())if(!g.hasDuplicateNameToRemove){d=!0;break}o.get(e.name).set(e,{node:e,hasDuplicateNameToRemove:d})}},exit({node:e},{openRefs:n}){n.get(e.number)===e&&n.delete(e.number)}},Group:{enter({node:e},n){n.prevFlags=n.currentFlags,e.flags&&(n.currentFlags=we(n.currentFlags,e.flags))},exit(e,n){n.currentFlags=n.prevFlags}},Subroutine({node:e,parent:n,replaceWith:t},r){const{isRecursive:a,ref:o}=e;if(a){let p=n;for(;(p=p.parent)&&!(p.type==="CapturingGroup"&&(p.name===o||p.number===o)););r.reffedNodesByReferencer.set(e,p);return}const s=r.subroutineRefMap.get(o),i=o===0,u=i?kn(0):xn(s,r.groupOriginByCopy,null);let c=u;if(!i){const p=En(er(s,d=>d.type==="Group"&&!!d.flags)),l=p?we(r.globalFlags,p):r.globalFlags;Kt(l,r.currentFlags)||(c=_({flags:nr(l)}),c.body[0].body.push(u))}t(b(c,n),{traverse:!i})}},Jt={Backreference({node:e,parent:n,replaceWith:t},r){if(e.orphan){r.highestOrphanBackref=Math.max(r.highestOrphanBackref,e.ref);return}const a=r.reffedNodesByReferencer.get(e).filter(o=>Yt(o,e));if(!a.length)t(b(W({negate:!0}),n));else if(a.length>1){const o=_({atomic:!0,body:a.reverse().map(s=>T({body:[ve(s.number)]}))});t(b(o,n))}else e.ref=a[0].number},CapturingGroup({node:e},n){e.number=++n.numCapturesToLeft,e.name&&n.groupsByName.get(e.name).get(e).hasDuplicateNameToRemove&&delete e.name},Regex:{exit({node:e},n){const t=Math.max(n.highestOrphanBackref-n.numCapturesToLeft,0);for(let r=0;r<t;r++){const a=Ye();e.body.at(-1).body.push(a)}}},Subroutine({node:e},n){!e.isRecursive||e.ref===0||(e.ref=n.reffedNodesByReferencer.get(e).number)}};function Cn(e){oe(e,{"*"({node:n,parent:t}){n.parent=t}})}function Kt(e,n){return e.dotAll===n.dotAll&&e.ignoreCase===n.ignoreCase}function Yt(e,n){let t=n;do{if(t.type==="Regex")return!1;if(t.type==="Alternative")continue;if(t===e)return!1;const r=vn(t.parent);for(const a of r){if(a===t)break;if(a===e||An(a,e))return!0}}while(t=t.parent);throw new Error("Unexpected path")}function xn(e,n,t,r){const a=Array.isArray(e)?[]:{};for(const[o,s]of Object.entries(e))o==="parent"?a.parent=Array.isArray(t)?r:t:s&&typeof s=="object"?a[o]=xn(s,n,a,t):(o==="type"&&s==="CapturingGroup"&&n.set(a,n.get(e)??e),a[o]=s);return a}function kn(e){const n=nn(e);return n.isRecursive=!0,n}function er(e,n){const t=[];for(;e=e.parent;)(!n||n(e))&&t.push(e);return t}function Re(e,n){if(n.has(e))return n.get(e);const t=`$${n.size}_${e.replace(/^[^$_\p{IDS}]|[^$\u200C\u200D\p{IDC}]/ug,"_")}`;return n.set(e,t),t}function En(e){const n=["dotAll","ignoreCase"],t={enable:{},disable:{}};return e.forEach(({flags:r})=>{n.forEach(a=>{var o,s;(o=r.enable)!=null&&o[a]&&(delete t.disable[a],t.enable[a]=!0),(s=r.disable)!=null&&s[a]&&(t.disable[a]=!0)})}),Object.keys(t.enable).length||delete t.enable,Object.keys(t.disable).length||delete t.disable,t.enable||t.disable?t:null}function nr({dotAll:e,ignoreCase:n}){const t={};return(e||n)&&(t.enable={},e&&(t.enable.dotAll=!0),n&&(t.enable.ignoreCase=!0)),(!e||!n)&&(t.disable={},!e&&(t.disable.dotAll=!0),!n&&(t.disable.ignoreCase=!0)),t}function vn(e){if(!e)throw new Error("Node expected");const{body:n}=e;return Array.isArray(n)?n:n?[n]:null}function $n(e){const n=e.find(t=>t.kind==="search_start"||or(t,{negate:!1})||!tr(t));if(!n)return null;if(n.kind==="search_start")return n;if(n.type==="LookaroundAssertion")return n.body[0].body[0];if(n.type==="CapturingGroup"||n.type==="Group"){const t=[];for(const r of n.body){const a=$n(r.body);if(!a)return null;Array.isArray(a)?t.push(...a):t.push(a)}return t}return null}function An(e,n){const t=vn(e)??[];for(const r of t)if(r===n||An(r,n))return!0;return!1}function tr({type:e}){return e==="Assertion"||e==="Directive"||e==="LookaroundAssertion"}function rr(e){const n=["Character","CharacterClass","CharacterSet"];return n.includes(e.type)||e.type==="Quantifier"&&e.min&&n.includes(e.body.type)}function or(e,n){const t={negate:null,...n};return e.type==="LookaroundAssertion"&&(t.negate===null||e.negate===t.negate)&&e.body.length===1&&Je(e.body[0],{type:"Assertion",kind:"search_start"})}function Pe(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function F(e,n){const t=Ke(e,{...n,unicodePropertyMap:Ne}).body;return t.length>1||t[0].body.length>1?_({body:t}):t[0].body[0]}function Fe(e,n){return e.negate=n,e}function B(e,n){return e.parent=n,e}function b(e,n){return Cn(e),e.parent=n,e}function ar(e,n){const t=yn(n),r=Me(t.target,"ES2024"),a=Me(t.target,"ES2025"),o=t.rules.recursionLimit;if(!Number.isInteger(o)||o<2||o>20)throw new Error("Invalid recursionLimit; use 2-20");let s=null,i=null;if(!a){const g=[e.flags.ignoreCase];oe(e,sr,{getCurrentModI:()=>g.at(-1),popModI(){g.pop()},pushModI(f){g.push(f)},setHasCasedChar(){g.at(-1)?s=!0:i=!0}})}const u={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||s)&&!i)};let c=e;const p={accuracy:t.accuracy,appliedGlobalFlags:u,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:c,originMap:e._originMap,recursionLimit:o,useAppliedIgnoreCase:!!(!a&&s&&i),useFlagMods:a,useFlagV:r,verbose:t.verbose};function l(g){return p.lastNode=c,c=g,Dt(ir[g.type],`Unexpected node type "${g.type}"`)(g,p,l)}const d={pattern:e.body.map(l).join("|"),flags:l(e.flags),options:{...e.options}};return r||(delete d.options.force.v,d.options.disable.v=!0,d.options.unicodeSetsPlugin=null),d._captureTransfers=new Map,d._hiddenCaptures=[],p.captureMap.forEach((g,f)=>{g.hidden&&d._hiddenCaptures.push(f),g.transferTo&&ae(d._captureTransfers,g.transferTo,[]).push(f)}),d}var sr={"*":{enter({node:e},n){if(_n(e)){const t=n.getCurrentModI();n.pushModI(e.flags?we({ignoreCase:t},e.flags).ignoreCase:t)}},