New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

oniguruma-to-es

Package Overview
Dependencies
Maintainers
0
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

oniguruma-to-es - npm Package Compare versions

Comparing version 2.3.0 to 3.0.0

8

dist/cjs/generate.d.ts
/**
Generates a Regex+ compatible `pattern`, `flags`, and `options` from a Regex+ AST.
@param {import('./transform.js').RegexAst} ast
@param {import('.').OnigurumaToEsOptions} [options]
@param {import('.').ToRegExpOptions} [options]
@returns {{

@@ -9,8 +9,12 @@ pattern: string;

options: Object;
_captureTransfers: Map<number, Array<number>>;
_hiddenCaptures: Array<number>;
}}
*/
export function generate(ast: import("./transform.js").RegexAst, options?: import(".").OnigurumaToEsOptions): {
export function generate(ast: import("./transform.js").RegexAst, options?: import(".").ToRegExpOptions): {
pattern: string;
flags: string;
options: any;
_captureTransfers: Map<number, Array<number>>;
_hiddenCaptures: Array<number>;
};

@@ -1,2 +0,2 @@

export type OnigurumaToEsOptions = {
export type ToRegExpOptions = {
accuracy?: "default" | "strict";

@@ -19,2 +19,19 @@ avoidSubclass?: boolean;

/**
Returns an Oniguruma AST generated from an Oniguruma pattern.
@param {string} pattern Oniguruma regex pattern.
@param {{
flags?: string;
rules?: {
captureGroup?: boolean;
};
}} [options]
@returns {import('./parse.js').OnigurumaAst}
*/
export function toOnigurumaAst(pattern: string, options?: {
flags?: string;
rules?: {
captureGroup?: boolean;
};
}): import("./parse.js").OnigurumaAst;
/**
@typedef {{

@@ -35,8 +52,15 @@ accuracy?: keyof Accuracy;

verbose?: boolean;
}} OnigurumaToEsOptions
}} ToRegExpOptions
*/
/**
Accepts an Oniguruma pattern and returns the details needed to construct an equivalent JavaScript `RegExp`.
Accepts an Oniguruma pattern and returns an equivalent JavaScript `RegExp`.
@param {string} pattern Oniguruma regex pattern.
@param {OnigurumaToEsOptions} [options]
@param {ToRegExpOptions} [options]
@returns {RegExp | EmulatedRegExp}
*/
export function toRegExp(pattern: string, options?: ToRegExpOptions): RegExp | EmulatedRegExp;
/**
Accepts an Oniguruma pattern and returns the details for an equivalent JavaScript `RegExp`.
@param {string} pattern Oniguruma regex pattern.
@param {ToRegExpOptions} [options]
@returns {{

@@ -48,3 +72,3 @@ pattern: string;

*/
export function toDetails(pattern: string, options?: OnigurumaToEsOptions): {
export function toRegExpDetails(pattern: string, options?: ToRegExpOptions): {
pattern: string;

@@ -54,26 +78,2 @@ flags: string;

};
/**
Returns an Oniguruma AST generated from an Oniguruma pattern.
@param {string} pattern Oniguruma regex pattern.
@param {{
flags?: string;
rules?: {
captureGroup?: boolean;
};
}} [options]
@returns {import('./parse.js').OnigurumaAst}
*/
export function toOnigurumaAst(pattern: string, options?: {
flags?: string;
rules?: {
captureGroup?: boolean;
};
}): import("./parse.js").OnigurumaAst;
/**
Accepts an Oniguruma pattern and returns an equivalent JavaScript `RegExp`.
@param {string} pattern Oniguruma regex pattern.
@param {OnigurumaToEsOptions} [options]
@returns {RegExp | EmulatedRegExp}
*/
export function toRegExp(pattern: string, options?: OnigurumaToEsOptions): RegExp | EmulatedRegExp;
export { EmulatedRegExp };

@@ -13,6 +13,6 @@ export namespace Accuracy {

Returns a complete set of options, with default values set for options that weren't provided.
@param {import('.').OnigurumaToEsOptions} [options]
@returns {Required<import('.').OnigurumaToEsOptions>}
@param {import('.').ToRegExpOptions} [options]
@returns {Required<import('.').ToRegExpOptions>}
*/
export function getOptions(options?: import(".").OnigurumaToEsOptions): Required<import(".").OnigurumaToEsOptions>;
export function getOptions(options?: import(".").ToRegExpOptions): Required<import(".").ToRegExpOptions>;
export namespace Target {

@@ -19,0 +19,0 @@ export let auto: "auto";

export type EmulatedRegExpOptions = {
hiddenCaptures?: Array<number>;
strategy?: string | null;
useEmulationGroups?: boolean;
transfers?: Array<[number, Array<number>]>;
};
/**
@typedef {{
hiddenCaptures?: Array<number>;
strategy?: string | null;
useEmulationGroups?: boolean;
transfers?: Array<[number, Array<number>]>;
}} EmulatedRegExpOptions

@@ -13,4 +15,3 @@ */

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`.
@augments RegExp
results from `toRegExpDetails` to produce the same result as `toRegExp`.
*/

@@ -32,15 +33,7 @@ export class EmulatedRegExp extends RegExp {

/**
Can be used to serialize the arguments used to create the instance.
@type {{
pattern: string;
flags: string;
options: EmulatedRegExpOptions;
}}
Can be used to serialize the instance.
@type {EmulatedRegExpOptions}
*/
rawArgs: {
pattern: string;
flags: string;
options: EmulatedRegExpOptions;
};
rawOptions: EmulatedRegExpOptions;
#private;
}

@@ -7,2 +7,3 @@ export type RegexAst = {

options: any;
_originMap: Map<any, any>;
_strategy: string | null;

@@ -17,2 +18,3 @@ };

options: Object;
_originMap: Map<Object, Object>;
_strategy: string | null;

@@ -19,0 +21,0 @@ }} RegexAst

export function getIgnoreCaseMatchChars(char: any): any[];
export const JsUnicodeProperties: any;
export const JsUnicodePropertiesMap: any;
export const JsUnicodePropertiesOfStringsMap: any;
export const PosixClassesMap: any;
export const PosixProperties: any;
export const JsUnicodeProperties: Set<string>;
export const JsUnicodePropertiesMap: Map<any, any>;
export const JsUnicodePropertiesOfStringsMap: Map<any, any>;
export const PosixClassesMap: Map<string, string>;
export const PosixProperties: Set<string>;
export function slug(name: any): any;
export const UnicodePropertiesWithSpecificCase: any;
export const UnicodePropertiesWithSpecificCase: Set<string>;
export function hasOnlyChild({ alternatives }: {
alternatives: any;
}, kidFn: any): any;
export function isAlwaysNonZeroLength(node: any): any;
export function isAlwaysNonZeroLength(node: any): boolean;
export function isAlwaysZeroLength({ type }: {

@@ -6,0 +6,0 @@ type: any;

@@ -1,2 +0,2 @@

export const cp: any;
export const cp: (...codePoints: number[]) => string;
export const envSupportsFlagGroups: boolean;

@@ -18,3 +18,5 @@ export const envSupportsFlagV: boolean;

export function isMinTarget(target: "auto" | "ES2025" | "ES2024" | "ES2018", min: "auto" | "ES2025" | "ES2024" | "ES2018"): boolean;
export const r: any;
export const r: (template: {
raw: readonly string[] | ArrayLike<string>;
}, ...substitutions: any[]) => string;
export function throwIfNot(value: any, msg: any): any;
/**
Generates a Regex+ compatible `pattern`, `flags`, and `options` from a Regex+ AST.
@param {import('./transform.js').RegexAst} ast
@param {import('.').OnigurumaToEsOptions} [options]
@param {import('.').ToRegExpOptions} [options]
@returns {{

@@ -9,8 +9,12 @@ pattern: string;

options: Object;
_captureTransfers: Map<number, Array<number>>;
_hiddenCaptures: Array<number>;
}}
*/
export function generate(ast: import("./transform.js").RegexAst, options?: import(".").OnigurumaToEsOptions): {
export function generate(ast: import("./transform.js").RegexAst, options?: import(".").ToRegExpOptions): {
pattern: string;
flags: string;
options: any;
_captureTransfers: Map<number, Array<number>>;
_hiddenCaptures: Array<number>;
};

@@ -1,2 +0,2 @@

export type OnigurumaToEsOptions = {
export type ToRegExpOptions = {
accuracy?: "default" | "strict";

@@ -19,2 +19,19 @@ avoidSubclass?: boolean;

/**
Returns an Oniguruma AST generated from an Oniguruma pattern.
@param {string} pattern Oniguruma regex pattern.
@param {{
flags?: string;
rules?: {
captureGroup?: boolean;
};
}} [options]
@returns {import('./parse.js').OnigurumaAst}
*/
export function toOnigurumaAst(pattern: string, options?: {
flags?: string;
rules?: {
captureGroup?: boolean;
};
}): import("./parse.js").OnigurumaAst;
/**
@typedef {{

@@ -35,8 +52,15 @@ accuracy?: keyof Accuracy;

verbose?: boolean;
}} OnigurumaToEsOptions
}} ToRegExpOptions
*/
/**
Accepts an Oniguruma pattern and returns the details needed to construct an equivalent JavaScript `RegExp`.
Accepts an Oniguruma pattern and returns an equivalent JavaScript `RegExp`.
@param {string} pattern Oniguruma regex pattern.
@param {OnigurumaToEsOptions} [options]
@param {ToRegExpOptions} [options]
@returns {RegExp | EmulatedRegExp}
*/
export function toRegExp(pattern: string, options?: ToRegExpOptions): RegExp | EmulatedRegExp;
/**
Accepts an Oniguruma pattern and returns the details for an equivalent JavaScript `RegExp`.
@param {string} pattern Oniguruma regex pattern.
@param {ToRegExpOptions} [options]
@returns {{

@@ -48,3 +72,3 @@ pattern: string;

*/
export function toDetails(pattern: string, options?: OnigurumaToEsOptions): {
export function toRegExpDetails(pattern: string, options?: ToRegExpOptions): {
pattern: string;

@@ -54,26 +78,2 @@ flags: string;

};
/**
Returns an Oniguruma AST generated from an Oniguruma pattern.
@param {string} pattern Oniguruma regex pattern.
@param {{
flags?: string;
rules?: {
captureGroup?: boolean;
};
}} [options]
@returns {import('./parse.js').OnigurumaAst}
*/
export function toOnigurumaAst(pattern: string, options?: {
flags?: string;
rules?: {
captureGroup?: boolean;
};
}): import("./parse.js").OnigurumaAst;
/**
Accepts an Oniguruma pattern and returns an equivalent JavaScript `RegExp`.
@param {string} pattern Oniguruma regex pattern.
@param {OnigurumaToEsOptions} [options]
@returns {RegExp | EmulatedRegExp}
*/
export function toRegExp(pattern: string, options?: OnigurumaToEsOptions): RegExp | EmulatedRegExp;
export { EmulatedRegExp };

@@ -13,6 +13,6 @@ export namespace Accuracy {

Returns a complete set of options, with default values set for options that weren't provided.
@param {import('.').OnigurumaToEsOptions} [options]
@returns {Required<import('.').OnigurumaToEsOptions>}
@param {import('.').ToRegExpOptions} [options]
@returns {Required<import('.').ToRegExpOptions>}
*/
export function getOptions(options?: import(".").OnigurumaToEsOptions): Required<import(".").OnigurumaToEsOptions>;
export function getOptions(options?: import(".").ToRegExpOptions): Required<import(".").ToRegExpOptions>;
export namespace Target {

@@ -19,0 +19,0 @@ export let auto: "auto";

export type EmulatedRegExpOptions = {
hiddenCaptures?: Array<number>;
strategy?: string | null;
useEmulationGroups?: boolean;
transfers?: Array<[number, Array<number>]>;
};
/**
@typedef {{
hiddenCaptures?: Array<number>;
strategy?: string | null;
useEmulationGroups?: boolean;
transfers?: Array<[number, Array<number>]>;
}} EmulatedRegExpOptions

@@ -13,4 +15,3 @@ */

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`.
@augments RegExp
results from `toRegExpDetails` to produce the same result as `toRegExp`.
*/

@@ -32,15 +33,7 @@ export class EmulatedRegExp extends RegExp {

/**
Can be used to serialize the arguments used to create the instance.
@type {{
pattern: string;
flags: string;
options: EmulatedRegExpOptions;
}}
Can be used to serialize the instance.
@type {EmulatedRegExpOptions}
*/
rawArgs: {
pattern: string;
flags: string;
options: EmulatedRegExpOptions;
};
rawOptions: EmulatedRegExpOptions;
#private;
}

@@ -7,2 +7,3 @@ export type RegexAst = {

options: any;
_originMap: Map<any, any>;
_strategy: string | null;

@@ -17,2 +18,3 @@ };

options: Object;
_originMap: Map<Object, Object>;
_strategy: string | null;

@@ -19,0 +21,0 @@ }} RegexAst

export function getIgnoreCaseMatchChars(char: any): any[];
export const JsUnicodeProperties: any;
export const JsUnicodePropertiesMap: any;
export const JsUnicodePropertiesOfStringsMap: any;
export const PosixClassesMap: any;
export const PosixProperties: any;
export const JsUnicodeProperties: Set<string>;
export const JsUnicodePropertiesMap: Map<any, any>;
export const JsUnicodePropertiesOfStringsMap: Map<any, any>;
export const PosixClassesMap: Map<string, string>;
export const PosixProperties: Set<string>;
export function slug(name: any): any;
export const UnicodePropertiesWithSpecificCase: any;
export const UnicodePropertiesWithSpecificCase: Set<string>;
export function hasOnlyChild({ alternatives }: {
alternatives: any;
}, kidFn: any): any;
export function isAlwaysNonZeroLength(node: any): any;
export function isAlwaysNonZeroLength(node: any): boolean;
export function isAlwaysZeroLength({ type }: {

@@ -6,0 +6,0 @@ type: any;

@@ -1,2 +0,2 @@

export const cp: any;
export const cp: (...codePoints: number[]) => string;
export const envSupportsFlagGroups: boolean;

@@ -18,3 +18,5 @@ export const envSupportsFlagV: boolean;

export function isMinTarget(target: "auto" | "ES2025" | "ES2024" | "ES2018", min: "auto" | "ES2025" | "ES2024" | "ES2018"): boolean;
export const r: any;
export const r: (template: {
raw: readonly string[] | ArrayLike<string>;
}, ...substitutions: any[]) => string;
export function throwIfNot(value: any, msg: any): any;

@@ -1,2 +0,2 @@

var OnigurumaToES=(()=>{var ge=Object.defineProperty;var Mt=Object.getOwnPropertyDescriptor;var Nt=Object.getOwnPropertyNames;var Pt=Object.prototype.hasOwnProperty;var Lt=(e,t)=>{for(var r in t)ge(e,r,{get:t[r],enumerable:!0})},Rt=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Nt(t))!Pt.call(e,n)&&n!==r&&ge(e,n,{get:()=>t[n],enumerable:!(s=Mt(t,n))||s.enumerable});return e};var Ot=e=>Rt(ge({},"__esModule",{value:!0}),e);var sn={};Lt(sn,{EmulatedRegExp:()=>se,toDetails:()=>vt,toOnigurumaAst:()=>rn,toRegExp:()=>nn});var A=String.fromCodePoint,h=String.raw,De=(()=>{try{new RegExp("(?i:)")}catch{return!1}return!0})(),Be=(()=>{try{new RegExp("","v")}catch{return!1}return!0})();function V(e,{enable:t,disable:r}){return{dotAll:!r?.dotAll&&!!(t?.dotAll||e.dotAll),ignoreCase:!r?.ignoreCase&&!!(t?.ignoreCase||e.ignoreCase)}}function j(e,t,r){return e.has(t)||e.set(t,r),e.get(t)}function Q(e,t){return he[e]>=he[t]}function I(e,t){if(!e)throw new Error(t??"Value expected");return e}var he={ES2025:2025,ES2024:2024,ES2018:2018},Ut={auto:"auto",ES2025:"ES2025",ES2024:"ES2024",ES2018:"ES2018"};function ae(e){if(e?.target!==void 0&&!Ut[e.target])throw new Error(`Unexpected target "${e.target}"`);let t={accuracy:"default",avoidSubclass:!1,flags:"",global:!1,hasIndices:!1,target:"auto",verbose:!1,...e,rules:{allowOrphanBackrefs:!1,asciiWordBoundaries:!1,captureGroup:!1,recursionLimit:20,singleline:!1,...e?.rules}};return t.target==="auto"&&(t.target=De?"ES2025":Be?"ES2024":"ES2018"),t}var Tt=new Set([A(304),A(305)]);function Ce(e){if(Tt.has(e))return[e];let t=new Set,r=e.toLowerCase(),s=r.toUpperCase(),n=jt.get(r),a=Bt.get(r),o=Vt.get(r);return[...s].length===1&&t.add(s),o&&t.add(o),n&&t.add(n),t.add(r),a&&t.add(a),[...t]}var me=new Set(`C Other
var OnigurumaToEs=(()=>{var me=Object.defineProperty;var Ot=Object.getOwnPropertyDescriptor;var Rt=Object.getOwnPropertyNames;var Ut=Object.prototype.hasOwnProperty;var Dt=(e,t)=>{for(var r in t)me(e,r,{get:t[r],enumerable:!0})},Bt=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Rt(t))!Ut.call(e,n)&&n!==r&&me(e,n,{get:()=>t[n],enumerable:!(s=Ot(t,n))||s.enumerable});return e};var Vt=e=>Bt(me({},"__esModule",{value:!0}),e);var pn={};Dt(pn,{EmulatedRegExp:()=>ie,toOnigurumaAst:()=>un,toRegExp:()=>ln,toRegExpDetails:()=>Lt});var x=String.fromCodePoint,h=String.raw,je=(()=>{try{new RegExp("(?i:)")}catch{return!1}return!0})(),We=(()=>{try{new RegExp("","v")}catch{return!1}return!0})();function z(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 Z(e,t){return we[e]>=we[t]}function $(e,t){if(!e)throw new Error(t??"Value expected");return e}var we={ES2025:2025,ES2024:2024,ES2018:2018},jt={auto:"auto",ES2025:"ES2025",ES2024:"ES2024",ES2018:"ES2018"};function le(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,target:"auto",verbose:!1,...e,rules:{allowOrphanBackrefs:!1,asciiWordBoundaries:!1,captureGroup:!1,recursionLimit:20,singleline:!1,...e?.rules}};return t.target==="auto"&&(t.target=je?"ES2025":We?"ES2024":"ES2018"),t}var Wt=new Set([x(304),x(305)]);function ke(e){if(Wt.has(e))return[e];let t=new Set,r=e.toLowerCase(),s=r.toUpperCase(),n=Qt.get(r),a=Kt.get(r),i=zt.get(r);return[...s].length===1&&t.add(s),i&&t.add(i),n&&t.add(n),t.add(r),a&&t.add(a),[...t]}var ye=new Set(`C Other
Cc Control cntrl

@@ -91,5 +91,5 @@ Cf Format

XID_Continue XIDC
XID_Start XIDS`.split(/\s/)),ke=new Map;for(let e of me)ke.set(q(e),e);var Dt=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"]),we=new Map;for(let e of Dt)we.set(q(e),e);var Bt=new Map([["s",A(383)],[A(383),"s"]]),Vt=new Map([[A(223),A(7838)],[A(107),A(8490)],[A(229),A(8491)],[A(969),A(8486)]]),jt=new Map([O(453),O(456),O(459),O(498),...de(8072,8079),...de(8088,8095),...de(8104,8111),O(8124),O(8140),O(8188)]),oe=new Map([["alnum",h`[\p{Alpha}\p{Nd}]`],["alpha",h`\p{Alpha}`],["ascii",h`\p{ASCII}`],["blank",h`[\p{Zs}\t]`],["cntrl",h`\p{cntrl}`],["digit",h`\p{Nd}`],["graph",h`[\P{space}&&\P{cntrl}&&\P{Cn}&&\P{Cs}]`],["lower",h`\p{Lower}`],["print",h`[[\P{space}&&\P{cntrl}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],["punct",h`[\p{P}\p{S}]`],["space",h`\p{space}`],["upper",h`\p{Upper}`],["word",h`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],["xdigit",h`\p{AHex}`]]),Ve=new Set(["alnum","blank","graph","print","word","xdigit"]);function Wt(e,t){let r=[];for(let s=e;s<=t;s++)r.push(s);return r}function q(e){return e.replace(/[- _]+/g,"").toLowerCase()}function O(e){let t=A(e);return[t.toLowerCase(),t]}function de(e,t){return Wt(e,t).map(r=>O(r))}var be=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"},x={any:"any",digit:"digit",dot:"dot",hex:"hex",non_newline:"non_newline",posix:"posix",property:"property",space:"space",word:"word"},z={flags:"flags",keep:"keep"},E={absent_repeater:"absent_repeater",atomic:"atomic",capturing:"capturing",group:"group",lookahead:"lookahead",lookbehind:"lookbehind"},je=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]),He=h`\[\^?`,Ke=`c.? | C(?:-.?)?|${h`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${h`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${h`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${h`o\{[^\}]*\}?`}|${h`\d{1,3}`}`,Qe=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,ie=new RegExp(h`
XID_Start XIDS`.split(/\s/)),Ae=new Map;for(let e of ye)Ae.set(J(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"]),xe=new Map;for(let e of Ht)xe.set(J(e),e);var Kt=new Map([["s",x(383)],[x(383),"s"]]),zt=new Map([[x(223),x(7838)],[x(107),x(8490)],[x(229),x(8491)],[x(969),x(8486)]]),Qt=new Map([D(453),D(456),D(459),D(498),...be(8072,8079),...be(8088,8095),...be(8104,8111),D(8124),D(8140),D(8188)]),pe=new Map([["alnum",h`[\p{Alpha}\p{Nd}]`],["alpha",h`\p{Alpha}`],["ascii",h`\p{ASCII}`],["blank",h`[\p{Zs}\t]`],["cntrl",h`\p{cntrl}`],["digit",h`\p{Nd}`],["graph",h`[\P{space}&&\P{cntrl}&&\P{Cn}&&\P{Cs}]`],["lower",h`\p{Lower}`],["print",h`[[\P{space}&&\P{cntrl}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],["punct",h`[\p{P}\p{S}]`],["space",h`\p{space}`],["upper",h`\p{Upper}`],["word",h`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],["xdigit",h`\p{AHex}`]]),He=new Set(["alnum","blank","graph","print","word","xdigit"]);function qt(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 D(e){let t=x(e);return[t.toLowerCase(),t]}function be(e,t){return qt(e,t).map(r=>D(r))}var Ee=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"},Y={flags:"flags",keep:"keep"},F={absent_repeater:"absent_repeater",atomic:"atomic",capturing:"capturing",group:"group",lookahead:"lookahead",lookbehind:"lookbehind"},Ke=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]),Qe=h`\[\^?`,qe=`c.? | C(?:-.?)?|${h`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${h`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${h`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${h`o\{[^\}]*\}?`}|${h`\d{1,3}`}`,Xe=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,fe=new RegExp(h`
\\ (?:
${Ke}
${qe}
| [gk]<[^>]*>?

@@ -108,18 +108,18 @@ | [gk]'[^']*'?

)?)?
| ${Qe.source}
| ${He}
| ${Xe.source}
| ${Qe}
| .
`.replace(/\s+/g,""),"gsu"),ye=new RegExp(h`
`.replace(/\s+/g,""),"gsu"),Se=new RegExp(h`
\\ (?:
${Ke}
${qe}
| .
)
| \[:[^:]*:\]
| ${He}
| \[:(?:\^?\p{Alpha}+|\^):\]
| ${Qe}
| &&
| .
`.replace(/\s+/g,""),"gsu");function X(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 s=t.includes("x"),n=[s],a={captureGroup:r.captureGroup,getCurrentModX:()=>n.at(-1),numOpenGroups:0,popModX(){n.pop()},pushModX(f){n.push(f)},replaceCurrentModX(f){n[n.length-1]=f},singleline:r.singleline},o=[],i;for(ie.lastIndex=0;i=ie.exec(e);){let f=Ht(a,e,i[0],ie.lastIndex);f.tokens?o.push(...f.tokens):f.token&&o.push(f.token),f.lastIndex!==void 0&&(ie.lastIndex=f.lastIndex)}let c=[],l=0;o.forEach(f=>{f.type===d.GroupOpen&&(f.kind===E.capturing?f.number=++l:f.raw==="("&&c.push(f))}),l||c.forEach((f,m)=>{f.kind=E.capturing,f.number=m+1});let p=l||c.length;return o=o.map(f=>f.type===d.EscapedNumber?er(f,p):f).flat(),{tokens:o,flags:{ignoreCase:t.includes("i"),dotAll:t.includes("m"),extended:s,digitIsAscii:t.includes("D"),spaceIsAscii:t.includes("S"),wordIsAscii:t.includes("W")},rules:r}}function Ht(e,t,r,s){let[n,a,o]=r;if(n==="["){let i=Kt(t,r,s);return{tokens:i.tokens,lastIndex:i.lastIndex}}if(n==="\\"){if("AbBGzZ".includes(a))return{token:C(d.Assertion,r,{kind:r})};if(/^\\g[<']/.test(r)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(r))throw new Error(`Invalid group name "${r}"`);return{token:C(d.Subroutine,r)}}if(/^\\k[<']/.test(r)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(r))throw new Error(`Invalid group name "${r}"`);return{token:C(d.Backreference,r)}}if(a==="K")return{token:C(d.Directive,r,{kind:z.keep})};if(a==="N")return{token:C(d.CharacterSet,r,{kind:x.non_newline})};if(a==="O")return{token:C(d.CharacterSet,r,{kind:x.any})};if("RX".includes(a))return{token:C(d.VariableLengthCharacterSet,r,{kind:r})};if("yY".includes(a))throw new Error(`Unsupported grapheme boundary "${r}"`);let i=qe(r,{inCharClass:!1});return Array.isArray(i)?{tokens:i}:{token:i}}if(n==="("){if(o==="#"){if(t[s]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:s+1}}if("-imx".includes(o))return{token:zt(r,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,r==="("&&!e.captureGroup||r==="(?:")return{token:C(d.GroupOpen,r,{kind:E.group})};if(r==="(?>")return{token:C(d.GroupOpen,r,{kind:E.atomic})};if(r==="(?="||r==="(?!"||r==="(?<="||r==="(?<!")return{token:C(d.GroupOpen,r,{kind:o==="<"?E.lookbehind:E.lookahead,negate:r.endsWith("!")})};if(o==="<"||o==="'"||r==="("&&e.captureGroup){let i=C(d.GroupOpen,r,{kind:E.capturing});return r!=="("&&(i.name=r.slice(3,-1)),{token:i}}if(o==="~"){if(r==="(?~|")throw new Error(`Unsupported absent function kind "${r}"`);return{token:C(d.GroupOpen,r,{kind:E.absent_repeater})}}throw o==="("?new Error(`Unsupported conditional "${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:C(d.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}}if(r===".")return{token:C(d.CharacterSet,r,{kind:x.dot})};if(r==="^"||r==="$"){let i=e.singleline?{"^":h`\A`,$:h`\Z`}[r]:r;return{token:C(d.Assertion,r,{kind:i})}}return r==="|"?{token:C(d.Alternator,r)}:Qe.test(r)?{token:Xt(r)}:(ze(r),{token:C(d.Character,r,{value:r.codePointAt(0)})})}function Kt(e,t,r){let s=[C(d.CharacterClassOpen,t,{negate:t[1]==="^"})],n=1,a;for(ye.lastIndex=r;a=ye.exec(e);){let o=a[0];if(o[0]==="["&&o[1]!==":")n++,s.push(C(d.CharacterClassOpen,o,{negate:o[1]==="^"}));else if(o==="]"){if(s.at(-1).type===d.CharacterClassOpen)s.push(C(d.Character,o,{value:93}));else if(n--,s.push(C(d.CharacterClassClose,o)),!n)break}else{let i=Qt(o);Array.isArray(i)?s.push(...i):s.push(i)}}return{tokens:s,lastIndex:ye.lastIndex||e.length}}function Qt(e){if(e[0]==="\\")return qe(e,{inCharClass:!0});if(e[0]==="["){let t=/\[:(?<negate>\^?)(?<name>[a-z]+):\]/.exec(e);if(!t||!oe.get(t.groups.name))throw new Error(`Invalid POSIX class "${e}"`);return C(d.CharacterSet,e,{kind:x.posix,negate:!!t.groups.negate,value:t.groups.name})}return e==="-"?C(d.CharacterClassHyphen,e):e==="&&"?C(d.CharacterClassIntersector,e):(ze(e),C(d.Character,e,{value:e.codePointAt(0)}))}function qe(e,{inCharClass:t}){let r=e[1];if(r==="c"||r==="C")return qt(e);if("dDhHsSwW".includes(r))return Zt(e);if(e.startsWith(h`\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 Jt(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)),a=new TextEncoder;return[...n].map(i=>{let c=[...a.encode(i)].map(l=>`\\x${l.toString(16)}`).join("");return C(d.Character,c,{value:i.codePointAt(0)})})}catch{throw new Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(r==="u"||r==="x")return C(d.Character,e,{value:Yt(e)});if(je.has(r))return C(d.Character,e,{value:je.get(r)});if(/\d/.test(r))return C(d.EscapedNumber,e,{inCharClass:t});if(e==="\\")throw new Error(h`Incomplete escape "\"`);if(r==="M")throw new Error(`Unsupported meta "${e}"`);if([...e].length===2)return C(d.Character,e,{value:e.codePointAt(1)});throw new Error(`Unexpected escape "${e}"`)}function C(e,t,r){return{type:e,raw:t,...r}}function qt(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 C(d.Character,e,{value:t.toUpperCase().codePointAt(0)-64})}function zt(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"),a=We(r),o=We(s),i={};if(a&&(i.enable=a),o&&(i.disable=o),e.endsWith(")"))return t.replaceCurrentModX(n),C(d.Directive,e,{kind:z.flags,flags:i});if(e.endsWith(":")){t.pushModX(n),t.numOpenGroups++;let c=C(d.GroupOpen,e,{kind:E.group});return(a||o)&&(c.flags=i),c}throw new Error(`Unexpected flag modifier "${e}"`)}function Xt(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 C(d.Quantifier,e,t)}function Zt(e){let t=e[1].toLowerCase();return C(d.CharacterSet,e,{kind:{d:x.digit,h:x.hex,s:x.space,w:x.word}[t],negate:e[1]!==t})}function Jt(e){let{p:t,neg:r,value:s}=/^\\(?<p>[pP])\{(?<neg>\^?)(?<value>[^}]+)/.exec(e).groups,n=t==="P"&&!r||t==="p"&&!!r;return C(d.CharacterSet,e,{kind:x.property,negate:n,value:s})}function We(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 Yt(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);return parseInt(t,16)}function er(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[C(d.Backreference,r)];let a=[],o=n.match(/^[0-7]+|\d/g);for(let i=0;i<o.length;i++){let c=o[i],l;if(i===0&&c!=="8"&&c!=="9"){if(l=parseInt(c,8),l>127)throw new Error(h`Octal encoded byte above 177 unsupported "${r}"`)}else l=c.codePointAt(0);a.push(C(d.Character,(i===0?"\\":"")+c,{value:l}))}return a}function ze(e){if([...e].length!==1)throw new Error(`Expected "${e}" to be a single code point`)}function Z({alternatives:e},t){return e.length===1&&e[0].elements.length===1&&(!t||t(e[0].elements[0]))}function Xe({type:e}){return e===u.Assertion||e===u.Directive}function Ze(e){let t=[u.Character,u.CharacterClass,u.CharacterSet];return t.includes(e.type)||e.type===u.Quantifier&&e.min&&t.includes(e.element.type)}function ce({type:e}){return e===u.CapturingGroup||e===u.Group}function U({type:e,kind:t}){return e===u.Assertion&&(t===k.lookahead||t===k.lookbehind)}function N(e,t,r){let s=e.node;for(;s.parent;)s=s.parent;function n(o,i){for(let c=0;c<o.length;c++){let l=a(o[c],i,c,o);c=Math.max(-1,c+l)}}function a(o,i=null,c=null,l=null){let p=0,f=!1,m={node:o,parent:i,key:c,container:l,ast:s,remove(){I(l,"Container expected").splice(Math.max(0,c+p),1),p-=1},removeAllNextSiblings(){return I(l,"Container expected").splice(c+1)},removeAllPrevSiblings(){let _=c+p;return p-=_,I(l,"Container expected").splice(0,Math.max(0,_))},replaceWith(_){rr(_,i),l?l[Math.max(0,c+p)]=_:i[c]=_},skip(){f=!0}},g=tr(o).find(_=>!!r[_]),w=g&&r[g],b=typeof w=="function"?w:w?.enter,$=w?.exit;if(b?.(m,t),!f)switch(o.type){case u.Regex:a(o.pattern,o,"pattern"),a(o.flags,o,"flags");break;case u.Alternative:case u.CharacterClass:n(o.elements,o);break;case u.Assertion:U(o)&&n(o.alternatives,o);break;case u.Backreference:case u.Character:case u.CharacterSet:case u.Directive:case u.Flags:case u.Recursion:case u.Subroutine:case u.VariableLengthCharacterSet:break;case u.AbsentFunction:case u.CapturingGroup:case u.Group:case u.Pattern:n(o.alternatives,o);break;case u.CharacterClassIntersection:n(o.classes,o);break;case u.CharacterClassRange:a(o.min,o,"min"),a(o.max,o,"max");break;case u.Quantifier:a(o.element,o,"element");break;default:throw new Error(`Unexpected node type "${o.type}"`)}return $?.(m,t),p}a(e.node,e.parent,e.key,e.container)}var Je={AnyGroup:"AnyGroup",AnyNode:"AnyNode"};function tr(e){let t=[Je.AnyNode];return(ce(e)||U(e))&&t.push(Je.AnyGroup),t.push(e.type),t}function rr(e,t){"parent"in t&&(e.parent=t)}var u={AbsentFunction:"AbsentFunction",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"},tt={repeater:"repeater"},k={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=x,Y=z,J={grapheme:"grapheme",newline:"newline"};function ee({tokens:e,flags:t,rules:r},s){let n={skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,verbose:!1,...s},a={capturingGroups:[],current:0,hasNumberedRef:!1,namedGroupsByName:new Map,parent:null,skipBackrefValidation:n.skipBackrefValidation,skipLookbehindValidation:n.skipLookbehindValidation,skipPropertyNameValidation:n.skipPropertyNameValidation,subroutines:[],token:null,tokens:e,verbose:n.verbose,walk:o};function o(g,w){let b=e[a.current];switch(a.parent=g,a.token=b,a.current++,b.type){case d.Alternator:return P();case d.Assertion:return pr(b);case d.Backreference:return nr(a);case d.Character:return rt(b.value,{useLastValid:!!w.isCheckingRangeEnd});case d.CharacterClassHyphen:return sr(a,w);case d.CharacterClassOpen:return ar(a,w);case d.CharacterSet:return or(a);case d.Directive:return dr(b);case d.GroupOpen:return ir(a,w);case d.Quantifier:return cr(a);case d.Subroutine:return ur(a);case d.VariableLengthCharacterSet:return br(b.kind);default:throw new Error(`Unexpected token type "${b.type}"`)}}let i=kr(mr(),Cr(t)),c=i.pattern.alternatives[0];for(;a.current<e.length;){let g=o(c,{});g.type===u.Alternative?(i.pattern.alternatives.push(g),c=g):c.elements.push(g)}let{capturingGroups:l,hasNumberedRef:p,namedGroupsByName:f,subroutines:m}=a;if(p&&f.size&&!r.captureGroup)throw new Error("Numbered backref/subroutine not allowed when using named capture");for(let{ref:g}of m)if(typeof g=="number"){if(g>l.length)throw new Error("Subroutine uses a group number that's not defined")}else if(f.has(g)){if(f.get(g).length>1)throw new Error(h`Subroutine uses a duplicate group name "\g<${g}>"`)}else throw new Error(h`Subroutine uses a group name that's not defined "\g<${g}>"`);return N({node:i},null,{AnyNode({node:g,parent:w}){g.parent=w}}),i}function nr(e){let{raw:t}=e.token,r=/^\\k[<']/.test(t),s=r?t.slice(3,-1):t.slice(1),n=(a,o=!1)=>{let i=e.capturingGroups.length,c=!1;if(a>i)if(e.skipBackrefValidation)c=!0;else throw new Error(`Not enough capturing groups defined to the left "${t}"`);return e.hasNumberedRef=!0,ue(o?i+1-a:a,{orphan:c})};if(r){let a=/^(?<sign>-?)0*(?<num>[1-9]\d*)$/.exec(s);if(a)return n(+a.groups.num,!!a.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 ue(s)}return n(+s)}function sr(e,t){let{parent:r,tokens:s,walk:n}=e,a=r.elements.at(-1),o=s[e.current];if(!t.isCheckingRangeEnd&&a&&a.type!==u.CharacterClass&&a.type!==u.CharacterClassRange&&o&&o.type!==d.CharacterClassOpen&&o.type!==d.CharacterClassClose&&o.type!==d.CharacterClassIntersector){let i=n(r,{...t,isCheckingRangeEnd:!0});if(a.type===u.Character&&i.type===u.Character)return r.elements.pop(),hr(a,i);throw new Error("Invalid character class range")}return rt(45)}function ar(e,t){let{token:r,tokens:s,verbose:n,walk:a}=e,o=s[e.current],i=Ae({negate:r.negate}),c=i.elements[0],l=Ye(o);for(;l.type!==d.CharacterClassClose;){if(l.type===d.CharacterClassIntersector)c.classes.push(Ae({negate:!1,baseOnly:!0})),e.current++;else{let p=c.classes.at(-1);p.elements.push(a(p,t))}l=Ye(s[e.current],o)}if(n||Er(c),c.classes.length===1){let p=c.classes[0];p.negate=i.negate!==p.negate,i=p}return e.current++,i}function or({token:e,skipPropertyNameValidation:t}){let{kind:r,negate:s,value:n}=e;if(r===x.property){let a=q(n);if(Ve.has(a))r=x.posix,n=a;else return D(n,{negate:s,skipPropertyNameValidation:t})}return r===x.posix?{type:u.CharacterSet,kind:y.posix,negate:s,value:n}:le(r,{negate:s})}function ir(e,t){let{token:r,tokens:s,capturingGroups:n,namedGroupsByName:a,skipLookbehindValidation:o,verbose:i,walk:c}=e,l=fr(r),p=l.type===u.AbsentFunction,f=l.kind===k.lookbehind,m=f&&l.negate;if(l.type===u.CapturingGroup&&(n.push(l),l.name&&j(a,l.name,[]).push(l)),p&&t.isInAbsentFunction)throw new Error("Nested absent function not supported by Oniguruma");let g=et(s[e.current]);for(;g.type!==d.GroupClose;){if(g.type===d.Alternator)l.alternatives.push(P()),e.current++;else{let w=l.alternatives.at(-1),b=c(w,{...t,isInAbsentFunction:t.isInAbsentFunction||p,isInLookbehind:t.isInLookbehind||f,isInNegLookbehind:t.isInNegLookbehind||m});if(w.elements.push(b),(f||t.isInLookbehind)&&!o){let $="Lookbehind includes a pattern not allowed by Oniguruma";if(m||t.isInNegLookbehind){if(b.kind===k.lookahead||b.type===u.CapturingGroup)throw new Error($)}else if(b.kind===k.lookahead||b.kind===k.lookbehind&&b.negate)throw new Error($)}}g=et(s[e.current])}return i||(l=Ar(l)),e.current++,l}function cr({token:e,parent:t}){let{min:r,max:s,greedy:n,possessive:a}=e,o=t.elements.at(-1);if(!o||o.type===u.Assertion||o.type===u.Directive)throw new Error("Quantifier requires a repeatable token");let i=Se(o,r,s,n,a);return t.elements.pop(),i}function ur(e){let{token:t,capturingGroups:r,subroutines:s}=e,n=t.raw.slice(3,-1),a=/^(?<sign>[-+]?)0*(?<num>[1-9]\d*)$/.exec(n);if(a){let i=+a.groups.num,c=r.length;if(e.hasNumberedRef=!0,n={"":i,"+":c+i,"-":c+1-i}[a.groups.sign],n<1)throw new Error("Invalid subroutine number")}else n==="0"&&(n=0);let o=wr(n);return s.push(o),o}function lr(e){if(e!==tt.repeater)throw new Error(`Unexpected absent function kind "${e}"`);return{type:u.AbsentFunction,kind:e,alternatives:[P()]}}function P(){return{type:u.Alternative,elements:[]}}function xe(e,t){let r=!!t?.negate;return{type:u.Assertion,kind:e,...e===k.word_boundary&&{negate:r}}}function pr({kind:e}){return xe(I({"^":k.line_start,$:k.line_end,"\\A":k.string_start,"\\b":k.word_boundary,"\\B":k.word_boundary,"\\G":k.search_start,"\\z":k.string_end,"\\Z":k.string_end_newline}[e],`Unexpected assertion kind "${e}"`),{negate:e===h`\B`})}function ue(e,t){let r=!!t?.orphan;return{type:u.Backreference,...r&&{orphan:r},ref:e}}function fr({flags:e,kind:t,name:r,negate:s,number:n}){switch(t){case E.absent_repeater:return lr(tt.repeater);case E.atomic:return G({atomic:!0});case E.capturing:return Ee(n,r);case E.group:return G({flags:e});case E.lookahead:case E.lookbehind:return W({behind:t===E.lookbehind,negate:s});default:throw new Error(`Unexpected group kind "${t}"`)}}function Ee(e,t){let r=t!==void 0;if(r&&!xr(t))throw new Error(`Group name "${t}" invalid in Oniguruma`);return{type:u.CapturingGroup,number:e,...r&&{name:t},alternatives:[P()]}}function rt(e,t){let r={useLastValid:!1,...t};if(e>1114111){let s=e.toString(16);if(r.useLastValid)e=1114111;else throw e>1310719?new Error(`Invalid code point out of range "\\x{${s}}"`):new Error(`Invalid code point out of range in JS "\\x{${s}}"`)}return{type:u.Character,value:e}}function Ae(e){let t={baseOnly:!1,negate:!1,...e};return{type:u.CharacterClass,negate:t.negate,elements:t.baseOnly?[]:[gr()]}}function gr(){return{type:u.CharacterClassIntersection,classes:[Ae({negate:!1,baseOnly:!0})]}}function hr(e,t){if(t.value<e.value)throw new Error("Character class range out of order");return{type:u.CharacterClassRange,min:e,max:t}}function le(e,{negate:t}){let r={type:u.CharacterSet,kind:I(y[e],`Unexpected character set kind "${e}"`)};return(e===x.digit||e===x.hex||e===x.space||e===x.word)&&(r.negate=t),r}function dr({kind:e,flags:t}){let r={type:u.Directive,kind:I(Y[e],`Unexpected directive kind "${e}"`)};return e===z.flags&&(r.flags=t),r}function Cr({ignoreCase:e,dotAll:t,extended:r,digitIsAscii:s,spaceIsAscii:n,wordIsAscii:a}){return{type:u.Flags,ignoreCase:e,dotAll:t,extended:r,digitIsAscii:s,spaceIsAscii:n,wordIsAscii:a}}function G(e){let t=e?.atomic,r=e?.flags;return{type:u.Group,...t&&{atomic:t},...r&&{flags:r},alternatives:[P()]}}function W(e){let t={behind:!1,negate:!1,...e};return{type:u.Assertion,kind:t.behind?k.lookbehind:k.lookahead,negate:t.negate,alternatives:[P()]}}function mr(){return{type:u.Pattern,alternatives:[P()]}}function Se(e,t,r,s=!0,n=!1){let a={type:u.Quantifier,min:t,max:r,greedy:s,possessive:n,element:e};return r<t?{...a,min:r,max:t,possessive:!0}:a}function kr(e,t){return{type:u.Regex,pattern:e,flags:t}}function wr(e){return{type:u.Subroutine,ref:e}}function D(e,t){let r={negate:!1,skipPropertyNameValidation:!1,...t};return{type:u.CharacterSet,kind:y.property,value:r.skipPropertyNameValidation?e:yr(e),negate:r.negate}}function br(e){return{type:u.VariableLengthCharacterSet,kind:I({"\\R":J.newline,"\\X":J.grapheme}[e],`Unexpected varcharset kind "${e}"`)}}function yr(e){let t=q(e);if(we.has(t))throw new Error(h`Unicode property "\p{${e}}" unsupported in Oniguruma`);let r=ke.get(t);return r||e.trim().replace(/[- _]+/g,"_").replace(/[A-Z][a-z]+(?=[A-Z])/g,"$&_").replace(/[A-Za-z]+/g,s=>s[0].toUpperCase()+s.slice(1).toLowerCase())}function Ar(e){let t=e.alternatives[0].elements[0];return e.type===u.Group&&Z(e,r=>r.type===u.Group)&&!(e.atomic&&t.flags)&&!(e.flags&&(t.atomic||t.flags))?(e.atomic?t.atomic=!0:e.flags&&(t.flags=e.flags),t):e}function xr(e){return/^[\p{Alpha}\p{Pc}][^)]*$/u.test(e)}function Er(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===u.CharacterClass&&(e.classes[t]=s,s.negate=r.negate!==s.negate)}}function Ye(e,t){return I(e,`${t?.value===93?"Empty":"Unclosed"} character class`)}function et(e){return I(e,"Unclosed group")}var $e=String.raw,nt=$e`(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})`,st=$e`\u{E0061}-\u{E007A}`,at=()=>new RegExp($e`[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[${st}]{2}[\u{E0030}-\u{E0039}${st}]{1,3}\u{E007F}|${nt}(?:\u200D${nt})*`,"gu");function it(e,t){let r={accuracy:"default",asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:"ES2025",...t},s={accuracy:r.accuracy,asciiWordBoundaries:r.asciiWordBoundaries,avoidSubclass:r.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:Q(r.bestEffortTarget,"ES2024"),passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:e.flags.digitIsAscii,spaceIsAscii:e.flags.spaceIsAscii,wordIsAscii:e.flags.wordIsAscii};N({node:e},s,ct);let n={dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},a={currentFlags:n,prevFlags:null,globalFlags:n,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:s.subroutineRefMap};N({node:e},a,ut);let o={groupsByName:a.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:a.reffedNodesByReferencer};return N({node:e},o,Sr),e._strategy=s.strategy,e}var ct={AbsentFunction({node:e,replaceWith:t}){let r=R(G(),[te(W({negate:!0}),e.alternatives),D("Any")]),s=Se(r,0,1/0);r.parent=s,t(R(G(),[s]))},Alternative:{enter({node:e,parent:t,key:r},{flagDirectivesByAlt:s}){let n=e.elements.filter(a=>a.kind===Y.flags);for(let a=r+1;a<t.alternatives.length;a++){let o=t.alternatives[a];j(s,o,[]).push(...n)}},exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){let r=pt(t.get(e));if(r){let s=R(G({flags:r}),e.elements);s.parent=e,e.elements=[s]}}}},Assertion({node:e,key:t,container:r,ast:s,remove:n,replaceWith:a},o){let{kind:i,negate:c}=e,{asciiWordBoundaries:l,avoidSubclass:p,supportedGNodes:f,wordIsAscii:m}=o;if(i===k.line_end)a(M(h`(?=\z|\n)`));else if(i===k.line_start)a(M(h`(?<=\A|\n(?!\z))`,{skipLookbehindValidation:!0}));else if(i===k.lookbehind)o.passedLookbehind=!0;else if(i===k.search_start)if(f.has(e))s.flags.sticky=!0,n();else{let g=r[t-1];if(g&&Ze(g))a(R(W({negate:!0})));else{if(p)throw new Error(h`Uses "\G" in a way that requires a subclass`);a(xe(k.string_start)),o.strategy="search_start_clip"}}else if(i===k.string_end_newline)a(M(h`(?=\n?\z)`));else if(i===k.word_boundary&&!m&&!l){let g=`(?:(?<=${L})(?!${L})|(?<!${L})(?=${L}))`,w=`(?:(?<=${L})(?=${L})|(?<!${L})(?!${L}))`;a(M(c?w:g))}},Backreference({node:e},{jsGroupNameMap:t}){let{ref:r}=e;typeof r=="string"&&!_e(r)&&(r=Fe(r,t),e.ref=r)},CapturingGroup({node:e},{jsGroupNameMap:t,subroutineRefMap:r}){let{name:s}=e;s&&!_e(s)&&(s=Fe(s,t),e.name=s),r.set(e.number,e),s&&r.set(s,e)},CharacterSet({node:e,replaceWith:t},{accuracy:r,minTargetEs2024:s,digitIsAscii:n,spaceIsAscii:a,wordIsAscii:o}){let{kind:i,negate:c,value:l}=e;if(n&&(i===y.digit||l==="digit")){t(le(y.digit,{negate:c}));return}if(a&&(i===y.space||l==="space")){t(ve(M($r),c));return}if(o&&(i===y.word||l==="word")){t(le(y.word,{negate:c}));return}if(i===y.any)t(D("Any"));else if(i===y.digit)t(D("Nd",{negate:c}));else if(i===y.hex)t(D("AHex",{negate:c}));else if(i===y.non_newline)t(M(h`[^\n]`));else if(i===y.space)t(D("space",{negate:c}));else if(i===y.word)t(ve(M(L),c));else if(i===y.property)me.has(l)||(e.key="sc");else if(i===y.posix)if(!s&&(l==="graph"||l==="print")){if(r==="strict")throw new Error(`POSIX class "${l}" requires min target ES2024 or non-strict accuracy`);let p={graph:"!-~",print:" -~"}[l];c&&(p=`\0-${A(p.codePointAt(0)-1)}${A(p.codePointAt(2)+1)}-\u{10FFFF}`),t(M(`[${p}]`))}else t(ve(M(oe.get(l)),c))},Directive(e,t){let{node:r,parent:s,ast:n,remove:a,replaceWith:o,removeAllPrevSiblings:i,removeAllNextSiblings:c}=e,{kind:l,flags:p}=r;if(l===Y.flags)if(!p.enable&&!p.disable)a();else{let f=R(G({flags:p}),c());o(f),dt(f,e,t,ct)}else if(l===Y.keep){let f=n.pattern.alternatives[0].elements[0],g=Z(n.pattern,w=>w.type===u.Group)&&f.alternatives.length===1?f:n.pattern;if(s.parent!==g||g.alternatives.length>1)throw new Error(h`Uses "\K" in a way that's unsupported`);o(R(W({behind:!0}),i()))}},Flags({node:e,parent:t}){["digitIsAscii","extended","spaceIsAscii","wordIsAscii"].forEach(r=>delete e[r]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),t.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;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:{enter({node:e},{supportedGNodes:t}){let r=[],s=!1,n=!1;for(let a of e.alternatives)if(a.elements.length===1&&a.elements[0].kind===k.search_start)a.elements.pop();else{let o=gt(a.elements);o?(s=!0,Array.isArray(o)?r.push(...o):r.push(o)):n=!0}s&&!n&&r.forEach(a=>t.add(a))},exit(e,{accuracy:t,passedLookbehind:r,strategy:s}){if(t==="strict"&&r&&s)throw new Error(h`Uses "\G" in a way that requires non-strict accuracy`)}},Quantifier({node:e}){if(e.element.type===u.Quantifier){let t=R(G(),[e.element]);t.parent=e,e.element=t}},Subroutine({node:e},{jsGroupNameMap:t}){let{ref:r}=e;typeof r=="string"&&!_e(r)&&(r=Fe(r,t),e.ref=r)},VariableLengthCharacterSet({node:e,replaceWith:t},{accuracy:r,minTargetEs2024:s}){let{kind:n}=e;if(n===J.newline)t(M(`(?>\r
`.replace(/\s+/g,""),"gsu");function ee(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 s=t.includes("x"),n=[s],a={captureGroup:r.captureGroup,getCurrentModX:()=>n.at(-1),numOpenGroups:0,popModX(){n.pop()},pushModX(f){n.push(f)},replaceCurrentModX(f){n[n.length-1]=f},singleline:r.singleline},i=[],o;for(fe.lastIndex=0;o=fe.exec(e);){let f=Xt(a,e,o[0],fe.lastIndex);f.tokens?i.push(...f.tokens):f.token&&i.push(f.token),f.lastIndex!==void 0&&(fe.lastIndex=f.lastIndex)}let c=[],u=0;i.forEach(f=>{f.type===d.GroupOpen&&(f.kind===F.capturing?f.number=++u:f.raw==="("&&c.push(f))}),u||c.forEach((f,C)=>{f.kind=F.capturing,f.number=C+1});let l=u||c.length;return i=i.map(f=>f.type===d.EscapedNumber?ar(f,l):f).flat(),{tokens:i,flags:{ignoreCase:t.includes("i"),dotAll:t.includes("m"),extended:s,digitIsAscii:t.includes("D"),spaceIsAscii:t.includes("S"),wordIsAscii:t.includes("W")},rules:r}}function Xt(e,t,r,s){let[n,a,i]=r;if(n==="["){let o=Zt(t,r,s);return{tokens:o.tokens,lastIndex:o.lastIndex}}if(n==="\\"){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:Y.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 o=Ze(r,{inCharClass:!1});return Array.isArray(o)?{tokens:o}:{token:o}}if(n==="("){if(i==="#"){if(t[s]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:s+1}}if("-imx".includes(i))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:i==="<"?F.lookbehind:F.lookahead,negate:r.endsWith("!")})};if(i==="<"||i==="'"||r==="("&&e.captureGroup){let o=b(d.GroupOpen,r,{kind:F.capturing});return r!=="("&&(o.name=r.slice(3,-1)),{token:o}}if(i==="~"){if(r==="(?~|")throw new Error(`Unsupported absent function kind "${r}"`);return{token:b(d.GroupOpen,r,{kind:F.absent_repeater})}}throw i==="("?new Error(`Unsupported conditional "${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:b(d.GroupClose,r)}}if(r==="#"&&e.getCurrentModX()){let o=t.indexOf(`
`,s);return{lastIndex:o===-1?t.length:o}}if(/^\s$/.test(r)&&e.getCurrentModX()){let o=/\s+/y;return o.lastIndex=s,{lastIndex:o.exec(t)?o.lastIndex:s}}if(r===".")return{token:b(d.CharacterSet,r,{kind:S.dot})};if(r==="^"||r==="$"){let o=e.singleline?{"^":h`\A`,$:h`\Z`}[r]:r;return{token:b(d.Assertion,r,{kind:o})}}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 s=[b(d.CharacterClassOpen,t,{negate:t[1]==="^"})],n=1,a;for(Se.lastIndex=r;a=Se.exec(e);){let i=a[0];if(i[0]==="["&&i[1]!==":")n++,s.push(b(d.CharacterClassOpen,i,{negate:i[1]==="^"}));else if(i==="]"){if(s.at(-1).type===d.CharacterClassOpen)s.push(b(d.Character,i,{value:93}));else if(n--,s.push(b(d.CharacterClassClose,i)),!n)break}else{let o=Jt(i);Array.isArray(o)?s.push(...o):s.push(o)}}return{tokens:s,lastIndex:Se.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||!pe.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(h`\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 s=e.split(/\\x/).slice(1).map(o=>parseInt(o,16)),n=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(s)),a=new TextEncoder;return[...n].map(o=>{let c=[...a.encode(o)].map(u=>`\\x${u.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(Ke.has(r))return b(d.Character,e,{value:Ke.get(r)});if(/\d/.test(r))return b(d.EscapedNumber,e,{inCharClass:t});if(e==="\\")throw new Error(h`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:s}=/^\(\?(?<on>[imx]*)(?:-(?<off>[imx\-]*))?/.exec(e).groups;s??="";let n=(t.getCurrentModX()||r.includes("x"))&&!s.includes("x"),a=ze(r),i=ze(s),o={};if(a&&(o.enable=a),i&&(o.disable=i),e.endsWith(")"))return t.replaceCurrentModX(n),b(d.Directive,e,{kind:Y.flags,flags:o});if(e.endsWith(":")){t.pushModX(n),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: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 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:s}=/^\\(?<p>[pP])\{(?<neg>\^?)(?<value>[^}]+)/.exec(e).groups,n=t==="P"&&!r||t==="p"&&!!r;return b(d.CharacterSet,e,{kind:S.property,negate:n,value:s})}function ze(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}{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);return parseInt(t,16)}function ar(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[b(d.Backreference,r)];let a=[],i=n.match(/^[0-7]+|\d/g);for(let o=0;o<i.length;o++){let c=i[o],u;if(o===0&&c!=="8"&&c!=="9"){if(u=parseInt(c,8),u>127)throw new Error(h`Octal encoded byte above 177 unsupported "${r}"`)}else u=c.codePointAt(0);a.push(b(d.Character,(o===0?"\\":"")+c,{value:u}))}return a}function Je(e){if([...e].length!==1)throw new Error(`Expected "${e}" to be a single code point`)}function te({alternatives:e},t){return e.length===1&&e[0].elements.length===1&&(!t||t(e[0].elements[0]))}function Ye({type:e}){return e===p.Assertion||e===p.Directive}function et(e){let t=[p.Character,p.CharacterClass,p.CharacterSet];return t.includes(e.type)||e.type===p.Quantifier&&e.min&&t.includes(e.element.type)}function ge({type:e}){return e===p.CapturingGroup||e===p.Group}function B({type:e,kind:t}){return e===p.Assertion&&(t===k.lookahead||t===k.lookbehind)}function T(e,t,r){let s=e.node;for(;s.parent;)s=s.parent;function n(i,o){for(let c=0;c<i.length;c++){let u=a(i[c],o,c,i);c=Math.max(-1,c+u)}}function a(i,o=null,c=null,u=null){let l=0,f=!1,C={node:i,parent:o,key:c,container:u,ast:s,remove(){$(u,"Container expected").splice(Math.max(0,c+l),1),l-=1},removeAllNextSiblings(){return $(u,"Container expected").splice(c+1)},removeAllPrevSiblings(){let E=c+l;return l-=E,$(u,"Container expected").splice(0,Math.max(0,E))},replaceWith(E){or(E,o),u?u[Math.max(0,c+l)]=E:o[c]=E},skip(){f=!0}},g=ir(i).find(E=>!!r[E]),m=g&&r[g],w=typeof m=="function"?m:m?.enter,y=m?.exit;if(w?.(C,t),!f)switch(i.type){case p.Regex:a(i.pattern,i,"pattern"),a(i.flags,i,"flags");break;case p.Alternative:case p.CharacterClass:n(i.elements,i);break;case p.Assertion:B(i)&&n(i.alternatives,i);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.AbsentFunction:case p.CapturingGroup:case p.Group:case p.Pattern:n(i.alternatives,i);break;case p.CharacterClassIntersection:n(i.classes,i);break;case p.CharacterClassRange:a(i.min,i,"min"),a(i.max,i,"max");break;case p.Quantifier:a(i.element,i,"element");break;default:throw new Error(`Unexpected node type "${i.type}"`)}return y?.(C,t),l}a(e.node,e.parent,e.key,e.container)}var tt={AnyGroup:"AnyGroup",AnyNode:"AnyNode"};function ir(e){let t=[tt.AnyNode];return(ge(e)||B(e))&&t.push(tt.AnyGroup),t.push(e.type),t}function or(e,t){"parent"in t&&(e.parent=t)}var p={AbsentFunction:"AbsentFunction",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"},st={repeater:"repeater"},k={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"},A=S,ne=Y,re={grapheme:"grapheme",newline:"newline"};function se({tokens:e,flags:t,rules:r},s){let n={skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,verbose:!1,...s},a={capturingGroups:[],current:0,hasNumberedRef:!1,namedGroupsByName:new Map,parent:null,skipBackrefValidation:n.skipBackrefValidation,skipLookbehindValidation:n.skipLookbehindValidation,skipPropertyNameValidation:n.skipPropertyNameValidation,subroutines:[],token:null,tokens:e,verbose:n.verbose,walk:i};function i(g,m){let w=e[a.current];switch(a.parent=g,a.token=w,a.current++,w.type){case d.Alternator:return O();case d.Assertion:return Cr(w);case d.Backreference:return cr(a);case d.Character:return at(w.value,{useLastValid:!!m.isCheckingRangeEnd});case d.CharacterClassHyphen:return ur(a,m);case d.CharacterClassOpen:return lr(a,m);case d.CharacterSet:return pr(a);case d.Directive:return kr(w);case d.GroupOpen:return fr(a,m);case d.Quantifier:return gr(a);case d.Subroutine:return hr(a);case d.VariableLengthCharacterSet:return Sr(w.kind);default:throw new Error(`Unexpected token type "${w.type}"`)}}let o=xr(Ar(),yr(t)),c=o.pattern.alternatives[0];for(;a.current<e.length;){let g=i(c,{});g.type===p.Alternative?(o.pattern.alternatives.push(g),c=g):c.elements.push(g)}let{capturingGroups:u,hasNumberedRef:l,namedGroupsByName:f,subroutines:C}=a;if(l&&f.size&&!r.captureGroup)throw new Error("Numbered backref/subroutine not allowed when using named capture");for(let{ref:g}of C)if(typeof g=="number"){if(g>u.length)throw new Error("Subroutine uses a group number that's not defined")}else if(f.has(g)){if(f.get(g).length>1)throw new Error(h`Subroutine uses a duplicate group name "\g<${g}>"`)}else throw new Error(h`Subroutine uses a group name that's not defined "\g<${g}>"`);return T({node:o},null,{AnyNode({node:g,parent:m}){g.parent=m}}),o}function cr(e){let{raw:t}=e.token,r=/^\\k[<']/.test(t),s=r?t.slice(3,-1):t.slice(1),n=(a,i=!1)=>{let o=e.capturingGroups.length,c=!1;if(a>o)if(e.skipBackrefValidation)c=!0;else throw new Error(`Not enough capturing groups defined to the left "${t}"`);return e.hasNumberedRef=!0,he(i?o+1-a:a,{orphan:c})};if(r){let a=/^(?<sign>-?)0*(?<num>[1-9]\d*)$/.exec(s);if(a)return n(+a.groups.num,!!a.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 he(s)}return n(+s)}function ur(e,t){let{parent:r,tokens:s,walk:n}=e,a=r.elements.at(-1),i=s[e.current];if(!t.isCheckingRangeEnd&&a&&a.type!==p.CharacterClass&&a.type!==p.CharacterClassRange&&i&&i.type!==d.CharacterClassOpen&&i.type!==d.CharacterClassClose&&i.type!==d.CharacterClassIntersector){let o=n(r,{...t,isCheckingRangeEnd:!0});if(a.type===p.Character&&o.type===p.Character)return r.elements.pop(),br(a,o);throw new Error("Invalid character class range")}return at(45)}function lr(e,t){let{token:r,tokens:s,verbose:n,walk:a}=e,i=s[e.current],o=Fe({negate:r.negate}),c=o.elements[0],u=rt(i);for(;u.type!==d.CharacterClassClose;){if(u.type===d.CharacterClassIntersector)c.classes.push(Fe({negate:!1,baseOnly:!0})),e.current++;else{let l=c.classes.at(-1);l.elements.push(a(l,t))}u=rt(s[e.current],i)}if(n||vr(c),c.classes.length===1){let l=c.classes[0];l.negate=o.negate!==l.negate,o=l}return e.current++,o}function pr({token:e,skipPropertyNameValidation:t}){let{kind:r,negate:s,value:n}=e;if(r===S.property){let a=J(n);if(He.has(a))r=S.posix,n=a;else return j(n,{negate:s,skipPropertyNameValidation:t})}return r===S.posix?{type:p.CharacterSet,kind:A.posix,negate:s,value:n}:de(r,{negate:s})}function fr(e,t){let{token:r,tokens:s,capturingGroups:n,namedGroupsByName:a,skipLookbehindValidation:i,verbose:o,walk:c}=e,u=mr(r),l=u.type===p.AbsentFunction,f=u.kind===k.lookbehind,C=f&&u.negate;if(u.type===p.CapturingGroup&&(n.push(u),u.name&&L(a,u.name,[]).push(u)),l&&t.isInAbsentFunction)throw new Error("Nested absent function not supported by Oniguruma");let g=nt(s[e.current]);for(;g.type!==d.GroupClose;){if(g.type===d.Alternator)u.alternatives.push(O()),e.current++;else{let m=u.alternatives.at(-1),w=c(m,{...t,isInAbsentFunction:t.isInAbsentFunction||l,isInLookbehind:t.isInLookbehind||f,isInNegLookbehind:t.isInNegLookbehind||C});if(m.elements.push(w),(f||t.isInLookbehind)&&!i){let y="Lookbehind includes a pattern not allowed by Oniguruma";if(C||t.isInNegLookbehind){if(w.kind===k.lookahead||w.type===p.CapturingGroup)throw new Error(y)}else if(w.kind===k.lookahead||w.kind===k.lookbehind&&w.negate)throw new Error(y)}}g=nt(s[e.current])}return o||(u=_r(u)),e.current++,u}function gr({token:e,parent:t}){let{min:r,max:s,greedy:n,possessive:a}=e,i=t.elements.at(-1);if(!i||i.type===p.Assertion||i.type===p.Directive)throw new Error("Quantifier requires a repeatable token");let o=ve(i,r,s,n,a);return t.elements.pop(),o}function hr(e){let{token:t,capturingGroups:r,subroutines:s}=e,n=t.raw.slice(3,-1),a=/^(?<sign>[-+]?)0*(?<num>[1-9]\d*)$/.exec(n);if(a){let o=+a.groups.num,c=r.length;if(e.hasNumberedRef=!0,n={"":o,"+":c+o,"-":c+1-o}[a.groups.sign],n<1)throw new Error("Invalid subroutine number")}else n==="0"&&(n=0);let i=Er(n);return s.push(i),i}function dr(e){if(e!==st.repeater)throw new Error(`Unexpected absent function kind "${e}"`);return{type:p.AbsentFunction,kind:e,alternatives:[O()]}}function O(){return{type:p.Alternative,elements:[]}}function _e(e,t){let r=!!t?.negate;return{type:p.Assertion,kind:e,...e===k.word_boundary&&{negate:r}}}function Cr({kind:e}){return _e($({"^":k.line_start,$:k.line_end,"\\A":k.string_start,"\\b":k.word_boundary,"\\B":k.word_boundary,"\\G":k.search_start,"\\z":k.string_end,"\\Z":k.string_end_newline}[e],`Unexpected assertion kind "${e}"`),{negate:e===h`\B`})}function he(e,t){let r=!!t?.orphan;return{type:p.Backreference,...r&&{orphan:r},ref:e}}function mr({flags:e,kind:t,name:r,negate:s,number:n}){switch(t){case F.absent_repeater:return dr(st.repeater);case F.atomic:return G({atomic:!0});case F.capturing:return $e(n,r);case F.group:return G({flags:e});case F.lookahead:case F.lookbehind:return Q({behind:t===F.lookbehind,negate:s});default:throw new Error(`Unexpected group kind "${t}"`)}}function $e(e,t){let r=t!==void 0;if(r&&!$r(t))throw new Error(`Group name "${t}" invalid in Oniguruma`);return{type:p.CapturingGroup,number:e,...r&&{name:t},alternatives:[O()]}}function at(e,t){let r={useLastValid:!1,...t};if(e>1114111){let s=e.toString(16);if(r.useLastValid)e=1114111;else throw e>1310719?new Error(`Invalid code point out of range "\\x{${s}}"`):new Error(`Invalid code point out of range in JS "\\x{${s}}"`)}return{type:p.Character,value:e}}function Fe(e){let t={baseOnly:!1,negate:!1,...e};return{type:p.CharacterClass,negate:t.negate,elements:t.baseOnly?[]:[wr()]}}function wr(){return{type:p.CharacterClassIntersection,classes:[Fe({negate:!1,baseOnly:!0})]}}function br(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 de(e,{negate:t}){let r={type:p.CharacterSet,kind:$(A[e],`Unexpected character set kind "${e}"`)};return(e===S.digit||e===S.hex||e===S.space||e===S.word)&&(r.negate=t),r}function kr({kind:e,flags:t}){let r={type:p.Directive,kind:$(ne[e],`Unexpected directive kind "${e}"`)};return e===Y.flags&&(r.flags=t),r}function yr({ignoreCase:e,dotAll:t,extended:r,digitIsAscii:s,spaceIsAscii:n,wordIsAscii:a}){return{type:p.Flags,ignoreCase:e,dotAll:t,extended:r,digitIsAscii:s,spaceIsAscii:n,wordIsAscii:a}}function G(e){let t=e?.atomic,r=e?.flags;return{type:p.Group,...t&&{atomic:t},...r&&{flags:r},alternatives:[O()]}}function Q(e){let t={behind:!1,negate:!1,...e};return{type:p.Assertion,kind:t.behind?k.lookbehind:k.lookahead,negate:t.negate,alternatives:[O()]}}function Ar(){return{type:p.Pattern,alternatives:[O()]}}function ve(e,t,r,s=!0,n=!1){let a={type:p.Quantifier,min:t,max:r,greedy:s,possessive:n,element:e};return r<t?{...a,min:r,max:t,possessive:!0}:a}function xr(e,t){return{type:p.Regex,pattern:e,flags:t}}function Er(e){return{type:p.Subroutine,ref:e}}function j(e,t){let r={negate:!1,skipPropertyNameValidation:!1,...t};return{type:p.CharacterSet,kind:A.property,value:r.skipPropertyNameValidation?e:Fr(e),negate:r.negate}}function Sr(e){return{type:p.VariableLengthCharacterSet,kind:$({"\\R":re.newline,"\\X":re.grapheme}[e],`Unexpected varcharset kind "${e}"`)}}function Fr(e){let t=J(e);if(xe.has(t))throw new Error(h`Unicode property "\p{${e}}" unsupported in Oniguruma`);let r=Ae.get(t);return r||e.trim().replace(/[- _]+/g,"_").replace(/[A-Z][a-z]+(?=[A-Z])/g,"$&_").replace(/[A-Za-z]+/g,s=>s[0].toUpperCase()+s.slice(1).toLowerCase())}function _r(e){let t=e.alternatives[0].elements[0];return e.type===p.Group&&te(e,r=>r.type===p.Group)&&!(e.atomic&&t.flags)&&!(e.flags&&(t.atomic||t.flags))?(e.atomic?t.atomic=!0:e.flags&&(t.flags=e.flags),t):e}function $r(e){return/^[\p{Alpha}\p{Pc}][^)]*$/u.test(e)}function vr(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===p.CharacterClass&&(e.classes[t]=s,s.negate=r.negate!==s.negate)}}function rt(e,t){return $(e,`${t?.value===93?"Empty":"Unclosed"} character class`)}function nt(e){return $(e,"Unclosed group")}var Ie=String.raw,it=Ie`(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})`,ot=Ie`\u{E0061}-\u{E007A}`,ct=()=>new RegExp(Ie`[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[${ot}]{2}[\u{E0030}-\u{E0039}${ot}]{1,3}\u{E007F}|${it}(?:\u200D${it})*`,"gu");function lt(e,t){let r={accuracy:"default",asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:"ES2025",...t},s={accuracy:r.accuracy,asciiWordBoundaries:r.asciiWordBoundaries,avoidSubclass:r.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:Z(r.bestEffortTarget,"ES2024"),passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:e.flags.digitIsAscii,spaceIsAscii:e.flags.spaceIsAscii,wordIsAscii:e.flags.wordIsAscii};T({node:e},s,pt);let n={dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},a={currentFlags:n,prevFlags:null,globalFlags:n,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:s.subroutineRefMap};T({node:e},a,ft);let i={groupsByName:a.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:a.reffedNodesByReferencer};return T({node:e},i,Ir),e._originMap=a.groupOriginByCopy,e._strategy=s.strategy,e}var pt={AbsentFunction({node:e,replaceWith:t}){let r=U(G(),[ae(Q({negate:!0}),e.alternatives),j("Any")]),s=ve(r,0,1/0);r.parent=s,t(U(G(),[s]))},Alternative:{enter({node:e,parent:t,key:r},{flagDirectivesByAlt:s}){let n=e.elements.filter(a=>a.kind===ne.flags);for(let a=r+1;a<t.alternatives.length;a++){let i=t.alternatives[a];L(s,i,[]).push(...n)}},exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){let r=ht(t.get(e));if(r){let s=U(G({flags:r}),e.elements);s.parent=e,e.elements=[s]}}}},Assertion({node:e,key:t,container:r,ast:s,remove:n,replaceWith:a},i){let{kind:o,negate:c}=e,{asciiWordBoundaries:u,avoidSubclass:l,supportedGNodes:f,wordIsAscii:C}=i;if(o===k.line_end)a(M(h`(?=\z|\n)`));else if(o===k.line_start)a(M(h`(?<=\A|\n(?!\z))`,{skipLookbehindValidation:!0}));else if(o===k.lookbehind)i.passedLookbehind=!0;else if(o===k.search_start)if(f.has(e))s.flags.sticky=!0,n();else{let g=r[t-1];if(g&&et(g))a(U(Q({negate:!0})));else{if(l)throw new Error(h`Uses "\G" in a way that requires a subclass`);a(_e(k.string_start)),i.strategy="clip_search"}}else if(o===k.string_end_newline)a(M(h`(?=\n?\z)`));else if(o===k.word_boundary&&!C&&!u){let g=`(?:(?<=${R})(?!${R})|(?<!${R})(?=${R}))`,m=`(?:(?<=${R})(?=${R})|(?<!${R})(?!${R}))`;a(M(c?m:g))}},Backreference({node:e},{jsGroupNameMap:t}){let{ref:r}=e;typeof r=="string"&&!Me(r)&&(r=Ge(r,t),e.ref=r)},CapturingGroup({node:e},{jsGroupNameMap:t,subroutineRefMap:r}){let{name:s}=e;s&&!Me(s)&&(s=Ge(s,t),e.name=s),r.set(e.number,e),s&&r.set(s,e)},CharacterSet({node:e,replaceWith:t},{accuracy:r,minTargetEs2024:s,digitIsAscii:n,spaceIsAscii:a,wordIsAscii:i}){let{kind:o,negate:c,value:u}=e;if(n&&(o===A.digit||u==="digit")){t(de(A.digit,{negate:c}));return}if(a&&(o===A.space||u==="space")){t(Ne(M(Gr),c));return}if(i&&(o===A.word||u==="word")){t(de(A.word,{negate:c}));return}if(o===A.any)t(j("Any"));else if(o===A.digit)t(j("Nd",{negate:c}));else if(o===A.hex)t(j("AHex",{negate:c}));else if(o===A.non_newline)t(M(h`[^\n]`));else if(o===A.space)t(j("space",{negate:c}));else if(o===A.word)t(Ne(M(R),c));else if(o===A.property)ye.has(u)||(e.key="sc");else if(o===A.posix)if(!s&&(u==="graph"||u==="print")){if(r==="strict")throw new Error(`POSIX class "${u}" requires min target ES2024 or non-strict accuracy`);let l={graph:"!-~",print:" -~"}[u];c&&(l=`\0-${x(l.codePointAt(0)-1)}${x(l.codePointAt(2)+1)}-\u{10FFFF}`),t(M(`[${l}]`))}else t(Ne(M(pe.get(u)),c))},Directive(e,t){let{node:r,parent:s,ast:n,remove:a,replaceWith:i,removeAllPrevSiblings:o,removeAllNextSiblings:c}=e,{kind:u,flags:l}=r;if(u===ne.flags)if(!l.enable&&!l.disable)a();else{let f=U(G({flags:l}),c());i(f),wt(f,e,t,pt)}else if(u===ne.keep){let f=n.pattern.alternatives[0].elements[0],g=te(n.pattern,m=>m.type===p.Group)&&f.alternatives.length===1?f:n.pattern;if(s.parent!==g||g.alternatives.length>1)throw new Error(h`Uses "\K" in a way that's unsupported`);i(U(Q({behind:!0}),o()))}},Flags({node:e,parent:t}){["digitIsAscii","extended","spaceIsAscii","wordIsAscii"].forEach(r=>delete e[r]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),t.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;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:{enter({node:e},{supportedGNodes:t}){let r=[],s=!1,n=!1;for(let a of e.alternatives)if(a.elements.length===1&&a.elements[0].kind===k.search_start)a.elements.pop();else{let i=Ct(a.elements);i?(s=!0,Array.isArray(i)?r.push(...i):r.push(i)):n=!0}s&&!n&&r.forEach(a=>t.add(a))},exit(e,{accuracy:t,passedLookbehind:r,strategy:s}){if(t==="strict"&&r&&s)throw new Error(h`Uses "\G" in a way that requires non-strict accuracy`)}},Quantifier({node:e}){if(e.element.type===p.Quantifier){let t=U(G(),[e.element]);t.parent=e,e.element=t}},Subroutine({node:e},{jsGroupNameMap:t}){let{ref:r}=e;typeof r=="string"&&!Me(r)&&(r=Ge(r,t),e.ref=r)},VariableLengthCharacterSet({node:e,replaceWith:t},{accuracy:r,minTargetEs2024:s}){let{kind:n}=e;if(n===re.newline)t(M(`(?>\r
?|[
\v\f\x85\u2028\u2029])`));else if(n===J.grapheme){if(r==="strict")throw new Error(h`Use of "\X" requires non-strict accuracy`);let a=s?h`\p{RGI_Emoji}`:at().source.replace(/\\u\{/g,"\\x{");t(M(h`(?>\r\n|${a}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}))}else throw new Error(`Unexpected varcharset kind "${n}"`)}},ut={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:r}){let{orphan:s,ref:n}=e;s||r.set(e,[...t.get(n).map(({node:a})=>a)])},CapturingGroup:{enter({node:e,replaceWith:t,skip:r},{groupOriginByCopy:s,groupsByName:n,multiplexCapturesToLeftByRef:a,openRefs:o,reffedNodesByReferencer:i}){let c=s.get(e);if(c&&o.has(e.number)){let p=ot(e.number);i.set(p,o.get(e.number)),t(p),r();return}o.set(e.number,e),a.set(e.number,[]),e.name&&j(a,e.name,[]);let l=a.get(e.name??e.number);for(let p=0;p<l.length;p++){let f=l[p];if(c===f.node||c&&c===f.origin||e===f.origin){l.splice(p,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 p=j(n,e.name,new Map),f=!1;if(c)f=!0;else for(let m of p.values())if(!m.hasDuplicateNameToRemove){f=!0;break}n.get(e.name).set(e,{node:e,hasDuplicateNameToRemove:f})}c&&(e._originNumber=c.number)},exit({node:e},{openRefs:t}){t.delete(e.number)}},Group:{enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=V(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Recursion({node:e,parent:t},{reffedNodesByReferencer:r}){let{ref:s}=e,n=t;for(;(n=n.parent)&&!(n.type===u.CapturingGroup&&(n.name===s||n.number===s)););r.set(e,n)},Subroutine(e,t){let{node:r,replaceWith:s}=e,{ref:n}=r,a=t.subroutineRefMap.get(n),o=n===0,i=o?ot(0):lt(a,t.groupOriginByCopy,null),c=i;if(!o){let l=pt(vr(a,f=>f.type===u.Group&&!!f.flags)),p=l?V(t.globalFlags,l):t.globalFlags;Fr(p,t.currentFlags)||(c=R(G({flags:Ir(p)}),[i]))}s(c),o||dt(c,e,t,ut)}},Sr={Backreference({node:e,replaceWith:t},r){if(e.orphan){r.highestOrphanBackref=Math.max(r.highestOrphanBackref,e.ref);return}let n=r.reffedNodesByReferencer.get(e).filter(a=>_r(a,e));if(!n.length)t(R(W({negate:!0})));else if(n.length>1){let a=n.map(o=>te(P(),[ue(o.number)]));t(te(G(),a))}else e.ref=n[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 s=0;s<r;s++){let n=Ee();e.pattern.alternatives.at(-1).elements.push(n)}}}},$r="[ -\r ]",L=h`[\p{L}\p{M}\p{N}\p{Pc}]`;function te(e,t){return t.forEach(r=>r.parent=e),e[Ie(e)]=t,e}function Fr(e,t){return e.dotAll===t.dotAll&&e.ignoreCase===t.ignoreCase}function _r(e,t){let r=t;do{if(r.type===u.Pattern)return!1;if(r.type===u.Alternative)continue;if(r===e)return!1;let s=ft(r.parent);for(let n of s){if(n===r)break;if(n===e||ht(n,e))return!0}}while(r=r.parent);throw new Error("Unexpected path")}function lt(e,t,r,s){let n=Array.isArray(e)?[]:{};for(let[a,o]of Object.entries(e))a==="parent"?n.parent=Array.isArray(r)?s:r:o&&typeof o=="object"?n[a]=lt(o,t,n,r):(a==="type"&&o===u.CapturingGroup&&t.set(n,t.get(e)??e),n[a]=o);return n}function ot(e){return{type:u.Recursion,ref:e}}function vr(e,t){let r=[];for(;e=e.parent;)(!t||t(e))&&r.push(e);return r}function Fe(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 Ie(e){for(let t of["alternatives","classes","elements"])if(e[t])return t;return null}function pt(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 Ir({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 ft(e){if(!e)throw new Error("Node expected");if(e.type===u.Quantifier)return[e.element];let t=Ie(e);return t&&e[t]}function gt(e){let t=e.find(r=>r.kind===k.search_start||Gr(r,{negate:!1})||!Xe(r));if(!t)return null;if(t.kind===k.search_start)return t;if(U(t))return t.alternatives[0].elements[0];if(ce(t)){let r=[];for(let s of t.alternatives){let n=gt(s.elements);if(!n)return null;Array.isArray(n)?r.push(...n):r.push(n)}return r}return null}function ht(e,t){let r=ft(e)??[];for(let s of r)if(s===t||ht(s,t))return!0;return!1}function Gr(e,t){let r={negate:null,...t};return U(e)&&(r.negate===null||e.negate===r.negate)&&Z(e,s=>s.kind===k.search_start)}function _e(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function M(e,t){let s=ee(X(e),t).pattern.alternatives;return s.length>1||s[0].elements.length>1?te(G(),s):s[0].elements[0]}function R(e,t){let r=Ie(e);return e[r][0].parent=e,t&&te(e[r][0],t),e}function ve(e,t){return e.negate=t,e}function dt(e,{parent:t,key:r,container:s},n,a){N({node:e,parent:t,key:r,container:s},n,a)}var S=Object.freeze({DEFAULT:"DEFAULT",CHAR_CLASS:"CHAR_CLASS"});function B(e,t,r,s){let n=new RegExp(String.raw`${t}|(?<$skip>\[\^?|\\?.)`,"gsu"),a=[!1],o=0,i="";for(let c of e.matchAll(n)){let{0:l,groups:{$skip:p}}=c;if(!p&&(!s||s===S.DEFAULT==!o)){r instanceof Function?i+=r(c,{context:o?S.CHAR_CLASS:S.DEFAULT,negated:a[a.length-1]}):i+=r;continue}l[0]==="["?(o++,a.push(l[1]==="^")):l==="]"&&o&&(o--,a.pop()),i+=l}return i}function Ct(e,t,r,s){B(e,t,r,s)}function Mr(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 a=0,o;for(;o=n.exec(e);){let{0:i,groups:{$skip:c}}=o;if(!c&&(!s||s===S.DEFAULT==!a))return o;i==="["?a++:i==="]"&&a&&a--,n.lastIndex==o.index&&n.lastIndex++}return null}function re(e,t,r){return!!Mr(e,t,0,r)}function mt(e,t){let r=/\\?./gsu;r.lastIndex=t;let s=e.length,n=0,a=1,o;for(;o=r.exec(e);){let[i]=o;if(i==="[")n++;else if(n)i==="]"&&n--;else if(i==="(")a++;else if(i===")"&&(a--,!a)){s=o.index;break}}return e.slice(t,s)}var v="$E$",ne=class e extends RegExp{_captureMap;_namesByIndex;constructor(t,r,s){if(t instanceof RegExp&&s)throw new Error("Cannot provide options when copying a regexp");let n=!!s?.useEmulationGroups,a=n?Nr(t):null;super(a?.expression||t,r);let o=n?a:t instanceof e?t:null;o&&(this._captureMap=o._captureMap,this._namesByIndex=o._namesByIndex)}exec(t){let r=RegExp.prototype.exec.call(this,t);if(!r||!this._captureMap)return r;let s=[...r];r.length=1;let n;this.hasIndices&&(n=[...r.indices],r.indices.length=1);for(let a=1;a<s.length;a++)if(this._captureMap[a].exclude){let o=this._captureMap[a].transfer;if(o&&r.length>o){r[o]=s[a];let i=this._namesByIndex[o];i&&(r.groups[i]=s[a],this.hasIndices&&(r.indices.groups[i]=n[a])),this.hasIndices&&(r.indices[o]=n[a])}}else r.push(s[a]),this.hasIndices&&r.indices.push(n[a]);return r}};function Nr(e){let t=v.replace(/\$/g,"\\$"),r=[{exclude:!1}],s={0:""},n=0;return e=B(e,String.raw`\((?:(?!\?)|\?<(?![=!])(?<name>[^>]+)>)(?<mark>(?:\$(?<transfer>[1-9]\d*))?${t})?`,({0:a,groups:{name:o,mark:i,transfer:c}})=>i?(r.push({exclude:!0,transfer:c&&+c}),a.slice(0,-i.length)):(n++,o&&(s[n]=o),r.push({exclude:!1}),a),S.DEFAULT),{_captureMap:r,_namesByIndex:s,expression:e}}var kt=String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;function wt(e,t,r,s){return e.slice(0,t)+s+e.slice(t+r.length)}var bt=new RegExp(String.raw`(?<noncapturingStart>${kt})|(?<capturingStart>\((?:\?<[^>]+>)?)|\\?.`,"gsu");function Me(e,t){if(!/\(\?>/.test(e))return e;let r="(?>",s=`(?:(?=(${t?.useEmulationGroups?v:""}`,n=[0],a=0,o=0,i=NaN,c;do{c=!1;let l=0,p=0,f=!1,m;for(bt.lastIndex=Number.isNaN(i)?0:i+s.length;m=bt.exec(e);){let{0:g,index:w,groups:{capturingStart:b,noncapturingStart:$}}=m;if(g==="[")l++;else if(l)g==="]"&&l--;else if(g===r&&!f)i=w,f=!0;else if(f&&$)p++;else if(b)f?p++:(a++,n.push(a+o));else if(g===")"&&f){if(!p){o++,e=`${e.slice(0,i)}${s}${e.slice(i+r.length,w)}))<$$${o+a}>)${e.slice(w+1)}`,c=!0;break}p--}}}while(c);return e=B(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:l,groups:{backrefNum:p,wrappedBackrefNum:f}})=>{if(p){let m=+p;if(m>n.length-1)throw new Error(`Backref "${l}" greater than number of captures`);return`\\${n[m]}`}return`\\${f}`},S.DEFAULT),e}var yt=String.raw`(?:[?*+]|\{\d+(?:,\d*)?\})`,Ge=new RegExp(String.raw`
\v\f\x85\u2028\u2029])`));else if(n===re.grapheme){if(r==="strict")throw new Error(h`Use of "\X" requires non-strict accuracy`);let a=s?h`\p{RGI_Emoji}`:ct().source.replace(/\\u\{/g,"\\x{");t(M(h`(?>\r\n|${a}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}))}else throw new Error(`Unexpected varcharset kind "${n}"`)}},ft={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:r}){let{orphan:s,ref:n}=e;s||r.set(e,[...t.get(n).map(({node:a})=>a)])},CapturingGroup:{enter({node:e,replaceWith:t,skip:r},{groupOriginByCopy:s,groupsByName:n,multiplexCapturesToLeftByRef:a,openRefs:i,reffedNodesByReferencer:o}){let c=s.get(e);if(c&&i.has(e.number)){let l=ut(e.number);o.set(l,i.get(e.number)),t(l),r();return}i.set(e.number,e),a.set(e.number,[]),e.name&&L(a,e.name,[]);let u=a.get(e.name??e.number);for(let l=0;l<u.length;l++){let f=u[l];if(c===f.node||c&&c===f.origin||e===f.origin){u.splice(l,1);break}}if(a.get(e.number).push({node:e,origin:c}),e.name&&a.get(e.name).push({node:e,origin:c}),e.name){let l=L(n,e.name,new Map),f=!1;if(c)f=!0;else for(let C of l.values())if(!C.hasDuplicateNameToRemove){f=!0;break}n.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=z(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Recursion({node:e,parent:t},{reffedNodesByReferencer:r}){let{ref:s}=e,n=t;for(;(n=n.parent)&&!(n.type===p.CapturingGroup&&(n.name===s||n.number===s)););r.set(e,n)},Subroutine(e,t){let{node:r,replaceWith:s}=e,{ref:n}=r,a=t.subroutineRefMap.get(n),i=n===0,o=i?ut(0):gt(a,t.groupOriginByCopy,null),c=o;if(!i){let u=ht(Lr(a,f=>f.type===p.Group&&!!f.flags)),l=u?z(t.globalFlags,u):t.globalFlags;Mr(l,t.currentFlags)||(c=U(G({flags:Pr(l)}),[o]))}s(c),i||wt(c,e,t,ft)}},Ir={Backreference({node:e,replaceWith:t},r){if(e.orphan){r.highestOrphanBackref=Math.max(r.highestOrphanBackref,e.ref);return}let n=r.reffedNodesByReferencer.get(e).filter(a=>Nr(a,e));if(!n.length)t(U(Q({negate:!0})));else if(n.length>1){let a=n.map(i=>ae(O(),[he(i.number)]));t(ae(G(),a))}else e.ref=n[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 s=0;s<r;s++){let n=$e();e.pattern.alternatives.at(-1).elements.push(n)}}}},Gr="[ -\r ]",R=h`[\p{L}\p{M}\p{N}\p{Pc}]`;function ae(e,t){return t.forEach(r=>r.parent=e),e[Le(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 s=dt(r.parent);for(let n of s){if(n===r)break;if(n===e||mt(n,e))return!0}}while(r=r.parent);throw new Error("Unexpected path")}function gt(e,t,r,s){let n=Array.isArray(e)?[]:{};for(let[a,i]of Object.entries(e))a==="parent"?n.parent=Array.isArray(r)?s:r:i&&typeof i=="object"?n[a]=gt(i,t,n,r):(a==="type"&&i===p.CapturingGroup&&t.set(n,t.get(e)??e),n[a]=i);return n}function ut(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 Ge(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 Le(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: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 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.ignoreCase=!0)),r}function dt(e){if(!e)throw new Error("Node expected");if(e.type===p.Quantifier)return[e.element];let t=Le(e);return t&&e[t]}function Ct(e){let t=e.find(r=>r.kind===k.search_start||Tr(r,{negate:!1})||!Ye(r));if(!t)return null;if(t.kind===k.search_start)return t;if(B(t))return t.alternatives[0].elements[0];if(ge(t)){let r=[];for(let s of t.alternatives){let n=Ct(s.elements);if(!n)return null;Array.isArray(n)?r.push(...n):r.push(n)}return r}return null}function mt(e,t){let r=dt(e)??[];for(let s of r)if(s===t||mt(s,t))return!0;return!1}function Tr(e,t){let r={negate:null,...t};return B(e)&&(r.negate===null||e.negate===r.negate)&&te(e,s=>s.kind===k.search_start)}function Me(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function M(e,t){let s=se(ee(e),t).pattern.alternatives;return s.length>1||s[0].elements.length>1?ae(G(),s):s[0].elements[0]}function U(e,t){let r=Le(e);return e[r][0].parent=e,t&&ae(e[r][0],t),e}function Ne(e,t){return e.negate=t,e}function wt(e,{parent:t,key:r,container:s},n,a){T({node:e,parent:t,key:r,container:s},n,a)}function kt(e,t){let r=le(t),s=Z(r.target,"ES2024"),n=Z(r.target,"ES2025"),a=r.rules.recursionLimit;if(!Number.isInteger(a)||a<2||a>20)throw new Error("Invalid recursionLimit; use 2-20");let i=null,o=null;if(!n){let g=[e.flags.ignoreCase];T({node:e},{getCurrentModI:()=>g.at(-1),popModI(){g.pop()},pushModI(m){g.push(m)},setHasCasedChar(){g.at(-1)?i=!0:o=!0}},Or)}let c={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||i)&&!o)},u=null,l={accuracy:r.accuracy,appliedGlobalFlags:c,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:u,originMap:e._originMap,recursionLimit:a,useAppliedIgnoreCase:!!(!n&&i&&o),useFlagMods:n,useFlagV:s,verbose:r.verbose};function f(g){switch(l.lastNode=u,u=g,g.type){case p.Regex:return{pattern:f(g.pattern),flags:f(g.flags),options:{...g.options}};case p.Alternative:return g.elements.map(f).join("");case p.Assertion:return Vr(g,l,f);case p.Backreference:return jr(g,l);case p.CapturingGroup:return Wr(g,l,f);case p.Character:return Hr(g,l);case p.CharacterClass:return Kr(g,l,f);case p.CharacterClassIntersection:if(!l.useFlagV)throw new Error("Use of class intersection requires min target ES2024");return g.classes.map(f).join("&&");case p.CharacterClassRange:return zr(g,l);case p.CharacterSet:return Qr(g,l);case p.Flags:return qr(g,l);case p.Group:return Xr(g,l,f);case p.Pattern:return g.alternatives.map(f).join("|");case p.Quantifier:return f(g.element)+en(g);case p.Recursion:return Zr(g,l);default:throw new Error(`Unexpected node type "${g.type}"`)}}let C=f(e);return s||(delete C.options.force.v,C.options.disable.v=!0,C.options.unicodeSetsPlugin=null),C._captureTransfers=new Map,C._hiddenCaptures=[],l.captureMap.forEach((g,m)=>{g.hidden&&C._hiddenCaptures.push(m),g.transferTo&&L(C._captureTransfers,g.transferTo,[]).push(m)}),C}var Or={AnyGroup:{enter({node:e},t){let r=t.getCurrentModI();t.pushModI(e.flags?z({ignoreCase:r},e.flags).ignoreCase:r)},exit(e,t){t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){Pe(x(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},r){t(),yt(e,{firstOnly:!0}).length&&r.setHasCasedChar()},CharacterSet({node:e},t){e.kind===A.property&&Ee.has(e.value)&&t.setHasCasedChar()}},Rr=new Set(["$","(",")","*","+",".","?","[","\\","]","^","{","|","}"]),Ur=new Set(["-","\\","]","^","["]),Dr=new Set(["(",")","-","/","[","\\","]","^","{","|","}","!","#","$","%","&","*","+",",",".",":",";","<","=",">","?","@","`","~"]),bt=new Map([[9,h`\t`],[10,h`\n`],[11,h`\v`],[12,h`\f`],[13,h`\r`],[8232,h`\u2028`],[8233,h`\u2029`],[65279,h`\uFEFF`]]),Br=/^\p{Cased}$/u;function Pe(e){return Br.test(e)}function Vr(e,t,r){let{kind:s,negate:n,alternatives:a}=e;if(B(e))return`(?${`${s===k.lookahead?"":"<"}${n?"!":"="}`}${a.map(r).join("|")})`;if(s===k.string_end)return"$";if(s===k.string_start)return"^";if(s===k.word_boundary)return n?h`\B`:h`\b`;throw new Error(`Unexpected assertion kind "${s}"`)}function jr({ref:e},t){if(typeof e!="number")throw new Error("Unexpected named backref in transformed AST");if(!t.useFlagMods&&t.accuracy==="strict"&&t.currentFlags.ignoreCase&&!t.captureMap.get(e).ignoreCase)throw new Error("Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy");return"\\"+e}function Wr(e,t,r){let{name:s,number:n,alternatives:a}=e,i={ignoreCase:t.currentFlags.ignoreCase},o=t.originMap.get(e);return o&&(i.hidden=!0,n>o.number&&(i.transferTo=o.number)),t.captureMap.set(n,i),`(${s?`?<${s}>`:""}${a.map(r).join("|")})`}function Hr({value:e},t){let r=x(e),s=q(e,{isAfterBackref:t.lastNode.type===p.Backreference,inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(s!==r)return s;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&Pe(r)){let n=ke(r);return t.inCharClass?n.join(""):n.length>1?`[${n.join("")}]`:n[0]}return r}function Kr({negate:e,parent:t,elements:r},s,n){let a=()=>`[${e?"^":""}${r.map(n).join("")}]`;if(!s.inCharClass){s.inCharClass=!0;let o=a();return s.inCharClass=!1,o}let i=r[0]?.type;if(!e&&i&&((!s.useFlagV||!s.verbose)&&t.type===p.CharacterClass&&i!==p.CharacterClassIntersection||!s.verbose&&t.type===p.CharacterClassIntersection&&r.length===1&&i!==p.CharacterClass&&i!==p.CharacterClassRange))return r.map(n).join("");if(!s.useFlagV&&t.type===p.CharacterClass)throw new Error("Use of nested character class requires min target ES2024");return a()}function zr(e,t){let r=e.min.value,s=e.max.value,n={isAfterBackref:!1,inCharClass:!0,useFlagV:t.useFlagV},a=q(r,n),i=q(s,n),o=new Set;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase){let c=yt(e);Jr(c).forEach(l=>{o.add(Array.isArray(l)?`${q(l[0],n)}-${q(l[1],n)}`:q(l,n))})}return`${a}-${i}${[...o].join("")}`}function Qr({kind:e,negate:t,value:r,key:s},n){if(e===A.dot)return n.currentFlags.dotAll?n.appliedGlobalFlags.dotAll||n.useFlagMods?".":"[^]":h`[^\n]`;if(e===A.digit)return t?h`\D`:h`\d`;if(e===A.property){if(n.useAppliedIgnoreCase&&n.currentFlags.ignoreCase&&Ee.has(r))throw new Error(`Unicode property "${r}" can't be case-insensitive when other chars have specific case`);return`${t?h`\P`:h`\p`}{${s?`${s}=`:""}${r}}`}if(e===A.word)return t?h`\W`:h`\w`;throw new Error(`Unexpected character set kind "${e}"`)}function qr(e,t){return(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":"")+(e.sticky?"y":"")}function Xr({atomic:e,flags:t,parent:r,alternatives:s},n,a){let i=n.currentFlags;t&&(n.currentFlags=z(i,t));let o=s.map(a).join("|"),c=!n.verbose&&s.length===1&&r.type!==p.Quantifier&&!e&&(!n.useFlagMods||!t)?o:`(?${Yr(e,t,n.useFlagMods)}${o})`;return n.currentFlags=i,c}function Zr({ref:e},t){let r=t.recursionLimit;return e===0?`(?R=${r})`:h`\g<${e}&R=${r}>`}function yt(e,t){let r=!!t?.firstOnly,s=e.min.value,n=e.max.value,a=[];if(s<65&&(n===65535||n>=131071)||s===65536&&n>=131071)return a;for(let i=s;i<=n;i++){let o=x(i);if(!Pe(o))continue;let c=ke(o).filter(u=>{let l=u.codePointAt(0);return l<s||l>n});if(c.length&&(a.push(...c),r))break}return a}function q(e,{isAfterBackref:t,inCharClass:r,useFlagV:s}){if(bt.has(e))return bt.get(e);if(e<32||e>126&&e<160||e>262143||t&&tn(e))return e>255?`\\u{${e.toString(16).toUpperCase()}}`:`\\x${e.toString(16).toUpperCase().padStart(2,"0")}`;let n=r?s?Dr:Ur:Rr,a=x(e);return(n.has(a)?"\\":"")+a}function Jr(e){let t=e.map(n=>n.codePointAt(0)).sort((n,a)=>n-a),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 Yr(e,t,r){if(e)return">";let s="";if(t&&r){let{enable:n,disable:a}=t;s=(n?.ignoreCase?"i":"")+(n?.dotAll?"s":"")+(a?"-":"")+(a?.ignoreCase?"i":"")+(a?.dotAll?"s":"")}return`${s}:`}function en({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 tn(e){return e>47&&e<58}var ie=class e extends RegExp{#e=new Map;#t=null;#r=null;rawOptions={};constructor(t,r,s){if(t instanceof RegExp){if(s)throw new Error("Cannot provide options when copying a regexp");super(t,r),t instanceof e&&(this.#e=t.#e,this.#t=t.#t,this.#r=t.#r,this.rawOptions=t.rawOptions)}else{super(t,r);let n={hiddenCaptures:[],strategy:null,transfers:[],...s};this.#e=nn(n.hiddenCaptures,n.transfers),this.#r=n.strategy,this.rawOptions={...n.hiddenCaptures.length&&{hiddenCaptures:n.hiddenCaptures},...n.strategy&&{strategy:n.strategy},...n.transfers.length&&{transfers:n.transfers}}}}exec(t){let r=this.global||this.sticky,s=this.lastIndex;if(this.#r==="clip_search"&&r&&s){this.lastIndex=0;let n=this.#n(t.slice(s));return n&&(rn(n,this,t,s),this.lastIndex+=s),n}return this.#n(t)}#n(t){let r=super.exec(t);if(!r||!this.#e.size)return r;let s=[...r];r.length=1;let n;this.hasIndices&&(n=[...r.indices],r.indices.length=1);let a=[0];for(let i=1;i<s.length;i++){let{hidden:o,transferTo:c}=this.#e.get(i)??{};if(o?a.push(null):(a.push(r.length),r.push(s[i]),this.hasIndices&&r.indices.push(n[i])),c&&s[i]!==void 0){let u=$(a[c]);if(r[u]=s[i],this.hasIndices&&(r.indices[u]=n[i]),r.groups){this.#t||(this.#t=sn(this.source));let l=this.#t.get(c);l&&(r.groups[l]=s[i],this.hasIndices&&(r.indices.groups[l]=n[i]))}}}return r}};function rn(e,t,r,s){if(e.input=r,e.index+=s,t.hasIndices){let n=e.indices;for(let i=0;i<n.length;i++){let o=n[i];o&&(n[i]=[o[0]+s,o[1]+s])}let a=n.groups;a&&Object.keys(a).forEach(i=>{let o=a[i];o&&(a[i]=[o[0]+s,o[1]+s])})}}function nn(e,t){let r=new Map;for(let s of e)r.set(s,{hidden:!0});for(let[s,n]of t)for(let a of n)L(r,a,{}).transferTo=s;return r}function sn(e){let t=/(?<capture>\((?:\?<(?![=!])(?<name>[^>]+)>|(?!\?)))|\\?./gsu,r=new Map,s=0,n=0,a;for(;a=t.exec(e);){let{0:i,groups:{capture:o,name:c}}=a;i==="["?s++:s?i==="]"&&s--:o&&(n++,c&&r.set(n,c))}return r}var At=String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;function xt(e,t){for(let r=0;r<e.length;r++)e[r]>=t&&e[r]++}function Et(e,t,r,s){return e.slice(0,t)+s+e.slice(t+r.length)}var _=Object.freeze({DEFAULT:"DEFAULT",CHAR_CLASS:"CHAR_CLASS"});function oe(e,t,r,s){let n=new RegExp(String.raw`${t}|(?<$skip>\[\^?|\\?.)`,"gsu"),a=[!1],i=0,o="";for(let c of e.matchAll(n)){let{0:u,groups:{$skip:l}}=c;if(!l&&(!s||s===_.DEFAULT==!i)){r instanceof Function?o+=r(c,{context:i?_.CHAR_CLASS:_.DEFAULT,negated:a[a.length-1]}):o+=r;continue}u[0]==="["?(i++,a.push(u[1]==="^")):u==="]"&&i&&(i--,a.pop()),o+=u}return o}function Te(e,t,r,s){oe(e,t,r,s)}function an(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 a=0,i;for(;i=n.exec(e);){let{0:o,groups:{$skip:c}}=i;if(!c&&(!s||s===_.DEFAULT==!a))return i;o==="["?a++:o==="]"&&a&&a--,n.lastIndex==i.index&&n.lastIndex++}return null}function ce(e,t,r){return!!an(e,t,0,r)}function St(e,t){let r=/\\?./gsu;r.lastIndex=t;let s=e.length,n=0,a=1,i;for(;i=r.exec(e);){let[o]=i;if(o==="[")n++;else if(n)o==="]"&&n--;else if(o==="(")a++;else if(o===")"&&(a--,!a)){s=i.index;break}}return e.slice(t,s)}var Ft=new RegExp(String.raw`(?<noncapturingStart>${At})|(?<capturingStart>\((?:\?<[^>]+>)?)|\\?.`,"gsu");function Re(e,t){let r=t?.hiddenCaptures??[],s=t?.captureTransfers??new Map;if(!/\(\?>/.test(e))return{pattern:e,captureTransfers:s,hiddenCaptures:r};let n="(?>",a="(?:(?=(",i=[0],o=[],c=0,u=0,l=NaN,f;do{f=!1;let C=0,g=0,m=!1,w;for(Ft.lastIndex=Number.isNaN(l)?0:l+a.length;w=Ft.exec(e);){let{0:y,index:E,groups:{capturingStart:N,noncapturingStart:P}}=w;if(y==="[")C++;else if(C)y==="]"&&C--;else if(y===n&&!m)l=E,m=!0;else if(m&&P)g++;else if(N)m?g++:(c++,i.push(c+u));else if(y===")"&&m){if(!g){u++;let v=c+u;if(e=`${e.slice(0,l)}${a}${e.slice(l+n.length,E)}))<$$${v}>)${e.slice(E+1)}`,f=!0,o.push(v),xt(r,v),s.size){let V=new Map;s.forEach((ue,H)=>{V.set(H>=v?H+1:H,ue.map(K=>K>=v?K+1:K))}),s=V}break}g--}}}while(f);return r.push(...o),e=oe(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:C,groups:{backrefNum:g,wrappedBackrefNum:m}})=>{if(g){let w=+g;if(w>i.length-1)throw new Error(`Backref "${C}" greater than number of captures`);return`\\${i[w]}`}return`\\${m}`},_.DEFAULT),{pattern:e,captureTransfers:s,hiddenCaptures:r}}var _t=String.raw`(?:[?*+]|\{\d+(?:,\d*)?\})`,Oe=new RegExp(String.raw`
\\(?: \d+

@@ -137,5 +137,5 @@ | c[A-Za-z]

))?
| (?<qBase>${yt})(?<qMod>[?+]?)(?<invalidQ>[?*+\{]?)
| (?<qBase>${_t})(?<qMod>[?+]?)(?<invalidQ>[?*+\{]?)
| \\?.
`.replace(/\s+/g,""),"gsu");function Ne(e){if(!new RegExp(`${yt}\\+`).test(e))return e;let t=[],r=null,s=null,n="",a=0,o;for(Ge.lastIndex=0;o=Ge.exec(e);){let{0:i,index:c,groups:{qBase:l,qMod:p,invalidQ:f}}=o;if(i==="[")a||(s=c),a++;else if(i==="]")a?a--:s=null;else if(!a)if(p==="+"&&n&&!n.startsWith("(")){if(f)throw new Error(`Invalid quantifier "${i}"`);let m=-1;if(/^\{\d+\}$/.test(l))e=wt(e,c+l.length,p,"");else{if(n===")"||n==="]"){let g=n===")"?r:s;if(g===null)throw new Error(`Invalid unmatched "${n}"`);e=`${e.slice(0,g)}(?>${e.slice(g,c)}${l})${e.slice(c+i.length)}`}else e=`${e.slice(0,c-n.length)}(?>${n}${l})${e.slice(c+i.length)}`;m+=4}Ge.lastIndex+=m}else i[0]==="("?t.push(c):i===")"&&(r=t.length?t.pop():null);n=i}return e}function xt(e,t){let r=ae(t),s=Q(r.target,"ES2024"),n=Q(r.target,"ES2025"),a=r.rules.recursionLimit;if(!Number.isInteger(a)||a<2||a>20)throw new Error("Invalid recursionLimit; use 2-20");let o=null,i=null;if(!n){let g=[e.flags.ignoreCase];N({node:e},{getCurrentModI:()=>g.at(-1),popModI(){g.pop()},pushModI(w){g.push(w)},setHasCasedChar(){g.at(-1)?o=!0:i=!0}},Pr)}let c={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||o)&&!i)},l=null,p={accuracy:r.accuracy,appliedGlobalFlags:c,avoidSubclass:r.avoidSubclass,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:l,recursionLimit:a,useAppliedIgnoreCase:!!(!n&&o&&i),useFlagMods:n,useFlagV:s,verbose:r.verbose};function f(g){switch(p.lastNode=l,l=g,g.type){case u.Regex:return{pattern:f(g.pattern),flags:f(g.flags),options:{...g.options}};case u.Alternative:return g.elements.map(f).join("");case u.Assertion:return Tr(g,p,f);case u.Backreference:return Dr(g,p);case u.CapturingGroup:return Br(g,p,f);case u.Character:return Vr(g,p);case u.CharacterClass:return jr(g,p,f);case u.CharacterClassIntersection:if(!p.useFlagV)throw new Error("Use of class intersection requires min target ES2024");return g.classes.map(f).join("&&");case u.CharacterClassRange:return Wr(g,p);case u.CharacterSet:return Hr(g,p);case u.Flags:return Kr(g,p);case u.Group:return Qr(g,p,f);case u.Pattern:return g.alternatives.map(f).join("|");case u.Quantifier:return f(g.element)+Zr(g);case u.Recursion:return qr(g,p);default:throw new Error(`Unexpected node type "${g.type}"`)}}let m=f(e);return s||(delete m.options.force.v,m.options.disable.v=!0,m.options.unicodeSetsPlugin=null),m}var Pr={AnyGroup:{enter({node:e},t){let r=t.getCurrentModI();t.pushModI(e.flags?V({ignoreCase:r},e.flags).ignoreCase:r)},exit(e,t){t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){Pe(A(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},r){t(),Et(e,{firstOnly:!0}).length&&r.setHasCasedChar()},CharacterSet({node:e},t){e.kind===y.property&&be.has(e.value)&&t.setHasCasedChar()}},Lr=new Set(["$","(",")","*","+",".","?","[","\\","]","^","{","|","}"]),Rr=new Set(["-","\\","]","^","["]),Or=new Set(["(",")","-","/","[","\\","]","^","{","|","}","!","#","$","%","&","*","+",",",".",":",";","<","=",">","?","@","`","~"]),At=new Map([[9,h`\t`],[10,h`\n`],[11,h`\v`],[12,h`\f`],[13,h`\r`],[8232,h`\u2028`],[8233,h`\u2029`],[65279,h`\uFEFF`]]),Ur=/^\p{Cased}$/u;function Pe(e){return Ur.test(e)}function Tr(e,t,r){let{kind:s,negate:n,alternatives:a}=e;if(U(e))return`(?${`${s===k.lookahead?"":"<"}${n?"!":"="}`}${a.map(r).join("|")})`;if(s===k.string_end)return"$";if(s===k.string_start)return"^";if(s===k.word_boundary)return n?h`\B`:h`\b`;throw new Error(`Unexpected assertion kind "${s}"`)}function Dr({ref:e},t){if(typeof e!="number")throw new Error("Unexpected named backref in transformed AST");if(!t.useFlagMods&&t.accuracy==="strict"&&t.currentFlags.ignoreCase&&!t.captureMap.get(e).ignoreCase)throw new Error("Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy");return"\\"+e}function Br({name:e,number:t,alternatives:r,_originNumber:s},n,a){return n.captureMap.set(t,{ignoreCase:n.currentFlags.ignoreCase}),`(${e?`?<${e}>`:""}${!n.avoidSubclass&&s?`${s<t?`$${s}`:""}${v}`:""}${r.map(a).join("|")})`}function Vr({value:e},t){let r=A(e),s=H(e,{isAfterBackref:t.lastNode.type===u.Backreference,inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(s!==r)return s;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&Pe(r)){let n=Ce(r);return t.inCharClass?n.join(""):n.length>1?`[${n.join("")}]`:n[0]}return r}function jr({negate:e,parent:t,elements:r},s,n){let a=()=>`[${e?"^":""}${r.map(n).join("")}]`;if(!s.inCharClass){s.inCharClass=!0;let i=a();return s.inCharClass=!1,i}let o=r[0]?.type;if(!e&&o&&((!s.useFlagV||!s.verbose)&&t.type===u.CharacterClass&&o!==u.CharacterClassIntersection||!s.verbose&&t.type===u.CharacterClassIntersection&&r.length===1&&o!==u.CharacterClass&&o!==u.CharacterClassRange))return r.map(n).join("");if(!s.useFlagV&&t.type===u.CharacterClass)throw new Error("Use of nested character class requires min target ES2024");return a()}function Wr(e,t){let r=e.min.value,s=e.max.value,n={isAfterBackref:!1,inCharClass:!0,useFlagV:t.useFlagV},a=H(r,n),o=H(s,n),i=new Set;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase){let c=Et(e);zr(c).forEach(p=>{i.add(Array.isArray(p)?`${H(p[0],n)}-${H(p[1],n)}`:H(p,n))})}return`${a}-${o}${[...i].join("")}`}function Hr({kind:e,negate:t,value:r,key:s},n){if(e===y.dot)return n.currentFlags.dotAll?n.appliedGlobalFlags.dotAll||n.useFlagMods?".":"[^]":h`[^\n]`;if(e===y.digit)return t?h`\D`:h`\d`;if(e===y.property){if(n.useAppliedIgnoreCase&&n.currentFlags.ignoreCase&&be.has(r))throw new Error(`Unicode property "${r}" can't be case-insensitive when other chars have specific case`);return`${t?h`\P`:h`\p`}{${s?`${s}=`:""}${r}}`}if(e===y.word)return t?h`\W`:h`\w`;throw new Error(`Unexpected character set kind "${e}"`)}function Kr(e,t){return(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":"")+(e.sticky?"y":"")}function Qr({atomic:e,flags:t,parent:r,alternatives:s},n,a){let o=n.currentFlags;t&&(n.currentFlags=V(o,t));let i=s.map(a).join("|"),c=!n.verbose&&s.length===1&&r.type!==u.Quantifier&&!e&&(!n.useFlagMods||!t)?i:`(?${Xr(e,t,n.useFlagMods)}${i})`;return n.currentFlags=o,c}function qr({ref:e},t){let r=t.recursionLimit;return e===0?`(?R=${r})`:h`\g<${e}&R=${r}>`}function Et(e,t){let r=!!t?.firstOnly,s=e.min.value,n=e.max.value,a=[];if(s<65&&(n===65535||n>=131071)||s===65536&&n>=131071)return a;for(let o=s;o<=n;o++){let i=A(o);if(!Pe(i))continue;let c=Ce(i).filter(l=>{let p=l.codePointAt(0);return p<s||p>n});if(c.length&&(a.push(...c),r))break}return a}function H(e,{isAfterBackref:t,inCharClass:r,useFlagV:s}){if(At.has(e))return At.get(e);if(e<32||e>126&&e<160||e>262143||t&&Jr(e))return e>255?`\\u{${e.toString(16).toUpperCase()}}`:`\\x${e.toString(16).toUpperCase().padStart(2,"0")}`;let n=r?s?Or:Rr:Lr,a=A(e);return(n.has(a)?"\\":"")+a}function zr(e){let t=e.map(n=>n.codePointAt(0)).sort((n,a)=>n-a),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 Xr(e,t,r){if(e)return">";let s="";if(t&&r){let{enable:n,disable:a}=t;s=(n?.ignoreCase?"i":"")+(n?.dotAll?"s":"")+(a?"-":"")+(a?.ignoreCase?"i":"")+(a?.dotAll?"s":"")}return`${s}:`}function Zr({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 Jr(e){return e>47&&e<58}var se=class e extends ne{#e;rawArgs;constructor(t,r,s){if(t instanceof RegExp){if(s)throw new Error("Cannot provide options when copying a regexp");super(t,r),t instanceof e?(this.#e=t.#e,this.rawArgs=t.rawArgs):(this.#e=null,this.rawArgs={pattern:t.source,flags:t.flags,options:{}}),r!==void 0&&(this.rawArgs.flags=r)}else{let n={strategy:null,useEmulationGroups:!1,...s};super(t,r,{useEmulationGroups:n.useEmulationGroups}),this.#e=n.strategy,this.rawArgs={pattern:t,flags:r??"",options:{...n.strategy&&{strategy:n.strategy},...n.useEmulationGroups&&{useEmulationGroups:!0}}}}}exec(t){let r=super.exec,s=this.global||this.sticky,n=this.lastIndex;if(this.#e==="search_start_clip"&&s&&n){this.lastIndex=0;let a=r.call(this,t.slice(n));return a&&(Yr(a,this,t,n),this.lastIndex+=n),a}return r.call(this,t)}};function Yr(e,t,r,s){if(e.input=r,e.index+=s,t.hasIndices){let n=e.indices;for(let o=0;o<n.length;o++){let i=n[o];i&&(n[o]=[i[0]+s,i[1]+s])}let a=n.groups;a&&Object.keys(a).forEach(o=>{let i=a[o];i&&(a[o]=[i[0]+s,i[1]+s])})}}var F=String.raw,en=F`\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`,Re=F`\(\?R=(?<rDepth>[^\)]+)\)|${en}`,pe=F`\(\?<(?![=!])(?<captureName>[^>]+)>`,T=new RegExp(F`${pe}|${Re}|\(\?|\\?.`,"gsu"),Le="Cannot use multiple overlapping recursions",Oe=new RegExp(F`(?:\$[1-9]\d*)?${v.replace(/\$/g,F`\$`)}`,"y");function _t(e,t){if(!new RegExp(Re,"su").test(e))return e;if(re(e,F`\(\?\(DEFINE\)`,S.DEFAULT))throw new Error("DEFINE groups cannot be used with recursion");let r=!!t?.useEmulationGroups,s=re(e,F`\\[1-9]`,S.DEFAULT),n=new Map,a=[],o=!1,i=0,c=0,l;for(T.lastIndex=0;l=T.exec(e);){let{0:p,groups:{captureName:f,rDepth:m,gRNameOrNum:g,gRDepth:w}}=l;if(p==="[")i++;else if(i)p==="]"&&i--;else if(m){if(St(m),o)throw new Error(Le);if(s)throw new Error("Numbered backrefs cannot be used with global recursion");let b=e.slice(0,l.index),$=e.slice(T.lastIndex);if(re($,Re,S.DEFAULT))throw new Error(Le);return $t(b,$,+m,!1,r)}else if(g){St(w);let b=!1;for(let K of a)if(K.name===g||K.num===+g){if(b=!0,K.hasRecursedWithin)throw new Error(Le);break}if(!b)throw new Error(F`Recursive \g cannot be used outside the referenced group "\g<${g}&R=${w}>"`);let $=n.get(g),_=mt(e,$);if(s&&re(_,F`${pe}|\((?!\?)`,S.DEFAULT))throw new Error("Numbered backrefs cannot be used with recursion of capturing groups");let fe=e.slice($,l.index),Ue=_.slice(fe.length+p.length),Te=$t(fe,Ue,+w,!0,r),It=e.slice(0,$),Gt=e.slice($+_.length);e=`${It}${Te}${Gt}`,T.lastIndex+=Te.length-p.length-fe.length-Ue.length,a.forEach(K=>K.hasRecursedWithin=!0),o=!0}else if(f)c++,n.set(String(c),T.lastIndex),n.set(f,T.lastIndex),a.push({num:c,name:f});else if(p.startsWith("(")){let b=p==="(";b&&(c++,n.set(String(c),T.lastIndex+(r?tn(e,T.lastIndex):0))),a.push(b?{num:c}:{})}else p===")"&&a.pop()}return e}function St(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,s,n){let a=new Set;s&&Ct(e+t,pe,({groups:{captureName:i}})=>{a.add(i)},S.DEFAULT);let o=r-1;return`${e}${Ft(`(?:${e}`,o,s?a:null,"forward",n)}(?:)${Ft(`${t})`,o,s?a:null,"backward",n)}${t}`}function Ft(e,t,r,s,n){let o=c=>s==="backward"?t-c+2-1:c+2,i="";for(let c=0;c<t;c++){let l=o(c);i+=B(e,F`${pe}|\\k<(?<backref>[^>]+)>${n?F`|(?<unnamed>\()(?!\?)(?:${Oe.source})?`:""}`,({0:p,index:f,groups:{captureName:m,backref:g,unnamed:w}})=>{if(g&&r&&!r.has(g))return p;if(w)return`(${v}`;let b=`_$${l}`;return m?`(?<${m}${b}>${n?v:""}`:F`\k<${g}${b}>`},S.DEFAULT)}return i}function tn(e,t){Oe.lastIndex=t;let r=Oe.exec(e);return r?r[0].length:0}function vt(e,t){let r=ae(t),s=r.avoidSubclass,n=X(e,r.flags,{captureGroup:r.rules.captureGroup,singleline:r.rules.singleline}),a=ee(n,{skipBackrefValidation:r.rules.allowOrphanBackrefs,verbose:r.verbose}),o=it(a,{accuracy:r.accuracy,asciiWordBoundaries:r.rules.asciiWordBoundaries,avoidSubclass:s,bestEffortTarget:r.target}),i=xt(o,r),c={useEmulationGroups:!s},l={pattern:Me(Ne(_t(i.pattern,c)),c),flags:`${r.hasIndices?"d":""}${r.global?"g":""}${i.flags}${i.options.disable.v?"u":"v"}`},p=!s&&l.pattern.includes(v),f=o._strategy;return(p||f)&&(l.options={...f&&{strategy:f},...p&&{useEmulationGroups:p}}),l}function rn(e,t){let r=t?.flags??"",s=t?.rules?.captureGroup??!1;return ee(X(e,r,{captureGroup:s}))}function nn(e,t){let r=vt(e,t);return r.options?new se(r.pattern,r.flags,r.options):new RegExp(r.pattern,r.flags)}return Ot(sn);})();
`.replace(/\s+/g,""),"gsu");function Ue(e){if(!new RegExp(`${_t}\\+`).test(e))return{pattern:e};let t=[],r=null,s=null,n="",a=0,i;for(Oe.lastIndex=0;i=Oe.exec(e);){let{0:o,index:c,groups:{qBase:u,qMod:l,invalidQ:f}}=i;if(o==="[")a||(s=c),a++;else if(o==="]")a?a--:s=null;else if(!a)if(l==="+"&&n&&!n.startsWith("(")){if(f)throw new Error(`Invalid quantifier "${o}"`);let C=-1;if(/^\{\d+\}$/.test(u))e=Et(e,c+u.length,l,"");else{if(n===")"||n==="]"){let g=n===")"?r:s;if(g===null)throw new Error(`Invalid unmatched "${n}"`);e=`${e.slice(0,g)}(?>${e.slice(g,c)}${u})${e.slice(c+o.length)}`}else e=`${e.slice(0,c-n.length)}(?>${n}${u})${e.slice(c+o.length)}`;C+=4}Oe.lastIndex+=C}else o[0]==="("?t.push(c):o===")"&&(r=t.length?t.pop():null);n=o}return{pattern:e}}var I=String.raw,on=I`\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`,Be=I`\(\?R=(?<rDepth>[^\)]+)\)|${on}`,Ce=I`\(\?<(?![=!])(?<captureName>[^>]+)>`,Mt=I`${Ce}|(?<unnamed>\()(?!\?)`,W=new RegExp(I`${Ce}|${Be}|\(\?|\\?.`,"gsu"),De="Cannot use multiple overlapping recursions";function Nt(e,t){let{hiddenCaptures:r,mode:s}={hiddenCaptures:[],mode:"plugin",...t},n=t?.captureTransfers??new Map;if(!new RegExp(Be,"su").test(e))return{pattern:e,captureTransfers:n,hiddenCaptures:r};if(s==="plugin"&&ce(e,I`\(\?\(DEFINE\)`,_.DEFAULT))throw new Error("DEFINE groups cannot be used with recursion");let a=[],i=ce(e,I`\\[1-9]`,_.DEFAULT),o=new Map,c=[],u=!1,l=0,f=0,C;for(W.lastIndex=0;C=W.exec(e);){let{0:g,groups:{captureName:m,rDepth:w,gRNameOrNum:y,gRDepth:E}}=C;if(g==="[")l++;else if(l)g==="]"&&l--;else if(w){if($t(w),u)throw new Error(De);if(i)throw new Error(`${s==="external"?"Backrefs":"Numbered backrefs"} cannot be used with global recursion`);let N=e.slice(0,C.index),P=e.slice(W.lastIndex);if(ce(P,Be,_.DEFAULT))throw new Error(De);let v=+w-1;e=vt(N,P,v,!1,r,a,f),n=Gt(n,N,v,a.length,0,f);break}else if(y){$t(E);let N=!1;for(let X of c)if(X.name===y||X.num===+y){if(N=!0,X.hasRecursedWithin)throw new Error(De);break}if(!N)throw new Error(I`Recursive \g cannot be used outside the referenced group "${s==="external"?y:I`\g<${y}&R=${E}>`}"`);let P=o.get(y),v=St(e,P);if(i&&ce(v,I`${Ce}|\((?!\?)`,_.DEFAULT))throw new Error(`${s==="external"?"Backrefs":"Numbered backrefs"} cannot be used with recursion of capturing groups`);let V=e.slice(P,C.index),ue=v.slice(V.length+g.length),H=a.length,K=+E-1,Ve=vt(V,ue,K,!0,r,a,f);n=Gt(n,V,K,a.length-H,H,f);let Pt=e.slice(0,P),Tt=e.slice(P+v.length);e=`${Pt}${Ve}${Tt}`,W.lastIndex+=Ve.length-g.length-V.length-ue.length,c.forEach(X=>X.hasRecursedWithin=!0),u=!0}else if(m)f++,o.set(String(f),W.lastIndex),o.set(m,W.lastIndex),c.push({num:f,name:m});else if(g[0]==="("){let N=g==="(";N&&(f++,o.set(String(f),W.lastIndex)),c.push(N?{num:f}:{})}else g===")"&&c.pop()}return r.push(...a),{pattern:e,captureTransfers:n,hiddenCaptures:r}}function $t(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 vt(e,t,r,s,n,a,i){let o=new Set;s&&Te(e+t,Ce,({groups:{captureName:u}})=>{o.add(u)},_.DEFAULT);let c=[r,s?o:null,n,a,i];return`${e}${It(`(?:${e}`,"forward",...c)}(?:)${It(`${t})`,"backward",...c)}${t}`}function It(e,t,r,s,n,a,i){let c=l=>t==="forward"?l+2:r-l+2-1,u="";for(let l=0;l<r;l++){let f=c(l);u+=oe(e,I`${Mt}|\\k<(?<backref>[^>]+)>`,({0:C,groups:{captureName:g,unnamed:m,backref:w}})=>{if(w&&s&&!s.has(w))return C;let y=`_$${f}`;if(m||g){let E=i+a.length+1;return a.push(E),cn(n,E),m?C:`(?<${g}${y}>`}return I`\k<${w}${y}>`},_.DEFAULT)}return u}function cn(e,t){for(let r=0;r<e.length;r++)e[r]>=t&&e[r]++}function Gt(e,t,r,s,n,a){if(e.size&&s){let i=0;Te(t,Mt,()=>i++,_.DEFAULT);let o=a-i+n,c=new Map;return e.forEach((u,l)=>{let f=(s-i*r)/r,C=i*r,g=l>o+i?l+s:l,m=[];for(let w of u)if(w<=o)m.push(w);else if(w>o+i+f)m.push(w+s);else if(w<=o+i)for(let y=0;y<=r;y++)m.push(w+i*y);else for(let y=0;y<=r;y++)m.push(w+C+f*y);c.set(g,m)}),c}return e}function un(e,t){let r=t?.flags??"",s=t?.rules?.captureGroup??!1;return se(ee(e,r,{captureGroup:s}))}function ln(e,t){let r=Lt(e,t);return r.options?new ie(r.pattern,r.flags,r.options):new RegExp(r.pattern,r.flags)}function Lt(e,t){let r=le(t),s=ee(e,r.flags,{captureGroup:r.rules.captureGroup,singleline:r.rules.singleline}),n=se(s,{skipBackrefValidation:r.rules.allowOrphanBackrefs,verbose:r.verbose}),a=lt(n,{accuracy:r.accuracy,asciiWordBoundaries:r.rules.asciiWordBoundaries,avoidSubclass:r.avoidSubclass,bestEffortTarget:r.target}),i=kt(a,r),o=Nt(i.pattern,{captureTransfers:i._captureTransfers,hiddenCaptures:i._hiddenCaptures,mode:"external"}),c=Ue(o.pattern),u=Re(c.pattern,{captureTransfers:o.captureTransfers,hiddenCaptures:o.hiddenCaptures}),l={pattern:u.pattern,flags:`${r.hasIndices?"d":""}${r.global?"g":""}${i.flags}${i.options.disable.v?"u":"v"}`};if(!r.avoidSubclass){let f=u.hiddenCaptures.sort((m,w)=>m-w),C=Array.from(u.captureTransfers),g=a._strategy;(f.length||C.length||g)&&(l.options={...f.length&&{hiddenCaptures:f},...C.length&&{transfers:C},...g&&{strategy:g}})}return l}return Vt(pn);})();
//# sourceMappingURL=index.min.js.map
{
"name": "oniguruma-to-es",
"version": "2.3.0",
"version": "3.0.0",
"description": "Convert Oniguruma patterns to native JavaScript RegExp",

@@ -39,4 +39,4 @@ "author": "Steven Levithan",

"emoji-regex-xs": "^1.0.0",
"regex": "^5.1.1",
"regex-recursion": "^5.1.1"
"regex": "^6.0.1",
"regex-recursion": "^6.0.2"
},

@@ -50,6 +50,6 @@ "devDependencies": {

"scripts": {
"bundle:global": "esbuild src/index.js --global-name=OnigurumaToES --bundle --minify --sourcemap --outfile=dist/index.min.js",
"bundle:global": "esbuild src/index.js --global-name=OnigurumaToEs --bundle --minify --sourcemap --outfile=dist/index.min.js",
"bundle:esm": "esbuild src/index.js --format=esm --bundle --sourcemap --external:emoji-regex-xs --external:regex --external:regex-recursion --outfile=dist/esm/index.js",
"bundle:cjs": "esbuild src/index.js --format=cjs --bundle --sourcemap --outfile=dist/cjs/index.js",
"types": "tsc src/index.js --rootDir src --declaration --allowJs --emitDeclarationOnly --outDir types",
"types": "tsc src/index.js --rootDir src --declaration --allowJs --emitDeclarationOnly --outDir types --lib ESNext",
"prebuild": "rm -rf dist/* types/*",

@@ -56,0 +56,0 @@ "build": "pnpm run bundle:global && pnpm run bundle:esm && pnpm run bundle:cjs && pnpm run types",

@@ -17,7 +17,7 @@ # Oniguruma (鬼車) to ES

Compared to running the Oniguruma C library via WASM bindings using [vscode-oniguruma](https://github.com/microsoft/vscode-oniguruma), this library is **less than 4% of the size** and its regexes often 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 **~4% of the size** and its regexes often run much faster since they run as native JavaScript. If you precompile your regexes, often no depdendency is needed at all, or in cases that rely on advanced emulation, only the tree-shakable `EmulatedRegExp` constructor (~3 kb minzip) is needed.
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 tens of thousands of real-world Oniguruma regexes used in TextMate grammars.
Depending on features used, Oniguruma-To-ES might use advanced emulation via a `RegExp` subclass (that remains a native JavaScript regular expression).
Depending on features used, Oniguruma-To-ES might use advanced emulation via a `RegExp` subclass (that remains a native JavaScript regular expression). Subclass-based emulation is also used to accurately repreduce complex details about how Oniguruma sets subpattern matches.

@@ -28,2 +28,12 @@ <sup>✳︎: Ruby 2.0+ uses [Onigmo](https://github.com/k-takata/Onigmo), a fork of Oniguruma with similar syntax and behavior.</sup>

## 📜 Contents
- [Examples](#-examples)
- [Install and use](#️-install-and-use)
- [API](#-api): [`toRegExp`](#toregexp), [`toRegExpDetails`](#toregexpdetails), [`toOnigurumaAst`](#toonigurumaast), [`EmulatedRegExp`](#emulatedregexp)
- [Options](#-options): [`accuracy`](#accuracy), [`avoidSubclass`](#avoidsubclass), [`flags`](#flags), [`global`](#global), [`hasIndices`](#hasindices), [`rules`](#rules), [`target`](#target), [`verbose`](#verbose)
- [Supported features](#-supported-features)
- [Unsupported features](#-unsupported-features)
- [Unicode](#️-unicode)
## 🪧 Examples

@@ -52,13 +62,2 @@

## 📜 Contents
- [Install and use](#️-install-and-use)
- [API](#-api)
- [`toRegExp`](#toregexp), [`toDetails`](#todetails), [`toOnigurumaAst`](#toonigurumaast), [`EmulatedRegExp`](#emulatedregexp)
- [Options](#-options)
- [`accuracy`](#accuracy), [`avoidSubclass`](#avoidsubclass), [`flags`](#flags), [`global`](#global), [`hasIndices`](#hasindices), [`rules`](#rules), [`target`](#target), [`verbose`](#verbose)
- [Supported features](#-supported-features)
- [Unsupported features](#-unsupported-features)
- [Unicode](#️-unicode)
## 🕹️ Install and use

@@ -85,3 +84,3 @@

<script>
const {toRegExp} = OnigurumaToES;
const {toRegExp} = OnigurumaToEs;
</script>

@@ -103,10 +102,10 @@ ```

pattern: string,
options?: OnigurumaToEsOptions
options?: ToRegExpOptions
): RegExp | EmulatedRegExp;
```
#### Type `OnigurumaToEsOptions`
#### Type `ToRegExpOptions`
```ts
type OnigurumaToEsOptions = {
type ToRegExpOptions = {
accuracy?: 'default' | 'strict';

@@ -131,3 +130,3 @@ avoidSubclass?: boolean;

### `toDetails`
### `toRegExpDetails`

@@ -137,5 +136,5 @@ Accepts an Oniguruma pattern and returns the details needed to construct an equivalent JavaScript `RegExp`.

```ts
function toDetails(
function toRegExpDetails(
pattern: string,
options?: OnigurumaToEsOptions
options?: ToRegExpOptions
): {

@@ -168,7 +167,7 @@ pattern: string;

An error is thrown if the pattern isn't valid in Oniguruma. But unlike `toRegExp` and `toDetails`, `toOnigurumaAst` doesn't evaluate whether the pattern can be emulated in JavaScript.
An error is thrown if the pattern isn't valid in Oniguruma. Unlike `toRegExp` and `toRegExpDetails`, `toOnigurumaAst` doesn't evaluate whether the pattern can be emulated in JavaScript.
### `EmulatedRegExp`
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`.
Works the same as JavaScript's native `RegExp` constructor in all contexts, but can be given results from `toRegExpDetails` to produce the same result as `toRegExp`.

@@ -179,15 +178,21 @@ ```ts

constructor(pattern: EmulatedRegExp, flags?: string);
rawArgs: {
pattern: string;
flags: string;
options: EmulatedRegExpOptions;
};
rawOptions: EmulatedRegExpOptions;
}
```
The `rawArgs` property of `EmulatedRegExp` instances can be used to serialize the object.
The `rawOptions` property of `EmulatedRegExp` instances can be used for serialization.
#### Type `EmulatedRegExpOptions`
```ts
type EmulatedRegExpOptions = {
hiddenCaptures?: Array<number>;
strategy?: string | null;
transfers?: Array<[number, Array<number>]>;
};
```
## 🔩 Options
The following options are shared by functions [`toRegExp`](#toregexp) and [`toDetails`](#todetails).
The following options are shared by functions [`toRegExp`](#toregexp) and [`toRegExpDetails`](#toregexpdetails).

@@ -870,3 +875,3 @@ ### `accuracy`

<br>
All subroutines (incl. named):<br>
<i>All subroutines (incl. named):</i><br>
✔ Allowed before reffed group<br>

@@ -1029,6 +1034,8 @@ ✔ Can be nested (any depth)<br>

Note that **Oniguruma-To-ES supports 99.9+%** of real-world Oniguruma regexes, based on a sample of tens of thousands of regexes used in TextMate grammars. Of the unsupported features listed above, conditionals were used in three regexes, and the rest weren't used at all. Some Oniguruma features are so exotic that they're not used in *any* public code on GitHub.
Contributions that add support for unsupported features are welcome.
Contributions are welcome if you want to add support for currently unsupported features.
### Coverage
When considering the list above, keep in mind that some Oniguruma features are so exotic that they aren't used in *any* public code on GitHub. **Oniguruma-To-ES supports ~99.99% of real-world Oniguruma regexes**, based on a sample of 54,487 regexes used in 219 TextMate grammars. Of the unsupported features listed above, conditionals were used in three regexes, *overlapping* recursions were used in three regexes, and other unsupported features weren't used at all.
<a name="unicode"></a>

@@ -1049,3 +1056,3 @@ ## ㊗️ Unicode

[JsRegex](https://github.com/jaynetics/js_regex) transpiles Onigmo regexes to JavaScript (Onigmo is a fork of Oniguruma with similar syntax and behavior). It's written in Ruby and relies on the [Regexp::Parser](https://github.com/ammar/regexp_parser) Ruby gem, which means regexes must be pre-transpiled on the server to use them in JavaScript. Note that JsRegex doesn't always translate edge case behavior differences.
[JsRegex](https://github.com/jaynetics/js_regex) transpiles Onigmo regexes to JavaScript (Onigmo is a fork of Oniguruma with similar syntax and behavior). It's written in Ruby and relies on the [Regexp::Parser](https://github.com/ammar/regexp_parser) Ruby gem, which means regexes must be pre-transpiled on the server to use them in JavaScript. Note that JsRegex doesn't always translate edge case behavior differences or accurately reproduce subpattern results.

@@ -1052,0 +1059,0 @@ ## 🏷️ About

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc