UNPKG

ranui

Version:

A framework-agnostic Web Components UI library built on native custom elements, with TypeScript types, light/dark theming, SSR and PWA support.

142 lines 59 kB
var Ie=4294967295,be=class{patterns;options;regexps;constructor(e,t={}){this.patterns=e,this.options=t;const{forgiving:r=!1,cache:n,regexConstructor:a}=t;if(!a)throw new Error("Option `regexConstructor` is not provided");this.regexps=e.map(s=>{if(typeof s!="string")return s;const o=n?.get(s);if(o){if(o instanceof RegExp)return o;if(r)return null;throw o}try{const i=a(s);return n?.set(s,i),i}catch(i){if(n?.set(s,i),r)return null;throw i}})}findNextMatchSync(e,t,r){const n=typeof e=="string"?e:e.content,a=[];function s(o,i,u=0){return{index:o,captureIndices:i.indices.map(c=>c==null?{start:Ie,end:Ie,length:0}:{start:c[0]+u,end:c[1]+u,length:c[1]-c[0]})}}for(let o=0;o<this.regexps.length;o++){const i=this.regexps[o];if(i)try{i.lastIndex=t;const u=i.exec(n);if(!u)continue;if(u.index===t)return s(o,u,0);a.push([o,u,0])}catch(u){if(this.options.forgiving)continue;throw u}}if(a.length){const o=Math.min(...a.map(i=>i[1].index));for(const[i,u,c]of a)if(u.index===o)return s(i,u,c)}return null}};function H(e){if([...e].length!==1)throw new Error(`Expected "${e}" to be a single code point`);return e.codePointAt(0)}function yr(e,t,r){return e.has(t)||e.set(t,r),e.get(t)}var xe=new Set(["alnum","alpha","ascii","blank","cntrl","digit","graph","lower","print","punct","space","upper","word","xdigit"]),x=String.raw;function j(e,t){if(e==null)throw new Error(t??"Value expected");return e}var Xe=x`\[\^?`,Ze=`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}`}`,ke=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,K=new RegExp(x`
  \\ (?:
    ${Ze}
    | [gk]<[^>]*>?
    | [gk]'[^']*'?
    | .
  )
  | \( (?:
    \? (?:
      [:=!>({]
      | <[=!]
      | <[^>]*>
      | '[^']*'
      | ~\|?
      | #(?:[^)\\]|\\.?)*
      | [^:)]*[:)]
    )?
    | \*[^\)]*\)?
  )?
  | (?:${ke.source})+
  | ${Xe}
  | .
`.replace(/\s+/g,""),"gsu"),ie=new RegExp(x`
  \\ (?:
    ${Ze}
    | .
  )
  | \[:(?:\^?\p{Alpha}+|\^):\]
  | ${Xe}
  | &&
  | .
`.replace(/\s+/g,""),"gsu");function Cr(e,t={}){const r={flags:"",...t,rules:{captureGroup:!1,singleline:!1,...t.rules}};if(typeof e!="string")throw new Error("String expected as pattern");const n=Or(r.flags),a=[n.extended],s={captureGroup:r.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:r.rules.singleline};let o=[],i;for(K.lastIndex=0;i=K.exec(e);){const l=br(s,e,i[0],K.lastIndex);l.tokens?o.push(...l.tokens):l.token&&o.push(l.token),l.lastIndex!==void 0&&(K.lastIndex=l.lastIndex)}const u=[];let c=0;o.filter(l=>l.type==="GroupOpen").forEach(l=>{l.kind==="capturing"?l.number=++c:l.raw==="("&&u.push(l)}),c||u.forEach((l,f)=>{l.kind="capturing",l.number=f+1});const p=c||u.length;return{tokens:o.map(l=>l.type==="EscapedNumber"?Br(l,p):l).flat(),flags:n}}function br(e,t,r,n){const[a,s]=r;if(r==="["||r==="[^"){const o=xr(t,r,n);return{tokens:o.tokens,lastIndex:o.lastIndex}}if(a==="\\"){if("AbBGyYzZ".includes(s))return{token:Se(r,r)};if(/^\\g[<']/.test(r)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(r))throw new Error(`Invalid group name "${r}"`);return{token:Nr(r)}}if(/^\\k[<']/.test(r)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(r))throw new Error(`Invalid group name "${r}"`);return{token:qe(r)}}if(s==="K")return{token:Je("keep",r)};if(s==="N"||s==="R")return{token:U("newline",r,{negate:s==="N"})};if(s==="O")return{token:U("any",r)};if(s==="X")return{token:U("text_segment",r)};const o=Qe(r,{inCharClass:!1});return Array.isArray(o)?{tokens:o}:{token:o}}if(a==="("){if(s==="*")return{token:Gr(r)};if(r==="(?{")throw new Error(`Unsupported callout "${r}"`);if(r.startsWith("(?#")){if(t[n]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:n+1}}if(/^\(\?[-imx]+[:)]$/.test(r))return{token:Pr(r,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,r==="("&&!e.captureGroup||r==="(?:")return{token:z("group",r)};if(r==="(?>")return{token:z("atomic",r)};if(r==="(?="||r==="(?!"||r==="(?<="||r==="(?<!")return{token:z(r[2]==="<"?"lookbehind":"lookahead",r,{negate:r.endsWith("!")})};if(r==="("&&e.captureGroup||r.startsWith("(?<")&&r.endsWith(">")||r.startsWith("(?'")&&r.endsWith("'"))return{token:z("capturing",r,{...r!=="("&&{name:r.slice(3,-1)}})};if(r.startsWith("(?~")){if(r==="(?~|")throw new Error(`Unsupported absence function kind "${r}"`);return{token:z("absence_repeater",r)}}throw r==="(?("?new Error(`Unsupported conditional "${r}"`):new Error(`Invalid or unsupported group option "${r}"`)}if(r===")"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched ")"');return{token:Sr(r)}}if(e.getCurrentModX()){if(r==="#"){const o=t.indexOf(`
`,n);return{lastIndex:o===-1?t.length:o}}if(/^\s$/.test(r)){const o=/\s+/y;return o.lastIndex=n,{lastIndex:o.exec(t)?o.lastIndex:n}}}return r==="."?{token:U("dot",r)}:r==="^"||r==="$"?{token:Se(e.singleline?{"^":x`\A`,$:x`\Z`}[r]:r,r)}:r==="|"?{token:Er(r)}:ke.test(r)?{tokens:Tr(r)}:{token:L(H(r),r)}}function xr(e,t,r){const n=[_e(t[1]==="^",t)];let a=1,s;for(ie.lastIndex=r;s=ie.exec(e);){const o=s[0];if(o[0]==="["&&o[1]!==":")a++,n.push(_e(o[1]==="^",o));else if(o==="]"){if(n.at(-1).type==="CharacterClassOpen")n.push(L(93,o));else if(a--,n.push($r(o)),!a)break}else{const i=kr(o);Array.isArray(i)?n.push(...i):n.push(i)}}return{tokens:n,lastIndex:ie.lastIndex||e.length}}function kr(e){if(e[0]==="\\")return Qe(e,{inCharClass:!0});if(e[0]==="["){const t=/\[:(?<negate>\^?)(?<name>[a-z]+):\]/.exec(e);if(!t||!xe.has(t.groups.name))throw new Error(`Invalid POSIX class "${e}"`);return U("posix",e,{value:t.groups.name,negate:!!t.groups.negate})}return e==="-"?Ar(e):e==="&&"?vr(e):L(H(e),e)}function Qe(e,{inCharClass:t}){const r=e[1];if(r==="c"||r==="C")return Fr(e);if("dDhHsSwW".includes(r))return Rr(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 Ur(e)}if(new RegExp("^\\\\x[89A-Fa-f]\\p{AHex}","u").test(e))try{const n=e.split(/\\x/).slice(1).map(o=>parseInt(o,16)),a=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(n)),s=new TextEncoder;return[...a].map(o=>{const i=[...s.encode(o)].map(u=>`\\x${u.toString(16)}`).join("");return L(H(o),i)})}catch{throw new Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(r==="u"||r==="x")return L(Dr(e),e);if(Me.has(r))return L(Me.get(r),e);if(/\d/.test(r))return Ir(t,e);if(e==="\\")throw new Error(x`Incomplete escape "\"`);if(r==="M")throw new Error(`Unsupported meta "${e}"`);if([...e].length===2)return L(e.codePointAt(1),e);throw new Error(`Unexpected escape "${e}"`)}function Er(e){return{type:"Alternator",raw:e}}function Se(e,t){return{type:"Assertion",kind:e,raw:t}}function qe(e){return{type:"Backreference",raw:e}}function L(e,t){return{type:"Character",value:e,raw:t}}function $r(e){return{type:"CharacterClassClose",raw:e}}function Ar(e){return{type:"CharacterClassHyphen",raw:e}}function vr(e){return{type:"CharacterClassIntersector",raw:e}}function _e(e,t){return{type:"CharacterClassOpen",negate:e,raw:t}}function U(e,t,r={}){return{type:"CharacterSet",kind:e,...r,raw:t}}function Je(e,t,r={}){return e==="keep"?{type:"Directive",kind:e,raw:t}:{type:"Directive",kind:e,flags:j(r.flags),raw:t}}function Ir(e,t){return{type:"EscapedNumber",inCharClass:e,raw:t}}function Sr(e){return{type:"GroupClose",raw:e}}function z(e,t,r={}){return{type:"GroupOpen",kind:e,...r,raw:t}}function _r(e,t,r,n){return{type:"NamedCallout",kind:e,tag:t,arguments:r,raw:n}}function Mr(e,t,r,n){return{type:"Quantifier",kind:e,min:t,max:r,raw:n}}function Nr(e){return{type:"Subroutine",raw:e}}var Lr=new Set(["COUNT","CMP","ERROR","FAIL","MAX","MISMATCH","SKIP","TOTAL_COUNT"]),Me=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]);function Fr(e){const t=e[1]==="c"?e[2]:e[3];if(!t||!/[A-Za-z]/.test(t))throw new Error(`Unsupported control character "${e}"`);return L(H(t.toUpperCase())-64,e)}function Pr(e,t){let{on:r,off:n}=/^\(\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(e).groups;n??="";const a=(t.getCurrentModX()||r.includes("x"))&&!n.includes("x"),s=Le(r),o=Le(n),i={};if(s&&(i.enable=s),o&&(i.disable=o),e.endsWith(")"))return t.replaceCurrentModX(a),Je("flags",e,{flags:i});if(e.endsWith(":"))return t.pushModX(a),t.numOpenGroups++,z("group",e,{...(s||o)&&{flags:i}});throw new Error(`Unexpected flag modifier "${e}"`)}function Gr(e){const t=/\(\*(?<name>[A-Za-z_]\w*)?(?:\[(?<tag>(?:[A-Za-z_]\w*)?)\])?(?:\{(?<args>[^}]*)\})?\)/.exec(e);if(!t)throw new Error(`Incomplete or invalid named callout "${e}"`);const{name:r,tag:n,args:a}=t.groups;if(!r)throw new Error(`Invalid named callout "${e}"`);if(n==="")throw new Error(`Named callout tag with empty value not allowed "${e}"`);const s=a?a.split(",").filter(p=>p!=="").map(p=>/^[+-]?\d+$/.test(p)?+p:p):[],[o,i,u]=s,c=Lr.has(r)?r.toLowerCase():"custom";switch(c){case"fail":case"mismatch":case"skip":if(s.length>0)throw new Error(`Named callout arguments not allowed "${s}"`);break;case"error":if(s.length>1)throw new Error(`Named callout allows only one argument "${s}"`);if(typeof o=="string")throw new Error(`Named callout argument must be a number "${o}"`);break;case"max":if(!s.length||s.length>2)throw new Error(`Named callout must have one or two arguments "${s}"`);if(typeof o=="string"&&!/^[A-Za-z_]\w*$/.test(o))throw new Error(`Named callout argument one must be a tag or number "${o}"`);if(s.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(s.length>1)throw new Error(`Named callout allows only one argument "${s}"`);if(s.length===1&&(typeof o=="number"||!/^[<>X]$/.test(o)))throw new Error(`Named callout optional argument must be '<', '>', or 'X' "${o}"`);break;case"cmp":if(s.length!==3)throw new Error(`Named callout must have three arguments "${s}"`);if(typeof o=="string"&&!/^[A-Za-z_]\w*$/.test(o))throw new Error(`Named callout argument one must be a tag or number "${o}"`);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 "${r}"`);default:throw new Error(`Unexpected named callout kind "${c}"`)}return _r(c,n??null,a?.split(",")??null,e)}function Ne(e){let t=null,r,n;if(e[0]==="{"){const{minStr:a,maxStr:s}=/^\{(?<minStr>\d*)(?:,(?<maxStr>\d*))?/.exec(e).groups,o=1e5;if(+a>o||s&&+s>o)throw new Error("Quantifier value unsupported in Oniguruma");if(r=+a,n=s===void 0?+a:s===""?1/0:+s,r>n&&(t="possessive",[r,n]=[n,r]),e.endsWith("?")){if(t==="possessive")throw new Error('Unsupported possessive interval quantifier chain with "?"');t="lazy"}else t||(t="greedy")}else r=e[0]==="+"?1:0,n=e[0]==="?"?1:1/0,t=e[1]==="+"?"possessive":e[1]==="?"?"lazy":"greedy";return Mr(t,r,n,e)}function Rr(e){const t=e[1].toLowerCase();return U({d:"digit",h:"hex",s:"space",w:"word"}[t],e,{negate:e[1]!==t})}function Ur(e){const{p:t,neg:r,value:n}=/^\\(?<p>[pP])\{(?<neg>\^?)(?<value>[^}]+)/.exec(e).groups;return U("property",e,{value:n,negate:t==="P"&&!r||t==="p"&&!!r})}function Le(e){const t={};return e.includes("i")&&(t.ignoreCase=!0),e.includes("m")&&(t.dotAll=!0),e.includes("x")&&(t.extended=!0),Object.keys(t).length?t:null}function Or(e){const t={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii:!1,posixIsAscii:!1,spaceIsAscii:!1,wordIsAscii:!1,textSegmentMode:null};for(let r=0;r<e.length;r++){const n=e[r];if(!"imxDPSWy".includes(n))throw new Error(`Invalid flag "${n}"`);if(n==="y"){if(!/^y{[gw]}/.test(e.slice(r)))throw new Error('Invalid or unspecified flag "y" mode');t.textSegmentMode=e[r+2]==="g"?"grapheme":"word",r+=3;continue}t[{i:"ignoreCase",m:"dotAll",x:"extended",D:"digitIsAscii",P:"posixIsAscii",S:"spaceIsAscii",W:"wordIsAscii"}[n]]=!0}return t}function Dr(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 t=e[2]==="{"?new RegExp("^\\\\x\\{\\s*(?<hex>\\p{AHex}+)","u").exec(e).groups.hex:e.slice(2);return parseInt(t,16)}function Br(e,t){const{raw:r,inCharClass:n}=e,a=r.slice(1);if(!n&&(a!=="0"&&a.length===1||a[0]!=="0"&&+a<=t))return[qe(r)];const s=[],o=a.match(/^[0-7]+|\d/g);for(let i=0;i<o.length;i++){const u=o[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 "${r}"`)}else c=H(u);s.push(L(c,(i===0?"\\":"")+u))}return s}function Tr(e){const t=[],r=new RegExp(ke,"gy");let n;for(;n=r.exec(e);){const a=n[0];if(a[0]==="{"){const s=/^\{(?<min>\d+),(?<max>\d+)\}\??$/.exec(a);if(s){const{min:o,max:i}=s.groups;if(+o>+i&&a.endsWith("?")){r.lastIndex--,t.push(Ne(a.slice(0,-1)));continue}}}t.push(Ne(a))}return t}function Ke(e,t){if(!Array.isArray(e.body))throw new Error("Expected node with body array");if(e.body.length!==1)return!1;const r=e.body[0];return!t||Object.keys(t).every(n=>t[n]===r[n])}function Vr(e){return zr.has(e.type)}var zr=new Set(["AbsenceFunction","Backreference","CapturingGroup","Character","CharacterClass","CharacterSet","Group","Quantifier","Subroutine"]);function Ye(e,t={}){const r={flags:"",normalizeUnknownPropertyNames:!1,skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t,rules:{captureGroup:!1,singleline:!1,...t.rules}},n=Cr(e,{flags:r.flags,rules:{captureGroup:r.rules.captureGroup,singleline:r.rules.singleline}}),a=(f,g)=>{const d=n.tokens[s.nextIndex];switch(s.parent=f,s.nextIndex++,d.type){case"Alternator":return O();case"Assertion":return Wr(d);case"Backreference":return Hr(d,s);case"Character":return ne(d.value,{useLastValid:!!g.isCheckingRangeEnd});case"CharacterClassHyphen":return jr(d,s,g);case"CharacterClassOpen":return Xr(d,s,g);case"CharacterSet":return Zr(d,s);case"Directive":return et(d.kind,{flags:d.flags});case"GroupOpen":return Qr(d,s,g);case"NamedCallout":return tt(d.kind,d.tag,d.arguments);case"Quantifier":return qr(d,s);case"Subroutine":return Jr(d,s);default:throw new Error(`Unexpected token type "${d.type}"`)}},s={capturingGroups:[],hasNumberedRef:!1,namedGroupsByName:new Map,nextIndex:0,normalizeUnknownPropertyNames:r.normalizeUnknownPropertyNames,parent:null,skipBackrefValidation:r.skipBackrefValidation,skipLookbehindValidation:r.skipLookbehindValidation,skipPropertyNameValidation:r.skipPropertyNameValidation,subroutines:[],tokens:n.tokens,unicodePropertyMap:r.unicodePropertyMap,walk:a},o=st(rt(n.flags));let i=o.body[0];for(;s.nextIndex<n.tokens.length;){const f=a(i,{});f.type==="Alternative"?(o.body.push(f),i=f):i.body.push(f)}const{capturingGroups:u,hasNumberedRef:c,namedGroupsByName:p,subroutines:l}=s;if(c&&p.size&&!r.rules.captureGroup)throw new Error("Numbered backref/subroutine not allowed when using named capture");for(const{ref:f}of l)if(typeof f=="number"){if(f>u.length)throw new Error("Subroutine uses a group number that's not defined");f&&(u[f-1].isSubroutined=!0)}else if(p.has(f)){if(p.get(f).length>1)throw new Error(x`Subroutine uses a duplicate group name "\g<${f}>"`);p.get(f)[0].isSubroutined=!0}else throw new Error(x`Subroutine uses a group name that's not defined "\g<${f}>"`);return o}function Wr({kind:e}){return ge(j({"^":"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 Hr({raw:e},t){const r=/^\\k[<']/.test(e),n=r?e.slice(3,-1):e.slice(1),a=(s,o=!1)=>{const i=t.capturingGroups.length;let u=!1;if(s>i)if(t.skipBackrefValidation)u=!0;else throw new Error(`Not enough capturing groups defined to the left "${e}"`);return t.hasNumberedRef=!0,he(o?i+1-s:s,{orphan:u})};if(r){const s=/^(?<sign>-?)0*(?<num>[1-9]\d*)$/.exec(n);if(s)return a(+s.groups.num,!!s.groups.sign);if(/[-+]/.test(n))throw new Error(`Invalid backref name "${e}"`);if(!t.namedGroupsByName.has(n))throw new Error(`Group name not defined to the left "${e}"`);return he(n)}return a(+n)}function jr(e,t,r){const{tokens:n,walk:a}=t,s=t.parent,o=s.body.at(-1),i=n[t.nextIndex];if(!r.isCheckingRangeEnd&&o&&o.type!=="CharacterClass"&&o.type!=="CharacterClassRange"&&i&&i.type!=="CharacterClassOpen"&&i.type!=="CharacterClassClose"&&i.type!=="CharacterClassIntersector"){const u=a(s,{...r,isCheckingRangeEnd:!0});if(o.type==="Character"&&u.type==="Character")return s.body.pop(),Yr(o,u);throw new Error("Invalid character class range")}return ne(H("-"))}function Xr({negate:e},t,r){const{tokens:n,walk:a}=t,s=[re()],o=n[t.nextIndex];let i=Ge(o);for(;i.type!=="CharacterClassClose";){if(i.type==="CharacterClassIntersector")s.push(re()),t.nextIndex++;else{const c=s.at(-1);c.body.push(a(c,r))}i=Ge(n[t.nextIndex],o)}const u=re({negate:e});return s.length===1?u.body=s[0].body:(u.kind="intersection",u.body=s.map(c=>c.body.length===1?c.body[0]:c)),t.nextIndex++,u}function Zr({kind:e,negate:t,value:r},n){const{normalizeUnknownPropertyNames:a,skipPropertyNameValidation:s,unicodePropertyMap:o}=n;if(e==="property"){const i=se(r);if(xe.has(i)&&!o?.has(i))e="posix",r=i;else return W(r,{negate:t,normalizeUnknownPropertyNames:a,skipPropertyNameValidation:s,unicodePropertyMap:o})}return e==="posix"?nt(r,{negate:t}):we(e,{negate:t})}function Qr(e,t,r){const{tokens:n,capturingGroups:a,namedGroupsByName:s,skipLookbehindValidation:o,walk:i}=t,u=at(e),c=u.type==="AbsenceFunction",p=Pe(u),l=p&&u.negate;if(u.type==="CapturingGroup"&&(a.push(u),u.name&&yr(s,u.name,[]).push(u)),c&&r.isInAbsenceFunction)throw new Error("Nested absence function not supported by Oniguruma");let f=Re(n[t.nextIndex]);for(;f.type!=="GroupClose";){if(f.type==="Alternator")u.body.push(O()),t.nextIndex++;else{const g=u.body.at(-1),d=i(g,{...r,isInAbsenceFunction:r.isInAbsenceFunction||c,isInLookbehind:r.isInLookbehind||p,isInNegLookbehind:r.isInNegLookbehind||l});if(g.body.push(d),(p||r.isInLookbehind)&&!o){const w="Lookbehind includes a pattern not allowed by Oniguruma";if(l||r.isInNegLookbehind){if(Fe(d)||d.type==="CapturingGroup")throw new Error(w)}else if(Fe(d)||Pe(d)&&d.negate)throw new Error(w)}}f=Re(n[t.nextIndex])}return t.nextIndex++,u}function qr({kind:e,min:t,max:r},n){const a=n.parent,s=a.body.at(-1);if(!s||!Vr(s))throw new Error("Quantifier requires a repeatable token");const o=rr(e,t,r,s);return a.body.pop(),o}function Jr({raw:e},t){const{capturingGroups:r,subroutines:n}=t;let a=e.slice(3,-1);const s=/^(?<sign>[-+]?)0*(?<num>[1-9]\d*)$/.exec(a);if(s){const i=+s.groups.num,u=r.length;if(t.hasNumberedRef=!0,a={"":i,"+":u+i,"-":u+1-i}[s.groups.sign],a<1)throw new Error("Invalid subroutine number")}else a==="0"&&(a=0);const o=tr(a);return n.push(o),o}function Kr(e,t){if(e!=="repeater")throw new Error(`Unexpected absence function kind "${e}"`);return{type:"AbsenceFunction",kind:e,body:q(t?.body)}}function O(e){return{type:"Alternative",body:nr(e?.body)}}function ge(e,t){const r={type:"Assertion",kind:e};return(e==="word_boundary"||e==="text_segment_boundary")&&(r.negate=!!t?.negate),r}function he(e,t){const r=!!t?.orphan;return{type:"Backreference",ref:e,...r&&{orphan:r}}}function er(e,t){const r={name:void 0,isSubroutined:!1,...t};if(r.name!==void 0&&!ot(r.name))throw new Error(`Group name "${r.name}" invalid in Oniguruma`);return{type:"CapturingGroup",number:e,...r.name&&{name:r.name},...r.isSubroutined&&{isSubroutined:r.isSubroutined},body:q(t?.body)}}function ne(e,t){const r={useLastValid:!1,...t};if(e>1114111){const n=e.toString(16);if(r.useLastValid)e=1114111;else throw e>1310719?new Error(`Invalid code point out of range "\\x{${n}}"`):new Error(`Invalid code point out of range in JS "\\x{${n}}"`)}return{type:"Character",value:e}}function re(e){const t={kind:"union",negate:!1,...e};return{type:"CharacterClass",kind:t.kind,negate:t.negate,body:nr(e?.body)}}function Yr(e,t){if(t.value<e.value)throw new Error("Character class range out of order");return{type:"CharacterClassRange",min:e,max:t}}function we(e,t){const r=!!t?.negate,n={type:"CharacterSet",kind:e};return(e==="digit"||e==="hex"||e==="newline"||e==="space"||e==="word")&&(n.negate=r),(e==="text_segment"||e==="newline"&&!r)&&(n.variableLength=!0),n}function et(e,t={}){if(e==="keep")return{type:"Directive",kind:e};if(e==="flags")return{type:"Directive",kind:e,flags:j(t.flags)};throw new Error(`Unexpected directive kind "${e}"`)}function rt(e){return{type:"Flags",...e}}function S(e){const t=e?.atomic,r=e?.flags;if(t&&r)throw new Error("Atomic group cannot have flags");return{type:"Group",...t&&{atomic:t},...r&&{flags:r},body:q(e?.body)}}function R(e){const t={behind:!1,negate:!1,...e};return{type:"LookaroundAssertion",kind:t.behind?"lookbehind":"lookahead",negate:t.negate,body:q(e?.body)}}function tt(e,t,r){return{type:"NamedCallout",kind:e,tag:t,arguments:r}}function nt(e,t){const r=!!t?.negate;if(!xe.has(e))throw new Error(`Invalid POSIX class "${e}"`);return{type:"CharacterSet",kind:"posix",value:e,negate:r}}function rr(e,t,r,n){if(t>r)throw new Error("Invalid reversed quantifier range");return{type:"Quantifier",kind:e,min:t,max:r,body:n}}function st(e,t){return{type:"Regex",body:q(t?.body),flags:e}}function tr(e){return{type:"Subroutine",ref:e}}function W(e,t){const r={negate:!1,normalizeUnknownPropertyNames:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t};let n=r.unicodePropertyMap?.get(se(e));if(!n){if(r.normalizeUnknownPropertyNames)n=it(e);else if(r.unicodePropertyMap&&!r.skipPropertyNameValidation)throw new Error(x`Invalid Unicode property "\p{${e}}"`)}return{type:"CharacterSet",kind:"property",value:n??e,negate:r.negate}}function at({flags:e,kind:t,name:r,negate:n,number:a}){switch(t){case"absence_repeater":return Kr("repeater");case"atomic":return S({atomic:!0});case"capturing":return er(a,{name:r});case"group":return S({flags:e});case"lookahead":case"lookbehind":return R({behind:t==="lookbehind",negate:n});default:throw new Error(`Unexpected group kind "${t}"`)}}function q(e){if(e===void 0)e=[O()];else if(!Array.isArray(e)||!e.length||!e.every(t=>t.type==="Alternative"))throw new Error("Invalid body; expected array of one or more Alternative nodes");return e}function nr(e){if(e===void 0)e=[];else if(!Array.isArray(e)||!e.every(t=>!!t.type))throw new Error("Invalid body; expected array of nodes");return e}function Fe(e){return e.type==="LookaroundAssertion"&&e.kind==="lookahead"}function Pe(e){return e.type==="LookaroundAssertion"&&e.kind==="lookbehind"}function ot(e){return/^[\p{Alpha}\p{Pc}][^)]*$/u.test(e)}function it(e){return e.trim().replace(/[- _]+/g,"_").replace(/[A-Z][a-z]+(?=[A-Z])/g,"$&_").replace(/[A-Za-z]+/g,t=>t[0].toUpperCase()+t.slice(1).toLowerCase())}function se(e){return e.replace(/[- _]+/g,"").toLowerCase()}function Ge(e,t){const r=t;return j(e,`Unclosed character class${r?.type==="Character"&&r.value===93&&r.raw==="]"?' (started with "]")':""}`)}function Re(e){return j(e,"Unclosed group")}function Z(e,t,r=null){function n(s,o){for(let i=0;i<s.length;i++){const u=a(s[i],o,i,s);i=Math.max(-1,i+u)}}function a(s,o=null,i=null,u=null){let c=0,p=!1;const l={node:s,parent:o,key:i,container:u,root:e,remove(){Y(u).splice(Math.max(0,T(i)+c),1),c--,p=!0},removeAllNextSiblings(){return Y(u).splice(T(i)+1)},removeAllPrevSiblings(){const y=T(i)+c;return c-=y,Y(u).splice(0,Math.max(0,y))},replaceWith(y,E={}){const $=!!E.traverse;u?u[Math.max(0,T(i)+c)]=y:j(o,"Can't replace root node")[i]=y,$&&a(y,o,i,u),p=!0},replaceWithMultiple(y,E={}){const $=!!E.traverse;if(Y(u).splice(Math.max(0,T(i)+c),1,...y),c+=y.length-1,$){let k=0;for(let A=0;A<y.length;A++)k+=a(y[A],o,T(i)+A+k,u)}p=!0},skip(){p=!0}},{type:f}=s,g=t["*"],d=t[f],w=typeof g=="function"?g:g?.enter,m=typeof d=="function"?d:d?.enter;if(w?.(l,r),m?.(l,r),!p)switch(f){case"AbsenceFunction":case"Alternative":case"CapturingGroup":case"CharacterClass":case"Group":case"LookaroundAssertion":n(s.body,s);break;case"Assertion":case"Backreference":case"Character":case"CharacterSet":case"Directive":case"Flags":case"NamedCallout":case"Subroutine":break;case"CharacterClassRange":a(s.min,s,"min"),a(s.max,s,"max");break;case"Quantifier":a(s.body,s,"body");break;case"Regex":n(s.body,s),a(s.flags,s,"flags");break;default:throw new Error(`Unexpected node type "${f}"`)}return d?.exit?.(l,r),g?.exit?.(l,r),c}return a(e),e}function Y(e){if(!Array.isArray(e))throw new Error("Container expected");return e}function T(e){if(typeof e!="number")throw new Error("Numeric key expected");return e}var ut=String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;function ct(e,t){for(let r=0;r<e.length;r++)e[r]>=t&&e[r]++}function lt(e,t,r,n){return e.slice(0,t)+n+e.slice(t+r.length)}var I=Object.freeze({DEFAULT:"DEFAULT",CHAR_CLASS:"CHAR_CLASS"});function Ee(e,t,r,n){const a=new RegExp(String.raw`${t}|(?<$skip>\[\^?|\\?.)`,"gsu"),s=[!1];let o=0,i="";for(const u of e.matchAll(a)){const{0:c,groups:{$skip:p}}=u;if(!p&&(!n||n===I.DEFAULT==!o)){r instanceof Function?i+=r(u,{context:o?I.CHAR_CLASS:I.DEFAULT,negated:s[s.length-1]}):i+=r;continue}c[0]==="["?(o++,s.push(c[1]==="^")):c==="]"&&o&&(o--,s.pop()),i+=c}return i}function sr(e,t,r,n){Ee(e,t,r,n)}function pt(e,t,r=0,n){if(!new RegExp(t,"su").test(e))return null;const a=new RegExp(`${t}|(?<$skip>\\\\?.)`,"gsu");a.lastIndex=r;let s=0,o;for(;o=a.exec(e);){const{0:i,groups:{$skip:u}}=o;if(!u&&(!n||n===I.DEFAULT==!s))return o;i==="["?s++:i==="]"&&s&&s--,a.lastIndex==o.index&&a.lastIndex++}return null}function ee(e,t,r){return!!pt(e,t,0,r)}function ft(e,t){const r=/\\?./gsu;r.lastIndex=t;let n=e.length,a=0,s=1,o;for(;o=r.exec(e);){const[i]=o;if(i==="[")a++;else if(a)i==="]"&&a--;else if(i==="(")s++;else if(i===")"&&(s--,!s)){n=o.index;break}}return e.slice(t,n)}var Ue=new RegExp(String.raw`(?<noncapturingStart>${ut})|(?<capturingStart>\((?:\?<[^>]+>)?)|\\?.`,"gsu");function dt(e,t){const r=t?.hiddenCaptures??[];let n=t?.captureTransfers??new Map;if(!/\(\?>/.test(e))return{pattern:e,captureTransfers:n,hiddenCaptures:r};const a="(?>",s="(?:(?=(",o=[0],i=[];let u=0,c=0,p=NaN,l;do{l=!1;let f=0,g=0,d=!1,w;for(Ue.lastIndex=Number.isNaN(p)?0:p+7;w=Ue.exec(e);){const{0:m,index:y,groups:{capturingStart:E,noncapturingStart:$}}=w;if(m==="[")f++;else if(f)m==="]"&&f--;else if(m===a&&!d)p=y,d=!0;else if(d&&$)g++;else if(E)d?g++:(u++,o.push(u+c));else if(m===")"&&d){if(!g){c++;const k=u+c;if(e=`${e.slice(0,p)}${s}${e.slice(p+3,y)}))<$$${k}>)${e.slice(y+1)}`,l=!0,i.push(k),ct(r,k),n.size){const A=new Map;n.forEach((J,D)=>{A.set(D>=k?D+1:D,J.map(B=>B>=k?B+1:B))}),n=A}break}g--}}}while(l);return r.push(...i),e=Ee(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:f,groups:{backrefNum:g,wrappedBackrefNum:d}})=>{if(g){const w=+g;if(w>o.length-1)throw new Error(`Backref "${f}" greater than number of captures`);return`\\${o[w]}`}return`\\${d}`},I.DEFAULT),{pattern:e,captureTransfers:n,hiddenCaptures:r}}var ar=String.raw`(?:[?*+]|\{\d+(?:,\d*)?\})`,ue=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>${ar})(?<qMod>[?+]?)(?<invalidQ>[?*+\{]?)
| \\?.
`.replace(/\s+/g,""),"gsu");function gt(e){if(!new RegExp(`${ar}\\+`).test(e))return{pattern:e};const t=[];let r=null,n=null,a="",s=0,o;for(ue.lastIndex=0;o=ue.exec(e);){const{0:i,index:u,groups:{qBase:c,qMod:p,invalidQ:l}}=o;if(i==="[")s||(n=u),s++;else if(i==="]")s?s--:n=null;else if(!s)if(p==="+"&&a&&!a.startsWith("(")){if(l)throw new Error(`Invalid quantifier "${i}"`);let f=-1;if(/^\{\d+\}$/.test(c))e=lt(e,u+c.length,p,"");else{if(a===")"||a==="]"){const g=a===")"?r:n;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)}`;f+=4}ue.lastIndex+=f}else i[0]==="("?t.push(u):i===")"&&(r=t.length?t.pop():null);a=i}return{pattern:e}}var v=String.raw,me=v`\(\?R=(?<rDepth>[^\)]+)\)|${v`\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`}`,ae=v`\(\?<(?![=!])(?<captureName>[^>]+)>`,or=v`${ae}|(?<unnamed>\()(?!\?)`,G=new RegExp(v`${ae}|${me}|\(\?|\\?.`,"gsu"),ce="Cannot use multiple overlapping recursions";function ht(e,t){const{hiddenCaptures:r,mode:n}={hiddenCaptures:[],mode:"plugin",...t};let a=t?.captureTransfers??new Map;if(!new RegExp(me,"su").test(e))return{pattern:e,captureTransfers:a,hiddenCaptures:r};if(n==="plugin"&&ee(e,v`\(\?\(DEFINE\)`,I.DEFAULT))throw new Error("DEFINE groups cannot be used with recursion");const s=[],o=ee(e,v`\\[1-9]`,I.DEFAULT),i=new Map,u=[];let c=!1,p=0,l=0,f;for(G.lastIndex=0;f=G.exec(e);){const{0:g,groups:{captureName:d,rDepth:w,gRNameOrNum:m,gRDepth:y}}=f;if(g==="[")p++;else if(p)g==="]"&&p--;else if(w){if(Oe(w),c)throw new Error(ce);if(o)throw new Error(`${n==="external"?"Backrefs":"Numbered backrefs"} cannot be used with global recursion`);const E=e.slice(0,f.index),$=e.slice(G.lastIndex);if(ee($,me,I.DEFAULT))throw new Error(ce);const k=+w-1;e=De(E,$,k,!1,r,s,l),a=Te(a,E,k,s.length,0,l);break}else if(m){Oe(y);let E=!1;for(const X of u)if(X.name===m||X.num===+m){if(E=!0,X.hasRecursedWithin)throw new Error(ce);break}if(!E)throw new Error(v`Recursive \g cannot be used outside the referenced group "${n==="external"?m:v`\g<${m}&R=${y}>`}"`);const $=i.get(m),k=ft(e,$);if(o&&ee(k,v`${ae}|\((?!\?)`,I.DEFAULT))throw new Error(`${n==="external"?"Backrefs":"Numbered backrefs"} cannot be used with recursion of capturing groups`);const A=e.slice($,f.index),J=k.slice(A.length+g.length),D=s.length,B=+y-1,ve=De(A,J,B,!0,r,s,l);a=Te(a,A,B,s.length-D,D,l),e=`${e.slice(0,$)}${ve}${e.slice($+k.length)}`,G.lastIndex+=ve.length-g.length-A.length-J.length,u.forEach(X=>X.hasRecursedWithin=!0),c=!0}else if(d)l++,i.set(String(l),G.lastIndex),i.set(d,G.lastIndex),u.push({num:l,name:d});else if(g[0]==="("){const E=g==="(";E&&(l++,i.set(String(l),G.lastIndex)),u.push(E?{num:l}:{})}else g===")"&&u.pop()}return r.push(...s),{pattern:e,captureTransfers:a,hiddenCaptures:r}}function Oe(e){const t=`Max depth must be integer between 2 and 100; used ${e}`;if(!/^[1-9]\d*$/.test(e))throw new Error(t);if(e=+e,e<2||e>100)throw new Error(t)}function De(e,t,r,n,a,s,o){const i=new Set;n&&sr(e+t,ae,({groups:{captureName:c}})=>{i.add(c)},I.DEFAULT);const u=[r,n?i:null,a,s,o];return`${e}${Be(`(?:${e}`,"forward",...u)}(?:)${Be(`${t})`,"backward",...u)}${t}`}function Be(e,t,r,n,a,s,o){const u=p=>t==="forward"?p+2:r-p+2-1;let c="";for(let p=0;p<r;p++){const l=u(p);c+=Ee(e,v`${or}|\\k<(?<backref>[^>]+)>`,({0:f,groups:{captureName:g,unnamed:d,backref:w}})=>{if(w&&n&&!n.has(w))return f;const m=`_$${l}`;if(d||g){const y=o+s.length+1;return s.push(y),wt(a,y),d?f:`(?<${g}${m}>`}return v`\k<${w}${m}>`},I.DEFAULT)}return c}function wt(e,t){for(let r=0;r<e.length;r++)e[r]>=t&&e[r]++}function Te(e,t,r,n,a,s){if(e.size&&n){let o=0;sr(t,or,()=>o++,I.DEFAULT);const i=s-o+a,u=new Map;return e.forEach((c,p)=>{const l=(n-o*r)/r,f=o*r,g=p>i+o?p+n:p,d=[];for(const w of c)if(w<=i)d.push(w);else if(w>i+o+l)d.push(w+n);else if(w<=i+o)for(let m=0;m<=r;m++)d.push(w+o*m);else for(let m=0;m<=r;m++)d.push(w+f+l*m);u.set(g,d)}),u}return e}var b=String.fromCodePoint,h=String.raw,_={},oe=globalThis.RegExp;_.flagGroups=(()=>{try{new oe("(?i:)")}catch{return!1}return!0})();_.unicodeSets=(()=>{try{new oe("[[]]","v")}catch{return!1}return!0})();_.bugFlagVLiteralHyphenIsRange=_.unicodeSets?(()=>{try{new oe(h`[\d\-a]`,"v")}catch{return!0}return!1})():!1;_.bugNestedClassIgnoresNegation=_.unicodeSets&&new oe("[[^a]]","v").test("a");function te(e,{enable:t,disable:r}){return{dotAll:!r?.dotAll&&!!(t?.dotAll||e.dotAll),ignoreCase:!r?.ignoreCase&&!!(t?.ignoreCase||e.ignoreCase)}}function Q(e,t,r){return e.has(t)||e.set(t,r),e.get(t)}function ye(e,t){return Ve[e]>=Ve[t]}function mt(e,t){if(e==null)throw new Error(t??"Value expected");return e}var Ve={ES2025:2025,ES2024:2024,ES2018:2018},yt={auto:"auto",ES2025:"ES2025",ES2024:"ES2024",ES2018:"ES2018"};function ir(e={}){if({}.toString.call(e)!=="[object Object]")throw new Error("Unexpected options");if(e.target!==void 0&&!yt[e.target])throw new Error(`Unexpected target "${e.target}"`);const t={accuracy:"default",avoidSubclass:!1,flags:"",global:!1,hasIndices:!1,lazyCompileLength:1/0,target:"auto",verbose:!1,...e,rules:{allowOrphanBackrefs:!1,asciiWordBoundaries:!1,captureGroup:!1,recursionLimit:20,singleline:!1,...e.rules}};return t.target==="auto"&&(t.target=_.flagGroups?"ES2025":_.unicodeSets?"ES2024":"ES2018"),t}var Ct="[	-\r ]",bt=new Set([b(304),b(305)]),M=h`[\p{L}\p{M}\p{N}\p{Pc}]`;function ur(e){if(bt.has(e))return[e];const t=new Set,r=e.toLowerCase(),n=r.toUpperCase(),a=Et.get(r),s=xt.get(r),o=kt.get(r);return[...n].length===1&&t.add(n),o&&t.add(o),a&&t.add(a),t.add(r),s&&t.add(s),[...t]}var $e=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=>[se(e),e])),xt=new Map([["s",b(383)],[b(383),"s"]]),kt=new Map([[b(223),b(7838)],[b(107),b(8490)],[b(229),b(8491)],[b(969),b(8486)]]),Et=new Map([F(453),F(456),F(459),F(498),...le(8072,8079),...le(8088,8095),...le(8104,8111),F(8124),F(8140),F(8188)]),$t=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 At(e,t){const r=[];for(let n=e;n<=t;n++)r.push(n);return r}function F(e){const t=b(e);return[t.toLowerCase(),t]}function le(e,t){return At(e,t).map(r=>F(r))}var cr=new Set(["Lower","Lowercase","Upper","Uppercase","Ll","Lowercase_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter"]);function vt(e,t){const r={accuracy:"default",asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:"ES2025",...t};lr(e);const n={accuracy:r.accuracy,asciiWordBoundaries:r.asciiWordBoundaries,avoidSubclass:r.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:ye(r.bestEffortTarget,"ES2024"),passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:e.flags.digitIsAscii,spaceIsAscii:e.flags.spaceIsAscii,wordIsAscii:e.flags.wordIsAscii};Z(e,It,n);const a={dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},s={currentFlags:a,prevFlags:null,globalFlags:a,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:n.subroutineRefMap};Z(e,St,s);const o={groupsByName:s.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:s.reffedNodesByReferencer};return Z(e,_t,o),e._originMap=s.groupOriginByCopy,e._strategy=n.strategy,e}var It={AbsenceFunction({node:e,parent:t,replaceWith:r}){const{body:n,kind:a}=e;if(a==="repeater"){const s=S();s.body[0].body.push(R({negate:!0,body:n}),W("Any"));const o=S();o.body[0].body.push(rr("greedy",0,1/0,s)),r(C(o,t),{traverse:!0})}else throw new Error('Unsupported absence function "(?~|"')},Alternative:{enter({node:e,parent:t,key:r},{flagDirectivesByAlt:n}){const a=e.body.filter(s=>s.kind==="flags");for(let s=r+1;s<t.body.length;s++){const o=t.body[s];Q(n,o,[]).push(...a)}},exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){const r=fr(t.get(e));if(r){const n=S({flags:r});n.body[0].body=e.body,e.body=[C(n,e)]}}}},Assertion({node:e,parent:t,key:r,container:n,root:a,remove:s,replaceWith:o},i){const{kind:u,negate:c}=e,{asciiWordBoundaries:p,avoidSubclass:l,supportedGNodes:f,wordIsAscii:g}=i;if(u==="text_segment_boundary")throw new Error(`Unsupported text segment boundary "\\${c?"Y":"y"}"`);if(u==="line_end")o(C(R({body:[O({body:[ge("string_end")]}),O({body:[ne(10)]})]}),t));else if(u==="line_start")o(C(N(h`(?<=\A|\n(?!\z))`,{skipLookbehindValidation:!0}),t));else if(u==="search_start")if(f.has(e))a.flags.sticky=!0,s();else{const d=n[r-1];if(d&&Gt(d))o(C(R({negate:!0}),t));else{if(l)throw new Error(h`Uses "\G" in a way that requires a subclass`);o(P(ge("string_start"),t)),i.strategy="clip_search"}}else if(!(u==="string_end"||u==="string_start"))if(u==="string_end_newline")o(C(N(h`(?=\n?\z)`),t));else if(u==="word_boundary"){if(!g&&!p){const d=`(?:(?<=${M})(?!${M})|(?<!${M})(?=${M}))`,w=`(?:(?<=${M})(?=${M})|(?<!${M})(?!${M}))`;o(C(N(c?w:d),t))}}else throw new Error(`Unexpected assertion kind "${u}"`)},Backreference({node:e},{jsGroupNameMap:t}){let{ref:r}=e;typeof r=="string"&&!fe(r)&&(r=pe(r,t),e.ref=r)},CapturingGroup({node:e},{jsGroupNameMap:t,subroutineRefMap:r}){let{name:n}=e;n&&!fe(n)&&(n=pe(n,t),e.name=n),r.set(e.number,e),n&&r.set(n,e)},CharacterClassRange({node:e,parent:t,replaceWith:r}){t.kind==="intersection"&&r(C(re({body:[e]}),t),{traverse:!0})},CharacterSet({node:e,parent:t,replaceWith:r},{accuracy:n,minTargetEs2024:a,digitIsAscii:s,spaceIsAscii:o,wordIsAscii:i}){const{kind:u,negate:c,value:p}=e;if(s&&(u==="digit"||p==="digit")){r(P(we("digit",{negate:c}),t));return}if(o&&(u==="space"||p==="space")){r(C(de(N(Ct),c),t));return}if(i&&(u==="word"||p==="word")){r(P(we("word",{negate:c}),t));return}if(u==="any")r(P(W("Any"),t));else if(u==="digit")r(P(W("Nd",{negate:c}),t));else if(u!=="dot")if(u==="text_segment"){if(n==="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})?",f=h`\p{RI}{2}|${l}(?:\u200D${l})*`;r(C(N(h`(?>\r\n|${a?h`\p{RGI_Emoji}`:f}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}),t))}else if(u==="hex")r(P(W("AHex",{negate:c}),t));else if(u==="newline")r(C(N(c?`[^
]`:`(?>\r
?|[
\v\f…\u2028\u2029])`),t));else if(u==="posix")if(!a&&(p==="graph"||p==="print")){if(n==="strict")throw new Error(`POSIX class "${p}" requires min target ES2024 or non-strict accuracy`);let l={graph:"!-~",print:" -~"}[p];c&&(l=`\0-${b(l.codePointAt(0)-1)}${b(l.codePointAt(2)+1)}-􏿿`),r(C(N(`[${l}]`),t))}else r(C(de(N($t.get(p)),c),t));else if(u==="property")$e.has(se(p))||(e.key="sc");else if(u==="space")r(P(W("space",{negate:c}),t));else if(u==="word")r(C(de(N(M),c),t));else throw new Error(`Unexpected character set kind "${u}"`)},Directive({node:e,parent:t,root:r,remove:n,replaceWith:a,removeAllPrevSiblings:s,removeAllNextSiblings:o}){const{kind:i,flags:u}=e;if(i==="flags")if(!u.enable&&!u.disable)n();else{const c=S({flags:u});c.body[0].body=o(),a(C(c,t),{traverse:!0})}else if(i==="keep"){const c=r.body[0],p=r.body.length===1&&Ke(c,{type:"Group"})&&c.body[0].body.length===1?c.body[0]:r;if(t.parent!==p||p.body.length>1)throw new Error(h`Uses "\K" in a way that's unsupported`);const l=R({behind:!0});l.body[0].body=s(),a(C(l,t))}else throw new Error(`Unexpected directive kind "${i}"`)},Flags({node:e,parent:t}){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(r=>delete e[r]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),t.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;const{enable:t,disable:r}=e.flags;t?.extended&&delete t.extended,r?.extended&&delete r.extended,t?.dotAll&&r?.dotAll&&delete t.dotAll,t?.ignoreCase&&r?.ignoreCase&&delete t.ignoreCase,t&&!Object.keys(t).length&&delete e.flags.enable,r&&!Object.keys(r).length&&delete e.flags.disable,!e.flags.enable&&!e.flags.disable&&delete e.flags},LookaroundAssertion({node:e},t){const{kind:r}=e;r==="lookbehind"&&(t.passedLookbehind=!0)},NamedCallout({node:e,parent:t,replaceWith:r}){const{kind:n}=e;if(n==="fail")r(C(R({negate:!0}),t));else throw new Error(`Unsupported named callout "(*${n.toUpperCase()}"`)},Quantifier({node:e}){if(e.body.type==="Quantifier"){const t=S();t.body[0].body.push(e.body),e.body=C(t,e)}},Regex:{enter({node:e},{supportedGNodes:t}){const r=[];let n=!1,a=!1;for(const s of e.body)if(s.body.length===1&&s.body[0].kind==="search_start")s.body.pop();else{const o=gr(s.body);o?(n=!0,Array.isArray(o)?r.push(...o):r.push(o)):a=!0}n&&!a&&r.forEach(s=>t.add(s))},exit(e,{accuracy:t,passedLookbehind:r,strategy:n}){if(t==="strict"&&r&&n)throw new Error(h`Uses "\G" in a way that requires non-strict accuracy`)}},Subroutine({node:e},{jsGroupNameMap:t}){let{ref:r}=e;typeof r=="string"&&!fe(r)&&(r=pe(r,t),e.ref=r)}},St={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:r}){const{orphan:n,ref:a}=e;n||r.set(e,[...t.get(a).map(({node:s})=>s)])},CapturingGroup:{enter({node:e,parent:t,replaceWith:r,skip:n},{groupOriginByCopy:a,groupsByName:s,multiplexCapturesToLeftByRef:o,openRefs:i,reffedNodesByReferencer:u}){const c=a.get(e);if(c&&i.has(e.number)){const l=P(ze(e.number),t);u.set(l,i.get(e.number)),r(l);return}i.set(e.number,e),o.set(e.number,[]),e.name&&Q(o,e.name,[]);const p=o.get(e.name??e.number);for(let l=0;l<p.length;l++){const f=p[l];if(c===f.node||c&&c===f.origin||e===f.origin){p.splice(l,1);break}}if(o.get(e.number).push({node:e,origin:c}),e.name&&o.get(e.name).push({node:e,origin:c}),e.name){const l=Q(s,e.name,new Map);let f=!1;if(c)f=!0;else for(const g of l.values())if(!g.hasDuplicateNameToRemove){f=!0;break}s.get(e.name).set(e,{node:e,hasDuplicateNameToRemove:f})}},exit({node:e},{openRefs:t}){t.get(e.number)===e&&t.delete(e.number)}},Group:{enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=te(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Subroutine({node:e,parent:t,replaceWith:r},n){const{isRecursive:a,ref:s}=e;if(a){let p=t;for(;(p=p.parent)&&!(p.type==="CapturingGroup"&&(p.name===s||p.number===s)););n.reffedNodesByReferencer.set(e,p);return}const o=n.subroutineRefMap.get(s),i=s===0,u=i?ze(0):pr(o,n.groupOriginByCopy,null);let c=u;if(!i){const p=fr(Lt(o,f=>f.type==="Group"&&!!f.flags)),l=p?te(n.globalFlags,p):n.globalFlags;Mt(l,n.currentFlags)||(c=S({flags:Ft(l)}),c.body[0].body.push(u))}r(C(c,t),{traverse:!i})}},_t={Backreference({node:e,parent:t,replaceWith:r},n){if(e.orphan){n.highestOrphanBackref=Math.max(n.highestOrphanBackref,e.ref);return}const a=n.reffedNodesByReferencer.get(e).filter(s=>Nt(s,e));a.length?a.length>1?r(C(S({atomic:!0,body:a.reverse().map(s=>O({body:[he(s.number)]}))}),t)):e.ref=a[0].number:r(C(R({negate:!0}),t))},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,e.name&&t.groupsByName.get(e.name).get(e).hasDuplicateNameToRemove&&delete e.name},Regex:{exit({node:e},t){const r=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let n=0;n<r;n++){const a=er();e.body.at(-1).body.push(a)}}},Subroutine({node:e},t){!e.isRecursive||e.ref===0||(e.ref=t.reffedNodesByReferencer.get(e).number)}};function lr(e){Z(e,{"*"({node:t,parent:r}){t.parent=r}})}function Mt(e,t){return e.dotAll===t.dotAll&&e.ignoreCase===t.ignoreCase}function Nt(e,t){let r=t;do{if(r.type==="Regex")return!1;if(r.type==="Alternative")continue;if(r===e)return!1;const n=dr(r.parent);for(const a of n){if(a===r)break;if(a===e||hr(a,e))return!0}}while(r=r.parent);throw new Error("Unexpected path")}function pr(e,t,r,n){const a=Array.isArray(e)?[]:{};for(const[s,o]of Object.entries(e))s==="parent"?a.parent=Array.isArray(r)?n:r:o&&typeof o=="object"?a[s]=pr(o,t,a,r):(s==="type"&&o==="CapturingGroup"&&t.set(a,t.get(e)??e),a[s]=o);return a}function ze(e){const t=tr(e);return t.isRecursive=!0,t}function Lt(e,t){const r=[];for(;e=e.parent;)(!t||t(e))&&r.push(e);return r}function pe(e,t){if(t.has(e))return t.get(e);const r=`$${t.size}_${e.replace(/^[^$_\p{IDS}]|[^$\u200C\u200D\p{IDC}]/gu,"_")}`;return t.set(e,r),r}function fr(e){const t=["dotAll","ignoreCase"],r={enable:{},disable:{}};return e.forEach(({flags:n})=>{t.forEach(a=>{n.enable?.[a]&&(delete r.disable[a],r.enable[a]=!0),n.disable?.[a]&&(r.disable[a]=!0)})}),Object.keys(r.enable).length||delete r.enable,Object.keys(r.disable).length||delete r.disable,r.enable||r.disable?r:null}function Ft({dotAll:e,ignoreCase:t}){const r={};return(e||t)&&(r.enable={},e&&(r.enable.dotAll=!0),t&&(r.enable.ignoreCase=!0)),(!e||!t)&&(r.disable={},!e&&(r.disable.dotAll=!0),!t&&(r.disable.ignoreCase=!0)),r}function dr(e){if(!e)throw new Error("Node expected");const{body:t}=e;return Array.isArray(t)?t:t?[t]:null}function gr(e){const t=e.find(r=>r.kind==="search_start"||Rt(r,{negate:!1})||!Pt(r));if(!t)return null;if(t.kind==="search_start")return t;if(t.type==="LookaroundAssertion")return t.body[0].body[0];if(t.type==="CapturingGroup"||t.type==="Group"){const r=[];for(const n of t.body){const a=gr(n.body);if(!a)return null;Array.isArray(a)?r.push(...a):r.push(a)}return r}return null}function hr(e,t){const r=dr(e)??[];for(const n of r)if(n===t||hr(n,t))return!0;return!1}function Pt({type:e}){return e==="Assertion"||e==="Directive"||e==="LookaroundAssertion"}function Gt(e){const t=["Character","CharacterClass","CharacterSet"];return t.includes(e.type)||e.type==="Quantifier"&&e.min&&t.includes(e.body.type)}function Rt(e,t){const r={negate:null,...t};return e.type==="LookaroundAssertion"&&(r.negate===null||e.negate===r.negate)&&e.body.length===1&&Ke(e.body[0],{type:"Assertion",kind:"search_start"})}function fe(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function N(e,t){const r=Ye(e,{...t,unicodePropertyMap:$e}).body;return r.length>1||r[0].body.length>1?S({body:r}):r[0].body[0]}function de(e,t){return e.negate=t,e}function P(e,t){return e.parent=t,e}function C(e,t){return lr(e),e.parent=t,e}function Ut(e,t){const r=ir(t),n=ye(r.target,"ES2024"),a=ye(r.target,"ES2025"),s=r.rules.recursionLimit;if(!Number.isInteger(s)||s<2||s>20)throw new Error("Invalid recursionLimit; use 2-20");let o=null,i=null;if(!a){const g=[e.flags.ignoreCase];Z(e,Ot,{getCurrentModI:()=>g.at(-1),popModI(){g.pop()},pushModI(d){g.push(d)},setHasCasedChar(){g.at(-1)?o=!0:i=!0}})}const u={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||o)&&!i)};let c=e;const p={accuracy:r.accuracy,appliedGlobalFlags:u,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:c,originMap:e._originMap,recursionLimit:s,useAppliedIgnoreCase:!!(!a&&o&&i),useFlagMods:a,useFlagV:n,verbose:r.verbose};function l(g){return p.lastNode=c,c=g,mt(Dt[g.type],`Unexpected node type "${g.type}"`)(g,p,l)}const f={pattern:e.body.map(l).join("|"),flags:l(e.flags),options:{...e.options}};return n||(delete f.options.force.v,f.options.disable.v=!0,f.options.unicodeSetsPlugin=null),f._captureTransfers=new Map,f._hiddenCaptures=[],p.captureMap.forEach((g,d)=>{g.hidden&&f._hiddenCaptures.push(d),g.transferTo&&Q(f._captureTransfers,g.transferTo,[]).push(d)}),f}var Ot={"*":{enter({node:e},t){if(He(e)){const r=t.getCurrentModI();t.pushModI(e.flags?te({ignoreCase:r},e.flags).ignoreCase:r)}},exit({node:e},t){He(e)&&t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){Ae(b(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},r){t(),wr(e,{firstOnly:!0}).length&&r.setHasCasedChar()},CharacterSet({node:e},t){e.kind==="property"&&cr.has(e.value)&&t.setHasCasedChar()}},Dt={Alternative({body:e},t,r){return e.map(r).join("")},Assertion({kind:e,negate:t}){if(e==="string_end")return"$";if(e==="string_start")return"^";if(e==="word_boundary")return t?h`\B`:h`\b`;throw new Error(`Unexpected assertion kind "${e}"`)},Backreference({ref:e},t){if(typeof e!="number")throw new Error("Unexpected named backref in transformed AST");if(!t.useFlagMods&&t.accuracy==="strict"&&t.currentFlags.ignoreCase&&!t.captureMap.get(e).ignoreCase)throw new Error("Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy");return"\\"+e},CapturingGroup(e,t,r){const{body:n,name:a,number:s}=e,o={ignoreCase:t.currentFlags.ignoreCase},i=t.originMap.get(e);return i&&(o.hidden=!0,s>i.number&&(o.transferTo=i.number)),t.captureMap.set(s,o),`(${a?`?<${a}>`:""}${n.map(r).join("|")})`},Character({value:e},t){const r=b(e),n=V(e,{escDigit:t.lastNode.type==="Backreference",inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(n!==r)return n;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&Ae(r)){const a=ur(r);return t.inCharClass?a.join(""):a.length>1?`[${a.join("")}]`:a[0]}return r},CharacterClass(e,t,r){const{kind:n,negate:a,parent:s}=e;let{body:o}=e;if(n==="intersection"&&!t.useFlagV)throw new Error("Use of character class intersection requires min target ES2024");_.bugFlagVLiteralHyphenIsRange&&t.useFlagV&&o.some(je)&&(o=[ne(45),...o.filter(c=>!je(c))]);const i=()=>`[${a?"^":""}${o.map(r).join(n==="intersection"?"&&":"")}]`;if(!t.inCharClass){if((!t.useFlagV||_.bugNestedClassIgnoresNegation)&&!a){const p=o.filter(l=>l.type==="CharacterClass"&&l.kind==="union"&&l.negate);if(p.length){const l=S(),f=l.body[0];return l.parent=s,f.parent=l,o=o.filter(g=>!p.includes(g)),e.body=o,o.length?(e.parent=f,f.body.push(e)):l.body.pop(),p.forEach(g=>{const d=O({body:[g]});g.parent=d,d.parent=l,l.body.push(d)}),r(l)}}t.inCharClass=!0;const c=i();return t.inCharClass=!1,c}const u=o[0];if(n==="union"&&!a&&u&&((!t.useFlagV||!t.verbose)&&s.kind==="union"&&!(_.bugFlagVLiteralHyphenIsRange&&t.useFlagV)||!t.verbose&&s.kind==="intersection"&&o.length===1&&u.type!=="CharacterClassRange"))return o.map(r).join("");if(!t.useFlagV&&s.type==="CharacterClass")throw new Error("Uses nested character class in a way that requires min target ES2024");return i()},CharacterClassRange(e,t){const r=e.min.value,n=e.max.value,a={escDigit:!1,inCharClass:!0,useFlagV:t.useFlagV},s=V(r,a),o=V(n,a),i=new Set;return t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&Wt(wr(e)).forEach(u=>{i.add(Array.isArray(u)?`${V(u[0],a)}-${V(u[1],a)}`:V(u,a))}),`${s}-${o}${[...i].join("")}`},CharacterSet({kind:e,negate:t,value:r,key:n},a){if(e==="dot")return a.currentFlags.dotAll?a.appliedGlobalFlags.dotAll||a.useFlagMods?".":"[^]":h`[^\n]`;if(e==="digit")return t?h`\D`:h`\d`;if(e==="property"){if(a.useAppliedIgnoreCase&&a.currentFlags.ignoreCase&&cr.has(r))throw new Error(`Unicode property "${r}" can't be case-insensitive when other chars have specific case`);return`${t?h`\P`:h`\p`}{${n?`${n}=`:""}${r}}`}if(e==="word")return t?h`\W`:h`\w`;throw new Error(`Unexpected character set kind "${e}"`)},Flags(e,t){return(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":"")+(e.sticky?"y":"")},Group({atomic:e,body:t,flags:r,parent:n},a,s){const o=a.currentFlags;r&&(a.currentFlags=te(o,r));const i=t.map(s).join("|"),u=!a.verbose&&t.length===1&&n.type!=="Quantifier"&&!e&&(!a.useFlagMods||!r)?i:`(?${Ht(e,r,a.useFlagMods)}${i})`;return a.currentFlags=o,u},LookaroundAssertion({body:e,kind:t,negate:r},n,a){return`(?${`${t==="lookahead"?"":"<"}${r?"!":"="}`}${e.map(a).join("|")})`},Quantifier(e,t,r){return r(e.body)+jt(e)},Subroutine({isRecursive:e,ref:t},r){if(!e)throw new Error("Unexpected non-recursive subroutine in transformed AST");const n=r.recursionLimit;return t===0?`(?R=${n})`:h`\g<${t}&R=${n}>`}},Bt=new Set(["$","(",")","*","+",".","?","[","\\","]","^","{","|","}"]),Tt=new Set(["-","\\","]","^","["]),Vt=new Set(["(",")","-","/","[","\\","]","^","{","|","}","!","#","$","%","&","*","+",",",".",":",";","<","=",">","?","@","`","~"]),We=new Map([[9,h`\t`],[10,h`\n`],[11,h`\v`],[12,h`\f`],[13,h`\r`],[8232,h`\u2028`],[8233,h`\u2029`],[65279,h`\uFEFF`]]),zt=new RegExp("^\\p{Cased}$","u");function Ae(e){return zt.test(e)}function wr(e,t){const r=!!t?.firstOnly,n=e.min.value,a=e.max.value,s=[];if(n<65&&(a===65535||a>=131071)||n===65536&&a>=131071)return s;for(let o=n;o<=a;o++){const i=b(o);if(!Ae(i))continue;const u=ur(i).filter(c=>{const p=c.codePointAt(0);return p<n||p>a});if(u.length&&(s.push(...u),r))break}return s}function V(e,{escDigit:t,inCharClass:r,useFlagV:n}){if(We.has(e))return We.get(e);if(e<32||e>126&&e<160||e>262143||t&&Xt(e))return e>255?`\\u{${e.toString(16).toUpperCase()}}`:`\\x${e.toString(16).toUpperCase().padStart(2,"0")}`;const a=r?n?Vt:Tt:Bt,s=b(e);return(a.has(s)?"\\":"")+s}function Wt(e){const t=e.map(a=>a.codePointAt(0)).sort((a,s)=>a-s),r=[];let n=null;for(let a=0;a<t.length;a++)t[a+1]===t[a]+1?n??=t[a]:n===null?r.push(t[a]):(r.push([n,t[a]]),n=null);return r}function Ht(e,t,r){if(e)return">";let n="";if(t&&r){const{enable:a,disable:s}=t;n=(a?.ignoreCase?"i":"")+(a?.dotAll?"s":"")+(s?"-":"")+(s?.ignoreCase?"i":"")+(s?.dotAll?"s":"")}return`${n}:`}function jt({kind:e,max:t,min:r}){let n;return!r&&t===1?n="?":!r&&t===1/0?n="*":r===1&&t===1/0?n="+":r===t?n=`{${r}}`:n=`{${r},${t===1/0?"":t}}`,n+{greedy:"",lazy:"?",possessive:"+"}[e]}function He({type:e}){return e==="CapturingGroup"||e==="Group"||e==="LookaroundAssertion"}function Xt(e){return e>47&&e<58}function je({type:e,value:t}){return e==="Character"&&t===45}var Zt=class Ce extends RegExp{#r=new Map;#e=null;#n;#t=null;#s=null;rawOptions={};get source(){return this.#n||"(?:)"}constructor(t,r,n){const a=!!n?.lazyCompile;if(t instanceof RegExp){if(n)throw new Error("Cannot provide options when copying a regexp");const s=t;super(s,r),this.#n=s.source,s instanceof Ce&&(this.#r=s.#r,this.#t=s.#t,this.#s=s.#s,this.rawOptions=s.rawOptions)}else{const s={hiddenCaptures:[],strategy:null,transfers:[],...n};super(a?"":t,r),this.#n=t,this.#r=qt(s.hiddenCaptures,s.transfers),this.#s=s.strategy,this.rawOptions=n??{}}a||(this.#e=this)}exec(t){if(!this.#e){const{lazyCompile:a,...s}=this.rawOptions;this.#e=new Ce(this.#n,this.flags,s)}const r=this.global||this.sticky,n=this.lastIndex;if(this.#s==="clip_search"&&r&&n){this.lastIndex=0;const a=this.#a(t.slice(n));return a&&(Qt(a,n,t,this.hasIndices),this.lastIndex+=n),a}return this.#a(t)}#a(t){this.#e.lastIndex=this.lastIndex;const r=super.exec.call(this.#e,t);if(this.lastIndex=this.#e.lastIndex,!r||!this.#r.size)return r;const n=[...r];r.length=1;let a;this.hasIndices&&(a=[...r.indices],r.indices.length=1);const s=[0];for(let o=1;o<n.length;o++){const{hidden:i,transferTo:u}=this.#r.get(o)??{};if(i?s.push(null):(s.push(r.length),r.push(n[o]),this.hasIndices&&r.indices.push(a[o])),u&&n[o]!==void 0){const c=s[u];if(!c)throw new Error(`Invalid capture transfer to "${c}"`);if(r[c]=n[o],this.hasIndices&&(r.indices[c]=a[o]),r.groups){this.#t||(this.#t=Jt(this.source));const p=this.#t.get(u);p&&(r.groups[p]=n[o],this.hasIndices&&(r.indices.groups[p]=a[o]))}}}return r}};function Qt(e,t,r,n){if(e.index+=t,e.input=r,n){const a=e.indices;for(let o=0;o<a.length;o++){const i=a[o];i&&(a[o]=[i[0]+t,i[1]+t])}const s=a.groups;s&&Object.keys(s).forEach(o=>{const i=s[o];i&&(s[o]=[i[0]+t,i[1]+t])})}}function qt(e,t){const r=new Map;for(const n of e)r.set(n,{hidden:!0});for(const[n,a]of t)for(const s of a)Q(r,s,{}).transferTo=n;return r}function Jt(e){const t=/(?<capture>\((?:\?<(?![=!])(?<name>[^>]+)>|(?!\?)))|\\?./gsu,r=new Map;let n=0,a=0,s;for(;s=t.exec(e);){const{0:o,groups:{capture:i,name:u}}=s;o==="["?n++:n?o==="]"&&n--:i&&(a++,u&&r.set(a,u))}return r}function Kt(e,t){const r=Yt(e,t);return r.options?new Zt(r.pattern,r.flags,r.options):new RegExp(r.pattern,r.flags)}function Yt(e,t){const r=ir(t),n=vt(Ye(e,{flags:r.flags,normalizeUnknownPropertyNames:!0,rules:{captureGroup:r.rules.captureGroup,singleline:r.rules.singleline},skipBackrefValidation:r.rules.allowOrphanBackrefs,unicodePropertyMap:$e}),{accuracy:r.accuracy,asciiWordBoundaries:r.rules.asciiWordBoundaries,avoidSubclass:r.avoidSubclass,bestEffortTarget:r.target}),a=Ut(n,r),s=ht(a.pattern,{captureTransfers:a._captureTransfers,hiddenCaptures:a._hiddenCaptures,mode:"external"}),o=gt(s.pattern),i=dt(o.pattern,{captureTransfers:s.captureTransfers,hiddenCaptures:s.hiddenCaptures}),u={pattern:i.pattern,flags:`${r.hasIndices?"d":""}${r.global?"g":""}${a.flags}${a.options.disable.v?"u":"v"}`};if(r.avoidSubclass){if(r.lazyCompileLength!==1/0)throw new Error("Lazy compilation requires subclass")}else{const c=i.hiddenCaptures.sort((g,d)=>g-d),p=Array.from(i.captureTransfers),l=n._strategy,f=u.pattern.length>=r.lazyCompileLength;(c.length||p.length||l||f)&&(u.options={...c.length&&{hiddenCaptures:c},...p.length&&{transfers:p},...l&&{strategy:l},...f&&{lazyCompile:f}})}return u}function mr(e,t){return Kt(e,{global:!0,hasIndices:!0,lazyCompileLength:3e3,rules:{allowOrphanBackrefs:!0,asciiWordBoundaries:!0,captureGroup:!0,recursionLimit:5,singleline:!0},...t})}function en(e={}){const t={target:"auto",cache:new Map,...e};return t.regexConstructor||=r=>mr(r,{target:t.target}),{createScanner(r){return new be(r,t)},createString(r){return{content:r}}}}function rn(){const e={cache:new Map,regexConstructor:()=>{throw new Error("JavaScriptRawEngine: only support precompiled grammar")}};return{createScanner(t){return new be(t,e)},createString(t){return{content:t}}}}exports.JavaScriptScanner=be;exports.createJavaScriptRawEngine=rn;exports.createJavaScriptRegexEngine=en;exports.defaultJavaScriptRegexConstructor=mr;