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