oniguruma-to-es
Advanced tools
Comparing version 0.1.1 to 0.1.2
@@ -1,8 +0,8 @@ | ||
var OnigurumaToES=(()=>{var ae=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var _t=Object.getOwnPropertyNames;var kt=Object.prototype.hasOwnProperty;var St=(e,t)=>{for(var r in t)ae(e,r,{get:t[r],enumerable:!0})},yt=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of _t(t))!kt.call(e,n)&&n!==r&&ae(e,n,{get:()=>t[n],enumerable:!(s=At(t,n))||s.enumerable});return e};var xt=e=>yt(ae({},"__esModule",{value:!0}),e);var Br={};St(Br,{EmulatedRegExp:()=>se,toDetails:()=>wt,toOnigurumaAst:()=>Dr,toRegExp:()=>Mr});var X={ES2018:2018,ES2024:2024,ESNext:2025};function Z(e){if(e?.target!==void 0&&!X[e.target])throw new Error(`Unexpected target "${e.target}"`);return{accuracy:"default",avoidSubclass:!1,flags:"",global:!1,hasIndices:!1,maxRecursionDepth:6,target:"ES2024",tmGrammar:!1,verbose:!1,...e}}var A=String.fromCodePoint,f=String.raw;function U(e,{enable:t,disable:r}){return{dotAll:!r?.dotAll&&!!(t?.dotAll||e.dotAll),ignoreCase:!r?.ignoreCase&&!!(t?.ignoreCase||e.ignoreCase)}}function L(e,t,r){return e.has(t)||e.set(t,r),e.get(t)}function V(e,t){return X[e]>=X[t]}function F(e,t){if(!e)throw new Error(t??"Value expected");return e}var bt=new Set([A(304),A(305)]);function ie(e){if(bt.has(e))return[e];let t=new Set,r=e.toLowerCase(),s=r.toUpperCase(),n=It.get(r),o=Nt.get(r);return[...s].length===1&&t.add(s),t.add(r),n&&t.add(n),o&&t.add(o),[...t]}var ce=new Set(["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"]),ue=new Map;for(let e of ce)ue.set(j(e),e);var Ft=new Set(["Basic_Emoji","Emoji_Keycap_Sequence","RGI_Emoji","RGI_Emoji_Flag_Sequence","RGI_Emoji_Modifier_Sequence","RGI_Emoji_Tag_Sequence","RGI_Emoji_ZWJ_Sequence"]),le=new Map;for(let e of Ft)le.set(j(e),e);var Se=new Set("Dogr Dogra Gong Gunjala_Gondi Hanifi_Rohingya Maka Makasar Medefaidrin Medf Old_Sogdian Rohg Sogd Sogdian Sogo Extended_Pictographic Elym Elymaic Hmnp Nand Nandinagari Nyiakeng_Puachue_Hmong Wancho Wcho Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi EBase EComp EMod EPres ExtPict Cpmn Cypro_Minoan Old_Uyghur Ougr Tangsa Tnsa Toto Vith Vithkuqi Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sunu Sunuwar Todhri Todr Tulu_Tigalari Tutg Unknown Zzzz".split(" ")),Nt=new Map([[A(223),A(7838)],[A(107),A(8490)],[A(229),A(8491)],[A(969),A(8486)]]),It=new Map([T(453),T(456),T(459),T(498),...oe(8072,8079),...oe(8088,8095),...oe(8104,8111),T(8124),T(8140),T(8188)]),J=new Map([["alnum",f`[\p{Alpha}\p{Nd}]`],["alpha",f`\p{Alpha}`],["ascii",f`\p{ASCII}`],["blank",f`[\p{Zs}\t]`],["cntrl",f`\p{cntrl}`],["digit",f`\p{Nd}`],["graph",f`[\P{space}&&\P{cntrl}&&\P{Cn}&&\P{Cs}]`],["lower",f`\p{Lower}`],["print",f`[[\P{space}&&\P{cntrl}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],["punct",f`[\p{P}\p{S}]`],["space",f`\p{space}`],["upper",f`\p{Upper}`],["word",f`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],["xdigit",f`\p{AHex}`]]),ye=new Set(["alnum","blank","graph","print","word","xdigit"]);function $t(e,t){let r=[];for(let s=e;s<=t;s++)r.push(s);return r}function j(e){return e.replace(/[- _]+/g,"").toLowerCase()}function T(e){let t=A(e);return[t.toLowerCase(),t]}function oe(e,t){return $t(e,t).map(r=>T(r))}var pe=new Set(["Lower","Lowercase","Upper","Uppercase","Ll","Lowercase_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter"]);var h={Alternator:"Alternator",Assertion:"Assertion",Backreference:"Backreference",Character:"Character",CharacterClassClose:"CharacterClassClose",CharacterClassHyphen:"CharacterClassHyphen",CharacterClassIntersector:"CharacterClassIntersector",CharacterClassOpen:"CharacterClassOpen",CharacterSet:"CharacterSet",Directive:"Directive",GroupClose:"GroupClose",GroupOpen:"GroupOpen",Subroutine:"Subroutine",Quantifier:"Quantifier",VariableLengthCharacterSet:"VariableLengthCharacterSet",EscapedNumber:"EscapedNumber"},_={any:"any",digit:"digit",dot:"dot",hex:"hex",non_newline:"non_newline",posix:"posix",property:"property",space:"space",word:"word"},H={flags:"flags",keep:"keep"},S={atomic:"atomic",capturing:"capturing",group:"group",lookahead:"lookahead",lookbehind:"lookbehind"},xe=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]),Ne="c.? | C(?:-.?)?",Ie=f`[pP]\{(?:\^?[\x20\w]+\})?`,$e=f`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`,ve=f`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`,Pe=f`\d{1,3}`,Ge=f`\[\^?\]?`,Te=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,Y=new RegExp(f` | ||
var OnigurumaToES=(()=>{var oe=Object.defineProperty;var St=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var xt=Object.prototype.hasOwnProperty;var bt=(e,t)=>{for(var n in t)oe(e,n,{get:t[n],enumerable:!0})},Ft=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of yt(t))!xt.call(e,s)&&s!==n&&oe(e,s,{get:()=>t[s],enumerable:!(a=St(t,s))||a.enumerable});return e};var Nt=e=>Ft(oe({},"__esModule",{value:!0}),e);var jr={};bt(jr,{EmulatedRegExp:()=>ae,toDetails:()=>kt,toOnigurumaAst:()=>Br,toRegExp:()=>Vr});var Z={ES2018:2018,ES2024:2024,ES2025:2025};function J(e){if(e?.target!==void 0&&!Z[e.target])throw new Error(`Unexpected target "${e.target}"`);return{accuracy:"default",avoidSubclass:!1,flags:"",global:!1,hasIndices:!1,maxRecursionDepth:6,target:"ES2024",tmGrammar:!1,verbose:!1,...e}}var _=String.fromCodePoint,g=String.raw;function M(e,{enable:t,disable:n}){return{dotAll:!n?.dotAll&&!!(t?.dotAll||e.dotAll),ignoreCase:!n?.ignoreCase&&!!(t?.ignoreCase||e.ignoreCase)}}function O(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}function j(e,t){return Z[e]>=Z[t]}function N(e,t){if(!e)throw new Error(t??"Value expected");return e}var It=new Set([_(304),_(305)]);function ce(e){if(It.has(e))return[e];let t=new Set,n=e.toLowerCase(),a=n.toUpperCase(),s=Pt.get(n),i=vt.get(n);return[...a].length===1&&t.add(a),t.add(n),s&&t.add(s),i&&t.add(i),[...t]}var ue=new Set(["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"]),le=new Map;for(let e of ue)le.set(K(e),e);var $t=new Set(["Basic_Emoji","Emoji_Keycap_Sequence","RGI_Emoji","RGI_Emoji_Flag_Sequence","RGI_Emoji_Modifier_Sequence","RGI_Emoji_Tag_Sequence","RGI_Emoji_ZWJ_Sequence"]),pe=new Map;for(let e of $t)pe.set(K(e),e);var ye=new Set("Dogr Dogra Gong Gunjala_Gondi Hanifi_Rohingya Maka Makasar Medefaidrin Medf Old_Sogdian Rohg Sogd Sogdian Sogo Extended_Pictographic Elym Elymaic Hmnp Nand Nandinagari Nyiakeng_Puachue_Hmong Wancho Wcho Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi EBase EComp EMod EPres ExtPict Cpmn Cypro_Minoan Old_Uyghur Ougr Tangsa Tnsa Toto Vith Vithkuqi Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sunu Sunuwar Todhri Todr Tulu_Tigalari Tutg Unknown Zzzz".split(" ")),vt=new Map([[_(223),_(7838)],[_(107),_(8490)],[_(229),_(8491)],[_(969),_(8486)]]),Pt=new Map([L(453),L(456),L(459),L(498),...ie(8072,8079),...ie(8088,8095),...ie(8104,8111),L(8124),L(8140),L(8188)]),Y=new Map([["alnum",g`[\p{Alpha}\p{Nd}]`],["alpha",g`\p{Alpha}`],["ascii",g`\p{ASCII}`],["blank",g`[\p{Zs}\t]`],["cntrl",g`\p{cntrl}`],["digit",g`\p{Nd}`],["graph",g`[\P{space}&&\P{cntrl}&&\P{Cn}&&\P{Cs}]`],["lower",g`\p{Lower}`],["print",g`[[\P{space}&&\P{cntrl}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],["punct",g`[\p{P}\p{S}]`],["space",g`\p{space}`],["upper",g`\p{Upper}`],["word",g`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],["xdigit",g`\p{AHex}`]]),xe=new Set(["alnum","blank","graph","print","word","xdigit"]);function Gt(e,t){let n=[];for(let a=e;a<=t;a++)n.push(a);return n}function K(e){return e.replace(/[- _]+/g,"").toLowerCase()}function L(e){let t=_(e);return[t.toLowerCase(),t]}function ie(e,t){return Gt(e,t).map(n=>L(n))}var fe=new Set(["Lower","Lowercase","Upper","Uppercase","Ll","Lowercase_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter"]);var d={Alternator:"Alternator",Assertion:"Assertion",Backreference:"Backreference",Character:"Character",CharacterClassClose:"CharacterClassClose",CharacterClassHyphen:"CharacterClassHyphen",CharacterClassIntersector:"CharacterClassIntersector",CharacterClassOpen:"CharacterClassOpen",CharacterSet:"CharacterSet",Directive:"Directive",GroupClose:"GroupClose",GroupOpen:"GroupOpen",Subroutine:"Subroutine",Quantifier:"Quantifier",VariableLengthCharacterSet:"VariableLengthCharacterSet",EscapedNumber:"EscapedNumber"},k={any:"any",digit:"digit",dot:"dot",hex:"hex",non_newline:"non_newline",posix:"posix",property:"property",space:"space",word:"word"},H={flags:"flags",keep:"keep"},y={atomic:"atomic",capturing:"capturing",group:"group",lookahead:"lookahead",lookbehind:"lookbehind"},be=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]),Ie="c.? | C(?:-.?)?",$e=g`[pP]\{(?:\^?[\x20\w]+\})?`,ve=g`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`,Pe=g`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`,Ge=g`\d{1,3}`,Te=g`\[\^?\]?`,Le=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,ee=new RegExp(g` | ||
\\ (?: | ||
${Ne} | ||
| ${Ie} | ||
${Ie} | ||
| ${$e} | ||
| ${ve} | ||
| ${Pe} | ||
| ${Ge} | ||
| [gk]<[^>]*>? | ||
@@ -20,25 +20,25 @@ | [gk]'[^']*'? | ||
)?)? | ||
| ${Te.source} | ||
| ${Ge} | ||
| ${Le.source} | ||
| ${Te} | ||
| . | ||
`.replace(/\s+/g,""),"gsu"),fe=new RegExp(f` | ||
`.replace(/\s+/g,""),"gsu"),ge=new RegExp(g` | ||
\\ (?: | ||
${Ne} | ||
| ${Ie} | ||
${Ie} | ||
| ${$e} | ||
| ${ve} | ||
| ${Pe} | ||
| ${Ge} | ||
| . | ||
) | ||
| \[:[^:]*:\] | ||
| ${Ge} | ||
| ${Te} | ||
| && | ||
| . | ||
`.replace(/\s+/g,""),"gsu");function K(e,t=""){if(typeof e!="string")throw new Error("String expected as pattern");if(!/^[imx]*$/.test(t))throw new Error(`Flags "${t}" unsupported in Oniguruma`);let r=[t.includes("x")],s={getCurrentModX:()=>r.at(-1),numOpenGroups:0,popModX(){r.pop()},pushModX(c){r.push(c)},replaceCurrentModX(c){r[r.length-1]=c}},n=[],o;for(Y.lastIndex=0;o=Y.exec(e);){let c=vt(s,e,o[0],Y.lastIndex);c.tokens?n.push(...c.tokens):c.token&&n.push(c.token),c.lastIndex!==void 0&&(Y.lastIndex=c.lastIndex)}let a=[],i=0;n.forEach(c=>{c.type===h.GroupOpen&&(c.kind===S.capturing?(i++,c.number=i):c.raw==="("&&a.push(c))}),i||a.forEach((c,p)=>{c.kind=S.capturing,c.number=p+1});let u=i||a.length;return n=n.map(c=>c.type===h.EscapedNumber?Mt(c,u):c).flat(),{tokens:n,flags:{ignoreCase:t.includes("i"),dotAll:t.includes("m"),extended:t.includes("x")}}}function vt(e,t,r,s){let[n,o,a]=r;if(n==="["){let i=Pt(t,r,s);return{tokens:i.tokens,lastIndex:i.lastIndex}}if(n==="\\"){if("AbBGzZ".includes(o))return{token:m(h.Assertion,r,{kind:r})};if(/^\\g[<']/.test(r)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(r))throw new Error(`Invalid group name "${r}"`);return{token:m(h.Subroutine,r)}}if(/^\\k[<']/.test(r)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(r))throw new Error(`Invalid group name "${r}"`);return{token:m(h.Backreference,r)}}if(o==="K")return{token:m(h.Directive,r,{kind:H.keep})};if(o==="N")return{token:m(h.CharacterSet,r,{kind:_.non_newline})};if(o==="O")return{token:m(h.CharacterSet,r,{kind:_.any})};if("RX".includes(o))return{token:m(h.VariableLengthCharacterSet,r,{kind:r})};let i=Le(r,{inCharClass:!1});return Array.isArray(i)?{tokens:i}:{token:i}}if(n==="("){if(a==="#"){if(t[s]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:s+1}}if("-imx".includes(a))return{token:Lt(r,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,r==="("||r==="(?:")return{token:m(h.GroupOpen,r,{kind:S.group})};if(r==="(?>")return{token:m(h.GroupOpen,r,{kind:S.atomic})};if(r==="(?="||r==="(?!"||r==="(?<="||r==="(?<!")return{token:m(h.GroupOpen,r,{kind:a==="<"?S.lookbehind:S.lookahead,negate:r.endsWith("!")})};if(a==="<"||a==="'")return{token:m(h.GroupOpen,r,{kind:S.capturing,name:r.slice(3,-1)})};throw a==="("?new Error(`Unsupported conditional "${r}"`):a==="~"?new Error(`Unsupported absence operator "${r}"`):r==="(?"?new Error("Invalid group"):new Error(`Unexpected group "${r}"`)}if(r===")"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched ")"');return{token:m(h.GroupClose,r)}}if(r==="#"&&e.getCurrentModX()){let i=t.indexOf(` | ||
`,s);return{lastIndex:i===-1?t.length:i}}if(/^\s$/.test(r)&&e.getCurrentModX()){let i=/\s+/y;return i.lastIndex=s,{lastIndex:i.exec(t)?i.lastIndex:s}}return r==="."?{token:m(h.CharacterSet,r,{kind:_.dot})}:r==="^"||r==="$"?{token:m(h.Assertion,r,{kind:r})}:r==="|"?{token:m(h.Alternator,r)}:Te.test(r)?{token:Rt(r)}:(Re(r),{token:m(h.Character,r,{value:r.codePointAt(0)})})}function Pt(e,t,r){Fe(t);let s=[m(h.CharacterClassOpen,t,{negate:t[1]==="^"})],n=1,o;for(fe.lastIndex=r;o=fe.exec(e);){let a=o[0];if(a[0]==="["&&a[1]!==":")Fe(a),n++,s.push(m(h.CharacterClassOpen,a,{negate:a[1]==="^"}));else if(a==="]"){if(n--,s.push(m(h.CharacterClassClose,a)),!n)break}else{let i=Gt(a);Array.isArray(i)?s.push(...i):s.push(i)}}return{tokens:s,lastIndex:fe.lastIndex||e.length}}function Gt(e){if(e[0]==="\\")return Le(e,{inCharClass:!0});if(e[0]==="["){let t=/\[:(?<negate>\^?)(?<name>[a-z]+):\]/.exec(e);if(!t||!J.get(t.groups.name))throw new Error(`Invalid POSIX class "${e}"`);return m(h.CharacterSet,e,{kind:_.posix,negate:!!t.groups.negate,value:t.groups.name})}return e==="-"?m(h.CharacterClassHyphen,e):e==="&&"?m(h.CharacterClassIntersector,e):(Re(e),m(h.Character,e,{value:e.codePointAt(0)}))}function Le(e,{inCharClass:t}){let r=e[1];if(r==="c"||r==="C")return Tt(e);if("dDhHsSwW".includes(r))return Ot(e);if(/^\\[pP]\{/.test(e)){if(e.length===3)throw new Error("Incomplete or invalid Unicode property");return Ut(e)}if(/^\\x[89A-Fa-f]\p{AHex}/u.test(e))try{let s=e.split(/\\x/).slice(1).map(i=>parseInt(i,16)),n=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(s)),o=new TextEncoder;return[...n].map(i=>{let u=[...o.encode(i)].map(c=>`\\x${c.toString(16)}`).join("");return m(h.Character,u,{value:i.codePointAt(0)})})}catch{throw new Error(`Too short or invalid multibyte code "${e}"`)}if(r==="u"||r==="x")return m(h.Character,e,{value:Dt(e)});if(xe.has(r))return m(h.Character,e,{value:xe.get(r)});if(/\d/.test(r))return m(h.EscapedNumber,e,{inCharClass:t});if(e==="\\")throw new Error(f`Incomplete escape "\"`);if(r==="M")throw new Error(`Unsupported meta "${e}"`);if([...e].length===2)return m(h.Character,e,{value:e.codePointAt(1)});throw new Error(`Unexpected escape "${e}"`)}function m(e,t,r){return{type:e,raw:t,...r}}function Tt(e){let t=e[1]==="c"?e[2]:e[3];if(!t||!/[A-Za-z]/.test(t))throw new Error(`Unsupported control character "${e}"`);return m(h.Character,e,{value:t.toUpperCase().codePointAt(0)-64})}function Lt(e,t){let{on:r,off:s}=/^\(\?(?<on>[imx]*)(?:-(?<off>[imx\-]*))?/.exec(e).groups;s??="";let n=(t.getCurrentModX()||r.includes("x"))&&!s.includes("x"),o=be(r),a=be(s),i={};if(o&&(i.enable=o),a&&(i.disable=a),e.endsWith(")"))return t.replaceCurrentModX(n),m(h.Directive,e,{kind:H.flags,flags:i});if(e.endsWith(":")){t.pushModX(n),t.numOpenGroups++;let u=m(h.GroupOpen,e,{kind:S.group});return(o||a)&&(u.flags=i),u}throw new Error(`Unexpected flag modifier "${e}"`)}function Rt(e){let t={};if(e[0]==="{"){let{min:r,max:s}=/^\{(?<min>\d*)(?:,(?<max>\d*))?/.exec(e).groups,n=1e5;if(+r>n||+s>n)throw new Error("Quantifier value unsupported in Oniguruma");t.min=+r,t.max=s===void 0?+r:s===""?1/0:+s,t.greedy=!e.endsWith("?"),t.possessive=!1}else t.min=e[0]==="+"?1:0,t.max=e[0]==="?"?1:1/0,t.greedy=e[1]!=="?",t.possessive=e[1]==="+";return m(h.Quantifier,e,t)}function Ot(e){let t=e[1].toLowerCase();return m(h.CharacterSet,e,{kind:{d:_.digit,h:_.hex,s:_.space,w:_.word}[t],negate:e[1]!==t})}function Ut(e){let{p:t,neg:r,value:s}=/^\\(?<p>[pP])\{(?<neg>\^?)(?<value>[ \w]+)/.exec(e).groups,n=t==="P"&&!r||t==="p"&&!!r;return m(h.CharacterSet,e,{kind:_.property,negate:n,value:s})}function be(e){let 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 Dt(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 t=e[2]==="{"?/^\\x\{\s*(?<hex>\p{AHex}+)/u.exec(e).groups.hex:e.slice(2),r=parseInt(t,16);if(r>127&&/^\\x\p{AHex}/u.test(e))throw new Error(f`\xNN above 7F unsupported in Oniguruma "${e}"`);if(r>1310719)throw new Error(`Invalid out of range "${e}"`);if(r>1114111)throw new Error(`Invalid out of range in JS "${e}"`);return r}function Mt(e,t){let{raw:r,inCharClass:s}=e,n=r.slice(1);if(!s&&(n!=="0"&&n.length===1||n[0]!=="0"&&+n<=t))return[m(h.Backreference,r)];let o=[],a=n.match(/^[0-7]+|\d/g);for(let i=0;i<a.length;i++){let u=a[i],c=i===0&&u!=="8"&&u!=="9"?parseInt(u,8):u.codePointAt(0);o.push(m(h.Character,(i===0?"\\":"")+u,{value:c}))}return o}function Fe(e){if(e.endsWith("]"))throw new Error(`Empty character class "${e}" unsupported in Oniguruma`)}function Re(e){if([...e].length!==1)throw new Error(`Expected "${e}" to be a single code point`)}function P(e,t,r){let s=e.node;for(;s.parent;)s=s.parent;function n(a,i){for(let u=0;u<a.length;u++){let c=o(a[u],i,u,a);u=Math.max(-1,u+c)}}function o(a,i=null,u=null,c=null){let p=0,g=!1,C={node:a,parent:i,key:u,container:c,ast:s,remove(){F(c,"Container expected").splice(Math.max(0,u+p),1),p-=1},removeAllNextSiblings(){return F(c,"Container expected").splice(u+1)},removeAllPrevSiblings(){let G=u+p;return p-=G,F(c,"Container expected").splice(0,Math.max(0,G))},replaceWith(G){Bt(G,i),c?c[Math.max(0,u+p)]=G:i[u]=G},skip(){g=!0}},d=Oe(a).find(G=>!!r[G]),w=d&&r[d],k=typeof w=="function"?w:w?.enter,b=w?.exit;if(k?.(C,t),!g)switch(a.type){case l.Regex:o(a.pattern,a,"pattern"),o(a.flags,a,"flags");break;case l.Alternative:case l.CharacterClass:n(a.elements,a);break;case l.Assertion:N(a)&&n(a.alternatives,a);break;case l.Backreference:case l.Character:case l.CharacterSet:case l.Directive:case l.Flags:case l.Recursion:case l.Subroutine:case l.VariableLengthCharacterSet:break;case l.CapturingGroup:case l.Group:case l.Pattern:n(a.alternatives,a);break;case l.CharacterClassIntersection:n(a.classes,a);break;case l.CharacterClassRange:o(a.min,a,"min"),o(a.max,a,"max");break;case l.Quantifier:o(a.element,a,"element");break;default:throw new Error(`Unexpected node type "${a.type}"`)}return b?.(C,t),p}o(e.node,e.parent,e.key,e.container)}function Bt(e,t){"parent"in t&&(e.parent=t)}var l={Alternative:"Alternative",Assertion:"Assertion",Backreference:"Backreference",CapturingGroup:"CapturingGroup",Character:"Character",CharacterClass:"CharacterClass",CharacterClassIntersection:"CharacterClassIntersection",CharacterClassRange:"CharacterClassRange",CharacterSet:"CharacterSet",Directive:"Directive",Flags:"Flags",Group:"Group",Pattern:"Pattern",Quantifier:"Quantifier",Regex:"Regex",Subroutine:"Subroutine",VariableLengthCharacterSet:"VariableLengthCharacterSet",Recursion:"Recursion"},Ue={AnyGroup:"AnyGroup",AnyNode:"AnyNode"};function Oe(e){let{type:t}=e,r=[Ue.AnyNode];return(N(e)||t===l.CapturingGroup||t===l.Group)&&r.push(Ue.AnyGroup),r.push(t),r}var E={line_end:"line_end",line_start:"line_start",lookahead:"lookahead",lookbehind:"lookbehind",search_start:"search_start",string_end:"string_end",string_end_newline:"string_end_newline",string_start:"string_start",word_boundary:"word_boundary"},y=_,W=H,Q={grapheme:"grapheme",newline:"newline"};function q({tokens:e,flags:t},r){let s={skipBackrefValidation:!1,skipPropertyNameValidation:!1,verbose:!1,...r},n={capturingGroups:[],current:0,hasNumberedRef:!1,namedGroupsByName:new Map,parent:null,skipBackrefValidation:s.skipBackrefValidation,skipPropertyNameValidation:s.skipPropertyNameValidation,subroutines:[],token:null,tokens:e,verbose:s.verbose,walk:o};function o(C,d){let w=e[n.current];switch(n.parent=C,n.token=w,n.current++,w.type){case h.Alternator:return $();case h.Assertion:return Be(w);case h.Backreference:return Vt(n);case h.Character:return Ve(w.value);case h.CharacterClassHyphen:return jt(n,d);case h.CharacterClassOpen:return Ht(n,d);case h.CharacterSet:return Kt(n);case h.Directive:return Jt(w);case h.GroupOpen:return Qt(n,d);case h.Quantifier:return Wt(n);case h.Subroutine:return qt(n);case h.VariableLengthCharacterSet:return sr(w.kind);default:throw new Error(`Unexpected token type "${w.type}"`)}}let a=rr(er(),Yt(t)),i=a.pattern.alternatives[0];for(;n.current<e.length;){let C=o(i,{});C.type===l.Alternative?(a.pattern.alternatives.push(C),i=C):i.elements.push(C)}let{capturingGroups:u,hasNumberedRef:c,namedGroupsByName:p,subroutines:g}=n;if(c&&p.size)throw new Error("Numbered backref/subroutine not allowed when using named capture");for(let{ref:C}of g)if(typeof C=="number"){if(C>u.length)throw new Error("Subroutine uses a group number that's not defined")}else if(p.has(C)){if(p.get(C).length>1)throw new Error(f`Subroutine uses a duplicate group name "\g<${C}>"`)}else throw new Error(f`Subroutine uses a group name that's not defined "\g<${C}>"`);return P({node:a},null,{AnyNode({node:C,parent:d}){C.parent=d}}),a}function Vt(e){let{raw:t}=e.token,r=/^\\k[<']/.test(t),s=r?t.slice(3,-1):t.slice(1),n=(o,a=!1)=>{let i=e.capturingGroups.length,u=!1;if(o>i)if(e.skipBackrefValidation)u=!0;else throw new Error(`Not enough capturing groups defined to the left "${t}"`);return e.hasNumberedRef=!0,ee(a?i+1-o:o,{orphan:u})};if(r){let o=/^(?<sign>-?)0*(?<num>[1-9]\d*)$/.exec(s);if(o)return n(+o.groups.num,!!o.groups.sign);if(/[-+]/.test(s))throw new Error(`Invalid backref name "${t}"`);if(!e.namedGroupsByName.has(s))throw new Error(`Group name not defined to the left "${t}"`);return ee(s)}return n(+s)}function jt(e,t){let{parent:r,tokens:s,walk:n}=e,o=r.elements.at(-1),a=s[e.current];if(o&&o.type!==l.CharacterClass&&o.type!==l.CharacterClassRange&&a&&a.type!==h.CharacterClassOpen&&a.type!==h.CharacterClassClose&&a.type!==h.CharacterClassIntersector){let i=n(r,t);if(o.type===l.Character&&i.type===l.Character)return r.elements.pop(),Zt(o,i);throw new Error("Invalid character class range")}return Ve(45)}function Ht(e,t){let{token:r,tokens:s,verbose:n,walk:o}=e,a=ge({negate:r.negate}),i=a.elements[0],u=De(s[e.current]);for(;u.type!==h.CharacterClassClose;){if(u.type===h.CharacterClassIntersector)i.classes.push(ge({negate:!1,baseOnly:!0})),e.current++;else{let c=i.classes.at(-1);c.elements.push(o(c,t))}u=De(s[e.current])}if(n||cr(i),i.classes.length===1){let c=i.classes[0];c.negate=a.negate!==c.negate,a=c}return e.current++,a}function Kt({token:e,skipPropertyNameValidation:t}){let{kind:r,negate:s,value:n}=e;if(r===_.property){let a=j(n);if(ye.has(a))r=_.posix,n=a;else return D(n,{negate:s,skipPropertyNameValidation:t})}let o={type:l.CharacterSet,kind:F(y[r],`Unexpected character set kind "${r}"`)};return(r===_.digit||r===_.hex||r===_.posix||r===_.space||r===_.word)&&(o.negate=s,r===_.posix&&(o.value=n)),o}function Qt(e,t){let{token:r,tokens:s,capturingGroups:n,namedGroupsByName:o,verbose:a,walk:i}=e,u=zt(r);u.type===l.CapturingGroup&&(n.push(u),u.name&&L(o,u.name,[]).push(u));let c=Me(s[e.current]);for(;c.type!==h.GroupClose;){if(c.type===h.Alternator)u.alternatives.push($()),e.current++;else{let p=u.alternatives.at(-1);p.elements.push(i(p,t))}c=Me(s[e.current])}return a||(u=or(u)),e.current++,u}function Wt({token:e,parent:t}){let{min:r,max:s,greedy:n,possessive:o}=e,a=t.elements.at(-1);if(!a||a.type===l.Assertion||a.type===l.Directive)throw new Error("Quantifier requires a repeatable token");let i=tr(a,r,s,n,o);return t.elements.pop(),i}function qt(e){let{token:t,capturingGroups:r,subroutines:s}=e,n=t.raw.slice(3,-1),o=/^(?<sign>[-+]?)0*(?<num>[1-9]\d*)$/.exec(n);if(o){let i=+o.groups.num,u=r.length;if(e.hasNumberedRef=!0,n={"":i,"+":u+i,"-":u+1-i}[o.groups.sign],n<1)throw new Error("Invalid subroutine number")}else n==="0"&&(n=0);let a=nr(n);return s.push(a),a}function $(){return{type:l.Alternative,elements:[]}}function Be({type:e,kind:t,negate:r}){if(e===h.GroupOpen)return te({behind:t===S.lookbehind,negate:r});let s=F({"^":E.line_start,$:E.line_end,"\\A":E.string_start,"\\b":E.word_boundary,"\\B":E.word_boundary,"\\G":E.search_start,"\\z":E.string_end,"\\Z":E.string_end_newline}[t],`Unexpected assertion kind "${t}"`),n={type:l.Assertion,kind:s};return s===E.word_boundary&&(n.negate=t===f`\B`),n}function ee(e,{orphan:t}={}){return{type:l.Backreference,...t&&{orphan:t},ref:e}}function zt(e){let{kind:t,number:r,name:s,flags:n}=e;switch(t){case S.atomic:return I({atomic:!0});case S.capturing:return he(r,s);case S.group:return I({flags:n});case S.lookahead:case S.lookbehind:return Be(e);default:throw new Error(`Unexpected group kind "${t}"`)}}function he(e,t){let r=t!==void 0;if(r&&!ir(t))throw new Error(`Group name "${t}" invalid in Oniguruma`);return{type:l.CapturingGroup,number:e,...r&&{name:t},alternatives:[$()]}}function Ve(e){return{type:l.Character,value:e}}function ge(e){let t={baseOnly:!1,negate:!1,...e};return{type:l.CharacterClass,negate:t.negate,elements:t.baseOnly?[]:[Xt()]}}function Xt(){return{type:l.CharacterClassIntersection,classes:[ge({negate:!1,baseOnly:!0})]}}function Zt(e,t){if(t.value<e.value)throw new Error("Character class range out of order");return{type:l.CharacterClassRange,min:e,max:t}}function Jt({kind:e,flags:t}){let r={type:l.Directive,kind:F(W[e],`Unexpected directive kind "${e}"`)};return e===H.flags&&(r.flags=t),r}function Yt({ignoreCase:e,dotAll:t,extended:r}){return{type:l.Flags,ignoreCase:e,dotAll:t,extended:r}}function I({atomic:e,flags:t}={}){return{type:l.Group,...e&&{atomic:e},...t&&{flags:t},alternatives:[$()]}}function te({behind:e=!1,negate:t=!1}={}){return{type:l.Assertion,kind:e?E.lookbehind:E.lookahead,negate:t,alternatives:[$()]}}function er(){return{type:l.Pattern,alternatives:[$()]}}function tr(e,t,r,s,n){if(r<t)throw new Error("Quantifier range out of order");return{type:l.Quantifier,min:t,max:r,greedy:s,possessive:n,element:e}}function rr(e,t){return{type:l.Regex,pattern:e,flags:t}}function nr(e){return{type:l.Subroutine,ref:e}}function D(e,t){let r={negate:!1,skipPropertyNameValidation:!1,...t};return{type:l.CharacterSet,kind:y.property,value:r.skipPropertyNameValidation?e:ar(e),negate:r.negate}}function sr(e){return{type:l.VariableLengthCharacterSet,kind:F({"\\R":Q.newline,"\\X":Q.grapheme}[e],`Unexpected varcharset kind "${e}"`)}}function ar(e){let t=j(e);if(le.has(t))throw new Error(f`Unicode property "\p{${e}}" unsupported in Oniguruma`);let r=ue.get(t);return r||e.trim().replace(/\s+/g,"_").replace(/[A-Z][a-z]+(?=[A-Z])/g,"$&_").replace(/[A-Za-z]+/g,s=>s[0].toUpperCase()+s.slice(1).toLowerCase())}function or(e){let t=e.alternatives[0],r=t.elements[0];return e.type===l.Group&&e.alternatives.length===1&&t.elements.length===1&&r.type===l.Group&&!(e.atomic&&r.flags)&&!(e.flags&&(r.atomic||r.flags))?(e.atomic?r.atomic=!0:e.flags&&(r.flags=e.flags),r):e}function N({type:e,kind:t}){return e===l.Assertion&&(t===E.lookahead||t===E.lookbehind)}function ir(e){return!/^(?:[-\d]|$)/.test(e)}function cr(e){for(let t=0;t<e.classes.length;t++){let r=e.classes[t],s=r.elements[0];r.elements.length===1&&s.type===l.CharacterClass&&(e.classes[t]=s,s.negate=r.negate!==s.negate)}}function De(e){return F(e,"Unclosed character class")}function Me(e){return F(e,"Unclosed group")}var de=String.raw,je=de`(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})`,He=de`\u{E0061}-\u{E007A}`,Ke=()=>new RegExp(de`[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[${He}]{2}[\u{E0030}-\u{E0039}${He}]{1,3}\u{E007F}|${je}(?:\u200D${je})*`,"gu");function We(e,t){let r={accuracy:"default",avoidSubclass:!1,bestEffortTarget:"ESNext",...t},s=r.avoidSubclass?null:lr(e,r.accuracy),n={accuracy:r.accuracy,flagDirectivesByAlt:new Map,minTargetEs2024:V(r.bestEffortTarget,"ES2024"),subroutineRefMap:new Map,supportedGNodes:new Set};P({node:e},n,qe);let o={dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},a={currentFlags:o,prevFlags:null,globalFlags:o,groupOriginByCopy:new Map,groupsWithDuplicateNamesToRemove:new Set,multiplexCapturesToLeftByRef:new Map,namedGroupsInScopeByAlt:new Map,openDirectCaptures:new Set,openSubroutineRefs:new Set,reffedNodesByBackreference:new Map,subroutineRefMap:n.subroutineRefMap};P({node:e},a,ze);let i={groupsWithDuplicateNamesToRemove:a.groupsWithDuplicateNamesToRemove,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByBackreference:a.reffedNodesByBackreference};return P({node:e},i,ur),s&&(e._strategy=s),e}var qe={Alternative:{enter({node:e,parent:t,key:r},{flagDirectivesByAlt:s}){let n=e.elements.filter(o=>o.kind===W.flags);for(let o=r+1;o<t.alternatives.length;o++){let a=t.alternatives[o];L(s,a,[]).push(...n)}},exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){let r=Ze(t.get(e));if(r){let s=z(I({flags:r}),e.elements);s.parent=e,e.elements=[s]}}}},Assertion({node:e,ast:t,remove:r,replaceWith:s},{accuracy:n,supportedGNodes:o}){let{kind:a,negate:i}=e;if(a===E.line_end)s(v(f`(?=\z|\n)`));else if(a===E.line_start)s(v(f`(?<=\A|\n)`));else if(a===E.search_start){if(!o.has(e)&&n!=="loose")throw new Error(f`Uses "\G" in a way that's unsupported`);t.flags.sticky=!0,r()}else if(a===E.string_end_newline)s(v(f`(?=\n?\z)`));else if(a===E.word_boundary){let u=f`[\p{L}\p{N}\p{Pc}]`,c=`(?:(?<=${u})(?!${u})|(?<!${u})(?=${u}))`,p=`(?:(?<=${u})(?=${u})|(?<!${u})(?!${u}))`;s(v(i?p:c))}},CapturingGroup({node:e},{subroutineRefMap:t}){let{name:r,number:s}=e;if(r&&!dr(r))throw new Error(`Group name "${r}" invalid in JS`);t.set(r??s,e)},CharacterSet({node:e,replaceWith:t},{accuracy:r,minTargetEs2024:s}){let{kind:n,negate:o,value:a}=e;if(n===y.any)t(D("Any"));else if(n===y.hex)t(D("AHex",{negate:o}));else if(n===y.non_newline)t(v(f`[^\n]`));else if(n===y.posix)if(!s&&(a==="graph"||a==="print")){if(r==="strict")throw new Error(`POSIX class "${a}" requires min target ES2024 or non-strict accuracy`);let i={graph:"!-~",print:" -~"}[a];o&&(i=`\0-${A(i.codePointAt(0)-1)}${A(i.codePointAt(2)+1)}-\u{10FFFF}`),t(v(`[${i}]`))}else{let i=v(J.get(a));i.negate=o,t(i)}else if(n===y.property)ce.has(a)||(e.key="sc");else if(n===y.space){let i=v(`[ | ||
\v\f\r]`);i.negate=o,t(i)}},Directive(e,t){let{node:r,parent:s,ast:n,remove:o,replaceWith:a,removeAllPrevSiblings:i,removeAllNextSiblings:u}=e,{kind:c,flags:p}=r;if(c===W.flags)if(!p.enable&&!p.disable)o();else{let g=z(I({flags:p}),u());a(g),tt(g,e,t,qe)}else if(c===W.keep){if(s.parent!==n.pattern||n.pattern.alternatives.length>1)throw new Error(f`Uses "\K" in a way that's unsupported`);a(z(te({behind:!0}),i()))}},Flags({node:e,parent:t}){delete e.extended,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;let{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},Pattern({node:e},{accuracy:t,supportedGNodes:r}){let s=[],n=!1,o=!1;for(let a of e.alternatives){let i=Ye(a.elements);i?(n=!0,Array.isArray(i)?s.push(...i):s.push(i)):o=!0}if(n&&o&&t!=="loose")throw new Error(f`Uses "\G" in a way that's unsupported`);s.forEach(a=>r.add(a))},Quantifier({node:e}){if(e.element.type===l.Quantifier){let t=z(I(),[e.element]);t.parent=e,e.element=t}},VariableLengthCharacterSet({node:e,replaceWith:t},{accuracy:r,minTargetEs2024:s}){let{kind:n}=e;if(n===Q.newline)t(v(`(?>\r | ||
`.replace(/\s+/g,""),"gsu");function Q(e,t=""){if(typeof e!="string")throw new Error("String expected as pattern");if(!/^[imx]*$/.test(t))throw new Error(`Flags "${t}" unsupported in Oniguruma`);let n=[t.includes("x")],a={getCurrentModX:()=>n.at(-1),numOpenGroups:0,popModX(){n.pop()},pushModX(l){n.push(l)},replaceCurrentModX(l){n[n.length-1]=l}},s=[],i;for(ee.lastIndex=0;i=ee.exec(e);){let l=Tt(a,e,i[0],ee.lastIndex);l.tokens?s.push(...l.tokens):l.token&&s.push(l.token),l.lastIndex!==void 0&&(ee.lastIndex=l.lastIndex)}let o=[],c=0;s.forEach(l=>{l.type===d.GroupOpen&&(l.kind===y.capturing?(c++,l.number=c):l.raw==="("&&o.push(l))}),c||o.forEach((l,f)=>{l.kind=y.capturing,l.number=f+1});let u=c||o.length;return s=s.map(l=>l.type===d.EscapedNumber?jt(l,u):l).flat(),{tokens:s,flags:{ignoreCase:t.includes("i"),dotAll:t.includes("m"),extended:t.includes("x")}}}function Tt(e,t,n,a){let[s,i,o]=n;if(s==="["){let c=Lt(t,n,a);return{tokens:c.tokens,lastIndex:c.lastIndex}}if(s==="\\"){if("AbBGzZ".includes(i))return{token:E(d.Assertion,n,{kind:n})};if(/^\\g[<']/.test(n)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(n))throw new Error(`Invalid group name "${n}"`);return{token:E(d.Subroutine,n)}}if(/^\\k[<']/.test(n)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(n))throw new Error(`Invalid group name "${n}"`);return{token:E(d.Backreference,n)}}if(i==="K")return{token:E(d.Directive,n,{kind:H.keep})};if(i==="N")return{token:E(d.CharacterSet,n,{kind:k.non_newline})};if(i==="O")return{token:E(d.CharacterSet,n,{kind:k.any})};if("RX".includes(i))return{token:E(d.VariableLengthCharacterSet,n,{kind:n})};let c=Re(n,{inCharClass:!1});return Array.isArray(c)?{tokens:c}:{token:c}}if(s==="("){if(o==="#"){if(t[a]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:a+1}}if("-imx".includes(o))return{token:Ut(n,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,n==="("||n==="(?:")return{token:E(d.GroupOpen,n,{kind:y.group})};if(n==="(?>")return{token:E(d.GroupOpen,n,{kind:y.atomic})};if(n==="(?="||n==="(?!"||n==="(?<="||n==="(?<!")return{token:E(d.GroupOpen,n,{kind:o==="<"?y.lookbehind:y.lookahead,negate:n.endsWith("!")})};if(o==="<"||o==="'")return{token:E(d.GroupOpen,n,{kind:y.capturing,name:n.slice(3,-1)})};throw o==="("?new Error(`Unsupported conditional "${n}"`):o==="~"?new Error(`Unsupported absence operator "${n}"`):n==="(?"?new Error("Invalid group"):new Error(`Unexpected group "${n}"`)}if(n===")"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched ")"');return{token:E(d.GroupClose,n)}}if(n==="#"&&e.getCurrentModX()){let c=t.indexOf(` | ||
`,a);return{lastIndex:c===-1?t.length:c}}if(/^\s$/.test(n)&&e.getCurrentModX()){let c=/\s+/y;return c.lastIndex=a,{lastIndex:c.exec(t)?c.lastIndex:a}}return n==="."?{token:E(d.CharacterSet,n,{kind:k.dot})}:n==="^"||n==="$"?{token:E(d.Assertion,n,{kind:n})}:n==="|"?{token:E(d.Alternator,n)}:Le.test(n)?{token:Dt(n)}:(Oe(n),{token:E(d.Character,n,{value:n.codePointAt(0)})})}function Lt(e,t,n){Ne(t);let a=[E(d.CharacterClassOpen,t,{negate:t[1]==="^"})],s=1,i;for(ge.lastIndex=n;i=ge.exec(e);){let o=i[0];if(o[0]==="["&&o[1]!==":")Ne(o),s++,a.push(E(d.CharacterClassOpen,o,{negate:o[1]==="^"}));else if(o==="]"){if(s--,a.push(E(d.CharacterClassClose,o)),!s)break}else{let c=Rt(o);Array.isArray(c)?a.push(...c):a.push(c)}}return{tokens:a,lastIndex:ge.lastIndex||e.length}}function Rt(e){if(e[0]==="\\")return Re(e,{inCharClass:!0});if(e[0]==="["){let t=/\[:(?<negate>\^?)(?<name>[a-z]+):\]/.exec(e);if(!t||!Y.get(t.groups.name))throw new Error(`Invalid POSIX class "${e}"`);return E(d.CharacterSet,e,{kind:k.posix,negate:!!t.groups.negate,value:t.groups.name})}return e==="-"?E(d.CharacterClassHyphen,e):e==="&&"?E(d.CharacterClassIntersector,e):(Oe(e),E(d.Character,e,{value:e.codePointAt(0)}))}function Re(e,{inCharClass:t}){let n=e[1];if(n==="c"||n==="C")return Ot(e);if("dDhHsSwW".includes(n))return Mt(e);if(/^\\[pP]\{/.test(e)){if(e.length===3)throw new Error("Incomplete or invalid Unicode property");return Bt(e)}if(/^\\x[89A-Fa-f]\p{AHex}/u.test(e))try{let a=e.split(/\\x/).slice(1).map(c=>parseInt(c,16)),s=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(a)),i=new TextEncoder;return[...s].map(c=>{let u=[...i.encode(c)].map(l=>`\\x${l.toString(16)}`).join("");return E(d.Character,u,{value:c.codePointAt(0)})})}catch{throw new Error(`Too short or invalid multibyte code "${e}"`)}if(n==="u"||n==="x")return E(d.Character,e,{value:Vt(e)});if(be.has(n))return E(d.Character,e,{value:be.get(n)});if(/\d/.test(n))return E(d.EscapedNumber,e,{inCharClass:t});if(e==="\\")throw new Error(g`Incomplete escape "\"`);if(n==="M")throw new Error(`Unsupported meta "${e}"`);if([...e].length===2)return E(d.Character,e,{value:e.codePointAt(1)});throw new Error(`Unexpected escape "${e}"`)}function E(e,t,n){return{type:e,raw:t,...n}}function Ot(e){let t=e[1]==="c"?e[2]:e[3];if(!t||!/[A-Za-z]/.test(t))throw new Error(`Unsupported control character "${e}"`);return E(d.Character,e,{value:t.toUpperCase().codePointAt(0)-64})}function Ut(e,t){let{on:n,off:a}=/^\(\?(?<on>[imx]*)(?:-(?<off>[imx\-]*))?/.exec(e).groups;a??="";let s=(t.getCurrentModX()||n.includes("x"))&&!a.includes("x"),i=Fe(n),o=Fe(a),c={};if(i&&(c.enable=i),o&&(c.disable=o),e.endsWith(")"))return t.replaceCurrentModX(s),E(d.Directive,e,{kind:H.flags,flags:c});if(e.endsWith(":")){t.pushModX(s),t.numOpenGroups++;let u=E(d.GroupOpen,e,{kind:y.group});return(i||o)&&(u.flags=c),u}throw new Error(`Unexpected flag modifier "${e}"`)}function Dt(e){let t={};if(e[0]==="{"){let{min:n,max:a}=/^\{(?<min>\d*)(?:,(?<max>\d*))?/.exec(e).groups,s=1e5;if(+n>s||+a>s)throw new Error("Quantifier value unsupported in Oniguruma");t.min=+n,t.max=a===void 0?+n:a===""?1/0:+a,t.greedy=!e.endsWith("?"),t.possessive=!1}else t.min=e[0]==="+"?1:0,t.max=e[0]==="?"?1:1/0,t.greedy=e[1]!=="?",t.possessive=e[1]==="+";return E(d.Quantifier,e,t)}function Mt(e){let t=e[1].toLowerCase();return E(d.CharacterSet,e,{kind:{d:k.digit,h:k.hex,s:k.space,w:k.word}[t],negate:e[1]!==t})}function Bt(e){let{p:t,neg:n,value:a}=/^\\(?<p>[pP])\{(?<neg>\^?)(?<value>[ \w]+)/.exec(e).groups,s=t==="P"&&!n||t==="p"&&!!n;return E(d.CharacterSet,e,{kind:k.property,negate:s,value:a})}function Fe(e){let 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 Vt(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 t=e[2]==="{"?/^\\x\{\s*(?<hex>\p{AHex}+)/u.exec(e).groups.hex:e.slice(2),n=parseInt(t,16);if(n>127&&/^\\x\p{AHex}/u.test(e))throw new Error(g`\xNN above 7F unsupported in Oniguruma "${e}"`);if(n>1310719)throw new Error(`Invalid out of range "${e}"`);if(n>1114111)throw new Error(`Invalid out of range in JS "${e}"`);return n}function jt(e,t){let{raw:n,inCharClass:a}=e,s=n.slice(1);if(!a&&(s!=="0"&&s.length===1||s[0]!=="0"&&+s<=t))return[E(d.Backreference,n)];let i=[],o=s.match(/^[0-7]+|\d/g);for(let c=0;c<o.length;c++){let u=o[c],l=c===0&&u!=="8"&&u!=="9"?parseInt(u,8):u.codePointAt(0);i.push(E(d.Character,(c===0?"\\":"")+u,{value:l}))}return i}function Ne(e){if(e.endsWith("]"))throw new Error(`Empty character class "${e}" unsupported in Oniguruma`)}function Oe(e){if([...e].length!==1)throw new Error(`Expected "${e}" to be a single code point`)}function G(e,t,n){let a=e.node;for(;a.parent;)a=a.parent;function s(o,c){for(let u=0;u<o.length;u++){let l=i(o[u],c,u,o);u=Math.max(-1,u+l)}}function i(o,c=null,u=null,l=null){let f=0,h=!1,C={node:o,parent:c,key:u,container:l,ast:a,remove(){N(l,"Container expected").splice(Math.max(0,u+f),1),f-=1},removeAllNextSiblings(){return N(l,"Container expected").splice(u+1)},removeAllPrevSiblings(){let T=u+f;return f-=T,N(l,"Container expected").splice(0,Math.max(0,T))},replaceWith(T){Kt(T,c),l?l[Math.max(0,u+f)]=T:c[u]=T},skip(){h=!0}},m=Ue(o).find(T=>!!n[T]),A=m&&n[m],S=typeof A=="function"?A:A?.enter,F=A?.exit;if(S?.(C,t),!h)switch(o.type){case p.Regex:i(o.pattern,o,"pattern"),i(o.flags,o,"flags");break;case p.Alternative:case p.CharacterClass:s(o.elements,o);break;case p.Assertion:I(o)&&s(o.alternatives,o);break;case p.Backreference:case p.Character:case p.CharacterSet:case p.Directive:case p.Flags:case p.Recursion:case p.Subroutine:case p.VariableLengthCharacterSet:break;case p.CapturingGroup:case p.Group:case p.Pattern:s(o.alternatives,o);break;case p.CharacterClassIntersection:s(o.classes,o);break;case p.CharacterClassRange:i(o.min,o,"min"),i(o.max,o,"max");break;case p.Quantifier:i(o.element,o,"element");break;default:throw new Error(`Unexpected node type "${o.type}"`)}return F?.(C,t),f}i(e.node,e.parent,e.key,e.container)}function Kt(e,t){"parent"in t&&(e.parent=t)}var p={Alternative:"Alternative",Assertion:"Assertion",Backreference:"Backreference",CapturingGroup:"CapturingGroup",Character:"Character",CharacterClass:"CharacterClass",CharacterClassIntersection:"CharacterClassIntersection",CharacterClassRange:"CharacterClassRange",CharacterSet:"CharacterSet",Directive:"Directive",Flags:"Flags",Group:"Group",Pattern:"Pattern",Quantifier:"Quantifier",Regex:"Regex",Subroutine:"Subroutine",VariableLengthCharacterSet:"VariableLengthCharacterSet",Recursion:"Recursion"},De={AnyGroup:"AnyGroup",AnyNode:"AnyNode"};function Ue(e){let{type:t}=e,n=[De.AnyNode];return(I(e)||t===p.CapturingGroup||t===p.Group)&&n.push(De.AnyGroup),n.push(t),n}var w={line_end:"line_end",line_start:"line_start",lookahead:"lookahead",lookbehind:"lookbehind",search_start:"search_start",string_end:"string_end",string_end_newline:"string_end_newline",string_start:"string_start",word_boundary:"word_boundary"},x=k,q=H,W={grapheme:"grapheme",newline:"newline"};function z({tokens:e,flags:t},n){let a={skipBackrefValidation:!1,skipPropertyNameValidation:!1,verbose:!1,...n},s={capturingGroups:[],current:0,hasNumberedRef:!1,namedGroupsByName:new Map,parent:null,skipBackrefValidation:a.skipBackrefValidation,skipPropertyNameValidation:a.skipPropertyNameValidation,subroutines:[],token:null,tokens:e,verbose:a.verbose,walk:i};function i(C,m){let A=e[s.current];switch(s.parent=C,s.token=A,s.current++,A.type){case d.Alternator:return v();case d.Assertion:return Ve(A);case d.Backreference:return Ht(s);case d.Character:return je(A.value);case d.CharacterClassHyphen:return Qt(s,m);case d.CharacterClassOpen:return Wt(s,m);case d.CharacterSet:return qt(s);case d.Directive:return tr(A);case d.GroupOpen:return zt(s,m);case d.Quantifier:return Xt(s);case d.Subroutine:return Zt(s);case d.VariableLengthCharacterSet:return ir(A.kind);default:throw new Error(`Unexpected token type "${A.type}"`)}}let o=ar(nr(),rr(t)),c=o.pattern.alternatives[0];for(;s.current<e.length;){let C=i(c,{});C.type===p.Alternative?(o.pattern.alternatives.push(C),c=C):c.elements.push(C)}let{capturingGroups:u,hasNumberedRef:l,namedGroupsByName:f,subroutines:h}=s;if(l&&f.size)throw new Error("Numbered backref/subroutine not allowed when using named capture");for(let{ref:C}of h)if(typeof C=="number"){if(C>u.length)throw new Error("Subroutine uses a group number that's not defined")}else if(f.has(C)){if(f.get(C).length>1)throw new Error(g`Subroutine uses a duplicate group name "\g<${C}>"`)}else throw new Error(g`Subroutine uses a group name that's not defined "\g<${C}>"`);return G({node:o},null,{AnyNode({node:C,parent:m}){C.parent=m}}),o}function Ht(e){let{raw:t}=e.token,n=/^\\k[<']/.test(t),a=n?t.slice(3,-1):t.slice(1),s=(i,o=!1)=>{let c=e.capturingGroups.length,u=!1;if(i>c)if(e.skipBackrefValidation)u=!0;else throw new Error(`Not enough capturing groups defined to the left "${t}"`);return e.hasNumberedRef=!0,te(o?c+1-i:i,{orphan:u})};if(n){let i=/^(?<sign>-?)0*(?<num>[1-9]\d*)$/.exec(a);if(i)return s(+i.groups.num,!!i.groups.sign);if(/[-+]/.test(a))throw new Error(`Invalid backref name "${t}"`);if(!e.namedGroupsByName.has(a))throw new Error(`Group name not defined to the left "${t}"`);return te(a)}return s(+a)}function Qt(e,t){let{parent:n,tokens:a,walk:s}=e,i=n.elements.at(-1),o=a[e.current];if(i&&i.type!==p.CharacterClass&&i.type!==p.CharacterClassRange&&o&&o.type!==d.CharacterClassOpen&&o.type!==d.CharacterClassClose&&o.type!==d.CharacterClassIntersector){let c=s(n,t);if(i.type===p.Character&&c.type===p.Character)return n.elements.pop(),er(i,c);throw new Error("Invalid character class range")}return je(45)}function Wt(e,t){let{token:n,tokens:a,verbose:s,walk:i}=e,o=de({negate:n.negate}),c=o.elements[0],u=Me(a[e.current]);for(;u.type!==d.CharacterClassClose;){if(u.type===d.CharacterClassIntersector)c.classes.push(de({negate:!1,baseOnly:!0})),e.current++;else{let l=c.classes.at(-1);l.elements.push(i(l,t))}u=Me(a[e.current])}if(s||pr(c),c.classes.length===1){let l=c.classes[0];l.negate=o.negate!==l.negate,o=l}return e.current++,o}function qt({token:e,skipPropertyNameValidation:t}){let{kind:n,negate:a,value:s}=e;if(n===k.property){let o=K(s);if(xe.has(o))n=k.posix,s=o;else return U(s,{negate:a,skipPropertyNameValidation:t})}let i={type:p.CharacterSet,kind:N(x[n],`Unexpected character set kind "${n}"`)};return(n===k.digit||n===k.hex||n===k.posix||n===k.space||n===k.word)&&(i.negate=a,n===k.posix&&(i.value=s)),i}function zt(e,t){let{token:n,tokens:a,capturingGroups:s,namedGroupsByName:i,verbose:o,walk:c}=e,u=Jt(n);u.type===p.CapturingGroup&&(s.push(u),u.name&&O(i,u.name,[]).push(u));let l=Be(a[e.current]);for(;l.type!==d.GroupClose;){if(l.type===d.Alternator)u.alternatives.push(v()),e.current++;else{let f=u.alternatives.at(-1);f.elements.push(c(f,t))}l=Be(a[e.current])}return o||(u=ur(u)),e.current++,u}function Xt({token:e,parent:t}){let{min:n,max:a,greedy:s,possessive:i}=e,o=t.elements.at(-1);if(!o||o.type===p.Assertion||o.type===p.Directive)throw new Error("Quantifier requires a repeatable token");let c=sr(o,n,a,s,i);return t.elements.pop(),c}function Zt(e){let{token:t,capturingGroups:n,subroutines:a}=e,s=t.raw.slice(3,-1),i=/^(?<sign>[-+]?)0*(?<num>[1-9]\d*)$/.exec(s);if(i){let c=+i.groups.num,u=n.length;if(e.hasNumberedRef=!0,s={"":c,"+":u+c,"-":u+1-c}[i.groups.sign],s<1)throw new Error("Invalid subroutine number")}else s==="0"&&(s=0);let o=or(s);return a.push(o),o}function v(){return{type:p.Alternative,elements:[]}}function Ve({type:e,kind:t,negate:n}){if(e===d.GroupOpen)return re({behind:t===y.lookbehind,negate:n});let a=N({"^":w.line_start,$:w.line_end,"\\A":w.string_start,"\\b":w.word_boundary,"\\B":w.word_boundary,"\\G":w.search_start,"\\z":w.string_end,"\\Z":w.string_end_newline}[t],`Unexpected assertion kind "${t}"`),s={type:p.Assertion,kind:a};return a===w.word_boundary&&(s.negate=t===g`\B`),s}function te(e,{orphan:t}={}){return{type:p.Backreference,...t&&{orphan:t},ref:e}}function Jt(e){let{kind:t,number:n,name:a,flags:s}=e;switch(t){case y.atomic:return $({atomic:!0});case y.capturing:return he(n,a);case y.group:return $({flags:s});case y.lookahead:case y.lookbehind:return Ve(e);default:throw new Error(`Unexpected group kind "${t}"`)}}function he(e,t){let n=t!==void 0;if(n&&!lr(t))throw new Error(`Group name "${t}" invalid in Oniguruma`);return{type:p.CapturingGroup,number:e,...n&&{name:t},alternatives:[v()]}}function je(e){return{type:p.Character,value:e}}function de(e){let t={baseOnly:!1,negate:!1,...e};return{type:p.CharacterClass,negate:t.negate,elements:t.baseOnly?[]:[Yt()]}}function Yt(){return{type:p.CharacterClassIntersection,classes:[de({negate:!1,baseOnly:!0})]}}function er(e,t){if(t.value<e.value)throw new Error("Character class range out of order");return{type:p.CharacterClassRange,min:e,max:t}}function tr({kind:e,flags:t}){let n={type:p.Directive,kind:N(q[e],`Unexpected directive kind "${e}"`)};return e===H.flags&&(n.flags=t),n}function rr({ignoreCase:e,dotAll:t,extended:n}){return{type:p.Flags,ignoreCase:e,dotAll:t,extended:n}}function $({atomic:e,flags:t}={}){return{type:p.Group,...e&&{atomic:e},...t&&{flags:t},alternatives:[v()]}}function re({behind:e=!1,negate:t=!1}={}){return{type:p.Assertion,kind:e?w.lookbehind:w.lookahead,negate:t,alternatives:[v()]}}function nr(){return{type:p.Pattern,alternatives:[v()]}}function sr(e,t,n,a,s){if(n<t)throw new Error("Quantifier range out of order");return{type:p.Quantifier,min:t,max:n,greedy:a,possessive:s,element:e}}function ar(e,t){return{type:p.Regex,pattern:e,flags:t}}function or(e){return{type:p.Subroutine,ref:e}}function U(e,t){let n={negate:!1,skipPropertyNameValidation:!1,...t};return{type:p.CharacterSet,kind:x.property,value:n.skipPropertyNameValidation?e:cr(e),negate:n.negate}}function ir(e){return{type:p.VariableLengthCharacterSet,kind:N({"\\R":W.newline,"\\X":W.grapheme}[e],`Unexpected varcharset kind "${e}"`)}}function cr(e){let t=K(e);if(pe.has(t))throw new Error(g`Unicode property "\p{${e}}" unsupported in Oniguruma`);let n=le.get(t);return n||e.trim().replace(/\s+/g,"_").replace(/[A-Z][a-z]+(?=[A-Z])/g,"$&_").replace(/[A-Za-z]+/g,a=>a[0].toUpperCase()+a.slice(1).toLowerCase())}function ur(e){let t=e.alternatives[0],n=t.elements[0];return e.type===p.Group&&e.alternatives.length===1&&t.elements.length===1&&n.type===p.Group&&!(e.atomic&&n.flags)&&!(e.flags&&(n.atomic||n.flags))?(e.atomic?n.atomic=!0:e.flags&&(n.flags=e.flags),n):e}function I({type:e,kind:t}){return e===p.Assertion&&(t===w.lookahead||t===w.lookbehind)}function lr(e){return!/^(?:[-\d]|$)/.test(e)}function pr(e){for(let t=0;t<e.classes.length;t++){let n=e.classes[t],a=n.elements[0];n.elements.length===1&&a.type===p.CharacterClass&&(e.classes[t]=a,a.negate=n.negate!==a.negate)}}function Me(e){return N(e,"Unclosed character class")}function Be(e){return N(e,"Unclosed group")}function He(e,t){let n=e.pattern.alternatives,a=n[0].elements[0];if(n.length>1||!a)return null;let s=n[0].elements.length===1&&(a.type===p.CapturingGroup||a.type===p.Group)&&a.alternatives.length===1,i=s?a.alternatives[0]:n[0],o=s?i.elements[0]:a;if(!o)return null;if((o.type===p.CapturingGroup||o.type===p.Group)&&o.alternatives.length===2&&o.alternatives[0].elements.length===1&&o.alternatives[1].elements.length===1){let u=o.alternatives[0].elements[0],l=o.alternatives[1].elements[0];if(u.kind===w.line_start&&l.kind===w.search_start||u.kind===w.search_start&&l.kind===w.line_start)return u.kind===w.line_start?o.alternatives.pop():o.alternatives.shift(),{name:"line_or_search_start"}}if(Ke(o))return o.parent.elements.shift(),{name:"not_search_start"};let c=i.elements.findIndex(u=>Ke(u));if(c>-1&&i.elements.every(u=>u.type===p.Assertion))return i.elements.splice(c,1),{name:"not_search_start"};if(I(o)&&!o.negate&&o.alternatives.length>1){let u=[],l=!1;if(o.alternatives.forEach(f=>{f.elements.length===1&&f.elements[0].kind===w.search_start?l=!0:u.push(f)}),l&&u.length){let f=!0;if(u.some(h=>h.elements.some(C=>C.type===p.CapturingGroup||C.type===p.Group||C.type===p.Subroutine||I(C))))if(t==="loose")f=!1;else throw new Error(r`Uses "\G" in a way that's unsupported`);if(f){let h=R($(),[R(v(),[U("<<",{skipPropertyNameValidation:!0})]),...u,R(v(),[U(">>",{skipPropertyNameValidation:!0})])]);return h.parent=o.parent,o.parent.elements[0]=h,{name:"after_search_start_or_subpattern"}}}}return null}function Ke(e){return I(e)&&e.negate&&e.alternatives.length===1&&e.alternatives[0].elements.length===1&&e.alternatives[0].elements[0].kind===w.search_start}var Ce=String.raw,Qe=Ce`(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})`,We=Ce`\u{E0061}-\u{E007A}`,qe=()=>new RegExp(Ce`[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[${We}]{2}[\u{E0030}-\u{E0039}${We}]{1,3}\u{E007F}|${Qe}(?:\u200D${Qe})*`,"gu");function Xe(e,t){let n={accuracy:"default",avoidSubclass:!1,bestEffortTarget:"ES2025",...t},a=n.avoidSubclass?null:He(e,n.accuracy),s={accuracy:n.accuracy,flagDirectivesByAlt:new Map,minTargetEs2024:j(n.bestEffortTarget,"ES2024"),subroutineRefMap:new Map,supportedGNodes:new Set};G({node:e},s,Ze);let i={dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},o={currentFlags:i,prevFlags:null,globalFlags:i,groupOriginByCopy:new Map,groupsWithDuplicateNamesToRemove:new Set,multiplexCapturesToLeftByRef:new Map,namedGroupsInScopeByAlt:new Map,openDirectCaptures:new Set,openSubroutineRefs:new Set,reffedNodesByBackreference:new Map,subroutineRefMap:s.subroutineRefMap};G({node:e},o,Je);let c={groupsWithDuplicateNamesToRemove:o.groupsWithDuplicateNamesToRemove,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByBackreference:o.reffedNodesByBackreference};return G({node:e},c,fr),a&&(e._strategy=a),e}var Ze={Alternative:{enter({node:e,parent:t,key:n},{flagDirectivesByAlt:a}){let s=e.elements.filter(i=>i.kind===q.flags);for(let i=n+1;i<t.alternatives.length;i++){let o=t.alternatives[i];O(a,o,[]).push(...s)}},exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){let n=et(t.get(e));if(n){let a=X($({flags:n}),e.elements);a.parent=e,e.elements=[a]}}}},Assertion({node:e,ast:t,remove:n,replaceWith:a},{accuracy:s,supportedGNodes:i}){let{kind:o,negate:c}=e;if(o===w.line_end)a(P(g`(?=\z|\n)`));else if(o===w.line_start)a(P(g`(?<=\A|\n)`));else if(o===w.search_start){if(!i.has(e)&&s!=="loose")throw new Error(g`Uses "\G" in a way that's unsupported`);t.flags.sticky=!0,n()}else if(o===w.string_end_newline)a(P(g`(?=\n?\z)`));else if(o===w.word_boundary){let u=g`[\p{L}\p{N}\p{Pc}]`,l=`(?:(?<=${u})(?!${u})|(?<!${u})(?=${u}))`,f=`(?:(?<=${u})(?=${u})|(?<!${u})(?!${u}))`;a(P(c?f:l))}},CapturingGroup({node:e},{subroutineRefMap:t}){let{name:n,number:a}=e;if(n&&!mr(n))throw new Error(`Group name "${n}" invalid in JS`);t.set(n??a,e)},CharacterSet({node:e,replaceWith:t},{accuracy:n,minTargetEs2024:a}){let{kind:s,negate:i,value:o}=e;if(s===x.any)t(U("Any"));else if(s===x.hex)t(U("AHex",{negate:i}));else if(s===x.non_newline)t(P(g`[^\n]`));else if(s===x.posix)if(!a&&(o==="graph"||o==="print")){if(n==="strict")throw new Error(`POSIX class "${o}" requires min target ES2024 or non-strict accuracy`);let c={graph:"!-~",print:" -~"}[o];i&&(c=`\0-${_(c.codePointAt(0)-1)}${_(c.codePointAt(2)+1)}-\u{10FFFF}`),t(P(`[${c}]`))}else{let c=P(Y.get(o));c.negate=i,t(c)}else if(s===x.property)ue.has(o)||(e.key="sc");else if(s===x.space){let c=P(`[ | ||
\v\f\r]`);c.negate=i,t(c)}},Directive(e,t){let{node:n,parent:a,ast:s,remove:i,replaceWith:o,removeAllPrevSiblings:c,removeAllNextSiblings:u}=e,{kind:l,flags:f}=n;if(l===q.flags)if(!f.enable&&!f.disable)i();else{let h=X($({flags:f}),u());o(h),st(h,e,t,Ze)}else if(l===q.keep){if(a.parent!==s.pattern||s.pattern.alternatives.length>1)throw new Error(g`Uses "\K" in a way that's unsupported`);o(X(re({behind:!0}),c()))}},Flags({node:e,parent:t}){delete e.extended,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;let{enable:t,disable:n}=e.flags;t?.extended&&delete t.extended,n?.extended&&delete n.extended,t?.dotAll&&n?.dotAll&&delete t.dotAll,t?.ignoreCase&&n?.ignoreCase&&delete t.ignoreCase,t&&!Object.keys(t).length&&delete e.flags.enable,n&&!Object.keys(n).length&&delete e.flags.disable,!e.flags.enable&&!e.flags.disable&&delete e.flags},Pattern({node:e},{accuracy:t,supportedGNodes:n}){let a=[],s=!1,i=!1;for(let o of e.alternatives){let c=rt(o.elements);c?(s=!0,Array.isArray(c)?a.push(...c):a.push(c)):i=!0}if(s&&i&&t!=="loose")throw new Error(g`Uses "\G" in a way that's unsupported`);a.forEach(o=>n.add(o))},Quantifier({node:e}){if(e.element.type===p.Quantifier){let t=X($(),[e.element]);t.parent=e,e.element=t}},VariableLengthCharacterSet({node:e,replaceWith:t},{accuracy:n,minTargetEs2024:a}){let{kind:s}=e;if(s===W.newline)t(P(`(?>\r | ||
?|[ | ||
\v\f\x85\u2028\u2029])`));else if(n===Q.grapheme){if(r==="strict")throw new Error(f`Use of "\X" requires non-strict accuracy`);let o=s?f`\p{RGI_Emoji}`:Ke().source.replace(/\\u\{/g,f`\x{`);t(v(f`(?>\r\n|${o}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}))}else throw new Error(`Unexpected varcharset kind "${n}"`)}},ze={Alternative({node:e},{namedGroupsInScopeByAlt:t}){let r=re(e);if(r){let s=t.get(r);s&&t.set(e,s)}},Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByBackreference:r}){let{orphan:s,ref:n}=e;s||r.set(e,[...t.get(n).map(({node:o})=>o)])},CapturingGroup:{enter({node:e,replaceWith:t,skip:r},{groupOriginByCopy:s,groupsWithDuplicateNamesToRemove:n,multiplexCapturesToLeftByRef:o,namedGroupsInScopeByAlt:a,openDirectCaptures:i,openSubroutineRefs:u}){let{name:c,number:p}=e,g=c??p,C=s.get(e),d=re(e);if(u.has(g))throw new Error("Unsupported indirect recursion");if(C?u.add(g):i.add(e),i.has(C)){t(Qe(g)),r();return}let w=L(o,g,[]);for(let k=0;k<w.length;k++){let b=w[k];if(C===b.node||C&&C===b.origin||e===b.origin){w.splice(k,1);break}}if(w.push({node:e,origin:C}),c){let k=L(a,d,new Map);k.has(c)&&n.add(k.get(c)),k.set(c,e);let b=re(d);if(b)do L(a,b,new Map).set(c,e);while(b=re(b))}},exit({node:e},{groupOriginByCopy:t,openDirectCaptures:r,openSubroutineRefs:s}){let{name:n,number:o}=e;t.get(e)?s.delete(n??o):r.delete(e)}},Group:{enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=U(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Subroutine(e,t){let{node:r,replaceWith:s}=e,{ref:n}=r,o=t.subroutineRefMap.get(n),a=n===0,i=a?Qe(n):Xe(o,t.groupOriginByCopy,null),u=i;if(!a){let c=Ze(gr(o,g=>g.type===l.Group&&!!g.flags)),p=c?U(t.globalFlags,c):t.globalFlags;pr(p,t.currentFlags)||(u=z(I({flags:hr(p)}),[i]))}s(u),a||tt(u,e,t,ze)}},ur={Backreference({node:e,replaceWith:t},r){if(e.orphan){r.highestOrphanBackref=Math.max(r.highestOrphanBackref,e.ref);return}let n=r.reffedNodesByBackreference.get(e).filter(o=>fr(o,e));if(!n.length)t(te({negate:!0}));else if(n.length>1){let o=n.map(a=>R($(),[ee(a.number)]));t(R(I(),o))}else e.ref=n[0].number},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,t.groupsWithDuplicateNamesToRemove.has(e)&&delete e.name},Regex:{exit({node:e},t){let r=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let s=0;s<r;s++){let n=he();e.pattern.alternatives.at(-1).elements.push(n)}}}};function R(e,t){return t.forEach(r=>r.parent=e),e[Ce(e)]=t,e}function lr(e,t){let r=e.pattern.alternatives,s=r[0].elements[0];if(r.length>1||!s)return null;let n=r[0].elements.length===1&&(s.type===l.CapturingGroup||s.type===l.Group)&&s.alternatives.length===1,o=n?s.alternatives[0]:r[0],a=n?o.elements[0]:s;if(!a)return null;if((a.type===l.CapturingGroup||a.type===l.Group)&&a.alternatives.length===2&&a.alternatives[0].elements.length===1&&a.alternatives[1].elements.length===1){let c=a.alternatives[0].elements[0],p=a.alternatives[1].elements[0];if(c.kind===E.line_start&&p.kind===E.search_start||c.kind===E.search_start&&p.kind===E.line_start)return c.kind===E.line_start?a.alternatives.pop():a.alternatives.shift(),{name:"line_or_search_start"}}function i(c){return N(c)&&c.negate&&c.alternatives.length===1&&c.alternatives[0].elements.length===1&&c.alternatives[0].elements[0].kind===E.search_start}if(i(a))return a.parent.elements.shift(),{name:"not_search_start"};let u=o.elements.findIndex(c=>i(c));if(u>-1&&o.elements.every(c=>c.type===l.Assertion))return o.elements.splice(u,1),{name:"not_search_start"};if(N(a)&&!a.negate&&a.alternatives.length>1){let c=[],p=!1;if(a.alternatives.forEach(g=>{g.elements.length===1&&g.elements[0].kind===E.search_start?p=!0:c.push(g)}),p&&c.length){let g=!0;if(c.some(C=>C.elements.some(d=>d.type===l.CapturingGroup||d.type===l.Group||d.type===l.Subroutine||N(d))))if(t==="loose")g=!1;else throw new Error(f`Uses "\G" in a way that's unsupported`);if(g){let C=R(I(),[R($(),[D("<<",{skipPropertyNameValidation:!0})]),...c,R($(),[D(">>",{skipPropertyNameValidation:!0})])]);return C.parent=a.parent,a.parent.elements[0]=C,{name:"after_search_start_or_subpattern"}}}}return null}function pr(e,t){return e.dotAll===t.dotAll&&e.ignoreCase===t.ignoreCase}function fr(e,t){let r=t;do{if(r.type===l.Pattern)return!1;if(r.type===l.Alternative)continue;if(r===e)return!1;let s=Je(r.parent);for(let n of s){if(n===r)break;if(n===e||et(n,e))return!0}}while(r=r.parent);throw new Error("Unexpected path")}function Xe(e,t,r,s){let n=Array.isArray(e)?[]:{};for(let[o,a]of Object.entries(e))o==="parent"?n.parent=Array.isArray(r)?s:r:a&&typeof a=="object"?n[o]=Xe(a,t,n,r):(o==="type"&&a===l.CapturingGroup&&t.set(n,t.get(e)??e),n[o]=a);return n}function Qe(e){return{type:l.Recursion,ref:e}}function gr(e,t){let r=[];for(;e=e.parent;)(!t||t(e))&&r.push(e);return r}function Ce(e){for(let t of["alternatives","classes","elements"])if(e[t])return t;return null}function Ze(e){let t=["dotAll","ignoreCase"],r={enable:{},disable:{}};return e.forEach(({flags:s})=>{t.forEach(n=>{s.enable?.[n]&&(delete r.disable[n],r.enable[n]=!0),s.disable?.[n]&&(r.disable[n]=!0)})}),Object.keys(r.enable).length||delete r.enable,Object.keys(r.disable).length||delete r.disable,r.enable||r.disable?r:null}function hr({dotAll:e,ignoreCase:t}){let 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 Je(e){if(!e)throw new Error("Node expected");if(e.type===l.Quantifier)return[e.element];let t=Ce(e);return t&&e[t]}function Ye(e){if(!e.length)return null;let t=e[0];if(N(t)&&!t.negate&&t.alternatives.length===1&&t.alternatives[0].elements.length){let s=t.alternatives[0].elements,n=t.kind===E.lookahead?0:s.length-1;if(s[n].kind===E.search_start)return s[n]}let r=e.find(s=>s.kind===E.search_start?!0:s.type!==l.Directive&&s.type!==l.Assertion&&!(s.type===l.Quantifier&&!s.min));if(!r)return null;if(r.kind===E.search_start)return r;if(r.type===l.Group||r.type===l.CapturingGroup){let s=[];for(let n of r.alternatives){let o=Ye(n.elements);if(!o)return null;Array.isArray(o)?s.push(...o):s.push(o)}return s}return null}function re(e){for(;e=e.parent;)if(e.type===l.Alternative)return e;return null}function et(e,t){let r=Je(e)??[];for(let s of r)if(s===t||et(s,t))return!0;return!1}function dr(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function v(e,{skipPropertyNameValidation:t}={}){let s=q(K(e),{skipPropertyNameValidation:t}).pattern.alternatives;return s.length>1||s[0].elements.length>1?R(I(),s):s[0].elements[0]}function z(e,t){let r=Ce(e);return e[r][0].parent=e,t&&R(e[r][0],t),e}function tt(e,{parent:t,key:r,container:s},n,o){P({node:e,parent:t,key:r,container:s},n,o)}function nt(e,t){let r=Z(t),s=V(r.target,"ES2024"),n=V(r.target,"ESNext"),o=r.maxRecursionDepth;if(o!==null&&(!Number.isInteger(o)||o<2||o>100))throw new Error("Invalid maxRecursionDepth; use 2-100 or null");let a=null,i=null;if(!n){let d=[e.flags.ignoreCase];P({node:e},{getCurrentModI:()=>d.at(-1),popModI(){d.pop()},pushModI(w){d.push(w)},setHasCasedChar(){d.at(-1)?a=!0:i=!0}},Cr)}let u={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||a)&&!i)},c=null,p={accuracy:r.accuracy,appliedGlobalFlags:u,captureFlagIMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},groupNames:new Set,inCharClass:!1,lastNode:c,maxRecursionDepth:o,useAppliedIgnoreCase:!!(!n&&a&&i),useDuplicateNames:n,useFlagMods:n,useFlagV:s,usePostEs2018Properties:s,verbose:r.verbose};function g(d){switch(p.lastNode=c,c=d,d.type){case l.Regex:return{pattern:g(d.pattern),flags:g(d.flags),options:{...d.options}};case l.Alternative:return d.elements.map(g).join("");case l.Assertion:return _r(d,p,g);case l.Backreference:return kr(d,p);case l.CapturingGroup:return Sr(d,p,g);case l.Character:return yr(d,p);case l.CharacterClass:return xr(d,p,g);case l.CharacterClassIntersection:if(!p.useFlagV)throw new Error("Use of class intersection requires min target ES2024");return d.classes.map(g).join("&&");case l.CharacterClassRange:return br(d,p);case l.CharacterSet:return Fr(d,p);case l.Flags:return Nr(d,p);case l.Group:return Ir(d,p,g);case l.Pattern:return d.alternatives.map(g).join("|");case l.Quantifier:return g(d.element)+Gr(d);case l.Recursion:return $r(d,p);default:throw new Error(`Unexpected node type "${d.type}"`)}}let C=g(e);return s||(delete C.options.force.v,C.options.disable.v=!0,C.options.unicodeSetsPlugin=null),C}var Cr={AnyGroup:{enter({node:e},t){let r=t.getCurrentModI();t.pushModI(e.flags?U({ignoreCase:r},e.flags).ignoreCase:r)},exit(e,t){t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){me(A(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},r){t(),st(e,{firstOnly:!0}).length&&r.setHasCasedChar()},CharacterSet({node:e},t){e.kind===y.property&&pe.has(e.value)&&t.setHasCasedChar()}},mr=new Set(["$","(",")","*","+",".","?","[","\\","]","^","{","|","}"]),Er=new Set(["-","\\","]","^"]),wr=new Set(["(",")","-","/","[","\\","]","^","{","|","}","!","#","$","%","&","*","+",",",".",":",";","<","=",">","?","@","`","~"]),rt=new Map([[9,f`\t`],[10,f`\n`],[11,f`\v`],[12,f`\f`],[13,f`\r`],[8232,f`\u2028`],[8233,f`\u2029`],[65279,f`\uFEFF`]]),Ar=/^\p{Cased}$/u;function me(e){return Ar.test(e)}function _r(e,t,r){let{kind:s,negate:n,alternatives:o}=e;if(N(e))return`(?${`${s===E.lookahead?"":"<"}${n?"!":"="}`}${o.map(r).join("|")})`;if(s===E.string_end)return"$";if(s===E.string_start)return"^";throw new Error(`Unexpected assertion kind "${s}"`)}function kr({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.captureFlagIMap.get(e))throw new Error("Use of case-insensitive backref to case-sensitive group requires target ESNext or non-strict accuracy");return"\\"+e}function Sr({name:e,number:t,alternatives:r},s,n){return e&&(s.groupNames.has(e)?s.useDuplicateNames||(e=null):s.groupNames.add(e)),s.captureFlagIMap.set(t,s.currentFlags.ignoreCase),`(${e?`?<${e}>`:""}${r.map(n).join("|")})`}function yr({value:e},t){let r=A(e),s=M(e,{isAfterBackref:t.lastNode.type===l.Backreference,inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(s!==r)return s;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&me(r)){let n=ie(r);return t.inCharClass?n.join(""):n.length>1?`[${n.join("")}]`:n[0]}return r}function xr({negate:e,parent:t,elements:r},s,n){if(!e&&(!s.useFlagV||!s.verbose)&&t.type===l.CharacterClass&&r[0].type!==l.CharacterClassIntersection||!s.verbose&&t.type===l.CharacterClassIntersection&&r.length===1&&r[0].type!==l.CharacterClassRange)return r.map(n).join("");if(!s.useFlagV&&t.type===l.CharacterClass)throw new Error("Use of nested character class requires min target ES2024");s.inCharClass=!0;let o=`[${e?"^":""}${r.map(n).join("")}]`;return s.inCharClass=!1,o}function br(e,t){let r=e.min.value,s=e.max.value,n={isAfterBackref:!1,inCharClass:!0,useFlagV:t.useFlagV},o=M(r,n),a=M(s,n),i="";if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase){let u=st(e);vr(u).forEach(p=>{i+=Array.isArray(p)?`${M(p[0],n)}-${M(p[1],n)}`:M(p,n)})}return`${o}-${a}${i}`}function Fr({kind:e,negate:t,value:r,key:s},n){if(e===y.dot)return n.currentFlags.dotAll?n.appliedGlobalFlags.dotAll||n.useFlagMods?".":"[^]":f`[^\n]`;if(e===y.digit)return t?f`\D`:f`\d`;if(e===y.property){if(!n.usePostEs2018Properties&&Se.has(r))throw new Error(`Unicode property "${r}" unavailable in target ES2018`);if(n.useAppliedIgnoreCase&&n.currentFlags.ignoreCase&&pe.has(r))throw new Error(`Unicode property "${r}" can't be case-insensitive when other chars have specific case`);return`${t?f`\P`:f`\p`}{${s?`${s}=`:""}${r}}`}if(e===y.word)return t?f`\W`:f`\w`;throw new Error(`Unexpected character set kind "${e}"`)}function Nr(e,t){return(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":"")+(e.sticky?"y":"")}function Ir({atomic:e,flags:t,parent:r,alternatives:s},n,o){let a=n.currentFlags;t&&(n.currentFlags=U(a,t));let i=s.map(o).join("|"),u=!n.verbose&&s.length===1&&r.type!==l.Quantifier&&!e&&(!n.useFlagMods||!t)?i:`(?${Pr(e,t,n.useFlagMods)}${i})`;return n.currentFlags=a,u}function $r({ref:e},t){let r=t.maxRecursionDepth;if(!r)throw new Error("Use of recursion disabled");if(t.accuracy==="strict")throw new Error("Use of recursion requires non-strict accuracy due to depth limit");return e===0?`(?R=${r})`:f`\g<${e}&R=${r}>`}function st(e,{firstOnly:t}={}){let r=e.min.value,s=e.max.value,n=[];if(r<65&&(s===65535||s>=131071)||r===65536&&s>=131071)return n;for(let o=r;o<=s;o++){let a=A(o);if(!me(a))continue;let i=ie(a).filter(u=>{let c=u.codePointAt(0);return c<r||c>s});if(i.length&&(n.push(...i),t))break}return n}function M(e,{isAfterBackref:t,inCharClass:r,useFlagV:s}){if(rt.has(e))return rt.get(e);if(e<32||e>126&&e<160||e>262143||t&&Tr(e))return e>255?f`\u{${e.toString(16).toUpperCase()}}`:f`\x${e.toString(16).toUpperCase().padStart(2,"0")}`;let n=r?s?wr:Er:mr,o=A(e);return(n.has(o)?"\\":"")+o}function vr(e){let t=e.map(n=>n.codePointAt(0)).sort((n,o)=>n-o),r=[],s=null;for(let n=0;n<t.length;n++)t[n+1]===t[n]+1?s??=t[n]:s===null?r.push(t[n]):(r.push([s,t[n]]),s=null);return r}function Pr(e,t,r){if(e)return">";let s="";if(t&&r){let{enable:n,disable:o}=t;s=(n?.ignoreCase?"i":"")+(n?.dotAll?"s":"")+(o?"-":"")+(o?.ignoreCase?"i":"")+(o?.dotAll?"s":"")}return`${s}:`}function Gr({min:e,max:t,greedy:r,possessive:s}){let n;return!e&&t===1?n="?":!e&&t===1/0?n="*":e===1&&t===1/0?n="+":e===t?n=`{${e}}`:n=`{${e},${t===1/0?"":t}}`,n+(s?"+":r?"":"?")}function Tr(e){return e>47&&e<58}var x=Object.freeze({DEFAULT:"DEFAULT",CHAR_CLASS:"CHAR_CLASS"});function B(e,t,r,s){let n=new RegExp(String.raw`${t}|(?<$skip>\[\^?|\\?.)`,"gsu"),o=[!1],a=0,i="";for(let u of e.matchAll(n)){let{0:c,groups:{$skip:p}}=u;if(!p&&(!s||s===x.DEFAULT==!a)){r instanceof Function?i+=r(u,{context:a?x.CHAR_CLASS:x.DEFAULT,negated:o[o.length-1]}):i+=r;continue}c[0]==="["?(a++,o.push(c[1]==="^")):c==="]"&&a&&(a--,o.pop()),i+=c}return i}function Ee(e,t,r,s){B(e,t,r,s)}function Lr(e,t,r=0,s){if(!new RegExp(t,"su").test(e))return null;let n=new RegExp(`${t}|(?<$skip>\\\\?.)`,"gsu");n.lastIndex=r;let o=0,a;for(;a=n.exec(e);){let{0:i,groups:{$skip:u}}=a;if(!u&&(!s||s===x.DEFAULT==!o))return a;i==="["?o++:i==="]"&&o&&o--,n.lastIndex==a.index&&n.lastIndex++}return null}function ne(e,t,r){return!!Lr(e,t,0,r)}function at(e,t){let r=/\\?./gsu;r.lastIndex=t;let s=e.length,n=0,o=1,a;for(;a=r.exec(e);){let[i]=a;if(i==="[")n++;else if(n)i==="]"&&n--;else if(i==="(")o++;else if(i===")"&&(o--,!o)){s=a.index;break}}return e.slice(t,s)}var ot={DEFAULT:"DEFAULT",CHAR_CLASS:"CHAR_CLASS",ENCLOSED_P:"ENCLOSED_P",ENCLOSED_U:"ENCLOSED_U",GROUP_NAME:"GROUP_NAME",INTERVAL_QUANTIFIER:"INTERVAL_QUANTIFIER",INVALID_INCOMPLETE_TOKEN:"INVALID_INCOMPLETE_TOKEN"},we={DEFAULT:"DEFAULT",ENCLOSED_P:"ENCLOSED_P",ENCLOSED_Q:"ENCLOSED_Q",ENCLOSED_U:"ENCLOSED_U",INVALID_INCOMPLETE_TOKEN:"INVALID_INCOMPLETE_TOKEN",RANGE:"RANGE"},$n=new Set([ot.ENCLOSED_P,ot.ENCLOSED_U]),vn=new Set([we.ENCLOSED_P,we.ENCLOSED_Q,we.ENCLOSED_U]),Pn=(()=>{try{new RegExp("(?i:)")}catch{return!1}return!0})(),Gn=(()=>{try{new RegExp("","v")}catch{return!1}return!0})(),it="$E$";var Rr=String.raw`\(\?<(?![=!])(?<captureName>[^>]+)>`,Tn=String.raw`\((?!\?)(?!(?<=\(\?\()DEFINE\))|${Rr}`,ct=String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;var Or=["Basic_Emoji","Emoji_Keycap_Sequence","RGI_Emoji_Modifier_Sequence","RGI_Emoji_Flag_Sequence","RGI_Emoji_Tag_Sequence","RGI_Emoji_ZWJ_Sequence","RGI_Emoji"].join("|"),Ln=new RegExp(String.raw` | ||
\v\f\x85\u2028\u2029])`));else if(s===W.grapheme){if(n==="strict")throw new Error(g`Use of "\X" requires non-strict accuracy`);let i=a?g`\p{RGI_Emoji}`:qe().source.replace(/\\u\{/g,g`\x{`);t(P(g`(?>\r\n|${i}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}))}else throw new Error(`Unexpected varcharset kind "${s}"`)}},Je={Alternative({node:e},{namedGroupsInScopeByAlt:t}){let n=ne(e);if(n){let a=t.get(n);a&&t.set(e,a)}},Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByBackreference:n}){let{orphan:a,ref:s}=e;a||n.set(e,[...t.get(s).map(({node:i})=>i)])},CapturingGroup:{enter({node:e,replaceWith:t,skip:n},{groupOriginByCopy:a,groupsWithDuplicateNamesToRemove:s,multiplexCapturesToLeftByRef:i,namedGroupsInScopeByAlt:o,openDirectCaptures:c,openSubroutineRefs:u}){let{name:l,number:f}=e,h=l??f,C=a.get(e),m=ne(e);if(u.has(h))throw new Error("Unsupported indirect recursion");if(C?u.add(h):c.add(e),c.has(C)){t(ze(h)),n();return}let A=O(i,h,[]);for(let S=0;S<A.length;S++){let F=A[S];if(C===F.node||C&&C===F.origin||e===F.origin){A.splice(S,1);break}}if(A.push({node:e,origin:C}),l){let S=O(o,m,new Map);S.has(l)&&s.add(S.get(l)),S.set(l,e);let F=ne(m);if(F)do O(o,F,new Map).set(l,e);while(F=ne(F))}},exit({node:e},{groupOriginByCopy:t,openDirectCaptures:n,openSubroutineRefs:a}){let{name:s,number:i}=e;t.get(e)?a.delete(s??i):n.delete(e)}},Group:{enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=M(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Subroutine(e,t){let{node:n,replaceWith:a}=e,{ref:s}=n,i=t.subroutineRefMap.get(s),o=s===0,c=o?ze(s):Ye(i,t.groupOriginByCopy,null),u=c;if(!o){let l=et(hr(i,h=>h.type===p.Group&&!!h.flags)),f=l?M(t.globalFlags,l):t.globalFlags;gr(f,t.currentFlags)||(u=X($({flags:Cr(f)}),[c]))}a(u),o||st(u,e,t,Je)}},fr={Backreference({node:e,replaceWith:t},n){if(e.orphan){n.highestOrphanBackref=Math.max(n.highestOrphanBackref,e.ref);return}let s=n.reffedNodesByBackreference.get(e).filter(i=>dr(i,e));if(!s.length)t(re({negate:!0}));else if(s.length>1){let i=s.map(o=>R(v(),[te(o.number)]));t(R($(),i))}else e.ref=s[0].number},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,t.groupsWithDuplicateNamesToRemove.has(e)&&delete e.name},Regex:{exit({node:e},t){let n=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let a=0;a<n;a++){let s=he();e.pattern.alternatives.at(-1).elements.push(s)}}}};function R(e,t){return t.forEach(n=>n.parent=e),e[me(e)]=t,e}function gr(e,t){return e.dotAll===t.dotAll&&e.ignoreCase===t.ignoreCase}function dr(e,t){let n=t;do{if(n.type===p.Pattern)return!1;if(n.type===p.Alternative)continue;if(n===e)return!1;let a=tt(n.parent);for(let s of a){if(s===n)break;if(s===e||nt(s,e))return!0}}while(n=n.parent);throw new Error("Unexpected path")}function Ye(e,t,n,a){let s=Array.isArray(e)?[]:{};for(let[i,o]of Object.entries(e))i==="parent"?s.parent=Array.isArray(n)?a:n:o&&typeof o=="object"?s[i]=Ye(o,t,s,n):(i==="type"&&o===p.CapturingGroup&&t.set(s,t.get(e)??e),s[i]=o);return s}function ze(e){return{type:p.Recursion,ref:e}}function hr(e,t){let n=[];for(;e=e.parent;)(!t||t(e))&&n.push(e);return n}function me(e){for(let t of["alternatives","classes","elements"])if(e[t])return t;return null}function et(e){let t=["dotAll","ignoreCase"],n={enable:{},disable:{}};return e.forEach(({flags:a})=>{t.forEach(s=>{a.enable?.[s]&&(delete n.disable[s],n.enable[s]=!0),a.disable?.[s]&&(n.disable[s]=!0)})}),Object.keys(n.enable).length||delete n.enable,Object.keys(n.disable).length||delete n.disable,n.enable||n.disable?n:null}function Cr({dotAll:e,ignoreCase:t}){let n={};return(e||t)&&(n.enable={},e&&(n.enable.dotAll=!0),t&&(n.enable.ignoreCase=!0)),(!e||!t)&&(n.disable={},!e&&(n.disable.dotAll=!0),!t&&(n.disable.ignoreCase=!0)),n}function tt(e){if(!e)throw new Error("Node expected");if(e.type===p.Quantifier)return[e.element];let t=me(e);return t&&e[t]}function rt(e){if(!e.length)return null;let t=e[0];if(I(t)&&!t.negate&&t.alternatives.length===1&&t.alternatives[0].elements.length){let a=t.alternatives[0].elements,s=t.kind===w.lookahead?0:a.length-1;if(a[s].kind===w.search_start)return a[s]}let n=e.find(a=>a.kind===w.search_start?!0:a.type!==p.Directive&&a.type!==p.Assertion&&!(a.type===p.Quantifier&&!a.min));if(!n)return null;if(n.kind===w.search_start)return n;if(n.type===p.Group||n.type===p.CapturingGroup){let a=[];for(let s of n.alternatives){let i=rt(s.elements);if(!i)return null;Array.isArray(i)?a.push(...i):a.push(i)}return a}return null}function ne(e){for(;e=e.parent;)if(e.type===p.Alternative)return e;return null}function nt(e,t){let n=tt(e)??[];for(let a of n)if(a===t||nt(a,t))return!0;return!1}function mr(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function P(e,{skipPropertyNameValidation:t}={}){let a=z(Q(e),{skipPropertyNameValidation:t}).pattern.alternatives;return a.length>1||a[0].elements.length>1?R($(),a):a[0].elements[0]}function X(e,t){let n=me(e);return e[n][0].parent=e,t&&R(e[n][0],t),e}function st(e,{parent:t,key:n,container:a},s,i){G({node:e,parent:t,key:n,container:a},s,i)}function ot(e,t){let n=J(t),a=j(n.target,"ES2024"),s=j(n.target,"ES2025"),i=n.maxRecursionDepth;if(i!==null&&(!Number.isInteger(i)||i<2||i>100))throw new Error("Invalid maxRecursionDepth; use 2-100 or null");let o=null,c=null;if(!s){let m=[e.flags.ignoreCase];G({node:e},{getCurrentModI:()=>m.at(-1),popModI(){m.pop()},pushModI(A){m.push(A)},setHasCasedChar(){m.at(-1)?o=!0:c=!0}},Er)}let u={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||o)&&!c)},l=null,f={accuracy:n.accuracy,appliedGlobalFlags:u,captureFlagIMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},groupNames:new Set,inCharClass:!1,lastNode:l,maxRecursionDepth:i,useAppliedIgnoreCase:!!(!s&&o&&c),useDuplicateNames:s,useFlagMods:s,useFlagV:a,usePostEs2018Properties:a,verbose:n.verbose};function h(m){switch(f.lastNode=l,l=m,m.type){case p.Regex:return{pattern:h(m.pattern),flags:h(m.flags),options:{...m.options}};case p.Alternative:return m.elements.map(h).join("");case p.Assertion:return Sr(m,f,h);case p.Backreference:return yr(m,f);case p.CapturingGroup:return xr(m,f,h);case p.Character:return br(m,f);case p.CharacterClass:return Fr(m,f,h);case p.CharacterClassIntersection:if(!f.useFlagV)throw new Error("Use of class intersection requires min target ES2024");return m.classes.map(h).join("&&");case p.CharacterClassRange:return Nr(m,f);case p.CharacterSet:return Ir(m,f);case p.Flags:return $r(m,f);case p.Group:return vr(m,f,h);case p.Pattern:return m.alternatives.map(h).join("|");case p.Quantifier:return h(m.element)+Lr(m);case p.Recursion:return Pr(m,f);default:throw new Error(`Unexpected node type "${m.type}"`)}}let C=h(e);return a||(delete C.options.force.v,C.options.disable.v=!0,C.options.unicodeSetsPlugin=null),C}var Er={AnyGroup:{enter({node:e},t){let n=t.getCurrentModI();t.pushModI(e.flags?M({ignoreCase:n},e.flags).ignoreCase:n)},exit(e,t){t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){Ee(_(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},n){t(),it(e,{firstOnly:!0}).length&&n.setHasCasedChar()},CharacterSet({node:e},t){e.kind===x.property&&fe.has(e.value)&&t.setHasCasedChar()}},wr=new Set(["$","(",")","*","+",".","?","[","\\","]","^","{","|","}"]),Ar=new Set(["-","\\","]","^"]),_r=new Set(["(",")","-","/","[","\\","]","^","{","|","}","!","#","$","%","&","*","+",",",".",":",";","<","=",">","?","@","`","~"]),at=new Map([[9,g`\t`],[10,g`\n`],[11,g`\v`],[12,g`\f`],[13,g`\r`],[8232,g`\u2028`],[8233,g`\u2029`],[65279,g`\uFEFF`]]),kr=/^\p{Cased}$/u;function Ee(e){return kr.test(e)}function Sr(e,t,n){let{kind:a,negate:s,alternatives:i}=e;if(I(e))return`(?${`${a===w.lookahead?"":"<"}${s?"!":"="}`}${i.map(n).join("|")})`;if(a===w.string_end)return"$";if(a===w.string_start)return"^";throw new Error(`Unexpected assertion kind "${a}"`)}function yr({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.captureFlagIMap.get(e))throw new Error("Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy");return"\\"+e}function xr({name:e,number:t,alternatives:n},a,s){return e&&(a.groupNames.has(e)?a.useDuplicateNames||(e=null):a.groupNames.add(e)),a.captureFlagIMap.set(t,a.currentFlags.ignoreCase),`(${e?`?<${e}>`:""}${n.map(s).join("|")})`}function br({value:e},t){let n=_(e),a=B(e,{isAfterBackref:t.lastNode.type===p.Backreference,inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(a!==n)return a;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&Ee(n)){let s=ce(n);return t.inCharClass?s.join(""):s.length>1?`[${s.join("")}]`:s[0]}return n}function Fr({negate:e,parent:t,elements:n},a,s){if(!e&&(!a.useFlagV||!a.verbose)&&t.type===p.CharacterClass&&n[0].type!==p.CharacterClassIntersection||!a.verbose&&t.type===p.CharacterClassIntersection&&n.length===1&&n[0].type!==p.CharacterClassRange)return n.map(s).join("");if(!a.useFlagV&&t.type===p.CharacterClass)throw new Error("Use of nested character class requires min target ES2024");a.inCharClass=!0;let i=`[${e?"^":""}${n.map(s).join("")}]`;return a.inCharClass=!1,i}function Nr(e,t){let n=e.min.value,a=e.max.value,s={isAfterBackref:!1,inCharClass:!0,useFlagV:t.useFlagV},i=B(n,s),o=B(a,s),c="";if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase){let u=it(e);Gr(u).forEach(f=>{c+=Array.isArray(f)?`${B(f[0],s)}-${B(f[1],s)}`:B(f,s)})}return`${i}-${o}${c}`}function Ir({kind:e,negate:t,value:n,key:a},s){if(e===x.dot)return s.currentFlags.dotAll?s.appliedGlobalFlags.dotAll||s.useFlagMods?".":"[^]":g`[^\n]`;if(e===x.digit)return t?g`\D`:g`\d`;if(e===x.property){if(!s.usePostEs2018Properties&&ye.has(n))throw new Error(`Unicode property "${n}" unavailable in target ES2018`);if(s.useAppliedIgnoreCase&&s.currentFlags.ignoreCase&&fe.has(n))throw new Error(`Unicode property "${n}" can't be case-insensitive when other chars have specific case`);return`${t?g`\P`:g`\p`}{${a?`${a}=`:""}${n}}`}if(e===x.word)return t?g`\W`:g`\w`;throw new Error(`Unexpected character set kind "${e}"`)}function $r(e,t){return(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":"")+(e.sticky?"y":"")}function vr({atomic:e,flags:t,parent:n,alternatives:a},s,i){let o=s.currentFlags;t&&(s.currentFlags=M(o,t));let c=a.map(i).join("|"),u=!s.verbose&&a.length===1&&n.type!==p.Quantifier&&!e&&(!s.useFlagMods||!t)?c:`(?${Tr(e,t,s.useFlagMods)}${c})`;return s.currentFlags=o,u}function Pr({ref:e},t){let n=t.maxRecursionDepth;if(!n)throw new Error("Use of recursion disabled");if(t.accuracy==="strict")throw new Error("Use of recursion requires non-strict accuracy due to depth limit");return e===0?`(?R=${n})`:g`\g<${e}&R=${n}>`}function it(e,{firstOnly:t}={}){let n=e.min.value,a=e.max.value,s=[];if(n<65&&(a===65535||a>=131071)||n===65536&&a>=131071)return s;for(let i=n;i<=a;i++){let o=_(i);if(!Ee(o))continue;let c=ce(o).filter(u=>{let l=u.codePointAt(0);return l<n||l>a});if(c.length&&(s.push(...c),t))break}return s}function B(e,{isAfterBackref:t,inCharClass:n,useFlagV:a}){if(at.has(e))return at.get(e);if(e<32||e>126&&e<160||e>262143||t&&Rr(e))return e>255?g`\u{${e.toString(16).toUpperCase()}}`:g`\x${e.toString(16).toUpperCase().padStart(2,"0")}`;let s=n?a?_r:Ar:wr,i=_(e);return(s.has(i)?"\\":"")+i}function Gr(e){let t=e.map(s=>s.codePointAt(0)).sort((s,i)=>s-i),n=[],a=null;for(let s=0;s<t.length;s++)t[s+1]===t[s]+1?a??=t[s]:a===null?n.push(t[s]):(n.push([a,t[s]]),a=null);return n}function Tr(e,t,n){if(e)return">";let a="";if(t&&n){let{enable:s,disable:i}=t;a=(s?.ignoreCase?"i":"")+(s?.dotAll?"s":"")+(i?"-":"")+(i?.ignoreCase?"i":"")+(i?.dotAll?"s":"")}return`${a}:`}function Lr({min:e,max:t,greedy:n,possessive:a}){let s;return!e&&t===1?s="?":!e&&t===1/0?s="*":e===1&&t===1/0?s="+":e===t?s=`{${e}}`:s=`{${e},${t===1/0?"":t}}`,s+(a?"+":n?"":"?")}function Rr(e){return e>47&&e<58}var b=Object.freeze({DEFAULT:"DEFAULT",CHAR_CLASS:"CHAR_CLASS"});function V(e,t,n,a){let s=new RegExp(String.raw`${t}|(?<$skip>\[\^?|\\?.)`,"gsu"),i=[!1],o=0,c="";for(let u of e.matchAll(s)){let{0:l,groups:{$skip:f}}=u;if(!f&&(!a||a===b.DEFAULT==!o)){n instanceof Function?c+=n(u,{context:o?b.CHAR_CLASS:b.DEFAULT,negated:i[i.length-1]}):c+=n;continue}l[0]==="["?(o++,i.push(l[1]==="^")):l==="]"&&o&&(o--,i.pop()),c+=l}return c}function we(e,t,n,a){V(e,t,n,a)}function Or(e,t,n=0,a){if(!new RegExp(t,"su").test(e))return null;let s=new RegExp(`${t}|(?<$skip>\\\\?.)`,"gsu");s.lastIndex=n;let i=0,o;for(;o=s.exec(e);){let{0:c,groups:{$skip:u}}=o;if(!u&&(!a||a===b.DEFAULT==!i))return o;c==="["?i++:c==="]"&&i&&i--,s.lastIndex==o.index&&s.lastIndex++}return null}function se(e,t,n){return!!Or(e,t,0,n)}function ct(e,t){let n=/\\?./gsu;n.lastIndex=t;let a=e.length,s=0,i=1,o;for(;o=n.exec(e);){let[c]=o;if(c==="[")s++;else if(s)c==="]"&&s--;else if(c==="(")i++;else if(c===")"&&(i--,!i)){a=o.index;break}}return e.slice(t,a)}var ut={DEFAULT:"DEFAULT",CHAR_CLASS:"CHAR_CLASS",ENCLOSED_P:"ENCLOSED_P",ENCLOSED_U:"ENCLOSED_U",GROUP_NAME:"GROUP_NAME",INTERVAL_QUANTIFIER:"INTERVAL_QUANTIFIER",INVALID_INCOMPLETE_TOKEN:"INVALID_INCOMPLETE_TOKEN"},Ae={DEFAULT:"DEFAULT",ENCLOSED_P:"ENCLOSED_P",ENCLOSED_Q:"ENCLOSED_Q",ENCLOSED_U:"ENCLOSED_U",INVALID_INCOMPLETE_TOKEN:"INVALID_INCOMPLETE_TOKEN",RANGE:"RANGE"},Rn=new Set([ut.ENCLOSED_P,ut.ENCLOSED_U]),On=new Set([Ae.ENCLOSED_P,Ae.ENCLOSED_Q,Ae.ENCLOSED_U]),Un=(()=>{try{new RegExp("(?i:)")}catch{return!1}return!0})(),Dn=(()=>{try{new RegExp("","v")}catch{return!1}return!0})(),lt="$E$";var Ur=String.raw`\(\?<(?![=!])(?<captureName>[^>]+)>`,Mn=String.raw`\((?!\?)(?!(?<=\(\?\()DEFINE\))|${Ur}`,pt=String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;var Dr=["Basic_Emoji","Emoji_Keycap_Sequence","RGI_Emoji_Modifier_Sequence","RGI_Emoji_Flag_Sequence","RGI_Emoji_Tag_Sequence","RGI_Emoji_ZWJ_Sequence","RGI_Emoji"].join("|"),Bn=new RegExp(String.raw` | ||
\\(?: c[A-Za-z] | ||
| p\{(?<pStrProp>${Or})\} | ||
| p\{(?<pStrProp>${Dr})\} | ||
| [pP]\{[^\}]+\} | ||
@@ -53,3 +53,3 @@ | (?<qStrProp>q) | ||
| . | ||
`.replace(/\s+/g,""),"gsu");var Rn=new RegExp(String.raw` | ||
`.replace(/\s+/g,""),"gsu");var Vn=new RegExp(String.raw` | ||
(?<groupN>\(\?<(?![=!])|\\[gk]<) | ||
@@ -67,3 +67,3 @@ | (?<enclosedPU>\\[pPu]\{) | ||
| \\?. | ||
`.replace(/\s+/g,""),"gsu");function ut(e,t,r,s){return e.slice(0,t)+s+e.slice(t+r.length)}var lt=new RegExp(String.raw`(?<noncapturingStart>${ct})|(?<capturingStart>\((?:\?<[^>]+>)?)|\\?.`,"gsu");function pt(e,t){if(!/\(\?>/.test(e))return e;let r="(?>",s=`(?:(?=(${t?.useEmulationGroups?it:""}`,n=[0],o=0,a=0,i=NaN,u;do{u=!1;let c=0,p=0,g=!1,C;for(lt.lastIndex=Number.isNaN(i)?0:i+s.length;C=lt.exec(e);){let{0:d,index:w,groups:{capturingStart:k,noncapturingStart:b}}=C;if(d==="[")c++;else if(c)d==="]"&&c--;else if(d===r&&!g)i=w,g=!0;else if(g&&b)p++;else if(k)g?p++:(o++,n.push(o+a));else if(d===")"&&g){if(!p){a++,e=`${e.slice(0,i)}${s}${e.slice(i+r.length,w)}))<$$${a+o}>)${e.slice(w+1)}`,u=!0;break}p--}}}while(u);return e=B(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:c,groups:{backrefNum:p,wrappedBackrefNum:g}})=>{if(p){let C=+p;if(C>n.length-1)throw new Error(`Backref "${c}" greater than number of captures`);return`\\${n[C]}`}return`\\${g}`},x.DEFAULT),e}var ft=String.raw`(?:[?*+]|\{\d+(?:,\d*)?\})`,Ae=new RegExp(String.raw` | ||
`.replace(/\s+/g,""),"gsu");function ft(e,t,n,a){return e.slice(0,t)+a+e.slice(t+n.length)}var gt=new RegExp(String.raw`(?<noncapturingStart>${pt})|(?<capturingStart>\((?:\?<[^>]+>)?)|\\?.`,"gsu");function dt(e,t){if(!/\(\?>/.test(e))return e;let n="(?>",a=`(?:(?=(${t?.useEmulationGroups?lt:""}`,s=[0],i=0,o=0,c=NaN,u;do{u=!1;let l=0,f=0,h=!1,C;for(gt.lastIndex=Number.isNaN(c)?0:c+a.length;C=gt.exec(e);){let{0:m,index:A,groups:{capturingStart:S,noncapturingStart:F}}=C;if(m==="[")l++;else if(l)m==="]"&&l--;else if(m===n&&!h)c=A,h=!0;else if(h&&F)f++;else if(S)h?f++:(i++,s.push(i+o));else if(m===")"&&h){if(!f){o++,e=`${e.slice(0,c)}${a}${e.slice(c+n.length,A)}))<$$${o+i}>)${e.slice(A+1)}`,u=!0;break}f--}}}while(u);return e=V(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:l,groups:{backrefNum:f,wrappedBackrefNum:h}})=>{if(f){let C=+f;if(C>s.length-1)throw new Error(`Backref "${l}" greater than number of captures`);return`\\${s[C]}`}return`\\${h}`},b.DEFAULT),e}var ht=String.raw`(?:[?*+]|\{\d+(?:,\d*)?\})`,_e=new RegExp(String.raw` | ||
\\(?: \d+ | ||
@@ -81,5 +81,5 @@ | c[A-Za-z] | ||
))? | ||
| (?<qBase>${ft})(?<qMod>[?+]?)(?<invalidQ>[?*+\{]?) | ||
| (?<qBase>${ht})(?<qMod>[?+]?)(?<invalidQ>[?*+\{]?) | ||
| \\?. | ||
`.replace(/\s+/g,""),"gsu");function gt(e){if(!new RegExp(`${ft}\\+`).test(e))return e;let t=[],r=null,s=null,n="",o=0,a;for(Ae.lastIndex=0;a=Ae.exec(e);){let{0:i,index:u,groups:{qBase:c,qMod:p,invalidQ:g}}=a;if(i==="[")o||(s=u),o++;else if(i==="]")o?o--:s=null;else if(!o)if(p==="+"&&n&&!n.startsWith("(")){if(g)throw new Error(`Invalid quantifier "${i}"`);let C=-1;if(/^\{\d+\}$/.test(c))e=ut(e,u+c.length,p,"");else{if(n===")"||n==="]"){let d=n===")"?r:s;if(d===null)throw new Error(`Invalid unmatched "${n}"`);e=`${e.slice(0,d)}(?>${e.slice(d,u)}${c})${e.slice(u+i.length)}`}else e=`${e.slice(0,u-n.length)}(?>${n}${c})${e.slice(u+i.length)}`;C+=4}Ae.lastIndex+=C}else i[0]==="("?t.push(u):i===")"&&(r=t.length?t.pop():null);n=i}return e}var Ur=String.raw`\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`,_e=String.raw`\(\?R=(?<rDepth>[^\)]+)\)|${Ur}`,ke=String.raw`\(\?<(?![=!])(?<captureName>[^>]+)>`,O=new RegExp(String.raw`${ke}|${_e}|\\?.`,"gsu");function Et(e){if(!new RegExp(_e,"su").test(e))return e;if(ne(e,String.raw`\\[1-9]`,x.DEFAULT))throw new Error("Numbered backrefs cannot be used with recursion; use named backref");if(ne(e,String.raw`\(\?\(DEFINE\)`,x.DEFAULT))throw new Error("DEFINE groups cannot be used with recursion");let t=new Map,r=[],s=0,n=0,o;for(O.lastIndex=0;o=O.exec(e);){let{0:a,groups:{captureName:i,rDepth:u,gRNameOrNum:c,gRDepth:p}}=o;if(a==="[")s++;else if(s)a==="]"&&s--;else if(u){ht(u);let g=e.slice(0,o.index),C=e.slice(O.lastIndex);return dt(C),Ct(g,C,+u,!1)}else if(c){if(ht(p),dt(e.slice(O.lastIndex)),!r.some(k=>k.name===c||k.num===+c))throw new Error(`Recursion via \\g<${c}&R=${p}> must be used within the referenced group`);let g=t.get(c),C=at(e,g),d=e.slice(g,o.index),w=C.slice(d.length+a.length);return e.slice(0,g)+Ct(d,w,+p,!0)+e.slice(g+C.length)}else if(i)n++,t.set(String(n),O.lastIndex),t.set(i,O.lastIndex),r.push({num:n,name:i});else if(a.startsWith("(")){let g=a==="(";g&&(n++,t.set(String(n),O.lastIndex)),r.push(g?{num:n}:{})}else a===")"&&r.pop()}return e}function ht(e){let 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 dt(e){if(ne(e,_e,x.DEFAULT))throw new Error("Recursion can only be used once per regex")}function Ct(e,t,r,s){let n=new Set;s&&Ee(e+t,ke,({groups:{captureName:a}})=>{n.add(a)},x.DEFAULT);let o=r-1;return`${e}${mt(`(?:${e}`,o,s?n:null)}(?:)${mt(`${t})`,o,s?n:null,"backward")}${t}`}function mt(e,t,r,s="forward"){let o=i=>s==="backward"?t-i+2-1:i+2,a="";for(let i=0;i<t;i++){let u=o(i);a+=B(e,String.raw`${ke}|\\k<(?<backref>[^>]+)>`,({0:c,groups:{captureName:p,backref:g}})=>{if(g&&r&&!r.has(g))return c;let C=`_$${u}`;return p?`(?<${p}${C}>`:`\\k<${g}${C}>`},x.DEFAULT)}return a}function wt(e,t){let r=Z(t),s=K(e,r.flags),n=q(s,{skipBackrefValidation:r.tmGrammar,verbose:r.verbose}),o=We(n,{accuracy:r.accuracy,avoidSubclass:r.avoidSubclass,bestEffortTarget:r.target}),a=nt(o,r),i=pt(gt(Et(a.pattern))),u;o._strategy&&(i=i.replace(/\(\?:\\p{sc=<<}\|(.*?)\|\\p{sc=>>}\)/s,(p,g)=>(u=g,"")));let c={pattern:i,flags:`${r.hasIndices?"d":""}${r.global?"g":""}${a.flags}${a.options.disable.v?"u":"v"}`};return o._strategy&&(c.strategy={...o._strategy},u&&(c.strategy.subpattern=u)),c}function Dr(e,t){return q(K(e,t?.flags))}function Mr(e,t){let r=wt(e,t);return r.strategy?new se(r.pattern,r.flags,r.strategy):new RegExp(r.pattern,r.flags)}var se=class e extends RegExp{#e;constructor(t,r,s){super(t,r),s?this.#e=s:t instanceof e&&(this.#e=t.#e)}exec(t){let r=this.global||this.sticky,s=this.lastIndex,n=RegExp.prototype.exec;if(this.#e.name==="line_or_search_start"&&r&&this.lastIndex){this.lastIndex=0;let a=n.call(this,t.slice(s));return a&&(a.input=t,a.index+=s,this.lastIndex+=s),a}let o=r?this:new RegExp(this,`g${this.flags}`);if(this.#e.name==="not_search_start"){let a=n.call(this,t);return a?.index===s&&(o.lastIndex=a.index+1,a=n.call(o,t)),a}if(this.#e.name==="after_search_start_or_subpattern"){let a=n.call(this,t);if(!a||a.index===s)return a;let i=new RegExp(`(?:${this.#e.subpattern})$`);for(;a;){if(i.exec(t.slice(0,a.index)))return a;o.lastIndex=a.index+1,a=n.call(o,t)}return a}return n.call(this,t)}};return xt(Br);})(); | ||
`.replace(/\s+/g,""),"gsu");function Ct(e){if(!new RegExp(`${ht}\\+`).test(e))return e;let t=[],n=null,a=null,s="",i=0,o;for(_e.lastIndex=0;o=_e.exec(e);){let{0:c,index:u,groups:{qBase:l,qMod:f,invalidQ:h}}=o;if(c==="[")i||(a=u),i++;else if(c==="]")i?i--:a=null;else if(!i)if(f==="+"&&s&&!s.startsWith("(")){if(h)throw new Error(`Invalid quantifier "${c}"`);let C=-1;if(/^\{\d+\}$/.test(l))e=ft(e,u+l.length,f,"");else{if(s===")"||s==="]"){let m=s===")"?n:a;if(m===null)throw new Error(`Invalid unmatched "${s}"`);e=`${e.slice(0,m)}(?>${e.slice(m,u)}${l})${e.slice(u+c.length)}`}else e=`${e.slice(0,u-s.length)}(?>${s}${l})${e.slice(u+c.length)}`;C+=4}_e.lastIndex+=C}else c[0]==="("?t.push(u):c===")"&&(n=t.length?t.pop():null);s=c}return e}var Mr=String.raw`\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`,ke=String.raw`\(\?R=(?<rDepth>[^\)]+)\)|${Mr}`,Se=String.raw`\(\?<(?![=!])(?<captureName>[^>]+)>`,D=new RegExp(String.raw`${Se}|${ke}|\\?.`,"gsu");function _t(e){if(!new RegExp(ke,"su").test(e))return e;if(se(e,String.raw`\\[1-9]`,b.DEFAULT))throw new Error("Numbered backrefs cannot be used with recursion; use named backref");if(se(e,String.raw`\(\?\(DEFINE\)`,b.DEFAULT))throw new Error("DEFINE groups cannot be used with recursion");let t=new Map,n=[],a=0,s=0,i;for(D.lastIndex=0;i=D.exec(e);){let{0:o,groups:{captureName:c,rDepth:u,gRNameOrNum:l,gRDepth:f}}=i;if(o==="[")a++;else if(a)o==="]"&&a--;else if(u){mt(u);let h=e.slice(0,i.index),C=e.slice(D.lastIndex);return Et(C),wt(h,C,+u,!1)}else if(l){if(mt(f),Et(e.slice(D.lastIndex)),!n.some(S=>S.name===l||S.num===+l))throw new Error(`Recursion via \\g<${l}&R=${f}> must be used within the referenced group`);let h=t.get(l),C=ct(e,h),m=e.slice(h,i.index),A=C.slice(m.length+o.length);return e.slice(0,h)+wt(m,A,+f,!0)+e.slice(h+C.length)}else if(c)s++,t.set(String(s),D.lastIndex),t.set(c,D.lastIndex),n.push({num:s,name:c});else if(o.startsWith("(")){let h=o==="(";h&&(s++,t.set(String(s),D.lastIndex)),n.push(h?{num:s}:{})}else o===")"&&n.pop()}return e}function mt(e){let 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 Et(e){if(se(e,ke,b.DEFAULT))throw new Error("Recursion can only be used once per regex")}function wt(e,t,n,a){let s=new Set;a&&we(e+t,Se,({groups:{captureName:o}})=>{s.add(o)},b.DEFAULT);let i=n-1;return`${e}${At(`(?:${e}`,i,a?s:null)}(?:)${At(`${t})`,i,a?s:null,"backward")}${t}`}function At(e,t,n,a="forward"){let i=c=>a==="backward"?t-c+2-1:c+2,o="";for(let c=0;c<t;c++){let u=i(c);o+=V(e,String.raw`${Se}|\\k<(?<backref>[^>]+)>`,({0:l,groups:{captureName:f,backref:h}})=>{if(h&&n&&!n.has(h))return l;let C=`_$${u}`;return f?`(?<${f}${C}>`:`\\k<${h}${C}>`},b.DEFAULT)}return o}function kt(e,t){let n=J(t),a=Q(e,n.flags),s=z(a,{skipBackrefValidation:n.tmGrammar,verbose:n.verbose}),i=Xe(s,{accuracy:n.accuracy,avoidSubclass:n.avoidSubclass,bestEffortTarget:n.target}),o=ot(i,n),c=dt(Ct(_t(o.pattern))),u;i._strategy&&(c=c.replace(/\(\?:\\p{sc=<<}\|(.*?)\|\\p{sc=>>}\)/s,(f,h)=>(u=h,"")));let l={pattern:c,flags:`${n.hasIndices?"d":""}${n.global?"g":""}${o.flags}${o.options.disable.v?"u":"v"}`};return i._strategy&&(l.strategy={...i._strategy},u&&(l.strategy.subpattern=u)),l}function Br(e,t){return z(Q(e,t?.flags))}function Vr(e,t){let n=kt(e,t);return n.strategy?new ae(n.pattern,n.flags,n.strategy):new RegExp(n.pattern,n.flags)}var ae=class e extends RegExp{#e;constructor(t,n,a){super(t,n),a?this.#e=a:t instanceof e&&(this.#e=t.#e)}exec(t){let n=this.global||this.sticky,a=this.lastIndex,s=RegExp.prototype.exec;if(this.#e.name==="line_or_search_start"&&n&&this.lastIndex){this.lastIndex=0;let o=s.call(this,t.slice(a));return o&&(o.input=t,o.index+=a,this.lastIndex+=a),o}let i=n?this:new RegExp(this,`g${this.flags}`);if(this.#e.name==="not_search_start"){let o=s.call(this,t);return o?.index===a&&(i.lastIndex=o.index+1,o=s.call(i,t)),o}if(this.#e.name==="after_search_start_or_subpattern"){let o=s.call(this,t);if(!o||o.index===a)return o;let c=new RegExp(`(?:${this.#e.subpattern})$`);for(;o;){if(c.exec(t.slice(0,o.index)))return o;i.lastIndex=o.index+1,o=s.call(i,t)}return o}return s.call(this,t)}};return Nt(jr);})(); | ||
//# sourceMappingURL=index.min.js.map |
{ | ||
"name": "oniguruma-to-es", | ||
"version": "0.1.1", | ||
"version": "0.1.2", | ||
"description": "Convert Oniguruma patterns to native JavaScript regexes", | ||
@@ -5,0 +5,0 @@ "author": "Steven Levithan", |
@@ -6,17 +6,14 @@ # Oniguruma-To-ES | ||
A lightweight **Oniguruma to JavaScript RegExp transpiler** that runs in the browser and on your server. Use it to: | ||
An **[Oniguruma](https://github.com/kkos/oniguruma) to JavaScript regex transpiler** that runs in the browser and on your server. Use it to: | ||
- Take advantage of Oniguruma's many extended regex featrures in JavaScript. | ||
- Run regexes intended for Oniguruma in JavaScript, such as those used in TextMate grammars (used by VS Code, [Shiki](https://shiki.matsu.io/) syntax highlighter, etc.). | ||
- Run regexes written for Oniguruma from JavaScript, such as those used in TextMate grammars (used by VS Code, [Shiki](https://shiki.matsu.io/) syntax highlighter, etc.). | ||
- Share regexes across your Ruby and JavaScript code. | ||
Compared to running the actual [Oniguruma](https://github.com/kkos/oniguruma) C library in JavaScript via WASM bindings (e.g. via [vscode-oniguruma](https://github.com/microsoft/vscode-oniguruma)), this library is **much lighter weight** (the WASM binary alone is 460+ KB) and its regexes typically **run much faster** since they run as native JavaScript. | ||
Compared to running the Oniguruma C library via WASM bindings using [vscode-oniguruma](https://github.com/microsoft/vscode-oniguruma), this library is **more than 96% smaller** and its regexes typically **run much faster** since they run as native JavaScript. | ||
### [Try the demo REPL](https://slevithan.github.io/oniguruma-to-es/demo/) | ||
Oniguruma-To-ES deeply understands all of the hundreds of large and small differences in Oniguruma and JavaScript regex syntax and behavior across multiple JavaScript version targets. It's *obsessive* about precisely following Oniguruma syntax rules and ensuring that the emulated features it supports have **exactly the same behavior**, even in extreme edge cases. And it's battle-tested on thousands of real-world Oniguruma regexes used in TextMate grammars (via the Shiki library). A few uncommon features can't be perfectly emulated and allow rare differences, but if you don't want to allow this, you can set the `accuracy` option to throw for such patterns (see details below). | ||
Oniguruma-To-ES deeply understands the hundreds of large and small differences between Oniguruma and JavaScript regex syntax and behavior across multiple JavaScript version targets. It's *obsessive* about ensuring that the emulated features it supports have **exactly the same behavior**, even in extreme edge cases. And it's been battle-tested on thousands of real-world Oniguruma regexes used in TextMate grammars (via the Shiki library). A few uncommon features can't be perfectly emulated and allow rare differences, but if you don't want to allow this, you can set the `accuracy` option to throw for such patterns (see details below). | ||
> [!NOTE] | ||
> This library is currently in beta and has several known bugs. However, it's already quite robust and is ready for use. Please report any issues. | ||
## 📜 Contents | ||
@@ -40,3 +37,3 @@ | ||
const pattern = '…'; | ||
// Works with all string/regexp methods since it returns a native JS regexp | ||
// Works with all string/regexp methods since it returns a native regexp | ||
str.match(toRegExp(pattern)); | ||
@@ -71,3 +68,3 @@ ``` | ||
Transpiles an Oniguruma pattern and returns a JavaScript `RegExp`. | ||
Accepts an Oniguruma pattern and returns an equivalent JavaScript `RegExp`. | ||
@@ -94,3 +91,3 @@ > [!TIP] | ||
maxRecursionDepth?: number | null; | ||
target?: 'ES2018' | 'ES2024' | 'ESNext'; | ||
target?: 'ES2018' | 'ES2024' | 'ES2025'; | ||
tmGrammar?: boolean; | ||
@@ -105,3 +102,3 @@ verbose?: boolean; | ||
Transpiles an Oniguruma pattern to the parts needed to construct a JavaScript `RegExp`. | ||
Accepts an Oniguruma pattern and returns the details needed to construct an equivalent JavaScript `RegExp`. | ||
@@ -122,9 +119,9 @@ ```ts | ||
The returned `flags` (as well as the `pattern`, of course) might be different than those provided, as a result of the emulation process. The returned `pattern`, `flags`, and `strategy` can be provided as arguments to the `EmulatedRegExp` constructor to produce the same result as `toRegExp`. | ||
Note that the returned `flags` might also be different than those provided, as a result of the emulation process. The returned `pattern`, `flags`, and `strategy` can be provided as arguments to the `EmulatedRegExp` constructor to produce the same result as `toRegExp`. | ||
If the only keys returned are `pattern` and `flags`, they can optionally be provided to JavaScript's `RegExp` constructor instead. Setting option `avoidSubclass` to `true` ensures that this is always the case, and any patterns that rely on `EmulatedRegExp`'s additional handling for emulation throw an error. | ||
If the only keys returned are `pattern` and `flags`, they can optionally be provided to JavaScript's `RegExp` constructor instead. Setting option `avoidSubclass` to `true` ensures that this is always the case, by throwing an error for any patterns that rely on `EmulatedRegExp`'s additional handling. | ||
### `toOnigurumaAst` | ||
Generates an Oniguruma AST from an Oniguruma pattern. | ||
Returns an Oniguruma AST generated from an Oniguruma pattern. | ||
@@ -142,3 +139,3 @@ ```ts | ||
Works the same as the native JavaScript `RegExp` constructor in all contexts, but can be provided results from `toDetails` to produce the same result as `toRegExp`. | ||
Works the same as JavaScript's native `RegExp` constructor in all contexts, but can be given results from `toDetails` to produce the same result as `toRegExp`. | ||
@@ -185,3 +182,3 @@ ```ts | ||
- All targets (`ESNext` and earlier): | ||
- All targets (`ES2025` and earlier): | ||
- Enables use of `\X` using a close approximation of a Unicode extended grapheme cluster. | ||
@@ -247,3 +244,3 @@ - Enables recursion (e.g. via `\g<0>`) with a depth limit specified by option `maxRecursionDepth`. | ||
One of `'ES2018'`, `'ES2024'` *(default)*, or `'ESNext'`. | ||
One of `'ES2018'`, `'ES2024'` *(default)*, or `'ES2025'`. | ||
@@ -261,3 +258,3 @@ Sets the JavaScript language version for the generated pattern and flags. Later targets allow faster processing, simpler generated source, and support for additional features. | ||
- Generated regexes require Node.js 20 or any 2023-era browser ([compat table](https://caniuse.com/mdn-javascript_builtins_regexp_unicodesets)). | ||
- `ESNext`: Uses JS flag `v` and allows use of flag groups and duplicate group names. | ||
- `ES2025`: Uses JS flag `v` and allows use of flag groups and duplicate group names. | ||
- Benefits: Faster transpilation, simpler generated source, and duplicate group names are preserved across separate alternation paths. | ||
@@ -284,3 +281,3 @@ - Generated regexes might use features that require Node.js 23 or a 2024-era browser (except Safari, which lacks support for flag groups). | ||
> [!NOTE] | ||
> Targets `ES2024` and `ESNext` have the same emulation capabilities. Resulting regexes might have different source and flags, but they match the same strings. | ||
> Targets `ES2024` and `ES2025` have the same emulation capabilities. Resulting regexes might have different source and flags, but they match the same strings. | ||
@@ -970,3 +967,3 @@ Notice that nearly every feature below has at least subtle differences from JavaScript. Some features and subfeatures listed as unsupported are not emulatable using native JavaScript regexes, but support for others might be added in future versions of this library. Unsupported features throw an error. | ||
- Character class intersection and nested negated character classes are unsupported with target `ES2018`. Use target `ES2024` or later if you need support for these features. | ||
- With targets before `ESNext`, a handful of Unicode properties that target a specific character case (ex: `\p{Lower}`) can't be used case-insensitively in patterns that contain other characters with a specific case that are used case-sensitively. | ||
- With targets before `ES2025`, a handful of Unicode properties that target a specific character case (ex: `\p{Lower}`) can't be used case-insensitively in patterns that contain other characters with a specific case that are used case-sensitively. | ||
- In other words, almost every usage is fine, including `A\p{Lower}`, `(?i:A\p{Lower})`, `(?i:A)\p{Lower}`, `(?i:A(?-i:\p{Lower}))`, and `\w(?i:\p{Lower})`, but not `A(?i:\p{Lower})`. | ||
@@ -973,0 +970,0 @@ - Using these properties case-insensitively is basically never done intentionally, so you're unlikely to encounter this error unless it's catching a mistake. |
@@ -8,3 +8,3 @@ export type Options = { | ||
maxRecursionDepth?: number | null; | ||
target?: "ES2018" | "ES2024" | "ESNext"; | ||
target?: "ES2018" | "ES2024" | "ES2025"; | ||
tmGrammar?: boolean; | ||
@@ -14,2 +14,3 @@ verbose?: boolean; | ||
/** | ||
Works the same as JavaScript's native `RegExp` constructor in all contexts, but can be given results from `toDetails` to produce the same result as `toRegExp`. | ||
@class | ||
@@ -41,3 +42,3 @@ @param {string | EmulatedRegExp} pattern | ||
/** | ||
Transpiles an Oniguruma pattern to the parts needed to construct a native JavaScript `RegExp`. | ||
Accepts an Oniguruma pattern and returns the details needed to construct an equivalent JavaScript `RegExp`. | ||
@param {string} pattern Oniguruma regex pattern. | ||
@@ -63,3 +64,3 @@ @param {Options} [options] | ||
/** | ||
Generates an Oniguruma AST from an Oniguruma pattern. | ||
Returns an Oniguruma AST generated from an Oniguruma pattern. | ||
@param {string} pattern Oniguruma regex pattern. | ||
@@ -75,3 +76,3 @@ @param {{ | ||
/** | ||
Transpiles an Oniguruma pattern and returns a native JavaScript `RegExp`. | ||
Accepts an Oniguruma pattern and returns an equivalent JavaScript `RegExp`. | ||
@param {string} pattern Oniguruma regex pattern. | ||
@@ -78,0 +79,0 @@ @param {Options} [options] |
@@ -10,3 +10,3 @@ export namespace Accuracy { | ||
let ES2024: number; | ||
let ESNext: number; | ||
let ES2025: number; | ||
} | ||
@@ -24,4 +24,4 @@ /** | ||
export { ES2024_1 as ES2024 }; | ||
let ESNext_1: "ESNext"; | ||
export { ESNext_1 as ESNext }; | ||
let ES2025_1: "ES2025"; | ||
export { ES2025_1 as ES2025 }; | ||
} |
@@ -11,2 +11,3 @@ export type RegexAst = { | ||
}; | ||
export function adoptAndSwapKids(parent: any, kids: any): any; | ||
/** | ||
@@ -26,6 +27,6 @@ @typedef {{ | ||
Transforms an Oniguruma AST in-place to a [Regex+](https://github.com/slevithan/regex) AST. | ||
Targets `ESNext`, expecting the generator to then down-convert to the desired JS target version. | ||
Assumes target ES2025, expecting the generator to down-convert to the desired JS target version. | ||
Regex+'s syntax and behavior is a strict superset of native JavaScript, so the AST is very close | ||
to representing native ESNext `RegExp` but with some added features (atomic groups, possessive | ||
to representing native ES2025 `RegExp` but with some added features (atomic groups, possessive | ||
quantifiers, recursion). The AST doesn't use some of Regex+'s extended features like flag `x` or | ||
@@ -45,3 +46,3 @@ subroutines because they follow PCRE behavior and work somewhat differently than in Oniguruma. The | ||
avoidSubclass?: boolean; | ||
bestEffortTarget?: "ES2018" | "ES2024" | "ESNext"; | ||
bestEffortTarget?: "ES2018" | "ES2024" | "ES2025"; | ||
}): RegexAst; |
@@ -15,4 +15,4 @@ export const cp: any; | ||
*/ | ||
export function isMinTarget(target: "ES2018" | "ES2024" | "ESNext", min: "ES2018" | "ES2024" | "ESNext"): boolean; | ||
export function isMinTarget(target: "ES2018" | "ES2024" | "ES2025", min: "ES2018" | "ES2024" | "ES2025"): boolean; | ||
export const r: any; | ||
export function throwIfNot(value: any, msg: any): any; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
682196
17
4037
978