Files

143 lines
56 KiB
JavaScript
Raw Permalink Normal View History

2026-01-09 23:05:52 -05:00
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 a of Pr(r))!Gr.call(e,a)&&a!==t&&we(e,a,{get:()=>r[a],enumerable:!(n=Lr(r,a))||n.enumerable});return e};var Or=e=>Rr(we({},"__esModule",{value:!0}),e);var an={};Ur(an,{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),a=[n.extended],s={captureGroup:t.rules.captureGroup,getCurrentModX(){return a.at(-1)},numOpenGroups:0,popModX(){a.pop()},pushModX(l){a.push(l)},replaceCurrentModX(l){a[a.length-1]=l},singleline:t.rules.singleline},o=[],i;for(ce.lastIndex=0;i=ce.exec(e);){let l=Tr(s,e,i[0],ce.lastIndex);l.tokens?o.push(...l.tokens):l.token&&o.push(l.token),l.lastIndex!==void 0&&(ce.lastIndex=l.lastIndex)}let u=[],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});let p=c||u.length;return{tokens:o.map(l=>l.type==="EscapedNumber"?ot(l,p):l).flat(),flags:n}}function Tr(e,r,t,n){let[a,s]=t;if(t==="["||t==="[^"){let o=Br(r,t,n);return{tokens:o.tokens,lastIndex:o.lastIndex}}if(a==="\\"){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 o=Ze(t,{inCharClass:!1});return Array.isArray(o)?{tokens:o}:{token:o}}if(a==="("){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 o=r.indexOf(`
`,n);return{lastIndex:o===-1?r.length:o}}if(/^\s$/.test(t)){let o=/\s+/y;return o.lastIndex=n,{lastIndex:o.exec(r)?o.lastIndex:n}}}if(t===".")return{token:T("dot",t)};if(t==="^"||t==="$"){let o=e.singleline?{"^":x`\A`,$:x`\Z`}[t]:t;return{token:Te(o,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)],a=1,s;for(ye.lastIndex=t;s=ye.exec(e);){let o=s[0];if(o[0]==="["&&o[1]!==":")a++,n.push(Be(o[1]==="^",o));else if(o==="]"){if(n.at(-1).type==="CharacterClassOpen")n.push(N(93,o));else if(a--,n.push(Wr(o)),!a)break}else{let i=Vr(o);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(o=>parseInt(o,16)),a=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(n)),s=new TextEncoder;return[...a].map(o=>{let i=[...s.encode(o)].map(u=>`\\x${u.toString(16)}`).join("");return N(U(o),i)})}catch{throw new Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(t==="u"||t==="x")return N(at(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 a=(r.getCurrentModX()||t.includes("x"))&&!n.includes("x"),s=We(t),o=We(n),i={};if(s&&(i.enable=s),o&&(i.disable=o),e.endsWith(")"))return r.replaceCurrentModX(a),qe("flags",e,{flags:i});if(e.endsWith(":"))return r.pushModX(a),r.numOpenGroups++,X("group",e,{...(s||o)&&{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:a}=r.groups;if(!t)throw new Error(`Invalid named callout "${e}"`);if(n==="")throw new Error(`
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,o){for(let i=0;i<s.length;i++){let 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,l={node:s,parent:o,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(o,"Can't replace root node")[i]=C,I&&a(C,o,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+=a(C[S],o,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":a(s.min,s,"min"),a(s.max,s,"max");break;case"LookaroundAssertion":n(s.body,s);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,t),g?.exit?.(l,t),c}return a(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 or(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 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};V(e,Lt,s);let o={groupsByName:s.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:s.reffedNodesByReferencer};return V(e,Pt,o),e._originMap=s.groupOriginByCopy,e._strategy=n.strategy,e}var Nt={AbsenceFunction({node:e,parent:r,replaceWith:t}){let{body:n,kind:a}=e;if(a==="repeater"){let s=$();s.body[0].body.push(R({negate:!0,body:n}),B("Any"));let o=$();o.body[0].body.push(ke("greedy",0,1/0,s)),t(b(o,r),{traverse:!0})}else throw new Error('Unsupported absence function "(?~|"')},Alternative:{enter({node:e,parent:r,key:t},{flagDirectivesByAlt:n}){let a=e.body.filter(s=>s.kind==="flags");for(let s=t+1;s<r.body.length;s++){let o=r.body[s];G(n,o,[]).push(...a)}},exit({node:e},{flagDirectivesByAlt:r}){if(r.
]`:`(?>\r
?|[
\v\f\x85\u2028\u2029])`),r));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-${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:a,removeAllPrevSiblings:s,removeAllNextSiblings:o}){let{kind:i,flags:u}=e;if(i==="flags")if(!u.enable&&!u.disable)n();else{let c=$({flags:u});c.body[0].body=o(),a(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(),a(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,a=!1;for(let s of e.body)if(s.body.length===1&&s.body[0].kind==="search_start")s.body.pop();else{let o=pr(s.body);o?(n=!0,Array.isArray(o)?t.push(...o):t.push(o)):a=!0}n&&!a&&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:a}=e;n||t.set(e,[...r.get(a).map(({node:s})=>s)])},CapturingGroup:{enter({node:e,parent:r,replaceWith:t,skip:n},{groupOriginByCopy:a,groupsByName:s,multiplexCapturesToLeftByRef:o,openRefs:i,reffedNodesByReferencer:u}){let c=a.get(e);if(c&&i.has(e.number)){let l=D(ar(e.number),r);u.set(l,i.get(e.number)),t(l);return}i.set(e.number,e),o.set(e.number,[]),e.name&&G(o,e.name,[]);let p=o.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(o.get(e.number).push({node:e,origin:c}),e.name&&o.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:a,ref:s}=e;if(a){let p=r;for(;(p=p.parent)&&!(p.type==="CapturingGroup"&&(p.name===s||p.number===s)););n.reffedNodesByReferencer.set(e,p);return}let o=n.subroutineRefMap.get(s),i=s===0,u=i?ar(0):ur(o,n.groupOriginByCopy
\\(?: \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,a="",s=0,o;for(Ne.lastIndex=0;o=Ne.exec(e);){let{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=br(e,u+c.length,p,"");else{if(a===")"||a==="]"){let g=a===")"?t: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}Ne.lastIndex+=f}else i[0]==="("?r.push(u):i===")"&&(t=r.length?r.pop():null);a=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},a=r?.captureTransfers??new Map;if(!new RegExp(Ue,"su").test(e))return{pattern:e,captureTransfers:a,hiddenCaptures:t};if(n==="plugin"&&oe(e,_`\(\?\(DEFINE\)`,A.DEFAULT))throw new Error("DEFINE groups cannot be used with recursion");let s=[],o=oe(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(o)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(oe(I,Ue,A.DEFAULT))throw new Error(Ge);let k=+m-1;e=Ir(E,I,k,!1,t,s,l),a=Sr(a,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(o&&oe(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);a=Sr(a,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:a,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,a,s,o){let i=new Set;n&&Me(e+r,me,({groups:{captureName:c}})=>{i.add(c)},A.DEFAULT);let u=[t,n?i:null,a,s,o];return`${e}${$r(`(?:${e}`,"forward",...u)}(?:)${$r(`${r})`,"backward",...u)}${r}`}function $r(e,r,t,n,a,s,o){let u=p=>r==="forward"?p+2:t-p+2-1,c="";for(let p=0;p<t;p++){let l=u(p);c+=ae(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=o+s.length+1;return s.push(C),nn(a,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,a,s){if(e.size&&n){let o=0;Me(r,_r,()=>o++,A.DEFAULT);let i=s-o+a,u=new Map;return e.forEach((c,p)=>{let l=(n-o*t)/t,f=o*t,g=p>i+o?p+n:p,d=[];for(let m of c)if(m<=i)d.push(m);else if(m>i+o+l)d.push(m+n);else if(m<=i+o)for(let w=0;w<=t;w++)d.push(m+o*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){le
//# sourceMappingURL=index.min.js.map