@chrome-acp/proxy-server 1.0.12 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/server.d.ts.map +1 -1
  2. package/dist/server.js +73 -13
  3. package/dist/server.js.map +1 -1
  4. package/package.json +1 -1
  5. package/public/assets/{architectureDiagram-VXUJARFQ-XT5vbOhB.js → architectureDiagram-VXUJARFQ-sCkIxoin.js} +2 -2
  6. package/public/assets/{architectureDiagram-VXUJARFQ-XT5vbOhB.js.map → architectureDiagram-VXUJARFQ-sCkIxoin.js.map} +1 -1
  7. package/public/assets/{blockDiagram-VD42YOAC-DLFcIcr7.js → blockDiagram-VD42YOAC-iT0EVpEs.js} +2 -2
  8. package/public/assets/{blockDiagram-VD42YOAC-DLFcIcr7.js.map → blockDiagram-VD42YOAC-iT0EVpEs.js.map} +1 -1
  9. package/public/assets/{c4Diagram-YG6GDRKO-OYGPPbbp.js → c4Diagram-YG6GDRKO-FJvkcwxD.js} +2 -2
  10. package/public/assets/{c4Diagram-YG6GDRKO-OYGPPbbp.js.map → c4Diagram-YG6GDRKO-FJvkcwxD.js.map} +1 -1
  11. package/public/assets/channel-CyLd3bNA.js +2 -0
  12. package/public/assets/{channel-C-TQis6S.js.map → channel-CyLd3bNA.js.map} +1 -1
  13. package/public/assets/{chunk-ABZYJK2D-C5l8JSxq.js → chunk-ABZYJK2D-CNhdKuqi.js} +3 -3
  14. package/public/assets/{chunk-ABZYJK2D-C5l8JSxq.js.map → chunk-ABZYJK2D-CNhdKuqi.js.map} +1 -1
  15. package/public/assets/{chunk-ATLVNIR6-DJGS9xqy.js → chunk-ATLVNIR6-CbO2X_Tw.js} +2 -2
  16. package/public/assets/{chunk-ATLVNIR6-DJGS9xqy.js.map → chunk-ATLVNIR6-CbO2X_Tw.js.map} +1 -1
  17. package/public/assets/{chunk-B4BG7PRW-gDha-duc.js → chunk-B4BG7PRW-BaHtw4gW.js} +2 -2
  18. package/public/assets/{chunk-B4BG7PRW-gDha-duc.js.map → chunk-B4BG7PRW-BaHtw4gW.js.map} +1 -1
  19. package/public/assets/{chunk-DI55MBZ5-Cj4kDgD2.js → chunk-DI55MBZ5-2htM0VVO.js} +2 -2
  20. package/public/assets/{chunk-DI55MBZ5-Cj4kDgD2.js.map → chunk-DI55MBZ5-2htM0VVO.js.map} +1 -1
  21. package/public/assets/{chunk-EXTU4WIE-DOOS0Mse.js → chunk-EXTU4WIE-C_bM8CPH.js} +2 -2
  22. package/public/assets/{chunk-EXTU4WIE-DOOS0Mse.js.map → chunk-EXTU4WIE-C_bM8CPH.js.map} +1 -1
  23. package/public/assets/{chunk-JA3XYJ7Z-CJB6qwwg.js → chunk-JA3XYJ7Z-CGuln6zv.js} +2 -2
  24. package/public/assets/{chunk-JA3XYJ7Z-CJB6qwwg.js.map → chunk-JA3XYJ7Z-CGuln6zv.js.map} +1 -1
  25. package/public/assets/{chunk-JZLCHNYA-Bude0Tz9.js → chunk-JZLCHNYA-B8Ldycwo.js} +2 -2
  26. package/public/assets/{chunk-JZLCHNYA-Bude0Tz9.js.map → chunk-JZLCHNYA-B8Ldycwo.js.map} +1 -1
  27. package/public/assets/{chunk-N4CR4FBY-DGM8cqEA.js → chunk-N4CR4FBY-DAPshrUE.js} +3 -3
  28. package/public/assets/{chunk-N4CR4FBY-DGM8cqEA.js.map → chunk-N4CR4FBY-DAPshrUE.js.map} +1 -1
  29. package/public/assets/{chunk-QN33PNHL-gpj_VYvm.js → chunk-QN33PNHL-BG2wK195.js} +2 -2
  30. package/public/assets/{chunk-QN33PNHL-gpj_VYvm.js.map → chunk-QN33PNHL-BG2wK195.js.map} +1 -1
  31. package/public/assets/{chunk-QXUST7PY-C6ghehBu.js → chunk-QXUST7PY-BOQY0Xfy.js} +2 -2
  32. package/public/assets/{chunk-QXUST7PY-C6ghehBu.js.map → chunk-QXUST7PY-BOQY0Xfy.js.map} +1 -1
  33. package/public/assets/{chunk-S3R3BYOJ-CT_-fuX8.js → chunk-S3R3BYOJ-lQHMbpG7.js} +2 -2
  34. package/public/assets/{chunk-S3R3BYOJ-CT_-fuX8.js.map → chunk-S3R3BYOJ-lQHMbpG7.js.map} +1 -1
  35. package/public/assets/{chunk-TZMSLE5B-BDUbzQ8i.js → chunk-TZMSLE5B-Ddu4HD6D.js} +2 -2
  36. package/public/assets/{chunk-TZMSLE5B-BDUbzQ8i.js.map → chunk-TZMSLE5B-Ddu4HD6D.js.map} +1 -1
  37. package/public/assets/classDiagram-2ON5EDUG-DXiWlO2N.js +2 -0
  38. package/public/assets/{classDiagram-2ON5EDUG-BsYidIMb.js.map → classDiagram-2ON5EDUG-DXiWlO2N.js.map} +1 -1
  39. package/public/assets/classDiagram-v2-WZHVMYZB-CfVsna1C.js +2 -0
  40. package/public/assets/{classDiagram-v2-WZHVMYZB-7SoDg2VR.js.map → classDiagram-v2-WZHVMYZB-CfVsna1C.js.map} +1 -1
  41. package/public/assets/clone-BkO8YVlC.js +2 -0
  42. package/public/assets/{clone-CbWnVDR5.js.map → clone-BkO8YVlC.js.map} +1 -1
  43. package/public/assets/{code-block-IT6T5CEO-CfsMtPBR.js → code-block-IT6T5CEO-RwvK23k6.js} +2 -2
  44. package/public/assets/{code-block-IT6T5CEO-CfsMtPBR.js.map → code-block-IT6T5CEO-RwvK23k6.js.map} +1 -1
  45. package/public/assets/{dagre-6UL2VRFP-B6iR6NZe.js → dagre-6UL2VRFP-C9Ozm0MP.js} +2 -2
  46. package/public/assets/{dagre-6UL2VRFP-B6iR6NZe.js.map → dagre-6UL2VRFP-C9Ozm0MP.js.map} +1 -1
  47. package/public/assets/{dagre-EJDXa3E7.js → dagre-Dt0NDwrT.js} +2 -2
  48. package/public/assets/{dagre-EJDXa3E7.js.map → dagre-Dt0NDwrT.js.map} +1 -1
  49. package/public/assets/{diagram-PSM6KHXK-zhsJSeuB.js → diagram-PSM6KHXK-B-9CxbnI.js} +2 -2
  50. package/public/assets/{diagram-PSM6KHXK-zhsJSeuB.js.map → diagram-PSM6KHXK-B-9CxbnI.js.map} +1 -1
  51. package/public/assets/{diagram-QEK2KX5R-Co66CAEn.js → diagram-QEK2KX5R-WcE69a1G.js} +2 -2
  52. package/public/assets/{diagram-QEK2KX5R-Co66CAEn.js.map → diagram-QEK2KX5R-WcE69a1G.js.map} +1 -1
  53. package/public/assets/{diagram-S2PKOQOG-DiMADWLA.js → diagram-S2PKOQOG-qTE7kYb8.js} +2 -2
  54. package/public/assets/{diagram-S2PKOQOG-DiMADWLA.js.map → diagram-S2PKOQOG-qTE7kYb8.js.map} +1 -1
  55. package/public/assets/{erDiagram-Q2GNP2WA-DuvxJhfn.js → erDiagram-Q2GNP2WA-CsrooKbE.js} +2 -2
  56. package/public/assets/{erDiagram-Q2GNP2WA-DuvxJhfn.js.map → erDiagram-Q2GNP2WA-CsrooKbE.js.map} +1 -1
  57. package/public/assets/{flowDiagram-NV44I4VS-B7bAKMJi.js → flowDiagram-NV44I4VS-BGTyi6l5.js} +2 -2
  58. package/public/assets/{flowDiagram-NV44I4VS-B7bAKMJi.js.map → flowDiagram-NV44I4VS-BGTyi6l5.js.map} +1 -1
  59. package/public/assets/{ganttDiagram-JELNMOA3-IQRNHB_J.js → ganttDiagram-JELNMOA3-DN7V6mNH.js} +2 -2
  60. package/public/assets/{ganttDiagram-JELNMOA3-IQRNHB_J.js.map → ganttDiagram-JELNMOA3-DN7V6mNH.js.map} +1 -1
  61. package/public/assets/{gitGraphDiagram-NY62KEGX-DRnj3yjR.js → gitGraphDiagram-NY62KEGX-DIySZYvd.js} +2 -2
  62. package/public/assets/{gitGraphDiagram-NY62KEGX-DRnj3yjR.js.map → gitGraphDiagram-NY62KEGX-DIySZYvd.js.map} +1 -1
  63. package/public/assets/{graphlib-DdgjkuSE.js → graphlib-DTtyen5g.js} +2 -2
  64. package/public/assets/{graphlib-DdgjkuSE.js.map → graphlib-DTtyen5g.js.map} +1 -1
  65. package/public/assets/{infoDiagram-WHAUD3N6-BNobr0SN.js → infoDiagram-WHAUD3N6-Bv-GY92Y.js} +2 -2
  66. package/public/assets/{infoDiagram-WHAUD3N6-BNobr0SN.js.map → infoDiagram-WHAUD3N6-Bv-GY92Y.js.map} +1 -1
  67. package/public/assets/{journeyDiagram-XKPGCS4Q-DO0UQpgB.js → journeyDiagram-XKPGCS4Q-DW6RNfq2.js} +2 -2
  68. package/public/assets/{journeyDiagram-XKPGCS4Q-DO0UQpgB.js.map → journeyDiagram-XKPGCS4Q-DW6RNfq2.js.map} +1 -1
  69. package/public/assets/{kanban-definition-3W4ZIXB7-Jpay4_QZ.js → kanban-definition-3W4ZIXB7-CWT846-C.js} +2 -2
  70. package/public/assets/{kanban-definition-3W4ZIXB7-Jpay4_QZ.js.map → kanban-definition-3W4ZIXB7-CWT846-C.js.map} +1 -1
  71. package/public/assets/katex-DJMyQU16.js +1 -0
  72. package/public/assets/{line-BHjlwlMB.js → line-B6Rb3qg4.js} +2 -2
  73. package/public/assets/{line-BHjlwlMB.js.map → line-B6Rb3qg4.js.map} +1 -1
  74. package/public/assets/{main-PSzBtxbq.js → main-BMydeOxF.js} +68 -68
  75. package/public/assets/main-BMydeOxF.js.map +1 -0
  76. package/public/assets/main-CdjS9337.css +2 -0
  77. package/public/assets/{mermaid-VLURNSYL-BR8F8GU8.js → mermaid-VLURNSYL-ChlNLhSf.js} +1 -1
  78. package/public/assets/{mermaid.core-DQE-7lmT.js → mermaid.core-RqJdZ0fi.js} +4 -4
  79. package/public/assets/{mermaid.core-DQE-7lmT.js.map → mermaid.core-RqJdZ0fi.js.map} +1 -1
  80. package/public/assets/{mindmap-definition-VGOIOE7T-DS5SVw-k.js → mindmap-definition-VGOIOE7T-N5RK9_nf.js} +2 -2
  81. package/public/assets/{mindmap-definition-VGOIOE7T-DS5SVw-k.js.map → mindmap-definition-VGOIOE7T-N5RK9_nf.js.map} +1 -1
  82. package/public/assets/{pieDiagram-ADFJNKIX-CFAhlPkw.js → pieDiagram-ADFJNKIX-C3so7eY9.js} +2 -2
  83. package/public/assets/{pieDiagram-ADFJNKIX-CFAhlPkw.js.map → pieDiagram-ADFJNKIX-C3so7eY9.js.map} +1 -1
  84. package/public/assets/{quadrantDiagram-AYHSOK5B-CT_2FVkC.js → quadrantDiagram-AYHSOK5B-B9rusor8.js} +2 -2
  85. package/public/assets/{quadrantDiagram-AYHSOK5B-CT_2FVkC.js.map → quadrantDiagram-AYHSOK5B-B9rusor8.js.map} +1 -1
  86. package/public/assets/{requirementDiagram-UZGBJVZJ-Bpk1h2q4.js → requirementDiagram-UZGBJVZJ-W_vTa6sR.js} +2 -2
  87. package/public/assets/{requirementDiagram-UZGBJVZJ-Bpk1h2q4.js.map → requirementDiagram-UZGBJVZJ-W_vTa6sR.js.map} +1 -1
  88. package/public/assets/{sankeyDiagram-TZEHDZUN-CHlg_2in.js → sankeyDiagram-TZEHDZUN-oekRPPoE.js} +2 -2
  89. package/public/assets/{sankeyDiagram-TZEHDZUN-CHlg_2in.js.map → sankeyDiagram-TZEHDZUN-oekRPPoE.js.map} +1 -1
  90. package/public/assets/{sequenceDiagram-WL72ISMW-CaC09QcI.js → sequenceDiagram-WL72ISMW-Cln9cEgi.js} +2 -2
  91. package/public/assets/{sequenceDiagram-WL72ISMW-CaC09QcI.js.map → sequenceDiagram-WL72ISMW-Cln9cEgi.js.map} +1 -1
  92. package/public/assets/{stateDiagram-FKZM4ZOC-usQJ_ny0.js → stateDiagram-FKZM4ZOC-DNskec5X.js} +2 -2
  93. package/public/assets/{stateDiagram-FKZM4ZOC-usQJ_ny0.js.map → stateDiagram-FKZM4ZOC-DNskec5X.js.map} +1 -1
  94. package/public/assets/stateDiagram-v2-4FDKWEC3-CHFN0nby.js +2 -0
  95. package/public/assets/{stateDiagram-v2-4FDKWEC3-BX_iMt2G.js.map → stateDiagram-v2-4FDKWEC3-CHFN0nby.js.map} +1 -1
  96. package/public/assets/{timeline-definition-IT6M3QCI-FpeXVspc.js → timeline-definition-IT6M3QCI-Dc6yDbAi.js} +2 -2
  97. package/public/assets/{timeline-definition-IT6M3QCI-FpeXVspc.js.map → timeline-definition-IT6M3QCI-Dc6yDbAi.js.map} +1 -1
  98. package/public/assets/{xychartDiagram-PRI3JC2R-b8ZjczEa.js → xychartDiagram-PRI3JC2R-LVl4w1dh.js} +2 -2
  99. package/public/assets/{xychartDiagram-PRI3JC2R-b8ZjczEa.js.map → xychartDiagram-PRI3JC2R-LVl4w1dh.js.map} +1 -1
  100. package/public/index.html +2 -2
  101. package/public/assets/channel-C-TQis6S.js +0 -2
  102. package/public/assets/classDiagram-2ON5EDUG-BsYidIMb.js +0 -2
  103. package/public/assets/classDiagram-v2-WZHVMYZB-7SoDg2VR.js +0 -2
  104. package/public/assets/clone-CbWnVDR5.js +0 -2
  105. package/public/assets/katex-D-DHO72r.js +0 -1
  106. package/public/assets/main-L2l67V_s.css +0 -2
  107. package/public/assets/main-PSzBtxbq.js.map +0 -1
  108. package/public/assets/stateDiagram-v2-4FDKWEC3-BX_iMt2G.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"code-block-IT6T5CEO-CfsMtPBR.js","names":["r","l","o","u","m","b","y","C","T","o","s","a","u","r","i","F","l","S","g","ee","K","w","R","A","I","k","L","f","Q","P","te","h","E","z","X","G","U","V","J","$","W","N","D","_","B","v","O","r","y","r","q","s","u","o","p","b","m","i","T","d","a","l","f","g","L","H","C","x","E","$","Z","v","M","S","h","A","K","u","r","s","i","d","a","o","b","y","g","x","m","h","v","p","R","P","incrementIfAtLeast","i","re","m","token","m","f","r","m","g","i","f","slug","p","i","createGroup","createLookaroundAssertion","createUnicodeProperty","createQuantifier","createAlternative","createAssertion","createCharacter","b","B","createCharacterClass","createCharacterSet","slug2","hasOnlyChild","f","g","createBackreference","createCapturingGroup","a","createSubroutine","parse","createCharacter2","createGroup2","createAlternative2","#pattern","re","#captureMap","#nameMap","#strategy","#compiled","#execCore","m","d","parse2","p","i","m","s","a","o","r","s","l","i","d","g$1","x","b$1"],"sources":["../../../../node_modules/oniguruma-parser/dist/utils.js","../../../../node_modules/oniguruma-parser/dist/tokenizer/tokenize.js","../../../../node_modules/oniguruma-parser/dist/parser/node-utils.js","../../../../node_modules/oniguruma-parser/dist/parser/parse.js","../../../../node_modules/oniguruma-parser/dist/traverser/traverse.js","../../../../node_modules/regex/src/utils-internals.js","../../../../node_modules/regex-utilities/src/index.js","../../../../node_modules/regex/src/atomic.js","../../../../node_modules/regex-recursion/src/index.js","../../../../node_modules/oniguruma-to-es/dist/esm/index.js","../../../../node_modules/@shikijs/engine-javascript/dist/shared/engine-javascript.hzpS1_41.mjs","../../../../node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs","../../../../node_modules/streamdown/dist/code-block-IT6T5CEO.js"],"sourcesContent":["\"use strict\";function r(e){if([...e].length!==1)throw new Error(`Expected \"${e}\" to be a single code point`);return e.codePointAt(0)}function l(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}const i=new Set([\"alnum\",\"alpha\",\"ascii\",\"blank\",\"cntrl\",\"digit\",\"graph\",\"lower\",\"print\",\"punct\",\"space\",\"upper\",\"word\",\"xdigit\"]),o=String.raw;function u(e,t){if(e==null)throw new Error(t??\"Value expected\");return e}export{r as cpOf,l as getOrInsert,i as PosixClassNames,o as r,u as throwIfNullish};\n//# sourceMappingURL=utils.js.map\n","\"use strict\";import{cpOf as h,PosixClassNames as G,r as p,throwIfNullish as N}from\"../utils.js\";const m=p`\\[\\^?`,b=`c.? | C(?:-.?)?|${p`[pP]\\{(?:\\^?[-\\x20_]*[A-Za-z][-\\x20\\w]*\\})?`}|${p`x[89A-Fa-f]\\p{AHex}(?:\\\\x[89A-Fa-f]\\p{AHex})*`}|${p`u(?:\\p{AHex}{4})? | x\\{[^\\}]*\\}? | x\\p{AHex}{0,2}`}|${p`o\\{[^\\}]*\\}?`}|${p`\\d{1,3}`}`,y=/[?*+][?+]?|\\{(?:\\d+(?:,\\d*)?|,\\d+)\\}\\??/,C=new RegExp(p`\n \\\\ (?:\n ${b}\n | [gk]<[^>]*>?\n | [gk]'[^']*'?\n | .\n )\n | \\( (?:\n \\? (?:\n [:=!>({]\n | <[=!]\n | <[^>]*>\n | '[^']*'\n | ~\\|?\n | #(?:[^)\\\\]|\\\\.?)*\n | [^:)]*[:)]\n )?\n | \\*[^\\)]*\\)?\n )?\n | (?:${y.source})+\n | ${m}\n | .\n`.replace(/\\s+/g,\"\"),\"gsu\"),T=new RegExp(p`\n \\\\ (?:\n ${b}\n | .\n )\n | \\[:(?:\\^?\\p{Alpha}+|\\^):\\]\n | ${m}\n | &&\n | .\n`.replace(/\\s+/g,\"\"),\"gsu\");function M(e,n={}){const t={flags:\"\",...n,rules:{captureGroup:!1,singleline:!1,...n.rules}};if(typeof e!=\"string\")throw new Error(\"String expected as pattern\");const o=Y(t.flags),s=[o.extended],a={captureGroup:t.rules.captureGroup,getCurrentModX(){return s.at(-1)},numOpenGroups:0,popModX(){s.pop()},pushModX(u){s.push(u)},replaceCurrentModX(u){s[s.length-1]=u},singleline:t.rules.singleline};let r=[],i;for(C.lastIndex=0;i=C.exec(e);){const u=F(a,e,i[0],C.lastIndex);u.tokens?r.push(...u.tokens):u.token&&r.push(u.token),u.lastIndex!==void 0&&(C.lastIndex=u.lastIndex)}const l=[];let c=0;r.filter(u=>u.type===\"GroupOpen\").forEach(u=>{u.kind===\"capturing\"?u.number=++c:u.raw===\"(\"&&l.push(u)}),c||l.forEach((u,S)=>{u.kind=\"capturing\",u.number=S+1});const g=c||l.length;return{tokens:r.map(u=>u.type===\"EscapedNumber\"?ee(u,g):u).flat(),flags:o}}function F(e,n,t,o){const[s,a]=t;if(t===\"[\"||t===\"[^\"){const r=K(n,t,o);return{tokens:r.tokens,lastIndex:r.lastIndex}}if(s===\"\\\\\"){if(\"AbBGyYzZ\".includes(a))return{token:w(t,t)};if(/^\\\\g[<']/.test(t)){if(!/^\\\\g(?:<[^>]+>|'[^']+')$/.test(t))throw new Error(`Invalid group name \"${t}\"`);return{token:R(t)}}if(/^\\\\k[<']/.test(t)){if(!/^\\\\k(?:<[^>]+>|'[^']+')$/.test(t))throw new Error(`Invalid group name \"${t}\"`);return{token:A(t)}}if(a===\"K\")return{token:I(\"keep\",t)};if(a===\"N\"||a===\"R\")return{token:k(\"newline\",t,{negate:a===\"N\"})};if(a===\"O\")return{token:k(\"any\",t)};if(a===\"X\")return{token:k(\"text_segment\",t)};const r=x(t,{inCharClass:!1});return Array.isArray(r)?{tokens:r}:{token:r}}if(s===\"(\"){if(a===\"*\")return{token:j(t)};if(t===\"(?{\")throw new Error(`Unsupported callout \"${t}\"`);if(t.startsWith(\"(?#\")){if(n[o]!==\")\")throw new Error('Unclosed comment group \"(?#\"');return{lastIndex:o+1}}if(/^\\(\\?[-imx]+[:)]$/.test(t))return{token:L(t,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,t===\"(\"&&!e.captureGroup||t===\"(?:\")return{token:f(\"group\",t)};if(t===\"(?>\")return{token:f(\"atomic\",t)};if(t===\"(?=\"||t===\"(?!\"||t===\"(?<=\"||t===\"(?<!\")return{token:f(t[2]===\"<\"?\"lookbehind\":\"lookahead\",t,{negate:t.endsWith(\"!\")})};if(t===\"(\"&&e.captureGroup||t.startsWith(\"(?<\")&&t.endsWith(\">\")||t.startsWith(\"(?'\")&&t.endsWith(\"'\"))return{token:f(\"capturing\",t,{...t!==\"(\"&&{name:t.slice(3,-1)}})};if(t.startsWith(\"(?~\")){if(t===\"(?~|\")throw new Error(`Unsupported absence function kind \"${t}\"`);return{token:f(\"absence_repeater\",t)}}throw t===\"(?(\"?new Error(`Unsupported conditional \"${t}\"`):new Error(`Invalid or unsupported group option \"${t}\"`)}if(t===\")\"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched \")\"');return{token:Q(t)}}if(e.getCurrentModX()){if(t===\"#\"){const r=n.indexOf(`\n`,o);return{lastIndex:r===-1?n.length:r}}if(/^\\s$/.test(t)){const r=/\\s+/y;return r.lastIndex=o,{lastIndex:r.exec(n)?r.lastIndex:o}}}if(t===\".\")return{token:k(\"dot\",t)};if(t===\"^\"||t===\"$\"){const r=e.singleline?{\"^\":p`\\A`,$:p`\\Z`}[t]:t;return{token:w(r,t)}}return t===\"|\"?{token:P(t)}:y.test(t)?{tokens:te(t)}:{token:d(h(t),t)}}function K(e,n,t){const o=[E(n[1]===\"^\",n)];let s=1,a;for(T.lastIndex=t;a=T.exec(e);){const r=a[0];if(r[0]===\"[\"&&r[1]!==\":\")s++,o.push(E(r[1]===\"^\",r));else if(r===\"]\"){if(o.at(-1).type===\"CharacterClassOpen\")o.push(d(93,r));else if(s--,o.push(z(r)),!s)break}else{const i=X(r);Array.isArray(i)?o.push(...i):o.push(i)}}return{tokens:o,lastIndex:T.lastIndex||e.length}}function X(e){if(e[0]===\"\\\\\")return x(e,{inCharClass:!0});if(e[0]===\"[\"){const n=/\\[:(?<negate>\\^?)(?<name>[a-z]+):\\]/.exec(e);if(!n||!G.has(n.groups.name))throw new Error(`Invalid POSIX class \"${e}\"`);return k(\"posix\",e,{value:n.groups.name,negate:!!n.groups.negate})}return e===\"-\"?U(e):e===\"&&\"?H(e):d(h(e),e)}function x(e,{inCharClass:n}){const t=e[1];if(t===\"c\"||t===\"C\")return Z(e);if(\"dDhHsSwW\".includes(t))return q(e);if(e.startsWith(p`\\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 V(e)}if(/^\\\\x[89A-Fa-f]\\p{AHex}/u.test(e))try{const o=e.split(/\\\\x/).slice(1).map(i=>parseInt(i,16)),s=new TextDecoder(\"utf-8\",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(o)),a=new TextEncoder;return[...s].map(i=>{const l=[...a.encode(i)].map(c=>`\\\\x${c.toString(16)}`).join(\"\");return d(h(i),l)})}catch{throw new Error(`Multibyte code \"${e}\" incomplete or invalid in Oniguruma`)}if(t===\"u\"||t===\"x\")return d(J(e),e);if($.has(t))return d($.get(t),e);if(/\\d/.test(t))return W(n,e);if(e===\"\\\\\")throw new Error(p`Incomplete escape \"\\\"`);if(t===\"M\")throw new Error(`Unsupported meta \"${e}\"`);if([...e].length===2)return d(e.codePointAt(1),e);throw new Error(`Unexpected escape \"${e}\"`)}function P(e){return{type:\"Alternator\",raw:e}}function w(e,n){return{type:\"Assertion\",kind:e,raw:n}}function A(e){return{type:\"Backreference\",raw:e}}function d(e,n){return{type:\"Character\",value:e,raw:n}}function z(e){return{type:\"CharacterClassClose\",raw:e}}function U(e){return{type:\"CharacterClassHyphen\",raw:e}}function H(e){return{type:\"CharacterClassIntersector\",raw:e}}function E(e,n){return{type:\"CharacterClassOpen\",negate:e,raw:n}}function k(e,n,t={}){return{type:\"CharacterSet\",kind:e,...t,raw:n}}function I(e,n,t={}){return e===\"keep\"?{type:\"Directive\",kind:e,raw:n}:{type:\"Directive\",kind:e,flags:N(t.flags),raw:n}}function W(e,n){return{type:\"EscapedNumber\",inCharClass:e,raw:n}}function Q(e){return{type:\"GroupClose\",raw:e}}function f(e,n,t={}){return{type:\"GroupOpen\",kind:e,...t,raw:n}}function D(e,n,t,o){return{type:\"NamedCallout\",kind:e,tag:n,arguments:t,raw:o}}function _(e,n,t,o){return{type:\"Quantifier\",kind:e,min:n,max:t,raw:o}}function R(e){return{type:\"Subroutine\",raw:e}}const B=new Set([\"COUNT\",\"CMP\",\"ERROR\",\"FAIL\",\"MAX\",\"MISMATCH\",\"SKIP\",\"TOTAL_COUNT\"]),$=new Map([[\"a\",7],[\"b\",8],[\"e\",27],[\"f\",12],[\"n\",10],[\"r\",13],[\"t\",9],[\"v\",11]]);function Z(e){const n=e[1]===\"c\"?e[2]:e[3];if(!n||!/[A-Za-z]/.test(n))throw new Error(`Unsupported control character \"${e}\"`);return d(h(n.toUpperCase())-64,e)}function L(e,n){let{on:t,off:o}=/^\\(\\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(e).groups;o??=\"\";const s=(n.getCurrentModX()||t.includes(\"x\"))&&!o.includes(\"x\"),a=v(t),r=v(o),i={};if(a&&(i.enable=a),r&&(i.disable=r),e.endsWith(\")\"))return n.replaceCurrentModX(s),I(\"flags\",e,{flags:i});if(e.endsWith(\":\"))return n.pushModX(s),n.numOpenGroups++,f(\"group\",e,{...(a||r)&&{flags:i}});throw new Error(`Unexpected flag modifier \"${e}\"`)}function j(e){const n=/\\(\\*(?<name>[A-Za-z_]\\w*)?(?:\\[(?<tag>(?:[A-Za-z_]\\w*)?)\\])?(?:\\{(?<args>[^}]*)\\})?\\)/.exec(e);if(!n)throw new Error(`Incomplete or invalid named callout \"${e}\"`);const{name:t,tag:o,args:s}=n.groups;if(!t)throw new Error(`Invalid named callout \"${e}\"`);if(o===\"\")throw new Error(`Named callout tag with empty value not allowed \"${e}\"`);const a=s?s.split(\",\").filter(g=>g!==\"\").map(g=>/^[+-]?\\d+$/.test(g)?+g:g):[],[r,i,l]=a,c=B.has(t)?t.toLowerCase():\"custom\";switch(c){case\"fail\":case\"mismatch\":case\"skip\":if(a.length>0)throw new Error(`Named callout arguments not allowed \"${a}\"`);break;case\"error\":if(a.length>1)throw new Error(`Named callout allows only one argument \"${a}\"`);if(typeof r==\"string\")throw new Error(`Named callout argument must be a number \"${r}\"`);break;case\"max\":if(!a.length||a.length>2)throw new Error(`Named callout must have one or two arguments \"${a}\"`);if(typeof r==\"string\"&&!/^[A-Za-z_]\\w*$/.test(r))throw new Error(`Named callout argument one must be a tag or number \"${r}\"`);if(a.length===2&&(typeof i==\"number\"||!/^[<>X]$/.test(i)))throw new Error(`Named callout optional argument two must be '<', '>', or 'X' \"${i}\"`);break;case\"count\":case\"total_count\":if(a.length>1)throw new Error(`Named callout allows only one argument \"${a}\"`);if(a.length===1&&(typeof r==\"number\"||!/^[<>X]$/.test(r)))throw new Error(`Named callout optional argument must be '<', '>', or 'X' \"${r}\"`);break;case\"cmp\":if(a.length!==3)throw new Error(`Named callout must have three arguments \"${a}\"`);if(typeof r==\"string\"&&!/^[A-Za-z_]\\w*$/.test(r))throw new Error(`Named callout argument one must be a tag or number \"${r}\"`);if(typeof i==\"number\"||!/^(?:[<>!=]=|[<>])$/.test(i))throw new Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' \"${i}\"`);if(typeof l==\"string\"&&!/^[A-Za-z_]\\w*$/.test(l))throw new Error(`Named callout argument three must be a tag or number \"${l}\"`);break;case\"custom\":throw new Error(`Undefined callout name \"${t}\"`);default:throw new Error(`Unexpected named callout kind \"${c}\"`)}return D(c,o??null,s?.split(\",\")??null,e)}function O(e){let n=null,t,o;if(e[0]===\"{\"){const{minStr:s,maxStr:a}=/^\\{(?<minStr>\\d*)(?:,(?<maxStr>\\d*))?/.exec(e).groups,r=1e5;if(+s>r||a&&+a>r)throw new Error(\"Quantifier value unsupported in Oniguruma\");if(t=+s,o=a===void 0?+s:a===\"\"?1/0:+a,t>o&&(n=\"possessive\",[t,o]=[o,t]),e.endsWith(\"?\")){if(n===\"possessive\")throw new Error('Unsupported possessive interval quantifier chain with \"?\"');n=\"lazy\"}else n||(n=\"greedy\")}else t=e[0]===\"+\"?1:0,o=e[0]===\"?\"?1:1/0,n=e[1]===\"+\"?\"possessive\":e[1]===\"?\"?\"lazy\":\"greedy\";return _(n,t,o,e)}function q(e){const n=e[1].toLowerCase();return k({d:\"digit\",h:\"hex\",s:\"space\",w:\"word\"}[n],e,{negate:e[1]!==n})}function V(e){const{p:n,neg:t,value:o}=/^\\\\(?<p>[pP])\\{(?<neg>\\^?)(?<value>[^}]+)/.exec(e).groups;return k(\"property\",e,{value:o,negate:n===\"P\"&&!t||n===\"p\"&&!!t})}function v(e){const n={};return e.includes(\"i\")&&(n.ignoreCase=!0),e.includes(\"m\")&&(n.dotAll=!0),e.includes(\"x\")&&(n.extended=!0),Object.keys(n).length?n:null}function Y(e){const n={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii:!1,posixIsAscii:!1,spaceIsAscii:!1,wordIsAscii:!1,textSegmentMode:null};for(let t=0;t<e.length;t++){const o=e[t];if(!\"imxDPSWy\".includes(o))throw new Error(`Invalid flag \"${o}\"`);if(o===\"y\"){if(!/^y{[gw]}/.test(e.slice(t)))throw new Error('Invalid or unspecified flag \"y\" mode');n.textSegmentMode=e[t+2]===\"g\"?\"grapheme\":\"word\",t+=3;continue}n[{i:\"ignoreCase\",m:\"dotAll\",x:\"extended\",D:\"digitIsAscii\",P:\"posixIsAscii\",S:\"spaceIsAscii\",W:\"wordIsAscii\"}[o]]=!0}return n}function J(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}\"`);const n=e[2]===\"{\"?/^\\\\x\\{\\s*(?<hex>\\p{AHex}+)/u.exec(e).groups.hex:e.slice(2);return parseInt(n,16)}function ee(e,n){const{raw:t,inCharClass:o}=e,s=t.slice(1);if(!o&&(s!==\"0\"&&s.length===1||s[0]!==\"0\"&&+s<=n))return[A(t)];const a=[],r=s.match(/^[0-7]+|\\d/g);for(let i=0;i<r.length;i++){const l=r[i];let c;if(i===0&&l!==\"8\"&&l!==\"9\"){if(c=parseInt(l,8),c>127)throw new Error(p`Octal encoded byte above 177 unsupported \"${t}\"`)}else c=h(l);a.push(d(c,(i===0?\"\\\\\":\"\")+l))}return a}function te(e){const n=[],t=new RegExp(y,\"gy\");let o;for(;o=t.exec(e);){const s=o[0];if(s[0]===\"{\"){const a=/^\\{(?<min>\\d+),(?<max>\\d+)\\}\\??$/.exec(s);if(a){const{min:r,max:i}=a.groups;if(+r>+i&&s.endsWith(\"?\")){t.lastIndex--,n.push(O(s.slice(0,-1)));continue}}}n.push(O(s))}return n}export{M as tokenize};\n//# sourceMappingURL=tokenize.js.map\n","\"use strict\";function o(e,t){if(!Array.isArray(e.body))throw new Error(\"Expected node with body array\");if(e.body.length!==1)return!1;const r=e.body[0];return!t||Object.keys(t).every(n=>t[n]===r[n])}function a(e){return!(!i.has(e.type)||e.type===\"AbsenceFunction\"&&e.kind!==\"repeater\")}const i=new Set([\"AbsenceFunction\",\"CapturingGroup\",\"Group\",\"LookaroundAssertion\",\"Regex\"]);function s(e){return y.has(e.type)}const y=new Set([\"AbsenceFunction\",\"Backreference\",\"CapturingGroup\",\"Character\",\"CharacterClass\",\"CharacterSet\",\"Group\",\"Quantifier\",\"Subroutine\"]);export{o as hasOnlyChild,a as isAlternativeContainer,s as isQuantifiable};\n//# sourceMappingURL=node-utils.js.map\n","\"use strict\";import{tokenize as q}from\"../tokenizer/tokenize.js\";import{cpOf as H,getOrInsert as Z,PosixClassNames as x,r as y,throwIfNullish as g}from\"../utils.js\";import{hasOnlyChild as Y,isAlternativeContainer as j,isQuantifiable as S}from\"./node-utils.js\";function J(e,r={}){const n={flags:\"\",normalizeUnknownPropertyNames:!1,skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...r,rules:{captureGroup:!1,singleline:!1,...r.rules}},t=q(e,{flags:n.flags,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline}}),s=(p,N)=>{const u=t.tokens[o.nextIndex];switch(o.parent=p,o.nextIndex++,u.type){case\"Alternator\":return b();case\"Assertion\":return W(u);case\"Backreference\":return X(u,o);case\"Character\":return m(u.value,{useLastValid:!!N.isCheckingRangeEnd});case\"CharacterClassHyphen\":return ee(u,o,N);case\"CharacterClassOpen\":return re(u,o,N);case\"CharacterSet\":return ne(u,o);case\"Directive\":return I(u.kind,{flags:u.flags});case\"GroupOpen\":return te(u,o,N);case\"NamedCallout\":return U(u.kind,u.tag,u.arguments);case\"Quantifier\":return oe(u,o);case\"Subroutine\":return ae(u,o);default:throw new Error(`Unexpected token type \"${u.type}\"`)}},o={capturingGroups:[],hasNumberedRef:!1,namedGroupsByName:new Map,nextIndex:0,normalizeUnknownPropertyNames:n.normalizeUnknownPropertyNames,parent:null,skipBackrefValidation:n.skipBackrefValidation,skipLookbehindValidation:n.skipLookbehindValidation,skipPropertyNameValidation:n.skipPropertyNameValidation,subroutines:[],tokens:t.tokens,unicodePropertyMap:n.unicodePropertyMap,walk:s},i=B(T(t.flags));let d=i.body[0];for(;o.nextIndex<t.tokens.length;){const p=s(d,{});p.type===\"Alternative\"?(i.body.push(p),d=p):d.body.push(p)}const{capturingGroups:a,hasNumberedRef:l,namedGroupsByName:c,subroutines:f}=o;if(l&&c.size&&!n.rules.captureGroup)throw new Error(\"Numbered backref/subroutine not allowed when using named capture\");for(const{ref:p}of f)if(typeof p==\"number\"){if(p>a.length)throw new Error(\"Subroutine uses a group number that's not defined\");p&&(a[p-1].isSubroutined=!0)}else if(c.has(p)){if(c.get(p).length>1)throw new Error(y`Subroutine uses a duplicate group name \"\\g<${p}>\"`);c.get(p)[0].isSubroutined=!0}else throw new Error(y`Subroutine uses a group name that's not defined \"\\g<${p}>\"`);return i}function W({kind:e}){return F(g({\"^\":\"line_start\",$:\"line_end\",\"\\\\A\":\"string_start\",\"\\\\b\":\"word_boundary\",\"\\\\B\":\"word_boundary\",\"\\\\G\":\"search_start\",\"\\\\y\":\"text_segment_boundary\",\"\\\\Y\":\"text_segment_boundary\",\"\\\\z\":\"string_end\",\"\\\\Z\":\"string_end_newline\"}[e],`Unexpected assertion kind \"${e}\"`),{negate:e===y`\\B`||e===y`\\Y`})}function X({raw:e},r){const n=/^\\\\k[<']/.test(e),t=n?e.slice(3,-1):e.slice(1),s=(o,i=!1)=>{const d=r.capturingGroups.length;let a=!1;if(o>d)if(r.skipBackrefValidation)a=!0;else throw new Error(`Not enough capturing groups defined to the left \"${e}\"`);return r.hasNumberedRef=!0,k(i?d+1-o:o,{orphan:a})};if(n){const o=/^(?<sign>-?)0*(?<num>[1-9]\\d*)$/.exec(t);if(o)return s(+o.groups.num,!!o.groups.sign);if(/[-+]/.test(t))throw new Error(`Invalid backref name \"${e}\"`);if(!r.namedGroupsByName.has(t))throw new Error(`Group name not defined to the left \"${e}\"`);return k(t)}return s(+t)}function ee(e,r,n){const{tokens:t,walk:s}=r,o=r.parent,i=o.body.at(-1),d=t[r.nextIndex];if(!n.isCheckingRangeEnd&&i&&i.type!==\"CharacterClass\"&&i.type!==\"CharacterClassRange\"&&d&&d.type!==\"CharacterClassOpen\"&&d.type!==\"CharacterClassClose\"&&d.type!==\"CharacterClassIntersector\"){const a=s(o,{...n,isCheckingRangeEnd:!0});if(i.type===\"Character\"&&a.type===\"Character\")return o.body.pop(),L(i,a);throw new Error(\"Invalid character class range\")}return m(H(\"-\"))}function re({negate:e},r,n){const{tokens:t,walk:s}=r,o=t[r.nextIndex],i=[C()];let d=z(o);for(;d.type!==\"CharacterClassClose\";){if(d.type===\"CharacterClassIntersector\")i.push(C()),r.nextIndex++;else{const l=i.at(-1);l.body.push(s(l,n))}d=z(t[r.nextIndex],o)}const a=C({negate:e});return i.length===1?a.body=i[0].body:(a.kind=\"intersection\",a.body=i.map(l=>l.body.length===1?l.body[0]:l)),r.nextIndex++,a}function ne({kind:e,negate:r,value:n},t){const{normalizeUnknownPropertyNames:s,skipPropertyNameValidation:o,unicodePropertyMap:i}=t;if(e===\"property\"){const d=w(n);if(x.has(d)&&!i?.has(d))e=\"posix\",n=d;else return Q(n,{negate:r,normalizeUnknownPropertyNames:s,skipPropertyNameValidation:o,unicodePropertyMap:i})}return e===\"posix\"?R(n,{negate:r}):E(e,{negate:r})}function te(e,r,n){const{tokens:t,capturingGroups:s,namedGroupsByName:o,skipLookbehindValidation:i,walk:d}=r,a=ie(e),l=a.type===\"AbsenceFunction\",c=$(a),f=c&&a.negate;if(a.type===\"CapturingGroup\"&&(s.push(a),a.name&&Z(o,a.name,[]).push(a)),l&&n.isInAbsenceFunction)throw new Error(\"Nested absence function not supported by Oniguruma\");let p=D(t[r.nextIndex]);for(;p.type!==\"GroupClose\";){if(p.type===\"Alternator\")a.body.push(b()),r.nextIndex++;else{const N=a.body.at(-1),u=d(N,{...n,isInAbsenceFunction:n.isInAbsenceFunction||l,isInLookbehind:n.isInLookbehind||c,isInNegLookbehind:n.isInNegLookbehind||f});if(N.body.push(u),(c||n.isInLookbehind)&&!i){const v=\"Lookbehind includes a pattern not allowed by Oniguruma\";if(f||n.isInNegLookbehind){if(M(u)||u.type===\"CapturingGroup\")throw new Error(v)}else if(M(u)||$(u)&&u.negate)throw new Error(v)}}p=D(t[r.nextIndex])}return r.nextIndex++,a}function oe({kind:e,min:r,max:n},t){const s=t.parent,o=s.body.at(-1);if(!o||!S(o))throw new Error(\"Quantifier requires a repeatable token\");const i=_(e,r,n,o);return s.body.pop(),i}function ae({raw:e},r){const{capturingGroups:n,subroutines:t}=r;let s=e.slice(3,-1);const o=/^(?<sign>[-+]?)0*(?<num>[1-9]\\d*)$/.exec(s);if(o){const d=+o.groups.num,a=n.length;if(r.hasNumberedRef=!0,s={\"\":d,\"+\":a+d,\"-\":a+1-d}[o.groups.sign],s<1)throw new Error(\"Invalid subroutine number\")}else s===\"0\"&&(s=0);const i=O(s);return t.push(i),i}function G(e,r){if(e!==\"repeater\")throw new Error(`Unexpected absence function kind \"${e}\"`);return{type:\"AbsenceFunction\",kind:e,body:h(r?.body)}}function b(e){return{type:\"Alternative\",body:V(e?.body)}}function F(e,r){const n={type:\"Assertion\",kind:e};return(e===\"word_boundary\"||e===\"text_segment_boundary\")&&(n.negate=!!r?.negate),n}function k(e,r){const n=!!r?.orphan;return{type:\"Backreference\",ref:e,...n&&{orphan:n}}}function P(e,r){const n={name:void 0,isSubroutined:!1,...r};if(n.name!==void 0&&!se(n.name))throw new Error(`Group name \"${n.name}\" invalid in Oniguruma`);return{type:\"CapturingGroup\",number:e,...n.name&&{name:n.name},...n.isSubroutined&&{isSubroutined:n.isSubroutined},body:h(r?.body)}}function m(e,r){const n={useLastValid:!1,...r};if(e>1114111){const t=e.toString(16);if(n.useLastValid)e=1114111;else throw e>1310719?new Error(`Invalid code point out of range \"\\\\x{${t}}\"`):new Error(`Invalid code point out of range in JS \"\\\\x{${t}}\"`)}return{type:\"Character\",value:e}}function C(e){const r={kind:\"union\",negate:!1,...e};return{type:\"CharacterClass\",kind:r.kind,negate:r.negate,body:V(e?.body)}}function L(e,r){if(r.value<e.value)throw new Error(\"Character class range out of order\");return{type:\"CharacterClassRange\",min:e,max:r}}function E(e,r){const n=!!r?.negate,t={type:\"CharacterSet\",kind:e};return(e===\"digit\"||e===\"hex\"||e===\"newline\"||e===\"space\"||e===\"word\")&&(t.negate=n),(e===\"text_segment\"||e===\"newline\"&&!n)&&(t.variableLength=!0),t}function I(e,r={}){if(e===\"keep\")return{type:\"Directive\",kind:e};if(e===\"flags\")return{type:\"Directive\",kind:e,flags:g(r.flags)};throw new Error(`Unexpected directive kind \"${e}\"`)}function T(e){return{type:\"Flags\",...e}}function A(e){const r=e?.atomic,n=e?.flags;if(r&&n)throw new Error(\"Atomic group cannot have flags\");return{type:\"Group\",...r&&{atomic:r},...n&&{flags:n},body:h(e?.body)}}function K(e){const r={behind:!1,negate:!1,...e};return{type:\"LookaroundAssertion\",kind:r.behind?\"lookbehind\":\"lookahead\",negate:r.negate,body:h(e?.body)}}function U(e,r,n){return{type:\"NamedCallout\",kind:e,tag:r,arguments:n}}function R(e,r){const n=!!r?.negate;if(!x.has(e))throw new Error(`Invalid POSIX class \"${e}\"`);return{type:\"CharacterSet\",kind:\"posix\",value:e,negate:n}}function _(e,r,n,t){if(r>n)throw new Error(\"Invalid reversed quantifier range\");return{type:\"Quantifier\",kind:e,min:r,max:n,body:t}}function B(e,r){return{type:\"Regex\",body:h(r?.body),flags:e}}function O(e){return{type:\"Subroutine\",ref:e}}function Q(e,r){const n={negate:!1,normalizeUnknownPropertyNames:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...r};let t=n.unicodePropertyMap?.get(w(e));if(!t){if(n.normalizeUnknownPropertyNames)t=de(e);else if(n.unicodePropertyMap&&!n.skipPropertyNameValidation)throw new Error(y`Invalid Unicode property \"\\p{${e}}\"`)}return{type:\"CharacterSet\",kind:\"property\",value:t??e,negate:n.negate}}function ie({flags:e,kind:r,name:n,negate:t,number:s}){switch(r){case\"absence_repeater\":return G(\"repeater\");case\"atomic\":return A({atomic:!0});case\"capturing\":return P(s,{name:n});case\"group\":return A({flags:e});case\"lookahead\":case\"lookbehind\":return K({behind:r===\"lookbehind\",negate:t});default:throw new Error(`Unexpected group kind \"${r}\"`)}}function h(e){if(e===void 0)e=[b()];else if(!Array.isArray(e)||!e.length||!e.every(r=>r.type===\"Alternative\"))throw new Error(\"Invalid body; expected array of one or more Alternative nodes\");return e}function V(e){if(e===void 0)e=[];else if(!Array.isArray(e)||!e.every(r=>!!r.type))throw new Error(\"Invalid body; expected array of nodes\");return e}function M(e){return e.type===\"LookaroundAssertion\"&&e.kind===\"lookahead\"}function $(e){return e.type===\"LookaroundAssertion\"&&e.kind===\"lookbehind\"}function se(e){return/^[\\p{Alpha}\\p{Pc}][^)]*$/u.test(e)}function de(e){return e.trim().replace(/[- _]+/g,\"_\").replace(/[A-Z][a-z]+(?=[A-Z])/g,\"$&_\").replace(/[A-Za-z]+/g,r=>r[0].toUpperCase()+r.slice(1).toLowerCase())}function w(e){return e.replace(/[- _]+/g,\"\").toLowerCase()}function z(e,r){return g(e,`${r?.type===\"Character\"&&r.value===93?\"Empty\":\"Unclosed\"} character class`)}function D(e){return g(e,\"Unclosed group\")}export{G as createAbsenceFunction,b as createAlternative,F as createAssertion,k as createBackreference,P as createCapturingGroup,m as createCharacter,C as createCharacterClass,L as createCharacterClassRange,E as createCharacterSet,I as createDirective,T as createFlags,A as createGroup,K as createLookaroundAssertion,U as createNamedCallout,R as createPosixClass,_ as createQuantifier,B as createRegex,O as createSubroutine,Q as createUnicodeProperty,Y as hasOnlyChild,j as isAlternativeContainer,S as isQuantifiable,J as parse,w as slug};\n//# sourceMappingURL=parse.js.map\n","\"use strict\";import{throwIfNullish as A}from\"../utils.js\";function S(a,v,N=null){function u(e,s){for(let t=0;t<e.length;t++){const r=n(e[t],s,t,e);t=Math.max(-1,t+r)}}function n(e,s=null,t=null,r=null){let i=0,c=!1;const d={node:e,parent:s,key:t,container:r,root:a,remove(){f(r).splice(Math.max(0,l(t)+i),1),i--,c=!0},removeAllNextSiblings(){return f(r).splice(l(t)+1)},removeAllPrevSiblings(){const o=l(t)+i;return i-=o,f(r).splice(0,Math.max(0,o))},replaceWith(o,y={}){const b=!!y.traverse;r?r[Math.max(0,l(t)+i)]=o:A(s,\"Can't replace root node\")[t]=o,b&&n(o,s,t,r),c=!0},replaceWithMultiple(o,y={}){const b=!!y.traverse;if(f(r).splice(Math.max(0,l(t)+i),1,...o),i+=o.length-1,b){let g=0;for(let x=0;x<o.length;x++)g+=n(o[x],s,l(t)+x+g,r)}c=!0},skip(){c=!0}},{type:m}=e,h=v[\"*\"],p=v[m],R=typeof h==\"function\"?h:h?.enter,P=typeof p==\"function\"?p:p?.enter;if(R?.(d,N),P?.(d,N),!c)switch(m){case\"AbsenceFunction\":case\"CapturingGroup\":case\"Group\":u(e.body,e);break;case\"Alternative\":case\"CharacterClass\":u(e.body,e);break;case\"Assertion\":case\"Backreference\":case\"Character\":case\"CharacterSet\":case\"Directive\":case\"Flags\":case\"NamedCallout\":case\"Subroutine\":break;case\"CharacterClassRange\":n(e.min,e,\"min\"),n(e.max,e,\"max\");break;case\"LookaroundAssertion\":u(e.body,e);break;case\"Quantifier\":n(e.body,e,\"body\");break;case\"Regex\":u(e.body,e),n(e.flags,e,\"flags\");break;default:throw new Error(`Unexpected node type \"${m}\"`)}return p?.exit?.(d,N),h?.exit?.(d,N),i}return n(a),a}function f(a){if(!Array.isArray(a))throw new Error(\"Container expected\");return a}function l(a){if(typeof a!=\"number\")throw new Error(\"Numeric key expected\");return a}export{S as traverse};\n//# sourceMappingURL=traverse.js.map\n","// Separating some utils for improved tree shaking of the `./internals` export\n\nconst noncapturingDelim = String.raw`\\(\\?(?:[:=!>A-Za-z\\-]|<[=!]|\\(DEFINE\\))`;\n\n/**\nUpdates the array in place by incrementing each value greater than or equal to the threshold.\n@param {Array<number>} arr\n@param {number} threshold\n*/\nfunction incrementIfAtLeast(arr, threshold) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] >= threshold) {\n arr[i]++;\n }\n }\n}\n\n/**\n@param {string} str\n@param {number} pos\n@param {string} oldValue\n@param {string} newValue\n@returns {string}\n*/\nfunction spliceStr(str, pos, oldValue, newValue) {\n return str.slice(0, pos) + newValue + str.slice(pos + oldValue.length);\n}\n\nexport {\n incrementIfAtLeast,\n noncapturingDelim,\n spliceStr,\n};\n","// Constant properties for tracking regex syntax context\nexport const Context = Object.freeze({\n DEFAULT: 'DEFAULT',\n CHAR_CLASS: 'CHAR_CLASS',\n});\n\n/**\nReplaces all unescaped instances of a regex pattern in the given context, using a replacement\nstring or callback.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {string | (match: RegExpExecArray, details: {\n context: 'DEFAULT' | 'CHAR_CLASS';\n negated: boolean;\n}) => string} replacement\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {string} Updated expression\n@example\nconst str = '.\\\\.\\\\\\\\.[[\\\\.].].';\nreplaceUnescaped(str, '\\\\.', '@');\n// → '@\\\\.\\\\\\\\@[[\\\\.]@]@'\nreplaceUnescaped(str, '\\\\.', '@', Context.DEFAULT);\n// → '@\\\\.\\\\\\\\@[[\\\\.].]@'\nreplaceUnescaped(str, '\\\\.', '@', Context.CHAR_CLASS);\n// → '.\\\\.\\\\\\\\.[[\\\\.]@].'\n*/\nexport function replaceUnescaped(expression, needle, replacement, context) {\n const re = new RegExp(String.raw`${needle}|(?<$skip>\\[\\^?|\\\\?.)`, 'gsu');\n const negated = [false];\n let numCharClassesOpen = 0;\n let result = '';\n for (const match of expression.matchAll(re)) {\n const {0: m, groups: {$skip}} = match;\n if (!$skip && (!context || (context === Context.DEFAULT) === !numCharClassesOpen)) {\n if (replacement instanceof Function) {\n result += replacement(match, {\n context: numCharClassesOpen ? Context.CHAR_CLASS : Context.DEFAULT,\n negated: negated[negated.length - 1],\n });\n } else {\n result += replacement;\n }\n continue;\n }\n if (m[0] === '[') {\n numCharClassesOpen++;\n negated.push(m[1] === '^');\n } else if (m === ']' && numCharClassesOpen) {\n numCharClassesOpen--;\n negated.pop();\n }\n result += m;\n }\n return result;\n}\n\n/**\nRuns a callback for each unescaped instance of a regex pattern in the given context.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {(match: RegExpExecArray, details: {\n context: 'DEFAULT' | 'CHAR_CLASS';\n negated: boolean;\n}) => void} callback\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n*/\nexport function forEachUnescaped(expression, needle, callback, context) {\n // Do this the easy way\n replaceUnescaped(expression, needle, callback, context);\n}\n\n/**\nReturns a match object for the first unescaped instance of a regex pattern in the given context, or\n`null`.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {number} [pos] Offset to start the search\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {RegExpExecArray | null}\n*/\nexport function execUnescaped(expression, needle, pos = 0, context) {\n // Quick partial test; avoid the loop if not needed\n if (!(new RegExp(needle, 'su').test(expression))) {\n return null;\n }\n const re = new RegExp(`${needle}|(?<$skip>\\\\\\\\?.)`, 'gsu');\n re.lastIndex = pos;\n let numCharClassesOpen = 0;\n let match;\n while (match = re.exec(expression)) {\n const {0: m, groups: {$skip}} = match;\n if (!$skip && (!context || (context === Context.DEFAULT) === !numCharClassesOpen)) {\n return match;\n }\n if (m === '[') {\n numCharClassesOpen++;\n } else if (m === ']' && numCharClassesOpen) {\n numCharClassesOpen--;\n }\n // Avoid an infinite loop on zero-length matches\n if (re.lastIndex == match.index) {\n re.lastIndex++;\n }\n }\n return null;\n}\n\n/**\nChecks whether an unescaped instance of a regex pattern appears in the given context.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {boolean} Whether the pattern was found\n*/\nexport function hasUnescaped(expression, needle, context) {\n // Do this the easy way\n return !!execUnescaped(expression, needle, 0, context);\n}\n\n/**\nExtracts the full contents of a group (subpattern) from the given expression, accounting for\nescaped characters, nested groups, and character classes. The group is identified by the position\nwhere its contents start (the string index just after the group's opening delimiter). Returns the\nrest of the string if the group is unclosed.\n\nAssumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {number} contentsStartPos\n@returns {string}\n*/\nexport function getGroupContents(expression, contentsStartPos) {\n const token = /\\\\?./gsu;\n token.lastIndex = contentsStartPos;\n let contentsEndPos = expression.length;\n let numCharClassesOpen = 0;\n // Starting search within an open group, after the group's opening\n let numGroupsOpen = 1;\n let match;\n while (match = token.exec(expression)) {\n const [m] = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (m === '(') {\n numGroupsOpen++;\n } else if (m === ')') {\n numGroupsOpen--;\n if (!numGroupsOpen) {\n contentsEndPos = match.index;\n break;\n }\n }\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n return expression.slice(contentsStartPos, contentsEndPos);\n}\n","import {incrementIfAtLeast, noncapturingDelim, spliceStr} from './utils-internals.js';\nimport {Context, replaceUnescaped} from 'regex-utilities';\n/**\n@import {PluginData, PluginResult} from './regex.js';\n*/\n\nconst atomicPluginToken = new RegExp(String.raw`(?<noncapturingStart>${noncapturingDelim})|(?<capturingStart>\\((?:\\?<[^>]+>)?)|\\\\?.`, 'gsu');\n\n/**\nApply transformations for atomic groups: `(?>…)`.\n@param {string} expression\n@param {PluginData} [data]\n@returns {Required<PluginResult>}\n*/\nfunction atomic(expression, data) {\n const hiddenCaptures = data?.hiddenCaptures ?? [];\n // Capture transfer is used by <github.com/slevithan/oniguruma-to-es>\n let captureTransfers = data?.captureTransfers ?? new Map();\n if (!/\\(\\?>/.test(expression)) {\n return {\n pattern: expression,\n captureTransfers,\n hiddenCaptures,\n };\n }\n\n const aGDelim = '(?>';\n const emulatedAGDelim = '(?:(?=(';\n const captureNumMap = [0];\n const addedHiddenCaptures = [];\n let numCapturesBeforeAG = 0;\n let numAGs = 0;\n let aGPos = NaN;\n let hasProcessedAG;\n do {\n hasProcessedAG = false;\n let numCharClassesOpen = 0;\n let numGroupsOpenInAG = 0;\n let inAG = false;\n let match;\n atomicPluginToken.lastIndex = Number.isNaN(aGPos) ? 0 : aGPos + emulatedAGDelim.length;\n while (match = atomicPluginToken.exec(expression)) {\n const {0: m, index, groups: {capturingStart, noncapturingStart}} = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n\n if (m === aGDelim && !inAG) {\n aGPos = index;\n inAG = true;\n } else if (inAG && noncapturingStart) {\n numGroupsOpenInAG++;\n } else if (capturingStart) {\n if (inAG) {\n numGroupsOpenInAG++;\n } else {\n numCapturesBeforeAG++;\n captureNumMap.push(numCapturesBeforeAG + numAGs);\n }\n } else if (m === ')' && inAG) {\n if (!numGroupsOpenInAG) {\n numAGs++;\n const addedCaptureNum = numCapturesBeforeAG + numAGs;\n // Replace `expression` and use `<$$N>` as a temporary wrapper for the backref so it\n // can avoid backref renumbering afterward. Wrap the whole substitution (including the\n // lookahead and following backref) in a noncapturing group to handle following\n // quantifiers and literal digits\n expression = `${expression.slice(0, aGPos)}${emulatedAGDelim}${\n expression.slice(aGPos + aGDelim.length, index)\n }))<$$${addedCaptureNum}>)${expression.slice(index + 1)}`;\n hasProcessedAG = true;\n addedHiddenCaptures.push(addedCaptureNum);\n incrementIfAtLeast(hiddenCaptures, addedCaptureNum);\n if (captureTransfers.size) {\n const newCaptureTransfers = new Map();\n captureTransfers.forEach((from, to) => {\n newCaptureTransfers.set(\n to >= addedCaptureNum ? to + 1 : to,\n from.map(f => f >= addedCaptureNum ? f + 1 : f)\n );\n });\n captureTransfers = newCaptureTransfers;\n }\n break;\n }\n numGroupsOpenInAG--;\n }\n\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n // Start over from the beginning of the atomic group's contents, in case the processed group\n // contains additional atomic groups\n } while (hasProcessedAG);\n\n hiddenCaptures.push(...addedHiddenCaptures);\n\n // Second pass to adjust numbered backrefs\n expression = replaceUnescaped(\n expression,\n String.raw`\\\\(?<backrefNum>[1-9]\\d*)|<\\$\\$(?<wrappedBackrefNum>\\d+)>`,\n ({0: m, groups: {backrefNum, wrappedBackrefNum}}) => {\n if (backrefNum) {\n const bNum = +backrefNum;\n if (bNum > captureNumMap.length - 1) {\n throw new Error(`Backref \"${m}\" greater than number of captures`);\n }\n return `\\\\${captureNumMap[bNum]}`;\n }\n return `\\\\${wrappedBackrefNum}`;\n },\n Context.DEFAULT\n );\n\n return {\n pattern: expression,\n captureTransfers,\n hiddenCaptures,\n };\n}\n\nconst baseQuantifier = String.raw`(?:[?*+]|\\{\\d+(?:,\\d*)?\\})`;\n// Complete tokenizer for base syntax; doesn't (need to) know about character-class-only syntax\nconst possessivePluginToken = new RegExp(String.raw`\n\\\\(?: \\d+\n | c[A-Za-z]\n | [gk]<[^>]+>\n | [pPu]\\{[^\\}]+\\}\n | u[A-Fa-f\\d]{4}\n | x[A-Fa-f\\d]{2}\n )\n| \\((?: \\? (?: [:=!>]\n | <(?:[=!]|[^>]+>)\n | [A-Za-z\\-]+:\n | \\(DEFINE\\)\n ))?\n| (?<qBase>${baseQuantifier})(?<qMod>[?+]?)(?<invalidQ>[?*+\\{]?)\n| \\\\?.\n`.replace(/\\s+/g, ''), 'gsu');\n\n/**\nTransform posessive quantifiers into atomic groups. The posessessive quantifiers are:\n`?+`, `*+`, `++`, `{N}+`, `{N,}+`, `{N,N}+`.\nThis follows Java, PCRE, Perl, and Python.\nPossessive quantifiers in Oniguruma and Onigmo are only: `?+`, `*+`, `++`.\n@param {string} expression\n@returns {PluginResult}\n*/\nfunction possessive(expression) {\n if (!(new RegExp(`${baseQuantifier}\\\\+`).test(expression))) {\n return {\n pattern: expression,\n };\n }\n\n const openGroupIndices = [];\n let lastGroupIndex = null;\n let lastCharClassIndex = null;\n let lastToken = '';\n let numCharClassesOpen = 0;\n let match;\n possessivePluginToken.lastIndex = 0;\n while (match = possessivePluginToken.exec(expression)) {\n const {0: m, index, groups: {qBase, qMod, invalidQ}} = match;\n if (m === '[') {\n if (!numCharClassesOpen) {\n lastCharClassIndex = index;\n }\n numCharClassesOpen++;\n } else if (m === ']') {\n if (numCharClassesOpen) {\n numCharClassesOpen--;\n // Unmatched `]`\n } else {\n lastCharClassIndex = null;\n }\n } else if (!numCharClassesOpen) {\n\n if (qMod === '+' && lastToken && !lastToken.startsWith('(')) {\n // Invalid following quantifier would become valid via the wrapping group\n if (invalidQ) {\n throw new Error(`Invalid quantifier \"${m}\"`);\n }\n let charsAdded = -1; // -1 for removed trailing `+`\n // Possessivizing fixed repetition quantifiers like `{2}` does't change their behavior, so\n // avoid doing so (convert them to greedy)\n if (/^\\{\\d+\\}$/.test(qBase)) {\n expression = spliceStr(expression, index + qBase.length, qMod, '');\n } else {\n if (lastToken === ')' || lastToken === ']') {\n const nodeIndex = lastToken === ')' ? lastGroupIndex : lastCharClassIndex;\n // Unmatched `)` would break out of the wrapping group and mess with handling.\n // Unmatched `]` wouldn't be a problem, but it's unnecessary to have dedicated support\n // for unescaped `]++` since this won't work with flag u or v anyway\n if (nodeIndex === null) {\n throw new Error(`Invalid unmatched \"${lastToken}\"`);\n }\n expression = `${expression.slice(0, nodeIndex)}(?>${expression.slice(nodeIndex, index)}${qBase})${expression.slice(index + m.length)}`;\n } else {\n expression = `${expression.slice(0, index - lastToken.length)}(?>${lastToken}${qBase})${expression.slice(index + m.length)}`;\n }\n charsAdded += 4; // `(?>)`\n }\n possessivePluginToken.lastIndex += charsAdded;\n } else if (m[0] === '(') {\n openGroupIndices.push(index);\n } else if (m === ')') {\n lastGroupIndex = openGroupIndices.length ? openGroupIndices.pop() : null;\n }\n\n }\n lastToken = m;\n }\n\n return {\n pattern: expression,\n };\n}\n\nexport {\n atomic,\n possessive,\n};\n","import {Context, forEachUnescaped, getGroupContents, hasUnescaped, replaceUnescaped} from 'regex-utilities';\n\nconst r = String.raw;\nconst gRToken = r`\\\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`;\nconst recursiveToken = r`\\(\\?R=(?<rDepth>[^\\)]+)\\)|${gRToken}`;\nconst namedCaptureDelim = r`\\(\\?<(?![=!])(?<captureName>[^>]+)>`;\nconst captureDelim = r`${namedCaptureDelim}|(?<unnamed>\\()(?!\\?)`;\nconst token = new RegExp(r`${namedCaptureDelim}|${recursiveToken}|\\(\\?|\\\\?.`, 'gsu');\nconst overlappingRecursionMsg = 'Cannot use multiple overlapping recursions';\n\n/**\n@param {string} pattern\n@param {{\n flags?: string;\n captureTransfers?: Map<number, Array<number>>;\n hiddenCaptures?: Array<number>;\n mode?: 'plugin' | 'external';\n}} [data]\n@returns {{\n pattern: string;\n captureTransfers: Map<number, Array<number>>;\n hiddenCaptures: Array<number>;\n}}\n*/\nfunction recursion(pattern, data) {\n const {hiddenCaptures, mode} = {\n hiddenCaptures: [],\n mode: 'plugin',\n ...data,\n };\n // Capture transfer is used by <github.com/slevithan/oniguruma-to-es>\n let captureTransfers = data?.captureTransfers ?? new Map();\n // Keep the initial fail-check (which avoids unneeded processing) as fast as possible by testing\n // without the accuracy improvement of using `hasUnescaped` with `Context.DEFAULT`\n if (!(new RegExp(recursiveToken, 'su').test(pattern))) {\n return {\n pattern,\n captureTransfers,\n hiddenCaptures,\n };\n }\n if (mode === 'plugin' && hasUnescaped(pattern, r`\\(\\?\\(DEFINE\\)`, Context.DEFAULT)) {\n throw new Error('DEFINE groups cannot be used with recursion');\n }\n\n const addedHiddenCaptures = [];\n const hasNumberedBackref = hasUnescaped(pattern, r`\\\\[1-9]`, Context.DEFAULT);\n const groupContentsStartPos = new Map();\n const openGroups = [];\n let hasRecursed = false;\n let numCharClassesOpen = 0;\n let numCapturesPassed = 0;\n let match;\n token.lastIndex = 0;\n while ((match = token.exec(pattern))) {\n const {0: m, groups: {captureName, rDepth, gRNameOrNum, gRDepth}} = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n\n // `(?R=N)`\n if (rDepth) {\n assertMaxInBounds(rDepth);\n if (hasRecursed) {\n throw new Error(overlappingRecursionMsg);\n }\n if (hasNumberedBackref) {\n // Could add support for numbered backrefs with extra effort, but it's probably not worth\n // it. To trigger this error, the regex must include recursion and one of the following:\n // - An interpolated regex that contains a numbered backref (since other numbered\n // backrefs are prevented by implicit flag n).\n // - A numbered backref, when flag n is explicitly disabled.\n // Note that Regex+'s extended syntax (atomic groups and sometimes subroutines) can also\n // add numbered backrefs, but those work fine because external plugins like this one run\n // *before* the transformation of built-in syntax extensions\n throw new Error(\n // When used in `external` mode by transpilers other than Regex+, backrefs might have\n // gone through conversion from named to numbered, so avoid a misleading error\n `${mode === 'external' ? 'Backrefs' : 'Numbered backrefs'} cannot be used with global recursion`\n );\n }\n const left = pattern.slice(0, match.index);\n const right = pattern.slice(token.lastIndex);\n if (hasUnescaped(right, recursiveToken, Context.DEFAULT)) {\n throw new Error(overlappingRecursionMsg);\n }\n const reps = +rDepth - 1;\n pattern = makeRecursive(\n left,\n right,\n reps,\n false,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n );\n captureTransfers = mapCaptureTransfers(\n captureTransfers,\n left,\n reps,\n addedHiddenCaptures.length,\n 0,\n numCapturesPassed\n );\n // No need to parse further\n break;\n // `\\g<name&R=N>`, `\\g<number&R=N>`\n } else if (gRNameOrNum) {\n assertMaxInBounds(gRDepth);\n let isWithinReffedGroup = false;\n for (const g of openGroups) {\n if (g.name === gRNameOrNum || g.num === +gRNameOrNum) {\n isWithinReffedGroup = true;\n if (g.hasRecursedWithin) {\n throw new Error(overlappingRecursionMsg);\n }\n break;\n }\n }\n if (!isWithinReffedGroup) {\n throw new Error(r`Recursive \\g cannot be used outside the referenced group \"${\n mode === 'external' ? gRNameOrNum : r`\\g<${gRNameOrNum}&R=${gRDepth}>`\n }\"`);\n }\n const startPos = groupContentsStartPos.get(gRNameOrNum);\n const groupContents = getGroupContents(pattern, startPos);\n if (\n hasNumberedBackref &&\n hasUnescaped(groupContents, r`${namedCaptureDelim}|\\((?!\\?)`, Context.DEFAULT)\n ) {\n throw new Error(\n // When used in `external` mode by transpilers other than Regex+, backrefs might have\n // gone through conversion from named to numbered, so avoid a misleading error\n `${mode === 'external' ? 'Backrefs' : 'Numbered backrefs'} cannot be used with recursion of capturing groups`\n );\n }\n const groupContentsLeft = pattern.slice(startPos, match.index);\n const groupContentsRight = groupContents.slice(groupContentsLeft.length + m.length);\n const numAddedHiddenCapturesPreExpansion = addedHiddenCaptures.length;\n const reps = +gRDepth - 1;\n const expansion = makeRecursive(\n groupContentsLeft,\n groupContentsRight,\n reps,\n true,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n );\n captureTransfers = mapCaptureTransfers(\n captureTransfers,\n groupContentsLeft,\n reps,\n addedHiddenCaptures.length - numAddedHiddenCapturesPreExpansion,\n numAddedHiddenCapturesPreExpansion,\n numCapturesPassed\n );\n const pre = pattern.slice(0, startPos);\n const post = pattern.slice(startPos + groupContents.length);\n // Modify the string we're looping over\n pattern = `${pre}${expansion}${post}`;\n // Step forward for the next loop iteration\n token.lastIndex += expansion.length - m.length - groupContentsLeft.length - groupContentsRight.length;\n openGroups.forEach(g => g.hasRecursedWithin = true);\n hasRecursed = true;\n } else if (captureName) {\n numCapturesPassed++;\n groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);\n groupContentsStartPos.set(captureName, token.lastIndex);\n openGroups.push({\n num: numCapturesPassed,\n name: captureName,\n });\n } else if (m[0] === '(') {\n const isUnnamedCapture = m === '(';\n if (isUnnamedCapture) {\n numCapturesPassed++;\n groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);\n }\n openGroups.push(isUnnamedCapture ? {num: numCapturesPassed} : {});\n } else if (m === ')') {\n openGroups.pop();\n }\n\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n\n hiddenCaptures.push(...addedHiddenCaptures);\n\n return {\n pattern,\n captureTransfers,\n hiddenCaptures,\n };\n}\n\n/**\n@param {string} max\n*/\nfunction assertMaxInBounds(max) {\n const errMsg = `Max depth must be integer between 2 and 100; used ${max}`;\n if (!/^[1-9]\\d*$/.test(max)) {\n throw new Error(errMsg);\n }\n max = +max;\n if (max < 2 || max > 100) {\n throw new Error(errMsg);\n }\n}\n\n/**\n@param {string} left\n@param {string} right\n@param {number} reps\n@param {boolean} isSubpattern\n@param {Array<number>} hiddenCaptures\n@param {Array<number>} addedHiddenCaptures\n@param {number} numCapturesPassed\n@returns {string}\n*/\nfunction makeRecursive(\n left,\n right,\n reps,\n isSubpattern,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n) {\n const namesInRecursed = new Set();\n // Can skip this work if not needed\n if (isSubpattern) {\n forEachUnescaped(left + right, namedCaptureDelim, ({groups: {captureName}}) => {\n namesInRecursed.add(captureName);\n }, Context.DEFAULT);\n }\n const rest = [\n reps,\n isSubpattern ? namesInRecursed : null,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed,\n ];\n // Depth 2: 'left(?:left(?:)right)right'\n // Depth 3: 'left(?:left(?:left(?:)right)right)right'\n // Empty group in the middle separates tokens and absorbs a following quantifier if present\n return `${left}${\n repeatWithDepth(`(?:${left}`, 'forward', ...rest)\n }(?:)${\n repeatWithDepth(`${right})`, 'backward', ...rest)\n }${right}`;\n}\n\n/**\n@param {string} pattern\n@param {'forward' | 'backward'} direction\n@param {number} reps\n@param {Set<string> | null} namesInRecursed\n@param {Array<number>} hiddenCaptures\n@param {Array<number>} addedHiddenCaptures\n@param {number} numCapturesPassed\n@returns {string}\n*/\nfunction repeatWithDepth(\n pattern,\n direction,\n reps,\n namesInRecursed,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n) {\n const startNum = 2;\n const getDepthNum = i => direction === 'forward' ? (i + startNum) : (reps - i + startNum - 1);\n let result = '';\n for (let i = 0; i < reps; i++) {\n const depthNum = getDepthNum(i);\n result += replaceUnescaped(\n pattern,\n r`${captureDelim}|\\\\k<(?<backref>[^>]+)>`,\n ({0: m, groups: {captureName, unnamed, backref}}) => {\n if (backref && namesInRecursed && !namesInRecursed.has(backref)) {\n // Don't alter backrefs to groups outside the recursed subpattern\n return m;\n }\n const suffix = `_$${depthNum}`;\n if (unnamed || captureName) {\n const addedCaptureNum = numCapturesPassed + addedHiddenCaptures.length + 1;\n addedHiddenCaptures.push(addedCaptureNum);\n incrementIfAtLeast(hiddenCaptures, addedCaptureNum);\n return unnamed ? m : `(?<${captureName}${suffix}>`;\n }\n return r`\\k<${backref}${suffix}>`;\n },\n Context.DEFAULT\n );\n }\n return result;\n}\n\n/**\nUpdates the array in place by incrementing each value greater than or equal to the threshold.\n@param {Array<number>} arr\n@param {number} threshold\n*/\nfunction incrementIfAtLeast(arr, threshold) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] >= threshold) {\n arr[i]++;\n }\n }\n}\n\n/**\n@param {Map<number, Array<number>>} captureTransfers\n@param {string} left\n@param {number} reps\n@param {number} numCapturesAddedInExpansion\n@param {number} numAddedHiddenCapturesPreExpansion\n@param {number} numCapturesPassed\n@returns {Map<number, Array<number>>}\n*/\nfunction mapCaptureTransfers(captureTransfers, left, reps, numCapturesAddedInExpansion, numAddedHiddenCapturesPreExpansion, numCapturesPassed) {\n if (captureTransfers.size && numCapturesAddedInExpansion) {\n let numCapturesInLeft = 0;\n forEachUnescaped(left, captureDelim, () => numCapturesInLeft++, Context.DEFAULT);\n // Is 0 for global recursion\n const recursionDelimCaptureNum = numCapturesPassed - numCapturesInLeft + numAddedHiddenCapturesPreExpansion;\n const newCaptureTransfers = new Map();\n captureTransfers.forEach((from, to) => {\n const numCapturesInRight = (numCapturesAddedInExpansion - (numCapturesInLeft * reps)) / reps;\n const numCapturesAddedInLeft = numCapturesInLeft * reps;\n const newTo = to > (recursionDelimCaptureNum + numCapturesInLeft) ? to + numCapturesAddedInExpansion : to;\n const newFrom = [];\n for (const f of from) {\n // Before the recursed subpattern\n if (f <= recursionDelimCaptureNum) {\n newFrom.push(f);\n // After the recursed subpattern\n } else if (f > (recursionDelimCaptureNum + numCapturesInLeft + numCapturesInRight)) {\n newFrom.push(f + numCapturesAddedInExpansion);\n // Within the recursed subpattern, on the left of the recursion token\n } else if (f <= (recursionDelimCaptureNum + numCapturesInLeft)) {\n for (let i = 0; i <= reps; i++) {\n newFrom.push(f + (numCapturesInLeft * i));\n }\n // Within the recursed subpattern, on the right of the recursion token\n } else {\n for (let i = 0; i <= reps; i++) {\n newFrom.push(f + numCapturesAddedInLeft + (numCapturesInRight * i));\n }\n }\n }\n newCaptureTransfers.set(newTo, newFrom);\n });\n return newCaptureTransfers;\n }\n return captureTransfers;\n}\n\nexport {\n recursion,\n};\n","// src/utils.js\nvar cp = String.fromCodePoint;\nvar r = String.raw;\nvar envFlags = {\n flagGroups: (() => {\n try {\n new RegExp(\"(?i:)\");\n } catch {\n return false;\n }\n return true;\n })(),\n unicodeSets: (() => {\n try {\n new RegExp(\"[[]]\", \"v\");\n } catch {\n return false;\n }\n return true;\n })()\n};\nenvFlags.bugFlagVLiteralHyphenIsRange = envFlags.unicodeSets ? (() => {\n try {\n new RegExp(r`[\\d\\-a]`, \"v\");\n } catch {\n return true;\n }\n return false;\n})() : false;\nenvFlags.bugNestedClassIgnoresNegation = envFlags.unicodeSets && new RegExp(\"[[^a]]\", \"v\").test(\"a\");\nfunction getNewCurrentFlags(current, { enable, disable }) {\n return {\n dotAll: !disable?.dotAll && !!(enable?.dotAll || current.dotAll),\n ignoreCase: !disable?.ignoreCase && !!(enable?.ignoreCase || current.ignoreCase)\n };\n}\nfunction getOrInsert(map, key, defaultValue) {\n if (!map.has(key)) {\n map.set(key, defaultValue);\n }\n return map.get(key);\n}\nfunction isMinTarget(target, min) {\n return EsVersion[target] >= EsVersion[min];\n}\nfunction throwIfNullish(value, msg) {\n if (value == null) {\n throw new Error(msg ?? \"Value expected\");\n }\n return value;\n}\n\n// src/options.js\nvar EsVersion = {\n ES2025: 2025,\n ES2024: 2024,\n ES2018: 2018\n};\nvar Target = (\n /** @type {const} */\n {\n auto: \"auto\",\n ES2025: \"ES2025\",\n ES2024: \"ES2024\",\n ES2018: \"ES2018\"\n }\n);\nfunction getOptions(options = {}) {\n if ({}.toString.call(options) !== \"[object Object]\") {\n throw new Error(\"Unexpected options\");\n }\n if (options.target !== void 0 && !Target[options.target]) {\n throw new Error(`Unexpected target \"${options.target}\"`);\n }\n const opts = {\n // Sets the level of emulation rigor/strictness.\n accuracy: \"default\",\n // Disables advanced emulation that relies on returning a `RegExp` subclass, resulting in\n // certain patterns not being emulatable.\n avoidSubclass: false,\n // Oniguruma flags; a string with `i`, `m`, `x`, `D`, `S`, `W`, `y{g}` in any order (all\n // optional). Oniguruma's `m` is equivalent to JavaScript's `s` (`dotAll`).\n flags: \"\",\n // Include JavaScript flag `g` (`global`) in the result.\n global: false,\n // Include JavaScript flag `d` (`hasIndices`) in the result.\n hasIndices: false,\n // Delay regex construction until first use if the transpiled pattern is at least this length.\n lazyCompileLength: Infinity,\n // JavaScript version used for generated regexes. Using `auto` detects the best value based on\n // your environment. Later targets allow faster processing, simpler generated source, and\n // support for additional features.\n target: \"auto\",\n // Disables minifications that simplify the pattern without changing the meaning.\n verbose: false,\n ...options,\n // Advanced options that override standard behavior, error checking, and flags when enabled.\n rules: {\n // Useful with TextMate grammars that merge backreferences across patterns.\n allowOrphanBackrefs: false,\n // Use ASCII `\\b` and `\\B`, which increases search performance of generated regexes.\n asciiWordBoundaries: false,\n // Allow unnamed captures and numbered calls (backreferences and subroutines) when using\n // named capture. This is Oniguruma option `ONIG_OPTION_CAPTURE_GROUP`; on by default in\n // `vscode-oniguruma`.\n captureGroup: false,\n // Change the recursion depth limit from Oniguruma's `20` to an integer `2`–`20`.\n recursionLimit: 20,\n // `^` as `\\A`; `$` as`\\Z`. Improves search performance of generated regexes without changing\n // the meaning if searching line by line. This is Oniguruma option `ONIG_OPTION_SINGLELINE`.\n singleline: false,\n ...options.rules\n }\n };\n if (opts.target === \"auto\") {\n opts.target = envFlags.flagGroups ? \"ES2025\" : envFlags.unicodeSets ? \"ES2024\" : \"ES2018\";\n }\n return opts;\n}\n\n// src/unicode.js\nimport { slug } from \"oniguruma-parser/parser\";\nvar asciiSpaceChar = \"[\t-\\r ]\";\nvar CharsWithoutIgnoreCaseExpansion = /* @__PURE__ */ new Set([\n cp(304),\n // İ\n cp(305)\n // ı\n]);\nvar defaultWordChar = r`[\\p{L}\\p{M}\\p{N}\\p{Pc}]`;\nfunction getIgnoreCaseMatchChars(char) {\n if (CharsWithoutIgnoreCaseExpansion.has(char)) {\n return [char];\n }\n const set = /* @__PURE__ */ new Set();\n const lower = char.toLowerCase();\n const upper = lower.toUpperCase();\n const title = LowerToTitleCaseMap.get(lower);\n const altLower = LowerToAlternativeLowerCaseMap.get(lower);\n const altUpper = LowerToAlternativeUpperCaseMap.get(lower);\n if ([...upper].length === 1) {\n set.add(upper);\n }\n altUpper && set.add(altUpper);\n title && set.add(title);\n set.add(lower);\n altLower && set.add(altLower);\n return [...set];\n}\nvar JsUnicodePropertyMap = /* @__PURE__ */ new Map(\n `C Other\nCc Control cntrl\nCf Format\nCn Unassigned\nCo Private_Use\nCs Surrogate\nL Letter\nLC Cased_Letter\nLl Lowercase_Letter\nLm Modifier_Letter\nLo Other_Letter\nLt Titlecase_Letter\nLu Uppercase_Letter\nM Mark Combining_Mark\nMc Spacing_Mark\nMe Enclosing_Mark\nMn Nonspacing_Mark\nN Number\nNd Decimal_Number digit\nNl Letter_Number\nNo Other_Number\nP Punctuation punct\nPc Connector_Punctuation\nPd Dash_Punctuation\nPe Close_Punctuation\nPf Final_Punctuation\nPi Initial_Punctuation\nPo Other_Punctuation\nPs Open_Punctuation\nS Symbol\nSc Currency_Symbol\nSk Modifier_Symbol\nSm Math_Symbol\nSo Other_Symbol\nZ Separator\nZl Line_Separator\nZp Paragraph_Separator\nZs Space_Separator\nASCII\nASCII_Hex_Digit AHex\nAlphabetic Alpha\nAny\nAssigned\nBidi_Control Bidi_C\nBidi_Mirrored Bidi_M\nCase_Ignorable CI\nCased\nChanges_When_Casefolded CWCF\nChanges_When_Casemapped CWCM\nChanges_When_Lowercased CWL\nChanges_When_NFKC_Casefolded CWKCF\nChanges_When_Titlecased CWT\nChanges_When_Uppercased CWU\nDash\nDefault_Ignorable_Code_Point DI\nDeprecated Dep\nDiacritic Dia\nEmoji\nEmoji_Component EComp\nEmoji_Modifier EMod\nEmoji_Modifier_Base EBase\nEmoji_Presentation EPres\nExtended_Pictographic ExtPict\nExtender Ext\nGrapheme_Base Gr_Base\nGrapheme_Extend Gr_Ext\nHex_Digit Hex\nIDS_Binary_Operator IDSB\nIDS_Trinary_Operator IDST\nID_Continue IDC\nID_Start IDS\nIdeographic Ideo\nJoin_Control Join_C\nLogical_Order_Exception LOE\nLowercase Lower\nMath\nNoncharacter_Code_Point NChar\nPattern_Syntax Pat_Syn\nPattern_White_Space Pat_WS\nQuotation_Mark QMark\nRadical\nRegional_Indicator RI\nSentence_Terminal STerm\nSoft_Dotted SD\nTerminal_Punctuation Term\nUnified_Ideograph UIdeo\nUppercase Upper\nVariation_Selector VS\nWhite_Space space\nXID_Continue XIDC\nXID_Start XIDS`.split(/\\s/).map((p) => [slug(p), p])\n);\nvar LowerToAlternativeLowerCaseMap = /* @__PURE__ */ new Map([\n [\"s\", cp(383)],\n // s, ſ\n [cp(383), \"s\"]\n // ſ, s\n]);\nvar LowerToAlternativeUpperCaseMap = /* @__PURE__ */ new Map([\n [cp(223), cp(7838)],\n // ß, ẞ\n [cp(107), cp(8490)],\n // k, K (Kelvin)\n [cp(229), cp(8491)],\n // å, Å (Angstrom)\n [cp(969), cp(8486)]\n // ω, Ω (Ohm)\n]);\nvar LowerToTitleCaseMap = new Map([\n titleEntry(453),\n titleEntry(456),\n titleEntry(459),\n titleEntry(498),\n ...titleRange(8072, 8079),\n ...titleRange(8088, 8095),\n ...titleRange(8104, 8111),\n titleEntry(8124),\n titleEntry(8140),\n titleEntry(8188)\n]);\nvar PosixClassMap = /* @__PURE__ */ new Map([\n [\"alnum\", r`[\\p{Alpha}\\p{Nd}]`],\n [\"alpha\", r`\\p{Alpha}`],\n [\"ascii\", r`\\p{ASCII}`],\n [\"blank\", r`[\\p{Zs}\\t]`],\n [\"cntrl\", r`\\p{Cc}`],\n [\"digit\", r`\\p{Nd}`],\n [\"graph\", r`[\\P{space}&&\\P{Cc}&&\\P{Cn}&&\\P{Cs}]`],\n [\"lower\", r`\\p{Lower}`],\n [\"print\", r`[[\\P{space}&&\\P{Cc}&&\\P{Cn}&&\\P{Cs}]\\p{Zs}]`],\n [\"punct\", r`[\\p{P}\\p{S}]`],\n // Updated value from Onig 6.9.9; changed from Unicode `\\p{punct}`\n [\"space\", r`\\p{space}`],\n [\"upper\", r`\\p{Upper}`],\n [\"word\", r`[\\p{Alpha}\\p{M}\\p{Nd}\\p{Pc}]`],\n [\"xdigit\", r`\\p{AHex}`]\n]);\nfunction range(start, end) {\n const range2 = [];\n for (let i = start; i <= end; i++) {\n range2.push(i);\n }\n return range2;\n}\nfunction titleEntry(codePoint) {\n const char = cp(codePoint);\n return [char.toLowerCase(), char];\n}\nfunction titleRange(start, end) {\n return range(start, end).map((codePoint) => titleEntry(codePoint));\n}\nvar UnicodePropertiesWithSpecificCase = /* @__PURE__ */ new Set([\n \"Lower\",\n \"Lowercase\",\n \"Upper\",\n \"Uppercase\",\n \"Ll\",\n \"Lowercase_Letter\",\n \"Lt\",\n \"Titlecase_Letter\",\n \"Lu\",\n \"Uppercase_Letter\"\n // The `Changes_When_*` properties (and their aliases) could be included, but they're very rare.\n // Some other properties include a handful of chars with specific cases only, but these chars are\n // generally extreme edge cases and using such properties case insensitively generally produces\n // undesired behavior anyway\n]);\n\n// src/transform.js\nimport { createAlternative, createAssertion, createBackreference, createCapturingGroup, createCharacter, createCharacterClass, createCharacterSet, createGroup, createLookaroundAssertion, createQuantifier, createSubroutine, createUnicodeProperty, hasOnlyChild, parse, slug as slug2 } from \"oniguruma-parser/parser\";\nimport { traverse } from \"oniguruma-parser/traverser\";\nfunction transform(ast, options) {\n const opts = {\n // A couple edge cases exist where options `accuracy` and `bestEffortTarget` are used:\n // - `CharacterSet` kind `text_segment` (`\\X`): An exact representation would require heavy\n // Unicode data; a best-effort approximation requires knowing the target.\n // - `CharacterSet` kind `posix` with values `graph` and `print`: Their complex Unicode\n // representations would be hard to change to ASCII versions after the fact in the generator\n // based on `target`/`accuracy`, so produce the appropriate structure here.\n accuracy: \"default\",\n asciiWordBoundaries: false,\n avoidSubclass: false,\n bestEffortTarget: \"ES2025\",\n ...options\n };\n addParentProperties(ast);\n const firstPassState = {\n accuracy: opts.accuracy,\n asciiWordBoundaries: opts.asciiWordBoundaries,\n avoidSubclass: opts.avoidSubclass,\n flagDirectivesByAlt: /* @__PURE__ */ new Map(),\n jsGroupNameMap: /* @__PURE__ */ new Map(),\n minTargetEs2024: isMinTarget(opts.bestEffortTarget, \"ES2024\"),\n passedLookbehind: false,\n strategy: null,\n // Subroutines can appear before the groups they ref, so collect reffed nodes for a second pass \n subroutineRefMap: /* @__PURE__ */ new Map(),\n supportedGNodes: /* @__PURE__ */ new Set(),\n digitIsAscii: ast.flags.digitIsAscii,\n spaceIsAscii: ast.flags.spaceIsAscii,\n wordIsAscii: ast.flags.wordIsAscii\n };\n traverse(ast, FirstPassVisitor, firstPassState);\n const globalFlags = {\n dotAll: ast.flags.dotAll,\n ignoreCase: ast.flags.ignoreCase\n };\n const secondPassState = {\n currentFlags: globalFlags,\n prevFlags: null,\n globalFlags,\n groupOriginByCopy: /* @__PURE__ */ new Map(),\n groupsByName: /* @__PURE__ */ new Map(),\n multiplexCapturesToLeftByRef: /* @__PURE__ */ new Map(),\n openRefs: /* @__PURE__ */ new Map(),\n reffedNodesByReferencer: /* @__PURE__ */ new Map(),\n subroutineRefMap: firstPassState.subroutineRefMap\n };\n traverse(ast, SecondPassVisitor, secondPassState);\n const thirdPassState = {\n groupsByName: secondPassState.groupsByName,\n highestOrphanBackref: 0,\n numCapturesToLeft: 0,\n reffedNodesByReferencer: secondPassState.reffedNodesByReferencer\n };\n traverse(ast, ThirdPassVisitor, thirdPassState);\n ast._originMap = secondPassState.groupOriginByCopy;\n ast._strategy = firstPassState.strategy;\n return ast;\n}\nvar FirstPassVisitor = {\n AbsenceFunction({ node, parent, replaceWith }) {\n const { body, kind } = node;\n if (kind === \"repeater\") {\n const innerGroup = createGroup();\n innerGroup.body[0].body.push(\n // Insert own alts as `body`\n createLookaroundAssertion({ negate: true, body }),\n createUnicodeProperty(\"Any\")\n );\n const outerGroup = createGroup();\n outerGroup.body[0].body.push(\n createQuantifier(\"greedy\", 0, Infinity, innerGroup)\n );\n replaceWith(setParentDeep(outerGroup, parent), { traverse: true });\n } else {\n throw new Error(`Unsupported absence function \"(?~|\"`);\n }\n },\n Alternative: {\n enter({ node, parent, key }, { flagDirectivesByAlt }) {\n const flagDirectives = node.body.filter((el) => el.kind === \"flags\");\n for (let i = key + 1; i < parent.body.length; i++) {\n const forwardSiblingAlt = parent.body[i];\n getOrInsert(flagDirectivesByAlt, forwardSiblingAlt, []).push(...flagDirectives);\n }\n },\n exit({ node }, { flagDirectivesByAlt }) {\n if (flagDirectivesByAlt.get(node)?.length) {\n const flags = getCombinedFlagModsFromFlagNodes(flagDirectivesByAlt.get(node));\n if (flags) {\n const flagGroup = createGroup({ flags });\n flagGroup.body[0].body = node.body;\n node.body = [setParentDeep(flagGroup, node)];\n }\n }\n }\n },\n Assertion({ node, parent, key, container, root, remove, replaceWith }, state) {\n const { kind, negate } = node;\n const { asciiWordBoundaries, avoidSubclass, supportedGNodes, wordIsAscii } = state;\n if (kind === \"text_segment_boundary\") {\n throw new Error(`Unsupported text segment boundary \"\\\\${negate ? \"Y\" : \"y\"}\"`);\n } else if (kind === \"line_end\") {\n replaceWith(setParentDeep(createLookaroundAssertion({ body: [\n createAlternative({ body: [createAssertion(\"string_end\")] }),\n createAlternative({ body: [createCharacter(10)] })\n // `\\n`\n ] }), parent));\n } else if (kind === \"line_start\") {\n replaceWith(setParentDeep(parseFragment(r`(?<=\\A|\\n(?!\\z))`, { skipLookbehindValidation: true }), parent));\n } else if (kind === \"search_start\") {\n if (supportedGNodes.has(node)) {\n root.flags.sticky = true;\n remove();\n } else {\n const prev = container[key - 1];\n if (prev && isAlwaysNonZeroLength(prev)) {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else if (avoidSubclass) {\n throw new Error(r`Uses \"\\G\" in a way that requires a subclass`);\n } else {\n replaceWith(setParent(createAssertion(\"string_start\"), parent));\n state.strategy = \"clip_search\";\n }\n }\n } else if (kind === \"string_end\" || kind === \"string_start\") {\n } else if (kind === \"string_end_newline\") {\n replaceWith(setParentDeep(parseFragment(r`(?=\\n?\\z)`), parent));\n } else if (kind === \"word_boundary\") {\n if (!wordIsAscii && !asciiWordBoundaries) {\n const b = `(?:(?<=${defaultWordChar})(?!${defaultWordChar})|(?<!${defaultWordChar})(?=${defaultWordChar}))`;\n const B = `(?:(?<=${defaultWordChar})(?=${defaultWordChar})|(?<!${defaultWordChar})(?!${defaultWordChar}))`;\n replaceWith(setParentDeep(parseFragment(negate ? B : b), parent));\n }\n } else {\n throw new Error(`Unexpected assertion kind \"${kind}\"`);\n }\n },\n Backreference({ node }, { jsGroupNameMap }) {\n let { ref } = node;\n if (typeof ref === \"string\" && !isValidJsGroupName(ref)) {\n ref = getAndStoreJsGroupName(ref, jsGroupNameMap);\n node.ref = ref;\n }\n },\n CapturingGroup({ node }, { jsGroupNameMap, subroutineRefMap }) {\n let { name } = node;\n if (name && !isValidJsGroupName(name)) {\n name = getAndStoreJsGroupName(name, jsGroupNameMap);\n node.name = name;\n }\n subroutineRefMap.set(node.number, node);\n if (name) {\n subroutineRefMap.set(name, node);\n }\n },\n CharacterClassRange({ node, parent, replaceWith }) {\n if (parent.kind === \"intersection\") {\n const cc = createCharacterClass({ body: [node] });\n replaceWith(setParentDeep(cc, parent), { traverse: true });\n }\n },\n CharacterSet({ node, parent, replaceWith }, { accuracy, minTargetEs2024, digitIsAscii, spaceIsAscii, wordIsAscii }) {\n const { kind, negate, value } = node;\n if (digitIsAscii && (kind === \"digit\" || value === \"digit\")) {\n replaceWith(setParent(createCharacterSet(\"digit\", { negate }), parent));\n return;\n }\n if (spaceIsAscii && (kind === \"space\" || value === \"space\")) {\n replaceWith(setParentDeep(setNegate(parseFragment(asciiSpaceChar), negate), parent));\n return;\n }\n if (wordIsAscii && (kind === \"word\" || value === \"word\")) {\n replaceWith(setParent(createCharacterSet(\"word\", { negate }), parent));\n return;\n }\n if (kind === \"any\") {\n replaceWith(setParent(createUnicodeProperty(\"Any\"), parent));\n } else if (kind === \"digit\") {\n replaceWith(setParent(createUnicodeProperty(\"Nd\", { negate }), parent));\n } else if (kind === \"dot\") {\n } else if (kind === \"text_segment\") {\n if (accuracy === \"strict\") {\n throw new Error(r`Use of \"\\X\" requires non-strict accuracy`);\n }\n const eBase = \"\\\\p{Emoji}(?:\\\\p{EMod}|\\\\uFE0F\\\\u20E3?|[\\\\x{E0020}-\\\\x{E007E}]+\\\\x{E007F})?\";\n const emoji = r`\\p{RI}{2}|${eBase}(?:\\u200D${eBase})*`;\n replaceWith(setParentDeep(parseFragment(\n // Close approximation of an extended grapheme cluster; see <unicode.org/reports/tr29/>\n r`(?>\\r\\n|${minTargetEs2024 ? r`\\p{RGI_Emoji}` : emoji}|\\P{M}\\p{M}*)`,\n // Allow JS property `RGI_Emoji` through\n { skipPropertyNameValidation: true }\n ), parent));\n } else if (kind === \"hex\") {\n replaceWith(setParent(createUnicodeProperty(\"AHex\", { negate }), parent));\n } else if (kind === \"newline\") {\n replaceWith(setParentDeep(parseFragment(negate ? \"[^\\n]\" : \"(?>\\r\\n?|[\\n\\v\\f\\x85\\u2028\\u2029])\"), parent));\n } else if (kind === \"posix\") {\n if (!minTargetEs2024 && (value === \"graph\" || value === \"print\")) {\n if (accuracy === \"strict\") {\n throw new Error(`POSIX class \"${value}\" requires min target ES2024 or non-strict accuracy`);\n }\n let ascii = {\n graph: \"!-~\",\n print: \" -~\"\n }[value];\n if (negate) {\n ascii = `\\0-${cp(ascii.codePointAt(0) - 1)}${cp(ascii.codePointAt(2) + 1)}-\\u{10FFFF}`;\n }\n replaceWith(setParentDeep(parseFragment(`[${ascii}]`), parent));\n } else {\n replaceWith(setParentDeep(setNegate(parseFragment(PosixClassMap.get(value)), negate), parent));\n }\n } else if (kind === \"property\") {\n if (!JsUnicodePropertyMap.has(slug2(value))) {\n node.key = \"sc\";\n }\n } else if (kind === \"space\") {\n replaceWith(setParent(createUnicodeProperty(\"space\", { negate }), parent));\n } else if (kind === \"word\") {\n replaceWith(setParentDeep(setNegate(parseFragment(defaultWordChar), negate), parent));\n } else {\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n }\n },\n Directive({ node, parent, root, remove, replaceWith, removeAllPrevSiblings, removeAllNextSiblings }) {\n const { kind, flags } = node;\n if (kind === \"flags\") {\n if (!flags.enable && !flags.disable) {\n remove();\n } else {\n const flagGroup = createGroup({ flags });\n flagGroup.body[0].body = removeAllNextSiblings();\n replaceWith(setParentDeep(flagGroup, parent), { traverse: true });\n }\n } else if (kind === \"keep\") {\n const firstAlt = root.body[0];\n const hasWrapperGroup = root.body.length === 1 && // Not emulatable if within a `CapturingGroup`\n hasOnlyChild(firstAlt, { type: \"Group\" }) && firstAlt.body[0].body.length === 1;\n const topLevel = hasWrapperGroup ? firstAlt.body[0] : root;\n if (parent.parent !== topLevel || topLevel.body.length > 1) {\n throw new Error(r`Uses \"\\K\" in a way that's unsupported`);\n }\n const lookbehind = createLookaroundAssertion({ behind: true });\n lookbehind.body[0].body = removeAllPrevSiblings();\n replaceWith(setParentDeep(lookbehind, parent));\n } else {\n throw new Error(`Unexpected directive kind \"${kind}\"`);\n }\n },\n Flags({ node, parent }) {\n if (node.posixIsAscii) {\n throw new Error('Unsupported flag \"P\"');\n }\n if (node.textSegmentMode === \"word\") {\n throw new Error('Unsupported flag \"y{w}\"');\n }\n [\n \"digitIsAscii\",\n // Flag D\n \"extended\",\n // Flag x\n \"posixIsAscii\",\n // Flag P\n \"spaceIsAscii\",\n // Flag S\n \"wordIsAscii\",\n // Flag W\n \"textSegmentMode\"\n // Flag y{g} or y{w}\n ].forEach((f) => delete node[f]);\n Object.assign(node, {\n // JS flag g; no Onig equiv\n global: false,\n // JS flag d; no Onig equiv\n hasIndices: false,\n // JS flag m; no Onig equiv but its behavior is always on in Onig. Onig's only line break\n // char is line feed, unlike JS, so this flag isn't used since it would produce inaccurate\n // results (also allows `^` and `$` to be used in the generator for string start and end)\n multiline: false,\n // JS flag y; no Onig equiv, but used for `\\G` emulation\n sticky: node.sticky ?? false\n // Note: Regex+ doesn't allow explicitly adding flags it handles implicitly, so leave out\n // properties `unicode` (JS flag u) and `unicodeSets` (JS flag v). Keep the existing values\n // for `ignoreCase` (flag i) and `dotAll` (JS flag s, but Onig flag m)\n });\n parent.options = {\n disable: {\n // Onig uses different rules for flag x than Regex+, so disable the implicit flag\n x: true,\n // Onig has no flag to control \"named capture only\" mode but contextually applies its\n // behavior when named capturing is used, so disable Regex+'s implicit flag for it\n n: true\n },\n force: {\n // Always add flag v because we're generating an AST that relies on it (it enables JS\n // support for Onig features nested classes, intersection, Unicode properties, etc.).\n // However, the generator might disable flag v based on its `target` option\n v: true\n }\n };\n },\n Group({ node }) {\n if (!node.flags) {\n return;\n }\n const { enable, disable } = node.flags;\n enable?.extended && delete enable.extended;\n disable?.extended && delete disable.extended;\n enable?.dotAll && disable?.dotAll && delete enable.dotAll;\n enable?.ignoreCase && disable?.ignoreCase && delete enable.ignoreCase;\n enable && !Object.keys(enable).length && delete node.flags.enable;\n disable && !Object.keys(disable).length && delete node.flags.disable;\n !node.flags.enable && !node.flags.disable && delete node.flags;\n },\n LookaroundAssertion({ node }, state) {\n const { kind } = node;\n if (kind === \"lookbehind\") {\n state.passedLookbehind = true;\n }\n },\n NamedCallout({ node, parent, replaceWith }) {\n const { kind } = node;\n if (kind === \"fail\") {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else {\n throw new Error(`Unsupported named callout \"(*${kind.toUpperCase()}\"`);\n }\n },\n Quantifier({ node }) {\n if (node.body.type === \"Quantifier\") {\n const group = createGroup();\n group.body[0].body.push(node.body);\n node.body = setParentDeep(group, node);\n }\n },\n Regex: {\n enter({ node }, { supportedGNodes }) {\n const leadingGs = [];\n let hasAltWithLeadG = false;\n let hasAltWithoutLeadG = false;\n for (const alt of node.body) {\n if (alt.body.length === 1 && alt.body[0].kind === \"search_start\") {\n alt.body.pop();\n } else {\n const leadingG = getLeadingG(alt.body);\n if (leadingG) {\n hasAltWithLeadG = true;\n Array.isArray(leadingG) ? leadingGs.push(...leadingG) : leadingGs.push(leadingG);\n } else {\n hasAltWithoutLeadG = true;\n }\n }\n }\n if (hasAltWithLeadG && !hasAltWithoutLeadG) {\n leadingGs.forEach((g) => supportedGNodes.add(g));\n }\n },\n exit(_, { accuracy, passedLookbehind, strategy }) {\n if (accuracy === \"strict\" && passedLookbehind && strategy) {\n throw new Error(r`Uses \"\\G\" in a way that requires non-strict accuracy`);\n }\n }\n },\n Subroutine({ node }, { jsGroupNameMap }) {\n let { ref } = node;\n if (typeof ref === \"string\" && !isValidJsGroupName(ref)) {\n ref = getAndStoreJsGroupName(ref, jsGroupNameMap);\n node.ref = ref;\n }\n }\n};\nvar SecondPassVisitor = {\n Backreference({ node }, { multiplexCapturesToLeftByRef, reffedNodesByReferencer }) {\n const { orphan, ref } = node;\n if (!orphan) {\n reffedNodesByReferencer.set(node, [...multiplexCapturesToLeftByRef.get(ref).map(({ node: node2 }) => node2)]);\n }\n },\n CapturingGroup: {\n enter({\n node,\n parent,\n replaceWith,\n skip\n }, {\n groupOriginByCopy,\n groupsByName,\n multiplexCapturesToLeftByRef,\n openRefs,\n reffedNodesByReferencer\n }) {\n const origin = groupOriginByCopy.get(node);\n if (origin && openRefs.has(node.number)) {\n const recursion2 = setParent(createRecursion(node.number), parent);\n reffedNodesByReferencer.set(recursion2, openRefs.get(node.number));\n replaceWith(recursion2);\n return;\n }\n openRefs.set(node.number, node);\n multiplexCapturesToLeftByRef.set(node.number, []);\n if (node.name) {\n getOrInsert(multiplexCapturesToLeftByRef, node.name, []);\n }\n const multiplexNodes = multiplexCapturesToLeftByRef.get(node.name ?? node.number);\n for (let i = 0; i < multiplexNodes.length; i++) {\n const multiplex = multiplexNodes[i];\n if (\n // This group is from subroutine expansion, and there's a multiplex value from either the\n // origin node or a prior subroutine expansion group with the same origin\n origin === multiplex.node || origin && origin === multiplex.origin || // This group is not from subroutine expansion, and it comes after a subroutine expansion\n // group that refers to this group\n node === multiplex.origin\n ) {\n multiplexNodes.splice(i, 1);\n break;\n }\n }\n multiplexCapturesToLeftByRef.get(node.number).push({ node, origin });\n if (node.name) {\n multiplexCapturesToLeftByRef.get(node.name).push({ node, origin });\n }\n if (node.name) {\n const groupsWithSameName = getOrInsert(groupsByName, node.name, /* @__PURE__ */ new Map());\n let hasDuplicateNameToRemove = false;\n if (origin) {\n hasDuplicateNameToRemove = true;\n } else {\n for (const groupInfo of groupsWithSameName.values()) {\n if (!groupInfo.hasDuplicateNameToRemove) {\n hasDuplicateNameToRemove = true;\n break;\n }\n }\n }\n groupsByName.get(node.name).set(node, { node, hasDuplicateNameToRemove });\n }\n },\n exit({ node }, { openRefs }) {\n openRefs.delete(node.number);\n }\n },\n Group: {\n enter({ node }, state) {\n state.prevFlags = state.currentFlags;\n if (node.flags) {\n state.currentFlags = getNewCurrentFlags(state.currentFlags, node.flags);\n }\n },\n exit(_, state) {\n state.currentFlags = state.prevFlags;\n }\n },\n Subroutine({ node, parent, replaceWith }, state) {\n const { isRecursive, ref } = node;\n if (isRecursive) {\n let reffed = parent;\n while (reffed = reffed.parent) {\n if (reffed.type === \"CapturingGroup\" && (reffed.name === ref || reffed.number === ref)) {\n break;\n }\n }\n state.reffedNodesByReferencer.set(node, reffed);\n return;\n }\n const reffedGroupNode = state.subroutineRefMap.get(ref);\n const isGlobalRecursion = ref === 0;\n const expandedSubroutine = isGlobalRecursion ? createRecursion(0) : (\n // The reffed group might itself contain subroutines, which are expanded during sub-traversal\n cloneCapturingGroup(reffedGroupNode, state.groupOriginByCopy, null)\n );\n let replacement = expandedSubroutine;\n if (!isGlobalRecursion) {\n const reffedGroupFlagMods = getCombinedFlagModsFromFlagNodes(getAllParents(\n reffedGroupNode,\n (p) => p.type === \"Group\" && !!p.flags\n ));\n const reffedGroupFlags = reffedGroupFlagMods ? getNewCurrentFlags(state.globalFlags, reffedGroupFlagMods) : state.globalFlags;\n if (!areFlagsEqual(reffedGroupFlags, state.currentFlags)) {\n replacement = createGroup({\n flags: getFlagModsFromFlags(reffedGroupFlags)\n });\n replacement.body[0].body.push(expandedSubroutine);\n }\n }\n replaceWith(setParentDeep(replacement, parent), { traverse: !isGlobalRecursion });\n }\n};\nvar ThirdPassVisitor = {\n Backreference({ node, parent, replaceWith }, state) {\n if (node.orphan) {\n state.highestOrphanBackref = Math.max(state.highestOrphanBackref, node.ref);\n return;\n }\n const reffedNodes = state.reffedNodesByReferencer.get(node);\n const participants = reffedNodes.filter((reffed) => canParticipateWithNode(reffed, node));\n if (!participants.length) {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else if (participants.length > 1) {\n const group = createGroup({\n atomic: true,\n body: participants.reverse().map((reffed) => createAlternative({\n body: [createBackreference(reffed.number)]\n }))\n });\n replaceWith(setParentDeep(group, parent));\n } else {\n node.ref = participants[0].number;\n }\n },\n CapturingGroup({ node }, state) {\n node.number = ++state.numCapturesToLeft;\n if (node.name) {\n if (state.groupsByName.get(node.name).get(node).hasDuplicateNameToRemove) {\n delete node.name;\n }\n }\n },\n Regex: {\n exit({ node }, state) {\n const numCapsNeeded = Math.max(state.highestOrphanBackref - state.numCapturesToLeft, 0);\n for (let i = 0; i < numCapsNeeded; i++) {\n const emptyCapture = createCapturingGroup();\n node.body.at(-1).body.push(emptyCapture);\n }\n }\n },\n Subroutine({ node }, state) {\n if (!node.isRecursive || node.ref === 0) {\n return;\n }\n node.ref = state.reffedNodesByReferencer.get(node).number;\n }\n};\nfunction addParentProperties(root) {\n traverse(root, {\n \"*\"({ node, parent }) {\n node.parent = parent;\n }\n });\n}\nfunction areFlagsEqual(a, b) {\n return a.dotAll === b.dotAll && a.ignoreCase === b.ignoreCase;\n}\nfunction canParticipateWithNode(capture, node) {\n let rightmostPoint = node;\n do {\n if (rightmostPoint.type === \"Regex\") {\n return false;\n }\n if (rightmostPoint.type === \"Alternative\") {\n continue;\n }\n if (rightmostPoint === capture) {\n return false;\n }\n const kidsOfParent = getKids(rightmostPoint.parent);\n for (const kid of kidsOfParent) {\n if (kid === rightmostPoint) {\n break;\n }\n if (kid === capture || isAncestorOf(kid, capture)) {\n return true;\n }\n }\n } while (rightmostPoint = rightmostPoint.parent);\n throw new Error(\"Unexpected path\");\n}\nfunction cloneCapturingGroup(obj, originMap, up, up2) {\n const store = Array.isArray(obj) ? [] : {};\n for (const [key, value] of Object.entries(obj)) {\n if (key === \"parent\") {\n store.parent = Array.isArray(up) ? up2 : up;\n } else if (value && typeof value === \"object\") {\n store[key] = cloneCapturingGroup(value, originMap, store, up);\n } else {\n if (key === \"type\" && value === \"CapturingGroup\") {\n originMap.set(store, originMap.get(obj) ?? obj);\n }\n store[key] = value;\n }\n }\n return store;\n}\nfunction createRecursion(ref) {\n const node = createSubroutine(ref);\n node.isRecursive = true;\n return node;\n}\nfunction getAllParents(node, filterFn) {\n const results = [];\n while (node = node.parent) {\n if (!filterFn || filterFn(node)) {\n results.push(node);\n }\n }\n return results;\n}\nfunction getAndStoreJsGroupName(name, map) {\n if (map.has(name)) {\n return map.get(name);\n }\n const jsName = `$${map.size}_${name.replace(/^[^$_\\p{IDS}]|[^$\\u200C\\u200D\\p{IDC}]/ug, \"_\")}`;\n map.set(name, jsName);\n return jsName;\n}\nfunction getCombinedFlagModsFromFlagNodes(flagNodes) {\n const flagProps = [\"dotAll\", \"ignoreCase\"];\n const combinedFlags = { enable: {}, disable: {} };\n flagNodes.forEach(({ flags }) => {\n flagProps.forEach((prop) => {\n if (flags.enable?.[prop]) {\n delete combinedFlags.disable[prop];\n combinedFlags.enable[prop] = true;\n }\n if (flags.disable?.[prop]) {\n combinedFlags.disable[prop] = true;\n }\n });\n });\n if (!Object.keys(combinedFlags.enable).length) {\n delete combinedFlags.enable;\n }\n if (!Object.keys(combinedFlags.disable).length) {\n delete combinedFlags.disable;\n }\n if (combinedFlags.enable || combinedFlags.disable) {\n return combinedFlags;\n }\n return null;\n}\nfunction getFlagModsFromFlags({ dotAll, ignoreCase }) {\n const mods = {};\n if (dotAll || ignoreCase) {\n mods.enable = {};\n dotAll && (mods.enable.dotAll = true);\n ignoreCase && (mods.enable.ignoreCase = true);\n }\n if (!dotAll || !ignoreCase) {\n mods.disable = {};\n !dotAll && (mods.disable.dotAll = true);\n !ignoreCase && (mods.disable.ignoreCase = true);\n }\n return mods;\n}\nfunction getKids(node) {\n if (!node) {\n throw new Error(\"Node expected\");\n }\n const { body } = node;\n return Array.isArray(body) ? body : body ? [body] : null;\n}\nfunction getLeadingG(els) {\n const firstToConsider = els.find((el) => el.kind === \"search_start\" || isLoneGLookaround(el, { negate: false }) || !isAlwaysZeroLength(el));\n if (!firstToConsider) {\n return null;\n }\n if (firstToConsider.kind === \"search_start\") {\n return firstToConsider;\n }\n if (firstToConsider.type === \"LookaroundAssertion\") {\n return firstToConsider.body[0].body[0];\n }\n if (firstToConsider.type === \"CapturingGroup\" || firstToConsider.type === \"Group\") {\n const gNodesForGroup = [];\n for (const alt of firstToConsider.body) {\n const leadingG = getLeadingG(alt.body);\n if (!leadingG) {\n return null;\n }\n Array.isArray(leadingG) ? gNodesForGroup.push(...leadingG) : gNodesForGroup.push(leadingG);\n }\n return gNodesForGroup;\n }\n return null;\n}\nfunction isAncestorOf(node, descendant) {\n const kids = getKids(node) ?? [];\n for (const kid of kids) {\n if (kid === descendant || isAncestorOf(kid, descendant)) {\n return true;\n }\n }\n return false;\n}\nfunction isAlwaysZeroLength({ type }) {\n return type === \"Assertion\" || type === \"Directive\" || type === \"LookaroundAssertion\";\n}\nfunction isAlwaysNonZeroLength(node) {\n const types = [\n \"Character\",\n \"CharacterClass\",\n \"CharacterSet\"\n ];\n return types.includes(node.type) || node.type === \"Quantifier\" && node.min && types.includes(node.body.type);\n}\nfunction isLoneGLookaround(node, options) {\n const opts = {\n negate: null,\n ...options\n };\n return node.type === \"LookaroundAssertion\" && (opts.negate === null || node.negate === opts.negate) && node.body.length === 1 && hasOnlyChild(node.body[0], {\n type: \"Assertion\",\n kind: \"search_start\"\n });\n}\nfunction isValidJsGroupName(name) {\n return /^[$_\\p{IDS}][$\\u200C\\u200D\\p{IDC}]*$/u.test(name);\n}\nfunction parseFragment(pattern, options) {\n const ast = parse(pattern, {\n ...options,\n // Providing a custom set of Unicode property names avoids converting some JS Unicode\n // properties (ex: `\\p{Alpha}`) to Onig POSIX classes\n unicodePropertyMap: JsUnicodePropertyMap\n });\n const alts = ast.body;\n if (alts.length > 1 || alts[0].body.length > 1) {\n return createGroup({ body: alts });\n }\n return alts[0].body[0];\n}\nfunction setNegate(node, negate) {\n node.negate = negate;\n return node;\n}\nfunction setParent(node, parent) {\n node.parent = parent;\n return node;\n}\nfunction setParentDeep(node, parent) {\n addParentProperties(node);\n node.parent = parent;\n return node;\n}\n\n// src/generate.js\nimport { createAlternative as createAlternative2, createCharacter as createCharacter2, createGroup as createGroup2 } from \"oniguruma-parser/parser\";\nimport { traverse as traverse2 } from \"oniguruma-parser/traverser\";\nfunction generate(ast, options) {\n const opts = getOptions(options);\n const minTargetEs2024 = isMinTarget(opts.target, \"ES2024\");\n const minTargetEs2025 = isMinTarget(opts.target, \"ES2025\");\n const recursionLimit = opts.rules.recursionLimit;\n if (!Number.isInteger(recursionLimit) || recursionLimit < 2 || recursionLimit > 20) {\n throw new Error(\"Invalid recursionLimit; use 2-20\");\n }\n let hasCaseInsensitiveNode = null;\n let hasCaseSensitiveNode = null;\n if (!minTargetEs2025) {\n const iStack = [ast.flags.ignoreCase];\n traverse2(ast, FlagModifierVisitor, {\n getCurrentModI: () => iStack.at(-1),\n popModI() {\n iStack.pop();\n },\n pushModI(isIOn) {\n iStack.push(isIOn);\n },\n setHasCasedChar() {\n if (iStack.at(-1)) {\n hasCaseInsensitiveNode = true;\n } else {\n hasCaseSensitiveNode = true;\n }\n }\n });\n }\n const appliedGlobalFlags = {\n dotAll: ast.flags.dotAll,\n // - Turn global flag i on if a case insensitive node was used and no case sensitive nodes were\n // used (to avoid unnecessary node expansion).\n // - Turn global flag i off if a case sensitive node was used (since case sensitivity can't be\n // forced without the use of ES2025 flag groups)\n ignoreCase: !!((ast.flags.ignoreCase || hasCaseInsensitiveNode) && !hasCaseSensitiveNode)\n };\n let lastNode = ast;\n const state = {\n accuracy: opts.accuracy,\n appliedGlobalFlags,\n captureMap: /* @__PURE__ */ new Map(),\n currentFlags: {\n dotAll: ast.flags.dotAll,\n ignoreCase: ast.flags.ignoreCase\n },\n inCharClass: false,\n lastNode,\n originMap: ast._originMap,\n recursionLimit,\n useAppliedIgnoreCase: !!(!minTargetEs2025 && hasCaseInsensitiveNode && hasCaseSensitiveNode),\n useFlagMods: minTargetEs2025,\n useFlagV: minTargetEs2024,\n verbose: opts.verbose\n };\n function gen(node) {\n state.lastNode = lastNode;\n lastNode = node;\n const fn = throwIfNullish(generator[node.type], `Unexpected node type \"${node.type}\"`);\n return fn(node, state, gen);\n }\n const result = {\n pattern: ast.body.map(gen).join(\"|\"),\n // Could reset `lastNode` at this point via `lastNode = ast`, but it isn't needed by flags\n flags: gen(ast.flags),\n options: { ...ast.options }\n };\n if (!minTargetEs2024) {\n delete result.options.force.v;\n result.options.disable.v = true;\n result.options.unicodeSetsPlugin = null;\n }\n result._captureTransfers = /* @__PURE__ */ new Map();\n result._hiddenCaptures = [];\n state.captureMap.forEach((value, key) => {\n if (value.hidden) {\n result._hiddenCaptures.push(key);\n }\n if (value.transferTo) {\n getOrInsert(result._captureTransfers, value.transferTo, []).push(key);\n }\n });\n return result;\n}\nvar FlagModifierVisitor = {\n \"*\": {\n enter({ node }, state) {\n if (isAnyGroup(node)) {\n const currentModI = state.getCurrentModI();\n state.pushModI(\n node.flags ? getNewCurrentFlags({ ignoreCase: currentModI }, node.flags).ignoreCase : currentModI\n );\n }\n },\n exit({ node }, state) {\n if (isAnyGroup(node)) {\n state.popModI();\n }\n }\n },\n Backreference(_, state) {\n state.setHasCasedChar();\n },\n Character({ node }, state) {\n if (charHasCase(cp(node.value))) {\n state.setHasCasedChar();\n }\n },\n CharacterClassRange({ node, skip }, state) {\n skip();\n if (getCasesOutsideCharClassRange(node, { firstOnly: true }).length) {\n state.setHasCasedChar();\n }\n },\n CharacterSet({ node }, state) {\n if (node.kind === \"property\" && UnicodePropertiesWithSpecificCase.has(node.value)) {\n state.setHasCasedChar();\n }\n }\n};\nvar generator = {\n /**\n @param {AlternativeNode} node\n */\n Alternative({ body }, _, gen) {\n return body.map(gen).join(\"\");\n },\n /**\n @param {AssertionNode} node\n */\n Assertion({ kind, negate }) {\n if (kind === \"string_end\") {\n return \"$\";\n }\n if (kind === \"string_start\") {\n return \"^\";\n }\n if (kind === \"word_boundary\") {\n return negate ? r`\\B` : r`\\b`;\n }\n throw new Error(`Unexpected assertion kind \"${kind}\"`);\n },\n /**\n @param {BackreferenceNode} node\n */\n Backreference({ ref }, state) {\n if (typeof ref !== \"number\") {\n throw new Error(\"Unexpected named backref in transformed AST\");\n }\n if (!state.useFlagMods && state.accuracy === \"strict\" && state.currentFlags.ignoreCase && !state.captureMap.get(ref).ignoreCase) {\n throw new Error(\"Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy\");\n }\n return \"\\\\\" + ref;\n },\n /**\n @param {CapturingGroupNode} node\n */\n CapturingGroup(node, state, gen) {\n const { body, name, number } = node;\n const data = { ignoreCase: state.currentFlags.ignoreCase };\n const origin = state.originMap.get(node);\n if (origin) {\n data.hidden = true;\n if (number > origin.number) {\n data.transferTo = origin.number;\n }\n }\n state.captureMap.set(number, data);\n return `(${name ? `?<${name}>` : \"\"}${body.map(gen).join(\"|\")})`;\n },\n /**\n @param {CharacterNode} node\n */\n Character({ value }, state) {\n const char = cp(value);\n const escaped = getCharEscape(value, {\n escDigit: state.lastNode.type === \"Backreference\",\n inCharClass: state.inCharClass,\n useFlagV: state.useFlagV\n });\n if (escaped !== char) {\n return escaped;\n }\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase && charHasCase(char)) {\n const cases = getIgnoreCaseMatchChars(char);\n return state.inCharClass ? cases.join(\"\") : cases.length > 1 ? `[${cases.join(\"\")}]` : cases[0];\n }\n return char;\n },\n /**\n @param {CharacterClassNode} node\n */\n CharacterClass(node, state, gen) {\n const { kind, negate, parent } = node;\n let { body } = node;\n if (kind === \"intersection\" && !state.useFlagV) {\n throw new Error(\"Use of character class intersection requires min target ES2024\");\n }\n if (envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV && body.some(isLiteralHyphen)) {\n body = [createCharacter2(45), ...body.filter((kid) => !isLiteralHyphen(kid))];\n }\n const genClass = () => `[${negate ? \"^\" : \"\"}${body.map(gen).join(kind === \"intersection\" ? \"&&\" : \"\")}]`;\n if (!state.inCharClass) {\n if (\n // Already established `kind !== 'intersection'` if `!state.useFlagV`; don't check again\n (!state.useFlagV || envFlags.bugNestedClassIgnoresNegation) && !negate\n ) {\n const negatedChildClasses = body.filter(\n (kid) => kid.type === \"CharacterClass\" && kid.kind === \"union\" && kid.negate\n );\n if (negatedChildClasses.length) {\n const group = createGroup2();\n const groupFirstAlt = group.body[0];\n group.parent = parent;\n groupFirstAlt.parent = group;\n body = body.filter((kid) => !negatedChildClasses.includes(kid));\n node.body = body;\n if (body.length) {\n node.parent = groupFirstAlt;\n groupFirstAlt.body.push(node);\n } else {\n group.body.pop();\n }\n negatedChildClasses.forEach((cc) => {\n const newAlt = createAlternative2({ body: [cc] });\n cc.parent = newAlt;\n newAlt.parent = group;\n group.body.push(newAlt);\n });\n return gen(group);\n }\n }\n state.inCharClass = true;\n const result = genClass();\n state.inCharClass = false;\n return result;\n }\n const firstEl = body[0];\n if (\n // Already established that the parent is a char class via `inCharClass`; don't check again\n kind === \"union\" && !negate && firstEl && // Allows many nested classes to work with `target` ES2018 which doesn't support nesting\n ((!state.useFlagV || !state.verbose) && parent.kind === \"union\" && !(envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV) || !state.verbose && parent.kind === \"intersection\" && // JS doesn't allow intersection with union or ranges\n body.length === 1 && firstEl.type !== \"CharacterClassRange\")\n ) {\n return body.map(gen).join(\"\");\n }\n if (!state.useFlagV && parent.type === \"CharacterClass\") {\n throw new Error(\"Uses nested character class in a way that requires min target ES2024\");\n }\n return genClass();\n },\n /**\n @param {CharacterClassRangeNode} node\n */\n CharacterClassRange(node, state) {\n const min = node.min.value;\n const max = node.max.value;\n const escOpts = {\n escDigit: false,\n inCharClass: true,\n useFlagV: state.useFlagV\n };\n const minStr = getCharEscape(min, escOpts);\n const maxStr = getCharEscape(max, escOpts);\n const extraChars = /* @__PURE__ */ new Set();\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase) {\n const charsOutsideRange = getCasesOutsideCharClassRange(node);\n const ranges = getCodePointRangesFromChars(charsOutsideRange);\n ranges.forEach((value) => {\n extraChars.add(\n Array.isArray(value) ? `${getCharEscape(value[0], escOpts)}-${getCharEscape(value[1], escOpts)}` : getCharEscape(value, escOpts)\n );\n });\n }\n return `${minStr}-${maxStr}${[...extraChars].join(\"\")}`;\n },\n /**\n @param {CharacterSetNode} node\n */\n CharacterSet({ kind, negate, value, key }, state) {\n if (kind === \"dot\") {\n return state.currentFlags.dotAll ? state.appliedGlobalFlags.dotAll || state.useFlagMods ? \".\" : \"[^]\" : (\n // Onig's only line break char is line feed, unlike JS\n r`[^\\n]`\n );\n }\n if (kind === \"digit\") {\n return negate ? r`\\D` : r`\\d`;\n }\n if (kind === \"property\") {\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase && UnicodePropertiesWithSpecificCase.has(value)) {\n throw new Error(`Unicode property \"${value}\" can't be case-insensitive when other chars have specific case`);\n }\n return `${negate ? r`\\P` : r`\\p`}{${key ? `${key}=` : \"\"}${value}}`;\n }\n if (kind === \"word\") {\n return negate ? r`\\W` : r`\\w`;\n }\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n },\n /**\n @param {FlagsNode} node\n */\n Flags(node, state) {\n return (\n // The transformer should never turn on the properties for flags d, g, m since Onig doesn't\n // have equivs. Flag m is never used since Onig uses different line break chars than JS\n // (node.hasIndices ? 'd' : '') +\n // (node.global ? 'g' : '') +\n // (node.multiline ? 'm' : '') +\n (state.appliedGlobalFlags.ignoreCase ? \"i\" : \"\") + (node.dotAll ? \"s\" : \"\") + (node.sticky ? \"y\" : \"\")\n );\n },\n /**\n @param {GroupNode} node\n */\n Group({ atomic: atomic2, body, flags, parent }, state, gen) {\n const currentFlags = state.currentFlags;\n if (flags) {\n state.currentFlags = getNewCurrentFlags(currentFlags, flags);\n }\n const contents = body.map(gen).join(\"|\");\n const result = !state.verbose && body.length === 1 && // Single alt\n parent.type !== \"Quantifier\" && !atomic2 && (!state.useFlagMods || !flags) ? contents : `(?${getGroupPrefix(atomic2, flags, state.useFlagMods)}${contents})`;\n state.currentFlags = currentFlags;\n return result;\n },\n /**\n @param {LookaroundAssertionNode} node\n */\n LookaroundAssertion({ body, kind, negate }, _, gen) {\n const prefix = `${kind === \"lookahead\" ? \"\" : \"<\"}${negate ? \"!\" : \"=\"}`;\n return `(?${prefix}${body.map(gen).join(\"|\")})`;\n },\n /**\n @param {QuantifierNode} node\n */\n Quantifier(node, _, gen) {\n return gen(node.body) + getQuantifierStr(node);\n },\n /**\n @param {SubroutineNode & {isRecursive: true}} node\n */\n Subroutine({ isRecursive, ref }, state) {\n if (!isRecursive) {\n throw new Error(\"Unexpected non-recursive subroutine in transformed AST\");\n }\n const limit = state.recursionLimit;\n return ref === 0 ? `(?R=${limit})` : r`\\g<${ref}&R=${limit}>`;\n }\n};\nvar BaseEscapeChars = /* @__PURE__ */ new Set([\n \"$\",\n \"(\",\n \")\",\n \"*\",\n \"+\",\n \".\",\n \"?\",\n \"[\",\n \"\\\\\",\n \"]\",\n \"^\",\n \"{\",\n \"|\",\n \"}\"\n]);\nvar CharClassEscapeChars = /* @__PURE__ */ new Set([\n \"-\",\n \"\\\\\",\n \"]\",\n \"^\",\n // Literal `[` doesn't require escaping with flag u, but this can help work around regex source\n // linters and regex syntax processors that expect unescaped `[` to create a nested class\n \"[\"\n]);\nvar CharClassEscapeCharsFlagV = /* @__PURE__ */ new Set([\n \"(\",\n \")\",\n \"-\",\n \"/\",\n \"[\",\n \"\\\\\",\n \"]\",\n \"^\",\n \"{\",\n \"|\",\n \"}\",\n // Double punctuators; also includes already-listed `-` and `^`\n \"!\",\n \"#\",\n \"$\",\n \"%\",\n \"&\",\n \"*\",\n \"+\",\n \",\",\n \".\",\n \":\",\n \";\",\n \"<\",\n \"=\",\n \">\",\n \"?\",\n \"@\",\n \"`\",\n \"~\"\n]);\nvar CharCodeEscapeMap = /* @__PURE__ */ new Map([\n [9, r`\\t`],\n // horizontal tab\n [10, r`\\n`],\n // line feed\n [11, r`\\v`],\n // vertical tab\n [12, r`\\f`],\n // form feed\n [13, r`\\r`],\n // carriage return\n [8232, r`\\u2028`],\n // line separator\n [8233, r`\\u2029`],\n // paragraph separator\n [65279, r`\\uFEFF`]\n // ZWNBSP/BOM\n]);\nvar casedRe = /^\\p{Cased}$/u;\nfunction charHasCase(char) {\n return casedRe.test(char);\n}\nfunction getCasesOutsideCharClassRange(node, options) {\n const firstOnly = !!options?.firstOnly;\n const min = node.min.value;\n const max = node.max.value;\n const found = [];\n if (min < 65 && (max === 65535 || max >= 131071) || min === 65536 && max >= 131071) {\n return found;\n }\n for (let i = min; i <= max; i++) {\n const char = cp(i);\n if (!charHasCase(char)) {\n continue;\n }\n const charsOutsideRange = getIgnoreCaseMatchChars(char).filter((caseOfChar) => {\n const num = caseOfChar.codePointAt(0);\n return num < min || num > max;\n });\n if (charsOutsideRange.length) {\n found.push(...charsOutsideRange);\n if (firstOnly) {\n break;\n }\n }\n }\n return found;\n}\nfunction getCharEscape(codePoint, { escDigit, inCharClass, useFlagV }) {\n if (CharCodeEscapeMap.has(codePoint)) {\n return CharCodeEscapeMap.get(codePoint);\n }\n if (\n // Control chars, etc.; condition modeled on the Chrome developer console's display for strings\n codePoint < 32 || codePoint > 126 && codePoint < 160 || // Unicode planes 4-16; unassigned, special purpose, and private use area\n codePoint > 262143 || // Avoid corrupting a preceding backref by immediately following it with a literal digit\n escDigit && isDigitCharCode(codePoint)\n ) {\n return codePoint > 255 ? `\\\\u{${codePoint.toString(16).toUpperCase()}}` : `\\\\x${codePoint.toString(16).toUpperCase().padStart(2, \"0\")}`;\n }\n const escapeChars = inCharClass ? useFlagV ? CharClassEscapeCharsFlagV : CharClassEscapeChars : BaseEscapeChars;\n const char = cp(codePoint);\n return (escapeChars.has(char) ? \"\\\\\" : \"\") + char;\n}\nfunction getCodePointRangesFromChars(chars) {\n const codePoints = chars.map((char) => char.codePointAt(0)).sort((a, b) => a - b);\n const values = [];\n let start = null;\n for (let i = 0; i < codePoints.length; i++) {\n if (codePoints[i + 1] === codePoints[i] + 1) {\n start ??= codePoints[i];\n } else if (start === null) {\n values.push(codePoints[i]);\n } else {\n values.push([start, codePoints[i]]);\n start = null;\n }\n }\n return values;\n}\nfunction getGroupPrefix(atomic2, flagMods, useFlagMods) {\n if (atomic2) {\n return \">\";\n }\n let mods = \"\";\n if (flagMods && useFlagMods) {\n const { enable, disable } = flagMods;\n mods = (enable?.ignoreCase ? \"i\" : \"\") + (enable?.dotAll ? \"s\" : \"\") + (disable ? \"-\" : \"\") + (disable?.ignoreCase ? \"i\" : \"\") + (disable?.dotAll ? \"s\" : \"\");\n }\n return `${mods}:`;\n}\nfunction getQuantifierStr({ kind, max, min }) {\n let base;\n if (!min && max === 1) {\n base = \"?\";\n } else if (!min && max === Infinity) {\n base = \"*\";\n } else if (min === 1 && max === Infinity) {\n base = \"+\";\n } else if (min === max) {\n base = `{${min}}`;\n } else {\n base = `{${min},${max === Infinity ? \"\" : max}}`;\n }\n return base + {\n greedy: \"\",\n lazy: \"?\",\n possessive: \"+\"\n }[kind];\n}\nfunction isAnyGroup({ type }) {\n return type === \"CapturingGroup\" || type === \"Group\" || type === \"LookaroundAssertion\";\n}\nfunction isDigitCharCode(value) {\n return value > 47 && value < 58;\n}\nfunction isLiteralHyphen({ type, value }) {\n return type === \"Character\" && value === 45;\n}\n\n// src/subclass.js\nvar EmulatedRegExp = class _EmulatedRegExp extends RegExp {\n /**\n @type {Map<number, {\n hidden?: true;\n transferTo?: number;\n }>}\n */\n #captureMap = /* @__PURE__ */ new Map();\n /**\n @type {RegExp | EmulatedRegExp | null}\n */\n #compiled = null;\n /**\n @type {string}\n */\n #pattern;\n /**\n @type {Map<number, string>?}\n */\n #nameMap = null;\n /**\n @type {string?}\n */\n #strategy = null;\n /**\n Can be used to serialize the instance.\n @type {EmulatedRegExpOptions}\n */\n rawOptions = {};\n // Override the getter with one that works with lazy-compiled regexes\n get source() {\n return this.#pattern || \"(?:)\";\n }\n /**\n @overload\n @param {string} pattern\n @param {string} [flags]\n @param {EmulatedRegExpOptions} [options]\n */\n /**\n @overload\n @param {EmulatedRegExp} pattern\n @param {string} [flags]\n */\n constructor(pattern, flags, options) {\n const lazyCompile = !!options?.lazyCompile;\n if (pattern instanceof RegExp) {\n if (options) {\n throw new Error(\"Cannot provide options when copying a regexp\");\n }\n const re = pattern;\n super(re, flags);\n this.#pattern = re.source;\n if (re instanceof _EmulatedRegExp) {\n this.#captureMap = re.#captureMap;\n this.#nameMap = re.#nameMap;\n this.#strategy = re.#strategy;\n this.rawOptions = re.rawOptions;\n }\n } else {\n const opts = {\n hiddenCaptures: [],\n strategy: null,\n transfers: [],\n ...options\n };\n super(lazyCompile ? \"\" : pattern, flags);\n this.#pattern = pattern;\n this.#captureMap = createCaptureMap(opts.hiddenCaptures, opts.transfers);\n this.#strategy = opts.strategy;\n this.rawOptions = options ?? {};\n }\n if (!lazyCompile) {\n this.#compiled = this;\n }\n }\n /**\n Called internally by all String/RegExp methods that use regexes.\n @override\n @param {string} str\n @returns {RegExpExecArray?}\n */\n exec(str) {\n if (!this.#compiled) {\n const { lazyCompile, ...rest } = this.rawOptions;\n this.#compiled = new _EmulatedRegExp(this.#pattern, this.flags, rest);\n }\n const useLastIndex = this.global || this.sticky;\n const pos = this.lastIndex;\n if (this.#strategy === \"clip_search\" && useLastIndex && pos) {\n this.lastIndex = 0;\n const match = this.#execCore(str.slice(pos));\n if (match) {\n adjustMatchDetailsForOffset(match, pos, str, this.hasIndices);\n this.lastIndex += pos;\n }\n return match;\n }\n return this.#execCore(str);\n }\n /**\n Adds support for hidden and transfer captures.\n @param {string} str\n @returns\n */\n #execCore(str) {\n this.#compiled.lastIndex = this.lastIndex;\n const match = super.exec.call(this.#compiled, str);\n this.lastIndex = this.#compiled.lastIndex;\n if (!match || !this.#captureMap.size) {\n return match;\n }\n const matchCopy = [...match];\n match.length = 1;\n let indicesCopy;\n if (this.hasIndices) {\n indicesCopy = [...match.indices];\n match.indices.length = 1;\n }\n const mappedNums = [0];\n for (let i = 1; i < matchCopy.length; i++) {\n const { hidden, transferTo } = this.#captureMap.get(i) ?? {};\n if (hidden) {\n mappedNums.push(null);\n } else {\n mappedNums.push(match.length);\n match.push(matchCopy[i]);\n if (this.hasIndices) {\n match.indices.push(indicesCopy[i]);\n }\n }\n if (transferTo && matchCopy[i] !== void 0) {\n const to = mappedNums[transferTo];\n if (!to) {\n throw new Error(`Invalid capture transfer to \"${to}\"`);\n }\n match[to] = matchCopy[i];\n if (this.hasIndices) {\n match.indices[to] = indicesCopy[i];\n }\n if (match.groups) {\n if (!this.#nameMap) {\n this.#nameMap = createNameMap(this.source);\n }\n const name = this.#nameMap.get(transferTo);\n if (name) {\n match.groups[name] = matchCopy[i];\n if (this.hasIndices) {\n match.indices.groups[name] = indicesCopy[i];\n }\n }\n }\n }\n }\n return match;\n }\n};\nfunction adjustMatchDetailsForOffset(match, offset, input, hasIndices) {\n match.index += offset;\n match.input = input;\n if (hasIndices) {\n const indices = match.indices;\n for (let i = 0; i < indices.length; i++) {\n const arr = indices[i];\n if (arr) {\n indices[i] = [arr[0] + offset, arr[1] + offset];\n }\n }\n const groupIndices = indices.groups;\n if (groupIndices) {\n Object.keys(groupIndices).forEach((key) => {\n const arr = groupIndices[key];\n if (arr) {\n groupIndices[key] = [arr[0] + offset, arr[1] + offset];\n }\n });\n }\n }\n}\nfunction createCaptureMap(hiddenCaptures, transfers) {\n const captureMap = /* @__PURE__ */ new Map();\n for (const num of hiddenCaptures) {\n captureMap.set(num, {\n hidden: true\n });\n }\n for (const [to, from] of transfers) {\n for (const num of from) {\n getOrInsert(captureMap, num, {}).transferTo = to;\n }\n }\n return captureMap;\n}\nfunction createNameMap(pattern) {\n const re = /(?<capture>\\((?:\\?<(?![=!])(?<name>[^>]+)>|(?!\\?)))|\\\\?./gsu;\n const map = /* @__PURE__ */ new Map();\n let numCharClassesOpen = 0;\n let numCaptures = 0;\n let match;\n while (match = re.exec(pattern)) {\n const { 0: m, groups: { capture, name } } = match;\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (capture) {\n numCaptures++;\n if (name) {\n map.set(numCaptures, name);\n }\n }\n } else if (m === \"]\") {\n numCharClassesOpen--;\n }\n }\n return map;\n}\n\n// src/index.js\nimport { parse as parse2 } from \"oniguruma-parser/parser\";\nimport { atomic, possessive } from \"regex/internals\";\nimport { recursion } from \"regex-recursion\";\nfunction toRegExp(pattern, options) {\n const d = toRegExpDetails(pattern, options);\n if (d.options) {\n return new EmulatedRegExp(d.pattern, d.flags, d.options);\n }\n return new RegExp(d.pattern, d.flags);\n}\nfunction toRegExpDetails(pattern, options) {\n const opts = getOptions(options);\n const onigurumaAst = parse2(pattern, {\n flags: opts.flags,\n normalizeUnknownPropertyNames: true,\n rules: {\n captureGroup: opts.rules.captureGroup,\n singleline: opts.rules.singleline\n },\n skipBackrefValidation: opts.rules.allowOrphanBackrefs,\n unicodePropertyMap: JsUnicodePropertyMap\n });\n const regexPlusAst = transform(onigurumaAst, {\n accuracy: opts.accuracy,\n asciiWordBoundaries: opts.rules.asciiWordBoundaries,\n avoidSubclass: opts.avoidSubclass,\n bestEffortTarget: opts.target\n });\n const generated = generate(regexPlusAst, opts);\n const recursionResult = recursion(generated.pattern, {\n captureTransfers: generated._captureTransfers,\n hiddenCaptures: generated._hiddenCaptures,\n mode: \"external\"\n });\n const possessiveResult = possessive(recursionResult.pattern);\n const atomicResult = atomic(possessiveResult.pattern, {\n captureTransfers: recursionResult.captureTransfers,\n hiddenCaptures: recursionResult.hiddenCaptures\n });\n const details = {\n pattern: atomicResult.pattern,\n flags: `${opts.hasIndices ? \"d\" : \"\"}${opts.global ? \"g\" : \"\"}${generated.flags}${generated.options.disable.v ? \"u\" : \"v\"}`\n };\n if (opts.avoidSubclass) {\n if (opts.lazyCompileLength !== Infinity) {\n throw new Error(\"Lazy compilation requires subclass\");\n }\n } else {\n const hiddenCaptures = atomicResult.hiddenCaptures.sort((a, b) => a - b);\n const transfers = Array.from(atomicResult.captureTransfers);\n const strategy = regexPlusAst._strategy;\n const lazyCompile = details.pattern.length >= opts.lazyCompileLength;\n if (hiddenCaptures.length || transfers.length || strategy || lazyCompile) {\n details.options = {\n ...hiddenCaptures.length && { hiddenCaptures },\n ...transfers.length && { transfers },\n ...strategy && { strategy },\n ...lazyCompile && { lazyCompile }\n };\n }\n }\n return details;\n}\nexport {\n EmulatedRegExp,\n toRegExp,\n toRegExpDetails\n};\n//# sourceMappingURL=index.js.map\n","const MAX = 4294967295;\nclass JavaScriptScanner {\n constructor(patterns, options = {}) {\n this.patterns = patterns;\n this.options = options;\n const {\n forgiving = false,\n cache,\n regexConstructor\n } = options;\n if (!regexConstructor) {\n throw new Error(\"Option `regexConstructor` is not provided\");\n }\n this.regexps = patterns.map((p) => {\n if (typeof p !== \"string\") {\n return p;\n }\n const cached = cache?.get(p);\n if (cached) {\n if (cached instanceof RegExp) {\n return cached;\n }\n if (forgiving)\n return null;\n throw cached;\n }\n try {\n const regex = regexConstructor(p);\n cache?.set(p, regex);\n return regex;\n } catch (e) {\n cache?.set(p, e);\n if (forgiving)\n return null;\n throw e;\n }\n });\n }\n regexps;\n findNextMatchSync(string, startPosition, _options) {\n const str = typeof string === \"string\" ? string : string.content;\n const pending = [];\n function toResult(index, match, offset = 0) {\n return {\n index,\n captureIndices: match.indices.map((indice) => {\n if (indice == null) {\n return {\n start: MAX,\n end: MAX,\n length: 0\n };\n }\n return {\n start: indice[0] + offset,\n end: indice[1] + offset,\n length: indice[1] - indice[0]\n };\n })\n };\n }\n for (let i = 0; i < this.regexps.length; i++) {\n const regexp = this.regexps[i];\n if (!regexp)\n continue;\n try {\n regexp.lastIndex = startPosition;\n const match = regexp.exec(str);\n if (!match)\n continue;\n if (match.index === startPosition) {\n return toResult(i, match, 0);\n }\n pending.push([i, match, 0]);\n } catch (e) {\n if (this.options.forgiving)\n continue;\n throw e;\n }\n }\n if (pending.length) {\n const minIndex = Math.min(...pending.map((m) => m[1].index));\n for (const [i, match, offset] of pending) {\n if (match.index === minIndex) {\n return toResult(i, match, offset);\n }\n }\n }\n return null;\n }\n}\n\nexport { JavaScriptScanner as J };\n","import { toRegExp } from 'oniguruma-to-es';\nimport { J as JavaScriptScanner } from './shared/engine-javascript.hzpS1_41.mjs';\n\nfunction defaultJavaScriptRegexConstructor(pattern, options) {\n return toRegExp(\n pattern,\n {\n global: true,\n hasIndices: true,\n // This has no benefit for the standard JS engine, but it avoids a perf penalty for\n // precompiled grammars when constructing extremely long patterns that aren't always used\n lazyCompileLength: 3e3,\n rules: {\n // Needed since TextMate grammars merge backrefs across patterns\n allowOrphanBackrefs: true,\n // Improves search performance for generated regexes\n asciiWordBoundaries: true,\n // Follow `vscode-oniguruma` which enables this Oniguruma option by default\n captureGroup: true,\n // Oniguruma uses depth limit `20`; lowered here to keep regexes shorter and maybe\n // sometimes faster, but can be increased if issues reported due to low limit\n recursionLimit: 5,\n // Oniguruma option for `^`->`\\A`, `$`->`\\Z`; improves search performance without any\n // change in meaning since TM grammars search line by line\n singleline: true\n },\n ...options\n }\n );\n}\nfunction createJavaScriptRegexEngine(options = {}) {\n const _options = Object.assign(\n {\n target: \"auto\",\n cache: /* @__PURE__ */ new Map()\n },\n options\n );\n _options.regexConstructor ||= (pattern) => defaultJavaScriptRegexConstructor(pattern, { target: _options.target });\n return {\n createScanner(patterns) {\n return new JavaScriptScanner(patterns, _options);\n },\n createString(s) {\n return {\n content: s\n };\n }\n };\n}\n\nexport { createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor };\n","\"use client\";\nimport {a,g as g$1,b as b$1}from'./chunk-JAPRZBRM.js';import {memo,useMemo,useContext,useState,useEffect}from'react';import {jsx,jsxs}from'react/jsx-runtime';import {createHighlighter,bundledLanguages}from'shiki';import {createJavaScriptRegexEngine}from'shiki/engine/javascript';var v=a(\"block\",\"before:content-[counter(line)]\",\"before:inline-block\",\"before:[counter-increment:line]\",\"before:w-4\",\"before:mr-4\",\"before:text-[13px]\",\"before:text-right\",\"before:text-muted-foreground/50\",\"before:font-mono\",\"before:select-none\"),b=memo(({children:e,result:t,language:o,className:r,...s})=>{let n=useMemo(()=>({backgroundColor:t.bg,color:t.fg}),[t.bg,t.fg]);return jsx(\"pre\",{className:a(r,\"p-4 text-sm dark:bg-(--shiki-dark-bg)!\"),\"data-language\":o,\"data-streamdown\":\"code-block-body\",style:n,...s,children:jsx(\"code\",{className:\"[counter-increment:line_0] [counter-reset:line]\",children:t.tokens.map((l,d)=>jsx(\"span\",{className:v,children:l.map((a,i)=>jsx(\"span\",{className:\"dark:bg-(--shiki-dark-bg)! dark:text-(--shiki-dark)!\",style:{color:a.color,backgroundColor:a.bgColor,...a.htmlStyle},...a.htmlAttrs,children:a.content},i))},d))})})},(e,t)=>e.result===t.result&&e.language===t.language&&e.className===t.className);var y=({className:e,language:t,style:o,...r})=>jsx(\"div\",{className:a(\"my-4 w-full overflow-hidden rounded-xl border border-border\",e),\"data-language\":t,\"data-streamdown\":\"code-block\",style:{contentVisibility:\"auto\",containIntrinsicSize:\"auto 200px\",...o},...r});var L=({language:e,children:t})=>jsxs(\"div\",{className:\"flex items-center justify-between bg-muted/80 p-3 text-muted-foreground text-xs\",\"data-language\":e,\"data-streamdown\":\"code-block-header\",children:[jsx(\"span\",{className:\"ml-1 font-mono lowercase\",children:e}),jsx(\"div\",{className:\"flex items-center gap-2\",children:t})]});var $=createJavaScriptRegexEngine({forgiving:true}),m=new Map,p=new Map,g=new Map,E=(e,t)=>`${e}-${t[0]}-${t[1]}`,A=(e,t,o)=>{let r=e.slice(0,100),s=e.length>100?e.slice(-100):\"\";return `${t}:${o[0]}:${o[1]}:${e.length}:${r}:${s}`},T=e=>Object.hasOwn(bundledLanguages,e),K=(e,t)=>{let o=T(e)?e:\"text\",r=E(o,t);if(m.has(r))return m.get(r);let s=createHighlighter({themes:t,langs:[o],engine:$});return m.set(r,s),s},h=(e,t,o,r)=>{let s=T(t)?t:\"text\",n=A(e,s,o);return p.has(n)?p.get(n):(r&&(g.has(n)||g.set(n,new Set),g.get(n).add(r)),K(s,o).then(l=>{let d=l.codeToTokens(e,{lang:s,themes:{light:o[0],dark:o[1]}});p.set(n,d);let a=g.get(n);if(a){for(let i of a)i(d);g.delete(n);}}).catch(l=>{console.error(\"Failed to highlight code:\",l),g.delete(n);}),null)};var le=({code:e,language:t,className:o,children:r,...s})=>{let{shikiTheme:n}=useContext(g$1),l=useMemo(()=>({bg:\"transparent\",fg:\"inherit\",tokens:e.split(`\n`).map(i=>[{content:i,color:\"inherit\",bgColor:\"transparent\",htmlStyle:{},offset:0}])}),[e]),[d,a]=useState(l);return useEffect(()=>{let i=h(e,t,n);if(i){a(i);return}h(e,t,n,x=>{a(x);});},[e,t,n]),jsx(b$1.Provider,{value:{code:e},children:jsxs(y,{language:t,children:[jsx(L,{language:t,children:r}),jsx(b,{className:o,language:t,result:d,...s})]})})};export{le as CodeBlock};"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12],"mappings":"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"}
1
+ {"version":3,"file":"code-block-IT6T5CEO-RwvK23k6.js","names":["r","l","o","u","m","b","y","C","T","o","s","a","u","r","i","F","l","S","g","ee","K","w","R","A","I","k","L","f","Q","P","te","h","E","z","X","G","U","V","J","$","W","N","D","_","B","v","O","r","y","r","q","s","u","o","p","b","m","i","T","d","a","l","f","g","L","H","C","x","E","$","Z","v","M","S","h","A","K","u","r","s","i","d","a","o","b","y","g","x","m","h","v","p","R","P","incrementIfAtLeast","i","re","m","token","m","f","r","m","g","i","f","slug","p","i","createGroup","createLookaroundAssertion","createUnicodeProperty","createQuantifier","createAlternative","createAssertion","createCharacter","b","B","createCharacterClass","createCharacterSet","slug2","hasOnlyChild","f","g","createBackreference","createCapturingGroup","a","createSubroutine","parse","createCharacter2","createGroup2","createAlternative2","#pattern","re","#captureMap","#nameMap","#strategy","#compiled","#execCore","m","d","parse2","p","i","m","s","a","o","r","s","l","i","d","g$1","x","b$1"],"sources":["../../../../node_modules/oniguruma-parser/dist/utils.js","../../../../node_modules/oniguruma-parser/dist/tokenizer/tokenize.js","../../../../node_modules/oniguruma-parser/dist/parser/node-utils.js","../../../../node_modules/oniguruma-parser/dist/parser/parse.js","../../../../node_modules/oniguruma-parser/dist/traverser/traverse.js","../../../../node_modules/regex/src/utils-internals.js","../../../../node_modules/regex-utilities/src/index.js","../../../../node_modules/regex/src/atomic.js","../../../../node_modules/regex-recursion/src/index.js","../../../../node_modules/oniguruma-to-es/dist/esm/index.js","../../../../node_modules/@shikijs/engine-javascript/dist/shared/engine-javascript.hzpS1_41.mjs","../../../../node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs","../../../../node_modules/streamdown/dist/code-block-IT6T5CEO.js"],"sourcesContent":["\"use strict\";function r(e){if([...e].length!==1)throw new Error(`Expected \"${e}\" to be a single code point`);return e.codePointAt(0)}function l(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}const i=new Set([\"alnum\",\"alpha\",\"ascii\",\"blank\",\"cntrl\",\"digit\",\"graph\",\"lower\",\"print\",\"punct\",\"space\",\"upper\",\"word\",\"xdigit\"]),o=String.raw;function u(e,t){if(e==null)throw new Error(t??\"Value expected\");return e}export{r as cpOf,l as getOrInsert,i as PosixClassNames,o as r,u as throwIfNullish};\n//# sourceMappingURL=utils.js.map\n","\"use strict\";import{cpOf as h,PosixClassNames as G,r as p,throwIfNullish as N}from\"../utils.js\";const m=p`\\[\\^?`,b=`c.? | C(?:-.?)?|${p`[pP]\\{(?:\\^?[-\\x20_]*[A-Za-z][-\\x20\\w]*\\})?`}|${p`x[89A-Fa-f]\\p{AHex}(?:\\\\x[89A-Fa-f]\\p{AHex})*`}|${p`u(?:\\p{AHex}{4})? | x\\{[^\\}]*\\}? | x\\p{AHex}{0,2}`}|${p`o\\{[^\\}]*\\}?`}|${p`\\d{1,3}`}`,y=/[?*+][?+]?|\\{(?:\\d+(?:,\\d*)?|,\\d+)\\}\\??/,C=new RegExp(p`\n \\\\ (?:\n ${b}\n | [gk]<[^>]*>?\n | [gk]'[^']*'?\n | .\n )\n | \\( (?:\n \\? (?:\n [:=!>({]\n | <[=!]\n | <[^>]*>\n | '[^']*'\n | ~\\|?\n | #(?:[^)\\\\]|\\\\.?)*\n | [^:)]*[:)]\n )?\n | \\*[^\\)]*\\)?\n )?\n | (?:${y.source})+\n | ${m}\n | .\n`.replace(/\\s+/g,\"\"),\"gsu\"),T=new RegExp(p`\n \\\\ (?:\n ${b}\n | .\n )\n | \\[:(?:\\^?\\p{Alpha}+|\\^):\\]\n | ${m}\n | &&\n | .\n`.replace(/\\s+/g,\"\"),\"gsu\");function M(e,n={}){const t={flags:\"\",...n,rules:{captureGroup:!1,singleline:!1,...n.rules}};if(typeof e!=\"string\")throw new Error(\"String expected as pattern\");const o=Y(t.flags),s=[o.extended],a={captureGroup:t.rules.captureGroup,getCurrentModX(){return s.at(-1)},numOpenGroups:0,popModX(){s.pop()},pushModX(u){s.push(u)},replaceCurrentModX(u){s[s.length-1]=u},singleline:t.rules.singleline};let r=[],i;for(C.lastIndex=0;i=C.exec(e);){const u=F(a,e,i[0],C.lastIndex);u.tokens?r.push(...u.tokens):u.token&&r.push(u.token),u.lastIndex!==void 0&&(C.lastIndex=u.lastIndex)}const l=[];let c=0;r.filter(u=>u.type===\"GroupOpen\").forEach(u=>{u.kind===\"capturing\"?u.number=++c:u.raw===\"(\"&&l.push(u)}),c||l.forEach((u,S)=>{u.kind=\"capturing\",u.number=S+1});const g=c||l.length;return{tokens:r.map(u=>u.type===\"EscapedNumber\"?ee(u,g):u).flat(),flags:o}}function F(e,n,t,o){const[s,a]=t;if(t===\"[\"||t===\"[^\"){const r=K(n,t,o);return{tokens:r.tokens,lastIndex:r.lastIndex}}if(s===\"\\\\\"){if(\"AbBGyYzZ\".includes(a))return{token:w(t,t)};if(/^\\\\g[<']/.test(t)){if(!/^\\\\g(?:<[^>]+>|'[^']+')$/.test(t))throw new Error(`Invalid group name \"${t}\"`);return{token:R(t)}}if(/^\\\\k[<']/.test(t)){if(!/^\\\\k(?:<[^>]+>|'[^']+')$/.test(t))throw new Error(`Invalid group name \"${t}\"`);return{token:A(t)}}if(a===\"K\")return{token:I(\"keep\",t)};if(a===\"N\"||a===\"R\")return{token:k(\"newline\",t,{negate:a===\"N\"})};if(a===\"O\")return{token:k(\"any\",t)};if(a===\"X\")return{token:k(\"text_segment\",t)};const r=x(t,{inCharClass:!1});return Array.isArray(r)?{tokens:r}:{token:r}}if(s===\"(\"){if(a===\"*\")return{token:j(t)};if(t===\"(?{\")throw new Error(`Unsupported callout \"${t}\"`);if(t.startsWith(\"(?#\")){if(n[o]!==\")\")throw new Error('Unclosed comment group \"(?#\"');return{lastIndex:o+1}}if(/^\\(\\?[-imx]+[:)]$/.test(t))return{token:L(t,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,t===\"(\"&&!e.captureGroup||t===\"(?:\")return{token:f(\"group\",t)};if(t===\"(?>\")return{token:f(\"atomic\",t)};if(t===\"(?=\"||t===\"(?!\"||t===\"(?<=\"||t===\"(?<!\")return{token:f(t[2]===\"<\"?\"lookbehind\":\"lookahead\",t,{negate:t.endsWith(\"!\")})};if(t===\"(\"&&e.captureGroup||t.startsWith(\"(?<\")&&t.endsWith(\">\")||t.startsWith(\"(?'\")&&t.endsWith(\"'\"))return{token:f(\"capturing\",t,{...t!==\"(\"&&{name:t.slice(3,-1)}})};if(t.startsWith(\"(?~\")){if(t===\"(?~|\")throw new Error(`Unsupported absence function kind \"${t}\"`);return{token:f(\"absence_repeater\",t)}}throw t===\"(?(\"?new Error(`Unsupported conditional \"${t}\"`):new Error(`Invalid or unsupported group option \"${t}\"`)}if(t===\")\"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched \")\"');return{token:Q(t)}}if(e.getCurrentModX()){if(t===\"#\"){const r=n.indexOf(`\n`,o);return{lastIndex:r===-1?n.length:r}}if(/^\\s$/.test(t)){const r=/\\s+/y;return r.lastIndex=o,{lastIndex:r.exec(n)?r.lastIndex:o}}}if(t===\".\")return{token:k(\"dot\",t)};if(t===\"^\"||t===\"$\"){const r=e.singleline?{\"^\":p`\\A`,$:p`\\Z`}[t]:t;return{token:w(r,t)}}return t===\"|\"?{token:P(t)}:y.test(t)?{tokens:te(t)}:{token:d(h(t),t)}}function K(e,n,t){const o=[E(n[1]===\"^\",n)];let s=1,a;for(T.lastIndex=t;a=T.exec(e);){const r=a[0];if(r[0]===\"[\"&&r[1]!==\":\")s++,o.push(E(r[1]===\"^\",r));else if(r===\"]\"){if(o.at(-1).type===\"CharacterClassOpen\")o.push(d(93,r));else if(s--,o.push(z(r)),!s)break}else{const i=X(r);Array.isArray(i)?o.push(...i):o.push(i)}}return{tokens:o,lastIndex:T.lastIndex||e.length}}function X(e){if(e[0]===\"\\\\\")return x(e,{inCharClass:!0});if(e[0]===\"[\"){const n=/\\[:(?<negate>\\^?)(?<name>[a-z]+):\\]/.exec(e);if(!n||!G.has(n.groups.name))throw new Error(`Invalid POSIX class \"${e}\"`);return k(\"posix\",e,{value:n.groups.name,negate:!!n.groups.negate})}return e===\"-\"?U(e):e===\"&&\"?H(e):d(h(e),e)}function x(e,{inCharClass:n}){const t=e[1];if(t===\"c\"||t===\"C\")return Z(e);if(\"dDhHsSwW\".includes(t))return q(e);if(e.startsWith(p`\\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 V(e)}if(/^\\\\x[89A-Fa-f]\\p{AHex}/u.test(e))try{const o=e.split(/\\\\x/).slice(1).map(i=>parseInt(i,16)),s=new TextDecoder(\"utf-8\",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(o)),a=new TextEncoder;return[...s].map(i=>{const l=[...a.encode(i)].map(c=>`\\\\x${c.toString(16)}`).join(\"\");return d(h(i),l)})}catch{throw new Error(`Multibyte code \"${e}\" incomplete or invalid in Oniguruma`)}if(t===\"u\"||t===\"x\")return d(J(e),e);if($.has(t))return d($.get(t),e);if(/\\d/.test(t))return W(n,e);if(e===\"\\\\\")throw new Error(p`Incomplete escape \"\\\"`);if(t===\"M\")throw new Error(`Unsupported meta \"${e}\"`);if([...e].length===2)return d(e.codePointAt(1),e);throw new Error(`Unexpected escape \"${e}\"`)}function P(e){return{type:\"Alternator\",raw:e}}function w(e,n){return{type:\"Assertion\",kind:e,raw:n}}function A(e){return{type:\"Backreference\",raw:e}}function d(e,n){return{type:\"Character\",value:e,raw:n}}function z(e){return{type:\"CharacterClassClose\",raw:e}}function U(e){return{type:\"CharacterClassHyphen\",raw:e}}function H(e){return{type:\"CharacterClassIntersector\",raw:e}}function E(e,n){return{type:\"CharacterClassOpen\",negate:e,raw:n}}function k(e,n,t={}){return{type:\"CharacterSet\",kind:e,...t,raw:n}}function I(e,n,t={}){return e===\"keep\"?{type:\"Directive\",kind:e,raw:n}:{type:\"Directive\",kind:e,flags:N(t.flags),raw:n}}function W(e,n){return{type:\"EscapedNumber\",inCharClass:e,raw:n}}function Q(e){return{type:\"GroupClose\",raw:e}}function f(e,n,t={}){return{type:\"GroupOpen\",kind:e,...t,raw:n}}function D(e,n,t,o){return{type:\"NamedCallout\",kind:e,tag:n,arguments:t,raw:o}}function _(e,n,t,o){return{type:\"Quantifier\",kind:e,min:n,max:t,raw:o}}function R(e){return{type:\"Subroutine\",raw:e}}const B=new Set([\"COUNT\",\"CMP\",\"ERROR\",\"FAIL\",\"MAX\",\"MISMATCH\",\"SKIP\",\"TOTAL_COUNT\"]),$=new Map([[\"a\",7],[\"b\",8],[\"e\",27],[\"f\",12],[\"n\",10],[\"r\",13],[\"t\",9],[\"v\",11]]);function Z(e){const n=e[1]===\"c\"?e[2]:e[3];if(!n||!/[A-Za-z]/.test(n))throw new Error(`Unsupported control character \"${e}\"`);return d(h(n.toUpperCase())-64,e)}function L(e,n){let{on:t,off:o}=/^\\(\\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(e).groups;o??=\"\";const s=(n.getCurrentModX()||t.includes(\"x\"))&&!o.includes(\"x\"),a=v(t),r=v(o),i={};if(a&&(i.enable=a),r&&(i.disable=r),e.endsWith(\")\"))return n.replaceCurrentModX(s),I(\"flags\",e,{flags:i});if(e.endsWith(\":\"))return n.pushModX(s),n.numOpenGroups++,f(\"group\",e,{...(a||r)&&{flags:i}});throw new Error(`Unexpected flag modifier \"${e}\"`)}function j(e){const n=/\\(\\*(?<name>[A-Za-z_]\\w*)?(?:\\[(?<tag>(?:[A-Za-z_]\\w*)?)\\])?(?:\\{(?<args>[^}]*)\\})?\\)/.exec(e);if(!n)throw new Error(`Incomplete or invalid named callout \"${e}\"`);const{name:t,tag:o,args:s}=n.groups;if(!t)throw new Error(`Invalid named callout \"${e}\"`);if(o===\"\")throw new Error(`Named callout tag with empty value not allowed \"${e}\"`);const a=s?s.split(\",\").filter(g=>g!==\"\").map(g=>/^[+-]?\\d+$/.test(g)?+g:g):[],[r,i,l]=a,c=B.has(t)?t.toLowerCase():\"custom\";switch(c){case\"fail\":case\"mismatch\":case\"skip\":if(a.length>0)throw new Error(`Named callout arguments not allowed \"${a}\"`);break;case\"error\":if(a.length>1)throw new Error(`Named callout allows only one argument \"${a}\"`);if(typeof r==\"string\")throw new Error(`Named callout argument must be a number \"${r}\"`);break;case\"max\":if(!a.length||a.length>2)throw new Error(`Named callout must have one or two arguments \"${a}\"`);if(typeof r==\"string\"&&!/^[A-Za-z_]\\w*$/.test(r))throw new Error(`Named callout argument one must be a tag or number \"${r}\"`);if(a.length===2&&(typeof i==\"number\"||!/^[<>X]$/.test(i)))throw new Error(`Named callout optional argument two must be '<', '>', or 'X' \"${i}\"`);break;case\"count\":case\"total_count\":if(a.length>1)throw new Error(`Named callout allows only one argument \"${a}\"`);if(a.length===1&&(typeof r==\"number\"||!/^[<>X]$/.test(r)))throw new Error(`Named callout optional argument must be '<', '>', or 'X' \"${r}\"`);break;case\"cmp\":if(a.length!==3)throw new Error(`Named callout must have three arguments \"${a}\"`);if(typeof r==\"string\"&&!/^[A-Za-z_]\\w*$/.test(r))throw new Error(`Named callout argument one must be a tag or number \"${r}\"`);if(typeof i==\"number\"||!/^(?:[<>!=]=|[<>])$/.test(i))throw new Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' \"${i}\"`);if(typeof l==\"string\"&&!/^[A-Za-z_]\\w*$/.test(l))throw new Error(`Named callout argument three must be a tag or number \"${l}\"`);break;case\"custom\":throw new Error(`Undefined callout name \"${t}\"`);default:throw new Error(`Unexpected named callout kind \"${c}\"`)}return D(c,o??null,s?.split(\",\")??null,e)}function O(e){let n=null,t,o;if(e[0]===\"{\"){const{minStr:s,maxStr:a}=/^\\{(?<minStr>\\d*)(?:,(?<maxStr>\\d*))?/.exec(e).groups,r=1e5;if(+s>r||a&&+a>r)throw new Error(\"Quantifier value unsupported in Oniguruma\");if(t=+s,o=a===void 0?+s:a===\"\"?1/0:+a,t>o&&(n=\"possessive\",[t,o]=[o,t]),e.endsWith(\"?\")){if(n===\"possessive\")throw new Error('Unsupported possessive interval quantifier chain with \"?\"');n=\"lazy\"}else n||(n=\"greedy\")}else t=e[0]===\"+\"?1:0,o=e[0]===\"?\"?1:1/0,n=e[1]===\"+\"?\"possessive\":e[1]===\"?\"?\"lazy\":\"greedy\";return _(n,t,o,e)}function q(e){const n=e[1].toLowerCase();return k({d:\"digit\",h:\"hex\",s:\"space\",w:\"word\"}[n],e,{negate:e[1]!==n})}function V(e){const{p:n,neg:t,value:o}=/^\\\\(?<p>[pP])\\{(?<neg>\\^?)(?<value>[^}]+)/.exec(e).groups;return k(\"property\",e,{value:o,negate:n===\"P\"&&!t||n===\"p\"&&!!t})}function v(e){const n={};return e.includes(\"i\")&&(n.ignoreCase=!0),e.includes(\"m\")&&(n.dotAll=!0),e.includes(\"x\")&&(n.extended=!0),Object.keys(n).length?n:null}function Y(e){const n={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii:!1,posixIsAscii:!1,spaceIsAscii:!1,wordIsAscii:!1,textSegmentMode:null};for(let t=0;t<e.length;t++){const o=e[t];if(!\"imxDPSWy\".includes(o))throw new Error(`Invalid flag \"${o}\"`);if(o===\"y\"){if(!/^y{[gw]}/.test(e.slice(t)))throw new Error('Invalid or unspecified flag \"y\" mode');n.textSegmentMode=e[t+2]===\"g\"?\"grapheme\":\"word\",t+=3;continue}n[{i:\"ignoreCase\",m:\"dotAll\",x:\"extended\",D:\"digitIsAscii\",P:\"posixIsAscii\",S:\"spaceIsAscii\",W:\"wordIsAscii\"}[o]]=!0}return n}function J(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}\"`);const n=e[2]===\"{\"?/^\\\\x\\{\\s*(?<hex>\\p{AHex}+)/u.exec(e).groups.hex:e.slice(2);return parseInt(n,16)}function ee(e,n){const{raw:t,inCharClass:o}=e,s=t.slice(1);if(!o&&(s!==\"0\"&&s.length===1||s[0]!==\"0\"&&+s<=n))return[A(t)];const a=[],r=s.match(/^[0-7]+|\\d/g);for(let i=0;i<r.length;i++){const l=r[i];let c;if(i===0&&l!==\"8\"&&l!==\"9\"){if(c=parseInt(l,8),c>127)throw new Error(p`Octal encoded byte above 177 unsupported \"${t}\"`)}else c=h(l);a.push(d(c,(i===0?\"\\\\\":\"\")+l))}return a}function te(e){const n=[],t=new RegExp(y,\"gy\");let o;for(;o=t.exec(e);){const s=o[0];if(s[0]===\"{\"){const a=/^\\{(?<min>\\d+),(?<max>\\d+)\\}\\??$/.exec(s);if(a){const{min:r,max:i}=a.groups;if(+r>+i&&s.endsWith(\"?\")){t.lastIndex--,n.push(O(s.slice(0,-1)));continue}}}n.push(O(s))}return n}export{M as tokenize};\n//# sourceMappingURL=tokenize.js.map\n","\"use strict\";function o(e,t){if(!Array.isArray(e.body))throw new Error(\"Expected node with body array\");if(e.body.length!==1)return!1;const r=e.body[0];return!t||Object.keys(t).every(n=>t[n]===r[n])}function a(e){return!(!i.has(e.type)||e.type===\"AbsenceFunction\"&&e.kind!==\"repeater\")}const i=new Set([\"AbsenceFunction\",\"CapturingGroup\",\"Group\",\"LookaroundAssertion\",\"Regex\"]);function s(e){return y.has(e.type)}const y=new Set([\"AbsenceFunction\",\"Backreference\",\"CapturingGroup\",\"Character\",\"CharacterClass\",\"CharacterSet\",\"Group\",\"Quantifier\",\"Subroutine\"]);export{o as hasOnlyChild,a as isAlternativeContainer,s as isQuantifiable};\n//# sourceMappingURL=node-utils.js.map\n","\"use strict\";import{tokenize as q}from\"../tokenizer/tokenize.js\";import{cpOf as H,getOrInsert as Z,PosixClassNames as x,r as y,throwIfNullish as g}from\"../utils.js\";import{hasOnlyChild as Y,isAlternativeContainer as j,isQuantifiable as S}from\"./node-utils.js\";function J(e,r={}){const n={flags:\"\",normalizeUnknownPropertyNames:!1,skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...r,rules:{captureGroup:!1,singleline:!1,...r.rules}},t=q(e,{flags:n.flags,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline}}),s=(p,N)=>{const u=t.tokens[o.nextIndex];switch(o.parent=p,o.nextIndex++,u.type){case\"Alternator\":return b();case\"Assertion\":return W(u);case\"Backreference\":return X(u,o);case\"Character\":return m(u.value,{useLastValid:!!N.isCheckingRangeEnd});case\"CharacterClassHyphen\":return ee(u,o,N);case\"CharacterClassOpen\":return re(u,o,N);case\"CharacterSet\":return ne(u,o);case\"Directive\":return I(u.kind,{flags:u.flags});case\"GroupOpen\":return te(u,o,N);case\"NamedCallout\":return U(u.kind,u.tag,u.arguments);case\"Quantifier\":return oe(u,o);case\"Subroutine\":return ae(u,o);default:throw new Error(`Unexpected token type \"${u.type}\"`)}},o={capturingGroups:[],hasNumberedRef:!1,namedGroupsByName:new Map,nextIndex:0,normalizeUnknownPropertyNames:n.normalizeUnknownPropertyNames,parent:null,skipBackrefValidation:n.skipBackrefValidation,skipLookbehindValidation:n.skipLookbehindValidation,skipPropertyNameValidation:n.skipPropertyNameValidation,subroutines:[],tokens:t.tokens,unicodePropertyMap:n.unicodePropertyMap,walk:s},i=B(T(t.flags));let d=i.body[0];for(;o.nextIndex<t.tokens.length;){const p=s(d,{});p.type===\"Alternative\"?(i.body.push(p),d=p):d.body.push(p)}const{capturingGroups:a,hasNumberedRef:l,namedGroupsByName:c,subroutines:f}=o;if(l&&c.size&&!n.rules.captureGroup)throw new Error(\"Numbered backref/subroutine not allowed when using named capture\");for(const{ref:p}of f)if(typeof p==\"number\"){if(p>a.length)throw new Error(\"Subroutine uses a group number that's not defined\");p&&(a[p-1].isSubroutined=!0)}else if(c.has(p)){if(c.get(p).length>1)throw new Error(y`Subroutine uses a duplicate group name \"\\g<${p}>\"`);c.get(p)[0].isSubroutined=!0}else throw new Error(y`Subroutine uses a group name that's not defined \"\\g<${p}>\"`);return i}function W({kind:e}){return F(g({\"^\":\"line_start\",$:\"line_end\",\"\\\\A\":\"string_start\",\"\\\\b\":\"word_boundary\",\"\\\\B\":\"word_boundary\",\"\\\\G\":\"search_start\",\"\\\\y\":\"text_segment_boundary\",\"\\\\Y\":\"text_segment_boundary\",\"\\\\z\":\"string_end\",\"\\\\Z\":\"string_end_newline\"}[e],`Unexpected assertion kind \"${e}\"`),{negate:e===y`\\B`||e===y`\\Y`})}function X({raw:e},r){const n=/^\\\\k[<']/.test(e),t=n?e.slice(3,-1):e.slice(1),s=(o,i=!1)=>{const d=r.capturingGroups.length;let a=!1;if(o>d)if(r.skipBackrefValidation)a=!0;else throw new Error(`Not enough capturing groups defined to the left \"${e}\"`);return r.hasNumberedRef=!0,k(i?d+1-o:o,{orphan:a})};if(n){const o=/^(?<sign>-?)0*(?<num>[1-9]\\d*)$/.exec(t);if(o)return s(+o.groups.num,!!o.groups.sign);if(/[-+]/.test(t))throw new Error(`Invalid backref name \"${e}\"`);if(!r.namedGroupsByName.has(t))throw new Error(`Group name not defined to the left \"${e}\"`);return k(t)}return s(+t)}function ee(e,r,n){const{tokens:t,walk:s}=r,o=r.parent,i=o.body.at(-1),d=t[r.nextIndex];if(!n.isCheckingRangeEnd&&i&&i.type!==\"CharacterClass\"&&i.type!==\"CharacterClassRange\"&&d&&d.type!==\"CharacterClassOpen\"&&d.type!==\"CharacterClassClose\"&&d.type!==\"CharacterClassIntersector\"){const a=s(o,{...n,isCheckingRangeEnd:!0});if(i.type===\"Character\"&&a.type===\"Character\")return o.body.pop(),L(i,a);throw new Error(\"Invalid character class range\")}return m(H(\"-\"))}function re({negate:e},r,n){const{tokens:t,walk:s}=r,o=t[r.nextIndex],i=[C()];let d=z(o);for(;d.type!==\"CharacterClassClose\";){if(d.type===\"CharacterClassIntersector\")i.push(C()),r.nextIndex++;else{const l=i.at(-1);l.body.push(s(l,n))}d=z(t[r.nextIndex],o)}const a=C({negate:e});return i.length===1?a.body=i[0].body:(a.kind=\"intersection\",a.body=i.map(l=>l.body.length===1?l.body[0]:l)),r.nextIndex++,a}function ne({kind:e,negate:r,value:n},t){const{normalizeUnknownPropertyNames:s,skipPropertyNameValidation:o,unicodePropertyMap:i}=t;if(e===\"property\"){const d=w(n);if(x.has(d)&&!i?.has(d))e=\"posix\",n=d;else return Q(n,{negate:r,normalizeUnknownPropertyNames:s,skipPropertyNameValidation:o,unicodePropertyMap:i})}return e===\"posix\"?R(n,{negate:r}):E(e,{negate:r})}function te(e,r,n){const{tokens:t,capturingGroups:s,namedGroupsByName:o,skipLookbehindValidation:i,walk:d}=r,a=ie(e),l=a.type===\"AbsenceFunction\",c=$(a),f=c&&a.negate;if(a.type===\"CapturingGroup\"&&(s.push(a),a.name&&Z(o,a.name,[]).push(a)),l&&n.isInAbsenceFunction)throw new Error(\"Nested absence function not supported by Oniguruma\");let p=D(t[r.nextIndex]);for(;p.type!==\"GroupClose\";){if(p.type===\"Alternator\")a.body.push(b()),r.nextIndex++;else{const N=a.body.at(-1),u=d(N,{...n,isInAbsenceFunction:n.isInAbsenceFunction||l,isInLookbehind:n.isInLookbehind||c,isInNegLookbehind:n.isInNegLookbehind||f});if(N.body.push(u),(c||n.isInLookbehind)&&!i){const v=\"Lookbehind includes a pattern not allowed by Oniguruma\";if(f||n.isInNegLookbehind){if(M(u)||u.type===\"CapturingGroup\")throw new Error(v)}else if(M(u)||$(u)&&u.negate)throw new Error(v)}}p=D(t[r.nextIndex])}return r.nextIndex++,a}function oe({kind:e,min:r,max:n},t){const s=t.parent,o=s.body.at(-1);if(!o||!S(o))throw new Error(\"Quantifier requires a repeatable token\");const i=_(e,r,n,o);return s.body.pop(),i}function ae({raw:e},r){const{capturingGroups:n,subroutines:t}=r;let s=e.slice(3,-1);const o=/^(?<sign>[-+]?)0*(?<num>[1-9]\\d*)$/.exec(s);if(o){const d=+o.groups.num,a=n.length;if(r.hasNumberedRef=!0,s={\"\":d,\"+\":a+d,\"-\":a+1-d}[o.groups.sign],s<1)throw new Error(\"Invalid subroutine number\")}else s===\"0\"&&(s=0);const i=O(s);return t.push(i),i}function G(e,r){if(e!==\"repeater\")throw new Error(`Unexpected absence function kind \"${e}\"`);return{type:\"AbsenceFunction\",kind:e,body:h(r?.body)}}function b(e){return{type:\"Alternative\",body:V(e?.body)}}function F(e,r){const n={type:\"Assertion\",kind:e};return(e===\"word_boundary\"||e===\"text_segment_boundary\")&&(n.negate=!!r?.negate),n}function k(e,r){const n=!!r?.orphan;return{type:\"Backreference\",ref:e,...n&&{orphan:n}}}function P(e,r){const n={name:void 0,isSubroutined:!1,...r};if(n.name!==void 0&&!se(n.name))throw new Error(`Group name \"${n.name}\" invalid in Oniguruma`);return{type:\"CapturingGroup\",number:e,...n.name&&{name:n.name},...n.isSubroutined&&{isSubroutined:n.isSubroutined},body:h(r?.body)}}function m(e,r){const n={useLastValid:!1,...r};if(e>1114111){const t=e.toString(16);if(n.useLastValid)e=1114111;else throw e>1310719?new Error(`Invalid code point out of range \"\\\\x{${t}}\"`):new Error(`Invalid code point out of range in JS \"\\\\x{${t}}\"`)}return{type:\"Character\",value:e}}function C(e){const r={kind:\"union\",negate:!1,...e};return{type:\"CharacterClass\",kind:r.kind,negate:r.negate,body:V(e?.body)}}function L(e,r){if(r.value<e.value)throw new Error(\"Character class range out of order\");return{type:\"CharacterClassRange\",min:e,max:r}}function E(e,r){const n=!!r?.negate,t={type:\"CharacterSet\",kind:e};return(e===\"digit\"||e===\"hex\"||e===\"newline\"||e===\"space\"||e===\"word\")&&(t.negate=n),(e===\"text_segment\"||e===\"newline\"&&!n)&&(t.variableLength=!0),t}function I(e,r={}){if(e===\"keep\")return{type:\"Directive\",kind:e};if(e===\"flags\")return{type:\"Directive\",kind:e,flags:g(r.flags)};throw new Error(`Unexpected directive kind \"${e}\"`)}function T(e){return{type:\"Flags\",...e}}function A(e){const r=e?.atomic,n=e?.flags;if(r&&n)throw new Error(\"Atomic group cannot have flags\");return{type:\"Group\",...r&&{atomic:r},...n&&{flags:n},body:h(e?.body)}}function K(e){const r={behind:!1,negate:!1,...e};return{type:\"LookaroundAssertion\",kind:r.behind?\"lookbehind\":\"lookahead\",negate:r.negate,body:h(e?.body)}}function U(e,r,n){return{type:\"NamedCallout\",kind:e,tag:r,arguments:n}}function R(e,r){const n=!!r?.negate;if(!x.has(e))throw new Error(`Invalid POSIX class \"${e}\"`);return{type:\"CharacterSet\",kind:\"posix\",value:e,negate:n}}function _(e,r,n,t){if(r>n)throw new Error(\"Invalid reversed quantifier range\");return{type:\"Quantifier\",kind:e,min:r,max:n,body:t}}function B(e,r){return{type:\"Regex\",body:h(r?.body),flags:e}}function O(e){return{type:\"Subroutine\",ref:e}}function Q(e,r){const n={negate:!1,normalizeUnknownPropertyNames:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...r};let t=n.unicodePropertyMap?.get(w(e));if(!t){if(n.normalizeUnknownPropertyNames)t=de(e);else if(n.unicodePropertyMap&&!n.skipPropertyNameValidation)throw new Error(y`Invalid Unicode property \"\\p{${e}}\"`)}return{type:\"CharacterSet\",kind:\"property\",value:t??e,negate:n.negate}}function ie({flags:e,kind:r,name:n,negate:t,number:s}){switch(r){case\"absence_repeater\":return G(\"repeater\");case\"atomic\":return A({atomic:!0});case\"capturing\":return P(s,{name:n});case\"group\":return A({flags:e});case\"lookahead\":case\"lookbehind\":return K({behind:r===\"lookbehind\",negate:t});default:throw new Error(`Unexpected group kind \"${r}\"`)}}function h(e){if(e===void 0)e=[b()];else if(!Array.isArray(e)||!e.length||!e.every(r=>r.type===\"Alternative\"))throw new Error(\"Invalid body; expected array of one or more Alternative nodes\");return e}function V(e){if(e===void 0)e=[];else if(!Array.isArray(e)||!e.every(r=>!!r.type))throw new Error(\"Invalid body; expected array of nodes\");return e}function M(e){return e.type===\"LookaroundAssertion\"&&e.kind===\"lookahead\"}function $(e){return e.type===\"LookaroundAssertion\"&&e.kind===\"lookbehind\"}function se(e){return/^[\\p{Alpha}\\p{Pc}][^)]*$/u.test(e)}function de(e){return e.trim().replace(/[- _]+/g,\"_\").replace(/[A-Z][a-z]+(?=[A-Z])/g,\"$&_\").replace(/[A-Za-z]+/g,r=>r[0].toUpperCase()+r.slice(1).toLowerCase())}function w(e){return e.replace(/[- _]+/g,\"\").toLowerCase()}function z(e,r){return g(e,`${r?.type===\"Character\"&&r.value===93?\"Empty\":\"Unclosed\"} character class`)}function D(e){return g(e,\"Unclosed group\")}export{G as createAbsenceFunction,b as createAlternative,F as createAssertion,k as createBackreference,P as createCapturingGroup,m as createCharacter,C as createCharacterClass,L as createCharacterClassRange,E as createCharacterSet,I as createDirective,T as createFlags,A as createGroup,K as createLookaroundAssertion,U as createNamedCallout,R as createPosixClass,_ as createQuantifier,B as createRegex,O as createSubroutine,Q as createUnicodeProperty,Y as hasOnlyChild,j as isAlternativeContainer,S as isQuantifiable,J as parse,w as slug};\n//# sourceMappingURL=parse.js.map\n","\"use strict\";import{throwIfNullish as A}from\"../utils.js\";function S(a,v,N=null){function u(e,s){for(let t=0;t<e.length;t++){const r=n(e[t],s,t,e);t=Math.max(-1,t+r)}}function n(e,s=null,t=null,r=null){let i=0,c=!1;const d={node:e,parent:s,key:t,container:r,root:a,remove(){f(r).splice(Math.max(0,l(t)+i),1),i--,c=!0},removeAllNextSiblings(){return f(r).splice(l(t)+1)},removeAllPrevSiblings(){const o=l(t)+i;return i-=o,f(r).splice(0,Math.max(0,o))},replaceWith(o,y={}){const b=!!y.traverse;r?r[Math.max(0,l(t)+i)]=o:A(s,\"Can't replace root node\")[t]=o,b&&n(o,s,t,r),c=!0},replaceWithMultiple(o,y={}){const b=!!y.traverse;if(f(r).splice(Math.max(0,l(t)+i),1,...o),i+=o.length-1,b){let g=0;for(let x=0;x<o.length;x++)g+=n(o[x],s,l(t)+x+g,r)}c=!0},skip(){c=!0}},{type:m}=e,h=v[\"*\"],p=v[m],R=typeof h==\"function\"?h:h?.enter,P=typeof p==\"function\"?p:p?.enter;if(R?.(d,N),P?.(d,N),!c)switch(m){case\"AbsenceFunction\":case\"CapturingGroup\":case\"Group\":u(e.body,e);break;case\"Alternative\":case\"CharacterClass\":u(e.body,e);break;case\"Assertion\":case\"Backreference\":case\"Character\":case\"CharacterSet\":case\"Directive\":case\"Flags\":case\"NamedCallout\":case\"Subroutine\":break;case\"CharacterClassRange\":n(e.min,e,\"min\"),n(e.max,e,\"max\");break;case\"LookaroundAssertion\":u(e.body,e);break;case\"Quantifier\":n(e.body,e,\"body\");break;case\"Regex\":u(e.body,e),n(e.flags,e,\"flags\");break;default:throw new Error(`Unexpected node type \"${m}\"`)}return p?.exit?.(d,N),h?.exit?.(d,N),i}return n(a),a}function f(a){if(!Array.isArray(a))throw new Error(\"Container expected\");return a}function l(a){if(typeof a!=\"number\")throw new Error(\"Numeric key expected\");return a}export{S as traverse};\n//# sourceMappingURL=traverse.js.map\n","// Separating some utils for improved tree shaking of the `./internals` export\n\nconst noncapturingDelim = String.raw`\\(\\?(?:[:=!>A-Za-z\\-]|<[=!]|\\(DEFINE\\))`;\n\n/**\nUpdates the array in place by incrementing each value greater than or equal to the threshold.\n@param {Array<number>} arr\n@param {number} threshold\n*/\nfunction incrementIfAtLeast(arr, threshold) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] >= threshold) {\n arr[i]++;\n }\n }\n}\n\n/**\n@param {string} str\n@param {number} pos\n@param {string} oldValue\n@param {string} newValue\n@returns {string}\n*/\nfunction spliceStr(str, pos, oldValue, newValue) {\n return str.slice(0, pos) + newValue + str.slice(pos + oldValue.length);\n}\n\nexport {\n incrementIfAtLeast,\n noncapturingDelim,\n spliceStr,\n};\n","// Constant properties for tracking regex syntax context\nexport const Context = Object.freeze({\n DEFAULT: 'DEFAULT',\n CHAR_CLASS: 'CHAR_CLASS',\n});\n\n/**\nReplaces all unescaped instances of a regex pattern in the given context, using a replacement\nstring or callback.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {string | (match: RegExpExecArray, details: {\n context: 'DEFAULT' | 'CHAR_CLASS';\n negated: boolean;\n}) => string} replacement\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {string} Updated expression\n@example\nconst str = '.\\\\.\\\\\\\\.[[\\\\.].].';\nreplaceUnescaped(str, '\\\\.', '@');\n// → '@\\\\.\\\\\\\\@[[\\\\.]@]@'\nreplaceUnescaped(str, '\\\\.', '@', Context.DEFAULT);\n// → '@\\\\.\\\\\\\\@[[\\\\.].]@'\nreplaceUnescaped(str, '\\\\.', '@', Context.CHAR_CLASS);\n// → '.\\\\.\\\\\\\\.[[\\\\.]@].'\n*/\nexport function replaceUnescaped(expression, needle, replacement, context) {\n const re = new RegExp(String.raw`${needle}|(?<$skip>\\[\\^?|\\\\?.)`, 'gsu');\n const negated = [false];\n let numCharClassesOpen = 0;\n let result = '';\n for (const match of expression.matchAll(re)) {\n const {0: m, groups: {$skip}} = match;\n if (!$skip && (!context || (context === Context.DEFAULT) === !numCharClassesOpen)) {\n if (replacement instanceof Function) {\n result += replacement(match, {\n context: numCharClassesOpen ? Context.CHAR_CLASS : Context.DEFAULT,\n negated: negated[negated.length - 1],\n });\n } else {\n result += replacement;\n }\n continue;\n }\n if (m[0] === '[') {\n numCharClassesOpen++;\n negated.push(m[1] === '^');\n } else if (m === ']' && numCharClassesOpen) {\n numCharClassesOpen--;\n negated.pop();\n }\n result += m;\n }\n return result;\n}\n\n/**\nRuns a callback for each unescaped instance of a regex pattern in the given context.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {(match: RegExpExecArray, details: {\n context: 'DEFAULT' | 'CHAR_CLASS';\n negated: boolean;\n}) => void} callback\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n*/\nexport function forEachUnescaped(expression, needle, callback, context) {\n // Do this the easy way\n replaceUnescaped(expression, needle, callback, context);\n}\n\n/**\nReturns a match object for the first unescaped instance of a regex pattern in the given context, or\n`null`.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {number} [pos] Offset to start the search\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {RegExpExecArray | null}\n*/\nexport function execUnescaped(expression, needle, pos = 0, context) {\n // Quick partial test; avoid the loop if not needed\n if (!(new RegExp(needle, 'su').test(expression))) {\n return null;\n }\n const re = new RegExp(`${needle}|(?<$skip>\\\\\\\\?.)`, 'gsu');\n re.lastIndex = pos;\n let numCharClassesOpen = 0;\n let match;\n while (match = re.exec(expression)) {\n const {0: m, groups: {$skip}} = match;\n if (!$skip && (!context || (context === Context.DEFAULT) === !numCharClassesOpen)) {\n return match;\n }\n if (m === '[') {\n numCharClassesOpen++;\n } else if (m === ']' && numCharClassesOpen) {\n numCharClassesOpen--;\n }\n // Avoid an infinite loop on zero-length matches\n if (re.lastIndex == match.index) {\n re.lastIndex++;\n }\n }\n return null;\n}\n\n/**\nChecks whether an unescaped instance of a regex pattern appears in the given context.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {boolean} Whether the pattern was found\n*/\nexport function hasUnescaped(expression, needle, context) {\n // Do this the easy way\n return !!execUnescaped(expression, needle, 0, context);\n}\n\n/**\nExtracts the full contents of a group (subpattern) from the given expression, accounting for\nescaped characters, nested groups, and character classes. The group is identified by the position\nwhere its contents start (the string index just after the group's opening delimiter). Returns the\nrest of the string if the group is unclosed.\n\nAssumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {number} contentsStartPos\n@returns {string}\n*/\nexport function getGroupContents(expression, contentsStartPos) {\n const token = /\\\\?./gsu;\n token.lastIndex = contentsStartPos;\n let contentsEndPos = expression.length;\n let numCharClassesOpen = 0;\n // Starting search within an open group, after the group's opening\n let numGroupsOpen = 1;\n let match;\n while (match = token.exec(expression)) {\n const [m] = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (m === '(') {\n numGroupsOpen++;\n } else if (m === ')') {\n numGroupsOpen--;\n if (!numGroupsOpen) {\n contentsEndPos = match.index;\n break;\n }\n }\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n return expression.slice(contentsStartPos, contentsEndPos);\n}\n","import {incrementIfAtLeast, noncapturingDelim, spliceStr} from './utils-internals.js';\nimport {Context, replaceUnescaped} from 'regex-utilities';\n/**\n@import {PluginData, PluginResult} from './regex.js';\n*/\n\nconst atomicPluginToken = new RegExp(String.raw`(?<noncapturingStart>${noncapturingDelim})|(?<capturingStart>\\((?:\\?<[^>]+>)?)|\\\\?.`, 'gsu');\n\n/**\nApply transformations for atomic groups: `(?>…)`.\n@param {string} expression\n@param {PluginData} [data]\n@returns {Required<PluginResult>}\n*/\nfunction atomic(expression, data) {\n const hiddenCaptures = data?.hiddenCaptures ?? [];\n // Capture transfer is used by <github.com/slevithan/oniguruma-to-es>\n let captureTransfers = data?.captureTransfers ?? new Map();\n if (!/\\(\\?>/.test(expression)) {\n return {\n pattern: expression,\n captureTransfers,\n hiddenCaptures,\n };\n }\n\n const aGDelim = '(?>';\n const emulatedAGDelim = '(?:(?=(';\n const captureNumMap = [0];\n const addedHiddenCaptures = [];\n let numCapturesBeforeAG = 0;\n let numAGs = 0;\n let aGPos = NaN;\n let hasProcessedAG;\n do {\n hasProcessedAG = false;\n let numCharClassesOpen = 0;\n let numGroupsOpenInAG = 0;\n let inAG = false;\n let match;\n atomicPluginToken.lastIndex = Number.isNaN(aGPos) ? 0 : aGPos + emulatedAGDelim.length;\n while (match = atomicPluginToken.exec(expression)) {\n const {0: m, index, groups: {capturingStart, noncapturingStart}} = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n\n if (m === aGDelim && !inAG) {\n aGPos = index;\n inAG = true;\n } else if (inAG && noncapturingStart) {\n numGroupsOpenInAG++;\n } else if (capturingStart) {\n if (inAG) {\n numGroupsOpenInAG++;\n } else {\n numCapturesBeforeAG++;\n captureNumMap.push(numCapturesBeforeAG + numAGs);\n }\n } else if (m === ')' && inAG) {\n if (!numGroupsOpenInAG) {\n numAGs++;\n const addedCaptureNum = numCapturesBeforeAG + numAGs;\n // Replace `expression` and use `<$$N>` as a temporary wrapper for the backref so it\n // can avoid backref renumbering afterward. Wrap the whole substitution (including the\n // lookahead and following backref) in a noncapturing group to handle following\n // quantifiers and literal digits\n expression = `${expression.slice(0, aGPos)}${emulatedAGDelim}${\n expression.slice(aGPos + aGDelim.length, index)\n }))<$$${addedCaptureNum}>)${expression.slice(index + 1)}`;\n hasProcessedAG = true;\n addedHiddenCaptures.push(addedCaptureNum);\n incrementIfAtLeast(hiddenCaptures, addedCaptureNum);\n if (captureTransfers.size) {\n const newCaptureTransfers = new Map();\n captureTransfers.forEach((from, to) => {\n newCaptureTransfers.set(\n to >= addedCaptureNum ? to + 1 : to,\n from.map(f => f >= addedCaptureNum ? f + 1 : f)\n );\n });\n captureTransfers = newCaptureTransfers;\n }\n break;\n }\n numGroupsOpenInAG--;\n }\n\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n // Start over from the beginning of the atomic group's contents, in case the processed group\n // contains additional atomic groups\n } while (hasProcessedAG);\n\n hiddenCaptures.push(...addedHiddenCaptures);\n\n // Second pass to adjust numbered backrefs\n expression = replaceUnescaped(\n expression,\n String.raw`\\\\(?<backrefNum>[1-9]\\d*)|<\\$\\$(?<wrappedBackrefNum>\\d+)>`,\n ({0: m, groups: {backrefNum, wrappedBackrefNum}}) => {\n if (backrefNum) {\n const bNum = +backrefNum;\n if (bNum > captureNumMap.length - 1) {\n throw new Error(`Backref \"${m}\" greater than number of captures`);\n }\n return `\\\\${captureNumMap[bNum]}`;\n }\n return `\\\\${wrappedBackrefNum}`;\n },\n Context.DEFAULT\n );\n\n return {\n pattern: expression,\n captureTransfers,\n hiddenCaptures,\n };\n}\n\nconst baseQuantifier = String.raw`(?:[?*+]|\\{\\d+(?:,\\d*)?\\})`;\n// Complete tokenizer for base syntax; doesn't (need to) know about character-class-only syntax\nconst possessivePluginToken = new RegExp(String.raw`\n\\\\(?: \\d+\n | c[A-Za-z]\n | [gk]<[^>]+>\n | [pPu]\\{[^\\}]+\\}\n | u[A-Fa-f\\d]{4}\n | x[A-Fa-f\\d]{2}\n )\n| \\((?: \\? (?: [:=!>]\n | <(?:[=!]|[^>]+>)\n | [A-Za-z\\-]+:\n | \\(DEFINE\\)\n ))?\n| (?<qBase>${baseQuantifier})(?<qMod>[?+]?)(?<invalidQ>[?*+\\{]?)\n| \\\\?.\n`.replace(/\\s+/g, ''), 'gsu');\n\n/**\nTransform posessive quantifiers into atomic groups. The posessessive quantifiers are:\n`?+`, `*+`, `++`, `{N}+`, `{N,}+`, `{N,N}+`.\nThis follows Java, PCRE, Perl, and Python.\nPossessive quantifiers in Oniguruma and Onigmo are only: `?+`, `*+`, `++`.\n@param {string} expression\n@returns {PluginResult}\n*/\nfunction possessive(expression) {\n if (!(new RegExp(`${baseQuantifier}\\\\+`).test(expression))) {\n return {\n pattern: expression,\n };\n }\n\n const openGroupIndices = [];\n let lastGroupIndex = null;\n let lastCharClassIndex = null;\n let lastToken = '';\n let numCharClassesOpen = 0;\n let match;\n possessivePluginToken.lastIndex = 0;\n while (match = possessivePluginToken.exec(expression)) {\n const {0: m, index, groups: {qBase, qMod, invalidQ}} = match;\n if (m === '[') {\n if (!numCharClassesOpen) {\n lastCharClassIndex = index;\n }\n numCharClassesOpen++;\n } else if (m === ']') {\n if (numCharClassesOpen) {\n numCharClassesOpen--;\n // Unmatched `]`\n } else {\n lastCharClassIndex = null;\n }\n } else if (!numCharClassesOpen) {\n\n if (qMod === '+' && lastToken && !lastToken.startsWith('(')) {\n // Invalid following quantifier would become valid via the wrapping group\n if (invalidQ) {\n throw new Error(`Invalid quantifier \"${m}\"`);\n }\n let charsAdded = -1; // -1 for removed trailing `+`\n // Possessivizing fixed repetition quantifiers like `{2}` does't change their behavior, so\n // avoid doing so (convert them to greedy)\n if (/^\\{\\d+\\}$/.test(qBase)) {\n expression = spliceStr(expression, index + qBase.length, qMod, '');\n } else {\n if (lastToken === ')' || lastToken === ']') {\n const nodeIndex = lastToken === ')' ? lastGroupIndex : lastCharClassIndex;\n // Unmatched `)` would break out of the wrapping group and mess with handling.\n // Unmatched `]` wouldn't be a problem, but it's unnecessary to have dedicated support\n // for unescaped `]++` since this won't work with flag u or v anyway\n if (nodeIndex === null) {\n throw new Error(`Invalid unmatched \"${lastToken}\"`);\n }\n expression = `${expression.slice(0, nodeIndex)}(?>${expression.slice(nodeIndex, index)}${qBase})${expression.slice(index + m.length)}`;\n } else {\n expression = `${expression.slice(0, index - lastToken.length)}(?>${lastToken}${qBase})${expression.slice(index + m.length)}`;\n }\n charsAdded += 4; // `(?>)`\n }\n possessivePluginToken.lastIndex += charsAdded;\n } else if (m[0] === '(') {\n openGroupIndices.push(index);\n } else if (m === ')') {\n lastGroupIndex = openGroupIndices.length ? openGroupIndices.pop() : null;\n }\n\n }\n lastToken = m;\n }\n\n return {\n pattern: expression,\n };\n}\n\nexport {\n atomic,\n possessive,\n};\n","import {Context, forEachUnescaped, getGroupContents, hasUnescaped, replaceUnescaped} from 'regex-utilities';\n\nconst r = String.raw;\nconst gRToken = r`\\\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`;\nconst recursiveToken = r`\\(\\?R=(?<rDepth>[^\\)]+)\\)|${gRToken}`;\nconst namedCaptureDelim = r`\\(\\?<(?![=!])(?<captureName>[^>]+)>`;\nconst captureDelim = r`${namedCaptureDelim}|(?<unnamed>\\()(?!\\?)`;\nconst token = new RegExp(r`${namedCaptureDelim}|${recursiveToken}|\\(\\?|\\\\?.`, 'gsu');\nconst overlappingRecursionMsg = 'Cannot use multiple overlapping recursions';\n\n/**\n@param {string} pattern\n@param {{\n flags?: string;\n captureTransfers?: Map<number, Array<number>>;\n hiddenCaptures?: Array<number>;\n mode?: 'plugin' | 'external';\n}} [data]\n@returns {{\n pattern: string;\n captureTransfers: Map<number, Array<number>>;\n hiddenCaptures: Array<number>;\n}}\n*/\nfunction recursion(pattern, data) {\n const {hiddenCaptures, mode} = {\n hiddenCaptures: [],\n mode: 'plugin',\n ...data,\n };\n // Capture transfer is used by <github.com/slevithan/oniguruma-to-es>\n let captureTransfers = data?.captureTransfers ?? new Map();\n // Keep the initial fail-check (which avoids unneeded processing) as fast as possible by testing\n // without the accuracy improvement of using `hasUnescaped` with `Context.DEFAULT`\n if (!(new RegExp(recursiveToken, 'su').test(pattern))) {\n return {\n pattern,\n captureTransfers,\n hiddenCaptures,\n };\n }\n if (mode === 'plugin' && hasUnescaped(pattern, r`\\(\\?\\(DEFINE\\)`, Context.DEFAULT)) {\n throw new Error('DEFINE groups cannot be used with recursion');\n }\n\n const addedHiddenCaptures = [];\n const hasNumberedBackref = hasUnescaped(pattern, r`\\\\[1-9]`, Context.DEFAULT);\n const groupContentsStartPos = new Map();\n const openGroups = [];\n let hasRecursed = false;\n let numCharClassesOpen = 0;\n let numCapturesPassed = 0;\n let match;\n token.lastIndex = 0;\n while ((match = token.exec(pattern))) {\n const {0: m, groups: {captureName, rDepth, gRNameOrNum, gRDepth}} = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n\n // `(?R=N)`\n if (rDepth) {\n assertMaxInBounds(rDepth);\n if (hasRecursed) {\n throw new Error(overlappingRecursionMsg);\n }\n if (hasNumberedBackref) {\n // Could add support for numbered backrefs with extra effort, but it's probably not worth\n // it. To trigger this error, the regex must include recursion and one of the following:\n // - An interpolated regex that contains a numbered backref (since other numbered\n // backrefs are prevented by implicit flag n).\n // - A numbered backref, when flag n is explicitly disabled.\n // Note that Regex+'s extended syntax (atomic groups and sometimes subroutines) can also\n // add numbered backrefs, but those work fine because external plugins like this one run\n // *before* the transformation of built-in syntax extensions\n throw new Error(\n // When used in `external` mode by transpilers other than Regex+, backrefs might have\n // gone through conversion from named to numbered, so avoid a misleading error\n `${mode === 'external' ? 'Backrefs' : 'Numbered backrefs'} cannot be used with global recursion`\n );\n }\n const left = pattern.slice(0, match.index);\n const right = pattern.slice(token.lastIndex);\n if (hasUnescaped(right, recursiveToken, Context.DEFAULT)) {\n throw new Error(overlappingRecursionMsg);\n }\n const reps = +rDepth - 1;\n pattern = makeRecursive(\n left,\n right,\n reps,\n false,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n );\n captureTransfers = mapCaptureTransfers(\n captureTransfers,\n left,\n reps,\n addedHiddenCaptures.length,\n 0,\n numCapturesPassed\n );\n // No need to parse further\n break;\n // `\\g<name&R=N>`, `\\g<number&R=N>`\n } else if (gRNameOrNum) {\n assertMaxInBounds(gRDepth);\n let isWithinReffedGroup = false;\n for (const g of openGroups) {\n if (g.name === gRNameOrNum || g.num === +gRNameOrNum) {\n isWithinReffedGroup = true;\n if (g.hasRecursedWithin) {\n throw new Error(overlappingRecursionMsg);\n }\n break;\n }\n }\n if (!isWithinReffedGroup) {\n throw new Error(r`Recursive \\g cannot be used outside the referenced group \"${\n mode === 'external' ? gRNameOrNum : r`\\g<${gRNameOrNum}&R=${gRDepth}>`\n }\"`);\n }\n const startPos = groupContentsStartPos.get(gRNameOrNum);\n const groupContents = getGroupContents(pattern, startPos);\n if (\n hasNumberedBackref &&\n hasUnescaped(groupContents, r`${namedCaptureDelim}|\\((?!\\?)`, Context.DEFAULT)\n ) {\n throw new Error(\n // When used in `external` mode by transpilers other than Regex+, backrefs might have\n // gone through conversion from named to numbered, so avoid a misleading error\n `${mode === 'external' ? 'Backrefs' : 'Numbered backrefs'} cannot be used with recursion of capturing groups`\n );\n }\n const groupContentsLeft = pattern.slice(startPos, match.index);\n const groupContentsRight = groupContents.slice(groupContentsLeft.length + m.length);\n const numAddedHiddenCapturesPreExpansion = addedHiddenCaptures.length;\n const reps = +gRDepth - 1;\n const expansion = makeRecursive(\n groupContentsLeft,\n groupContentsRight,\n reps,\n true,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n );\n captureTransfers = mapCaptureTransfers(\n captureTransfers,\n groupContentsLeft,\n reps,\n addedHiddenCaptures.length - numAddedHiddenCapturesPreExpansion,\n numAddedHiddenCapturesPreExpansion,\n numCapturesPassed\n );\n const pre = pattern.slice(0, startPos);\n const post = pattern.slice(startPos + groupContents.length);\n // Modify the string we're looping over\n pattern = `${pre}${expansion}${post}`;\n // Step forward for the next loop iteration\n token.lastIndex += expansion.length - m.length - groupContentsLeft.length - groupContentsRight.length;\n openGroups.forEach(g => g.hasRecursedWithin = true);\n hasRecursed = true;\n } else if (captureName) {\n numCapturesPassed++;\n groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);\n groupContentsStartPos.set(captureName, token.lastIndex);\n openGroups.push({\n num: numCapturesPassed,\n name: captureName,\n });\n } else if (m[0] === '(') {\n const isUnnamedCapture = m === '(';\n if (isUnnamedCapture) {\n numCapturesPassed++;\n groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);\n }\n openGroups.push(isUnnamedCapture ? {num: numCapturesPassed} : {});\n } else if (m === ')') {\n openGroups.pop();\n }\n\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n\n hiddenCaptures.push(...addedHiddenCaptures);\n\n return {\n pattern,\n captureTransfers,\n hiddenCaptures,\n };\n}\n\n/**\n@param {string} max\n*/\nfunction assertMaxInBounds(max) {\n const errMsg = `Max depth must be integer between 2 and 100; used ${max}`;\n if (!/^[1-9]\\d*$/.test(max)) {\n throw new Error(errMsg);\n }\n max = +max;\n if (max < 2 || max > 100) {\n throw new Error(errMsg);\n }\n}\n\n/**\n@param {string} left\n@param {string} right\n@param {number} reps\n@param {boolean} isSubpattern\n@param {Array<number>} hiddenCaptures\n@param {Array<number>} addedHiddenCaptures\n@param {number} numCapturesPassed\n@returns {string}\n*/\nfunction makeRecursive(\n left,\n right,\n reps,\n isSubpattern,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n) {\n const namesInRecursed = new Set();\n // Can skip this work if not needed\n if (isSubpattern) {\n forEachUnescaped(left + right, namedCaptureDelim, ({groups: {captureName}}) => {\n namesInRecursed.add(captureName);\n }, Context.DEFAULT);\n }\n const rest = [\n reps,\n isSubpattern ? namesInRecursed : null,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed,\n ];\n // Depth 2: 'left(?:left(?:)right)right'\n // Depth 3: 'left(?:left(?:left(?:)right)right)right'\n // Empty group in the middle separates tokens and absorbs a following quantifier if present\n return `${left}${\n repeatWithDepth(`(?:${left}`, 'forward', ...rest)\n }(?:)${\n repeatWithDepth(`${right})`, 'backward', ...rest)\n }${right}`;\n}\n\n/**\n@param {string} pattern\n@param {'forward' | 'backward'} direction\n@param {number} reps\n@param {Set<string> | null} namesInRecursed\n@param {Array<number>} hiddenCaptures\n@param {Array<number>} addedHiddenCaptures\n@param {number} numCapturesPassed\n@returns {string}\n*/\nfunction repeatWithDepth(\n pattern,\n direction,\n reps,\n namesInRecursed,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n) {\n const startNum = 2;\n const getDepthNum = i => direction === 'forward' ? (i + startNum) : (reps - i + startNum - 1);\n let result = '';\n for (let i = 0; i < reps; i++) {\n const depthNum = getDepthNum(i);\n result += replaceUnescaped(\n pattern,\n r`${captureDelim}|\\\\k<(?<backref>[^>]+)>`,\n ({0: m, groups: {captureName, unnamed, backref}}) => {\n if (backref && namesInRecursed && !namesInRecursed.has(backref)) {\n // Don't alter backrefs to groups outside the recursed subpattern\n return m;\n }\n const suffix = `_$${depthNum}`;\n if (unnamed || captureName) {\n const addedCaptureNum = numCapturesPassed + addedHiddenCaptures.length + 1;\n addedHiddenCaptures.push(addedCaptureNum);\n incrementIfAtLeast(hiddenCaptures, addedCaptureNum);\n return unnamed ? m : `(?<${captureName}${suffix}>`;\n }\n return r`\\k<${backref}${suffix}>`;\n },\n Context.DEFAULT\n );\n }\n return result;\n}\n\n/**\nUpdates the array in place by incrementing each value greater than or equal to the threshold.\n@param {Array<number>} arr\n@param {number} threshold\n*/\nfunction incrementIfAtLeast(arr, threshold) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] >= threshold) {\n arr[i]++;\n }\n }\n}\n\n/**\n@param {Map<number, Array<number>>} captureTransfers\n@param {string} left\n@param {number} reps\n@param {number} numCapturesAddedInExpansion\n@param {number} numAddedHiddenCapturesPreExpansion\n@param {number} numCapturesPassed\n@returns {Map<number, Array<number>>}\n*/\nfunction mapCaptureTransfers(captureTransfers, left, reps, numCapturesAddedInExpansion, numAddedHiddenCapturesPreExpansion, numCapturesPassed) {\n if (captureTransfers.size && numCapturesAddedInExpansion) {\n let numCapturesInLeft = 0;\n forEachUnescaped(left, captureDelim, () => numCapturesInLeft++, Context.DEFAULT);\n // Is 0 for global recursion\n const recursionDelimCaptureNum = numCapturesPassed - numCapturesInLeft + numAddedHiddenCapturesPreExpansion;\n const newCaptureTransfers = new Map();\n captureTransfers.forEach((from, to) => {\n const numCapturesInRight = (numCapturesAddedInExpansion - (numCapturesInLeft * reps)) / reps;\n const numCapturesAddedInLeft = numCapturesInLeft * reps;\n const newTo = to > (recursionDelimCaptureNum + numCapturesInLeft) ? to + numCapturesAddedInExpansion : to;\n const newFrom = [];\n for (const f of from) {\n // Before the recursed subpattern\n if (f <= recursionDelimCaptureNum) {\n newFrom.push(f);\n // After the recursed subpattern\n } else if (f > (recursionDelimCaptureNum + numCapturesInLeft + numCapturesInRight)) {\n newFrom.push(f + numCapturesAddedInExpansion);\n // Within the recursed subpattern, on the left of the recursion token\n } else if (f <= (recursionDelimCaptureNum + numCapturesInLeft)) {\n for (let i = 0; i <= reps; i++) {\n newFrom.push(f + (numCapturesInLeft * i));\n }\n // Within the recursed subpattern, on the right of the recursion token\n } else {\n for (let i = 0; i <= reps; i++) {\n newFrom.push(f + numCapturesAddedInLeft + (numCapturesInRight * i));\n }\n }\n }\n newCaptureTransfers.set(newTo, newFrom);\n });\n return newCaptureTransfers;\n }\n return captureTransfers;\n}\n\nexport {\n recursion,\n};\n","// src/utils.js\nvar cp = String.fromCodePoint;\nvar r = String.raw;\nvar envFlags = {\n flagGroups: (() => {\n try {\n new RegExp(\"(?i:)\");\n } catch {\n return false;\n }\n return true;\n })(),\n unicodeSets: (() => {\n try {\n new RegExp(\"[[]]\", \"v\");\n } catch {\n return false;\n }\n return true;\n })()\n};\nenvFlags.bugFlagVLiteralHyphenIsRange = envFlags.unicodeSets ? (() => {\n try {\n new RegExp(r`[\\d\\-a]`, \"v\");\n } catch {\n return true;\n }\n return false;\n})() : false;\nenvFlags.bugNestedClassIgnoresNegation = envFlags.unicodeSets && new RegExp(\"[[^a]]\", \"v\").test(\"a\");\nfunction getNewCurrentFlags(current, { enable, disable }) {\n return {\n dotAll: !disable?.dotAll && !!(enable?.dotAll || current.dotAll),\n ignoreCase: !disable?.ignoreCase && !!(enable?.ignoreCase || current.ignoreCase)\n };\n}\nfunction getOrInsert(map, key, defaultValue) {\n if (!map.has(key)) {\n map.set(key, defaultValue);\n }\n return map.get(key);\n}\nfunction isMinTarget(target, min) {\n return EsVersion[target] >= EsVersion[min];\n}\nfunction throwIfNullish(value, msg) {\n if (value == null) {\n throw new Error(msg ?? \"Value expected\");\n }\n return value;\n}\n\n// src/options.js\nvar EsVersion = {\n ES2025: 2025,\n ES2024: 2024,\n ES2018: 2018\n};\nvar Target = (\n /** @type {const} */\n {\n auto: \"auto\",\n ES2025: \"ES2025\",\n ES2024: \"ES2024\",\n ES2018: \"ES2018\"\n }\n);\nfunction getOptions(options = {}) {\n if ({}.toString.call(options) !== \"[object Object]\") {\n throw new Error(\"Unexpected options\");\n }\n if (options.target !== void 0 && !Target[options.target]) {\n throw new Error(`Unexpected target \"${options.target}\"`);\n }\n const opts = {\n // Sets the level of emulation rigor/strictness.\n accuracy: \"default\",\n // Disables advanced emulation that relies on returning a `RegExp` subclass, resulting in\n // certain patterns not being emulatable.\n avoidSubclass: false,\n // Oniguruma flags; a string with `i`, `m`, `x`, `D`, `S`, `W`, `y{g}` in any order (all\n // optional). Oniguruma's `m` is equivalent to JavaScript's `s` (`dotAll`).\n flags: \"\",\n // Include JavaScript flag `g` (`global`) in the result.\n global: false,\n // Include JavaScript flag `d` (`hasIndices`) in the result.\n hasIndices: false,\n // Delay regex construction until first use if the transpiled pattern is at least this length.\n lazyCompileLength: Infinity,\n // JavaScript version used for generated regexes. Using `auto` detects the best value based on\n // your environment. Later targets allow faster processing, simpler generated source, and\n // support for additional features.\n target: \"auto\",\n // Disables minifications that simplify the pattern without changing the meaning.\n verbose: false,\n ...options,\n // Advanced options that override standard behavior, error checking, and flags when enabled.\n rules: {\n // Useful with TextMate grammars that merge backreferences across patterns.\n allowOrphanBackrefs: false,\n // Use ASCII `\\b` and `\\B`, which increases search performance of generated regexes.\n asciiWordBoundaries: false,\n // Allow unnamed captures and numbered calls (backreferences and subroutines) when using\n // named capture. This is Oniguruma option `ONIG_OPTION_CAPTURE_GROUP`; on by default in\n // `vscode-oniguruma`.\n captureGroup: false,\n // Change the recursion depth limit from Oniguruma's `20` to an integer `2`–`20`.\n recursionLimit: 20,\n // `^` as `\\A`; `$` as`\\Z`. Improves search performance of generated regexes without changing\n // the meaning if searching line by line. This is Oniguruma option `ONIG_OPTION_SINGLELINE`.\n singleline: false,\n ...options.rules\n }\n };\n if (opts.target === \"auto\") {\n opts.target = envFlags.flagGroups ? \"ES2025\" : envFlags.unicodeSets ? \"ES2024\" : \"ES2018\";\n }\n return opts;\n}\n\n// src/unicode.js\nimport { slug } from \"oniguruma-parser/parser\";\nvar asciiSpaceChar = \"[\t-\\r ]\";\nvar CharsWithoutIgnoreCaseExpansion = /* @__PURE__ */ new Set([\n cp(304),\n // İ\n cp(305)\n // ı\n]);\nvar defaultWordChar = r`[\\p{L}\\p{M}\\p{N}\\p{Pc}]`;\nfunction getIgnoreCaseMatchChars(char) {\n if (CharsWithoutIgnoreCaseExpansion.has(char)) {\n return [char];\n }\n const set = /* @__PURE__ */ new Set();\n const lower = char.toLowerCase();\n const upper = lower.toUpperCase();\n const title = LowerToTitleCaseMap.get(lower);\n const altLower = LowerToAlternativeLowerCaseMap.get(lower);\n const altUpper = LowerToAlternativeUpperCaseMap.get(lower);\n if ([...upper].length === 1) {\n set.add(upper);\n }\n altUpper && set.add(altUpper);\n title && set.add(title);\n set.add(lower);\n altLower && set.add(altLower);\n return [...set];\n}\nvar JsUnicodePropertyMap = /* @__PURE__ */ new Map(\n `C Other\nCc Control cntrl\nCf Format\nCn Unassigned\nCo Private_Use\nCs Surrogate\nL Letter\nLC Cased_Letter\nLl Lowercase_Letter\nLm Modifier_Letter\nLo Other_Letter\nLt Titlecase_Letter\nLu Uppercase_Letter\nM Mark Combining_Mark\nMc Spacing_Mark\nMe Enclosing_Mark\nMn Nonspacing_Mark\nN Number\nNd Decimal_Number digit\nNl Letter_Number\nNo Other_Number\nP Punctuation punct\nPc Connector_Punctuation\nPd Dash_Punctuation\nPe Close_Punctuation\nPf Final_Punctuation\nPi Initial_Punctuation\nPo Other_Punctuation\nPs Open_Punctuation\nS Symbol\nSc Currency_Symbol\nSk Modifier_Symbol\nSm Math_Symbol\nSo Other_Symbol\nZ Separator\nZl Line_Separator\nZp Paragraph_Separator\nZs Space_Separator\nASCII\nASCII_Hex_Digit AHex\nAlphabetic Alpha\nAny\nAssigned\nBidi_Control Bidi_C\nBidi_Mirrored Bidi_M\nCase_Ignorable CI\nCased\nChanges_When_Casefolded CWCF\nChanges_When_Casemapped CWCM\nChanges_When_Lowercased CWL\nChanges_When_NFKC_Casefolded CWKCF\nChanges_When_Titlecased CWT\nChanges_When_Uppercased CWU\nDash\nDefault_Ignorable_Code_Point DI\nDeprecated Dep\nDiacritic Dia\nEmoji\nEmoji_Component EComp\nEmoji_Modifier EMod\nEmoji_Modifier_Base EBase\nEmoji_Presentation EPres\nExtended_Pictographic ExtPict\nExtender Ext\nGrapheme_Base Gr_Base\nGrapheme_Extend Gr_Ext\nHex_Digit Hex\nIDS_Binary_Operator IDSB\nIDS_Trinary_Operator IDST\nID_Continue IDC\nID_Start IDS\nIdeographic Ideo\nJoin_Control Join_C\nLogical_Order_Exception LOE\nLowercase Lower\nMath\nNoncharacter_Code_Point NChar\nPattern_Syntax Pat_Syn\nPattern_White_Space Pat_WS\nQuotation_Mark QMark\nRadical\nRegional_Indicator RI\nSentence_Terminal STerm\nSoft_Dotted SD\nTerminal_Punctuation Term\nUnified_Ideograph UIdeo\nUppercase Upper\nVariation_Selector VS\nWhite_Space space\nXID_Continue XIDC\nXID_Start XIDS`.split(/\\s/).map((p) => [slug(p), p])\n);\nvar LowerToAlternativeLowerCaseMap = /* @__PURE__ */ new Map([\n [\"s\", cp(383)],\n // s, ſ\n [cp(383), \"s\"]\n // ſ, s\n]);\nvar LowerToAlternativeUpperCaseMap = /* @__PURE__ */ new Map([\n [cp(223), cp(7838)],\n // ß, ẞ\n [cp(107), cp(8490)],\n // k, K (Kelvin)\n [cp(229), cp(8491)],\n // å, Å (Angstrom)\n [cp(969), cp(8486)]\n // ω, Ω (Ohm)\n]);\nvar LowerToTitleCaseMap = new Map([\n titleEntry(453),\n titleEntry(456),\n titleEntry(459),\n titleEntry(498),\n ...titleRange(8072, 8079),\n ...titleRange(8088, 8095),\n ...titleRange(8104, 8111),\n titleEntry(8124),\n titleEntry(8140),\n titleEntry(8188)\n]);\nvar PosixClassMap = /* @__PURE__ */ new Map([\n [\"alnum\", r`[\\p{Alpha}\\p{Nd}]`],\n [\"alpha\", r`\\p{Alpha}`],\n [\"ascii\", r`\\p{ASCII}`],\n [\"blank\", r`[\\p{Zs}\\t]`],\n [\"cntrl\", r`\\p{Cc}`],\n [\"digit\", r`\\p{Nd}`],\n [\"graph\", r`[\\P{space}&&\\P{Cc}&&\\P{Cn}&&\\P{Cs}]`],\n [\"lower\", r`\\p{Lower}`],\n [\"print\", r`[[\\P{space}&&\\P{Cc}&&\\P{Cn}&&\\P{Cs}]\\p{Zs}]`],\n [\"punct\", r`[\\p{P}\\p{S}]`],\n // Updated value from Onig 6.9.9; changed from Unicode `\\p{punct}`\n [\"space\", r`\\p{space}`],\n [\"upper\", r`\\p{Upper}`],\n [\"word\", r`[\\p{Alpha}\\p{M}\\p{Nd}\\p{Pc}]`],\n [\"xdigit\", r`\\p{AHex}`]\n]);\nfunction range(start, end) {\n const range2 = [];\n for (let i = start; i <= end; i++) {\n range2.push(i);\n }\n return range2;\n}\nfunction titleEntry(codePoint) {\n const char = cp(codePoint);\n return [char.toLowerCase(), char];\n}\nfunction titleRange(start, end) {\n return range(start, end).map((codePoint) => titleEntry(codePoint));\n}\nvar UnicodePropertiesWithSpecificCase = /* @__PURE__ */ new Set([\n \"Lower\",\n \"Lowercase\",\n \"Upper\",\n \"Uppercase\",\n \"Ll\",\n \"Lowercase_Letter\",\n \"Lt\",\n \"Titlecase_Letter\",\n \"Lu\",\n \"Uppercase_Letter\"\n // The `Changes_When_*` properties (and their aliases) could be included, but they're very rare.\n // Some other properties include a handful of chars with specific cases only, but these chars are\n // generally extreme edge cases and using such properties case insensitively generally produces\n // undesired behavior anyway\n]);\n\n// src/transform.js\nimport { createAlternative, createAssertion, createBackreference, createCapturingGroup, createCharacter, createCharacterClass, createCharacterSet, createGroup, createLookaroundAssertion, createQuantifier, createSubroutine, createUnicodeProperty, hasOnlyChild, parse, slug as slug2 } from \"oniguruma-parser/parser\";\nimport { traverse } from \"oniguruma-parser/traverser\";\nfunction transform(ast, options) {\n const opts = {\n // A couple edge cases exist where options `accuracy` and `bestEffortTarget` are used:\n // - `CharacterSet` kind `text_segment` (`\\X`): An exact representation would require heavy\n // Unicode data; a best-effort approximation requires knowing the target.\n // - `CharacterSet` kind `posix` with values `graph` and `print`: Their complex Unicode\n // representations would be hard to change to ASCII versions after the fact in the generator\n // based on `target`/`accuracy`, so produce the appropriate structure here.\n accuracy: \"default\",\n asciiWordBoundaries: false,\n avoidSubclass: false,\n bestEffortTarget: \"ES2025\",\n ...options\n };\n addParentProperties(ast);\n const firstPassState = {\n accuracy: opts.accuracy,\n asciiWordBoundaries: opts.asciiWordBoundaries,\n avoidSubclass: opts.avoidSubclass,\n flagDirectivesByAlt: /* @__PURE__ */ new Map(),\n jsGroupNameMap: /* @__PURE__ */ new Map(),\n minTargetEs2024: isMinTarget(opts.bestEffortTarget, \"ES2024\"),\n passedLookbehind: false,\n strategy: null,\n // Subroutines can appear before the groups they ref, so collect reffed nodes for a second pass \n subroutineRefMap: /* @__PURE__ */ new Map(),\n supportedGNodes: /* @__PURE__ */ new Set(),\n digitIsAscii: ast.flags.digitIsAscii,\n spaceIsAscii: ast.flags.spaceIsAscii,\n wordIsAscii: ast.flags.wordIsAscii\n };\n traverse(ast, FirstPassVisitor, firstPassState);\n const globalFlags = {\n dotAll: ast.flags.dotAll,\n ignoreCase: ast.flags.ignoreCase\n };\n const secondPassState = {\n currentFlags: globalFlags,\n prevFlags: null,\n globalFlags,\n groupOriginByCopy: /* @__PURE__ */ new Map(),\n groupsByName: /* @__PURE__ */ new Map(),\n multiplexCapturesToLeftByRef: /* @__PURE__ */ new Map(),\n openRefs: /* @__PURE__ */ new Map(),\n reffedNodesByReferencer: /* @__PURE__ */ new Map(),\n subroutineRefMap: firstPassState.subroutineRefMap\n };\n traverse(ast, SecondPassVisitor, secondPassState);\n const thirdPassState = {\n groupsByName: secondPassState.groupsByName,\n highestOrphanBackref: 0,\n numCapturesToLeft: 0,\n reffedNodesByReferencer: secondPassState.reffedNodesByReferencer\n };\n traverse(ast, ThirdPassVisitor, thirdPassState);\n ast._originMap = secondPassState.groupOriginByCopy;\n ast._strategy = firstPassState.strategy;\n return ast;\n}\nvar FirstPassVisitor = {\n AbsenceFunction({ node, parent, replaceWith }) {\n const { body, kind } = node;\n if (kind === \"repeater\") {\n const innerGroup = createGroup();\n innerGroup.body[0].body.push(\n // Insert own alts as `body`\n createLookaroundAssertion({ negate: true, body }),\n createUnicodeProperty(\"Any\")\n );\n const outerGroup = createGroup();\n outerGroup.body[0].body.push(\n createQuantifier(\"greedy\", 0, Infinity, innerGroup)\n );\n replaceWith(setParentDeep(outerGroup, parent), { traverse: true });\n } else {\n throw new Error(`Unsupported absence function \"(?~|\"`);\n }\n },\n Alternative: {\n enter({ node, parent, key }, { flagDirectivesByAlt }) {\n const flagDirectives = node.body.filter((el) => el.kind === \"flags\");\n for (let i = key + 1; i < parent.body.length; i++) {\n const forwardSiblingAlt = parent.body[i];\n getOrInsert(flagDirectivesByAlt, forwardSiblingAlt, []).push(...flagDirectives);\n }\n },\n exit({ node }, { flagDirectivesByAlt }) {\n if (flagDirectivesByAlt.get(node)?.length) {\n const flags = getCombinedFlagModsFromFlagNodes(flagDirectivesByAlt.get(node));\n if (flags) {\n const flagGroup = createGroup({ flags });\n flagGroup.body[0].body = node.body;\n node.body = [setParentDeep(flagGroup, node)];\n }\n }\n }\n },\n Assertion({ node, parent, key, container, root, remove, replaceWith }, state) {\n const { kind, negate } = node;\n const { asciiWordBoundaries, avoidSubclass, supportedGNodes, wordIsAscii } = state;\n if (kind === \"text_segment_boundary\") {\n throw new Error(`Unsupported text segment boundary \"\\\\${negate ? \"Y\" : \"y\"}\"`);\n } else if (kind === \"line_end\") {\n replaceWith(setParentDeep(createLookaroundAssertion({ body: [\n createAlternative({ body: [createAssertion(\"string_end\")] }),\n createAlternative({ body: [createCharacter(10)] })\n // `\\n`\n ] }), parent));\n } else if (kind === \"line_start\") {\n replaceWith(setParentDeep(parseFragment(r`(?<=\\A|\\n(?!\\z))`, { skipLookbehindValidation: true }), parent));\n } else if (kind === \"search_start\") {\n if (supportedGNodes.has(node)) {\n root.flags.sticky = true;\n remove();\n } else {\n const prev = container[key - 1];\n if (prev && isAlwaysNonZeroLength(prev)) {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else if (avoidSubclass) {\n throw new Error(r`Uses \"\\G\" in a way that requires a subclass`);\n } else {\n replaceWith(setParent(createAssertion(\"string_start\"), parent));\n state.strategy = \"clip_search\";\n }\n }\n } else if (kind === \"string_end\" || kind === \"string_start\") {\n } else if (kind === \"string_end_newline\") {\n replaceWith(setParentDeep(parseFragment(r`(?=\\n?\\z)`), parent));\n } else if (kind === \"word_boundary\") {\n if (!wordIsAscii && !asciiWordBoundaries) {\n const b = `(?:(?<=${defaultWordChar})(?!${defaultWordChar})|(?<!${defaultWordChar})(?=${defaultWordChar}))`;\n const B = `(?:(?<=${defaultWordChar})(?=${defaultWordChar})|(?<!${defaultWordChar})(?!${defaultWordChar}))`;\n replaceWith(setParentDeep(parseFragment(negate ? B : b), parent));\n }\n } else {\n throw new Error(`Unexpected assertion kind \"${kind}\"`);\n }\n },\n Backreference({ node }, { jsGroupNameMap }) {\n let { ref } = node;\n if (typeof ref === \"string\" && !isValidJsGroupName(ref)) {\n ref = getAndStoreJsGroupName(ref, jsGroupNameMap);\n node.ref = ref;\n }\n },\n CapturingGroup({ node }, { jsGroupNameMap, subroutineRefMap }) {\n let { name } = node;\n if (name && !isValidJsGroupName(name)) {\n name = getAndStoreJsGroupName(name, jsGroupNameMap);\n node.name = name;\n }\n subroutineRefMap.set(node.number, node);\n if (name) {\n subroutineRefMap.set(name, node);\n }\n },\n CharacterClassRange({ node, parent, replaceWith }) {\n if (parent.kind === \"intersection\") {\n const cc = createCharacterClass({ body: [node] });\n replaceWith(setParentDeep(cc, parent), { traverse: true });\n }\n },\n CharacterSet({ node, parent, replaceWith }, { accuracy, minTargetEs2024, digitIsAscii, spaceIsAscii, wordIsAscii }) {\n const { kind, negate, value } = node;\n if (digitIsAscii && (kind === \"digit\" || value === \"digit\")) {\n replaceWith(setParent(createCharacterSet(\"digit\", { negate }), parent));\n return;\n }\n if (spaceIsAscii && (kind === \"space\" || value === \"space\")) {\n replaceWith(setParentDeep(setNegate(parseFragment(asciiSpaceChar), negate), parent));\n return;\n }\n if (wordIsAscii && (kind === \"word\" || value === \"word\")) {\n replaceWith(setParent(createCharacterSet(\"word\", { negate }), parent));\n return;\n }\n if (kind === \"any\") {\n replaceWith(setParent(createUnicodeProperty(\"Any\"), parent));\n } else if (kind === \"digit\") {\n replaceWith(setParent(createUnicodeProperty(\"Nd\", { negate }), parent));\n } else if (kind === \"dot\") {\n } else if (kind === \"text_segment\") {\n if (accuracy === \"strict\") {\n throw new Error(r`Use of \"\\X\" requires non-strict accuracy`);\n }\n const eBase = \"\\\\p{Emoji}(?:\\\\p{EMod}|\\\\uFE0F\\\\u20E3?|[\\\\x{E0020}-\\\\x{E007E}]+\\\\x{E007F})?\";\n const emoji = r`\\p{RI}{2}|${eBase}(?:\\u200D${eBase})*`;\n replaceWith(setParentDeep(parseFragment(\n // Close approximation of an extended grapheme cluster; see <unicode.org/reports/tr29/>\n r`(?>\\r\\n|${minTargetEs2024 ? r`\\p{RGI_Emoji}` : emoji}|\\P{M}\\p{M}*)`,\n // Allow JS property `RGI_Emoji` through\n { skipPropertyNameValidation: true }\n ), parent));\n } else if (kind === \"hex\") {\n replaceWith(setParent(createUnicodeProperty(\"AHex\", { negate }), parent));\n } else if (kind === \"newline\") {\n replaceWith(setParentDeep(parseFragment(negate ? \"[^\\n]\" : \"(?>\\r\\n?|[\\n\\v\\f\\x85\\u2028\\u2029])\"), parent));\n } else if (kind === \"posix\") {\n if (!minTargetEs2024 && (value === \"graph\" || value === \"print\")) {\n if (accuracy === \"strict\") {\n throw new Error(`POSIX class \"${value}\" requires min target ES2024 or non-strict accuracy`);\n }\n let ascii = {\n graph: \"!-~\",\n print: \" -~\"\n }[value];\n if (negate) {\n ascii = `\\0-${cp(ascii.codePointAt(0) - 1)}${cp(ascii.codePointAt(2) + 1)}-\\u{10FFFF}`;\n }\n replaceWith(setParentDeep(parseFragment(`[${ascii}]`), parent));\n } else {\n replaceWith(setParentDeep(setNegate(parseFragment(PosixClassMap.get(value)), negate), parent));\n }\n } else if (kind === \"property\") {\n if (!JsUnicodePropertyMap.has(slug2(value))) {\n node.key = \"sc\";\n }\n } else if (kind === \"space\") {\n replaceWith(setParent(createUnicodeProperty(\"space\", { negate }), parent));\n } else if (kind === \"word\") {\n replaceWith(setParentDeep(setNegate(parseFragment(defaultWordChar), negate), parent));\n } else {\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n }\n },\n Directive({ node, parent, root, remove, replaceWith, removeAllPrevSiblings, removeAllNextSiblings }) {\n const { kind, flags } = node;\n if (kind === \"flags\") {\n if (!flags.enable && !flags.disable) {\n remove();\n } else {\n const flagGroup = createGroup({ flags });\n flagGroup.body[0].body = removeAllNextSiblings();\n replaceWith(setParentDeep(flagGroup, parent), { traverse: true });\n }\n } else if (kind === \"keep\") {\n const firstAlt = root.body[0];\n const hasWrapperGroup = root.body.length === 1 && // Not emulatable if within a `CapturingGroup`\n hasOnlyChild(firstAlt, { type: \"Group\" }) && firstAlt.body[0].body.length === 1;\n const topLevel = hasWrapperGroup ? firstAlt.body[0] : root;\n if (parent.parent !== topLevel || topLevel.body.length > 1) {\n throw new Error(r`Uses \"\\K\" in a way that's unsupported`);\n }\n const lookbehind = createLookaroundAssertion({ behind: true });\n lookbehind.body[0].body = removeAllPrevSiblings();\n replaceWith(setParentDeep(lookbehind, parent));\n } else {\n throw new Error(`Unexpected directive kind \"${kind}\"`);\n }\n },\n Flags({ node, parent }) {\n if (node.posixIsAscii) {\n throw new Error('Unsupported flag \"P\"');\n }\n if (node.textSegmentMode === \"word\") {\n throw new Error('Unsupported flag \"y{w}\"');\n }\n [\n \"digitIsAscii\",\n // Flag D\n \"extended\",\n // Flag x\n \"posixIsAscii\",\n // Flag P\n \"spaceIsAscii\",\n // Flag S\n \"wordIsAscii\",\n // Flag W\n \"textSegmentMode\"\n // Flag y{g} or y{w}\n ].forEach((f) => delete node[f]);\n Object.assign(node, {\n // JS flag g; no Onig equiv\n global: false,\n // JS flag d; no Onig equiv\n hasIndices: false,\n // JS flag m; no Onig equiv but its behavior is always on in Onig. Onig's only line break\n // char is line feed, unlike JS, so this flag isn't used since it would produce inaccurate\n // results (also allows `^` and `$` to be used in the generator for string start and end)\n multiline: false,\n // JS flag y; no Onig equiv, but used for `\\G` emulation\n sticky: node.sticky ?? false\n // Note: Regex+ doesn't allow explicitly adding flags it handles implicitly, so leave out\n // properties `unicode` (JS flag u) and `unicodeSets` (JS flag v). Keep the existing values\n // for `ignoreCase` (flag i) and `dotAll` (JS flag s, but Onig flag m)\n });\n parent.options = {\n disable: {\n // Onig uses different rules for flag x than Regex+, so disable the implicit flag\n x: true,\n // Onig has no flag to control \"named capture only\" mode but contextually applies its\n // behavior when named capturing is used, so disable Regex+'s implicit flag for it\n n: true\n },\n force: {\n // Always add flag v because we're generating an AST that relies on it (it enables JS\n // support for Onig features nested classes, intersection, Unicode properties, etc.).\n // However, the generator might disable flag v based on its `target` option\n v: true\n }\n };\n },\n Group({ node }) {\n if (!node.flags) {\n return;\n }\n const { enable, disable } = node.flags;\n enable?.extended && delete enable.extended;\n disable?.extended && delete disable.extended;\n enable?.dotAll && disable?.dotAll && delete enable.dotAll;\n enable?.ignoreCase && disable?.ignoreCase && delete enable.ignoreCase;\n enable && !Object.keys(enable).length && delete node.flags.enable;\n disable && !Object.keys(disable).length && delete node.flags.disable;\n !node.flags.enable && !node.flags.disable && delete node.flags;\n },\n LookaroundAssertion({ node }, state) {\n const { kind } = node;\n if (kind === \"lookbehind\") {\n state.passedLookbehind = true;\n }\n },\n NamedCallout({ node, parent, replaceWith }) {\n const { kind } = node;\n if (kind === \"fail\") {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else {\n throw new Error(`Unsupported named callout \"(*${kind.toUpperCase()}\"`);\n }\n },\n Quantifier({ node }) {\n if (node.body.type === \"Quantifier\") {\n const group = createGroup();\n group.body[0].body.push(node.body);\n node.body = setParentDeep(group, node);\n }\n },\n Regex: {\n enter({ node }, { supportedGNodes }) {\n const leadingGs = [];\n let hasAltWithLeadG = false;\n let hasAltWithoutLeadG = false;\n for (const alt of node.body) {\n if (alt.body.length === 1 && alt.body[0].kind === \"search_start\") {\n alt.body.pop();\n } else {\n const leadingG = getLeadingG(alt.body);\n if (leadingG) {\n hasAltWithLeadG = true;\n Array.isArray(leadingG) ? leadingGs.push(...leadingG) : leadingGs.push(leadingG);\n } else {\n hasAltWithoutLeadG = true;\n }\n }\n }\n if (hasAltWithLeadG && !hasAltWithoutLeadG) {\n leadingGs.forEach((g) => supportedGNodes.add(g));\n }\n },\n exit(_, { accuracy, passedLookbehind, strategy }) {\n if (accuracy === \"strict\" && passedLookbehind && strategy) {\n throw new Error(r`Uses \"\\G\" in a way that requires non-strict accuracy`);\n }\n }\n },\n Subroutine({ node }, { jsGroupNameMap }) {\n let { ref } = node;\n if (typeof ref === \"string\" && !isValidJsGroupName(ref)) {\n ref = getAndStoreJsGroupName(ref, jsGroupNameMap);\n node.ref = ref;\n }\n }\n};\nvar SecondPassVisitor = {\n Backreference({ node }, { multiplexCapturesToLeftByRef, reffedNodesByReferencer }) {\n const { orphan, ref } = node;\n if (!orphan) {\n reffedNodesByReferencer.set(node, [...multiplexCapturesToLeftByRef.get(ref).map(({ node: node2 }) => node2)]);\n }\n },\n CapturingGroup: {\n enter({\n node,\n parent,\n replaceWith,\n skip\n }, {\n groupOriginByCopy,\n groupsByName,\n multiplexCapturesToLeftByRef,\n openRefs,\n reffedNodesByReferencer\n }) {\n const origin = groupOriginByCopy.get(node);\n if (origin && openRefs.has(node.number)) {\n const recursion2 = setParent(createRecursion(node.number), parent);\n reffedNodesByReferencer.set(recursion2, openRefs.get(node.number));\n replaceWith(recursion2);\n return;\n }\n openRefs.set(node.number, node);\n multiplexCapturesToLeftByRef.set(node.number, []);\n if (node.name) {\n getOrInsert(multiplexCapturesToLeftByRef, node.name, []);\n }\n const multiplexNodes = multiplexCapturesToLeftByRef.get(node.name ?? node.number);\n for (let i = 0; i < multiplexNodes.length; i++) {\n const multiplex = multiplexNodes[i];\n if (\n // This group is from subroutine expansion, and there's a multiplex value from either the\n // origin node or a prior subroutine expansion group with the same origin\n origin === multiplex.node || origin && origin === multiplex.origin || // This group is not from subroutine expansion, and it comes after a subroutine expansion\n // group that refers to this group\n node === multiplex.origin\n ) {\n multiplexNodes.splice(i, 1);\n break;\n }\n }\n multiplexCapturesToLeftByRef.get(node.number).push({ node, origin });\n if (node.name) {\n multiplexCapturesToLeftByRef.get(node.name).push({ node, origin });\n }\n if (node.name) {\n const groupsWithSameName = getOrInsert(groupsByName, node.name, /* @__PURE__ */ new Map());\n let hasDuplicateNameToRemove = false;\n if (origin) {\n hasDuplicateNameToRemove = true;\n } else {\n for (const groupInfo of groupsWithSameName.values()) {\n if (!groupInfo.hasDuplicateNameToRemove) {\n hasDuplicateNameToRemove = true;\n break;\n }\n }\n }\n groupsByName.get(node.name).set(node, { node, hasDuplicateNameToRemove });\n }\n },\n exit({ node }, { openRefs }) {\n openRefs.delete(node.number);\n }\n },\n Group: {\n enter({ node }, state) {\n state.prevFlags = state.currentFlags;\n if (node.flags) {\n state.currentFlags = getNewCurrentFlags(state.currentFlags, node.flags);\n }\n },\n exit(_, state) {\n state.currentFlags = state.prevFlags;\n }\n },\n Subroutine({ node, parent, replaceWith }, state) {\n const { isRecursive, ref } = node;\n if (isRecursive) {\n let reffed = parent;\n while (reffed = reffed.parent) {\n if (reffed.type === \"CapturingGroup\" && (reffed.name === ref || reffed.number === ref)) {\n break;\n }\n }\n state.reffedNodesByReferencer.set(node, reffed);\n return;\n }\n const reffedGroupNode = state.subroutineRefMap.get(ref);\n const isGlobalRecursion = ref === 0;\n const expandedSubroutine = isGlobalRecursion ? createRecursion(0) : (\n // The reffed group might itself contain subroutines, which are expanded during sub-traversal\n cloneCapturingGroup(reffedGroupNode, state.groupOriginByCopy, null)\n );\n let replacement = expandedSubroutine;\n if (!isGlobalRecursion) {\n const reffedGroupFlagMods = getCombinedFlagModsFromFlagNodes(getAllParents(\n reffedGroupNode,\n (p) => p.type === \"Group\" && !!p.flags\n ));\n const reffedGroupFlags = reffedGroupFlagMods ? getNewCurrentFlags(state.globalFlags, reffedGroupFlagMods) : state.globalFlags;\n if (!areFlagsEqual(reffedGroupFlags, state.currentFlags)) {\n replacement = createGroup({\n flags: getFlagModsFromFlags(reffedGroupFlags)\n });\n replacement.body[0].body.push(expandedSubroutine);\n }\n }\n replaceWith(setParentDeep(replacement, parent), { traverse: !isGlobalRecursion });\n }\n};\nvar ThirdPassVisitor = {\n Backreference({ node, parent, replaceWith }, state) {\n if (node.orphan) {\n state.highestOrphanBackref = Math.max(state.highestOrphanBackref, node.ref);\n return;\n }\n const reffedNodes = state.reffedNodesByReferencer.get(node);\n const participants = reffedNodes.filter((reffed) => canParticipateWithNode(reffed, node));\n if (!participants.length) {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else if (participants.length > 1) {\n const group = createGroup({\n atomic: true,\n body: participants.reverse().map((reffed) => createAlternative({\n body: [createBackreference(reffed.number)]\n }))\n });\n replaceWith(setParentDeep(group, parent));\n } else {\n node.ref = participants[0].number;\n }\n },\n CapturingGroup({ node }, state) {\n node.number = ++state.numCapturesToLeft;\n if (node.name) {\n if (state.groupsByName.get(node.name).get(node).hasDuplicateNameToRemove) {\n delete node.name;\n }\n }\n },\n Regex: {\n exit({ node }, state) {\n const numCapsNeeded = Math.max(state.highestOrphanBackref - state.numCapturesToLeft, 0);\n for (let i = 0; i < numCapsNeeded; i++) {\n const emptyCapture = createCapturingGroup();\n node.body.at(-1).body.push(emptyCapture);\n }\n }\n },\n Subroutine({ node }, state) {\n if (!node.isRecursive || node.ref === 0) {\n return;\n }\n node.ref = state.reffedNodesByReferencer.get(node).number;\n }\n};\nfunction addParentProperties(root) {\n traverse(root, {\n \"*\"({ node, parent }) {\n node.parent = parent;\n }\n });\n}\nfunction areFlagsEqual(a, b) {\n return a.dotAll === b.dotAll && a.ignoreCase === b.ignoreCase;\n}\nfunction canParticipateWithNode(capture, node) {\n let rightmostPoint = node;\n do {\n if (rightmostPoint.type === \"Regex\") {\n return false;\n }\n if (rightmostPoint.type === \"Alternative\") {\n continue;\n }\n if (rightmostPoint === capture) {\n return false;\n }\n const kidsOfParent = getKids(rightmostPoint.parent);\n for (const kid of kidsOfParent) {\n if (kid === rightmostPoint) {\n break;\n }\n if (kid === capture || isAncestorOf(kid, capture)) {\n return true;\n }\n }\n } while (rightmostPoint = rightmostPoint.parent);\n throw new Error(\"Unexpected path\");\n}\nfunction cloneCapturingGroup(obj, originMap, up, up2) {\n const store = Array.isArray(obj) ? [] : {};\n for (const [key, value] of Object.entries(obj)) {\n if (key === \"parent\") {\n store.parent = Array.isArray(up) ? up2 : up;\n } else if (value && typeof value === \"object\") {\n store[key] = cloneCapturingGroup(value, originMap, store, up);\n } else {\n if (key === \"type\" && value === \"CapturingGroup\") {\n originMap.set(store, originMap.get(obj) ?? obj);\n }\n store[key] = value;\n }\n }\n return store;\n}\nfunction createRecursion(ref) {\n const node = createSubroutine(ref);\n node.isRecursive = true;\n return node;\n}\nfunction getAllParents(node, filterFn) {\n const results = [];\n while (node = node.parent) {\n if (!filterFn || filterFn(node)) {\n results.push(node);\n }\n }\n return results;\n}\nfunction getAndStoreJsGroupName(name, map) {\n if (map.has(name)) {\n return map.get(name);\n }\n const jsName = `$${map.size}_${name.replace(/^[^$_\\p{IDS}]|[^$\\u200C\\u200D\\p{IDC}]/ug, \"_\")}`;\n map.set(name, jsName);\n return jsName;\n}\nfunction getCombinedFlagModsFromFlagNodes(flagNodes) {\n const flagProps = [\"dotAll\", \"ignoreCase\"];\n const combinedFlags = { enable: {}, disable: {} };\n flagNodes.forEach(({ flags }) => {\n flagProps.forEach((prop) => {\n if (flags.enable?.[prop]) {\n delete combinedFlags.disable[prop];\n combinedFlags.enable[prop] = true;\n }\n if (flags.disable?.[prop]) {\n combinedFlags.disable[prop] = true;\n }\n });\n });\n if (!Object.keys(combinedFlags.enable).length) {\n delete combinedFlags.enable;\n }\n if (!Object.keys(combinedFlags.disable).length) {\n delete combinedFlags.disable;\n }\n if (combinedFlags.enable || combinedFlags.disable) {\n return combinedFlags;\n }\n return null;\n}\nfunction getFlagModsFromFlags({ dotAll, ignoreCase }) {\n const mods = {};\n if (dotAll || ignoreCase) {\n mods.enable = {};\n dotAll && (mods.enable.dotAll = true);\n ignoreCase && (mods.enable.ignoreCase = true);\n }\n if (!dotAll || !ignoreCase) {\n mods.disable = {};\n !dotAll && (mods.disable.dotAll = true);\n !ignoreCase && (mods.disable.ignoreCase = true);\n }\n return mods;\n}\nfunction getKids(node) {\n if (!node) {\n throw new Error(\"Node expected\");\n }\n const { body } = node;\n return Array.isArray(body) ? body : body ? [body] : null;\n}\nfunction getLeadingG(els) {\n const firstToConsider = els.find((el) => el.kind === \"search_start\" || isLoneGLookaround(el, { negate: false }) || !isAlwaysZeroLength(el));\n if (!firstToConsider) {\n return null;\n }\n if (firstToConsider.kind === \"search_start\") {\n return firstToConsider;\n }\n if (firstToConsider.type === \"LookaroundAssertion\") {\n return firstToConsider.body[0].body[0];\n }\n if (firstToConsider.type === \"CapturingGroup\" || firstToConsider.type === \"Group\") {\n const gNodesForGroup = [];\n for (const alt of firstToConsider.body) {\n const leadingG = getLeadingG(alt.body);\n if (!leadingG) {\n return null;\n }\n Array.isArray(leadingG) ? gNodesForGroup.push(...leadingG) : gNodesForGroup.push(leadingG);\n }\n return gNodesForGroup;\n }\n return null;\n}\nfunction isAncestorOf(node, descendant) {\n const kids = getKids(node) ?? [];\n for (const kid of kids) {\n if (kid === descendant || isAncestorOf(kid, descendant)) {\n return true;\n }\n }\n return false;\n}\nfunction isAlwaysZeroLength({ type }) {\n return type === \"Assertion\" || type === \"Directive\" || type === \"LookaroundAssertion\";\n}\nfunction isAlwaysNonZeroLength(node) {\n const types = [\n \"Character\",\n \"CharacterClass\",\n \"CharacterSet\"\n ];\n return types.includes(node.type) || node.type === \"Quantifier\" && node.min && types.includes(node.body.type);\n}\nfunction isLoneGLookaround(node, options) {\n const opts = {\n negate: null,\n ...options\n };\n return node.type === \"LookaroundAssertion\" && (opts.negate === null || node.negate === opts.negate) && node.body.length === 1 && hasOnlyChild(node.body[0], {\n type: \"Assertion\",\n kind: \"search_start\"\n });\n}\nfunction isValidJsGroupName(name) {\n return /^[$_\\p{IDS}][$\\u200C\\u200D\\p{IDC}]*$/u.test(name);\n}\nfunction parseFragment(pattern, options) {\n const ast = parse(pattern, {\n ...options,\n // Providing a custom set of Unicode property names avoids converting some JS Unicode\n // properties (ex: `\\p{Alpha}`) to Onig POSIX classes\n unicodePropertyMap: JsUnicodePropertyMap\n });\n const alts = ast.body;\n if (alts.length > 1 || alts[0].body.length > 1) {\n return createGroup({ body: alts });\n }\n return alts[0].body[0];\n}\nfunction setNegate(node, negate) {\n node.negate = negate;\n return node;\n}\nfunction setParent(node, parent) {\n node.parent = parent;\n return node;\n}\nfunction setParentDeep(node, parent) {\n addParentProperties(node);\n node.parent = parent;\n return node;\n}\n\n// src/generate.js\nimport { createAlternative as createAlternative2, createCharacter as createCharacter2, createGroup as createGroup2 } from \"oniguruma-parser/parser\";\nimport { traverse as traverse2 } from \"oniguruma-parser/traverser\";\nfunction generate(ast, options) {\n const opts = getOptions(options);\n const minTargetEs2024 = isMinTarget(opts.target, \"ES2024\");\n const minTargetEs2025 = isMinTarget(opts.target, \"ES2025\");\n const recursionLimit = opts.rules.recursionLimit;\n if (!Number.isInteger(recursionLimit) || recursionLimit < 2 || recursionLimit > 20) {\n throw new Error(\"Invalid recursionLimit; use 2-20\");\n }\n let hasCaseInsensitiveNode = null;\n let hasCaseSensitiveNode = null;\n if (!minTargetEs2025) {\n const iStack = [ast.flags.ignoreCase];\n traverse2(ast, FlagModifierVisitor, {\n getCurrentModI: () => iStack.at(-1),\n popModI() {\n iStack.pop();\n },\n pushModI(isIOn) {\n iStack.push(isIOn);\n },\n setHasCasedChar() {\n if (iStack.at(-1)) {\n hasCaseInsensitiveNode = true;\n } else {\n hasCaseSensitiveNode = true;\n }\n }\n });\n }\n const appliedGlobalFlags = {\n dotAll: ast.flags.dotAll,\n // - Turn global flag i on if a case insensitive node was used and no case sensitive nodes were\n // used (to avoid unnecessary node expansion).\n // - Turn global flag i off if a case sensitive node was used (since case sensitivity can't be\n // forced without the use of ES2025 flag groups)\n ignoreCase: !!((ast.flags.ignoreCase || hasCaseInsensitiveNode) && !hasCaseSensitiveNode)\n };\n let lastNode = ast;\n const state = {\n accuracy: opts.accuracy,\n appliedGlobalFlags,\n captureMap: /* @__PURE__ */ new Map(),\n currentFlags: {\n dotAll: ast.flags.dotAll,\n ignoreCase: ast.flags.ignoreCase\n },\n inCharClass: false,\n lastNode,\n originMap: ast._originMap,\n recursionLimit,\n useAppliedIgnoreCase: !!(!minTargetEs2025 && hasCaseInsensitiveNode && hasCaseSensitiveNode),\n useFlagMods: minTargetEs2025,\n useFlagV: minTargetEs2024,\n verbose: opts.verbose\n };\n function gen(node) {\n state.lastNode = lastNode;\n lastNode = node;\n const fn = throwIfNullish(generator[node.type], `Unexpected node type \"${node.type}\"`);\n return fn(node, state, gen);\n }\n const result = {\n pattern: ast.body.map(gen).join(\"|\"),\n // Could reset `lastNode` at this point via `lastNode = ast`, but it isn't needed by flags\n flags: gen(ast.flags),\n options: { ...ast.options }\n };\n if (!minTargetEs2024) {\n delete result.options.force.v;\n result.options.disable.v = true;\n result.options.unicodeSetsPlugin = null;\n }\n result._captureTransfers = /* @__PURE__ */ new Map();\n result._hiddenCaptures = [];\n state.captureMap.forEach((value, key) => {\n if (value.hidden) {\n result._hiddenCaptures.push(key);\n }\n if (value.transferTo) {\n getOrInsert(result._captureTransfers, value.transferTo, []).push(key);\n }\n });\n return result;\n}\nvar FlagModifierVisitor = {\n \"*\": {\n enter({ node }, state) {\n if (isAnyGroup(node)) {\n const currentModI = state.getCurrentModI();\n state.pushModI(\n node.flags ? getNewCurrentFlags({ ignoreCase: currentModI }, node.flags).ignoreCase : currentModI\n );\n }\n },\n exit({ node }, state) {\n if (isAnyGroup(node)) {\n state.popModI();\n }\n }\n },\n Backreference(_, state) {\n state.setHasCasedChar();\n },\n Character({ node }, state) {\n if (charHasCase(cp(node.value))) {\n state.setHasCasedChar();\n }\n },\n CharacterClassRange({ node, skip }, state) {\n skip();\n if (getCasesOutsideCharClassRange(node, { firstOnly: true }).length) {\n state.setHasCasedChar();\n }\n },\n CharacterSet({ node }, state) {\n if (node.kind === \"property\" && UnicodePropertiesWithSpecificCase.has(node.value)) {\n state.setHasCasedChar();\n }\n }\n};\nvar generator = {\n /**\n @param {AlternativeNode} node\n */\n Alternative({ body }, _, gen) {\n return body.map(gen).join(\"\");\n },\n /**\n @param {AssertionNode} node\n */\n Assertion({ kind, negate }) {\n if (kind === \"string_end\") {\n return \"$\";\n }\n if (kind === \"string_start\") {\n return \"^\";\n }\n if (kind === \"word_boundary\") {\n return negate ? r`\\B` : r`\\b`;\n }\n throw new Error(`Unexpected assertion kind \"${kind}\"`);\n },\n /**\n @param {BackreferenceNode} node\n */\n Backreference({ ref }, state) {\n if (typeof ref !== \"number\") {\n throw new Error(\"Unexpected named backref in transformed AST\");\n }\n if (!state.useFlagMods && state.accuracy === \"strict\" && state.currentFlags.ignoreCase && !state.captureMap.get(ref).ignoreCase) {\n throw new Error(\"Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy\");\n }\n return \"\\\\\" + ref;\n },\n /**\n @param {CapturingGroupNode} node\n */\n CapturingGroup(node, state, gen) {\n const { body, name, number } = node;\n const data = { ignoreCase: state.currentFlags.ignoreCase };\n const origin = state.originMap.get(node);\n if (origin) {\n data.hidden = true;\n if (number > origin.number) {\n data.transferTo = origin.number;\n }\n }\n state.captureMap.set(number, data);\n return `(${name ? `?<${name}>` : \"\"}${body.map(gen).join(\"|\")})`;\n },\n /**\n @param {CharacterNode} node\n */\n Character({ value }, state) {\n const char = cp(value);\n const escaped = getCharEscape(value, {\n escDigit: state.lastNode.type === \"Backreference\",\n inCharClass: state.inCharClass,\n useFlagV: state.useFlagV\n });\n if (escaped !== char) {\n return escaped;\n }\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase && charHasCase(char)) {\n const cases = getIgnoreCaseMatchChars(char);\n return state.inCharClass ? cases.join(\"\") : cases.length > 1 ? `[${cases.join(\"\")}]` : cases[0];\n }\n return char;\n },\n /**\n @param {CharacterClassNode} node\n */\n CharacterClass(node, state, gen) {\n const { kind, negate, parent } = node;\n let { body } = node;\n if (kind === \"intersection\" && !state.useFlagV) {\n throw new Error(\"Use of character class intersection requires min target ES2024\");\n }\n if (envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV && body.some(isLiteralHyphen)) {\n body = [createCharacter2(45), ...body.filter((kid) => !isLiteralHyphen(kid))];\n }\n const genClass = () => `[${negate ? \"^\" : \"\"}${body.map(gen).join(kind === \"intersection\" ? \"&&\" : \"\")}]`;\n if (!state.inCharClass) {\n if (\n // Already established `kind !== 'intersection'` if `!state.useFlagV`; don't check again\n (!state.useFlagV || envFlags.bugNestedClassIgnoresNegation) && !negate\n ) {\n const negatedChildClasses = body.filter(\n (kid) => kid.type === \"CharacterClass\" && kid.kind === \"union\" && kid.negate\n );\n if (negatedChildClasses.length) {\n const group = createGroup2();\n const groupFirstAlt = group.body[0];\n group.parent = parent;\n groupFirstAlt.parent = group;\n body = body.filter((kid) => !negatedChildClasses.includes(kid));\n node.body = body;\n if (body.length) {\n node.parent = groupFirstAlt;\n groupFirstAlt.body.push(node);\n } else {\n group.body.pop();\n }\n negatedChildClasses.forEach((cc) => {\n const newAlt = createAlternative2({ body: [cc] });\n cc.parent = newAlt;\n newAlt.parent = group;\n group.body.push(newAlt);\n });\n return gen(group);\n }\n }\n state.inCharClass = true;\n const result = genClass();\n state.inCharClass = false;\n return result;\n }\n const firstEl = body[0];\n if (\n // Already established that the parent is a char class via `inCharClass`; don't check again\n kind === \"union\" && !negate && firstEl && // Allows many nested classes to work with `target` ES2018 which doesn't support nesting\n ((!state.useFlagV || !state.verbose) && parent.kind === \"union\" && !(envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV) || !state.verbose && parent.kind === \"intersection\" && // JS doesn't allow intersection with union or ranges\n body.length === 1 && firstEl.type !== \"CharacterClassRange\")\n ) {\n return body.map(gen).join(\"\");\n }\n if (!state.useFlagV && parent.type === \"CharacterClass\") {\n throw new Error(\"Uses nested character class in a way that requires min target ES2024\");\n }\n return genClass();\n },\n /**\n @param {CharacterClassRangeNode} node\n */\n CharacterClassRange(node, state) {\n const min = node.min.value;\n const max = node.max.value;\n const escOpts = {\n escDigit: false,\n inCharClass: true,\n useFlagV: state.useFlagV\n };\n const minStr = getCharEscape(min, escOpts);\n const maxStr = getCharEscape(max, escOpts);\n const extraChars = /* @__PURE__ */ new Set();\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase) {\n const charsOutsideRange = getCasesOutsideCharClassRange(node);\n const ranges = getCodePointRangesFromChars(charsOutsideRange);\n ranges.forEach((value) => {\n extraChars.add(\n Array.isArray(value) ? `${getCharEscape(value[0], escOpts)}-${getCharEscape(value[1], escOpts)}` : getCharEscape(value, escOpts)\n );\n });\n }\n return `${minStr}-${maxStr}${[...extraChars].join(\"\")}`;\n },\n /**\n @param {CharacterSetNode} node\n */\n CharacterSet({ kind, negate, value, key }, state) {\n if (kind === \"dot\") {\n return state.currentFlags.dotAll ? state.appliedGlobalFlags.dotAll || state.useFlagMods ? \".\" : \"[^]\" : (\n // Onig's only line break char is line feed, unlike JS\n r`[^\\n]`\n );\n }\n if (kind === \"digit\") {\n return negate ? r`\\D` : r`\\d`;\n }\n if (kind === \"property\") {\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase && UnicodePropertiesWithSpecificCase.has(value)) {\n throw new Error(`Unicode property \"${value}\" can't be case-insensitive when other chars have specific case`);\n }\n return `${negate ? r`\\P` : r`\\p`}{${key ? `${key}=` : \"\"}${value}}`;\n }\n if (kind === \"word\") {\n return negate ? r`\\W` : r`\\w`;\n }\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n },\n /**\n @param {FlagsNode} node\n */\n Flags(node, state) {\n return (\n // The transformer should never turn on the properties for flags d, g, m since Onig doesn't\n // have equivs. Flag m is never used since Onig uses different line break chars than JS\n // (node.hasIndices ? 'd' : '') +\n // (node.global ? 'g' : '') +\n // (node.multiline ? 'm' : '') +\n (state.appliedGlobalFlags.ignoreCase ? \"i\" : \"\") + (node.dotAll ? \"s\" : \"\") + (node.sticky ? \"y\" : \"\")\n );\n },\n /**\n @param {GroupNode} node\n */\n Group({ atomic: atomic2, body, flags, parent }, state, gen) {\n const currentFlags = state.currentFlags;\n if (flags) {\n state.currentFlags = getNewCurrentFlags(currentFlags, flags);\n }\n const contents = body.map(gen).join(\"|\");\n const result = !state.verbose && body.length === 1 && // Single alt\n parent.type !== \"Quantifier\" && !atomic2 && (!state.useFlagMods || !flags) ? contents : `(?${getGroupPrefix(atomic2, flags, state.useFlagMods)}${contents})`;\n state.currentFlags = currentFlags;\n return result;\n },\n /**\n @param {LookaroundAssertionNode} node\n */\n LookaroundAssertion({ body, kind, negate }, _, gen) {\n const prefix = `${kind === \"lookahead\" ? \"\" : \"<\"}${negate ? \"!\" : \"=\"}`;\n return `(?${prefix}${body.map(gen).join(\"|\")})`;\n },\n /**\n @param {QuantifierNode} node\n */\n Quantifier(node, _, gen) {\n return gen(node.body) + getQuantifierStr(node);\n },\n /**\n @param {SubroutineNode & {isRecursive: true}} node\n */\n Subroutine({ isRecursive, ref }, state) {\n if (!isRecursive) {\n throw new Error(\"Unexpected non-recursive subroutine in transformed AST\");\n }\n const limit = state.recursionLimit;\n return ref === 0 ? `(?R=${limit})` : r`\\g<${ref}&R=${limit}>`;\n }\n};\nvar BaseEscapeChars = /* @__PURE__ */ new Set([\n \"$\",\n \"(\",\n \")\",\n \"*\",\n \"+\",\n \".\",\n \"?\",\n \"[\",\n \"\\\\\",\n \"]\",\n \"^\",\n \"{\",\n \"|\",\n \"}\"\n]);\nvar CharClassEscapeChars = /* @__PURE__ */ new Set([\n \"-\",\n \"\\\\\",\n \"]\",\n \"^\",\n // Literal `[` doesn't require escaping with flag u, but this can help work around regex source\n // linters and regex syntax processors that expect unescaped `[` to create a nested class\n \"[\"\n]);\nvar CharClassEscapeCharsFlagV = /* @__PURE__ */ new Set([\n \"(\",\n \")\",\n \"-\",\n \"/\",\n \"[\",\n \"\\\\\",\n \"]\",\n \"^\",\n \"{\",\n \"|\",\n \"}\",\n // Double punctuators; also includes already-listed `-` and `^`\n \"!\",\n \"#\",\n \"$\",\n \"%\",\n \"&\",\n \"*\",\n \"+\",\n \",\",\n \".\",\n \":\",\n \";\",\n \"<\",\n \"=\",\n \">\",\n \"?\",\n \"@\",\n \"`\",\n \"~\"\n]);\nvar CharCodeEscapeMap = /* @__PURE__ */ new Map([\n [9, r`\\t`],\n // horizontal tab\n [10, r`\\n`],\n // line feed\n [11, r`\\v`],\n // vertical tab\n [12, r`\\f`],\n // form feed\n [13, r`\\r`],\n // carriage return\n [8232, r`\\u2028`],\n // line separator\n [8233, r`\\u2029`],\n // paragraph separator\n [65279, r`\\uFEFF`]\n // ZWNBSP/BOM\n]);\nvar casedRe = /^\\p{Cased}$/u;\nfunction charHasCase(char) {\n return casedRe.test(char);\n}\nfunction getCasesOutsideCharClassRange(node, options) {\n const firstOnly = !!options?.firstOnly;\n const min = node.min.value;\n const max = node.max.value;\n const found = [];\n if (min < 65 && (max === 65535 || max >= 131071) || min === 65536 && max >= 131071) {\n return found;\n }\n for (let i = min; i <= max; i++) {\n const char = cp(i);\n if (!charHasCase(char)) {\n continue;\n }\n const charsOutsideRange = getIgnoreCaseMatchChars(char).filter((caseOfChar) => {\n const num = caseOfChar.codePointAt(0);\n return num < min || num > max;\n });\n if (charsOutsideRange.length) {\n found.push(...charsOutsideRange);\n if (firstOnly) {\n break;\n }\n }\n }\n return found;\n}\nfunction getCharEscape(codePoint, { escDigit, inCharClass, useFlagV }) {\n if (CharCodeEscapeMap.has(codePoint)) {\n return CharCodeEscapeMap.get(codePoint);\n }\n if (\n // Control chars, etc.; condition modeled on the Chrome developer console's display for strings\n codePoint < 32 || codePoint > 126 && codePoint < 160 || // Unicode planes 4-16; unassigned, special purpose, and private use area\n codePoint > 262143 || // Avoid corrupting a preceding backref by immediately following it with a literal digit\n escDigit && isDigitCharCode(codePoint)\n ) {\n return codePoint > 255 ? `\\\\u{${codePoint.toString(16).toUpperCase()}}` : `\\\\x${codePoint.toString(16).toUpperCase().padStart(2, \"0\")}`;\n }\n const escapeChars = inCharClass ? useFlagV ? CharClassEscapeCharsFlagV : CharClassEscapeChars : BaseEscapeChars;\n const char = cp(codePoint);\n return (escapeChars.has(char) ? \"\\\\\" : \"\") + char;\n}\nfunction getCodePointRangesFromChars(chars) {\n const codePoints = chars.map((char) => char.codePointAt(0)).sort((a, b) => a - b);\n const values = [];\n let start = null;\n for (let i = 0; i < codePoints.length; i++) {\n if (codePoints[i + 1] === codePoints[i] + 1) {\n start ??= codePoints[i];\n } else if (start === null) {\n values.push(codePoints[i]);\n } else {\n values.push([start, codePoints[i]]);\n start = null;\n }\n }\n return values;\n}\nfunction getGroupPrefix(atomic2, flagMods, useFlagMods) {\n if (atomic2) {\n return \">\";\n }\n let mods = \"\";\n if (flagMods && useFlagMods) {\n const { enable, disable } = flagMods;\n mods = (enable?.ignoreCase ? \"i\" : \"\") + (enable?.dotAll ? \"s\" : \"\") + (disable ? \"-\" : \"\") + (disable?.ignoreCase ? \"i\" : \"\") + (disable?.dotAll ? \"s\" : \"\");\n }\n return `${mods}:`;\n}\nfunction getQuantifierStr({ kind, max, min }) {\n let base;\n if (!min && max === 1) {\n base = \"?\";\n } else if (!min && max === Infinity) {\n base = \"*\";\n } else if (min === 1 && max === Infinity) {\n base = \"+\";\n } else if (min === max) {\n base = `{${min}}`;\n } else {\n base = `{${min},${max === Infinity ? \"\" : max}}`;\n }\n return base + {\n greedy: \"\",\n lazy: \"?\",\n possessive: \"+\"\n }[kind];\n}\nfunction isAnyGroup({ type }) {\n return type === \"CapturingGroup\" || type === \"Group\" || type === \"LookaroundAssertion\";\n}\nfunction isDigitCharCode(value) {\n return value > 47 && value < 58;\n}\nfunction isLiteralHyphen({ type, value }) {\n return type === \"Character\" && value === 45;\n}\n\n// src/subclass.js\nvar EmulatedRegExp = class _EmulatedRegExp extends RegExp {\n /**\n @type {Map<number, {\n hidden?: true;\n transferTo?: number;\n }>}\n */\n #captureMap = /* @__PURE__ */ new Map();\n /**\n @type {RegExp | EmulatedRegExp | null}\n */\n #compiled = null;\n /**\n @type {string}\n */\n #pattern;\n /**\n @type {Map<number, string>?}\n */\n #nameMap = null;\n /**\n @type {string?}\n */\n #strategy = null;\n /**\n Can be used to serialize the instance.\n @type {EmulatedRegExpOptions}\n */\n rawOptions = {};\n // Override the getter with one that works with lazy-compiled regexes\n get source() {\n return this.#pattern || \"(?:)\";\n }\n /**\n @overload\n @param {string} pattern\n @param {string} [flags]\n @param {EmulatedRegExpOptions} [options]\n */\n /**\n @overload\n @param {EmulatedRegExp} pattern\n @param {string} [flags]\n */\n constructor(pattern, flags, options) {\n const lazyCompile = !!options?.lazyCompile;\n if (pattern instanceof RegExp) {\n if (options) {\n throw new Error(\"Cannot provide options when copying a regexp\");\n }\n const re = pattern;\n super(re, flags);\n this.#pattern = re.source;\n if (re instanceof _EmulatedRegExp) {\n this.#captureMap = re.#captureMap;\n this.#nameMap = re.#nameMap;\n this.#strategy = re.#strategy;\n this.rawOptions = re.rawOptions;\n }\n } else {\n const opts = {\n hiddenCaptures: [],\n strategy: null,\n transfers: [],\n ...options\n };\n super(lazyCompile ? \"\" : pattern, flags);\n this.#pattern = pattern;\n this.#captureMap = createCaptureMap(opts.hiddenCaptures, opts.transfers);\n this.#strategy = opts.strategy;\n this.rawOptions = options ?? {};\n }\n if (!lazyCompile) {\n this.#compiled = this;\n }\n }\n /**\n Called internally by all String/RegExp methods that use regexes.\n @override\n @param {string} str\n @returns {RegExpExecArray?}\n */\n exec(str) {\n if (!this.#compiled) {\n const { lazyCompile, ...rest } = this.rawOptions;\n this.#compiled = new _EmulatedRegExp(this.#pattern, this.flags, rest);\n }\n const useLastIndex = this.global || this.sticky;\n const pos = this.lastIndex;\n if (this.#strategy === \"clip_search\" && useLastIndex && pos) {\n this.lastIndex = 0;\n const match = this.#execCore(str.slice(pos));\n if (match) {\n adjustMatchDetailsForOffset(match, pos, str, this.hasIndices);\n this.lastIndex += pos;\n }\n return match;\n }\n return this.#execCore(str);\n }\n /**\n Adds support for hidden and transfer captures.\n @param {string} str\n @returns\n */\n #execCore(str) {\n this.#compiled.lastIndex = this.lastIndex;\n const match = super.exec.call(this.#compiled, str);\n this.lastIndex = this.#compiled.lastIndex;\n if (!match || !this.#captureMap.size) {\n return match;\n }\n const matchCopy = [...match];\n match.length = 1;\n let indicesCopy;\n if (this.hasIndices) {\n indicesCopy = [...match.indices];\n match.indices.length = 1;\n }\n const mappedNums = [0];\n for (let i = 1; i < matchCopy.length; i++) {\n const { hidden, transferTo } = this.#captureMap.get(i) ?? {};\n if (hidden) {\n mappedNums.push(null);\n } else {\n mappedNums.push(match.length);\n match.push(matchCopy[i]);\n if (this.hasIndices) {\n match.indices.push(indicesCopy[i]);\n }\n }\n if (transferTo && matchCopy[i] !== void 0) {\n const to = mappedNums[transferTo];\n if (!to) {\n throw new Error(`Invalid capture transfer to \"${to}\"`);\n }\n match[to] = matchCopy[i];\n if (this.hasIndices) {\n match.indices[to] = indicesCopy[i];\n }\n if (match.groups) {\n if (!this.#nameMap) {\n this.#nameMap = createNameMap(this.source);\n }\n const name = this.#nameMap.get(transferTo);\n if (name) {\n match.groups[name] = matchCopy[i];\n if (this.hasIndices) {\n match.indices.groups[name] = indicesCopy[i];\n }\n }\n }\n }\n }\n return match;\n }\n};\nfunction adjustMatchDetailsForOffset(match, offset, input, hasIndices) {\n match.index += offset;\n match.input = input;\n if (hasIndices) {\n const indices = match.indices;\n for (let i = 0; i < indices.length; i++) {\n const arr = indices[i];\n if (arr) {\n indices[i] = [arr[0] + offset, arr[1] + offset];\n }\n }\n const groupIndices = indices.groups;\n if (groupIndices) {\n Object.keys(groupIndices).forEach((key) => {\n const arr = groupIndices[key];\n if (arr) {\n groupIndices[key] = [arr[0] + offset, arr[1] + offset];\n }\n });\n }\n }\n}\nfunction createCaptureMap(hiddenCaptures, transfers) {\n const captureMap = /* @__PURE__ */ new Map();\n for (const num of hiddenCaptures) {\n captureMap.set(num, {\n hidden: true\n });\n }\n for (const [to, from] of transfers) {\n for (const num of from) {\n getOrInsert(captureMap, num, {}).transferTo = to;\n }\n }\n return captureMap;\n}\nfunction createNameMap(pattern) {\n const re = /(?<capture>\\((?:\\?<(?![=!])(?<name>[^>]+)>|(?!\\?)))|\\\\?./gsu;\n const map = /* @__PURE__ */ new Map();\n let numCharClassesOpen = 0;\n let numCaptures = 0;\n let match;\n while (match = re.exec(pattern)) {\n const { 0: m, groups: { capture, name } } = match;\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (capture) {\n numCaptures++;\n if (name) {\n map.set(numCaptures, name);\n }\n }\n } else if (m === \"]\") {\n numCharClassesOpen--;\n }\n }\n return map;\n}\n\n// src/index.js\nimport { parse as parse2 } from \"oniguruma-parser/parser\";\nimport { atomic, possessive } from \"regex/internals\";\nimport { recursion } from \"regex-recursion\";\nfunction toRegExp(pattern, options) {\n const d = toRegExpDetails(pattern, options);\n if (d.options) {\n return new EmulatedRegExp(d.pattern, d.flags, d.options);\n }\n return new RegExp(d.pattern, d.flags);\n}\nfunction toRegExpDetails(pattern, options) {\n const opts = getOptions(options);\n const onigurumaAst = parse2(pattern, {\n flags: opts.flags,\n normalizeUnknownPropertyNames: true,\n rules: {\n captureGroup: opts.rules.captureGroup,\n singleline: opts.rules.singleline\n },\n skipBackrefValidation: opts.rules.allowOrphanBackrefs,\n unicodePropertyMap: JsUnicodePropertyMap\n });\n const regexPlusAst = transform(onigurumaAst, {\n accuracy: opts.accuracy,\n asciiWordBoundaries: opts.rules.asciiWordBoundaries,\n avoidSubclass: opts.avoidSubclass,\n bestEffortTarget: opts.target\n });\n const generated = generate(regexPlusAst, opts);\n const recursionResult = recursion(generated.pattern, {\n captureTransfers: generated._captureTransfers,\n hiddenCaptures: generated._hiddenCaptures,\n mode: \"external\"\n });\n const possessiveResult = possessive(recursionResult.pattern);\n const atomicResult = atomic(possessiveResult.pattern, {\n captureTransfers: recursionResult.captureTransfers,\n hiddenCaptures: recursionResult.hiddenCaptures\n });\n const details = {\n pattern: atomicResult.pattern,\n flags: `${opts.hasIndices ? \"d\" : \"\"}${opts.global ? \"g\" : \"\"}${generated.flags}${generated.options.disable.v ? \"u\" : \"v\"}`\n };\n if (opts.avoidSubclass) {\n if (opts.lazyCompileLength !== Infinity) {\n throw new Error(\"Lazy compilation requires subclass\");\n }\n } else {\n const hiddenCaptures = atomicResult.hiddenCaptures.sort((a, b) => a - b);\n const transfers = Array.from(atomicResult.captureTransfers);\n const strategy = regexPlusAst._strategy;\n const lazyCompile = details.pattern.length >= opts.lazyCompileLength;\n if (hiddenCaptures.length || transfers.length || strategy || lazyCompile) {\n details.options = {\n ...hiddenCaptures.length && { hiddenCaptures },\n ...transfers.length && { transfers },\n ...strategy && { strategy },\n ...lazyCompile && { lazyCompile }\n };\n }\n }\n return details;\n}\nexport {\n EmulatedRegExp,\n toRegExp,\n toRegExpDetails\n};\n//# sourceMappingURL=index.js.map\n","const MAX = 4294967295;\nclass JavaScriptScanner {\n constructor(patterns, options = {}) {\n this.patterns = patterns;\n this.options = options;\n const {\n forgiving = false,\n cache,\n regexConstructor\n } = options;\n if (!regexConstructor) {\n throw new Error(\"Option `regexConstructor` is not provided\");\n }\n this.regexps = patterns.map((p) => {\n if (typeof p !== \"string\") {\n return p;\n }\n const cached = cache?.get(p);\n if (cached) {\n if (cached instanceof RegExp) {\n return cached;\n }\n if (forgiving)\n return null;\n throw cached;\n }\n try {\n const regex = regexConstructor(p);\n cache?.set(p, regex);\n return regex;\n } catch (e) {\n cache?.set(p, e);\n if (forgiving)\n return null;\n throw e;\n }\n });\n }\n regexps;\n findNextMatchSync(string, startPosition, _options) {\n const str = typeof string === \"string\" ? string : string.content;\n const pending = [];\n function toResult(index, match, offset = 0) {\n return {\n index,\n captureIndices: match.indices.map((indice) => {\n if (indice == null) {\n return {\n start: MAX,\n end: MAX,\n length: 0\n };\n }\n return {\n start: indice[0] + offset,\n end: indice[1] + offset,\n length: indice[1] - indice[0]\n };\n })\n };\n }\n for (let i = 0; i < this.regexps.length; i++) {\n const regexp = this.regexps[i];\n if (!regexp)\n continue;\n try {\n regexp.lastIndex = startPosition;\n const match = regexp.exec(str);\n if (!match)\n continue;\n if (match.index === startPosition) {\n return toResult(i, match, 0);\n }\n pending.push([i, match, 0]);\n } catch (e) {\n if (this.options.forgiving)\n continue;\n throw e;\n }\n }\n if (pending.length) {\n const minIndex = Math.min(...pending.map((m) => m[1].index));\n for (const [i, match, offset] of pending) {\n if (match.index === minIndex) {\n return toResult(i, match, offset);\n }\n }\n }\n return null;\n }\n}\n\nexport { JavaScriptScanner as J };\n","import { toRegExp } from 'oniguruma-to-es';\nimport { J as JavaScriptScanner } from './shared/engine-javascript.hzpS1_41.mjs';\n\nfunction defaultJavaScriptRegexConstructor(pattern, options) {\n return toRegExp(\n pattern,\n {\n global: true,\n hasIndices: true,\n // This has no benefit for the standard JS engine, but it avoids a perf penalty for\n // precompiled grammars when constructing extremely long patterns that aren't always used\n lazyCompileLength: 3e3,\n rules: {\n // Needed since TextMate grammars merge backrefs across patterns\n allowOrphanBackrefs: true,\n // Improves search performance for generated regexes\n asciiWordBoundaries: true,\n // Follow `vscode-oniguruma` which enables this Oniguruma option by default\n captureGroup: true,\n // Oniguruma uses depth limit `20`; lowered here to keep regexes shorter and maybe\n // sometimes faster, but can be increased if issues reported due to low limit\n recursionLimit: 5,\n // Oniguruma option for `^`->`\\A`, `$`->`\\Z`; improves search performance without any\n // change in meaning since TM grammars search line by line\n singleline: true\n },\n ...options\n }\n );\n}\nfunction createJavaScriptRegexEngine(options = {}) {\n const _options = Object.assign(\n {\n target: \"auto\",\n cache: /* @__PURE__ */ new Map()\n },\n options\n );\n _options.regexConstructor ||= (pattern) => defaultJavaScriptRegexConstructor(pattern, { target: _options.target });\n return {\n createScanner(patterns) {\n return new JavaScriptScanner(patterns, _options);\n },\n createString(s) {\n return {\n content: s\n };\n }\n };\n}\n\nexport { createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor };\n","\"use client\";\nimport {a,g as g$1,b as b$1}from'./chunk-JAPRZBRM.js';import {memo,useMemo,useContext,useState,useEffect}from'react';import {jsx,jsxs}from'react/jsx-runtime';import {createHighlighter,bundledLanguages}from'shiki';import {createJavaScriptRegexEngine}from'shiki/engine/javascript';var v=a(\"block\",\"before:content-[counter(line)]\",\"before:inline-block\",\"before:[counter-increment:line]\",\"before:w-4\",\"before:mr-4\",\"before:text-[13px]\",\"before:text-right\",\"before:text-muted-foreground/50\",\"before:font-mono\",\"before:select-none\"),b=memo(({children:e,result:t,language:o,className:r,...s})=>{let n=useMemo(()=>({backgroundColor:t.bg,color:t.fg}),[t.bg,t.fg]);return jsx(\"pre\",{className:a(r,\"p-4 text-sm dark:bg-(--shiki-dark-bg)!\"),\"data-language\":o,\"data-streamdown\":\"code-block-body\",style:n,...s,children:jsx(\"code\",{className:\"[counter-increment:line_0] [counter-reset:line]\",children:t.tokens.map((l,d)=>jsx(\"span\",{className:v,children:l.map((a,i)=>jsx(\"span\",{className:\"dark:bg-(--shiki-dark-bg)! dark:text-(--shiki-dark)!\",style:{color:a.color,backgroundColor:a.bgColor,...a.htmlStyle},...a.htmlAttrs,children:a.content},i))},d))})})},(e,t)=>e.result===t.result&&e.language===t.language&&e.className===t.className);var y=({className:e,language:t,style:o,...r})=>jsx(\"div\",{className:a(\"my-4 w-full overflow-hidden rounded-xl border border-border\",e),\"data-language\":t,\"data-streamdown\":\"code-block\",style:{contentVisibility:\"auto\",containIntrinsicSize:\"auto 200px\",...o},...r});var L=({language:e,children:t})=>jsxs(\"div\",{className:\"flex items-center justify-between bg-muted/80 p-3 text-muted-foreground text-xs\",\"data-language\":e,\"data-streamdown\":\"code-block-header\",children:[jsx(\"span\",{className:\"ml-1 font-mono lowercase\",children:e}),jsx(\"div\",{className:\"flex items-center gap-2\",children:t})]});var $=createJavaScriptRegexEngine({forgiving:true}),m=new Map,p=new Map,g=new Map,E=(e,t)=>`${e}-${t[0]}-${t[1]}`,A=(e,t,o)=>{let r=e.slice(0,100),s=e.length>100?e.slice(-100):\"\";return `${t}:${o[0]}:${o[1]}:${e.length}:${r}:${s}`},T=e=>Object.hasOwn(bundledLanguages,e),K=(e,t)=>{let o=T(e)?e:\"text\",r=E(o,t);if(m.has(r))return m.get(r);let s=createHighlighter({themes:t,langs:[o],engine:$});return m.set(r,s),s},h=(e,t,o,r)=>{let s=T(t)?t:\"text\",n=A(e,s,o);return p.has(n)?p.get(n):(r&&(g.has(n)||g.set(n,new Set),g.get(n).add(r)),K(s,o).then(l=>{let d=l.codeToTokens(e,{lang:s,themes:{light:o[0],dark:o[1]}});p.set(n,d);let a=g.get(n);if(a){for(let i of a)i(d);g.delete(n);}}).catch(l=>{console.error(\"Failed to highlight code:\",l),g.delete(n);}),null)};var le=({code:e,language:t,className:o,children:r,...s})=>{let{shikiTheme:n}=useContext(g$1),l=useMemo(()=>({bg:\"transparent\",fg:\"inherit\",tokens:e.split(`\n`).map(i=>[{content:i,color:\"inherit\",bgColor:\"transparent\",htmlStyle:{},offset:0}])}),[e]),[d,a]=useState(l);return useEffect(()=>{let i=h(e,t,n);if(i){a(i);return}h(e,t,n,x=>{a(x);});},[e,t,n]),jsx(b$1.Provider,{value:{code:e},children:jsxs(y,{language:t,children:[jsx(L,{language:t,children:r}),jsx(b,{className:o,language:t,result:d,...s})]})})};export{le as CodeBlock};"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12],"mappings":"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"}