142 lines
53 KiB
JavaScript
142 lines
53 KiB
JavaScript
|
var OnigurumaToEs=(()=>{var be=Object.defineProperty;var Tt=Object.getOwnPropertyDescriptor;var Rt=Object.getOwnPropertyNames;var Ut=Object.prototype.hasOwnProperty;var Dt=(e,t)=>{for(var r in t)be(e,r,{get:t[r],enumerable:!0})},Bt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Rt(t))!Ut.call(e,s)&&s!==r&&be(e,s,{get:()=>t[s],enumerable:!(n=Tt(t,s))||n.enumerable});return e};var Vt=e=>Bt(be({},"__esModule",{value:!0}),e);var pn={};Dt(pn,{EmulatedRegExp:()=>oe,toOnigurumaAst:()=>un,toRegExp:()=>ln,toRegExpDetails:()=>Lt});var x=String.fromCodePoint,g=String.raw,D={flagGroups:(()=>{try{new RegExp("(?i:)")}catch{return!1}return!0})(),unicodeSets:(()=>{try{new RegExp("","v")}catch{return!1}return!0})()};D.literalHyphenIncorrectlyCreatesRange=(()=>{if(!D.unicodeSets)return!1;try{new RegExp(g`[\d\-a]`,"v")}catch{return!0}return!1})();function Q(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 J(e,t){return ke[e]>=ke[t]}function I(e,t){if(!e)throw new Error(t??"Value expected");return e}var ke={ES2025:2025,ES2024:2024,ES2018:2018},jt={auto:"auto",ES2025:"ES2025",ES2024:"ES2024",ES2018:"ES2018"};function pe(e){if(e?.target!==void 0&&!jt[e.target])throw new Error(`Unexpected target "${e.target}"`);let t={accuracy:"default",avoidSubclass:!1,flags:"",global:!1,hasIndices:!1,lazyCompileLength:1/0,target:"auto",verbose:!1,...e,rules:{allowOrphanBackrefs:!1,asciiWordBoundaries:!1,captureGroup:!1,recursionLimit:20,singleline:!1,...e?.rules}};return t.target==="auto"&&(t.target=D.flagGroups?"ES2025":D.unicodeSets?"ES2024":"ES2018"),t}var Wt=new Set([x(304),x(305)]);function Ae(e){if(Wt.has(e))return[e];let t=new Set,r=e.toLowerCase(),n=r.toUpperCase(),s=Qt.get(r),a=zt.get(r),i=Kt.get(r);return[...n].length===1&&t.add(n),i&&t.add(i),s&&t.add(s),t.add(r),a&&t.add(a),[...t]}var xe=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`.split(/\s/)),Ee=new Map;for(let e of xe)Ee.set(Y(e),e);var Ht=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"]),Se=new Map;for(let e of Ht)Se.set(Y(e),e);var zt=new Map([["s",x(383)],[x(383),"s"]]),Kt=new Map([[x(223),x(7838)],[x(107),x(8490)],[x(229),x(8491)],[x(969),x(8486)]]),Qt=new Map([B(453),B(456),B(459),B(498),...ye(8072,8079),...ye(8088,8095),...ye(8104,8111),B(8124),B(8140),B(8188)]),fe=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}`]]),He=new Set(["alnum","blank","graph","print","word","xdigit"]);function qt(e,t){let r=[];for(let n=e;n<=t;n++)r.push(n);return r}function Y(e){return e.replace(/[- _]+/g,"").toLowerCase()}function B(e){let t=x(e);return[t.toLowerCase(),t]}function ye(e,t){return qt(e,t).map(r=>B(r))}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"},S={any:"any",digit:"digit",dot:"dot",hex:"hex",non_newline:"non_newline",posix:"posix",property:"property",space:"space",word:"word"},ee={flags:"flags",keep:"keep"},F={absent_repeater:"absent_repeater",atomic:"atomic",capturing:"capturing",group:"group",lookahead:"lookahead",lookbehind:"lookbehind"},ze=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]),Qe=g`\[\^?`,qe=`c.? | C(?:-.?)?|${g`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${g`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${g`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${g`o\{[^\}]*\}?`}|${g`\d{1,3}`}`,Xe=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,he=new RegExp(g`
|
||
|
\\ (?:
|
||
|
${qe}
|
||
|
| [gk]<[^>]*>?
|
||
|
| [gk]'[^']*'?
|
||
|
| .
|
||
|
)
|
||
|
| \( (?:
|
||
|
\? (?:
|
||
|
[:=!>({]
|
||
|
| <[=!]
|
||
|
| <[^>]*>
|
||
|
| '[^']*'
|
||
|
| ~\|?
|
||
|
| #(?:[^)\\]|\\.?)*
|
||
|
| [^:)]*[:)]
|
||
|
)?
|
||
|
| \*
|
||
|
)?
|
||
|
| ${Xe.source}
|
||
|
| ${Qe}
|
||
|
| .
|
||
|
`.replace(/\s+/g,""),"gsu"),_e=new RegExp(g`
|
||
|
\\ (?:
|
||
|
${qe}
|
||
|
| .
|
||
|
)
|
||
|
| \[:(?:\^?\p{Alpha}+|\^):\]
|
||
|
| ${Qe}
|
||
|
| &&
|
||
|
| .
|
||
|
`.replace(/\s+/g,""),"gsu");function te(e,t="",r){if(r={captureGroup:!1,singleline:!1,...r},typeof e!="string")throw new Error("String expected as pattern");if(!/^[imxDSW]*$/.test(t))throw new Error(`Flags "${t}" includes unsupported value`);let n=t.includes("x"),s=[n],a={captureGroup:r.captureGroup,getCurrentModX:()=>s.at(-1),numOpenGroups:0,popModX(){s.pop()},pushModX(f){s.push(f)},replaceCurrentModX(f){s[s.length-1]=f},singleline:r.singleline},i=[],o;for(he.lastIndex=0;o=he.exec(e);){let f=Xt(a,e,o[0],he.lastIndex);f.tokens?i.push(...f.tokens):f.token&&i.push(f.token),f.lastIndex!==void 0&&(he.lastIndex=f.lastIndex)}let c=[],l=0;i.forEach(f=>{f.type===d.GroupOpen&&(f.kind===F.capturing?f.number=++l:f.raw==="("&&c.push(f))}),l||c.forEach((f,m)=>{f.kind=F.capturing,f.number=m+1});let u=l||c.length;return i=i.map(f=>f.type===d.EscapedNumber?ar(f,u):f).flat(),{tokens:i,flags:{ignoreCase:t.includes("i"),dotAll:t.includes("m"),extended:n,digitIsAscii:t.includes("D"),spaceIsAscii:t.includes("S"),wordIsAscii:t.includes("W")},rules:r}}function Xt(e,t,r,n){let[s,a]=r;if(s==="["){let i=Zt(t,r,n);return{tokens:i.tokens,lastIndex:i.lastIndex}}if(s==="\\"){if("AbBGzZ".includes(a))return{token:b(d.Assertion,r,{kind:r})};if(/^\\g[<']/.test(r)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(r))throw new Error(`Invalid group name "${r}"`);return{token:b(d.Subroutine,r)}}if(/^\\k[<']/.test(r)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(r))throw new Error(`Invalid group name "${r}"`);return{token:b(d.Backreference,r)}}if(a==="K")return{token:b(d.Directive,r,{kind:ee.keep})};if(a==="N")return{token:b(d.CharacterSet,r,{kind:S.non_newline})};if(a==="O")return{token:b(d.CharacterSet,r,{kind:S.any})};if("RX".includes(a))return{token:b(d.VariableLengthCharacterSet,r,{kind:r})};if("yY".includes(a))throw new Error(`Unsupported grapheme boundary "${r}"`);let i=Ze(r,{inCharClass:!1});return Array.isArray(i)?{tokens:i}:{token:i}}if(s==="("){if(r==="(*")throw new Error(`Unsupported named callout "${r}"`);if(r==="(?{")throw new Error(`Unsupported callout "${r}"`);if(r==="(?#"){if(t[n]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:n+1}}if(/^\(\?[-imx]+[:)]$/.test(r))return{token:er(r,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,r==="("&&!e.captureGroup||r==="(?:")return{token:b(d.GroupOpen,r,{kind:F.group})};if(r==="(?>")return{token:b(d.GroupOpen,r,{kind:F.atomic})};if(r==="(?="||r==="(?!"||r==="(?<="||r==="(?<!")return{token:b(d.GroupOpen,r,{kind:r[2]==="<"?F.lookbehind:F.lookahead,negate:r.endsWith("!")})};if(r==="("&&e.captureGroup||r.startsWith("(?<")&&r.endsWith(">")||r.startsWith("(?'")&&r.endsWith("'")){let i=b(d.GroupOpen,r,{kind:F.capturing});return r!=="("&&(i.name=r.slice(3,-1)),{token:i}}if(r.startsWith("(?~")){if(r==="(?~|")throw new Error(`Unsupported absent function kind "${r}"`);return{token:b(d.GroupOpen,r,{kind:F.absent_repeater})}}throw r==="(?("?new Error(`Unsupported conditional "${r}"`):new Error(`Invalid or unsupported group option "${r}"`)}if(r===")"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched ")"');return{token:b(d.GroupClose,r)}}if(r==="#"&&e.getCurrentModX()){let i=t.indexOf(`
|
||
|
`,n);return{lastIndex:i===-1?t.length:i}}if(/^\s$/.test(r)&&e.getCurrentModX()){let i=/\s+/y;return i.lastIndex=n,{lastIndex:i.exec(t)?i.lastIndex:n}}if(r===".")return{token:b(d.CharacterSet,r,{kind:S.dot})};if(r==="^"||r==="$"){let i=e.singleline?{"^":g`\A`,$:g`\Z`}[r]:r;return{token:b(d.Assertion,r,{kind:i})}}return r==="|"?{token:b(d.Alternator,r)}:Xe.test(r)?{token:tr(r)}:(Je(r),{token:b(d.Character,r,{value:r.codePointAt(0)})})}function Zt(e,t,r){let n=[b(d.CharacterClassOpen,t,{negate:t[1]==="^"})],s=1,a;for(_e.lastIndex=r;a=_e.exec(e);){let i=a[0];if(i[0]==="["&&i[1]!==":")s++,n.push(b(d.CharacterClassOpen,i,{negate:i[1]==="^"}));else if(i==="]"){if(n.at(-1).type===d.CharacterClassOpen)n.push(b(d.Character,i,{value:93}));else if(s--,n.push(b(d.CharacterClassClose,i)),!s)break}else{let o=Jt(i);Array.isArray(o)?n.push(...o):n.push(o)}}return{tokens:n,lastIndex:_e.lastIndex||e.length}}function Jt(e){if(e[0]==="\\")return Ze(e,{inCharClass:!0});if(e[0]==="["){let t=/\[:(?<negate>\^?)(?<name>[a-z]+):\]/.exec(e);if(!t||!fe.get(t.groups.name))throw new Error(`Invalid POSIX class "${e}"`);return b(d.CharacterSet,e,{kind:S.posix,negate:!!t.groups.negate,value:t.groups.name})}return e==="-"?b(d.CharacterClassHyphen,e):e==="&&"?b(d.CharacterClassIntersector,e):(Je(e),b(d.Character,e,{value:e.codePointAt(0)}))}function Ze(e,{inCharClass:t}){let r=e[1];if(r==="c"||r==="C")return Yt(e);if("dDhHsSwW".includes(r))return rr(e);if(e.startsWith(g`\o{`))throw new Error(`Incomplete, invalid, or unsupported octal code point "${e}"`);if(/^\\[pP]\{/.test(e)){if(e.length===3)throw new Error(`Incomplete or invalid Unicode property "${e}"`);return nr(e)}if(/^\\x[89A-Fa-f]\p{AHex}/u.test(e))try{let n=e.split(/\\x/).slice(1).map(o=>parseInt(o,16)),s=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(n)),a=new TextEncoder;return[...s].map(o=>{let c=[...a.encode(o)].map(l=>`\\x${l.toString(16)}`).join("");return b(d.Character,c,{value:o.codePointAt(0)})})}catch{throw new Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(r==="u"||r==="x")return b(d.Character,e,{value:sr(e)});if(ze.has(r))return b(d.Character,e,{value:ze.get(r)});if(/\d/.test(r))return b(d.EscapedNumber,e,{inCharClass:t});if(e==="\\")throw new Error(g`Incomplete escape "\"`);if(r==="M")throw new Error(`Unsupported meta "${e}"`);if([...e].length===2)return b(d.Character,e,{value:e.codePointAt(1)});throw new Error(`Unexpected escape "${e}"`)}function b(e,t,r){return{type:e,raw:t,...r}}function Yt(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 b(d.Character,e,{value:t.toUpperCase().codePointAt(0)-64})}function er(e,t){let{on:r,off:n}=/^\(\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(e).groups;n??="";let s=(t.getCurrentModX()||r.includes("x"))&&!n.includes("x"),a=Ke(r),i=Ke(n),o={};if(a&&(o.enable=a),i&&(o.disable=i),e.endsWith(")"))return t.replaceCurrentModX(s),b(d.Directive,e,{kind:ee.flags,flags:o});if(e.endsWith(":")){t.pushModX(s),t.numOpenGroups++;let c=b(d.GroupOpen,e,{kind:F.group});return(a||i)&&(c.flags=o),c}throw new Error(`Unexpected flag modifier "${e}"`)}function tr(e){let t={};if(e[0]==="{"){let{min:r,max:n}=/^\{(?<min>\d*)(?:,(?<max>\d*))?/.exec(e).groups,s=1e5;if(+r>s||+n>s)throw new Error("Quantifier value unsupported in Oniguruma");t.min=+r,t.max=n===void 0?+r:n===""?1/0:+n,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 b(d.Quantifier,e,t)}function rr(e){let t=e[1].toLowerCase();return b(d.CharacterSet,e,{kind:{d:S.digit,h:S.hex,s:S.space,w:S.word}[t],negate:e[1]!==t})}function nr(e){let{p:t,neg:r,value:n}=/^\\(?<p>[pP])\{(?<neg>\^?)(?<value>[^}]+)/.exec(e).groups,s=t==="P"&&!r||t==="p"&&!!r;return b(d.CharacterSet,e,{kind:S.property,negate:s,value:n})}function Ke(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 sr(e){if(/^(?:\\u(?!\p{AHex}{4})|\\x(?!\p{AHex
|
||
|
?|[
|
||
|
\v\f\x85\u2028\u2029])`));else if(s===ne.grapheme){if(r==="strict")throw new Error(g`Use of "\X" requires non-strict accuracy`);let a=n?g`\p{RGI_Emoji}`:ot().source.replace(/\\u\{/g,"\\x{");t(M(g`(?>\r\n|${a}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}))}else throw new Error(`Unexpected varcharset kind "${s}"`)}},pt={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:r}){let{orphan:n,ref:s}=e;n||r.set(e,[...t.get(s).map(({node:a})=>a)])},CapturingGroup:{enter({node:e,replaceWith:t,skip:r},{groupOriginByCopy:n,groupsByName:s,multiplexCapturesToLeftByRef:a,openRefs:i,reffedNodesByReferencer:o}){let c=n.get(e);if(c&&i.has(e.number)){let u=ct(e.number);o.set(u,i.get(e.number)),t(u),r();return}i.set(e.number,e),a.set(e.number,[]),e.name&&L(a,e.name,[]);let l=a.get(e.name??e.number);for(let u=0;u<l.length;u++){let f=l[u];if(c===f.node||c&&c===f.origin||e===f.origin){l.splice(u,1);break}}if(a.get(e.number).push({node:e,origin:c}),e.name&&a.get(e.name).push({node:e,origin:c}),e.name){let u=L(s,e.name,new Map),f=!1;if(c)f=!0;else for(let m of u.values())if(!m.hasDuplicateNameToRemove){f=!0;break}s.get(e.name).set(e,{node:e,hasDuplicateNameToRemove:f})}},exit({node:e},{openRefs:t}){t.delete(e.number)}},Group:{enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=Q(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Recursion({node:e,parent:t},{reffedNodesByReferencer:r}){let{ref:n}=e,s=t;for(;(s=s.parent)&&!(s.type===p.CapturingGroup&&(s.name===n||s.number===n)););r.set(e,s)},Subroutine(e,t){let{node:r,replaceWith:n}=e,{ref:s}=r,a=t.subroutineRefMap.get(s),i=s===0,o=i?ct(0):ft(a,t.groupOriginByCopy,null),c=o;if(!i){let l=ht(Lr(a,f=>f.type===p.Group&&!!f.flags)),u=l?Q(t.globalFlags,l):t.globalFlags;Mr(u,t.currentFlags)||(c=U(G({flags:Pr(u)}),[o]))}n(c),i||mt(c,e,t,pt)}},vr={Backreference({node:e,replaceWith:t},r){if(e.orphan){r.highestOrphanBackref=Math.max(r.highestOrphanBackref,e.ref);return}let s=r.reffedNodesByReferencer.get(e).filter(a=>Nr(a,e));if(!s.length)t(U(q({negate:!0})));else if(s.length>1){let a=s.map(i=>ie(T(),[de(i.number)]));t(ie(G(),a))}else e.ref=s[0].number},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,e.name&&t.groupsByName.get(e.name).get(e).hasDuplicateNameToRemove&&delete e.name},Recursion({node:e},t){e.ref!==0&&(e.ref=t.reffedNodesByReferencer.get(e).number)},Regex:{exit({node:e},t){let r=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let n=0;n<r;n++){let s=ve();e.pattern.alternatives.at(-1).elements.push(s)}}}},Gr="[ -\r ]",R=g`[\p{L}\p{M}\p{N}\p{Pc}]`;function ie(e,t){return t.forEach(r=>r.parent=e),e[Oe(e)]=t,e}function Mr(e,t){return e.dotAll===t.dotAll&&e.ignoreCase===t.ignoreCase}function Nr(e,t){let r=t;do{if(r.type===p.Pattern)return!1;if(r.type===p.Alternative)continue;if(r===e)return!1;let n=gt(r.parent);for(let s of n){if(s===r)break;if(s===e||Ct(s,e))return!0}}while(r=r.parent);throw new Error("Unexpected path")}function ft(e,t,r,n){let s=Array.isArray(e)?[]:{};for(let[a,i]of Object.entries(e))a==="parent"?s.parent=Array.isArray(r)?n:r:i&&typeof i=="object"?s[a]=ft(i,t,s,r):(a==="type"&&i===p.CapturingGroup&&t.set(s,t.get(e)??e),s[a]=i);return s}function ct(e){return{type:p.Recursion,ref:e}}function Lr(e,t){let r=[];for(;e=e.parent;)(!t||t(e))&&r.push(e);return r}function Ne(e,t){if(t.has(e))return t.get(e);let r=`$${t.size}_${e.replace(/^[^$_\p{IDS}]|[^$\u200C\u200D\p{IDC}]/ug,"_")}`;return t.set(e,r),r}function Oe(e){for(let t of["alternatives","classes","elements"])if(e[t])return t;return null}function ht(e){let t=["dotAll","ignoreCase"],r={enable:{},disable:{}};return e.forEach(({flags:n})=>{t.forEach(s=>{n.enable?.[s]&&(delete r.disable[s],r.enable[s]=!0),n.disable?.[s]&&(r.disable[s]=!0)})}),Object.keys(r.enable).length||delete r.enable,Object.keys(r.disable).length||delete r.disable,r.enable||r.disable?r:null}function Pr({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.ignoreCa
|
||
|
\\(?: \d+
|
||
|
| c[A-Za-z]
|
||
|
| [gk]<[^>]+>
|
||
|
| [pPu]\{[^\}]+\}
|
||
|
| u[A-Fa-f\d]{4}
|
||
|
| x[A-Fa-f\d]{2}
|
||
|
)
|
||
|
| \((?: \? (?: [:=!>]
|
||
|
| <(?:[=!]|[^>]+>)
|
||
|
| [A-Za-z\-]+:
|
||
|
| \(DEFINE\)
|
||
|
))?
|
||
|
| (?<qBase>${_t})(?<qMod>[?+]?)(?<invalidQ>[?*+\{]?)
|
||
|
| \\?.
|
||
|
`.replace(/\s+/g,""),"gsu");function Be(e){if(!new RegExp(`${_t}\\+`).test(e))return{pattern:e};let t=[],r=null,n=null,s="",a=0,i;for(Ue.lastIndex=0;i=Ue.exec(e);){let{0:o,index:c,groups:{qBase:l,qMod:u,invalidQ:f}}=i;if(o==="[")a||(n=c),a++;else if(o==="]")a?a--:n=null;else if(!a)if(u==="+"&&s&&!s.startsWith("(")){if(f)throw new Error(`Invalid quantifier "${o}"`);let m=-1;if(/^\{\d+\}$/.test(l))e=Et(e,c+l.length,u,"");else{if(s===")"||s==="]"){let h=s===")"?r:n;if(h===null)throw new Error(`Invalid unmatched "${s}"`);e=`${e.slice(0,h)}(?>${e.slice(h,c)}${l})${e.slice(c+o.length)}`}else e=`${e.slice(0,c-s.length)}(?>${s}${l})${e.slice(c+o.length)}`;m+=4}Ue.lastIndex+=m}else o[0]==="("?t.push(c):o===")"&&(r=t.length?t.pop():null);s=o}return{pattern:e}}var v=String.raw,on=v`\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`,je=v`\(\?R=(?<rDepth>[^\)]+)\)|${on}`,we=v`\(\?<(?![=!])(?<captureName>[^>]+)>`,Mt=v`${we}|(?<unnamed>\()(?!\?)`,H=new RegExp(v`${we}|${je}|\(\?|\\?.`,"gsu"),Ve="Cannot use multiple overlapping recursions";function Nt(e,t){let{hiddenCaptures:r,mode:n}={hiddenCaptures:[],mode:"plugin",...t},s=t?.captureTransfers??new Map;if(!new RegExp(je,"su").test(e))return{pattern:e,captureTransfers:s,hiddenCaptures:r};if(n==="plugin"&&ue(e,v`\(\?\(DEFINE\)`,_.DEFAULT))throw new Error("DEFINE groups cannot be used with recursion");let a=[],i=ue(e,v`\\[1-9]`,_.DEFAULT),o=new Map,c=[],l=!1,u=0,f=0,m;for(H.lastIndex=0;m=H.exec(e);){let{0:h,groups:{captureName:C,rDepth:w,gRNameOrNum:y,gRDepth:E}}=m;if(h==="[")u++;else if(u)h==="]"&&u--;else if(w){if(It(w),l)throw new Error(Ve);if(i)throw new Error(`${n==="external"?"Backrefs":"Numbered backrefs"} cannot be used with global recursion`);let N=e.slice(0,m.index),P=e.slice(H.lastIndex);if(ue(P,je,_.DEFAULT))throw new Error(Ve);let $=+w-1;e=$t(N,P,$,!1,r,a,f),s=Gt(s,N,$,a.length,0,f);break}else if(y){It(E);let N=!1;for(let Z of c)if(Z.name===y||Z.num===+y){if(N=!0,Z.hasRecursedWithin)throw new Error(Ve);break}if(!N)throw new Error(v`Recursive \g cannot be used outside the referenced group "${n==="external"?y:v`\g<${y}&R=${E}>`}"`);let P=o.get(y),$=St(e,P);if(i&&ue($,v`${we}|\((?!\?)`,_.DEFAULT))throw new Error(`${n==="external"?"Backrefs":"Numbered backrefs"} cannot be used with recursion of capturing groups`);let j=e.slice(P,m.index),le=$.slice(j.length+h.length),z=a.length,K=+E-1,We=$t(j,le,K,!0,r,a,f);s=Gt(s,j,K,a.length-z,z,f);let Pt=e.slice(0,P),Ot=e.slice(P+$.length);e=`${Pt}${We}${Ot}`,H.lastIndex+=We.length-h.length-j.length-le.length,c.forEach(Z=>Z.hasRecursedWithin=!0),l=!0}else if(C)f++,o.set(String(f),H.lastIndex),o.set(C,H.lastIndex),c.push({num:f,name:C});else if(h[0]==="("){let N=h==="(";N&&(f++,o.set(String(f),H.lastIndex)),c.push(N?{num:f}:{})}else h===")"&&c.pop()}return r.push(...a),{pattern:e,captureTransfers:s,hiddenCaptures:r}}function It(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 $t(e,t,r,n,s,a,i){let o=new Set;n&&Re(e+t,we,({groups:{captureName:l}})=>{o.add(l)},_.DEFAULT);let c=[r,n?o:null,s,a,i];return`${e}${vt(`(?:${e}`,"forward",...c)}(?:)${vt(`${t})`,"backward",...c)}${t}`}function vt(e,t,r,n,s,a,i){let c=u=>t==="forward"?u+2:r-u+2-1,l="";for(let u=0;u<r;u++){let f=c(u);l+=ce(e,v`${Mt}|\\k<(?<backref>[^>]+)>`,({0:m,groups:{captureName:h,unnamed:C,backref:w}})=>{if(w&&n&&!n.has(w))return m;let y=`_$${f}`;if(C||h){let E=i+a.length+1;return a.push(E),cn(s,E),C?m:`(?<${h}${y}>`}return v`\k<${w}${y}>`},_.DEFAULT)}return l}function cn(e,t){for(let r=0;r<e.length;r++)e[r]>=t&&e[r]++}function Gt(e,t,r,n,s,a){if(e.size&&n){let i=0;Re(t,Mt,()=>i++,_.DEFAULT);let o=a-i+s,c=new Map;return e.forEach((l,u)=>{let f=(n-i*r)/r,m=i*r,h=u>o+i?u+n:u,C=[];for(let w of l)if(w<=o)C.push(w);else if(w>o+i+f)C.push(w+n);else if(w<=o+i)for(let y=0;y<=r;y++)C.push(w+i*y);else for(let y=0;y<=r;y++)C.push(w+m+f*y);c.set(h,C)}),c}return e}function un(e,t){let r={flags:t?.flags??"",rules:{captureGroup:!1,singleline:!1,...t?.rules}};return ae(te(e,r.flags,r.rules))}functi
|
||
|
//# sourceMappingURL=index.min.js.map
|