{"version":3,"sources":["../node_modules/tsup/assets/cjs_shims.js","../node_modules/jiti/dist/jiti.cjs","../node_modules/enhanced-resolve/lib/util/memoize.js","../node_modules/enhanced-resolve/lib/CachedInputFileSystem.js","../node_modules/graceful-fs/polyfills.js","../node_modules/graceful-fs/legacy-streams.js","../node_modules/graceful-fs/clone.js","../node_modules/graceful-fs/graceful-fs.js","../node_modules/enhanced-resolve/lib/forEachBail.js","../node_modules/enhanced-resolve/lib/DescriptionFileUtils.js","../node_modules/enhanced-resolve/lib/getInnerRequest.js","../node_modules/enhanced-resolve/lib/AliasFieldPlugin.js","../node_modules/enhanced-resolve/lib/util/path.js","../node_modules/enhanced-resolve/lib/AliasUtils.js","../node_modules/enhanced-resolve/lib/AliasPlugin.js","../node_modules/enhanced-resolve/lib/AppendPlugin.js","../node_modules/enhanced-resolve/lib/ConditionalPlugin.js","../node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js","../node_modules/enhanced-resolve/lib/DirectoryExistsPlugin.js","../node_modules/enhanced-resolve/lib/util/identifier.js","../node_modules/enhanced-resolve/lib/util/entrypoints.js","../node_modules/enhanced-resolve/lib/ExportsFieldPlugin.js","../node_modules/enhanced-resolve/lib/ExtensionAliasPlugin.js","../node_modules/enhanced-resolve/lib/FileExistsPlugin.js","../node_modules/enhanced-resolve/lib/ImportsFieldPlugin.js","../node_modules/enhanced-resolve/lib/JoinRequestPartPlugin.js","../node_modules/enhanced-resolve/lib/JoinRequestPlugin.js","../node_modules/enhanced-resolve/lib/MainFieldPlugin.js","../node_modules/enhanced-resolve/lib/getPaths.js","../node_modules/enhanced-resolve/lib/ModulesUtils.js","../node_modules/enhanced-resolve/lib/ModulesInHierarchicalDirectoriesPlugin.js","../node_modules/enhanced-resolve/lib/ModulesInRootPlugin.js","../node_modules/enhanced-resolve/lib/NextPlugin.js","../node_modules/enhanced-resolve/lib/ParsePlugin.js","../node_modules/enhanced-resolve/lib/PnpPlugin.js","../node_modules/tapable/lib/Hook.js","../node_modules/tapable/lib/HookCodeFactory.js","../node_modules/tapable/lib/AsyncParallelBailHook.js","../node_modules/tapable/lib/AsyncParallelHook.js","../node_modules/tapable/lib/AsyncSeriesBailHook.js","../node_modules/tapable/lib/AsyncSeriesHook.js","../node_modules/tapable/lib/AsyncSeriesLoopHook.js","../node_modules/tapable/lib/AsyncSeriesWaterfallHook.js","../node_modules/tapable/lib/HookMap.js","../node_modules/tapable/lib/MultiHook.js","../node_modules/tapable/lib/SyncBailHook.js","../node_modules/tapable/lib/SyncHook.js","../node_modules/tapable/lib/SyncLoopHook.js","../node_modules/tapable/lib/SyncWaterfallHook.js","../node_modules/tapable/lib/index.js","../node_modules/enhanced-resolve/lib/createInnerContext.js","../node_modules/enhanced-resolve/lib/Resolver.js","../node_modules/enhanced-resolve/lib/RestrictionsPlugin.js","../node_modules/enhanced-resolve/lib/ResultPlugin.js","../node_modules/enhanced-resolve/lib/RootsPlugin.js","../node_modules/enhanced-resolve/lib/SelfReferencePlugin.js","../node_modules/enhanced-resolve/lib/SymlinkPlugin.js","../node_modules/enhanced-resolve/lib/SyncAsyncFileSystemDecorator.js","../node_modules/enhanced-resolve/lib/TryNextPlugin.js","../node_modules/enhanced-resolve/lib/util/strip-json-comments.js","../node_modules/enhanced-resolve/lib/util/fs.js","../node_modules/enhanced-resolve/lib/TsconfigPathsPlugin.js","../node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js","../node_modules/enhanced-resolve/lib/UseFilePlugin.js","../node_modules/enhanced-resolve/lib/ResolverFactory.js","../node_modules/enhanced-resolve/lib/CloneBasenamePlugin.js","../node_modules/enhanced-resolve/lib/LogInfoPlugin.js","../node_modules/enhanced-resolve/lib/index.js","../src/index.ts","../src/array-class.ts","../src/class-regex.ts","../src/ide-config.ts","../src/extract.ts","../src/nclass.ts","../src/class-order.ts","../node_modules/jiti/lib/jiti.mjs","../src/property-order.ts","../src/sorting.ts","../src/options.ts","../src/preprocess.ts","../src/printer.ts","../src/tailwind.ts","../src/resolve.ts"],"sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n  typeof document === \"undefined\" \n    ? new URL(`file:${__filename}`).href \n    : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n      ? document.currentScript.src \n      : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","(()=>{var e={\"./node_modules/.pnpm/mlly@1.8.0/node_modules/mlly/dist lazy recursive\":function(e){function webpackEmptyAsyncContext(e){return Promise.resolve().then(function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t})}webpackEmptyAsyncContext.keys=()=>[],webpackEmptyAsyncContext.resolve=webpackEmptyAsyncContext,webpackEmptyAsyncContext.id=\"./node_modules/.pnpm/mlly@1.8.0/node_modules/mlly/dist lazy recursive\",e.exports=webpackEmptyAsyncContext}},t={};function __webpack_require__(i){var s=t[i];if(void 0!==s)return s.exports;var r=t[i]={exports:{}};return e[i](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var i in t)__webpack_require__.o(t,i)&&!__webpack_require__.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};(()=>{\"use strict\";__webpack_require__.d(i,{default:()=>createJiti});const e=require(\"node:os\");var t=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,80,3,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,343,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,726,6,110,6,6,9,4759,9,787719,239],s=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,2,60,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,42,9,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,496,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],r=\"ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲊᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟍꟐꟑꟓꟕ-Ƛꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ\",n={3:\"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",5:\"class enum extends super const export import\",6:\"enum\",strict:\"implements interface let package private protected public static yield\",strictBind:\"eval arguments\"},a=\"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\",o={5:a,\"5module\":a+\" export import\",6:a+\" const class extends export import super\"},h=/^in(stanceof)?$/,c=new RegExp(\"[\"+r+\"]\"),p=new RegExp(\"[\"+r+\"‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࢗ-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏０-９＿･]\");function isInAstralSet(e,t){for(var i=65536,s=0;s<t.length;s+=2){if((i+=t[s])>e)return!1;if((i+=t[s+1])>=e)return!0}return!1}function isIdentifierStart(e,t){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&c.test(String.fromCharCode(e)):!1!==t&&isInAstralSet(e,s)))}function isIdentifierChar(e,i){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&p.test(String.fromCharCode(e)):!1!==i&&(isInAstralSet(e,s)||isInAstralSet(e,t)))))}var acorn_TokenType=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function binop(e,t){return new acorn_TokenType(e,{beforeExpr:!0,binop:t})}var l={beforeExpr:!0},u={startsExpr:!0},d={};function kw(e,t){return void 0===t&&(t={}),t.keyword=e,d[e]=new acorn_TokenType(e,t)}var f={num:new acorn_TokenType(\"num\",u),regexp:new acorn_TokenType(\"regexp\",u),string:new acorn_TokenType(\"string\",u),name:new acorn_TokenType(\"name\",u),privateId:new acorn_TokenType(\"privateId\",u),eof:new acorn_TokenType(\"eof\"),bracketL:new acorn_TokenType(\"[\",{beforeExpr:!0,startsExpr:!0}),bracketR:new acorn_TokenType(\"]\"),braceL:new acorn_TokenType(\"{\",{beforeExpr:!0,startsExpr:!0}),braceR:new acorn_TokenType(\"}\"),parenL:new acorn_TokenType(\"(\",{beforeExpr:!0,startsExpr:!0}),parenR:new acorn_TokenType(\")\"),comma:new acorn_TokenType(\",\",l),semi:new acorn_TokenType(\";\",l),colon:new acorn_TokenType(\":\",l),dot:new acorn_TokenType(\".\"),question:new acorn_TokenType(\"?\",l),questionDot:new acorn_TokenType(\"?.\"),arrow:new acorn_TokenType(\"=>\",l),template:new acorn_TokenType(\"template\"),invalidTemplate:new acorn_TokenType(\"invalidTemplate\"),ellipsis:new acorn_TokenType(\"...\",l),backQuote:new acorn_TokenType(\"`\",u),dollarBraceL:new acorn_TokenType(\"${\",{beforeExpr:!0,startsExpr:!0}),eq:new acorn_TokenType(\"=\",{beforeExpr:!0,isAssign:!0}),assign:new acorn_TokenType(\"_=\",{beforeExpr:!0,isAssign:!0}),incDec:new acorn_TokenType(\"++/--\",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new acorn_TokenType(\"!/~\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:binop(\"||\",1),logicalAND:binop(\"&&\",2),bitwiseOR:binop(\"|\",3),bitwiseXOR:binop(\"^\",4),bitwiseAND:binop(\"&\",5),equality:binop(\"==/!=/===/!==\",6),relational:binop(\"</>/<=/>=\",7),bitShift:binop(\"<</>>/>>>\",8),plusMin:new acorn_TokenType(\"+/-\",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:binop(\"%\",10),star:binop(\"*\",10),slash:binop(\"/\",10),starstar:new acorn_TokenType(\"**\",{beforeExpr:!0}),coalesce:binop(\"??\",1),_break:kw(\"break\"),_case:kw(\"case\",l),_catch:kw(\"catch\"),_continue:kw(\"continue\"),_debugger:kw(\"debugger\"),_default:kw(\"default\",l),_do:kw(\"do\",{isLoop:!0,beforeExpr:!0}),_else:kw(\"else\",l),_finally:kw(\"finally\"),_for:kw(\"for\",{isLoop:!0}),_function:kw(\"function\",u),_if:kw(\"if\"),_return:kw(\"return\",l),_switch:kw(\"switch\"),_throw:kw(\"throw\",l),_try:kw(\"try\"),_var:kw(\"var\"),_const:kw(\"const\"),_while:kw(\"while\",{isLoop:!0}),_with:kw(\"with\"),_new:kw(\"new\",{beforeExpr:!0,startsExpr:!0}),_this:kw(\"this\",u),_super:kw(\"super\",u),_class:kw(\"class\",u),_extends:kw(\"extends\",l),_export:kw(\"export\"),_import:kw(\"import\",u),_null:kw(\"null\",u),_true:kw(\"true\",u),_false:kw(\"false\",u),_in:kw(\"in\",{beforeExpr:!0,binop:7}),_instanceof:kw(\"instanceof\",{beforeExpr:!0,binop:7}),_typeof:kw(\"typeof\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:kw(\"void\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:kw(\"delete\",{beforeExpr:!0,prefix:!0,startsExpr:!0})},m=/\\r\\n?|\\n|\\u2028|\\u2029/,g=new RegExp(m.source,\"g\");function isNewLine(e){return 10===e||13===e||8232===e||8233===e}function nextLineBreak(e,t,i){void 0===i&&(i=e.length);for(var s=t;s<i;s++){var r=e.charCodeAt(s);if(isNewLine(r))return s<i-1&&13===r&&10===e.charCodeAt(s+1)?s+2:s+1}return-1}var x=/[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/,v=/(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g,y=Object.prototype,_=y.hasOwnProperty,E=y.toString,b=Object.hasOwn||function(e,t){return _.call(e,t)},S=Array.isArray||function(e){return\"[object Array]\"===E.call(e)},k=Object.create(null);function wordsRegexp(e){return k[e]||(k[e]=new RegExp(\"^(?:\"+e.replace(/ /g,\"|\")+\")$\"))}function codePointToString(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}var w=/(?:[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/,acorn_Position=function(e,t){this.line=e,this.column=t};acorn_Position.prototype.offset=function(e){return new acorn_Position(this.line,this.column+e)};var acorn_SourceLocation=function(e,t,i){this.start=t,this.end=i,null!==e.sourceFile&&(this.source=e.sourceFile)};function getLineInfo(e,t){for(var i=1,s=0;;){var r=nextLineBreak(e,s,t);if(r<0)return new acorn_Position(i,t-s);++i,s=r}}var I={ecmaVersion:null,sourceType:\"script\",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},C=!1;function getOptions(e){var t={};for(var i in I)t[i]=e&&b(e,i)?e[i]:I[i];if(\"latest\"===t.ecmaVersion?t.ecmaVersion=1e8:null==t.ecmaVersion?(!C&&\"object\"==typeof console&&console.warn&&(C=!0,console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\")),t.ecmaVersion=11):t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),e&&null!=e.allowHashBang||(t.allowHashBang=t.ecmaVersion>=14),S(t.onToken)){var s=t.onToken;t.onToken=function(e){return s.push(e)}}return S(t.onComment)&&(t.onComment=function(e,t){return function(i,s,r,n,a,o){var h={type:i?\"Block\":\"Line\",value:s,start:r,end:n};e.locations&&(h.loc=new acorn_SourceLocation(this,a,o)),e.ranges&&(h.range=[r,n]),t.push(h)}}(t,t.onComment)),t}var R=256,P=259;function functionFlags(e,t){return 2|(e?4:0)|(t?8:0)}var acorn_Parser=function(e,t,i){this.options=e=getOptions(e),this.sourceFile=e.sourceFile,this.keywords=wordsRegexp(o[e.ecmaVersion>=6?6:\"module\"===e.sourceType?\"5module\":5]);var s=\"\";!0!==e.allowReserved&&(s=n[e.ecmaVersion>=6?6:5===e.ecmaVersion?5:3],\"module\"===e.sourceType&&(s+=\" await\")),this.reservedWords=wordsRegexp(s);var r=(s?s+\" \":\"\")+n.strict;this.reservedWordsStrict=wordsRegexp(r),this.reservedWordsStrictBind=wordsRegexp(r+\" \"+n.strictBind),this.input=String(t),this.containsEsc=!1,i?(this.pos=i,this.lineStart=this.input.lastIndexOf(\"\\n\",i-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(m).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=f.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=\"module\"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),0===this.pos&&e.allowHashBang&&\"#!\"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null,this.privateNameStack=[]},T={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};acorn_Parser.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)},T.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},T.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0},T.inAsync.get=function(){return(4&this.currentVarScope().flags)>0},T.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e].flags;if(768&t)return!1;if(2&t)return(4&t)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},T.allowSuper.get=function(){return(64&this.currentThisScope().flags)>0||this.options.allowSuperOutsideMethod},T.allowDirectSuper.get=function(){return(128&this.currentThisScope().flags)>0},T.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},T.allowNewDotTarget.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e].flags;if(768&t||2&t&&!(16&t))return!0}return!1},T.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&R)>0},acorn_Parser.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var i=this,s=0;s<e.length;s++)i=e[s](i);return i},acorn_Parser.parse=function(e,t){return new this(t,e).parse()},acorn_Parser.parseExpressionAt=function(e,t,i){var s=new this(i,e,t);return s.nextToken(),s.parseExpression()},acorn_Parser.tokenizer=function(e,t){return new this(t,e)},Object.defineProperties(acorn_Parser.prototype,T);var A=acorn_Parser.prototype,N=/^(?:'((?:\\\\[^]|[^'\\\\])*?)'|\"((?:\\\\[^]|[^\"\\\\])*?)\")/;A.strictDirective=function(e){if(this.options.ecmaVersion<5)return!1;for(;;){v.lastIndex=e,e+=v.exec(this.input)[0].length;var t=N.exec(this.input.slice(e));if(!t)return!1;if(\"use strict\"===(t[1]||t[2])){v.lastIndex=e+t[0].length;var i=v.exec(this.input),s=i.index+i[0].length,r=this.input.charAt(s);return\";\"===r||\"}\"===r||m.test(i[0])&&!(/[(`.[+\\-/*%<>=,?^&]/.test(r)||\"!\"===r&&\"=\"===this.input.charAt(s+1))}e+=t[0].length,v.lastIndex=e,e+=v.exec(this.input)[0].length,\";\"===this.input[e]&&e++}},A.eat=function(e){return this.type===e&&(this.next(),!0)},A.isContextual=function(e){return this.type===f.name&&this.value===e&&!this.containsEsc},A.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},A.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},A.canInsertSemicolon=function(){return this.type===f.eof||this.type===f.braceR||m.test(this.input.slice(this.lastTokEnd,this.start))},A.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},A.semicolon=function(){this.eat(f.semi)||this.insertSemicolon()||this.unexpected()},A.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},A.expect=function(e){this.eat(e)||this.unexpected()},A.unexpected=function(e){this.raise(null!=e?e:this.start,\"Unexpected token\")};var acorn_DestructuringErrors=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};A.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,\"Comma is not permitted after the rest element\");var i=t?e.parenthesizedAssign:e.parenthesizedBind;i>-1&&this.raiseRecoverable(i,t?\"Assigning to rvalue\":\"Parenthesized pattern\")}},A.checkExpressionErrors=function(e,t){if(!e)return!1;var i=e.shorthandAssign,s=e.doubleProto;if(!t)return i>=0||s>=0;i>=0&&this.raise(i,\"Shorthand property assignments are valid only in destructuring patterns\"),s>=0&&this.raiseRecoverable(s,\"Redefinition of __proto__ property\")},A.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,\"Yield expression cannot be a default value\"),this.awaitPos&&this.raise(this.awaitPos,\"Await expression cannot be a default value\")},A.isSimpleAssignTarget=function(e){return\"ParenthesizedExpression\"===e.type?this.isSimpleAssignTarget(e.expression):\"Identifier\"===e.type||\"MemberExpression\"===e.type};var L=acorn_Parser.prototype;L.parseTopLevel=function(e){var t=Object.create(null);for(e.body||(e.body=[]);this.type!==f.eof;){var i=this.parseStatement(null,!0,t);e.body.push(i)}if(this.inModule)for(var s=0,r=Object.keys(this.undefinedExports);s<r.length;s+=1){var n=r[s];this.raiseRecoverable(this.undefinedExports[n].start,\"Export '\"+n+\"' is not defined\")}return this.adaptDirectivePrologue(e.body),this.next(),e.sourceType=this.options.sourceType,this.finishNode(e,\"Program\")};var O={kind:\"loop\"},D={kind:\"switch\"};L.isLet=function(e){if(this.options.ecmaVersion<6||!this.isContextual(\"let\"))return!1;v.lastIndex=this.pos;var t=v.exec(this.input),i=this.pos+t[0].length,s=this.input.charCodeAt(i);if(91===s||92===s)return!0;if(e)return!1;if(123===s||s>55295&&s<56320)return!0;if(isIdentifierStart(s,!0)){for(var r=i+1;isIdentifierChar(s=this.input.charCodeAt(r),!0);)++r;if(92===s||s>55295&&s<56320)return!0;var n=this.input.slice(i,r);if(!h.test(n))return!0}return!1},L.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual(\"async\"))return!1;v.lastIndex=this.pos;var e,t=v.exec(this.input),i=this.pos+t[0].length;return!(m.test(this.input.slice(this.pos,i))||\"function\"!==this.input.slice(i,i+8)||i+8!==this.input.length&&(isIdentifierChar(e=this.input.charCodeAt(i+8))||e>55295&&e<56320))},L.isUsingKeyword=function(e,t){if(this.options.ecmaVersion<17||!this.isContextual(e?\"await\":\"using\"))return!1;v.lastIndex=this.pos;var i=v.exec(this.input),s=this.pos+i[0].length;if(m.test(this.input.slice(this.pos,s)))return!1;if(e){var r,n=s+5;if(\"using\"!==this.input.slice(s,n)||n===this.input.length||isIdentifierChar(r=this.input.charCodeAt(n))||r>55295&&r<56320)return!1;v.lastIndex=n;var a=v.exec(this.input);if(a&&m.test(this.input.slice(n,n+a[0].length)))return!1}if(t){var o,h=s+2;if(!(\"of\"!==this.input.slice(s,h)||h!==this.input.length&&(isIdentifierChar(o=this.input.charCodeAt(h))||o>55295&&o<56320)))return!1}var c=this.input.charCodeAt(s);return isIdentifierStart(c,!0)||92===c},L.isAwaitUsing=function(e){return this.isUsingKeyword(!0,e)},L.isUsing=function(e){return this.isUsingKeyword(!1,e)},L.parseStatement=function(e,t,i){var s,r=this.type,n=this.startNode();switch(this.isLet(e)&&(r=f._var,s=\"let\"),r){case f._break:case f._continue:return this.parseBreakContinueStatement(n,r.keyword);case f._debugger:return this.parseDebuggerStatement(n);case f._do:return this.parseDoStatement(n);case f._for:return this.parseForStatement(n);case f._function:return e&&(this.strict||\"if\"!==e&&\"label\"!==e)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(n,!1,!e);case f._class:return e&&this.unexpected(),this.parseClass(n,!0);case f._if:return this.parseIfStatement(n);case f._return:return this.parseReturnStatement(n);case f._switch:return this.parseSwitchStatement(n);case f._throw:return this.parseThrowStatement(n);case f._try:return this.parseTryStatement(n);case f._const:case f._var:return s=s||this.value,e&&\"var\"!==s&&this.unexpected(),this.parseVarStatement(n,s);case f._while:return this.parseWhileStatement(n);case f._with:return this.parseWithStatement(n);case f.braceL:return this.parseBlock(!0,n);case f.semi:return this.parseEmptyStatement(n);case f._export:case f._import:if(this.options.ecmaVersion>10&&r===f._import){v.lastIndex=this.pos;var a=v.exec(this.input),o=this.pos+a[0].length,h=this.input.charCodeAt(o);if(40===h||46===h)return this.parseExpressionStatement(n,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,\"'import' and 'export' may only appear at the top level\"),this.inModule||this.raise(this.start,\"'import' and 'export' may appear only with 'sourceType: module'\")),r===f._import?this.parseImport(n):this.parseExport(n,i);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(n,!0,!e);var c=this.isAwaitUsing(!1)?\"await using\":this.isUsing(!1)?\"using\":null;if(c)return t&&\"script\"===this.options.sourceType&&this.raise(this.start,\"Using declaration cannot appear in the top level when source type is `script`\"),\"await using\"===c&&(this.canAwait||this.raise(this.start,\"Await using cannot appear outside of async function\"),this.next()),this.next(),this.parseVar(n,!1,c),this.semicolon(),this.finishNode(n,\"VariableDeclaration\");var p=this.value,l=this.parseExpression();return r===f.name&&\"Identifier\"===l.type&&this.eat(f.colon)?this.parseLabeledStatement(n,p,l,e):this.parseExpressionStatement(n,l)}},L.parseBreakContinueStatement=function(e,t){var i=\"break\"===t;this.next(),this.eat(f.semi)||this.insertSemicolon()?e.label=null:this.type!==f.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var s=0;s<this.labels.length;++s){var r=this.labels[s];if(null==e.label||r.name===e.label.name){if(null!=r.kind&&(i||\"loop\"===r.kind))break;if(e.label&&i)break}}return s===this.labels.length&&this.raise(e.start,\"Unsyntactic \"+t),this.finishNode(e,i?\"BreakStatement\":\"ContinueStatement\")},L.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,\"DebuggerStatement\")},L.parseDoStatement=function(e){return this.next(),this.labels.push(O),e.body=this.parseStatement(\"do\"),this.labels.pop(),this.expect(f._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(f.semi):this.semicolon(),this.finishNode(e,\"DoWhileStatement\")},L.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual(\"await\")?this.lastTokStart:-1;if(this.labels.push(O),this.enterScope(0),this.expect(f.parenL),this.type===f.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var i=this.isLet();if(this.type===f._var||this.type===f._const||i){var s=this.startNode(),r=i?\"let\":this.value;return this.next(),this.parseVar(s,!0,r),this.finishNode(s,\"VariableDeclaration\"),this.parseForAfterInit(e,s,t)}var n=this.isContextual(\"let\"),a=!1,o=this.isUsing(!0)?\"using\":this.isAwaitUsing(!0)?\"await using\":null;if(o){var h=this.startNode();return this.next(),\"await using\"===o&&this.next(),this.parseVar(h,!0,o),this.finishNode(h,\"VariableDeclaration\"),this.parseForAfterInit(e,h,t)}var c=this.containsEsc,p=new acorn_DestructuringErrors,l=this.start,u=t>-1?this.parseExprSubscripts(p,\"await\"):this.parseExpression(!0,p);return this.type===f._in||(a=this.options.ecmaVersion>=6&&this.isContextual(\"of\"))?(t>-1?(this.type===f._in&&this.unexpected(t),e.await=!0):a&&this.options.ecmaVersion>=8&&(u.start!==l||c||\"Identifier\"!==u.type||\"async\"!==u.name?this.options.ecmaVersion>=9&&(e.await=!1):this.unexpected()),n&&a&&this.raise(u.start,\"The left-hand side of a for-of loop may not start with 'let'.\"),this.toAssignable(u,!1,p),this.checkLValPattern(u),this.parseForIn(e,u)):(this.checkExpressionErrors(p,!0),t>-1&&this.unexpected(t),this.parseFor(e,u))},L.parseForAfterInit=function(e,t,i){return(this.type===f._in||this.options.ecmaVersion>=6&&this.isContextual(\"of\"))&&1===t.declarations.length?(this.options.ecmaVersion>=9&&(this.type===f._in?i>-1&&this.unexpected(i):e.await=i>-1),this.parseForIn(e,t)):(i>-1&&this.unexpected(i),this.parseFor(e,t))},L.parseFunctionStatement=function(e,t,i){return this.next(),this.parseFunction(e,U|(i?0:M),!1,t)},L.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(\"if\"),e.alternate=this.eat(f._else)?this.parseStatement(\"if\"):null,this.finishNode(e,\"IfStatement\")},L.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,\"'return' outside of function\"),this.next(),this.eat(f.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,\"ReturnStatement\")},L.parseSwitchStatement=function(e){var t;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(f.braceL),this.labels.push(D),this.enterScope(0);for(var i=!1;this.type!==f.braceR;)if(this.type===f._case||this.type===f._default){var s=this.type===f._case;t&&this.finishNode(t,\"SwitchCase\"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),s?t.test=this.parseExpression():(i&&this.raiseRecoverable(this.lastTokStart,\"Multiple default clauses\"),i=!0,t.test=null),this.expect(f.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,\"SwitchCase\"),this.next(),this.labels.pop(),this.finishNode(e,\"SwitchStatement\")},L.parseThrowStatement=function(e){return this.next(),m.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,\"Illegal newline after throw\"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,\"ThrowStatement\")};var V=[];L.parseCatchClauseParam=function(){var e=this.parseBindingAtom(),t=\"Identifier\"===e.type;return this.enterScope(t?32:0),this.checkLValPattern(e,t?4:2),this.expect(f.parenR),e},L.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===f._catch){var t=this.startNode();this.next(),this.eat(f.parenL)?t.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0)),t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,\"CatchClause\")}return e.finalizer=this.eat(f._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,\"Missing catch or finally clause\"),this.finishNode(e,\"TryStatement\")},L.parseVarStatement=function(e,t,i){return this.next(),this.parseVar(e,!1,t,i),this.semicolon(),this.finishNode(e,\"VariableDeclaration\")},L.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(O),e.body=this.parseStatement(\"while\"),this.labels.pop(),this.finishNode(e,\"WhileStatement\")},L.parseWithStatement=function(e){return this.strict&&this.raise(this.start,\"'with' in strict mode\"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(\"with\"),this.finishNode(e,\"WithStatement\")},L.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,\"EmptyStatement\")},L.parseLabeledStatement=function(e,t,i,s){for(var r=0,n=this.labels;r<n.length;r+=1){n[r].name===t&&this.raise(i.start,\"Label '\"+t+\"' is already declared\")}for(var a=this.type.isLoop?\"loop\":this.type===f._switch?\"switch\":null,o=this.labels.length-1;o>=0;o--){var h=this.labels[o];if(h.statementStart!==e.start)break;h.statementStart=this.start,h.kind=a}return this.labels.push({name:t,kind:a,statementStart:this.start}),e.body=this.parseStatement(s?-1===s.indexOf(\"label\")?s+\"label\":s:\"label\"),this.labels.pop(),e.label=i,this.finishNode(e,\"LabeledStatement\")},L.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,\"ExpressionStatement\")},L.parseBlock=function(e,t,i){for(void 0===e&&(e=!0),void 0===t&&(t=this.startNode()),t.body=[],this.expect(f.braceL),e&&this.enterScope(0);this.type!==f.braceR;){var s=this.parseStatement(null);t.body.push(s)}return i&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,\"BlockStatement\")},L.parseFor=function(e,t){return e.init=t,this.expect(f.semi),e.test=this.type===f.semi?null:this.parseExpression(),this.expect(f.semi),e.update=this.type===f.parenR?null:this.parseExpression(),this.expect(f.parenR),e.body=this.parseStatement(\"for\"),this.exitScope(),this.labels.pop(),this.finishNode(e,\"ForStatement\")},L.parseForIn=function(e,t){var i=this.type===f._in;return this.next(),\"VariableDeclaration\"===t.type&&null!=t.declarations[0].init&&(!i||this.options.ecmaVersion<8||this.strict||\"var\"!==t.kind||\"Identifier\"!==t.declarations[0].id.type)&&this.raise(t.start,(i?\"for-in\":\"for-of\")+\" loop variable declaration may not have an initializer\"),e.left=t,e.right=i?this.parseExpression():this.parseMaybeAssign(),this.expect(f.parenR),e.body=this.parseStatement(\"for\"),this.exitScope(),this.labels.pop(),this.finishNode(e,i?\"ForInStatement\":\"ForOfStatement\")},L.parseVar=function(e,t,i,s){for(e.declarations=[],e.kind=i;;){var r=this.startNode();if(this.parseVarId(r,i),this.eat(f.eq)?r.init=this.parseMaybeAssign(t):s||\"const\"!==i||this.type===f._in||this.options.ecmaVersion>=6&&this.isContextual(\"of\")?s||\"using\"!==i&&\"await using\"!==i||!(this.options.ecmaVersion>=17)||this.type===f._in||this.isContextual(\"of\")?s||\"Identifier\"===r.id.type||t&&(this.type===f._in||this.isContextual(\"of\"))?r.init=null:this.raise(this.lastTokEnd,\"Complex binding patterns require an initialization value\"):this.raise(this.lastTokEnd,\"Missing initializer in \"+i+\" declaration\"):this.unexpected(),e.declarations.push(this.finishNode(r,\"VariableDeclarator\")),!this.eat(f.comma))break}return e},L.parseVarId=function(e,t){e.id=\"using\"===t||\"await using\"===t?this.parseIdent():this.parseBindingAtom(),this.checkLValPattern(e.id,\"var\"===t?1:2,!1)};var U=1,M=2;function isPrivateNameConflicted(e,t){var i=t.key.name,s=e[i],r=\"true\";return\"MethodDefinition\"!==t.type||\"get\"!==t.kind&&\"set\"!==t.kind||(r=(t.static?\"s\":\"i\")+t.kind),\"iget\"===s&&\"iset\"===r||\"iset\"===s&&\"iget\"===r||\"sget\"===s&&\"sset\"===r||\"sset\"===s&&\"sget\"===r?(e[i]=\"true\",!1):!!s||(e[i]=r,!1)}function checkKeyName(e,t){var i=e.computed,s=e.key;return!i&&(\"Identifier\"===s.type&&s.name===t||\"Literal\"===s.type&&s.value===t)}L.parseFunction=function(e,t,i,s,r){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!s)&&(this.type===f.star&&t&M&&this.unexpected(),e.generator=this.eat(f.star)),this.options.ecmaVersion>=8&&(e.async=!!s),t&U&&(e.id=4&t&&this.type!==f.name?null:this.parseIdent(),!e.id||t&M||this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?1:2:3));var n=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(functionFlags(e.async,e.generator)),t&U||(e.id=this.type===f.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,i,!1,r),this.yieldPos=n,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(e,t&U?\"FunctionDeclaration\":\"FunctionExpression\")},L.parseFunctionParams=function(e){this.expect(f.parenL),e.params=this.parseBindingList(f.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},L.parseClass=function(e,t){this.next();var i=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var s=this.enterClassBody(),r=this.startNode(),n=!1;for(r.body=[],this.expect(f.braceL);this.type!==f.braceR;){var a=this.parseClassElement(null!==e.superClass);a&&(r.body.push(a),\"MethodDefinition\"===a.type&&\"constructor\"===a.kind?(n&&this.raiseRecoverable(a.start,\"Duplicate constructor in the same class\"),n=!0):a.key&&\"PrivateIdentifier\"===a.key.type&&isPrivateNameConflicted(s,a)&&this.raiseRecoverable(a.key.start,\"Identifier '#\"+a.key.name+\"' has already been declared\"))}return this.strict=i,this.next(),e.body=this.finishNode(r,\"ClassBody\"),this.exitClassBody(),this.finishNode(e,t?\"ClassDeclaration\":\"ClassExpression\")},L.parseClassElement=function(e){if(this.eat(f.semi))return null;var t=this.options.ecmaVersion,i=this.startNode(),s=\"\",r=!1,n=!1,a=\"method\",o=!1;if(this.eatContextual(\"static\")){if(t>=13&&this.eat(f.braceL))return this.parseClassStaticBlock(i),i;this.isClassElementNameStart()||this.type===f.star?o=!0:s=\"static\"}if(i.static=o,!s&&t>=8&&this.eatContextual(\"async\")&&(!this.isClassElementNameStart()&&this.type!==f.star||this.canInsertSemicolon()?s=\"async\":n=!0),!s&&(t>=9||!n)&&this.eat(f.star)&&(r=!0),!s&&!n&&!r){var h=this.value;(this.eatContextual(\"get\")||this.eatContextual(\"set\"))&&(this.isClassElementNameStart()?a=h:s=h)}if(s?(i.computed=!1,i.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),i.key.name=s,this.finishNode(i.key,\"Identifier\")):this.parseClassElementName(i),t<13||this.type===f.parenL||\"method\"!==a||r||n){var c=!i.static&&checkKeyName(i,\"constructor\"),p=c&&e;c&&\"method\"!==a&&this.raise(i.key.start,\"Constructor can't have get/set modifier\"),i.kind=c?\"constructor\":a,this.parseClassMethod(i,r,n,p)}else this.parseClassField(i);return i},L.isClassElementNameStart=function(){return this.type===f.name||this.type===f.privateId||this.type===f.num||this.type===f.string||this.type===f.bracketL||this.type.keyword},L.parseClassElementName=function(e){this.type===f.privateId?(\"constructor\"===this.value&&this.raise(this.start,\"Classes can't have an element named '#constructor'\"),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)},L.parseClassMethod=function(e,t,i,s){var r=e.key;\"constructor\"===e.kind?(t&&this.raise(r.start,\"Constructor can't be a generator\"),i&&this.raise(r.start,\"Constructor can't be an async method\")):e.static&&checkKeyName(e,\"prototype\")&&this.raise(r.start,\"Classes may not have a static property named prototype\");var n=e.value=this.parseMethod(t,i,s);return\"get\"===e.kind&&0!==n.params.length&&this.raiseRecoverable(n.start,\"getter should have no params\"),\"set\"===e.kind&&1!==n.params.length&&this.raiseRecoverable(n.start,\"setter should have exactly one param\"),\"set\"===e.kind&&\"RestElement\"===n.params[0].type&&this.raiseRecoverable(n.params[0].start,\"Setter cannot use rest params\"),this.finishNode(e,\"MethodDefinition\")},L.parseClassField=function(e){return checkKeyName(e,\"constructor\")?this.raise(e.key.start,\"Classes can't have a field named 'constructor'\"):e.static&&checkKeyName(e,\"prototype\")&&this.raise(e.key.start,\"Classes can't have a static field named 'prototype'\"),this.eat(f.eq)?(this.enterScope(576),e.value=this.parseMaybeAssign(),this.exitScope()):e.value=null,this.semicolon(),this.finishNode(e,\"PropertyDefinition\")},L.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(320);this.type!==f.braceR;){var i=this.parseStatement(null);e.body.push(i)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,\"StaticBlock\")},L.parseClassId=function(e,t){this.type===f.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,2,!1)):(!0===t&&this.unexpected(),e.id=null)},L.parseClassSuper=function(e){e.superClass=this.eat(f._extends)?this.parseExprSubscripts(null,!1):null},L.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared},L.exitClassBody=function(){var e=this.privateNameStack.pop(),t=e.declared,i=e.used;if(this.options.checkPrivateFields)for(var s=this.privateNameStack.length,r=0===s?null:this.privateNameStack[s-1],n=0;n<i.length;++n){var a=i[n];b(t,a.name)||(r?r.used.push(a):this.raiseRecoverable(a.start,\"Private field '#\"+a.name+\"' must be declared in an enclosing class\"))}},L.parseExportAllDeclaration=function(e,t){return this.options.ecmaVersion>=11&&(this.eatContextual(\"as\")?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported,this.lastTokStart)):e.exported=null),this.expectContextual(\"from\"),this.type!==f.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,\"ExportAllDeclaration\")},L.parseExport=function(e,t){if(this.next(),this.eat(f.star))return this.parseExportAllDeclaration(e,t);if(this.eat(f._default))return this.checkExport(t,\"default\",this.lastTokStart),e.declaration=this.parseExportDefaultDeclaration(),this.finishNode(e,\"ExportDefaultDeclaration\");if(this.shouldParseExportStatement())e.declaration=this.parseExportDeclaration(e),\"VariableDeclaration\"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id,e.declaration.id.start),e.specifiers=[],e.source=null,this.options.ecmaVersion>=16&&(e.attributes=[]);else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual(\"from\"))this.type!==f.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause());else{for(var i=0,s=e.specifiers;i<s.length;i+=1){var r=s[i];this.checkUnreserved(r.local),this.checkLocalExport(r.local),\"Literal\"===r.local.type&&this.raise(r.local.start,\"A string literal cannot be used as an exported binding without `from`.\")}e.source=null,this.options.ecmaVersion>=16&&(e.attributes=[])}this.semicolon()}return this.finishNode(e,\"ExportNamedDeclaration\")},L.parseExportDeclaration=function(e){return this.parseStatement(null)},L.parseExportDefaultDeclaration=function(){var e;if(this.type===f._function||(e=this.isAsyncFunction())){var t=this.startNode();return this.next(),e&&this.next(),this.parseFunction(t,4|U,!1,e)}if(this.type===f._class){var i=this.startNode();return this.parseClass(i,\"nullableID\")}var s=this.parseMaybeAssign();return this.semicolon(),s},L.checkExport=function(e,t,i){e&&(\"string\"!=typeof t&&(t=\"Identifier\"===t.type?t.name:t.value),b(e,t)&&this.raiseRecoverable(i,\"Duplicate export '\"+t+\"'\"),e[t]=!0)},L.checkPatternExport=function(e,t){var i=t.type;if(\"Identifier\"===i)this.checkExport(e,t,t.start);else if(\"ObjectPattern\"===i)for(var s=0,r=t.properties;s<r.length;s+=1){var n=r[s];this.checkPatternExport(e,n)}else if(\"ArrayPattern\"===i)for(var a=0,o=t.elements;a<o.length;a+=1){var h=o[a];h&&this.checkPatternExport(e,h)}else\"Property\"===i?this.checkPatternExport(e,t.value):\"AssignmentPattern\"===i?this.checkPatternExport(e,t.left):\"RestElement\"===i&&this.checkPatternExport(e,t.argument)},L.checkVariableExport=function(e,t){if(e)for(var i=0,s=t;i<s.length;i+=1){var r=s[i];this.checkPatternExport(e,r.id)}},L.shouldParseExportStatement=function(){return\"var\"===this.type.keyword||\"const\"===this.type.keyword||\"class\"===this.type.keyword||\"function\"===this.type.keyword||this.isLet()||this.isAsyncFunction()},L.parseExportSpecifier=function(e){var t=this.startNode();return t.local=this.parseModuleExportName(),t.exported=this.eatContextual(\"as\")?this.parseModuleExportName():t.local,this.checkExport(e,t.exported,t.exported.start),this.finishNode(t,\"ExportSpecifier\")},L.parseExportSpecifiers=function(e){var t=[],i=!0;for(this.expect(f.braceL);!this.eat(f.braceR);){if(i)i=!1;else if(this.expect(f.comma),this.afterTrailingComma(f.braceR))break;t.push(this.parseExportSpecifier(e))}return t},L.parseImport=function(e){return this.next(),this.type===f.string?(e.specifiers=V,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual(\"from\"),e.source=this.type===f.string?this.parseExprAtom():this.unexpected()),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,\"ImportDeclaration\")},L.parseImportSpecifier=function(){var e=this.startNode();return e.imported=this.parseModuleExportName(),this.eatContextual(\"as\")?e.local=this.parseIdent():(this.checkUnreserved(e.imported),e.local=e.imported),this.checkLValSimple(e.local,2),this.finishNode(e,\"ImportSpecifier\")},L.parseImportDefaultSpecifier=function(){var e=this.startNode();return e.local=this.parseIdent(),this.checkLValSimple(e.local,2),this.finishNode(e,\"ImportDefaultSpecifier\")},L.parseImportNamespaceSpecifier=function(){var e=this.startNode();return this.next(),this.expectContextual(\"as\"),e.local=this.parseIdent(),this.checkLValSimple(e.local,2),this.finishNode(e,\"ImportNamespaceSpecifier\")},L.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===f.name&&(e.push(this.parseImportDefaultSpecifier()),!this.eat(f.comma)))return e;if(this.type===f.star)return e.push(this.parseImportNamespaceSpecifier()),e;for(this.expect(f.braceL);!this.eat(f.braceR);){if(t)t=!1;else if(this.expect(f.comma),this.afterTrailingComma(f.braceR))break;e.push(this.parseImportSpecifier())}return e},L.parseWithClause=function(){var e=[];if(!this.eat(f._with))return e;this.expect(f.braceL);for(var t={},i=!0;!this.eat(f.braceR);){if(i)i=!1;else if(this.expect(f.comma),this.afterTrailingComma(f.braceR))break;var s=this.parseImportAttribute(),r=\"Identifier\"===s.key.type?s.key.name:s.key.value;b(t,r)&&this.raiseRecoverable(s.key.start,\"Duplicate attribute key '\"+r+\"'\"),t[r]=!0,e.push(s)}return e},L.parseImportAttribute=function(){var e=this.startNode();return e.key=this.type===f.string?this.parseExprAtom():this.parseIdent(\"never\"!==this.options.allowReserved),this.expect(f.colon),this.type!==f.string&&this.unexpected(),e.value=this.parseExprAtom(),this.finishNode(e,\"ImportAttribute\")},L.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===f.string){var e=this.parseLiteral(this.value);return w.test(e.value)&&this.raise(e.start,\"An export name cannot include a lone surrogate.\"),e}return this.parseIdent(!0)},L.adaptDirectivePrologue=function(e){for(var t=0;t<e.length&&this.isDirectiveCandidate(e[t]);++t)e[t].directive=e[t].expression.raw.slice(1,-1)},L.isDirectiveCandidate=function(e){return this.options.ecmaVersion>=5&&\"ExpressionStatement\"===e.type&&\"Literal\"===e.expression.type&&\"string\"==typeof e.expression.value&&('\"'===this.input[e.start]||\"'\"===this.input[e.start])};var j=acorn_Parser.prototype;j.toAssignable=function(e,t,i){if(this.options.ecmaVersion>=6&&e)switch(e.type){case\"Identifier\":this.inAsync&&\"await\"===e.name&&this.raise(e.start,\"Cannot use 'await' as identifier inside an async function\");break;case\"ObjectPattern\":case\"ArrayPattern\":case\"AssignmentPattern\":case\"RestElement\":break;case\"ObjectExpression\":e.type=\"ObjectPattern\",i&&this.checkPatternErrors(i,!0);for(var s=0,r=e.properties;s<r.length;s+=1){var n=r[s];this.toAssignable(n,t),\"RestElement\"!==n.type||\"ArrayPattern\"!==n.argument.type&&\"ObjectPattern\"!==n.argument.type||this.raise(n.argument.start,\"Unexpected token\")}break;case\"Property\":\"init\"!==e.kind&&this.raise(e.key.start,\"Object pattern can't contain getter or setter\"),this.toAssignable(e.value,t);break;case\"ArrayExpression\":e.type=\"ArrayPattern\",i&&this.checkPatternErrors(i,!0),this.toAssignableList(e.elements,t);break;case\"SpreadElement\":e.type=\"RestElement\",this.toAssignable(e.argument,t),\"AssignmentPattern\"===e.argument.type&&this.raise(e.argument.start,\"Rest elements cannot have a default value\");break;case\"AssignmentExpression\":\"=\"!==e.operator&&this.raise(e.left.end,\"Only '=' operator can be used for specifying default value.\"),e.type=\"AssignmentPattern\",delete e.operator,this.toAssignable(e.left,t);break;case\"ParenthesizedExpression\":this.toAssignable(e.expression,t,i);break;case\"ChainExpression\":this.raiseRecoverable(e.start,\"Optional chaining cannot appear in left-hand side\");break;case\"MemberExpression\":if(!t)break;default:this.raise(e.start,\"Assigning to rvalue\")}else i&&this.checkPatternErrors(i,!0);return e},j.toAssignableList=function(e,t){for(var i=e.length,s=0;s<i;s++){var r=e[s];r&&this.toAssignable(r,t)}if(i){var n=e[i-1];6===this.options.ecmaVersion&&t&&n&&\"RestElement\"===n.type&&\"Identifier\"!==n.argument.type&&this.unexpected(n.argument.start)}return e},j.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,\"SpreadElement\")},j.parseRestBinding=function(){var e=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==f.name&&this.unexpected(),e.argument=this.parseBindingAtom(),this.finishNode(e,\"RestElement\")},j.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case f.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(f.bracketR,!0,!0),this.finishNode(e,\"ArrayPattern\");case f.braceL:return this.parseObj(!0)}return this.parseIdent()},j.parseBindingList=function(e,t,i,s){for(var r=[],n=!0;!this.eat(e);)if(n?n=!1:this.expect(f.comma),t&&this.type===f.comma)r.push(null);else{if(i&&this.afterTrailingComma(e))break;if(this.type===f.ellipsis){var a=this.parseRestBinding();this.parseBindingListItem(a),r.push(a),this.type===f.comma&&this.raiseRecoverable(this.start,\"Comma is not permitted after the rest element\"),this.expect(e);break}r.push(this.parseAssignableListItem(s))}return r},j.parseAssignableListItem=function(e){var t=this.parseMaybeDefault(this.start,this.startLoc);return this.parseBindingListItem(t),t},j.parseBindingListItem=function(e){return e},j.parseMaybeDefault=function(e,t,i){if(i=i||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(f.eq))return i;var s=this.startNodeAt(e,t);return s.left=i,s.right=this.parseMaybeAssign(),this.finishNode(s,\"AssignmentPattern\")},j.checkLValSimple=function(e,t,i){void 0===t&&(t=0);var s=0!==t;switch(e.type){case\"Identifier\":this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(s?\"Binding \":\"Assigning to \")+e.name+\" in strict mode\"),s&&(2===t&&\"let\"===e.name&&this.raiseRecoverable(e.start,\"let is disallowed as a lexically bound name\"),i&&(b(i,e.name)&&this.raiseRecoverable(e.start,\"Argument name clash\"),i[e.name]=!0),5!==t&&this.declareName(e.name,t,e.start));break;case\"ChainExpression\":this.raiseRecoverable(e.start,\"Optional chaining cannot appear in left-hand side\");break;case\"MemberExpression\":s&&this.raiseRecoverable(e.start,\"Binding member expression\");break;case\"ParenthesizedExpression\":return s&&this.raiseRecoverable(e.start,\"Binding parenthesized expression\"),this.checkLValSimple(e.expression,t,i);default:this.raise(e.start,(s?\"Binding\":\"Assigning to\")+\" rvalue\")}},j.checkLValPattern=function(e,t,i){switch(void 0===t&&(t=0),e.type){case\"ObjectPattern\":for(var s=0,r=e.properties;s<r.length;s+=1){var n=r[s];this.checkLValInnerPattern(n,t,i)}break;case\"ArrayPattern\":for(var a=0,o=e.elements;a<o.length;a+=1){var h=o[a];h&&this.checkLValInnerPattern(h,t,i)}break;default:this.checkLValSimple(e,t,i)}},j.checkLValInnerPattern=function(e,t,i){switch(void 0===t&&(t=0),e.type){case\"Property\":this.checkLValInnerPattern(e.value,t,i);break;case\"AssignmentPattern\":this.checkLValPattern(e.left,t,i);break;case\"RestElement\":this.checkLValPattern(e.argument,t,i);break;default:this.checkLValPattern(e,t,i)}};var acorn_TokContext=function(e,t,i,s,r){this.token=e,this.isExpr=!!t,this.preserveSpace=!!i,this.override=s,this.generator=!!r},F={b_stat:new acorn_TokContext(\"{\",!1),b_expr:new acorn_TokContext(\"{\",!0),b_tmpl:new acorn_TokContext(\"${\",!1),p_stat:new acorn_TokContext(\"(\",!1),p_expr:new acorn_TokContext(\"(\",!0),q_tmpl:new acorn_TokContext(\"`\",!0,!0,function(e){return e.tryReadTemplateToken()}),f_stat:new acorn_TokContext(\"function\",!1),f_expr:new acorn_TokContext(\"function\",!0),f_expr_gen:new acorn_TokContext(\"function\",!0,!1,null,!0),f_gen:new acorn_TokContext(\"function\",!1,!1,null,!0)},B=acorn_Parser.prototype;B.initialContext=function(){return[F.b_stat]},B.curContext=function(){return this.context[this.context.length-1]},B.braceIsBlock=function(e){var t=this.curContext();return t===F.f_expr||t===F.f_stat||(e!==f.colon||t!==F.b_stat&&t!==F.b_expr?e===f._return||e===f.name&&this.exprAllowed?m.test(this.input.slice(this.lastTokEnd,this.start)):e===f._else||e===f.semi||e===f.eof||e===f.parenR||e===f.arrow||(e===f.braceL?t===F.b_stat:e!==f._var&&e!==f._const&&e!==f.name&&!this.exprAllowed):!t.isExpr)},B.inGeneratorContext=function(){for(var e=this.context.length-1;e>=1;e--){var t=this.context[e];if(\"function\"===t.token)return t.generator}return!1},B.updateContext=function(e){var t,i=this.type;i.keyword&&e===f.dot?this.exprAllowed=!1:(t=i.updateContext)?t.call(this,e):this.exprAllowed=i.beforeExpr},B.overrideContext=function(e){this.curContext()!==e&&(this.context[this.context.length-1]=e)},f.parenR.updateContext=f.braceR.updateContext=function(){if(1!==this.context.length){var e=this.context.pop();e===F.b_stat&&\"function\"===this.curContext().token&&(e=this.context.pop()),this.exprAllowed=!e.isExpr}else this.exprAllowed=!0},f.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?F.b_stat:F.b_expr),this.exprAllowed=!0},f.dollarBraceL.updateContext=function(){this.context.push(F.b_tmpl),this.exprAllowed=!0},f.parenL.updateContext=function(e){var t=e===f._if||e===f._for||e===f._with||e===f._while;this.context.push(t?F.p_stat:F.p_expr),this.exprAllowed=!0},f.incDec.updateContext=function(){},f._function.updateContext=f._class.updateContext=function(e){!e.beforeExpr||e===f._else||e===f.semi&&this.curContext()!==F.p_stat||e===f._return&&m.test(this.input.slice(this.lastTokEnd,this.start))||(e===f.colon||e===f.braceL)&&this.curContext()===F.b_stat?this.context.push(F.f_stat):this.context.push(F.f_expr),this.exprAllowed=!1},f.colon.updateContext=function(){\"function\"===this.curContext().token&&this.context.pop(),this.exprAllowed=!0},f.backQuote.updateContext=function(){this.curContext()===F.q_tmpl?this.context.pop():this.context.push(F.q_tmpl),this.exprAllowed=!1},f.star.updateContext=function(e){if(e===f._function){var t=this.context.length-1;this.context[t]===F.f_expr?this.context[t]=F.f_expr_gen:this.context[t]=F.f_gen}this.exprAllowed=!0},f.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&e!==f.dot&&(\"of\"===this.value&&!this.exprAllowed||\"yield\"===this.value&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var $=acorn_Parser.prototype;function isLocalVariableAccess(e){return\"Identifier\"===e.type||\"ParenthesizedExpression\"===e.type&&isLocalVariableAccess(e.expression)}function isPrivateFieldAccess(e){return\"MemberExpression\"===e.type&&\"PrivateIdentifier\"===e.property.type||\"ChainExpression\"===e.type&&isPrivateFieldAccess(e.expression)||\"ParenthesizedExpression\"===e.type&&isPrivateFieldAccess(e.expression)}$.checkPropClash=function(e,t,i){if(!(this.options.ecmaVersion>=9&&\"SpreadElement\"===e.type||this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var s,r=e.key;switch(r.type){case\"Identifier\":s=r.name;break;case\"Literal\":s=String(r.value);break;default:return}var n=e.kind;if(this.options.ecmaVersion>=6)\"__proto__\"===s&&\"init\"===n&&(t.proto&&(i?i.doubleProto<0&&(i.doubleProto=r.start):this.raiseRecoverable(r.start,\"Redefinition of __proto__ property\")),t.proto=!0);else{var a=t[s=\"$\"+s];if(a)(\"init\"===n?this.strict&&a.init||a.get||a.set:a.init||a[n])&&this.raiseRecoverable(r.start,\"Redefinition of property\");else a=t[s]={init:!1,get:!1,set:!1};a[n]=!0}}},$.parseExpression=function(e,t){var i=this.start,s=this.startLoc,r=this.parseMaybeAssign(e,t);if(this.type===f.comma){var n=this.startNodeAt(i,s);for(n.expressions=[r];this.eat(f.comma);)n.expressions.push(this.parseMaybeAssign(e,t));return this.finishNode(n,\"SequenceExpression\")}return r},$.parseMaybeAssign=function(e,t,i){if(this.isContextual(\"yield\")){if(this.inGenerator)return this.parseYield(e);this.exprAllowed=!1}var s=!1,r=-1,n=-1,a=-1;t?(r=t.parenthesizedAssign,n=t.trailingComma,a=t.doubleProto,t.parenthesizedAssign=t.trailingComma=-1):(t=new acorn_DestructuringErrors,s=!0);var o=this.start,h=this.startLoc;this.type!==f.parenL&&this.type!==f.name||(this.potentialArrowAt=this.start,this.potentialArrowInForAwait=\"await\"===e);var c=this.parseMaybeConditional(e,t);if(i&&(c=i.call(this,c,o,h)),this.type.isAssign){var p=this.startNodeAt(o,h);return p.operator=this.value,this.type===f.eq&&(c=this.toAssignable(c,!1,t)),s||(t.parenthesizedAssign=t.trailingComma=t.doubleProto=-1),t.shorthandAssign>=c.start&&(t.shorthandAssign=-1),this.type===f.eq?this.checkLValPattern(c):this.checkLValSimple(c),p.left=c,this.next(),p.right=this.parseMaybeAssign(e),a>-1&&(t.doubleProto=a),this.finishNode(p,\"AssignmentExpression\")}return s&&this.checkExpressionErrors(t,!0),r>-1&&(t.parenthesizedAssign=r),n>-1&&(t.trailingComma=n),c},$.parseMaybeConditional=function(e,t){var i=this.start,s=this.startLoc,r=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return r;if(this.eat(f.question)){var n=this.startNodeAt(i,s);return n.test=r,n.consequent=this.parseMaybeAssign(),this.expect(f.colon),n.alternate=this.parseMaybeAssign(e),this.finishNode(n,\"ConditionalExpression\")}return r},$.parseExprOps=function(e,t){var i=this.start,s=this.startLoc,r=this.parseMaybeUnary(t,!1,!1,e);return this.checkExpressionErrors(t)||r.start===i&&\"ArrowFunctionExpression\"===r.type?r:this.parseExprOp(r,i,s,-1,e)},$.parseExprOp=function(e,t,i,s,r){var n=this.type.binop;if(null!=n&&(!r||this.type!==f._in)&&n>s){var a=this.type===f.logicalOR||this.type===f.logicalAND,o=this.type===f.coalesce;o&&(n=f.logicalAND.binop);var h=this.value;this.next();var c=this.start,p=this.startLoc,l=this.parseExprOp(this.parseMaybeUnary(null,!1,!1,r),c,p,n,r),u=this.buildBinary(t,i,e,l,h,a||o);return(a&&this.type===f.coalesce||o&&(this.type===f.logicalOR||this.type===f.logicalAND))&&this.raiseRecoverable(this.start,\"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\"),this.parseExprOp(u,t,i,s,r)}return e},$.buildBinary=function(e,t,i,s,r,n){\"PrivateIdentifier\"===s.type&&this.raise(s.start,\"Private identifier can only be left side of binary expression\");var a=this.startNodeAt(e,t);return a.left=i,a.operator=r,a.right=s,this.finishNode(a,n?\"LogicalExpression\":\"BinaryExpression\")},$.parseMaybeUnary=function(e,t,i,s){var r,n=this.start,a=this.startLoc;if(this.isContextual(\"await\")&&this.canAwait)r=this.parseAwait(s),t=!0;else if(this.type.prefix){var o=this.startNode(),h=this.type===f.incDec;o.operator=this.value,o.prefix=!0,this.next(),o.argument=this.parseMaybeUnary(null,!0,h,s),this.checkExpressionErrors(e,!0),h?this.checkLValSimple(o.argument):this.strict&&\"delete\"===o.operator&&isLocalVariableAccess(o.argument)?this.raiseRecoverable(o.start,\"Deleting local variable in strict mode\"):\"delete\"===o.operator&&isPrivateFieldAccess(o.argument)?this.raiseRecoverable(o.start,\"Private fields can not be deleted\"):t=!0,r=this.finishNode(o,h?\"UpdateExpression\":\"UnaryExpression\")}else if(t||this.type!==f.privateId){if(r=this.parseExprSubscripts(e,s),this.checkExpressionErrors(e))return r;for(;this.type.postfix&&!this.canInsertSemicolon();){var c=this.startNodeAt(n,a);c.operator=this.value,c.prefix=!1,c.argument=r,this.checkLValSimple(r),this.next(),r=this.finishNode(c,\"UpdateExpression\")}}else(s||0===this.privateNameStack.length)&&this.options.checkPrivateFields&&this.unexpected(),r=this.parsePrivateIdent(),this.type!==f._in&&this.unexpected();return i||!this.eat(f.starstar)?r:t?void this.unexpected(this.lastTokStart):this.buildBinary(n,a,r,this.parseMaybeUnary(null,!1,!1,s),\"**\",!1)},$.parseExprSubscripts=function(e,t){var i=this.start,s=this.startLoc,r=this.parseExprAtom(e,t);if(\"ArrowFunctionExpression\"===r.type&&\")\"!==this.input.slice(this.lastTokStart,this.lastTokEnd))return r;var n=this.parseSubscripts(r,i,s,!1,t);return e&&\"MemberExpression\"===n.type&&(e.parenthesizedAssign>=n.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=n.start&&(e.parenthesizedBind=-1),e.trailingComma>=n.start&&(e.trailingComma=-1)),n},$.parseSubscripts=function(e,t,i,s,r){for(var n=this.options.ecmaVersion>=8&&\"Identifier\"===e.type&&\"async\"===e.name&&this.lastTokEnd===e.end&&!this.canInsertSemicolon()&&e.end-e.start===5&&this.potentialArrowAt===e.start,a=!1;;){var o=this.parseSubscript(e,t,i,s,n,a,r);if(o.optional&&(a=!0),o===e||\"ArrowFunctionExpression\"===o.type){if(a){var h=this.startNodeAt(t,i);h.expression=o,o=this.finishNode(h,\"ChainExpression\")}return o}e=o}},$.shouldParseAsyncArrow=function(){return!this.canInsertSemicolon()&&this.eat(f.arrow)},$.parseSubscriptAsyncArrow=function(e,t,i,s){return this.parseArrowExpression(this.startNodeAt(e,t),i,!0,s)},$.parseSubscript=function(e,t,i,s,r,n,a){var o=this.options.ecmaVersion>=11,h=o&&this.eat(f.questionDot);s&&h&&this.raise(this.lastTokStart,\"Optional chaining cannot appear in the callee of new expressions\");var c=this.eat(f.bracketL);if(c||h&&this.type!==f.parenL&&this.type!==f.backQuote||this.eat(f.dot)){var p=this.startNodeAt(t,i);p.object=e,c?(p.property=this.parseExpression(),this.expect(f.bracketR)):this.type===f.privateId&&\"Super\"!==e.type?p.property=this.parsePrivateIdent():p.property=this.parseIdent(\"never\"!==this.options.allowReserved),p.computed=!!c,o&&(p.optional=h),e=this.finishNode(p,\"MemberExpression\")}else if(!s&&this.eat(f.parenL)){var l=new acorn_DestructuringErrors,u=this.yieldPos,d=this.awaitPos,m=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var g=this.parseExprList(f.parenR,this.options.ecmaVersion>=8,!1,l);if(r&&!h&&this.shouldParseAsyncArrow())return this.checkPatternErrors(l,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,\"Cannot use 'await' as identifier inside an async function\"),this.yieldPos=u,this.awaitPos=d,this.awaitIdentPos=m,this.parseSubscriptAsyncArrow(t,i,g,a);this.checkExpressionErrors(l,!0),this.yieldPos=u||this.yieldPos,this.awaitPos=d||this.awaitPos,this.awaitIdentPos=m||this.awaitIdentPos;var x=this.startNodeAt(t,i);x.callee=e,x.arguments=g,o&&(x.optional=h),e=this.finishNode(x,\"CallExpression\")}else if(this.type===f.backQuote){(h||n)&&this.raise(this.start,\"Optional chaining cannot appear in the tag of tagged template expressions\");var v=this.startNodeAt(t,i);v.tag=e,v.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(v,\"TaggedTemplateExpression\")}return e},$.parseExprAtom=function(e,t,i){this.type===f.slash&&this.readRegexp();var s,r=this.potentialArrowAt===this.start;switch(this.type){case f._super:return this.allowSuper||this.raise(this.start,\"'super' keyword outside a method\"),s=this.startNode(),this.next(),this.type!==f.parenL||this.allowDirectSuper||this.raise(s.start,\"super() call outside constructor of a subclass\"),this.type!==f.dot&&this.type!==f.bracketL&&this.type!==f.parenL&&this.unexpected(),this.finishNode(s,\"Super\");case f._this:return s=this.startNode(),this.next(),this.finishNode(s,\"ThisExpression\");case f.name:var n=this.start,a=this.startLoc,o=this.containsEsc,h=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!o&&\"async\"===h.name&&!this.canInsertSemicolon()&&this.eat(f._function))return this.overrideContext(F.f_expr),this.parseFunction(this.startNodeAt(n,a),0,!1,!0,t);if(r&&!this.canInsertSemicolon()){if(this.eat(f.arrow))return this.parseArrowExpression(this.startNodeAt(n,a),[h],!1,t);if(this.options.ecmaVersion>=8&&\"async\"===h.name&&this.type===f.name&&!o&&(!this.potentialArrowInForAwait||\"of\"!==this.value||this.containsEsc))return h=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(f.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(n,a),[h],!0,t)}return h;case f.regexp:var c=this.value;return(s=this.parseLiteral(c.value)).regex={pattern:c.pattern,flags:c.flags},s;case f.num:case f.string:return this.parseLiteral(this.value);case f._null:case f._true:case f._false:return(s=this.startNode()).value=this.type===f._null?null:this.type===f._true,s.raw=this.type.keyword,this.next(),this.finishNode(s,\"Literal\");case f.parenL:var p=this.start,l=this.parseParenAndDistinguishExpression(r,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(l)&&(e.parenthesizedAssign=p),e.parenthesizedBind<0&&(e.parenthesizedBind=p)),l;case f.bracketL:return s=this.startNode(),this.next(),s.elements=this.parseExprList(f.bracketR,!0,!0,e),this.finishNode(s,\"ArrayExpression\");case f.braceL:return this.overrideContext(F.b_expr),this.parseObj(!1,e);case f._function:return s=this.startNode(),this.next(),this.parseFunction(s,0);case f._class:return this.parseClass(this.startNode(),!1);case f._new:return this.parseNew();case f.backQuote:return this.parseTemplate();case f._import:return this.options.ecmaVersion>=11?this.parseExprImport(i):this.unexpected();default:return this.parseExprAtomDefault()}},$.parseExprAtomDefault=function(){this.unexpected()},$.parseExprImport=function(e){var t=this.startNode();if(this.containsEsc&&this.raiseRecoverable(this.start,\"Escape sequence in keyword import\"),this.next(),this.type===f.parenL&&!e)return this.parseDynamicImport(t);if(this.type===f.dot){var i=this.startNodeAt(t.start,t.loc&&t.loc.start);return i.name=\"import\",t.meta=this.finishNode(i,\"Identifier\"),this.parseImportMeta(t)}this.unexpected()},$.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),this.options.ecmaVersion>=16)this.eat(f.parenR)?e.options=null:(this.expect(f.comma),this.afterTrailingComma(f.parenR)?e.options=null:(e.options=this.parseMaybeAssign(),this.eat(f.parenR)||(this.expect(f.comma),this.afterTrailingComma(f.parenR)||this.unexpected())));else if(!this.eat(f.parenR)){var t=this.start;this.eat(f.comma)&&this.eat(f.parenR)?this.raiseRecoverable(t,\"Trailing comma is not allowed in import()\"):this.unexpected(t)}return this.finishNode(e,\"ImportExpression\")},$.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),\"meta\"!==e.property.name&&this.raiseRecoverable(e.property.start,\"The only valid meta property for import is 'import.meta'\"),t&&this.raiseRecoverable(e.start,\"'import.meta' must not contain escaped characters\"),\"module\"===this.options.sourceType||this.options.allowImportExportEverywhere||this.raiseRecoverable(e.start,\"Cannot use 'import.meta' outside a module\"),this.finishNode(e,\"MetaProperty\")},$.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),110===t.raw.charCodeAt(t.raw.length-1)&&(t.bigint=null!=t.value?t.value.toString():t.raw.slice(0,-1).replace(/_/g,\"\")),this.next(),this.finishNode(t,\"Literal\")},$.parseParenExpression=function(){this.expect(f.parenL);var e=this.parseExpression();return this.expect(f.parenR),e},$.shouldParseArrow=function(e){return!this.canInsertSemicolon()},$.parseParenAndDistinguishExpression=function(e,t){var i,s=this.start,r=this.startLoc,n=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var a,o=this.start,h=this.startLoc,c=[],p=!0,l=!1,u=new acorn_DestructuringErrors,d=this.yieldPos,m=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==f.parenR;){if(p?p=!1:this.expect(f.comma),n&&this.afterTrailingComma(f.parenR,!0)){l=!0;break}if(this.type===f.ellipsis){a=this.start,c.push(this.parseParenItem(this.parseRestBinding())),this.type===f.comma&&this.raiseRecoverable(this.start,\"Comma is not permitted after the rest element\");break}c.push(this.parseMaybeAssign(!1,u,this.parseParenItem))}var g=this.lastTokEnd,x=this.lastTokEndLoc;if(this.expect(f.parenR),e&&this.shouldParseArrow(c)&&this.eat(f.arrow))return this.checkPatternErrors(u,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=d,this.awaitPos=m,this.parseParenArrowList(s,r,c,t);c.length&&!l||this.unexpected(this.lastTokStart),a&&this.unexpected(a),this.checkExpressionErrors(u,!0),this.yieldPos=d||this.yieldPos,this.awaitPos=m||this.awaitPos,c.length>1?((i=this.startNodeAt(o,h)).expressions=c,this.finishNodeAt(i,\"SequenceExpression\",g,x)):i=c[0]}else i=this.parseParenExpression();if(this.options.preserveParens){var v=this.startNodeAt(s,r);return v.expression=i,this.finishNode(v,\"ParenthesizedExpression\")}return i},$.parseParenItem=function(e){return e},$.parseParenArrowList=function(e,t,i,s){return this.parseArrowExpression(this.startNodeAt(e,t),i,!1,s)};var q=[];$.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,\"Escape sequence in keyword new\");var e=this.startNode();if(this.next(),this.options.ecmaVersion>=6&&this.type===f.dot){var t=this.startNodeAt(e.start,e.loc&&e.loc.start);t.name=\"new\",e.meta=this.finishNode(t,\"Identifier\"),this.next();var i=this.containsEsc;return e.property=this.parseIdent(!0),\"target\"!==e.property.name&&this.raiseRecoverable(e.property.start,\"The only valid meta property for new is 'new.target'\"),i&&this.raiseRecoverable(e.start,\"'new.target' must not contain escaped characters\"),this.allowNewDotTarget||this.raiseRecoverable(e.start,\"'new.target' can only be used in functions and class static block\"),this.finishNode(e,\"MetaProperty\")}var s=this.start,r=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),s,r,!0,!1),this.eat(f.parenL)?e.arguments=this.parseExprList(f.parenR,this.options.ecmaVersion>=8,!1):e.arguments=q,this.finishNode(e,\"NewExpression\")},$.parseTemplateElement=function(e){var t=e.isTagged,i=this.startNode();return this.type===f.invalidTemplate?(t||this.raiseRecoverable(this.start,\"Bad escape sequence in untagged template literal\"),i.value={raw:this.value.replace(/\\r\\n?/g,\"\\n\"),cooked:null}):i.value={raw:this.input.slice(this.start,this.end).replace(/\\r\\n?/g,\"\\n\"),cooked:this.value},this.next(),i.tail=this.type===f.backQuote,this.finishNode(i,\"TemplateElement\")},$.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var i=this.startNode();this.next(),i.expressions=[];var s=this.parseTemplateElement({isTagged:t});for(i.quasis=[s];!s.tail;)this.type===f.eof&&this.raise(this.pos,\"Unterminated template literal\"),this.expect(f.dollarBraceL),i.expressions.push(this.parseExpression()),this.expect(f.braceR),i.quasis.push(s=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(i,\"TemplateLiteral\")},$.isAsyncProp=function(e){return!e.computed&&\"Identifier\"===e.key.type&&\"async\"===e.key.name&&(this.type===f.name||this.type===f.num||this.type===f.string||this.type===f.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===f.star)&&!m.test(this.input.slice(this.lastTokEnd,this.start))},$.parseObj=function(e,t){var i=this.startNode(),s=!0,r={};for(i.properties=[],this.next();!this.eat(f.braceR);){if(s)s=!1;else if(this.expect(f.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(f.braceR))break;var n=this.parseProperty(e,t);e||this.checkPropClash(n,r,t),i.properties.push(n)}return this.finishNode(i,e?\"ObjectPattern\":\"ObjectExpression\")},$.parseProperty=function(e,t){var i,s,r,n,a=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(f.ellipsis))return e?(a.argument=this.parseIdent(!1),this.type===f.comma&&this.raiseRecoverable(this.start,\"Comma is not permitted after the rest element\"),this.finishNode(a,\"RestElement\")):(a.argument=this.parseMaybeAssign(!1,t),this.type===f.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(a,\"SpreadElement\"));this.options.ecmaVersion>=6&&(a.method=!1,a.shorthand=!1,(e||t)&&(r=this.start,n=this.startLoc),e||(i=this.eat(f.star)));var o=this.containsEsc;return this.parsePropertyName(a),!e&&!o&&this.options.ecmaVersion>=8&&!i&&this.isAsyncProp(a)?(s=!0,i=this.options.ecmaVersion>=9&&this.eat(f.star),this.parsePropertyName(a)):s=!1,this.parsePropertyValue(a,e,i,s,r,n,t,o),this.finishNode(a,\"Property\")},$.parseGetterSetter=function(e){var t=e.key.name;this.parsePropertyName(e),e.value=this.parseMethod(!1),e.kind=t;var i=\"get\"===e.kind?0:1;if(e.value.params.length!==i){var s=e.value.start;\"get\"===e.kind?this.raiseRecoverable(s,\"getter should have no params\"):this.raiseRecoverable(s,\"setter should have exactly one param\")}else\"set\"===e.kind&&\"RestElement\"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,\"Setter cannot use rest params\")},$.parsePropertyValue=function(e,t,i,s,r,n,a,o){(i||s)&&this.type===f.colon&&this.unexpected(),this.eat(f.colon)?(e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,a),e.kind=\"init\"):this.options.ecmaVersion>=6&&this.type===f.parenL?(t&&this.unexpected(),e.method=!0,e.value=this.parseMethod(i,s),e.kind=\"init\"):t||o||!(this.options.ecmaVersion>=5)||e.computed||\"Identifier\"!==e.key.type||\"get\"!==e.key.name&&\"set\"!==e.key.name||this.type===f.comma||this.type===f.braceR||this.type===f.eq?this.options.ecmaVersion>=6&&!e.computed&&\"Identifier\"===e.key.type?((i||s)&&this.unexpected(),this.checkUnreserved(e.key),\"await\"!==e.key.name||this.awaitIdentPos||(this.awaitIdentPos=r),t?e.value=this.parseMaybeDefault(r,n,this.copyNode(e.key)):this.type===f.eq&&a?(a.shorthandAssign<0&&(a.shorthandAssign=this.start),e.value=this.parseMaybeDefault(r,n,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.kind=\"init\",e.shorthand=!0):this.unexpected():((i||s)&&this.unexpected(),this.parseGetterSetter(e))},$.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(f.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(f.bracketR),e.key;e.computed=!1}return e.key=this.type===f.num||this.type===f.string?this.parseExprAtom():this.parseIdent(\"never\"!==this.options.allowReserved)},$.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},$.parseMethod=function(e,t,i){var s=this.startNode(),r=this.yieldPos,n=this.awaitPos,a=this.awaitIdentPos;return this.initFunction(s),this.options.ecmaVersion>=6&&(s.generator=e),this.options.ecmaVersion>=8&&(s.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|functionFlags(t,s.generator)|(i?128:0)),this.expect(f.parenL),s.params=this.parseBindingList(f.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(s,!1,!0,!1),this.yieldPos=r,this.awaitPos=n,this.awaitIdentPos=a,this.finishNode(s,\"FunctionExpression\")},$.parseArrowExpression=function(e,t,i,s){var r=this.yieldPos,n=this.awaitPos,a=this.awaitIdentPos;return this.enterScope(16|functionFlags(i,!1)),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!i),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,s),this.yieldPos=r,this.awaitPos=n,this.awaitIdentPos=a,this.finishNode(e,\"ArrowFunctionExpression\")},$.parseFunctionBody=function(e,t,i,s){var r=t&&this.type!==f.braceL,n=this.strict,a=!1;if(r)e.body=this.parseMaybeAssign(s),e.expression=!0,this.checkParams(e,!1);else{var o=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);n&&!o||(a=this.strictDirective(this.end))&&o&&this.raiseRecoverable(e.start,\"Illegal 'use strict' directive in function with non-simple parameter list\");var h=this.labels;this.labels=[],a&&(this.strict=!0),this.checkParams(e,!n&&!a&&!t&&!i&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,5),e.body=this.parseBlock(!1,void 0,a&&!n),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=h}this.exitScope()},$.isSimpleParamList=function(e){for(var t=0,i=e;t<i.length;t+=1){if(\"Identifier\"!==i[t].type)return!1}return!0},$.checkParams=function(e,t){for(var i=Object.create(null),s=0,r=e.params;s<r.length;s+=1){var n=r[s];this.checkLValInnerPattern(n,1,t?null:i)}},$.parseExprList=function(e,t,i,s){for(var r=[],n=!0;!this.eat(e);){if(n)n=!1;else if(this.expect(f.comma),t&&this.afterTrailingComma(e))break;var a=void 0;i&&this.type===f.comma?a=null:this.type===f.ellipsis?(a=this.parseSpread(s),s&&this.type===f.comma&&s.trailingComma<0&&(s.trailingComma=this.start)):a=this.parseMaybeAssign(!1,s),r.push(a)}return r},$.checkUnreserved=function(e){var t=e.start,i=e.end,s=e.name;(this.inGenerator&&\"yield\"===s&&this.raiseRecoverable(t,\"Cannot use 'yield' as identifier inside a generator\"),this.inAsync&&\"await\"===s&&this.raiseRecoverable(t,\"Cannot use 'await' as identifier inside an async function\"),this.currentThisScope().flags&P||\"arguments\"!==s||this.raiseRecoverable(t,\"Cannot use 'arguments' in class field initializer\"),!this.inClassStaticBlock||\"arguments\"!==s&&\"await\"!==s||this.raise(t,\"Cannot use \"+s+\" in class static initialization block\"),this.keywords.test(s)&&this.raise(t,\"Unexpected keyword '\"+s+\"'\"),this.options.ecmaVersion<6&&-1!==this.input.slice(t,i).indexOf(\"\\\\\"))||(this.strict?this.reservedWordsStrict:this.reservedWords).test(s)&&(this.inAsync||\"await\"!==s||this.raiseRecoverable(t,\"Cannot use keyword 'await' outside an async function\"),this.raiseRecoverable(t,\"The keyword '\"+s+\"' is reserved\"))},$.parseIdent=function(e){var t=this.parseIdentNode();return this.next(!!e),this.finishNode(t,\"Identifier\"),e||(this.checkUnreserved(t),\"await\"!==t.name||this.awaitIdentPos||(this.awaitIdentPos=t.start)),t},$.parseIdentNode=function(){var e=this.startNode();return this.type===f.name?e.name=this.value:this.type.keyword?(e.name=this.type.keyword,\"class\"!==e.name&&\"function\"!==e.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop(),this.type=f.name):this.unexpected(),e},$.parsePrivateIdent=function(){var e=this.startNode();return this.type===f.privateId?e.name=this.value:this.unexpected(),this.next(),this.finishNode(e,\"PrivateIdentifier\"),this.options.checkPrivateFields&&(0===this.privateNameStack.length?this.raise(e.start,\"Private field '#\"+e.name+\"' must be declared in an enclosing class\"):this.privateNameStack[this.privateNameStack.length-1].used.push(e)),e},$.parseYield=function(e){this.yieldPos||(this.yieldPos=this.start);var t=this.startNode();return this.next(),this.type===f.semi||this.canInsertSemicolon()||this.type!==f.star&&!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(f.star),t.argument=this.parseMaybeAssign(e)),this.finishNode(t,\"YieldExpression\")},$.parseAwait=function(e){this.awaitPos||(this.awaitPos=this.start);var t=this.startNode();return this.next(),t.argument=this.parseMaybeUnary(null,!0,!1,e),this.finishNode(t,\"AwaitExpression\")};var W=acorn_Parser.prototype;W.raise=function(e,t){var i=getLineInfo(this.input,e);t+=\" (\"+i.line+\":\"+i.column+\")\",this.sourceFile&&(t+=\" in \"+this.sourceFile);var s=new SyntaxError(t);throw s.pos=e,s.loc=i,s.raisedAt=this.pos,s},W.raiseRecoverable=W.raise,W.curPosition=function(){if(this.options.locations)return new acorn_Position(this.curLine,this.pos-this.lineStart)};var G=acorn_Parser.prototype,acorn_Scope=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};G.enterScope=function(e){this.scopeStack.push(new acorn_Scope(e))},G.exitScope=function(){this.scopeStack.pop()},G.treatFunctionsAsVarInScope=function(e){return 2&e.flags||!this.inModule&&1&e.flags},G.declareName=function(e,t,i){var s=!1;if(2===t){var r=this.currentScope();s=r.lexical.indexOf(e)>-1||r.functions.indexOf(e)>-1||r.var.indexOf(e)>-1,r.lexical.push(e),this.inModule&&1&r.flags&&delete this.undefinedExports[e]}else if(4===t){this.currentScope().lexical.push(e)}else if(3===t){var n=this.currentScope();s=this.treatFunctionsAsVar?n.lexical.indexOf(e)>-1:n.lexical.indexOf(e)>-1||n.var.indexOf(e)>-1,n.functions.push(e)}else for(var a=this.scopeStack.length-1;a>=0;--a){var o=this.scopeStack[a];if(o.lexical.indexOf(e)>-1&&!(32&o.flags&&o.lexical[0]===e)||!this.treatFunctionsAsVarInScope(o)&&o.functions.indexOf(e)>-1){s=!0;break}if(o.var.push(e),this.inModule&&1&o.flags&&delete this.undefinedExports[e],o.flags&P)break}s&&this.raiseRecoverable(i,\"Identifier '\"+e+\"' has already been declared\")},G.checkLocalExport=function(e){-1===this.scopeStack[0].lexical.indexOf(e.name)&&-1===this.scopeStack[0].var.indexOf(e.name)&&(this.undefinedExports[e.name]=e)},G.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},G.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(771&t.flags)return t}},G.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(771&t.flags&&!(16&t.flags))return t}};var acorn_Node=function(e,t,i){this.type=\"\",this.start=t,this.end=0,e.options.locations&&(this.loc=new acorn_SourceLocation(e,i)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},H=acorn_Parser.prototype;function finishNodeAt(e,t,i,s){return e.type=t,e.end=i,this.options.locations&&(e.loc.end=s),this.options.ranges&&(e.range[1]=i),e}H.startNode=function(){return new acorn_Node(this,this.start,this.startLoc)},H.startNodeAt=function(e,t){return new acorn_Node(this,e,t)},H.finishNode=function(e,t){return finishNodeAt.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},H.finishNodeAt=function(e,t,i,s){return finishNodeAt.call(this,e,t,i,s)},H.copyNode=function(e){var t=new acorn_Node(this,e.start,this.startLoc);for(var i in e)t[i]=e[i];return t};var K=\"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\",z=K+\" Extended_Pictographic\",J=z+\" EBase EComp EMod EPres ExtPict\",Y={9:K,10:z,11:z,12:J,13:J,14:J},Q={9:\"\",10:\"\",11:\"\",12:\"\",13:\"\",14:\"Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji\"},Z=\"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\",X=\"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\",ee=X+\" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\",te=ee+\" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\",ie=te+\" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\",se=ie+\" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith\",re={9:X,10:ee,11:te,12:ie,13:se,14:se+\" Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sunu Sunuwar Todhri Todr Tulu_Tigalari Tutg Unknown Zzzz\"},ne={};function buildUnicodeData(e){var t=ne[e]={binary:wordsRegexp(Y[e]+\" \"+Z),binaryOfStrings:wordsRegexp(Q[e]),nonBinary:{General_Category:wordsRegexp(Z),Script:wordsRegexp(re[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(var ae=0,oe=[9,10,11,12,13,14];ae<oe.length;ae+=1){buildUnicodeData(oe[ae])}var he=acorn_Parser.prototype,acorn_BranchID=function(e,t){this.parent=e,this.base=t||this};acorn_BranchID.prototype.separatedFrom=function(e){for(var t=this;t;t=t.parent)for(var i=e;i;i=i.parent)if(t.base===i.base&&t!==i)return!0;return!1},acorn_BranchID.prototype.sibling=function(){return new acorn_BranchID(this.parent,this.base)};var acorn_RegExpValidationState=function(e){this.parser=e,this.validFlags=\"gim\"+(e.options.ecmaVersion>=6?\"uy\":\"\")+(e.options.ecmaVersion>=9?\"s\":\"\")+(e.options.ecmaVersion>=13?\"d\":\"\")+(e.options.ecmaVersion>=15?\"v\":\"\"),this.unicodeProperties=ne[e.options.ecmaVersion>=14?14:e.options.ecmaVersion],this.source=\"\",this.flags=\"\",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue=\"\",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=Object.create(null),this.backReferenceNames=[],this.branchID=null};function isRegularExpressionModifier(e){return 105===e||109===e||115===e}function isSyntaxCharacter(e){return 36===e||e>=40&&e<=43||46===e||63===e||e>=91&&e<=94||e>=123&&e<=125}function isControlLetter(e){return e>=65&&e<=90||e>=97&&e<=122}acorn_RegExpValidationState.prototype.reset=function(e,t,i){var s=-1!==i.indexOf(\"v\"),r=-1!==i.indexOf(\"u\");this.start=0|e,this.source=t+\"\",this.flags=i,s&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=r&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=r&&this.parser.options.ecmaVersion>=9)},acorn_RegExpValidationState.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,\"Invalid regular expression: /\"+this.source+\"/: \"+e)},acorn_RegExpValidationState.prototype.at=function(e,t){void 0===t&&(t=!1);var i=this.source,s=i.length;if(e>=s)return-1;var r=i.charCodeAt(e);if(!t&&!this.switchU||r<=55295||r>=57344||e+1>=s)return r;var n=i.charCodeAt(e+1);return n>=56320&&n<=57343?(r<<10)+n-56613888:r},acorn_RegExpValidationState.prototype.nextIndex=function(e,t){void 0===t&&(t=!1);var i=this.source,s=i.length;if(e>=s)return s;var r,n=i.charCodeAt(e);return!t&&!this.switchU||n<=55295||n>=57344||e+1>=s||(r=i.charCodeAt(e+1))<56320||r>57343?e+1:e+2},acorn_RegExpValidationState.prototype.current=function(e){return void 0===e&&(e=!1),this.at(this.pos,e)},acorn_RegExpValidationState.prototype.lookahead=function(e){return void 0===e&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},acorn_RegExpValidationState.prototype.advance=function(e){void 0===e&&(e=!1),this.pos=this.nextIndex(this.pos,e)},acorn_RegExpValidationState.prototype.eat=function(e,t){return void 0===t&&(t=!1),this.current(t)===e&&(this.advance(t),!0)},acorn_RegExpValidationState.prototype.eatChars=function(e,t){void 0===t&&(t=!1);for(var i=this.pos,s=0,r=e;s<r.length;s+=1){var n=r[s],a=this.at(i,t);if(-1===a||a!==n)return!1;i=this.nextIndex(i,t)}return this.pos=i,!0},he.validateRegExpFlags=function(e){for(var t=e.validFlags,i=e.flags,s=!1,r=!1,n=0;n<i.length;n++){var a=i.charAt(n);-1===t.indexOf(a)&&this.raise(e.start,\"Invalid regular expression flag\"),i.indexOf(a,n+1)>-1&&this.raise(e.start,\"Duplicate regular expression flag\"),\"u\"===a&&(s=!0),\"v\"===a&&(r=!0)}this.options.ecmaVersion>=15&&s&&r&&this.raise(e.start,\"Invalid regular expression flag\")},he.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&function(e){for(var t in e)return!0;return!1}(e.groupNames)&&(e.switchN=!0,this.regexp_pattern(e))},he.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue=\"\",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames=Object.create(null),e.backReferenceNames.length=0,e.branchID=null,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise(\"Unmatched ')'\"),(e.eat(93)||e.eat(125))&&e.raise(\"Lone quantifier brackets\")),e.maxBackReference>e.numCapturingParens&&e.raise(\"Invalid escape\");for(var t=0,i=e.backReferenceNames;t<i.length;t+=1){var s=i[t];e.groupNames[s]||e.raise(\"Invalid named capture referenced\")}},he.regexp_disjunction=function(e){var t=this.options.ecmaVersion>=16;for(t&&(e.branchID=new acorn_BranchID(e.branchID,null)),this.regexp_alternative(e);e.eat(124);)t&&(e.branchID=e.branchID.sibling()),this.regexp_alternative(e);t&&(e.branchID=e.branchID.parent),this.regexp_eatQuantifier(e,!0)&&e.raise(\"Nothing to repeat\"),e.eat(123)&&e.raise(\"Lone quantifier brackets\")},he.regexp_alternative=function(e){for(;e.pos<e.source.length&&this.regexp_eatTerm(e););},he.regexp_eatTerm=function(e){return this.regexp_eatAssertion(e)?(e.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(e)&&e.switchU&&e.raise(\"Invalid quantifier\"),!0):!!(e.switchU?this.regexp_eatAtom(e):this.regexp_eatExtendedAtom(e))&&(this.regexp_eatQuantifier(e),!0)},he.regexp_eatAssertion=function(e){var t=e.pos;if(e.lastAssertionIsQuantifiable=!1,e.eat(94)||e.eat(36))return!0;if(e.eat(92)){if(e.eat(66)||e.eat(98))return!0;e.pos=t}if(e.eat(40)&&e.eat(63)){var i=!1;if(this.options.ecmaVersion>=9&&(i=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise(\"Unterminated group\"),e.lastAssertionIsQuantifiable=!i,!0}return e.pos=t,!1},he.regexp_eatQuantifier=function(e,t){return void 0===t&&(t=!1),!!this.regexp_eatQuantifierPrefix(e,t)&&(e.eat(63),!0)},he.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},he.regexp_eatBracedQuantifier=function(e,t){var i=e.pos;if(e.eat(123)){var s=0,r=-1;if(this.regexp_eatDecimalDigits(e)&&(s=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(r=e.lastIntValue),e.eat(125)))return-1!==r&&r<s&&!t&&e.raise(\"numbers out of order in {} quantifier\"),!0;e.switchU&&!t&&e.raise(\"Incomplete quantifier\"),e.pos=i}return!1},he.regexp_eatAtom=function(e){return this.regexp_eatPatternCharacters(e)||e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)},he.regexp_eatReverseSolidusAtomEscape=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatAtomEscape(e))return!0;e.pos=t}return!1},he.regexp_eatUncapturingGroup=function(e){var t=e.pos;if(e.eat(40)){if(e.eat(63)){if(this.options.ecmaVersion>=16){var i=this.regexp_eatModifiers(e),s=e.eat(45);if(i||s){for(var r=0;r<i.length;r++){var n=i.charAt(r);i.indexOf(n,r+1)>-1&&e.raise(\"Duplicate regular expression modifiers\")}if(s){var a=this.regexp_eatModifiers(e);i||a||58!==e.current()||e.raise(\"Invalid regular expression modifiers\");for(var o=0;o<a.length;o++){var h=a.charAt(o);(a.indexOf(h,o+1)>-1||i.indexOf(h)>-1)&&e.raise(\"Duplicate regular expression modifiers\")}}}}if(e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise(\"Unterminated group\")}}e.pos=t}return!1},he.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):63===e.current()&&e.raise(\"Invalid group\"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise(\"Unterminated group\")}return!1},he.regexp_eatModifiers=function(e){for(var t=\"\",i=0;-1!==(i=e.current())&&isRegularExpressionModifier(i);)t+=codePointToString(i),e.advance();return t},he.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},he.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise(\"Nothing to repeat\"),!1},he.regexp_eatSyntaxCharacter=function(e){var t=e.current();return!!isSyntaxCharacter(t)&&(e.lastIntValue=t,e.advance(),!0)},he.regexp_eatPatternCharacters=function(e){for(var t=e.pos,i=0;-1!==(i=e.current())&&!isSyntaxCharacter(i);)e.advance();return e.pos!==t},he.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return!(-1===t||36===t||t>=40&&t<=43||46===t||63===t||91===t||94===t||124===t)&&(e.advance(),!0)},he.regexp_groupSpecifier=function(e){if(e.eat(63)){this.regexp_eatGroupName(e)||e.raise(\"Invalid group\");var t=this.options.ecmaVersion>=16,i=e.groupNames[e.lastStringValue];if(i)if(t)for(var s=0,r=i;s<r.length;s+=1){r[s].separatedFrom(e.branchID)||e.raise(\"Duplicate capture group name\")}else e.raise(\"Duplicate capture group name\");t?(i||(e.groupNames[e.lastStringValue]=[])).push(e.branchID):e.groupNames[e.lastStringValue]=!0}},he.regexp_eatGroupName=function(e){if(e.lastStringValue=\"\",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise(\"Invalid capture group name\")}return!1},he.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue=\"\",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=codePointToString(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=codePointToString(e.lastIntValue);return!0}return!1},he.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,i=this.options.ecmaVersion>=11,s=e.current(i);return e.advance(i),92===s&&this.regexp_eatRegExpUnicodeEscapeSequence(e,i)&&(s=e.lastIntValue),function(e){return isIdentifierStart(e,!0)||36===e||95===e}(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)},he.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,i=this.options.ecmaVersion>=11,s=e.current(i);return e.advance(i),92===s&&this.regexp_eatRegExpUnicodeEscapeSequence(e,i)&&(s=e.lastIntValue),function(e){return isIdentifierChar(e,!0)||36===e||95===e||8204===e||8205===e}(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)},he.regexp_eatAtomEscape=function(e){return!!(this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e))||(e.switchU&&(99===e.current()&&e.raise(\"Invalid unicode escape\"),e.raise(\"Invalid escape\")),!1)},he.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var i=e.lastIntValue;if(e.switchU)return i>e.maxBackReference&&(e.maxBackReference=i),!0;if(i<=e.numCapturingParens)return!0;e.pos=t}return!1},he.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise(\"Invalid named reference\")}return!1},he.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},he.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},he.regexp_eatZero=function(e){return 48===e.current()&&!isDecimalDigit(e.lookahead())&&(e.lastIntValue=0,e.advance(),!0)},he.regexp_eatControlEscape=function(e){var t=e.current();return 116===t?(e.lastIntValue=9,e.advance(),!0):110===t?(e.lastIntValue=10,e.advance(),!0):118===t?(e.lastIntValue=11,e.advance(),!0):102===t?(e.lastIntValue=12,e.advance(),!0):114===t&&(e.lastIntValue=13,e.advance(),!0)},he.regexp_eatControlLetter=function(e){var t=e.current();return!!isControlLetter(t)&&(e.lastIntValue=t%32,e.advance(),!0)},he.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){void 0===t&&(t=!1);var i,s=e.pos,r=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var n=e.lastIntValue;if(r&&n>=55296&&n<=56319){var a=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var o=e.lastIntValue;if(o>=56320&&o<=57343)return e.lastIntValue=1024*(n-55296)+(o-56320)+65536,!0}e.pos=a,e.lastIntValue=n}return!0}if(r&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&((i=e.lastIntValue)>=0&&i<=1114111))return!0;r&&e.raise(\"Invalid unicode escape\"),e.pos=s}return!1},he.regexp_eatIdentityEscape=function(e){if(e.switchU)return!!this.regexp_eatSyntaxCharacter(e)||!!e.eat(47)&&(e.lastIntValue=47,!0);var t=e.current();return!(99===t||e.switchN&&107===t)&&(e.lastIntValue=t,e.advance(),!0)},he.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do{e.lastIntValue=10*e.lastIntValue+(t-48),e.advance()}while((t=e.current())>=48&&t<=57);return!0}return!1};function isUnicodePropertyNameCharacter(e){return isControlLetter(e)||95===e}function isUnicodePropertyValueCharacter(e){return isUnicodePropertyNameCharacter(e)||isDecimalDigit(e)}function isDecimalDigit(e){return e>=48&&e<=57}function isHexDigit(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function hexToInt(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e-48}function isOctalDigit(e){return e>=48&&e<=55}he.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(function(e){return 100===e||68===e||115===e||83===e||119===e||87===e}(t))return e.lastIntValue=-1,e.advance(),1;var i=!1;if(e.switchU&&this.options.ecmaVersion>=9&&((i=80===t)||112===t)){var s;if(e.lastIntValue=-1,e.advance(),e.eat(123)&&(s=this.regexp_eatUnicodePropertyValueExpression(e))&&e.eat(125))return i&&2===s&&e.raise(\"Invalid property name\"),s;e.raise(\"Invalid property name\")}return 0},he.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var i=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var s=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,i,s),1}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var r=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,r)}return 0},he.regexp_validateUnicodePropertyNameAndValue=function(e,t,i){b(e.unicodeProperties.nonBinary,t)||e.raise(\"Invalid property name\"),e.unicodeProperties.nonBinary[t].test(i)||e.raise(\"Invalid property value\")},he.regexp_validateUnicodePropertyNameOrValue=function(e,t){return e.unicodeProperties.binary.test(t)?1:e.switchV&&e.unicodeProperties.binaryOfStrings.test(t)?2:void e.raise(\"Invalid property name\")},he.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue=\"\";isUnicodePropertyNameCharacter(t=e.current());)e.lastStringValue+=codePointToString(t),e.advance();return\"\"!==e.lastStringValue},he.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue=\"\";isUnicodePropertyValueCharacter(t=e.current());)e.lastStringValue+=codePointToString(t),e.advance();return\"\"!==e.lastStringValue},he.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},he.regexp_eatCharacterClass=function(e){if(e.eat(91)){var t=e.eat(94),i=this.regexp_classContents(e);return e.eat(93)||e.raise(\"Unterminated character class\"),t&&2===i&&e.raise(\"Negated character class may contain strings\"),!0}return!1},he.regexp_classContents=function(e){return 93===e.current()?1:e.switchV?this.regexp_classSetExpression(e):(this.regexp_nonEmptyClassRanges(e),1)},he.regexp_nonEmptyClassRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var i=e.lastIntValue;!e.switchU||-1!==t&&-1!==i||e.raise(\"Invalid character class\"),-1!==t&&-1!==i&&t>i&&e.raise(\"Range out of order in character class\")}}},he.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var i=e.current();(99===i||isOctalDigit(i))&&e.raise(\"Invalid class escape\"),e.raise(\"Invalid escape\")}e.pos=t}var s=e.current();return 93!==s&&(e.lastIntValue=s,e.advance(),!0)},he.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},he.regexp_classSetExpression=function(e){var t,i=1;if(this.regexp_eatClassSetRange(e));else if(t=this.regexp_eatClassSetOperand(e)){2===t&&(i=2);for(var s=e.pos;e.eatChars([38,38]);)38!==e.current()&&(t=this.regexp_eatClassSetOperand(e))?2!==t&&(i=1):e.raise(\"Invalid character in character class\");if(s!==e.pos)return i;for(;e.eatChars([45,45]);)this.regexp_eatClassSetOperand(e)||e.raise(\"Invalid character in character class\");if(s!==e.pos)return i}else e.raise(\"Invalid character in character class\");for(;;)if(!this.regexp_eatClassSetRange(e)){if(!(t=this.regexp_eatClassSetOperand(e)))return i;2===t&&(i=2)}},he.regexp_eatClassSetRange=function(e){var t=e.pos;if(this.regexp_eatClassSetCharacter(e)){var i=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassSetCharacter(e)){var s=e.lastIntValue;return-1!==i&&-1!==s&&i>s&&e.raise(\"Range out of order in character class\"),!0}e.pos=t}return!1},he.regexp_eatClassSetOperand=function(e){return this.regexp_eatClassSetCharacter(e)?1:this.regexp_eatClassStringDisjunction(e)||this.regexp_eatNestedClass(e)},he.regexp_eatNestedClass=function(e){var t=e.pos;if(e.eat(91)){var i=e.eat(94),s=this.regexp_classContents(e);if(e.eat(93))return i&&2===s&&e.raise(\"Negated character class may contain strings\"),s;e.pos=t}if(e.eat(92)){var r=this.regexp_eatCharacterClassEscape(e);if(r)return r;e.pos=t}return null},he.regexp_eatClassStringDisjunction=function(e){var t=e.pos;if(e.eatChars([92,113])){if(e.eat(123)){var i=this.regexp_classStringDisjunctionContents(e);if(e.eat(125))return i}else e.raise(\"Invalid escape\");e.pos=t}return null},he.regexp_classStringDisjunctionContents=function(e){for(var t=this.regexp_classString(e);e.eat(124);)2===this.regexp_classString(e)&&(t=2);return t},he.regexp_classString=function(e){for(var t=0;this.regexp_eatClassSetCharacter(e);)t++;return 1===t?1:2},he.regexp_eatClassSetCharacter=function(e){var t=e.pos;if(e.eat(92))return!(!this.regexp_eatCharacterEscape(e)&&!this.regexp_eatClassSetReservedPunctuator(e))||(e.eat(98)?(e.lastIntValue=8,!0):(e.pos=t,!1));var i=e.current();return!(i<0||i===e.lookahead()&&function(e){return 33===e||e>=35&&e<=38||e>=42&&e<=44||46===e||e>=58&&e<=64||94===e||96===e||126===e}(i))&&(!function(e){return 40===e||41===e||45===e||47===e||e>=91&&e<=93||e>=123&&e<=125}(i)&&(e.advance(),e.lastIntValue=i,!0))},he.regexp_eatClassSetReservedPunctuator=function(e){var t=e.current();return!!function(e){return 33===e||35===e||37===e||38===e||44===e||45===e||e>=58&&e<=62||64===e||96===e||126===e}(t)&&(e.lastIntValue=t,e.advance(),!0)},he.regexp_eatClassControlLetter=function(e){var t=e.current();return!(!isDecimalDigit(t)&&95!==t)&&(e.lastIntValue=t%32,e.advance(),!0)},he.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise(\"Invalid escape\"),e.pos=t}return!1},he.regexp_eatDecimalDigits=function(e){var t=e.pos,i=0;for(e.lastIntValue=0;isDecimalDigit(i=e.current());)e.lastIntValue=10*e.lastIntValue+(i-48),e.advance();return e.pos!==t},he.regexp_eatHexDigits=function(e){var t=e.pos,i=0;for(e.lastIntValue=0;isHexDigit(i=e.current());)e.lastIntValue=16*e.lastIntValue+hexToInt(i),e.advance();return e.pos!==t},he.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var i=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=64*t+8*i+e.lastIntValue:e.lastIntValue=8*t+i}else e.lastIntValue=t;return!0}return!1},he.regexp_eatOctalDigit=function(e){var t=e.current();return isOctalDigit(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)},he.regexp_eatFixedHexDigits=function(e,t){var i=e.pos;e.lastIntValue=0;for(var s=0;s<t;++s){var r=e.current();if(!isHexDigit(r))return e.pos=i,!1;e.lastIntValue=16*e.lastIntValue+hexToInt(r),e.advance()}return!0};var acorn_Token=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new acorn_SourceLocation(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},ce=acorn_Parser.prototype;function stringToBigInt(e){return\"function\"!=typeof BigInt?null:BigInt(e.replace(/_/g,\"\"))}ce.next=function(e){!e&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,\"Escape sequence in keyword \"+this.type.keyword),this.options.onToken&&this.options.onToken(new acorn_Token(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},ce.getToken=function(){return this.next(),new acorn_Token(this)},\"undefined\"!=typeof Symbol&&(ce[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===f.eof,value:t}}}}),ce.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(f.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},ce.readToken=function(e){return isIdentifierStart(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},ce.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=56320)return e;var t=this.input.charCodeAt(this.pos+1);return t<=56319||t>=57344?e:(e<<10)+t-56613888},ce.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,i=this.input.indexOf(\"*/\",this.pos+=2);if(-1===i&&this.raise(this.pos-2,\"Unterminated comment\"),this.pos=i+2,this.options.locations)for(var s=void 0,r=t;(s=nextLineBreak(this.input,r,this.pos))>-1;)++this.curLine,r=this.lineStart=s;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,i),t,this.pos,e,this.curPosition())},ce.skipLineComment=function(e){for(var t=this.pos,i=this.options.onComment&&this.curPosition(),s=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&!isNewLine(s);)s=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(t+e,this.pos),t,this.pos,i,this.curPosition())},ce.skipSpace=function(){e:for(;this.pos<this.input.length;){var e=this.input.charCodeAt(this.pos);switch(e){case 32:case 160:++this.pos;break;case 13:10===this.input.charCodeAt(this.pos+1)&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&e<14||e>=5760&&x.test(String.fromCharCode(e))))break e;++this.pos}}},ce.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var i=this.type;this.type=e,this.value=t,this.updateContext(i)},ce.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(f.ellipsis)):(++this.pos,this.finishToken(f.dot))},ce.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(f.assign,2):this.finishOp(f.slash,1)},ce.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),i=1,s=42===e?f.star:f.modulo;return this.options.ecmaVersion>=7&&42===e&&42===t&&(++i,s=f.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(f.assign,i+1):this.finishOp(s,i)},ce.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(f.assign,3);return this.finishOp(124===e?f.logicalOR:f.logicalAND,2)}return 61===t?this.finishOp(f.assign,2):this.finishOp(124===e?f.bitwiseOR:f.bitwiseAND,1)},ce.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(f.assign,2):this.finishOp(f.bitwiseXOR,1)},ce.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!==t||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!m.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(f.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(f.assign,2):this.finishOp(f.plusMin,1)},ce.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),i=1;return t===e?(i=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+i)?this.finishOp(f.assign,i+1):this.finishOp(f.bitShift,i)):33!==t||60!==e||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===t&&(i=2),this.finishOp(f.relational,i)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},ce.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(f.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(f.arrow)):this.finishOp(61===e?f.eq:f.prefix,1)},ce.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(46===t){var i=this.input.charCodeAt(this.pos+2);if(i<48||i>57)return this.finishOp(f.questionDot,2)}if(63===t){if(e>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(f.assign,3);return this.finishOp(f.coalesce,2)}}return this.finishOp(f.question,1)},ce.readToken_numberSign=function(){var e=35;if(this.options.ecmaVersion>=13&&(++this.pos,isIdentifierStart(e=this.fullCharCodeAtPos(),!0)||92===e))return this.finishToken(f.privateId,this.readWord1());this.raise(this.pos,\"Unexpected character '\"+codePointToString(e)+\"'\")},ce.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(f.parenL);case 41:return++this.pos,this.finishToken(f.parenR);case 59:return++this.pos,this.finishToken(f.semi);case 44:return++this.pos,this.finishToken(f.comma);case 91:return++this.pos,this.finishToken(f.bracketL);case 93:return++this.pos,this.finishToken(f.bracketR);case 123:return++this.pos,this.finishToken(f.braceL);case 125:return++this.pos,this.finishToken(f.braceR);case 58:return++this.pos,this.finishToken(f.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(f.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(f.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,\"Unexpected character '\"+codePointToString(e)+\"'\")},ce.finishOp=function(e,t){var i=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,i)},ce.readRegexp=function(){for(var e,t,i=this.pos;;){this.pos>=this.input.length&&this.raise(i,\"Unterminated regular expression\");var s=this.input.charAt(this.pos);if(m.test(s)&&this.raise(i,\"Unterminated regular expression\"),e)e=!1;else{if(\"[\"===s)t=!0;else if(\"]\"===s&&t)t=!1;else if(\"/\"===s&&!t)break;e=\"\\\\\"===s}++this.pos}var r=this.input.slice(i,this.pos);++this.pos;var n=this.pos,a=this.readWord1();this.containsEsc&&this.unexpected(n);var o=this.regexpState||(this.regexpState=new acorn_RegExpValidationState(this));o.reset(i,r,a),this.validateRegExpFlags(o),this.validateRegExpPattern(o);var h=null;try{h=new RegExp(r,a)}catch(e){}return this.finishToken(f.regexp,{pattern:r,flags:a,value:h})},ce.readInt=function(e,t,i){for(var s=this.options.ecmaVersion>=12&&void 0===t,r=i&&48===this.input.charCodeAt(this.pos),n=this.pos,a=0,o=0,h=0,c=null==t?1/0:t;h<c;++h,++this.pos){var p=this.input.charCodeAt(this.pos),l=void 0;if(s&&95===p)r&&this.raiseRecoverable(this.pos,\"Numeric separator is not allowed in legacy octal numeric literals\"),95===o&&this.raiseRecoverable(this.pos,\"Numeric separator must be exactly one underscore\"),0===h&&this.raiseRecoverable(this.pos,\"Numeric separator is not allowed at the first of digits\"),o=p;else{if((l=p>=97?p-97+10:p>=65?p-65+10:p>=48&&p<=57?p-48:1/0)>=e)break;o=p,a=a*e+l}}return s&&95===o&&this.raiseRecoverable(this.pos-1,\"Numeric separator is not allowed at the last of digits\"),this.pos===n||null!=t&&this.pos-n!==t?null:a},ce.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var i=this.readInt(e);return null==i&&this.raise(this.start+2,\"Expected number in radix \"+e),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(i=stringToBigInt(this.input.slice(t,this.pos)),++this.pos):isIdentifierStart(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\"),this.finishToken(f.num,i)},ce.readNumber=function(e){var t=this.pos;e||null!==this.readInt(10,void 0,!0)||this.raise(t,\"Invalid number\");var i=this.pos-t>=2&&48===this.input.charCodeAt(t);i&&this.strict&&this.raise(t,\"Invalid number\");var s=this.input.charCodeAt(this.pos);if(!i&&!e&&this.options.ecmaVersion>=11&&110===s){var r=stringToBigInt(this.input.slice(t,this.pos));return++this.pos,isIdentifierStart(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\"),this.finishToken(f.num,r)}i&&/[89]/.test(this.input.slice(t,this.pos))&&(i=!1),46!==s||i||(++this.pos,this.readInt(10),s=this.input.charCodeAt(this.pos)),69!==s&&101!==s||i||(43!==(s=this.input.charCodeAt(++this.pos))&&45!==s||++this.pos,null===this.readInt(10)&&this.raise(t,\"Invalid number\")),isIdentifierStart(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\");var n,a=(n=this.input.slice(t,this.pos),i?parseInt(n,8):parseFloat(n.replace(/_/g,\"\")));return this.finishToken(f.num,a)},ce.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf(\"}\",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,\"Code point out of bounds\")}else e=this.readHexChar(4);return e},ce.readString=function(e){for(var t=\"\",i=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated string constant\");var s=this.input.charCodeAt(this.pos);if(s===e)break;92===s?(t+=this.input.slice(i,this.pos),t+=this.readEscapedChar(!1),i=this.pos):8232===s||8233===s?(this.options.ecmaVersion<10&&this.raise(this.start,\"Unterminated string constant\"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(isNewLine(s)&&this.raise(this.start,\"Unterminated string constant\"),++this.pos)}return t+=this.input.slice(i,this.pos++),this.finishToken(f.string,t)};var pe={};ce.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==pe)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},ce.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw pe;this.raise(e,t)},ce.readTmplToken=function(){for(var e=\"\",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated template\");var i=this.input.charCodeAt(this.pos);if(96===i||36===i&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==f.template&&this.type!==f.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(f.template,e)):36===i?(this.pos+=2,this.finishToken(f.dollarBraceL)):(++this.pos,this.finishToken(f.backQuote));if(92===i)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(isNewLine(i)){switch(e+=this.input.slice(t,this.pos),++this.pos,i){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+=\"\\n\";break;default:e+=String.fromCharCode(i)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},ce.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case\"\\\\\":++this.pos;break;case\"$\":if(\"{\"!==this.input[this.pos+1])break;case\"`\":return this.finishToken(f.invalidTemplate,this.input.slice(this.start,this.pos));case\"\\r\":\"\\n\"===this.input[this.pos+1]&&++this.pos;case\"\\n\":case\"\\u2028\":case\"\\u2029\":++this.curLine,this.lineStart=this.pos+1}this.raise(this.start,\"Unterminated template\")},ce.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return\"\\n\";case 114:return\"\\r\";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return codePointToString(this.readCodePoint());case 116:return\"\\t\";case 98:return\"\\b\";case 118:return\"\\v\";case 102:return\"\\f\";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),\"\";case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,\"Invalid escape sequence\"),e){var i=this.pos-1;this.invalidStringToken(i,\"Invalid escape sequence in template string\")}default:if(t>=48&&t<=55){var s=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],r=parseInt(s,8);return r>255&&(s=s.slice(0,-1),r=parseInt(s,8)),this.pos+=s.length-1,t=this.input.charCodeAt(this.pos),\"0\"===s&&56!==t&&57!==t||!this.strict&&!e||this.invalidStringToken(this.pos-1-s.length,e?\"Octal literal in template string\":\"Octal literal in strict mode\"),String.fromCharCode(r)}return isNewLine(t)?(this.options.locations&&(this.lineStart=this.pos,++this.curLine),\"\"):String.fromCharCode(t)}},ce.readHexChar=function(e){var t=this.pos,i=this.readInt(16,e);return null===i&&this.invalidStringToken(t,\"Bad character escape sequence\"),i},ce.readWord1=function(){this.containsEsc=!1;for(var e=\"\",t=!0,i=this.pos,s=this.options.ecmaVersion>=6;this.pos<this.input.length;){var r=this.fullCharCodeAtPos();if(isIdentifierChar(r,s))this.pos+=r<=65535?1:2;else{if(92!==r)break;this.containsEsc=!0,e+=this.input.slice(i,this.pos);var n=this.pos;117!==this.input.charCodeAt(++this.pos)&&this.invalidStringToken(this.pos,\"Expecting Unicode escape sequence \\\\uXXXX\"),++this.pos;var a=this.readCodePoint();(t?isIdentifierStart:isIdentifierChar)(a,s)||this.invalidStringToken(n,\"Invalid Unicode escape\"),e+=codePointToString(a),i=this.pos}t=!1}return e+this.input.slice(i,this.pos)},ce.readWord=function(){var e=this.readWord1(),t=f.name;return this.keywords.test(e)&&(t=d[e]),this.finishToken(t,e)};acorn_Parser.acorn={Parser:acorn_Parser,version:\"8.15.0\",defaultOptions:I,Position:acorn_Position,SourceLocation:acorn_SourceLocation,getLineInfo,Node:acorn_Node,TokenType:acorn_TokenType,tokTypes:f,keywordTypes:d,TokContext:acorn_TokContext,tokContexts:F,isIdentifierChar,isIdentifierStart,Token:acorn_Token,isNewLine,lineBreak:m,lineBreakG:g,nonASCIIwhitespace:x};const le=require(\"node:module\"),ue=require(\"node:fs\");String.fromCharCode;const de=/\\/$|\\/\\?|\\/#/,fe=/^\\.?\\//;function hasTrailingSlash(e=\"\",t){return t?de.test(e):e.endsWith(\"/\")}function withTrailingSlash(e=\"\",t){if(!t)return e.endsWith(\"/\")?e:e+\"/\";if(hasTrailingSlash(e,!0))return e||\"/\";let i=e,s=\"\";const r=e.indexOf(\"#\");if(-1!==r&&(i=e.slice(0,r),s=e.slice(r),!i))return s;const[n,...a]=i.split(\"?\");return n+\"/\"+(a.length>0?`?${a.join(\"?\")}`:\"\")+s}function isNonEmptyURL(e){return e&&\"/\"!==e}function dist_joinURL(e,...t){let i=e||\"\";for(const e of t.filter(e=>isNonEmptyURL(e)))if(i){const t=e.replace(fe,\"\");i=withTrailingSlash(i)+t}else i=e;return i}Symbol.for(\"ufo:protocolRelative\");const me=/^[A-Za-z]:\\//;function pathe_M_eThtNZ_normalizeWindowsPath(e=\"\"){return e?e.replace(/\\\\/g,\"/\").replace(me,e=>e.toUpperCase()):e}const ge=/^[/\\\\]{2}/,xe=/^[/\\\\](?![/\\\\])|^[/\\\\]{2}(?!\\.)|^[A-Za-z]:[/\\\\]/,ve=/^[A-Za-z]:$/,ye=/.(\\.[^./]+|\\.)$/,pathe_M_eThtNZ_normalize=function(e){if(0===e.length)return\".\";const t=(e=pathe_M_eThtNZ_normalizeWindowsPath(e)).match(ge),i=isAbsolute(e),s=\"/\"===e[e.length-1];return 0===(e=normalizeString(e,!i)).length?i?\"/\":s?\"./\":\".\":(s&&(e+=\"/\"),ve.test(e)&&(e+=\"/\"),t?i?`//${e}`:`//./${e}`:i&&!isAbsolute(e)?`/${e}`:e)},pathe_M_eThtNZ_join=function(...e){let t=\"\";for(const i of e)if(i)if(t.length>0){const e=\"/\"===t[t.length-1],s=\"/\"===i[0];t+=e&&s?i.slice(1):e||s?i:`/${i}`}else t+=i;return pathe_M_eThtNZ_normalize(t)};function pathe_M_eThtNZ_cwd(){return\"undefined\"!=typeof process&&\"function\"==typeof process.cwd?process.cwd().replace(/\\\\/g,\"/\"):\"/\"}const pathe_M_eThtNZ_resolve=function(...e){let t=\"\",i=!1;for(let s=(e=e.map(e=>pathe_M_eThtNZ_normalizeWindowsPath(e))).length-1;s>=-1&&!i;s--){const r=s>=0?e[s]:pathe_M_eThtNZ_cwd();r&&0!==r.length&&(t=`${r}/${t}`,i=isAbsolute(r))}return t=normalizeString(t,!i),i&&!isAbsolute(t)?`/${t}`:t.length>0?t:\".\"};function normalizeString(e,t){let i=\"\",s=0,r=-1,n=0,a=null;for(let o=0;o<=e.length;++o){if(o<e.length)a=e[o];else{if(\"/\"===a)break;a=\"/\"}if(\"/\"===a){if(r===o-1||1===n);else if(2===n){if(i.length<2||2!==s||\".\"!==i[i.length-1]||\".\"!==i[i.length-2]){if(i.length>2){const e=i.lastIndexOf(\"/\");-1===e?(i=\"\",s=0):(i=i.slice(0,e),s=i.length-1-i.lastIndexOf(\"/\")),r=o,n=0;continue}if(i.length>0){i=\"\",s=0,r=o,n=0;continue}}t&&(i+=i.length>0?\"/..\":\"..\",s=2)}else i.length>0?i+=`/${e.slice(r+1,o)}`:i=e.slice(r+1,o),s=o-r-1;r=o,n=0}else\".\"===a&&-1!==n?++n:n=-1}return i}const isAbsolute=function(e){return xe.test(e)},extname=function(e){if(\"..\"===e)return\"\";const t=ye.exec(pathe_M_eThtNZ_normalizeWindowsPath(e));return t&&t[1]||\"\"},pathe_M_eThtNZ_dirname=function(e){const t=pathe_M_eThtNZ_normalizeWindowsPath(e).replace(/\\/$/,\"\").split(\"/\").slice(0,-1);return 1===t.length&&ve.test(t[0])&&(t[0]+=\"/\"),t.join(\"/\")||(isAbsolute(e)?\"/\":\".\")},basename=function(e,t){const i=pathe_M_eThtNZ_normalizeWindowsPath(e).split(\"/\");let s=\"\";for(let e=i.length-1;e>=0;e--){const t=i[e];if(t){s=t;break}}return t&&s.endsWith(t)?s.slice(0,-t.length):s},_e=require(\"node:url\"),Ee=require(\"node:assert\"),be=require(\"node:process\"),Se=require(\"node:path\"),ke=require(\"node:v8\"),we=require(\"node:util\"),Ie=new Set(le.builtinModules);function normalizeSlash(e){return e.replace(/\\\\/g,\"/\")}const Ce={}.hasOwnProperty,Re=/^([A-Z][a-z\\d]*)+$/,Pe=new Set([\"string\",\"function\",\"number\",\"object\",\"Function\",\"Object\",\"boolean\",\"bigint\",\"symbol\"]),Te={};function formatList(e,t=\"and\"){return e.length<3?e.join(` ${t} `):`${e.slice(0,-1).join(\", \")}, ${t} ${e[e.length-1]}`}const Ae=new Map;let Ne;function createError(e,t,i){return Ae.set(e,t),function(e,t){return NodeError;function NodeError(...i){const s=Error.stackTraceLimit;isErrorStackTraceLimitWritable()&&(Error.stackTraceLimit=0);const r=new e;isErrorStackTraceLimitWritable()&&(Error.stackTraceLimit=s);const n=function(e,t,i){const s=Ae.get(e);if(Ee(void 0!==s,\"expected `message` to be found\"),\"function\"==typeof s)return Ee(s.length<=t.length,`Code: ${e}; The provided arguments length (${t.length}) does not match the required ones (${s.length}).`),Reflect.apply(s,i,t);const r=/%[dfijoOs]/g;let n=0;for(;null!==r.exec(s);)n++;return Ee(n===t.length,`Code: ${e}; The provided arguments length (${t.length}) does not match the required ones (${n}).`),0===t.length?s:(t.unshift(s),Reflect.apply(we.format,null,t))}(t,i,r);return Object.defineProperties(r,{message:{value:n,enumerable:!1,writable:!0,configurable:!0},toString:{value(){return`${this.name} [${t}]: ${this.message}`},enumerable:!1,writable:!0,configurable:!0}}),Le(r),r.code=t,r}}(i,e)}function isErrorStackTraceLimitWritable(){try{if(ke.startupSnapshot.isBuildingSnapshot())return!1}catch{}const e=Object.getOwnPropertyDescriptor(Error,\"stackTraceLimit\");return void 0===e?Object.isExtensible(Error):Ce.call(e,\"writable\")&&void 0!==e.writable?e.writable:void 0!==e.set}Te.ERR_INVALID_ARG_TYPE=createError(\"ERR_INVALID_ARG_TYPE\",(e,t,i)=>{Ee(\"string\"==typeof e,\"'name' must be a string\"),Array.isArray(t)||(t=[t]);let s=\"The \";if(e.endsWith(\" argument\"))s+=`${e} `;else{const t=e.includes(\".\")?\"property\":\"argument\";s+=`\"${e}\" ${t} `}s+=\"must be \";const r=[],n=[],a=[];for(const e of t)Ee(\"string\"==typeof e,\"All expected entries have to be of type string\"),Pe.has(e)?r.push(e.toLowerCase()):null===Re.exec(e)?(Ee(\"object\"!==e,'The value \"object\" should be written as \"Object\"'),a.push(e)):n.push(e);if(n.length>0){const e=r.indexOf(\"object\");-1!==e&&(r.slice(e,1),n.push(\"Object\"))}return r.length>0&&(s+=`${r.length>1?\"one of type\":\"of type\"} ${formatList(r,\"or\")}`,(n.length>0||a.length>0)&&(s+=\" or \")),n.length>0&&(s+=`an instance of ${formatList(n,\"or\")}`,a.length>0&&(s+=\" or \")),a.length>0&&(a.length>1?s+=`one of ${formatList(a,\"or\")}`:(a[0].toLowerCase()!==a[0]&&(s+=\"an \"),s+=`${a[0]}`)),s+=`. Received ${function(e){if(null==e)return String(e);if(\"function\"==typeof e&&e.name)return`function ${e.name}`;if(\"object\"==typeof e)return e.constructor&&e.constructor.name?`an instance of ${e.constructor.name}`:`${(0,we.inspect)(e,{depth:-1})}`;let t=(0,we.inspect)(e,{colors:!1});t.length>28&&(t=`${t.slice(0,25)}...`);return`type ${typeof e} (${t})`}(i)}`,s},TypeError),Te.ERR_INVALID_MODULE_SPECIFIER=createError(\"ERR_INVALID_MODULE_SPECIFIER\",(e,t,i=void 0)=>`Invalid module \"${e}\" ${t}${i?` imported from ${i}`:\"\"}`,TypeError),Te.ERR_INVALID_PACKAGE_CONFIG=createError(\"ERR_INVALID_PACKAGE_CONFIG\",(e,t,i)=>`Invalid package config ${e}${t?` while importing ${t}`:\"\"}${i?`. ${i}`:\"\"}`,Error),Te.ERR_INVALID_PACKAGE_TARGET=createError(\"ERR_INVALID_PACKAGE_TARGET\",(e,t,i,s=!1,r=void 0)=>{const n=\"string\"==typeof i&&!s&&i.length>0&&!i.startsWith(\"./\");return\".\"===t?(Ee(!1===s),`Invalid \"exports\" main target ${JSON.stringify(i)} defined in the package config ${e}package.json${r?` imported from ${r}`:\"\"}${n?'; targets must start with \"./\"':\"\"}`):`Invalid \"${s?\"imports\":\"exports\"}\" target ${JSON.stringify(i)} defined for '${t}' in the package config ${e}package.json${r?` imported from ${r}`:\"\"}${n?'; targets must start with \"./\"':\"\"}`},Error),Te.ERR_MODULE_NOT_FOUND=createError(\"ERR_MODULE_NOT_FOUND\",(e,t,i=!1)=>`Cannot find ${i?\"module\":\"package\"} '${e}' imported from ${t}`,Error),Te.ERR_NETWORK_IMPORT_DISALLOWED=createError(\"ERR_NETWORK_IMPORT_DISALLOWED\",\"import of '%s' by %s is not supported: %s\",Error),Te.ERR_PACKAGE_IMPORT_NOT_DEFINED=createError(\"ERR_PACKAGE_IMPORT_NOT_DEFINED\",(e,t,i)=>`Package import specifier \"${e}\" is not defined${t?` in package ${t}package.json`:\"\"} imported from ${i}`,TypeError),Te.ERR_PACKAGE_PATH_NOT_EXPORTED=createError(\"ERR_PACKAGE_PATH_NOT_EXPORTED\",(e,t,i=void 0)=>\".\"===t?`No \"exports\" main defined in ${e}package.json${i?` imported from ${i}`:\"\"}`:`Package subpath '${t}' is not defined by \"exports\" in ${e}package.json${i?` imported from ${i}`:\"\"}`,Error),Te.ERR_UNSUPPORTED_DIR_IMPORT=createError(\"ERR_UNSUPPORTED_DIR_IMPORT\",\"Directory import '%s' is not supported resolving ES modules imported from %s\",Error),Te.ERR_UNSUPPORTED_RESOLVE_REQUEST=createError(\"ERR_UNSUPPORTED_RESOLVE_REQUEST\",'Failed to resolve module specifier \"%s\" from \"%s\": Invalid relative URL or base scheme is not hierarchical.',TypeError),Te.ERR_UNKNOWN_FILE_EXTENSION=createError(\"ERR_UNKNOWN_FILE_EXTENSION\",(e,t)=>`Unknown file extension \"${e}\" for ${t}`,TypeError),Te.ERR_INVALID_ARG_VALUE=createError(\"ERR_INVALID_ARG_VALUE\",(e,t,i=\"is invalid\")=>{let s=(0,we.inspect)(t);s.length>128&&(s=`${s.slice(0,128)}...`);return`The ${e.includes(\".\")?\"property\":\"argument\"} '${e}' ${i}. Received ${s}`},TypeError);const Le=function(e){const t=\"__node_internal_\"+e.name;return Object.defineProperty(e,\"name\",{value:t}),e}(function(e){const t=isErrorStackTraceLimitWritable();return t&&(Ne=Error.stackTraceLimit,Error.stackTraceLimit=Number.POSITIVE_INFINITY),Error.captureStackTrace(e),t&&(Error.stackTraceLimit=Ne),e});const Oe={}.hasOwnProperty,{ERR_INVALID_PACKAGE_CONFIG:De}=Te,Ve=new Map;function read(e,{base:t,specifier:i}){const s=Ve.get(e);if(s)return s;let r;try{r=ue.readFileSync(Se.toNamespacedPath(e),\"utf8\")}catch(e){const t=e;if(\"ENOENT\"!==t.code)throw t}const n={exists:!1,pjsonPath:e,main:void 0,name:void 0,type:\"none\",exports:void 0,imports:void 0};if(void 0!==r){let s;try{s=JSON.parse(r)}catch(s){const r=s,n=new De(e,(t?`\"${i}\" from `:\"\")+(0,_e.fileURLToPath)(t||i),r.message);throw n.cause=r,n}n.exists=!0,Oe.call(s,\"name\")&&\"string\"==typeof s.name&&(n.name=s.name),Oe.call(s,\"main\")&&\"string\"==typeof s.main&&(n.main=s.main),Oe.call(s,\"exports\")&&(n.exports=s.exports),Oe.call(s,\"imports\")&&(n.imports=s.imports),!Oe.call(s,\"type\")||\"commonjs\"!==s.type&&\"module\"!==s.type||(n.type=s.type)}return Ve.set(e,n),n}function getPackageScopeConfig(e){let t=new URL(\"package.json\",e);for(;;){if(t.pathname.endsWith(\"node_modules/package.json\"))break;const i=read((0,_e.fileURLToPath)(t),{specifier:e});if(i.exists)return i;const s=t;if(t=new URL(\"../package.json\",t),t.pathname===s.pathname)break}return{pjsonPath:(0,_e.fileURLToPath)(t),exists:!1,type:\"none\"}}function getPackageType(e){return getPackageScopeConfig(e).type}const{ERR_UNKNOWN_FILE_EXTENSION:Ue}=Te,Me={}.hasOwnProperty,je={__proto__:null,\".cjs\":\"commonjs\",\".js\":\"module\",\".json\":\"json\",\".mjs\":\"module\"};const Fe={__proto__:null,\"data:\":function(e){const{1:t}=/^([^/]+\\/[^;,]+)[^,]*?(;base64)?,/.exec(e.pathname)||[null,null,null];return function(e){return e&&/\\s*(text|application)\\/javascript\\s*(;\\s*charset=utf-?8\\s*)?/i.test(e)?\"module\":\"application/json\"===e?\"json\":null}(t)},\"file:\":function(e,t,i){const s=function(e){const t=e.pathname;let i=t.length;for(;i--;){const e=t.codePointAt(i);if(47===e)return\"\";if(46===e)return 47===t.codePointAt(i-1)?\"\":t.slice(i)}return\"\"}(e);if(\".js\"===s){const t=getPackageType(e);return\"none\"!==t?t:\"commonjs\"}if(\"\"===s){const t=getPackageType(e);return\"none\"===t||\"commonjs\"===t?\"commonjs\":\"module\"}const r=je[s];if(r)return r;if(i)return;const n=(0,_e.fileURLToPath)(e);throw new Ue(s,n)},\"http:\":getHttpProtocolModuleFormat,\"https:\":getHttpProtocolModuleFormat,\"node:\":()=>\"builtin\"};function getHttpProtocolModuleFormat(){}const Be=RegExp.prototype[Symbol.replace],{ERR_INVALID_MODULE_SPECIFIER:$e,ERR_INVALID_PACKAGE_CONFIG:qe,ERR_INVALID_PACKAGE_TARGET:We,ERR_MODULE_NOT_FOUND:Ge,ERR_PACKAGE_IMPORT_NOT_DEFINED:He,ERR_PACKAGE_PATH_NOT_EXPORTED:Ke,ERR_UNSUPPORTED_DIR_IMPORT:ze,ERR_UNSUPPORTED_RESOLVE_REQUEST:Je}=Te,Ye={}.hasOwnProperty,Qe=/(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\\\|\\/|$)/i,Ze=/(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\\\|\\/|$)/i,Xe=/^\\.|%|\\\\/,et=/\\*/g,tt=/%2f|%5c/i,it=new Set,st=/[/\\\\]{2}/;function emitInvalidSegmentDeprecation(e,t,i,s,r,n,a){if(be.noDeprecation)return;const o=(0,_e.fileURLToPath)(s),h=null!==st.exec(a?e:t);be.emitWarning(`Use of deprecated ${h?\"double slash\":\"leading or trailing slash matching\"} resolving \"${e}\" for module request \"${t}\" ${t===i?\"\":`matched to \"${i}\" `}in the \"${r?\"imports\":\"exports\"}\" field module resolution of the package at ${o}${n?` imported from ${(0,_e.fileURLToPath)(n)}`:\"\"}.`,\"DeprecationWarning\",\"DEP0166\")}function emitLegacyIndexDeprecation(e,t,i,s){if(be.noDeprecation)return;const r=function(e,t){const i=e.protocol;return Me.call(Fe,i)&&Fe[i](e,t,!0)||null}(e,{parentURL:i.href});if(\"module\"!==r)return;const n=(0,_e.fileURLToPath)(e.href),a=(0,_e.fileURLToPath)(new _e.URL(\".\",t)),o=(0,_e.fileURLToPath)(i);s?Se.resolve(a,s)!==n&&be.emitWarning(`Package ${a} has a \"main\" field set to \"${s}\", excluding the full filename and extension to the resolved file at \"${n.slice(a.length)}\", imported from ${o}.\\n Automatic extension resolution of the \"main\" field is deprecated for ES modules.`,\"DeprecationWarning\",\"DEP0151\"):be.emitWarning(`No \"main\" or \"exports\" field defined in the package.json for ${a} resolving the main entry point \"${n.slice(a.length)}\", imported from ${o}.\\nDefault \"index\" lookups for the main are deprecated for ES modules.`,\"DeprecationWarning\",\"DEP0151\")}function tryStatSync(e){try{return(0,ue.statSync)(e)}catch{}}function fileExists(e){const t=(0,ue.statSync)(e,{throwIfNoEntry:!1}),i=t?t.isFile():void 0;return null!=i&&i}function legacyMainResolve(e,t,i){let s;if(void 0!==t.main){if(s=new _e.URL(t.main,e),fileExists(s))return s;const r=[`./${t.main}.js`,`./${t.main}.json`,`./${t.main}.node`,`./${t.main}/index.js`,`./${t.main}/index.json`,`./${t.main}/index.node`];let n=-1;for(;++n<r.length&&(s=new _e.URL(r[n],e),!fileExists(s));)s=void 0;if(s)return emitLegacyIndexDeprecation(s,e,i,t.main),s}const r=[\"./index.js\",\"./index.json\",\"./index.node\"];let n=-1;for(;++n<r.length&&(s=new _e.URL(r[n],e),!fileExists(s));)s=void 0;if(s)return emitLegacyIndexDeprecation(s,e,i,t.main),s;throw new Ge((0,_e.fileURLToPath)(new _e.URL(\".\",e)),(0,_e.fileURLToPath)(i))}function exportsNotFound(e,t,i){return new Ke((0,_e.fileURLToPath)(new _e.URL(\".\",t)),e,i&&(0,_e.fileURLToPath)(i))}function invalidPackageTarget(e,t,i,s,r){return t=\"object\"==typeof t&&null!==t?JSON.stringify(t,null,\"\"):`${t}`,new We((0,_e.fileURLToPath)(new _e.URL(\".\",i)),e,t,s,r&&(0,_e.fileURLToPath)(r))}function resolvePackageTargetString(e,t,i,s,r,n,a,o,h){if(\"\"!==t&&!n&&\"/\"!==e[e.length-1])throw invalidPackageTarget(i,e,s,a,r);if(!e.startsWith(\"./\")){if(a&&!e.startsWith(\"../\")&&!e.startsWith(\"/\")){let i=!1;try{new _e.URL(e),i=!0}catch{}if(!i){return packageResolve(n?Be.call(et,e,()=>t):e+t,s,h)}}throw invalidPackageTarget(i,e,s,a,r)}if(null!==Qe.exec(e.slice(2))){if(null!==Ze.exec(e.slice(2)))throw invalidPackageTarget(i,e,s,a,r);if(!o){const o=n?i.replace(\"*\",()=>t):i+t;emitInvalidSegmentDeprecation(n?Be.call(et,e,()=>t):e,o,i,s,a,r,!0)}}const c=new _e.URL(e,s),p=c.pathname,l=new _e.URL(\".\",s).pathname;if(!p.startsWith(l))throw invalidPackageTarget(i,e,s,a,r);if(\"\"===t)return c;if(null!==Qe.exec(t)){const h=n?i.replace(\"*\",()=>t):i+t;if(null===Ze.exec(t)){if(!o){emitInvalidSegmentDeprecation(n?Be.call(et,e,()=>t):e,h,i,s,a,r,!1)}}else!function(e,t,i,s,r){const n=`request is not a valid match in pattern \"${t}\" for the \"${s?\"imports\":\"exports\"}\" resolution of ${(0,_e.fileURLToPath)(i)}`;throw new $e(e,n,r&&(0,_e.fileURLToPath)(r))}(h,i,s,a,r)}return n?new _e.URL(Be.call(et,c.href,()=>t)):new _e.URL(t,c)}function isArrayIndex(e){const t=Number(e);return`${t}`===e&&(t>=0&&t<4294967295)}function resolvePackageTarget(e,t,i,s,r,n,a,o,h){if(\"string\"==typeof t)return resolvePackageTargetString(t,i,s,e,r,n,a,o,h);if(Array.isArray(t)){const c=t;if(0===c.length)return null;let p,l=-1;for(;++l<c.length;){const t=c[l];let u;try{u=resolvePackageTarget(e,t,i,s,r,n,a,o,h)}catch(e){if(p=e,\"ERR_INVALID_PACKAGE_TARGET\"===e.code)continue;throw e}if(void 0!==u){if(null!==u)return u;p=null}}if(null==p)return null;throw p}if(\"object\"==typeof t&&null!==t){const c=Object.getOwnPropertyNames(t);let p=-1;for(;++p<c.length;){if(isArrayIndex(c[p]))throw new qe((0,_e.fileURLToPath)(e),r,'\"exports\" cannot contain numeric property keys.')}for(p=-1;++p<c.length;){const l=c[p];if(\"default\"===l||h&&h.has(l)){const c=resolvePackageTarget(e,t[l],i,s,r,n,a,o,h);if(void 0===c)continue;return c}}return null}if(null===t)return null;throw invalidPackageTarget(s,t,e,a,r)}function emitTrailingSlashPatternDeprecation(e,t,i){if(be.noDeprecation)return;const s=(0,_e.fileURLToPath)(t);it.has(s+\"|\"+e)||(it.add(s+\"|\"+e),be.emitWarning(`Use of deprecated trailing slash pattern mapping \"${e}\" in the \"exports\" field module resolution of the package at ${s}${i?` imported from ${(0,_e.fileURLToPath)(i)}`:\"\"}. Mapping specifiers ending in \"/\" is no longer supported.`,\"DeprecationWarning\",\"DEP0155\"))}function packageExportsResolve(e,t,i,s,r){let n=i.exports;if(function(e,t,i){if(\"string\"==typeof e||Array.isArray(e))return!0;if(\"object\"!=typeof e||null===e)return!1;const s=Object.getOwnPropertyNames(e);let r=!1,n=0,a=-1;for(;++a<s.length;){const e=s[a],o=\"\"===e||\".\"!==e[0];if(0===n++)r=o;else if(r!==o)throw new qe((0,_e.fileURLToPath)(t),i,\"\\\"exports\\\" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.\")}return r}(n,e,s)&&(n={\".\":n}),Ye.call(n,t)&&!t.includes(\"*\")&&!t.endsWith(\"/\")){const i=resolvePackageTarget(e,n[t],\"\",t,s,!1,!1,!1,r);if(null==i)throw exportsNotFound(t,e,s);return i}let a=\"\",o=\"\";const h=Object.getOwnPropertyNames(n);let c=-1;for(;++c<h.length;){const i=h[c],r=i.indexOf(\"*\");if(-1!==r&&t.startsWith(i.slice(0,r))){t.endsWith(\"/\")&&emitTrailingSlashPatternDeprecation(t,e,s);const n=i.slice(r+1);t.length>=i.length&&t.endsWith(n)&&1===patternKeyCompare(a,i)&&i.lastIndexOf(\"*\")===r&&(a=i,o=t.slice(r,t.length-n.length))}}if(a){const i=resolvePackageTarget(e,n[a],o,a,s,!0,!1,t.endsWith(\"/\"),r);if(null==i)throw exportsNotFound(t,e,s);return i}throw exportsNotFound(t,e,s)}function patternKeyCompare(e,t){const i=e.indexOf(\"*\"),s=t.indexOf(\"*\"),r=-1===i?e.length:i+1,n=-1===s?t.length:s+1;return r>n?-1:n>r||-1===i?1:-1===s||e.length>t.length?-1:t.length>e.length?1:0}function packageImportsResolve(e,t,i){if(\"#\"===e||e.startsWith(\"#/\")||e.endsWith(\"/\")){throw new $e(e,\"is not a valid internal imports specifier name\",(0,_e.fileURLToPath)(t))}let s;const r=getPackageScopeConfig(t);if(r.exists){s=(0,_e.pathToFileURL)(r.pjsonPath);const n=r.imports;if(n)if(Ye.call(n,e)&&!e.includes(\"*\")){const r=resolvePackageTarget(s,n[e],\"\",e,t,!1,!0,!1,i);if(null!=r)return r}else{let r=\"\",a=\"\";const o=Object.getOwnPropertyNames(n);let h=-1;for(;++h<o.length;){const t=o[h],i=t.indexOf(\"*\");if(-1!==i&&e.startsWith(t.slice(0,-1))){const s=t.slice(i+1);e.length>=t.length&&e.endsWith(s)&&1===patternKeyCompare(r,t)&&t.lastIndexOf(\"*\")===i&&(r=t,a=e.slice(i,e.length-s.length))}}if(r){const e=resolvePackageTarget(s,n[r],a,r,t,!0,!0,!1,i);if(null!=e)return e}}}throw function(e,t,i){return new He(e,t&&(0,_e.fileURLToPath)(new _e.URL(\".\",t)),(0,_e.fileURLToPath)(i))}(e,s,t)}function packageResolve(e,t,i){if(le.builtinModules.includes(e))return new _e.URL(\"node:\"+e);const{packageName:s,packageSubpath:r,isScoped:n}=function(e,t){let i=e.indexOf(\"/\"),s=!0,r=!1;\"@\"===e[0]&&(r=!0,-1===i||0===e.length?s=!1:i=e.indexOf(\"/\",i+1));const n=-1===i?e:e.slice(0,i);if(null!==Xe.exec(n)&&(s=!1),!s)throw new $e(e,\"is not a valid package name\",(0,_e.fileURLToPath)(t));return{packageName:n,packageSubpath:\".\"+(-1===i?\"\":e.slice(i)),isScoped:r}}(e,t),a=getPackageScopeConfig(t);if(a.exists){const e=(0,_e.pathToFileURL)(a.pjsonPath);if(a.name===s&&void 0!==a.exports&&null!==a.exports)return packageExportsResolve(e,r,a,t,i)}let o,h=new _e.URL(\"./node_modules/\"+s+\"/package.json\",t),c=(0,_e.fileURLToPath)(h);do{const a=tryStatSync(c.slice(0,-13));if(!a||!a.isDirectory()){o=c,h=new _e.URL((n?\"../../../../node_modules/\":\"../../../node_modules/\")+s+\"/package.json\",h),c=(0,_e.fileURLToPath)(h);continue}const p=read(c,{base:t,specifier:e});return void 0!==p.exports&&null!==p.exports?packageExportsResolve(h,r,p,t,i):\".\"===r?legacyMainResolve(h,p,t):new _e.URL(r,h)}while(c.length!==o.length);throw new Ge(s,(0,_e.fileURLToPath)(t),!1)}function moduleResolve(e,t,i,s){const r=t.protocol,n=\"data:\"===r||\"http:\"===r||\"https:\"===r;let a;if(function(e){return\"\"!==e&&(\"/\"===e[0]||function(e){if(\".\"===e[0]){if(1===e.length||\"/\"===e[1])return!0;if(\".\"===e[1]&&(2===e.length||\"/\"===e[2]))return!0}return!1}(e))}(e))try{a=new _e.URL(e,t)}catch(i){const s=new Je(e,t);throw s.cause=i,s}else if(\"file:\"===r&&\"#\"===e[0])a=packageImportsResolve(e,t,i);else try{a=new _e.URL(e)}catch(s){if(n&&!le.builtinModules.includes(e)){const i=new Je(e,t);throw i.cause=s,i}a=packageResolve(e,t,i)}return Ee(void 0!==a,\"expected to be defined\"),\"file:\"!==a.protocol?a:function(e,t){if(null!==tt.exec(e.pathname))throw new $e(e.pathname,'must not include encoded \"/\" or \"\\\\\" characters',(0,_e.fileURLToPath)(t));let i;try{i=(0,_e.fileURLToPath)(e)}catch(i){const s=i;throw Object.defineProperty(s,\"input\",{value:String(e)}),Object.defineProperty(s,\"module\",{value:String(t)}),s}const s=tryStatSync(i.endsWith(\"/\")?i.slice(-1):i);if(s&&s.isDirectory()){const s=new ze(i,(0,_e.fileURLToPath)(t));throw s.url=String(e),s}if(!s||!s.isFile()){const s=new Ge(i||e.pathname,t&&(0,_e.fileURLToPath)(t),!0);throw s.url=String(e),s}{const t=(0,ue.realpathSync)(i),{search:s,hash:r}=e;(e=(0,_e.pathToFileURL)(t+(i.endsWith(Se.sep)?\"/\":\"\"))).search=s,e.hash=r}return e}(a,t)}function fileURLToPath(e){return\"string\"!=typeof e||e.startsWith(\"file://\")?normalizeSlash((0,_e.fileURLToPath)(e)):normalizeSlash(e)}function pathToFileURL(e){return(0,_e.pathToFileURL)(fileURLToPath(e)).toString()}const rt=new Set([\"node\",\"import\"]),nt=[\".mjs\",\".cjs\",\".js\",\".json\"],at=new Set([\"ERR_MODULE_NOT_FOUND\",\"ERR_UNSUPPORTED_DIR_IMPORT\",\"MODULE_NOT_FOUND\",\"ERR_PACKAGE_PATH_NOT_EXPORTED\"]);function _tryModuleResolve(e,t,i){try{return moduleResolve(e,t,i)}catch(e){if(!at.has(e?.code))throw e}}function _resolve(e,t={}){if(\"string\"!=typeof e){if(!(e instanceof URL))throw new TypeError(\"input must be a `string` or `URL`\");e=fileURLToPath(e)}if(/(?:node|data|http|https):/.test(e))return e;if(Ie.has(e))return\"node:\"+e;if(e.startsWith(\"file://\")&&(e=fileURLToPath(e)),isAbsolute(e))try{if((0,ue.statSync)(e).isFile())return pathToFileURL(e)}catch(e){if(\"ENOENT\"!==e?.code)throw e}const i=t.conditions?new Set(t.conditions):rt,s=(Array.isArray(t.url)?t.url:[t.url]).filter(Boolean).map(e=>new URL(function(e){return\"string\"!=typeof e&&(e=e.toString()),/(?:node|data|http|https|file):/.test(e)?e:Ie.has(e)?\"node:\"+e:\"file://\"+encodeURI(normalizeSlash(e))}(e.toString())));0===s.length&&s.push(new URL(pathToFileURL(process.cwd())));const r=[...s];for(const e of s)\"file:\"===e.protocol&&r.push(new URL(\"./\",e),new URL(dist_joinURL(e.pathname,\"_index.js\"),e),new URL(\"node_modules\",e));let n;for(const s of r){if(n=_tryModuleResolve(e,s,i),n)break;for(const r of[\"\",\"/index\"]){for(const a of t.extensions||nt)if(n=_tryModuleResolve(dist_joinURL(e,r)+a,s,i),n)break;if(n)break}if(n)break}if(!n){const t=new Error(`Cannot find module ${e} imported from ${r.join(\", \")}`);throw t.code=\"ERR_MODULE_NOT_FOUND\",t}return pathToFileURL(n)}function resolveSync(e,t){return _resolve(e,t)}function resolvePathSync(e,t){return fileURLToPath(resolveSync(e,t))}const ot=/(?:[\\s;]|^)(?:import[\\s\\w*,{}]*from|import\\s*[\"'*{]|export\\b\\s*(?:[*{]|default|class|type|function|const|var|let|async function)|import\\.meta\\b)/m,ht=/\\/\\*.+?\\*\\/|\\/\\/.*(?=[nr])/g;function hasESMSyntax(e,t={}){return t.stripComments&&(e=e.replace(ht,\"\")),ot.test(e)}function escapeStringRegexp(e){if(\"string\"!=typeof e)throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}const ct=new Set([\"/\",\"\\\\\",void 0]),pt=Symbol.for(\"pathe:normalizedAlias\"),lt=/[/\\\\]/;function normalizeAliases(e){if(e[pt])return e;const t=Object.fromEntries(Object.entries(e).sort(([e],[t])=>function(e,t){return t.split(\"/\").length-e.split(\"/\").length}(e,t)));for(const e in t)for(const i in t)i===e||e.startsWith(i)||t[e]?.startsWith(i)&&ct.has(t[e][i.length])&&(t[e]=t[i]+t[e].slice(i.length));return Object.defineProperty(t,pt,{value:!0,enumerable:!1}),t}function utils_hasTrailingSlash(e=\"/\"){const t=e[e.length-1];return\"/\"===t||\"\\\\\"===t}var ut={rE:\"2.6.1\"};const dt=require(\"node:crypto\");var ft=__webpack_require__.n(dt);const mt=Object.create(null),dist_i=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?mt:globalThis),gt=new Proxy(mt,{get:(e,t)=>dist_i()[t]??mt[t],has:(e,t)=>t in dist_i()||t in mt,set:(e,t,i)=>(dist_i(!0)[t]=i,!0),deleteProperty(e,t){if(!t)return!1;return delete dist_i(!0)[t],!0},ownKeys(){const e=dist_i(!0);return Object.keys(e)}}),xt=typeof process<\"u\"&&process.env&&process.env.NODE_ENV||\"\",vt=[[\"APPVEYOR\"],[\"AWS_AMPLIFY\",\"AWS_APP_ID\",{ci:!0}],[\"AZURE_PIPELINES\",\"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI\"],[\"AZURE_STATIC\",\"INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN\"],[\"APPCIRCLE\",\"AC_APPCIRCLE\"],[\"BAMBOO\",\"bamboo_planKey\"],[\"BITBUCKET\",\"BITBUCKET_COMMIT\"],[\"BITRISE\",\"BITRISE_IO\"],[\"BUDDY\",\"BUDDY_WORKSPACE_ID\"],[\"BUILDKITE\"],[\"CIRCLE\",\"CIRCLECI\"],[\"CIRRUS\",\"CIRRUS_CI\"],[\"CLOUDFLARE_PAGES\",\"CF_PAGES\",{ci:!0}],[\"CLOUDFLARE_WORKERS\",\"WORKERS_CI\",{ci:!0}],[\"CODEBUILD\",\"CODEBUILD_BUILD_ARN\"],[\"CODEFRESH\",\"CF_BUILD_ID\"],[\"DRONE\"],[\"DRONE\",\"DRONE_BUILD_EVENT\"],[\"DSARI\"],[\"GITHUB_ACTIONS\"],[\"GITLAB\",\"GITLAB_CI\"],[\"GITLAB\",\"CI_MERGE_REQUEST_ID\"],[\"GOCD\",\"GO_PIPELINE_LABEL\"],[\"LAYERCI\"],[\"HUDSON\",\"HUDSON_URL\"],[\"JENKINS\",\"JENKINS_URL\"],[\"MAGNUM\"],[\"NETLIFY\"],[\"NETLIFY\",\"NETLIFY_LOCAL\",{ci:!1}],[\"NEVERCODE\"],[\"RENDER\"],[\"SAIL\",\"SAILCI\"],[\"SEMAPHORE\"],[\"SCREWDRIVER\"],[\"SHIPPABLE\"],[\"SOLANO\",\"TDDIUM\"],[\"STRIDER\"],[\"TEAMCITY\",\"TEAMCITY_VERSION\"],[\"TRAVIS\"],[\"VERCEL\",\"NOW_BUILDER\"],[\"VERCEL\",\"VERCEL\",{ci:!1}],[\"VERCEL\",\"VERCEL_ENV\",{ci:!1}],[\"APPCENTER\",\"APPCENTER_BUILD_ID\"],[\"CODESANDBOX\",\"CODESANDBOX_SSE\",{ci:!1}],[\"CODESANDBOX\",\"CODESANDBOX_HOST\",{ci:!1}],[\"STACKBLITZ\"],[\"STORMKIT\"],[\"CLEAVR\"],[\"ZEABUR\"],[\"CODESPHERE\",\"CODESPHERE_APP_ID\",{ci:!0}],[\"RAILWAY\",\"RAILWAY_PROJECT_ID\"],[\"RAILWAY\",\"RAILWAY_SERVICE_ID\"],[\"DENO-DEPLOY\",\"DENO_DEPLOYMENT_ID\"],[\"FIREBASE_APP_HOSTING\",\"FIREBASE_APP_HOSTING\",{ci:!0}]];const yt=function(){if(globalThis.process?.env)for(const e of vt){const t=e[1]||e[0];if(globalThis.process?.env[t])return{name:e[0].toLowerCase(),...e[2]}}return\"/bin/jsh\"===globalThis.process?.env?.SHELL&&globalThis.process?.versions?.webcontainer?{name:\"stackblitz\",ci:!1}:{name:\"\",ci:!1}}();yt.name;function std_env_dist_n(e){return!!e&&\"false\"!==e}const _t=globalThis.process?.platform||\"\",Et=std_env_dist_n(gt.CI)||!1!==yt.ci,bt=std_env_dist_n(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),St=(std_env_dist_n(gt.DEBUG),\"test\"===xt||std_env_dist_n(gt.TEST)),kt=(std_env_dist_n(gt.MINIMAL),/^win/i.test(_t)),wt=(/^linux/i.test(_t),/^darwin/i.test(_t),!std_env_dist_n(gt.NO_COLOR)&&(std_env_dist_n(gt.FORCE_COLOR)||(bt||kt)&&gt.TERM),(globalThis.process?.versions?.node||\"\").replace(/^v/,\"\")||null),It=(Number(wt?.split(\".\")[0]),globalThis.process||Object.create(null)),Ct={versions:{}},Rt=(new Proxy(It,{get:(e,t)=>\"env\"===t?gt:t in e?e[t]:t in Ct?Ct[t]:void 0}),\"node\"===globalThis.process?.release?.name),Pt=!!globalThis.Bun||!!globalThis.process?.versions?.bun,Tt=!!globalThis.Deno,At=!!globalThis.fastly,Nt=[[!!globalThis.Netlify,\"netlify\"],[!!globalThis.EdgeRuntime,\"edge-light\"],[\"Cloudflare-Workers\"===globalThis.navigator?.userAgent,\"workerd\"],[At,\"fastly\"],[Tt,\"deno\"],[Pt,\"bun\"],[Rt,\"node\"]];!function(){const e=Nt.find(e=>e[0]);if(e)e[1]}();const Lt=require(\"node:tty\"),Ot=Lt?.WriteStream?.prototype?.hasColors?.()??!1,base_format=(e,t)=>{if(!Ot)return e=>e;const i=`\u001b[${e}m`,s=`\u001b[${t}m`;return e=>{const r=e+\"\";let n=r.indexOf(s);if(-1===n)return i+r+s;let a=i,o=0;const h=(22===t?s:\"\")+i;for(;-1!==n;)a+=r.slice(o,n)+h,o=n+s.length,n=r.indexOf(s,o);return a+=r.slice(o)+s,a}},Dt=(base_format(0,0),base_format(1,22),base_format(2,22),base_format(3,23),base_format(4,24),base_format(53,55),base_format(7,27),base_format(8,28),base_format(9,29),base_format(30,39),base_format(31,39)),Vt=base_format(32,39),Ut=base_format(33,39),Mt=base_format(34,39),jt=(base_format(35,39),base_format(36,39)),Ft=(base_format(37,39),base_format(90,39));base_format(40,49),base_format(41,49),base_format(42,49),base_format(43,49),base_format(44,49),base_format(45,49),base_format(46,49),base_format(47,49),base_format(100,49),base_format(91,39),base_format(92,39),base_format(93,39),base_format(94,39),base_format(95,39),base_format(96,39),base_format(97,39),base_format(101,49),base_format(102,49),base_format(103,49),base_format(104,49),base_format(105,49),base_format(106,49),base_format(107,49);function isDir(e){if(\"string\"!=typeof e||e.startsWith(\"file://\"))return!1;try{return(0,ue.lstatSync)(e).isDirectory()}catch{return!1}}function utils_hash(e,t=8){return(function(){if(void 0!==$t)return $t;try{return $t=!!ft().getFips?.(),$t}catch{return $t=!1,$t}}()?ft().createHash(\"sha256\"):ft().createHash(\"md5\")).update(e).digest(\"hex\").slice(0,t)}const Bt={true:Vt(\"true\"),false:Ut(\"false\"),\"[rebuild]\":Ut(\"[rebuild]\"),\"[esm]\":Mt(\"[esm]\"),\"[cjs]\":Vt(\"[cjs]\"),\"[import]\":Mt(\"[import]\"),\"[require]\":Vt(\"[require]\"),\"[native]\":jt(\"[native]\"),\"[transpile]\":Ut(\"[transpile]\"),\"[fallback]\":Dt(\"[fallback]\"),\"[unknown]\":Dt(\"[unknown]\"),\"[hit]\":Vt(\"[hit]\"),\"[miss]\":Ut(\"[miss]\"),\"[json]\":Vt(\"[json]\"),\"[data]\":Vt(\"[data]\")};function debug(e,...t){if(!e.opts.debug)return;const i=process.cwd();console.log(Ft([\"[jiti]\",...t.map(e=>e in Bt?Bt[e]:\"string\"!=typeof e?JSON.stringify(e):e.replace(i,\".\"))].join(\" \")))}function jitiInteropDefault(e,t){return e.opts.interopDefault?function(e){const t=typeof e;if(null===e||\"object\"!==t&&\"function\"!==t)return e;const i=e.default,s=typeof i,r=null==i,n=\"object\"===s||\"function\"===s;if(r&&e instanceof Promise)return e;return new Proxy(e,{get(t,s,a){if(\"__esModule\"===s)return!0;if(\"default\"===s)return r?e:\"function\"==typeof i?.default&&e.__esModule?i.default:i;if(Reflect.has(t,s))return Reflect.get(t,s,a);if(n&&!(i instanceof Promise)){let e=Reflect.get(i,s,a);return\"function\"==typeof e&&(e=e.bind(i)),e}},apply:(e,t,r)=>\"function\"==typeof e?Reflect.apply(e,t,r):\"function\"===s?Reflect.apply(i,t,r):void 0})}(t):t}let $t;function _booleanEnv(e,t){const i=_jsonEnv(e,t);return Boolean(i)}function _jsonEnv(e,t){const i=process.env[e];if(!(e in process.env))return t;try{return JSON.parse(i)}catch{return t}}const qt=/\\.(c|m)?j(sx?)$/,Wt=/\\.(c|m)?t(sx?)$/;function jitiResolve(e,t,i){let s,r;if(e.isNativeRe.test(t))return t;e.alias&&(t=function(e,t){const i=pathe_M_eThtNZ_normalizeWindowsPath(e);t=normalizeAliases(t);for(const[e,s]of Object.entries(t)){if(!i.startsWith(e))continue;const t=utils_hasTrailingSlash(e)?e.slice(0,-1):e;if(utils_hasTrailingSlash(i[t.length]))return pathe_M_eThtNZ_join(s,i.slice(e.length))}return i}(t,e.alias));let n=i?.parentURL||e.url;isDir(n)&&(n=pathe_M_eThtNZ_join(n,\"_index.js\"));const a=(i?.async?[i?.conditions,[\"node\",\"import\"],[\"node\",\"require\"]]:[i?.conditions,[\"node\",\"require\"],[\"node\",\"import\"]]).filter(Boolean);for(const i of a){try{s=resolvePathSync(t,{url:n,conditions:i,extensions:e.opts.extensions})}catch(e){r=e}if(s)return s}try{return e.nativeRequire.resolve(t,{paths:i.paths})}catch(e){r=e}for(const r of e.additionalExts){if(s=tryNativeRequireResolve(e,t+r,n,i)||tryNativeRequireResolve(e,t+\"/index\"+r,n,i),s)return s;if((Wt.test(e.filename)||Wt.test(e.parentModule?.filename||\"\")||qt.test(t))&&(s=tryNativeRequireResolve(e,t.replace(qt,\".$1t$2\"),n,i),s))return s}if(!i?.try)throw r}function tryNativeRequireResolve(e,t,i,s){try{return e.nativeRequire.resolve(t,{...s,paths:[pathe_M_eThtNZ_dirname(fileURLToPath(i)),...s?.paths||[]]})}catch{}}const Gt=require(\"node:perf_hooks\"),Ht=require(\"node:vm\");var Kt=__webpack_require__.n(Ht);function jitiRequire(e,t,i){const s=e.parentCache||{};if(t.startsWith(\"node:\"))return nativeImportOrRequire(e,t,i.async);if(t.startsWith(\"file:\"))t=(0,_e.fileURLToPath)(t);else if(t.startsWith(\"data:\")){if(!i.async)throw new Error(\"`data:` URLs are only supported in ESM context. Use `import` or `jiti.import` instead.\");return debug(e,\"[native]\",\"[data]\",\"[import]\",t),nativeImportOrRequire(e,t,!0)}if(le.builtinModules.includes(t)||\".pnp.js\"===t)return nativeImportOrRequire(e,t,i.async);if(e.opts.tryNative&&!e.opts.transformOptions)try{if(!(t=jitiResolve(e,t,i))&&i.try)return;if(debug(e,\"[try-native]\",i.async&&e.nativeImport?\"[import]\":\"[require]\",t),i.async&&e.nativeImport)return e.nativeImport(t).then(i=>(!1===e.opts.moduleCache&&delete e.nativeRequire.cache[t],jitiInteropDefault(e,i)));{const i=e.nativeRequire(t);return!1===e.opts.moduleCache&&delete e.nativeRequire.cache[t],jitiInteropDefault(e,i)}}catch(i){debug(e,`[try-native] Using fallback for ${t} because of an error:`,i)}const r=jitiResolve(e,t,i);if(!r&&i.try)return;const n=extname(r);if(\".json\"===n){debug(e,\"[json]\",r);const t=e.nativeRequire(r);return t&&!(\"default\"in t)&&Object.defineProperty(t,\"default\",{value:t,enumerable:!1}),t}if(n&&!e.opts.extensions.includes(n))return debug(e,\"[native]\",\"[unknown]\",i.async?\"[import]\":\"[require]\",r),nativeImportOrRequire(e,r,i.async);if(e.isNativeRe.test(r))return debug(e,\"[native]\",i.async?\"[import]\":\"[require]\",r),nativeImportOrRequire(e,r,i.async);if(s[r])return jitiInteropDefault(e,s[r]?.exports);if(e.opts.moduleCache){const t=e.nativeRequire.cache[r];if(t?.loaded)return jitiInteropDefault(e,t.exports)}const a=(0,ue.readFileSync)(r,\"utf8\");return eval_evalModule(e,a,{id:t,filename:r,ext:n,cache:s,async:i.async})}function nativeImportOrRequire(e,t,i){return i&&e.nativeImport?e.nativeImport(function(e){return kt&&isAbsolute(e)?pathToFileURL(e):e}(t)).then(t=>jitiInteropDefault(e,t)):jitiInteropDefault(e,e.nativeRequire(t))}const zt=\"9\";function getCache(e,t,i){if(!e.opts.fsCache||!t.filename)return i();const s=` /* v${zt}-${utils_hash(t.source,16)} */\\n`;let r=`${basename(pathe_M_eThtNZ_dirname(t.filename))}-${function(e){const t=e.split(lt).pop();if(!t)return;const i=t.lastIndexOf(\".\");return i<=0?t:t.slice(0,i)}(t.filename)}`+(e.opts.sourceMaps?\"+map\":\"\")+(t.interopDefault?\".i\":\"\")+`.${utils_hash(t.filename)}`+(t.async?\".mjs\":\".cjs\");t.jsx&&t.filename.endsWith(\"x\")&&(r+=\"x\");const n=e.opts.fsCache,a=pathe_M_eThtNZ_join(n,r);if(!e.opts.rebuildFsCache&&(0,ue.existsSync)(a)){const i=(0,ue.readFileSync)(a,\"utf8\");if(i.endsWith(s))return debug(e,\"[cache]\",\"[hit]\",t.filename,\"~>\",a),i}debug(e,\"[cache]\",\"[miss]\",t.filename);const o=i();return o.includes(\"__JITI_ERROR__\")||((0,ue.writeFileSync)(a,o+s,\"utf8\"),debug(e,\"[cache]\",\"[store]\",t.filename,\"~>\",a)),o}function prepareCacheDir(t){if(!0===t.opts.fsCache&&(t.opts.fsCache=function(t){const i=t.filename&&pathe_M_eThtNZ_resolve(t.filename,\"../node_modules\");if(i&&(0,ue.existsSync)(i))return pathe_M_eThtNZ_join(i,\".cache/jiti\");let s=(0,e.tmpdir)();if(process.env.TMPDIR&&s===process.cwd()&&!process.env.JITI_RESPECT_TMPDIR_ENV){const t=process.env.TMPDIR;delete process.env.TMPDIR,s=(0,e.tmpdir)(),process.env.TMPDIR=t}return pathe_M_eThtNZ_join(s,\"jiti\")}(t)),t.opts.fsCache)try{if((0,ue.mkdirSync)(t.opts.fsCache,{recursive:!0}),!function(e){try{return(0,ue.accessSync)(e,ue.constants.W_OK),!0}catch{return!1}}(t.opts.fsCache))throw new Error(\"directory is not writable!\")}catch(e){debug(t,\"Error creating cache directory at \",t.opts.fsCache,e),t.opts.fsCache=!1}}function transform(e,t){let i=getCache(e,t,()=>{const i=e.opts.transform({...e.opts.transformOptions,babel:{...e.opts.sourceMaps?{sourceFileName:t.filename,sourceMaps:\"inline\"}:{},...e.opts.transformOptions?.babel},interopDefault:e.opts.interopDefault,...t});return i.error&&e.opts.debug&&debug(e,i.error),i.code});return i.startsWith(\"#!\")&&(i=\"// \"+i),i}function eval_evalModule(e,t,i={}){const s=i.id||(i.filename?basename(i.filename):`_jitiEval.${i.ext||(i.async?\"mjs\":\"js\")}`),r=i.filename||jitiResolve(e,s,{async:i.async}),n=i.ext||extname(r),a=i.cache||e.parentCache||{},o=/\\.[cm]?tsx?$/.test(n),h=\".mjs\"===n||\".js\"===n&&\"module\"===function(e){for(;e&&\".\"!==e&&\"/\"!==e;){e=pathe_M_eThtNZ_join(e,\"..\");try{const t=(0,ue.readFileSync)(pathe_M_eThtNZ_join(e,\"package.json\"),\"utf8\");try{return JSON.parse(t)}catch{}break}catch{}}}(r)?.type,c=\".cjs\"===n,p=i.forceTranspile??(!c&&!(h&&i.async)&&(o||h||e.isTransformRe.test(r)||hasESMSyntax(t))),l=Gt.performance.now();if(p){t=transform(e,{filename:r,source:t,ts:o,async:i.async??!1,jsx:e.opts.jsx});const s=Math.round(1e3*(Gt.performance.now()-l))/1e3;debug(e,\"[transpile]\",i.async?\"[esm]\":\"[cjs]\",r,`(${s}ms)`)}else{if(debug(e,\"[native]\",i.async?\"[import]\":\"[require]\",r),i.async)return Promise.resolve(nativeImportOrRequire(e,r,i.async)).catch(s=>(debug(e,\"Native import error:\",s),debug(e,\"[fallback]\",r),eval_evalModule(e,t,{...i,forceTranspile:!0})));try{return nativeImportOrRequire(e,r,i.async)}catch(s){debug(e,\"Native require error:\",s),debug(e,\"[fallback]\",r),t=transform(e,{filename:r,source:t,ts:o,async:i.async??!1,jsx:e.opts.jsx})}}const u=new le.Module(r);u.filename=r,e.parentModule&&(u.parent=e.parentModule,Array.isArray(e.parentModule.children)&&!e.parentModule.children.includes(u)&&e.parentModule.children.push(u));const d=createJiti(r,e.opts,{parentModule:u,parentCache:a,nativeImport:e.nativeImport,onError:e.onError,createRequire:e.createRequire},!0);let f;u.require=d,u.path=pathe_M_eThtNZ_dirname(r),u.paths=le.Module._nodeModulePaths(u.path),a[r]=u,e.opts.moduleCache&&(e.nativeRequire.cache[r]=u);const m=function(e,t){return`(${t?.async?\"async \":\"\"}function (exports, require, module, __filename, __dirname, jitiImport, jitiESMResolve) { ${e}\\n});`}(t,{async:i.async});try{f=Kt().runInThisContext(m,{filename:r,lineOffset:0,displayErrors:!1})}catch(t){\"SyntaxError\"===t.name&&i.async&&e.nativeImport?(debug(e,\"[esm]\",\"[import]\",\"[fallback]\",r),f=function(e,t){const i=`data:text/javascript;base64,${Buffer.from(`export default ${e}`).toString(\"base64\")}`;return(...e)=>t(i).then(t=>t.default(...e))}(m,e.nativeImport)):(e.opts.moduleCache&&delete e.nativeRequire.cache[r],e.onError(t))}let g;try{g=f(u.exports,u.require,u,u.filename,pathe_M_eThtNZ_dirname(u.filename),d.import,d.esmResolve)}catch(t){e.opts.moduleCache&&delete e.nativeRequire.cache[r],e.onError(t)}function next(){if(u.exports&&u.exports.__JITI_ERROR__){const{filename:t,line:i,column:s,code:r,message:n}=u.exports.__JITI_ERROR__,a=new Error(`${r}: ${n} \\n ${`${t}:${i}:${s}`}`);Error.captureStackTrace(a,jitiRequire),e.onError(a)}u.loaded=!0;return jitiInteropDefault(e,u.exports)}return i.async?Promise.resolve(g).then(next):next()}const Jt=\"win32\"===(0,e.platform)();function createJiti(e,t={},i,s=!1){const r=s?t:function(e){const t={fsCache:_booleanEnv(\"JITI_FS_CACHE\",_booleanEnv(\"JITI_CACHE\",!0)),rebuildFsCache:_booleanEnv(\"JITI_REBUILD_FS_CACHE\",!1),moduleCache:_booleanEnv(\"JITI_MODULE_CACHE\",_booleanEnv(\"JITI_REQUIRE_CACHE\",!0)),debug:_booleanEnv(\"JITI_DEBUG\",!1),sourceMaps:_booleanEnv(\"JITI_SOURCE_MAPS\",!1),interopDefault:_booleanEnv(\"JITI_INTEROP_DEFAULT\",!0),extensions:_jsonEnv(\"JITI_EXTENSIONS\",[\".js\",\".mjs\",\".cjs\",\".ts\",\".tsx\",\".mts\",\".cts\",\".mtsx\",\".ctsx\"]),alias:_jsonEnv(\"JITI_ALIAS\",{}),nativeModules:_jsonEnv(\"JITI_NATIVE_MODULES\",[]),transformModules:_jsonEnv(\"JITI_TRANSFORM_MODULES\",[]),tryNative:_jsonEnv(\"JITI_TRY_NATIVE\",\"Bun\"in globalThis),jsx:_booleanEnv(\"JITI_JSX\",!1)};t.jsx&&t.extensions.push(\".jsx\",\".tsx\");const i={};return void 0!==e.cache&&(i.fsCache=e.cache),void 0!==e.requireCache&&(i.moduleCache=e.requireCache),{...t,...i,...e}}(t),n=r.alias&&Object.keys(r.alias).length>0?normalizeAliases(r.alias||{}):void 0,a=[\"typescript\",\"jiti\",...r.nativeModules||[]],o=new RegExp(`node_modules/(${a.map(e=>escapeStringRegexp(e)).join(\"|\")})/`),h=[...r.transformModules||[]],c=new RegExp(`node_modules/(${h.map(e=>escapeStringRegexp(e)).join(\"|\")})/`);e||(e=process.cwd()),!s&&isDir(e)&&(e=pathe_M_eThtNZ_join(e,\"_index.js\"));const p=pathToFileURL(e),l=[...r.extensions].filter(e=>\".js\"!==e),u=i.createRequire(Jt?e.replace(/\\//g,\"\\\\\"):e),d={filename:e,url:p,opts:r,alias:n,nativeModules:a,transformModules:h,isNativeRe:o,isTransformRe:c,additionalExts:l,nativeRequire:u,onError:i.onError,parentModule:i.parentModule,parentCache:i.parentCache,nativeImport:i.nativeImport,createRequire:i.createRequire};s||debug(d,\"[init]\",...[[\"version:\",ut.rE],[\"module-cache:\",r.moduleCache],[\"fs-cache:\",r.fsCache],[\"rebuild-fs-cache:\",r.rebuildFsCache],[\"interop-defaults:\",r.interopDefault]].flat()),s||prepareCacheDir(d);const f=Object.assign(function(e){return jitiRequire(d,e,{async:!1})},{cache:r.moduleCache?u.cache:Object.create(null),extensions:u.extensions,main:u.main,options:r,resolve:Object.assign(function(e){return jitiResolve(d,e,{async:!1})},{paths:u.resolve.paths}),transform:e=>transform(d,e),evalModule:(e,t)=>eval_evalModule(d,e,t),async import(e,t){const i=await jitiRequire(d,e,{...t,async:!0});return t?.default?i?.default??i:i},esmResolve(e,t){\"string\"==typeof t&&(t={parentURL:t});const i=jitiResolve(d,e,{parentURL:p,...t,async:!0});return!i||\"string\"!=typeof i||i.startsWith(\"file://\")?i:pathToFileURL(i)}});return f}})(),module.exports=i.default})();","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/**\n * @template T\n * @typedef {() => T} FunctionReturning\n */\n\n/**\n * @template T\n * @param {FunctionReturning<T>} fn memorized function\n * @returns {FunctionReturning<T>} new function\n */\nconst memoize = (fn) => {\n\tlet cache = false;\n\t/** @type {T | undefined} */\n\tlet result;\n\treturn () => {\n\t\tif (cache) {\n\t\t\treturn /** @type {T} */ (result);\n\t\t}\n\n\t\tresult = fn();\n\t\tcache = true;\n\t\t// Allow to clean up memory for fn\n\t\t// and all dependent resources\n\t\t/** @type {FunctionReturning<T> | undefined} */\n\t\t(fn) = undefined;\n\t\treturn /** @type {T} */ (result);\n\t};\n};\n\nmodule.exports = memoize;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n// eslint-disable-next-line n/prefer-global/process\nconst { nextTick } = require(\"process\");\n\n/** @typedef {import(\"./Resolver\").FileSystem} FileSystem */\n/** @typedef {import(\"./Resolver\").PathLike} PathLike */\n/** @typedef {import(\"./Resolver\").PathOrFileDescriptor} PathOrFileDescriptor */\n/** @typedef {import(\"./Resolver\").SyncFileSystem} SyncFileSystem */\n/** @typedef {FileSystem & SyncFileSystem} BaseFileSystem */\n\n/**\n * @template T\n * @typedef {import(\"./Resolver\").FileSystemCallback<T>} FileSystemCallback<T>\n */\n\n/**\n * @param {string} path path\n * @returns {string} dirname\n */\nconst dirname = (path) => {\n\tlet idx = path.length - 1;\n\twhile (idx >= 0) {\n\t\tconst char = path.charCodeAt(idx);\n\t\t// slash or backslash\n\t\tif (char === 47 || char === 92) break;\n\t\tidx--;\n\t}\n\tif (idx < 0) return \"\";\n\treturn path.slice(0, idx);\n};\n\n/**\n * @template T\n * @param {FileSystemCallback<T>[]} callbacks callbacks\n * @param {Error | null} err error\n * @param {T} result result\n */\nconst runCallbacks = (callbacks, err, result) => {\n\tif (callbacks.length === 1) {\n\t\tcallbacks[0](err, result);\n\t\tcallbacks.length = 0;\n\t\treturn;\n\t}\n\tlet error;\n\tfor (const callback of callbacks) {\n\t\ttry {\n\t\t\tcallback(err, result);\n\t\t} catch (err) {\n\t\t\tif (!error) error = err;\n\t\t}\n\t}\n\tcallbacks.length = 0;\n\tif (error) throw error;\n};\n\n// eslint-disable-next-line jsdoc/reject-function-type\n/** @typedef {Function} EXPECTED_FUNCTION */\n// eslint-disable-next-line jsdoc/reject-any-type\n/** @typedef {any} EXPECTED_ANY */\n\nclass OperationMergerBackend {\n\t/**\n\t * @param {EXPECTED_FUNCTION | undefined} provider async method in filesystem\n\t * @param {EXPECTED_FUNCTION | undefined} syncProvider sync method in filesystem\n\t * @param {BaseFileSystem} providerContext call context for the provider methods\n\t */\n\tconstructor(provider, syncProvider, providerContext) {\n\t\tthis._provider = provider;\n\t\tthis._syncProvider = syncProvider;\n\t\tthis._providerContext = providerContext;\n\t\tthis._activeAsyncOperations = new Map();\n\n\t\tthis.provide = this._provider\n\t\t\t? // Comment to align jsdoc\n\t\t\t\t/**\n\t\t\t\t * @param {PathLike | PathOrFileDescriptor} path path\n\t\t\t\t * @param {object | FileSystemCallback<EXPECTED_ANY> | undefined} options options\n\t\t\t\t * @param {FileSystemCallback<EXPECTED_ANY>=} callback callback\n\t\t\t\t * @returns {EXPECTED_ANY} result\n\t\t\t\t */\n\t\t\t\t(path, options, callback) => {\n\t\t\t\t\tif (typeof options === \"function\") {\n\t\t\t\t\t\tcallback =\n\t\t\t\t\t\t\t/** @type {FileSystemCallback<EXPECTED_ANY>} */\n\t\t\t\t\t\t\t(options);\n\t\t\t\t\t\toptions = undefined;\n\t\t\t\t\t}\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof path !== \"string\" &&\n\t\t\t\t\t\t!Buffer.isBuffer(path) &&\n\t\t\t\t\t\t!(path instanceof URL) &&\n\t\t\t\t\t\ttypeof path !== \"number\"\n\t\t\t\t\t) {\n\t\t\t\t\t\t/** @type {EXPECTED_FUNCTION} */\n\t\t\t\t\t\t(callback)(\n\t\t\t\t\t\t\tnew TypeError(\"path must be a string, Buffer, URL or number\"),\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (options) {\n\t\t\t\t\t\treturn /** @type {EXPECTED_FUNCTION} */ (this._provider).call(\n\t\t\t\t\t\t\tthis._providerContext,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tcallback,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tlet callbacks = this._activeAsyncOperations.get(path);\n\t\t\t\t\tif (callbacks) {\n\t\t\t\t\t\tcallbacks.push(callback);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis._activeAsyncOperations.set(path, (callbacks = [callback]));\n\t\t\t\t\t/** @type {EXPECTED_FUNCTION} */\n\t\t\t\t\t(provider)(\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * @param {Error} err error\n\t\t\t\t\t\t * @param {EXPECTED_ANY} result result\n\t\t\t\t\t\t */\n\t\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\t\tthis._activeAsyncOperations.delete(path);\n\t\t\t\t\t\t\trunCallbacks(callbacks, err, result);\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t: null;\n\t\tthis.provideSync = this._syncProvider\n\t\t\t? // Comment to align jsdoc\n\t\t\t\t/**\n\t\t\t\t * @param {PathLike | PathOrFileDescriptor} path path\n\t\t\t\t * @param {object=} options options\n\t\t\t\t * @returns {EXPECTED_ANY} result\n\t\t\t\t */\n\t\t\t\t(path, options) =>\n\t\t\t\t\t/** @type {EXPECTED_FUNCTION} */ (this._syncProvider).call(\n\t\t\t\t\t\tthis._providerContext,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t)\n\t\t\t: null;\n\t}\n\n\tpurge() {}\n\n\tpurgeParent() {}\n}\n\n/*\n\nIDLE:\n\tinsert data: goto SYNC\n\nSYNC:\n\tbefore provide: run ticks\n\tevent loop tick: goto ASYNC_ACTIVE\n\nASYNC:\n\ttimeout: run tick, goto ASYNC_PASSIVE\n\nASYNC_PASSIVE:\n\tbefore provide: run ticks\n\nIDLE --[insert data]--> SYNC --[event loop tick]--> ASYNC_ACTIVE --[interval tick]-> ASYNC_PASSIVE\n                                                          ^                             |\n                                                          +---------[insert data]-------+\n*/\n\nconst STORAGE_MODE_IDLE = 0;\nconst STORAGE_MODE_SYNC = 1;\nconst STORAGE_MODE_ASYNC = 2;\n\n/**\n * @callback Provide\n * @param {PathLike | PathOrFileDescriptor} path path\n * @param {EXPECTED_ANY} options options\n * @param {FileSystemCallback<EXPECTED_ANY>} callback callback\n * @returns {void}\n */\n\nclass CacheBackend {\n\t/**\n\t * @param {number} duration max cache duration of items\n\t * @param {EXPECTED_FUNCTION | undefined} provider async method\n\t * @param {EXPECTED_FUNCTION | undefined} syncProvider sync method\n\t * @param {BaseFileSystem} providerContext call context for the provider methods\n\t */\n\tconstructor(duration, provider, syncProvider, providerContext) {\n\t\tthis._duration = duration;\n\t\tthis._provider = provider;\n\t\tthis._syncProvider = syncProvider;\n\t\tthis._providerContext = providerContext;\n\t\t/** @type {Map<string, FileSystemCallback<EXPECTED_ANY>[]>} */\n\t\tthis._activeAsyncOperations = new Map();\n\t\t/** @type {Map<string, { err: Error | null, result?: EXPECTED_ANY, level: Set<string> }>} */\n\t\tthis._data = new Map();\n\t\t/** @type {Set<string>[]} */\n\t\tthis._levels = [];\n\t\tfor (let i = 0; i < 10; i++) this._levels.push(new Set());\n\t\tfor (let i = 5000; i < duration; i += 500) this._levels.push(new Set());\n\t\tthis._currentLevel = 0;\n\t\tthis._tickInterval = Math.floor(duration / this._levels.length);\n\t\t/** @type {STORAGE_MODE_IDLE | STORAGE_MODE_SYNC | STORAGE_MODE_ASYNC} */\n\t\tthis._mode = STORAGE_MODE_IDLE;\n\n\t\t/** @type {NodeJS.Timeout | undefined} */\n\t\tthis._timeout = undefined;\n\t\t/** @type {number | undefined} */\n\t\tthis._nextDecay = undefined;\n\n\t\t// eslint-disable-next-line no-warning-comments\n\t\t// @ts-ignore\n\t\tthis.provide = provider ? this.provide.bind(this) : null;\n\t\t// eslint-disable-next-line no-warning-comments\n\t\t// @ts-ignore\n\t\tthis.provideSync = syncProvider ? this.provideSync.bind(this) : null;\n\t}\n\n\t/**\n\t * @param {PathLike | PathOrFileDescriptor} path path\n\t * @param {EXPECTED_ANY} options options\n\t * @param {FileSystemCallback<EXPECTED_ANY>} callback callback\n\t * @returns {void}\n\t */\n\tprovide(path, options, callback) {\n\t\tif (typeof options === \"function\") {\n\t\t\tcallback = options;\n\t\t\toptions = undefined;\n\t\t}\n\t\tif (\n\t\t\ttypeof path !== \"string\" &&\n\t\t\t!Buffer.isBuffer(path) &&\n\t\t\t!(path instanceof URL) &&\n\t\t\ttypeof path !== \"number\"\n\t\t) {\n\t\t\tcallback(new TypeError(\"path must be a string, Buffer, URL or number\"));\n\t\t\treturn;\n\t\t}\n\t\tconst strPath = typeof path !== \"string\" ? path.toString() : path;\n\t\tif (options) {\n\t\t\treturn /** @type {EXPECTED_FUNCTION} */ (this._provider).call(\n\t\t\t\tthis._providerContext,\n\t\t\t\tpath,\n\t\t\t\toptions,\n\t\t\t\tcallback,\n\t\t\t);\n\t\t}\n\n\t\t// When in sync mode we can move to async mode\n\t\tif (this._mode === STORAGE_MODE_SYNC) {\n\t\t\tthis._enterAsyncMode();\n\t\t}\n\n\t\t// Check in cache\n\t\tconst cacheEntry = this._data.get(strPath);\n\t\tif (cacheEntry !== undefined) {\n\t\t\tif (cacheEntry.err) return nextTick(callback, cacheEntry.err);\n\t\t\treturn nextTick(callback, null, cacheEntry.result);\n\t\t}\n\n\t\t// Check if there is already the same operation running\n\t\tlet callbacks = this._activeAsyncOperations.get(strPath);\n\t\tif (callbacks !== undefined) {\n\t\t\tcallbacks.push(callback);\n\t\t\treturn;\n\t\t}\n\t\tthis._activeAsyncOperations.set(strPath, (callbacks = [callback]));\n\n\t\t// Run the operation\n\t\t/** @type {EXPECTED_FUNCTION} */\n\t\t(this._provider).call(\n\t\t\tthis._providerContext,\n\t\t\tpath,\n\t\t\t/**\n\t\t\t * @param {Error | null} err error\n\t\t\t * @param {EXPECTED_ANY=} result result\n\t\t\t */\n\t\t\t(err, result) => {\n\t\t\t\tthis._activeAsyncOperations.delete(strPath);\n\t\t\t\tthis._storeResult(strPath, err, result);\n\n\t\t\t\t// Enter async mode if not yet done\n\t\t\t\tthis._enterAsyncMode();\n\n\t\t\t\trunCallbacks(\n\t\t\t\t\t/** @type {FileSystemCallback<EXPECTED_ANY>[]} */ (callbacks),\n\t\t\t\t\terr,\n\t\t\t\t\tresult,\n\t\t\t\t);\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * @param {PathLike | PathOrFileDescriptor} path path\n\t * @param {EXPECTED_ANY} options options\n\t * @returns {EXPECTED_ANY} result\n\t */\n\tprovideSync(path, options) {\n\t\tif (\n\t\t\ttypeof path !== \"string\" &&\n\t\t\t!Buffer.isBuffer(path) &&\n\t\t\t!(path instanceof URL) &&\n\t\t\ttypeof path !== \"number\"\n\t\t) {\n\t\t\tthrow new TypeError(\"path must be a string\");\n\t\t}\n\t\tconst strPath = typeof path !== \"string\" ? path.toString() : path;\n\t\tif (options) {\n\t\t\treturn /** @type {EXPECTED_FUNCTION} */ (this._syncProvider).call(\n\t\t\t\tthis._providerContext,\n\t\t\t\tpath,\n\t\t\t\toptions,\n\t\t\t);\n\t\t}\n\n\t\t// In sync mode we may have to decay some cache items\n\t\tif (this._mode === STORAGE_MODE_SYNC) {\n\t\t\tthis._runDecays();\n\t\t}\n\n\t\t// Check in cache\n\t\tconst cacheEntry = this._data.get(strPath);\n\t\tif (cacheEntry !== undefined) {\n\t\t\tif (cacheEntry.err) throw cacheEntry.err;\n\t\t\treturn cacheEntry.result;\n\t\t}\n\n\t\t// Get all active async operations\n\t\t// This sync operation will also complete them\n\t\tconst callbacks = this._activeAsyncOperations.get(strPath);\n\t\tthis._activeAsyncOperations.delete(strPath);\n\n\t\t// Run the operation\n\t\t// When in idle mode, we will enter sync mode\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = /** @type {EXPECTED_FUNCTION} */ (this._syncProvider).call(\n\t\t\t\tthis._providerContext,\n\t\t\t\tpath,\n\t\t\t);\n\t\t} catch (err) {\n\t\t\tthis._storeResult(strPath, /** @type {Error} */ (err), undefined);\n\t\t\tthis._enterSyncModeWhenIdle();\n\t\t\tif (callbacks) {\n\t\t\t\trunCallbacks(callbacks, /** @type {Error} */ (err), undefined);\n\t\t\t}\n\t\t\tthrow err;\n\t\t}\n\t\tthis._storeResult(strPath, null, result);\n\t\tthis._enterSyncModeWhenIdle();\n\t\tif (callbacks) {\n\t\t\trunCallbacks(callbacks, null, result);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * @param {(string | Buffer | URL | number | (string | URL | Buffer | number)[] | Set<string | URL | Buffer | number>)=} what what to purge\n\t */\n\tpurge(what) {\n\t\tif (!what) {\n\t\t\tif (this._mode !== STORAGE_MODE_IDLE) {\n\t\t\t\tthis._data.clear();\n\t\t\t\tfor (const level of this._levels) {\n\t\t\t\t\tlevel.clear();\n\t\t\t\t}\n\t\t\t\tthis._enterIdleMode();\n\t\t\t}\n\t\t} else if (\n\t\t\ttypeof what === \"string\" ||\n\t\t\tBuffer.isBuffer(what) ||\n\t\t\twhat instanceof URL ||\n\t\t\ttypeof what === \"number\"\n\t\t) {\n\t\t\tconst strWhat = typeof what !== \"string\" ? what.toString() : what;\n\t\t\tfor (const [key, data] of this._data) {\n\t\t\t\tif (key.startsWith(strWhat)) {\n\t\t\t\t\tthis._data.delete(key);\n\t\t\t\t\tdata.level.delete(key);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._data.size === 0) {\n\t\t\t\tthis._enterIdleMode();\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const [key, data] of this._data) {\n\t\t\t\tfor (const item of what) {\n\t\t\t\t\tconst strItem = typeof item !== \"string\" ? item.toString() : item;\n\t\t\t\t\tif (key.startsWith(strItem)) {\n\t\t\t\t\t\tthis._data.delete(key);\n\t\t\t\t\t\tdata.level.delete(key);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._data.size === 0) {\n\t\t\t\tthis._enterIdleMode();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @param {(string | Buffer | URL | number | (string | URL | Buffer | number)[] | Set<string | URL | Buffer | number>)=} what what to purge\n\t */\n\tpurgeParent(what) {\n\t\tif (!what) {\n\t\t\tthis.purge();\n\t\t} else if (\n\t\t\ttypeof what === \"string\" ||\n\t\t\tBuffer.isBuffer(what) ||\n\t\t\twhat instanceof URL ||\n\t\t\ttypeof what === \"number\"\n\t\t) {\n\t\t\tconst strWhat = typeof what !== \"string\" ? what.toString() : what;\n\t\t\tthis.purge(dirname(strWhat));\n\t\t} else {\n\t\t\tconst set = new Set();\n\t\t\tfor (const item of what) {\n\t\t\t\tconst strItem = typeof item !== \"string\" ? item.toString() : item;\n\t\t\t\tset.add(dirname(strItem));\n\t\t\t}\n\t\t\tthis.purge(set);\n\t\t}\n\t}\n\n\t/**\n\t * @param {string} path path\n\t * @param {Error | null} err error\n\t * @param {EXPECTED_ANY} result result\n\t */\n\t_storeResult(path, err, result) {\n\t\tif (this._data.has(path)) return;\n\t\tconst level = this._levels[this._currentLevel];\n\t\tthis._data.set(path, { err, result, level });\n\t\tlevel.add(path);\n\t}\n\n\t_decayLevel() {\n\t\tconst nextLevel = (this._currentLevel + 1) % this._levels.length;\n\t\tconst decay = this._levels[nextLevel];\n\t\tthis._currentLevel = nextLevel;\n\t\tfor (const item of decay) {\n\t\t\tthis._data.delete(item);\n\t\t}\n\t\tdecay.clear();\n\t\tif (this._data.size === 0) {\n\t\t\tthis._enterIdleMode();\n\t\t} else {\n\t\t\t/** @type {number} */\n\t\t\t(this._nextDecay) += this._tickInterval;\n\t\t}\n\t}\n\n\t_runDecays() {\n\t\twhile (\n\t\t\t/** @type {number} */ (this._nextDecay) <= Date.now() &&\n\t\t\tthis._mode !== STORAGE_MODE_IDLE\n\t\t) {\n\t\t\tthis._decayLevel();\n\t\t}\n\t}\n\n\t_enterAsyncMode() {\n\t\tlet timeout = 0;\n\t\tswitch (this._mode) {\n\t\t\tcase STORAGE_MODE_ASYNC:\n\t\t\t\treturn;\n\t\t\tcase STORAGE_MODE_IDLE:\n\t\t\t\tthis._nextDecay = Date.now() + this._tickInterval;\n\t\t\t\ttimeout = this._tickInterval;\n\t\t\t\tbreak;\n\t\t\tcase STORAGE_MODE_SYNC:\n\t\t\t\tthis._runDecays();\n\t\t\t\t// _runDecays may change the mode\n\t\t\t\tif (\n\t\t\t\t\t/** @type {STORAGE_MODE_IDLE | STORAGE_MODE_SYNC | STORAGE_MODE_ASYNC} */\n\t\t\t\t\t(this._mode) === STORAGE_MODE_IDLE\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\ttimeout = Math.max(\n\t\t\t\t\t0,\n\t\t\t\t\t/** @type {number} */ (this._nextDecay) - Date.now(),\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t\tthis._mode = STORAGE_MODE_ASYNC;\n\t\tconst ref = setTimeout(() => {\n\t\t\tthis._mode = STORAGE_MODE_SYNC;\n\t\t\tthis._runDecays();\n\t\t}, timeout);\n\t\tif (ref.unref) ref.unref();\n\t\tthis._timeout = ref;\n\t}\n\n\t_enterSyncModeWhenIdle() {\n\t\tif (this._mode === STORAGE_MODE_IDLE) {\n\t\t\tthis._mode = STORAGE_MODE_SYNC;\n\t\t\tthis._nextDecay = Date.now() + this._tickInterval;\n\t\t}\n\t}\n\n\t_enterIdleMode() {\n\t\tthis._mode = STORAGE_MODE_IDLE;\n\t\tthis._nextDecay = undefined;\n\t\tif (this._timeout) clearTimeout(this._timeout);\n\t}\n}\n\n/**\n * @template {EXPECTED_FUNCTION} Provider\n * @template {EXPECTED_FUNCTION} AsyncProvider\n * @template FileSystem\n * @param {number} duration duration in ms files are cached\n * @param {Provider | undefined} provider provider\n * @param {AsyncProvider | undefined} syncProvider sync provider\n * @param {BaseFileSystem} providerContext provider context\n * @returns {OperationMergerBackend | CacheBackend} backend\n */\nconst createBackend = (duration, provider, syncProvider, providerContext) => {\n\tif (duration > 0) {\n\t\treturn new CacheBackend(duration, provider, syncProvider, providerContext);\n\t}\n\treturn new OperationMergerBackend(provider, syncProvider, providerContext);\n};\n\nmodule.exports = class CachedInputFileSystem {\n\t/**\n\t * @param {BaseFileSystem} fileSystem file system\n\t * @param {number} duration duration in ms files are cached\n\t */\n\tconstructor(fileSystem, duration) {\n\t\tthis.fileSystem = fileSystem;\n\n\t\tthis._lstatBackend = createBackend(\n\t\t\tduration,\n\t\t\tthis.fileSystem.lstat,\n\t\t\tthis.fileSystem.lstatSync,\n\t\t\tthis.fileSystem,\n\t\t);\n\t\tconst lstat = this._lstatBackend.provide;\n\t\tthis.lstat = /** @type {FileSystem[\"lstat\"]} */ (lstat);\n\t\tconst lstatSync = this._lstatBackend.provideSync;\n\t\tthis.lstatSync = /** @type {SyncFileSystem[\"lstatSync\"]} */ (lstatSync);\n\n\t\tthis._statBackend = createBackend(\n\t\t\tduration,\n\t\t\tthis.fileSystem.stat,\n\t\t\tthis.fileSystem.statSync,\n\t\t\tthis.fileSystem,\n\t\t);\n\t\tconst stat = this._statBackend.provide;\n\t\tthis.stat = /** @type {FileSystem[\"stat\"]} */ (stat);\n\t\tconst statSync = this._statBackend.provideSync;\n\t\tthis.statSync = /** @type {SyncFileSystem[\"statSync\"]} */ (statSync);\n\n\t\tthis._readdirBackend = createBackend(\n\t\t\tduration,\n\t\t\tthis.fileSystem.readdir,\n\t\t\tthis.fileSystem.readdirSync,\n\t\t\tthis.fileSystem,\n\t\t);\n\t\tconst readdir = this._readdirBackend.provide;\n\t\tthis.readdir = /** @type {FileSystem[\"readdir\"]} */ (readdir);\n\t\tconst readdirSync = this._readdirBackend.provideSync;\n\t\tthis.readdirSync = /** @type {SyncFileSystem[\"readdirSync\"]} */ (\n\t\t\treaddirSync\n\t\t);\n\n\t\tthis._readFileBackend = createBackend(\n\t\t\tduration,\n\t\t\tthis.fileSystem.readFile,\n\t\t\tthis.fileSystem.readFileSync,\n\t\t\tthis.fileSystem,\n\t\t);\n\t\tconst readFile = this._readFileBackend.provide;\n\t\tthis.readFile = /** @type {FileSystem[\"readFile\"]} */ (readFile);\n\t\tconst readFileSync = this._readFileBackend.provideSync;\n\t\tthis.readFileSync = /** @type {SyncFileSystem[\"readFileSync\"]} */ (\n\t\t\treadFileSync\n\t\t);\n\n\t\tthis._readJsonBackend = createBackend(\n\t\t\tduration,\n\t\t\t// prettier-ignore\n\t\t\tthis.fileSystem.readJson ||\n\t\t\t\t(this.readFile &&\n\t\t\t\t\t(\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * @param {string} path path\n\t\t\t\t\t\t * @param {FileSystemCallback<EXPECTED_ANY>} callback callback\n\t\t\t\t\t\t */\n\t\t\t\t\t\t(path, callback) => {\n\t\t\t\t\t\t\tthis.readFile(path, (err, buffer) => {\n\t\t\t\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\t\t\t\tif (!buffer || buffer.length === 0)\n\t\t\t\t\t\t\t\t\t{return callback(new Error(\"No file content\"));}\n\t\t\t\t\t\t\t\tlet data;\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tdata = JSON.parse(buffer.toString(\"utf8\"));\n\t\t\t\t\t\t\t\t} catch (err_) {\n\t\t\t\t\t\t\t\t\treturn callback(/** @type {Error} */ (err_));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcallback(null, data);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t// prettier-ignore\n\t\t\tthis.fileSystem.readJsonSync ||\n\t\t\t\t(this.readFileSync &&\n\t\t\t\t\t(\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * @param {string} path path\n\t\t\t\t\t\t * @returns {EXPECTED_ANY} result\n\t\t\t\t\t\t */\n\t\t\t\t\t\t(path) => {\n\t\t\t\t\t\t\tconst buffer = this.readFileSync(path);\n\t\t\t\t\t\t\tconst data = JSON.parse(buffer.toString(\"utf8\"));\n\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t}\n\t\t\t\t )),\n\t\t\tthis.fileSystem,\n\t\t);\n\t\tconst readJson = this._readJsonBackend.provide;\n\t\tthis.readJson = /** @type {FileSystem[\"readJson\"]} */ (readJson);\n\t\tconst readJsonSync = this._readJsonBackend.provideSync;\n\t\tthis.readJsonSync = /** @type {SyncFileSystem[\"readJsonSync\"]} */ (\n\t\t\treadJsonSync\n\t\t);\n\n\t\tthis._readlinkBackend = createBackend(\n\t\t\tduration,\n\t\t\tthis.fileSystem.readlink,\n\t\t\tthis.fileSystem.readlinkSync,\n\t\t\tthis.fileSystem,\n\t\t);\n\t\tconst readlink = this._readlinkBackend.provide;\n\t\tthis.readlink = /** @type {FileSystem[\"readlink\"]} */ (readlink);\n\t\tconst readlinkSync = this._readlinkBackend.provideSync;\n\t\tthis.readlinkSync = /** @type {SyncFileSystem[\"readlinkSync\"]} */ (\n\t\t\treadlinkSync\n\t\t);\n\n\t\tthis._realpathBackend = createBackend(\n\t\t\tduration,\n\t\t\tthis.fileSystem.realpath,\n\t\t\tthis.fileSystem.realpathSync,\n\t\t\tthis.fileSystem,\n\t\t);\n\t\tconst realpath = this._realpathBackend.provide;\n\t\tthis.realpath = /** @type {FileSystem[\"realpath\"]} */ (realpath);\n\t\tconst realpathSync = this._realpathBackend.provideSync;\n\t\tthis.realpathSync = /** @type {SyncFileSystem[\"realpathSync\"]} */ (\n\t\t\trealpathSync\n\t\t);\n\t}\n\n\t/**\n\t * @param {(string | Buffer | URL | number | (string | URL | Buffer | number)[] | Set<string | URL | Buffer | number>)=} what what to purge\n\t */\n\tpurge(what) {\n\t\tthis._statBackend.purge(what);\n\t\tthis._lstatBackend.purge(what);\n\t\tthis._readdirBackend.purgeParent(what);\n\t\tthis._readFileBackend.purge(what);\n\t\tthis._readlinkBackend.purge(what);\n\t\tthis._readJsonBackend.purge(what);\n\t\tthis._realpathBackend.purge(what);\n\t}\n};\n","var constants = require('constants')\n\nvar origCwd = process.cwd\nvar cwd = null\n\nvar platform = process.env.GRACEFUL_FS_PLATFORM || process.platform\n\nprocess.cwd = function() {\n  if (!cwd)\n    cwd = origCwd.call(process)\n  return cwd\n}\ntry {\n  process.cwd()\n} catch (er) {}\n\n// This check is needed until node.js 12 is required\nif (typeof process.chdir === 'function') {\n  var chdir = process.chdir\n  process.chdir = function (d) {\n    cwd = null\n    chdir.call(process, d)\n  }\n  if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir)\n}\n\nmodule.exports = patch\n\nfunction patch (fs) {\n  // (re-)implement some things that are known busted or missing.\n\n  // lchmod, broken prior to 0.6.2\n  // back-port the fix here.\n  if (constants.hasOwnProperty('O_SYMLINK') &&\n      process.version.match(/^v0\\.6\\.[0-2]|^v0\\.5\\./)) {\n    patchLchmod(fs)\n  }\n\n  // lutimes implementation, or no-op\n  if (!fs.lutimes) {\n    patchLutimes(fs)\n  }\n\n  // https://github.com/isaacs/node-graceful-fs/issues/4\n  // Chown should not fail on einval or eperm if non-root.\n  // It should not fail on enosys ever, as this just indicates\n  // that a fs doesn't support the intended operation.\n\n  fs.chown = chownFix(fs.chown)\n  fs.fchown = chownFix(fs.fchown)\n  fs.lchown = chownFix(fs.lchown)\n\n  fs.chmod = chmodFix(fs.chmod)\n  fs.fchmod = chmodFix(fs.fchmod)\n  fs.lchmod = chmodFix(fs.lchmod)\n\n  fs.chownSync = chownFixSync(fs.chownSync)\n  fs.fchownSync = chownFixSync(fs.fchownSync)\n  fs.lchownSync = chownFixSync(fs.lchownSync)\n\n  fs.chmodSync = chmodFixSync(fs.chmodSync)\n  fs.fchmodSync = chmodFixSync(fs.fchmodSync)\n  fs.lchmodSync = chmodFixSync(fs.lchmodSync)\n\n  fs.stat = statFix(fs.stat)\n  fs.fstat = statFix(fs.fstat)\n  fs.lstat = statFix(fs.lstat)\n\n  fs.statSync = statFixSync(fs.statSync)\n  fs.fstatSync = statFixSync(fs.fstatSync)\n  fs.lstatSync = statFixSync(fs.lstatSync)\n\n  // if lchmod/lchown do not exist, then make them no-ops\n  if (fs.chmod && !fs.lchmod) {\n    fs.lchmod = function (path, mode, cb) {\n      if (cb) process.nextTick(cb)\n    }\n    fs.lchmodSync = function () {}\n  }\n  if (fs.chown && !fs.lchown) {\n    fs.lchown = function (path, uid, gid, cb) {\n      if (cb) process.nextTick(cb)\n    }\n    fs.lchownSync = function () {}\n  }\n\n  // on Windows, A/V software can lock the directory, causing this\n  // to fail with an EACCES or EPERM if the directory contains newly\n  // created files.  Try again on failure, for up to 60 seconds.\n\n  // Set the timeout this long because some Windows Anti-Virus, such as Parity\n  // bit9, may lock files for up to a minute, causing npm package install\n  // failures. Also, take care to yield the scheduler. Windows scheduling gives\n  // CPU to a busy looping process, which can cause the program causing the lock\n  // contention to be starved of CPU by node, so the contention doesn't resolve.\n  if (platform === \"win32\") {\n    fs.rename = typeof fs.rename !== 'function' ? fs.rename\n    : (function (fs$rename) {\n      function rename (from, to, cb) {\n        var start = Date.now()\n        var backoff = 0;\n        fs$rename(from, to, function CB (er) {\n          if (er\n              && (er.code === \"EACCES\" || er.code === \"EPERM\" || er.code === \"EBUSY\")\n              && Date.now() - start < 60000) {\n            setTimeout(function() {\n              fs.stat(to, function (stater, st) {\n                if (stater && stater.code === \"ENOENT\")\n                  fs$rename(from, to, CB);\n                else\n                  cb(er)\n              })\n            }, backoff)\n            if (backoff < 100)\n              backoff += 10;\n            return;\n          }\n          if (cb) cb(er)\n        })\n      }\n      if (Object.setPrototypeOf) Object.setPrototypeOf(rename, fs$rename)\n      return rename\n    })(fs.rename)\n  }\n\n  // if read() returns EAGAIN, then just try it again.\n  fs.read = typeof fs.read !== 'function' ? fs.read\n  : (function (fs$read) {\n    function read (fd, buffer, offset, length, position, callback_) {\n      var callback\n      if (callback_ && typeof callback_ === 'function') {\n        var eagCounter = 0\n        callback = function (er, _, __) {\n          if (er && er.code === 'EAGAIN' && eagCounter < 10) {\n            eagCounter ++\n            return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n          }\n          callback_.apply(this, arguments)\n        }\n      }\n      return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n    }\n\n    // This ensures `util.promisify` works as it does for native `fs.read`.\n    if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read)\n    return read\n  })(fs.read)\n\n  fs.readSync = typeof fs.readSync !== 'function' ? fs.readSync\n  : (function (fs$readSync) { return function (fd, buffer, offset, length, position) {\n    var eagCounter = 0\n    while (true) {\n      try {\n        return fs$readSync.call(fs, fd, buffer, offset, length, position)\n      } catch (er) {\n        if (er.code === 'EAGAIN' && eagCounter < 10) {\n          eagCounter ++\n          continue\n        }\n        throw er\n      }\n    }\n  }})(fs.readSync)\n\n  function patchLchmod (fs) {\n    fs.lchmod = function (path, mode, callback) {\n      fs.open( path\n             , constants.O_WRONLY | constants.O_SYMLINK\n             , mode\n             , function (err, fd) {\n        if (err) {\n          if (callback) callback(err)\n          return\n        }\n        // prefer to return the chmod error, if one occurs,\n        // but still try to close, and report closing errors if they occur.\n        fs.fchmod(fd, mode, function (err) {\n          fs.close(fd, function(err2) {\n            if (callback) callback(err || err2)\n          })\n        })\n      })\n    }\n\n    fs.lchmodSync = function (path, mode) {\n      var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)\n\n      // prefer to return the chmod error, if one occurs,\n      // but still try to close, and report closing errors if they occur.\n      var threw = true\n      var ret\n      try {\n        ret = fs.fchmodSync(fd, mode)\n        threw = false\n      } finally {\n        if (threw) {\n          try {\n            fs.closeSync(fd)\n          } catch (er) {}\n        } else {\n          fs.closeSync(fd)\n        }\n      }\n      return ret\n    }\n  }\n\n  function patchLutimes (fs) {\n    if (constants.hasOwnProperty(\"O_SYMLINK\") && fs.futimes) {\n      fs.lutimes = function (path, at, mt, cb) {\n        fs.open(path, constants.O_SYMLINK, function (er, fd) {\n          if (er) {\n            if (cb) cb(er)\n            return\n          }\n          fs.futimes(fd, at, mt, function (er) {\n            fs.close(fd, function (er2) {\n              if (cb) cb(er || er2)\n            })\n          })\n        })\n      }\n\n      fs.lutimesSync = function (path, at, mt) {\n        var fd = fs.openSync(path, constants.O_SYMLINK)\n        var ret\n        var threw = true\n        try {\n          ret = fs.futimesSync(fd, at, mt)\n          threw = false\n        } finally {\n          if (threw) {\n            try {\n              fs.closeSync(fd)\n            } catch (er) {}\n          } else {\n            fs.closeSync(fd)\n          }\n        }\n        return ret\n      }\n\n    } else if (fs.futimes) {\n      fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }\n      fs.lutimesSync = function () {}\n    }\n  }\n\n  function chmodFix (orig) {\n    if (!orig) return orig\n    return function (target, mode, cb) {\n      return orig.call(fs, target, mode, function (er) {\n        if (chownErOk(er)) er = null\n        if (cb) cb.apply(this, arguments)\n      })\n    }\n  }\n\n  function chmodFixSync (orig) {\n    if (!orig) return orig\n    return function (target, mode) {\n      try {\n        return orig.call(fs, target, mode)\n      } catch (er) {\n        if (!chownErOk(er)) throw er\n      }\n    }\n  }\n\n\n  function chownFix (orig) {\n    if (!orig) return orig\n    return function (target, uid, gid, cb) {\n      return orig.call(fs, target, uid, gid, function (er) {\n        if (chownErOk(er)) er = null\n        if (cb) cb.apply(this, arguments)\n      })\n    }\n  }\n\n  function chownFixSync (orig) {\n    if (!orig) return orig\n    return function (target, uid, gid) {\n      try {\n        return orig.call(fs, target, uid, gid)\n      } catch (er) {\n        if (!chownErOk(er)) throw er\n      }\n    }\n  }\n\n  function statFix (orig) {\n    if (!orig) return orig\n    // Older versions of Node erroneously returned signed integers for\n    // uid + gid.\n    return function (target, options, cb) {\n      if (typeof options === 'function') {\n        cb = options\n        options = null\n      }\n      function callback (er, stats) {\n        if (stats) {\n          if (stats.uid < 0) stats.uid += 0x100000000\n          if (stats.gid < 0) stats.gid += 0x100000000\n        }\n        if (cb) cb.apply(this, arguments)\n      }\n      return options ? orig.call(fs, target, options, callback)\n        : orig.call(fs, target, callback)\n    }\n  }\n\n  function statFixSync (orig) {\n    if (!orig) return orig\n    // Older versions of Node erroneously returned signed integers for\n    // uid + gid.\n    return function (target, options) {\n      var stats = options ? orig.call(fs, target, options)\n        : orig.call(fs, target)\n      if (stats) {\n        if (stats.uid < 0) stats.uid += 0x100000000\n        if (stats.gid < 0) stats.gid += 0x100000000\n      }\n      return stats;\n    }\n  }\n\n  // ENOSYS means that the fs doesn't support the op. Just ignore\n  // that, because it doesn't matter.\n  //\n  // if there's no getuid, or if getuid() is something other\n  // than 0, and the error is EINVAL or EPERM, then just ignore\n  // it.\n  //\n  // This specific case is a silent failure in cp, install, tar,\n  // and most other unix tools that manage permissions.\n  //\n  // When running as root, or if other types of errors are\n  // encountered, then it's strict.\n  function chownErOk (er) {\n    if (!er)\n      return true\n\n    if (er.code === \"ENOSYS\")\n      return true\n\n    var nonroot = !process.getuid || process.getuid() !== 0\n    if (nonroot) {\n      if (er.code === \"EINVAL\" || er.code === \"EPERM\")\n        return true\n    }\n\n    return false\n  }\n}\n","var Stream = require('stream').Stream\n\nmodule.exports = legacy\n\nfunction legacy (fs) {\n  return {\n    ReadStream: ReadStream,\n    WriteStream: WriteStream\n  }\n\n  function ReadStream (path, options) {\n    if (!(this instanceof ReadStream)) return new ReadStream(path, options);\n\n    Stream.call(this);\n\n    var self = this;\n\n    this.path = path;\n    this.fd = null;\n    this.readable = true;\n    this.paused = false;\n\n    this.flags = 'r';\n    this.mode = 438; /*=0666*/\n    this.bufferSize = 64 * 1024;\n\n    options = options || {};\n\n    // Mixin options into this\n    var keys = Object.keys(options);\n    for (var index = 0, length = keys.length; index < length; index++) {\n      var key = keys[index];\n      this[key] = options[key];\n    }\n\n    if (this.encoding) this.setEncoding(this.encoding);\n\n    if (this.start !== undefined) {\n      if ('number' !== typeof this.start) {\n        throw TypeError('start must be a Number');\n      }\n      if (this.end === undefined) {\n        this.end = Infinity;\n      } else if ('number' !== typeof this.end) {\n        throw TypeError('end must be a Number');\n      }\n\n      if (this.start > this.end) {\n        throw new Error('start must be <= end');\n      }\n\n      this.pos = this.start;\n    }\n\n    if (this.fd !== null) {\n      process.nextTick(function() {\n        self._read();\n      });\n      return;\n    }\n\n    fs.open(this.path, this.flags, this.mode, function (err, fd) {\n      if (err) {\n        self.emit('error', err);\n        self.readable = false;\n        return;\n      }\n\n      self.fd = fd;\n      self.emit('open', fd);\n      self._read();\n    })\n  }\n\n  function WriteStream (path, options) {\n    if (!(this instanceof WriteStream)) return new WriteStream(path, options);\n\n    Stream.call(this);\n\n    this.path = path;\n    this.fd = null;\n    this.writable = true;\n\n    this.flags = 'w';\n    this.encoding = 'binary';\n    this.mode = 438; /*=0666*/\n    this.bytesWritten = 0;\n\n    options = options || {};\n\n    // Mixin options into this\n    var keys = Object.keys(options);\n    for (var index = 0, length = keys.length; index < length; index++) {\n      var key = keys[index];\n      this[key] = options[key];\n    }\n\n    if (this.start !== undefined) {\n      if ('number' !== typeof this.start) {\n        throw TypeError('start must be a Number');\n      }\n      if (this.start < 0) {\n        throw new Error('start must be >= zero');\n      }\n\n      this.pos = this.start;\n    }\n\n    this.busy = false;\n    this._queue = [];\n\n    if (this.fd === null) {\n      this._open = fs.open;\n      this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);\n      this.flush();\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = clone\n\nvar getPrototypeOf = Object.getPrototypeOf || function (obj) {\n  return obj.__proto__\n}\n\nfunction clone (obj) {\n  if (obj === null || typeof obj !== 'object')\n    return obj\n\n  if (obj instanceof Object)\n    var copy = { __proto__: getPrototypeOf(obj) }\n  else\n    var copy = Object.create(null)\n\n  Object.getOwnPropertyNames(obj).forEach(function (key) {\n    Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))\n  })\n\n  return copy\n}\n","var fs = require('fs')\nvar polyfills = require('./polyfills.js')\nvar legacy = require('./legacy-streams.js')\nvar clone = require('./clone.js')\n\nvar util = require('util')\n\n/* istanbul ignore next - node 0.x polyfill */\nvar gracefulQueue\nvar previousSymbol\n\n/* istanbul ignore else - node 0.x polyfill */\nif (typeof Symbol === 'function' && typeof Symbol.for === 'function') {\n  gracefulQueue = Symbol.for('graceful-fs.queue')\n  // This is used in testing by future versions\n  previousSymbol = Symbol.for('graceful-fs.previous')\n} else {\n  gracefulQueue = '___graceful-fs.queue'\n  previousSymbol = '___graceful-fs.previous'\n}\n\nfunction noop () {}\n\nfunction publishQueue(context, queue) {\n  Object.defineProperty(context, gracefulQueue, {\n    get: function() {\n      return queue\n    }\n  })\n}\n\nvar debug = noop\nif (util.debuglog)\n  debug = util.debuglog('gfs4')\nelse if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || ''))\n  debug = function() {\n    var m = util.format.apply(util, arguments)\n    m = 'GFS4: ' + m.split(/\\n/).join('\\nGFS4: ')\n    console.error(m)\n  }\n\n// Once time initialization\nif (!fs[gracefulQueue]) {\n  // This queue can be shared by multiple loaded instances\n  var queue = global[gracefulQueue] || []\n  publishQueue(fs, queue)\n\n  // Patch fs.close/closeSync to shared queue version, because we need\n  // to retry() whenever a close happens *anywhere* in the program.\n  // This is essential when multiple graceful-fs instances are\n  // in play at the same time.\n  fs.close = (function (fs$close) {\n    function close (fd, cb) {\n      return fs$close.call(fs, fd, function (err) {\n        // This function uses the graceful-fs shared queue\n        if (!err) {\n          resetQueue()\n        }\n\n        if (typeof cb === 'function')\n          cb.apply(this, arguments)\n      })\n    }\n\n    Object.defineProperty(close, previousSymbol, {\n      value: fs$close\n    })\n    return close\n  })(fs.close)\n\n  fs.closeSync = (function (fs$closeSync) {\n    function closeSync (fd) {\n      // This function uses the graceful-fs shared queue\n      fs$closeSync.apply(fs, arguments)\n      resetQueue()\n    }\n\n    Object.defineProperty(closeSync, previousSymbol, {\n      value: fs$closeSync\n    })\n    return closeSync\n  })(fs.closeSync)\n\n  if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || '')) {\n    process.on('exit', function() {\n      debug(fs[gracefulQueue])\n      require('assert').equal(fs[gracefulQueue].length, 0)\n    })\n  }\n}\n\nif (!global[gracefulQueue]) {\n  publishQueue(global, fs[gracefulQueue]);\n}\n\nmodule.exports = patch(clone(fs))\nif (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) {\n    module.exports = patch(fs)\n    fs.__patched = true;\n}\n\nfunction patch (fs) {\n  // Everything that references the open() function needs to be in here\n  polyfills(fs)\n  fs.gracefulify = patch\n\n  fs.createReadStream = createReadStream\n  fs.createWriteStream = createWriteStream\n  var fs$readFile = fs.readFile\n  fs.readFile = readFile\n  function readFile (path, options, cb) {\n    if (typeof options === 'function')\n      cb = options, options = null\n\n    return go$readFile(path, options, cb)\n\n    function go$readFile (path, options, cb, startTime) {\n      return fs$readFile(path, options, function (err) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()])\n        else {\n          if (typeof cb === 'function')\n            cb.apply(this, arguments)\n        }\n      })\n    }\n  }\n\n  var fs$writeFile = fs.writeFile\n  fs.writeFile = writeFile\n  function writeFile (path, data, options, cb) {\n    if (typeof options === 'function')\n      cb = options, options = null\n\n    return go$writeFile(path, data, options, cb)\n\n    function go$writeFile (path, data, options, cb, startTime) {\n      return fs$writeFile(path, data, options, function (err) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n        else {\n          if (typeof cb === 'function')\n            cb.apply(this, arguments)\n        }\n      })\n    }\n  }\n\n  var fs$appendFile = fs.appendFile\n  if (fs$appendFile)\n    fs.appendFile = appendFile\n  function appendFile (path, data, options, cb) {\n    if (typeof options === 'function')\n      cb = options, options = null\n\n    return go$appendFile(path, data, options, cb)\n\n    function go$appendFile (path, data, options, cb, startTime) {\n      return fs$appendFile(path, data, options, function (err) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n        else {\n          if (typeof cb === 'function')\n            cb.apply(this, arguments)\n        }\n      })\n    }\n  }\n\n  var fs$copyFile = fs.copyFile\n  if (fs$copyFile)\n    fs.copyFile = copyFile\n  function copyFile (src, dest, flags, cb) {\n    if (typeof flags === 'function') {\n      cb = flags\n      flags = 0\n    }\n    return go$copyFile(src, dest, flags, cb)\n\n    function go$copyFile (src, dest, flags, cb, startTime) {\n      return fs$copyFile(src, dest, flags, function (err) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()])\n        else {\n          if (typeof cb === 'function')\n            cb.apply(this, arguments)\n        }\n      })\n    }\n  }\n\n  var fs$readdir = fs.readdir\n  fs.readdir = readdir\n  var noReaddirOptionVersions = /^v[0-5]\\./\n  function readdir (path, options, cb) {\n    if (typeof options === 'function')\n      cb = options, options = null\n\n    var go$readdir = noReaddirOptionVersions.test(process.version)\n      ? function go$readdir (path, options, cb, startTime) {\n        return fs$readdir(path, fs$readdirCallback(\n          path, options, cb, startTime\n        ))\n      }\n      : function go$readdir (path, options, cb, startTime) {\n        return fs$readdir(path, options, fs$readdirCallback(\n          path, options, cb, startTime\n        ))\n      }\n\n    return go$readdir(path, options, cb)\n\n    function fs$readdirCallback (path, options, cb, startTime) {\n      return function (err, files) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([\n            go$readdir,\n            [path, options, cb],\n            err,\n            startTime || Date.now(),\n            Date.now()\n          ])\n        else {\n          if (files && files.sort)\n            files.sort()\n\n          if (typeof cb === 'function')\n            cb.call(this, err, files)\n        }\n      }\n    }\n  }\n\n  if (process.version.substr(0, 4) === 'v0.8') {\n    var legStreams = legacy(fs)\n    ReadStream = legStreams.ReadStream\n    WriteStream = legStreams.WriteStream\n  }\n\n  var fs$ReadStream = fs.ReadStream\n  if (fs$ReadStream) {\n    ReadStream.prototype = Object.create(fs$ReadStream.prototype)\n    ReadStream.prototype.open = ReadStream$open\n  }\n\n  var fs$WriteStream = fs.WriteStream\n  if (fs$WriteStream) {\n    WriteStream.prototype = Object.create(fs$WriteStream.prototype)\n    WriteStream.prototype.open = WriteStream$open\n  }\n\n  Object.defineProperty(fs, 'ReadStream', {\n    get: function () {\n      return ReadStream\n    },\n    set: function (val) {\n      ReadStream = val\n    },\n    enumerable: true,\n    configurable: true\n  })\n  Object.defineProperty(fs, 'WriteStream', {\n    get: function () {\n      return WriteStream\n    },\n    set: function (val) {\n      WriteStream = val\n    },\n    enumerable: true,\n    configurable: true\n  })\n\n  // legacy names\n  var FileReadStream = ReadStream\n  Object.defineProperty(fs, 'FileReadStream', {\n    get: function () {\n      return FileReadStream\n    },\n    set: function (val) {\n      FileReadStream = val\n    },\n    enumerable: true,\n    configurable: true\n  })\n  var FileWriteStream = WriteStream\n  Object.defineProperty(fs, 'FileWriteStream', {\n    get: function () {\n      return FileWriteStream\n    },\n    set: function (val) {\n      FileWriteStream = val\n    },\n    enumerable: true,\n    configurable: true\n  })\n\n  function ReadStream (path, options) {\n    if (this instanceof ReadStream)\n      return fs$ReadStream.apply(this, arguments), this\n    else\n      return ReadStream.apply(Object.create(ReadStream.prototype), arguments)\n  }\n\n  function ReadStream$open () {\n    var that = this\n    open(that.path, that.flags, that.mode, function (err, fd) {\n      if (err) {\n        if (that.autoClose)\n          that.destroy()\n\n        that.emit('error', err)\n      } else {\n        that.fd = fd\n        that.emit('open', fd)\n        that.read()\n      }\n    })\n  }\n\n  function WriteStream (path, options) {\n    if (this instanceof WriteStream)\n      return fs$WriteStream.apply(this, arguments), this\n    else\n      return WriteStream.apply(Object.create(WriteStream.prototype), arguments)\n  }\n\n  function WriteStream$open () {\n    var that = this\n    open(that.path, that.flags, that.mode, function (err, fd) {\n      if (err) {\n        that.destroy()\n        that.emit('error', err)\n      } else {\n        that.fd = fd\n        that.emit('open', fd)\n      }\n    })\n  }\n\n  function createReadStream (path, options) {\n    return new fs.ReadStream(path, options)\n  }\n\n  function createWriteStream (path, options) {\n    return new fs.WriteStream(path, options)\n  }\n\n  var fs$open = fs.open\n  fs.open = open\n  function open (path, flags, mode, cb) {\n    if (typeof mode === 'function')\n      cb = mode, mode = null\n\n    return go$open(path, flags, mode, cb)\n\n    function go$open (path, flags, mode, cb, startTime) {\n      return fs$open(path, flags, mode, function (err, fd) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()])\n        else {\n          if (typeof cb === 'function')\n            cb.apply(this, arguments)\n        }\n      })\n    }\n  }\n\n  return fs\n}\n\nfunction enqueue (elem) {\n  debug('ENQUEUE', elem[0].name, elem[1])\n  fs[gracefulQueue].push(elem)\n  retry()\n}\n\n// keep track of the timeout between retry() calls\nvar retryTimer\n\n// reset the startTime and lastTime to now\n// this resets the start of the 60 second overall timeout as well as the\n// delay between attempts so that we'll retry these jobs sooner\nfunction resetQueue () {\n  var now = Date.now()\n  for (var i = 0; i < fs[gracefulQueue].length; ++i) {\n    // entries that are only a length of 2 are from an older version, don't\n    // bother modifying those since they'll be retried anyway.\n    if (fs[gracefulQueue][i].length > 2) {\n      fs[gracefulQueue][i][3] = now // startTime\n      fs[gracefulQueue][i][4] = now // lastTime\n    }\n  }\n  // call retry to make sure we're actively processing the queue\n  retry()\n}\n\nfunction retry () {\n  // clear the timer and remove it to help prevent unintended concurrency\n  clearTimeout(retryTimer)\n  retryTimer = undefined\n\n  if (fs[gracefulQueue].length === 0)\n    return\n\n  var elem = fs[gracefulQueue].shift()\n  var fn = elem[0]\n  var args = elem[1]\n  // these items may be unset if they were added by an older graceful-fs\n  var err = elem[2]\n  var startTime = elem[3]\n  var lastTime = elem[4]\n\n  // if we don't have a startTime we have no way of knowing if we've waited\n  // long enough, so go ahead and retry this item now\n  if (startTime === undefined) {\n    debug('RETRY', fn.name, args)\n    fn.apply(null, args)\n  } else if (Date.now() - startTime >= 60000) {\n    // it's been more than 60 seconds total, bail now\n    debug('TIMEOUT', fn.name, args)\n    var cb = args.pop()\n    if (typeof cb === 'function')\n      cb.call(null, err)\n  } else {\n    // the amount of time between the last attempt and right now\n    var sinceAttempt = Date.now() - lastTime\n    // the amount of time between when we first tried, and when we last tried\n    // rounded up to at least 1\n    var sinceStart = Math.max(lastTime - startTime, 1)\n    // backoff. wait longer than the total time we've been retrying, but only\n    // up to a maximum of 100ms\n    var desiredDelay = Math.min(sinceStart * 1.2, 100)\n    // it's been long enough since the last retry, do it again\n    if (sinceAttempt >= desiredDelay) {\n      debug('RETRY', fn.name, args)\n      fn.apply(null, args.concat([startTime]))\n    } else {\n      // if we can't do this job yet, push it to the end of the queue\n      // and let the next iteration check again\n      fs[gracefulQueue].push(elem)\n    }\n  }\n\n  // schedule our next run if one isn't already scheduled\n  if (retryTimer === undefined) {\n    retryTimer = setTimeout(retry, 0)\n  }\n}\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n\n/**\n * @template T\n * @template Z\n * @callback Iterator\n * @param {T} item item\n * @param {(err?: null | Error, result?: null | Z) => void} callback callback\n * @param {number} i index\n * @returns {void}\n */\n\n/**\n * @template T\n * @template Z\n * @param {T[]} array array\n * @param {Iterator<T, Z>} iterator iterator\n * @param {(err?: null | Error, result?: null | Z, i?: number) => void} callback callback after all items are iterated\n * @returns {void}\n */\nmodule.exports = function forEachBail(array, iterator, callback) {\n\tif (array.length === 0) return callback();\n\n\tlet i = 0;\n\tconst next = () => {\n\t\t/** @type {boolean | undefined} */\n\t\tlet loop;\n\t\titerator(\n\t\t\tarray[i++],\n\t\t\t(err, result) => {\n\t\t\t\tif (err || result !== undefined || i >= array.length) {\n\t\t\t\t\treturn callback(err, result, i);\n\t\t\t\t}\n\t\t\t\tif (loop === false) while (next());\n\t\t\t\tloop = true;\n\t\t\t},\n\t\t\ti,\n\t\t);\n\t\tif (!loop) loop = false;\n\t\treturn loop;\n\t};\n\twhile (next());\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst forEachBail = require(\"./forEachBail\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").JsonObject} JsonObject */\n/** @typedef {import(\"./Resolver\").JsonValue} JsonValue */\n/** @typedef {import(\"./Resolver\").ResolveContext} ResolveContext */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n\n/**\n * @typedef {object} DescriptionFileInfo\n * @property {JsonObject=} content content\n * @property {string} path path\n * @property {string} directory directory\n */\n\n/**\n * @callback ErrorFirstCallback\n * @param {Error | null=} error\n * @param {DescriptionFileInfo=} result\n */\n\n/**\n * @typedef {object} Result\n * @property {string} path path to description file\n * @property {string} directory directory of description file\n * @property {JsonObject} content content of description file\n */\n\n/**\n * @param {string} directory directory\n * @returns {string | null} parent directory or null\n */\nfunction cdUp(directory) {\n\tif (directory === \"/\") return null;\n\tconst i = directory.lastIndexOf(\"/\");\n\tconst j = directory.lastIndexOf(\"\\\\\");\n\tconst path = i < 0 ? j : j < 0 ? i : i < j ? j : i;\n\tif (path < 0) return null;\n\treturn directory.slice(0, path || 1);\n}\n\n/**\n * @param {Resolver} resolver resolver\n * @param {string} directory directory\n * @param {string[]} filenames filenames\n * @param {DescriptionFileInfo | undefined} oldInfo oldInfo\n * @param {ResolveContext} resolveContext resolveContext\n * @param {ErrorFirstCallback} callback callback\n */\nfunction loadDescriptionFile(\n\tresolver,\n\tdirectory,\n\tfilenames,\n\toldInfo,\n\tresolveContext,\n\tcallback,\n) {\n\t(function findDescriptionFile() {\n\t\tif (oldInfo && oldInfo.directory === directory) {\n\t\t\t// We already have info for this directory and can reuse it\n\t\t\treturn callback(null, oldInfo);\n\t\t}\n\t\tforEachBail(\n\t\t\tfilenames,\n\t\t\t/**\n\t\t\t * @param {string} filename filename\n\t\t\t * @param {(err?: null | Error, result?: null | Result) => void} callback callback\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\t(filename, callback) => {\n\t\t\t\tconst descriptionFilePath = resolver.join(directory, filename);\n\n\t\t\t\t/**\n\t\t\t\t * @param {(null | Error)=} err error\n\t\t\t\t * @param {JsonObject=} resolvedContent content\n\t\t\t\t * @returns {void}\n\t\t\t\t */\n\t\t\t\tfunction onJson(err, resolvedContent) {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\t\t\tresolveContext.log(\n\t\t\t\t\t\t\t\t`${descriptionFilePath} (directory description file): ${err}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terr.message = `${descriptionFilePath} (directory description file): ${err}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(null, {\n\t\t\t\t\t\tcontent: /** @type {JsonObject} */ (resolvedContent),\n\t\t\t\t\t\tdirectory,\n\t\t\t\t\t\tpath: descriptionFilePath,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (resolver.fileSystem.readJson) {\n\t\t\t\t\tresolver.fileSystem.readJson(descriptionFilePath, (err, content) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\ttypeof (/** @type {NodeJS.ErrnoException} */ (err).code) !==\n\t\t\t\t\t\t\t\t\"undefined\"\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tif (resolveContext.missingDependencies) {\n\t\t\t\t\t\t\t\t\tresolveContext.missingDependencies.add(descriptionFilePath);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn callback();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (resolveContext.fileDependencies) {\n\t\t\t\t\t\t\t\tresolveContext.fileDependencies.add(descriptionFilePath);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn onJson(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (resolveContext.fileDependencies) {\n\t\t\t\t\t\t\tresolveContext.fileDependencies.add(descriptionFilePath);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonJson(null, content);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tresolver.fileSystem.readFile(descriptionFilePath, (err, content) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tif (resolveContext.missingDependencies) {\n\t\t\t\t\t\t\t\tresolveContext.missingDependencies.add(descriptionFilePath);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn callback();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (resolveContext.fileDependencies) {\n\t\t\t\t\t\t\tresolveContext.fileDependencies.add(descriptionFilePath);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/** @type {JsonObject | undefined} */\n\t\t\t\t\t\tlet json;\n\n\t\t\t\t\t\tif (content) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tjson = JSON.parse(content.toString());\n\t\t\t\t\t\t\t} catch (/** @type {unknown} */ err_) {\n\t\t\t\t\t\t\t\treturn onJson(/** @type {Error} */ (err_));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn onJson(new Error(\"No content in file\"));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonJson(null, json);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\t/**\n\t\t\t * @param {(null | Error)=} err error\n\t\t\t * @param {(null | Result)=} result result\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\t(err, result) => {\n\t\t\t\tif (err) return callback(err);\n\t\t\t\tif (result) return callback(null, result);\n\t\t\t\tconst dir = cdUp(directory);\n\t\t\t\tif (!dir) {\n\t\t\t\t\treturn callback();\n\t\t\t\t}\n\t\t\t\tdirectory = dir;\n\t\t\t\treturn findDescriptionFile();\n\t\t\t},\n\t\t);\n\t})();\n}\n\n/**\n * @param {JsonObject} content content\n * @param {string | string[]} field field\n * @returns {JsonValue | undefined} field data\n */\nfunction getField(content, field) {\n\tif (!content) return undefined;\n\tif (Array.isArray(field)) {\n\t\t/** @type {JsonValue} */\n\t\tlet current = content;\n\t\tfor (let j = 0; j < field.length; j++) {\n\t\t\tif (current === null || typeof current !== \"object\") {\n\t\t\t\tcurrent = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurrent = /** @type {JsonValue} */ (\n\t\t\t\t/** @type {JsonObject} */\n\t\t\t\t(current)[field[j]]\n\t\t\t);\n\t\t}\n\t\treturn current;\n\t}\n\treturn content[field];\n}\n\nmodule.exports.cdUp = cdUp;\nmodule.exports.getField = getField;\nmodule.exports.loadDescriptionFile = loadDescriptionFile;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n\n/**\n * @param {Resolver} resolver resolver\n * @param {ResolveRequest} request string\n * @returns {string} inner request\n */\nmodule.exports = function getInnerRequest(resolver, request) {\n\tif (\n\t\ttypeof request.__innerRequest === \"string\" &&\n\t\trequest.__innerRequest_request === request.request &&\n\t\trequest.__innerRequest_relativePath === request.relativePath\n\t) {\n\t\treturn request.__innerRequest;\n\t}\n\t/** @type {string | undefined} */\n\tlet innerRequest;\n\tif (request.request) {\n\t\tinnerRequest = request.request;\n\t\tif (/^\\.\\.?(?:\\/|$)/.test(innerRequest) && request.relativePath) {\n\t\t\tinnerRequest = resolver.join(request.relativePath, innerRequest);\n\t\t}\n\t} else {\n\t\tinnerRequest = request.relativePath;\n\t}\n\t// eslint-disable-next-line camelcase\n\trequest.__innerRequest_request = request.request;\n\t// eslint-disable-next-line camelcase\n\trequest.__innerRequest_relativePath = request.relativePath;\n\treturn (request.__innerRequest = /** @type {string} */ (innerRequest));\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst DescriptionFileUtils = require(\"./DescriptionFileUtils\");\nconst getInnerRequest = require(\"./getInnerRequest\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").JsonPrimitive} JsonPrimitive */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class AliasFieldPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string | string[]} field field\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, field, target) {\n\t\tthis.source = source;\n\t\tthis.field = field;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"AliasFieldPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tif (!request.descriptionFileData) return callback();\n\t\t\t\tconst innerRequest = getInnerRequest(resolver, request);\n\t\t\t\tif (!innerRequest) return callback();\n\t\t\t\tconst fieldData = DescriptionFileUtils.getField(\n\t\t\t\t\trequest.descriptionFileData,\n\t\t\t\t\tthis.field,\n\t\t\t\t);\n\t\t\t\tif (fieldData === null || typeof fieldData !== \"object\") {\n\t\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\t\tresolveContext.log(\n\t\t\t\t\t\t\t`Field '${this.field}' doesn't contain a valid alias configuration`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn callback();\n\t\t\t\t}\n\t\t\t\t/** @type {JsonPrimitive | undefined} */\n\t\t\t\tconst data = Object.prototype.hasOwnProperty.call(\n\t\t\t\t\tfieldData,\n\t\t\t\t\tinnerRequest,\n\t\t\t\t)\n\t\t\t\t\t? /** @type {{ [Key in string]: JsonPrimitive }} */ (fieldData)[\n\t\t\t\t\t\t\tinnerRequest\n\t\t\t\t\t\t]\n\t\t\t\t\t: innerRequest.startsWith(\"./\")\n\t\t\t\t\t\t? /** @type {{ [Key in string]: JsonPrimitive }} */ (fieldData)[\n\t\t\t\t\t\t\t\tinnerRequest.slice(2)\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t: undefined;\n\t\t\t\tif (data === innerRequest) return callback();\n\t\t\t\tif (data === undefined) return callback();\n\t\t\t\tif (data === false) {\n\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\tconst ignoreObj = {\n\t\t\t\t\t\t...request,\n\t\t\t\t\t\tpath: false,\n\t\t\t\t\t};\n\t\t\t\t\tif (typeof resolveContext.yield === \"function\") {\n\t\t\t\t\t\tresolveContext.yield(ignoreObj);\n\t\t\t\t\t\treturn callback(null, null);\n\t\t\t\t\t}\n\t\t\t\t\treturn callback(null, ignoreObj);\n\t\t\t\t}\n\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\tconst obj = {\n\t\t\t\t\t...request,\n\t\t\t\t\tpath: /** @type {string} */ (request.descriptionFileRoot),\n\t\t\t\t\trequest: /** @type {string} */ (data),\n\t\t\t\t\tfullySpecified: false,\n\t\t\t\t};\n\t\t\t\tresolver.doResolve(\n\t\t\t\t\ttarget,\n\t\t\t\t\tobj,\n\t\t\t\t\t`aliased from description file ${\n\t\t\t\t\t\trequest.descriptionFilePath\n\t\t\t\t\t} with mapping '${innerRequest}' to '${/** @type {string} */ data}'`,\n\t\t\t\t\tresolveContext,\n\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\tif (err) return callback(err);\n\n\t\t\t\t\t\t// Don't allow other aliasing or raw request\n\t\t\t\t\t\tif (result === undefined) return callback(null, null);\n\t\t\t\t\t\tcallback(null, result);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst path = require(\"path\");\n\nconst CHAR_HASH = \"#\".charCodeAt(0);\nconst CHAR_SLASH = \"/\".charCodeAt(0);\nconst CHAR_BACKSLASH = \"\\\\\".charCodeAt(0);\nconst CHAR_A = \"A\".charCodeAt(0);\nconst CHAR_Z = \"Z\".charCodeAt(0);\nconst CHAR_LOWER_A = \"a\".charCodeAt(0);\nconst CHAR_LOWER_Z = \"z\".charCodeAt(0);\nconst CHAR_DOT = \".\".charCodeAt(0);\nconst CHAR_COLON = \":\".charCodeAt(0);\n\nconst posixNormalize = path.posix.normalize;\nconst winNormalize = path.win32.normalize;\n\n/**\n * @enum {number}\n */\nconst PathType = Object.freeze({\n\tEmpty: 0,\n\tNormal: 1,\n\tRelative: 2,\n\tAbsoluteWin: 3,\n\tAbsolutePosix: 4,\n\tInternal: 5,\n});\n\nconst deprecatedInvalidSegmentRegEx =\n\t/(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\\\|\\/|$)/i;\n\nconst invalidSegmentRegEx =\n\t/(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\\\|\\/|$)/i;\n\n/**\n * @param {string} maybePath a path\n * @returns {PathType} type of path\n */\nconst getType = (maybePath) => {\n\tswitch (maybePath.length) {\n\t\tcase 0:\n\t\t\treturn PathType.Empty;\n\t\tcase 1: {\n\t\t\tconst c0 = maybePath.charCodeAt(0);\n\t\t\tswitch (c0) {\n\t\t\t\tcase CHAR_DOT:\n\t\t\t\t\treturn PathType.Relative;\n\t\t\t\tcase CHAR_SLASH:\n\t\t\t\t\treturn PathType.AbsolutePosix;\n\t\t\t\tcase CHAR_HASH:\n\t\t\t\t\treturn PathType.Internal;\n\t\t\t}\n\t\t\treturn PathType.Normal;\n\t\t}\n\t\tcase 2: {\n\t\t\tconst c0 = maybePath.charCodeAt(0);\n\t\t\tswitch (c0) {\n\t\t\t\tcase CHAR_DOT: {\n\t\t\t\t\tconst c1 = maybePath.charCodeAt(1);\n\t\t\t\t\tswitch (c1) {\n\t\t\t\t\t\tcase CHAR_DOT:\n\t\t\t\t\t\tcase CHAR_SLASH:\n\t\t\t\t\t\t\treturn PathType.Relative;\n\t\t\t\t\t}\n\t\t\t\t\treturn PathType.Normal;\n\t\t\t\t}\n\t\t\t\tcase CHAR_SLASH:\n\t\t\t\t\treturn PathType.AbsolutePosix;\n\t\t\t\tcase CHAR_HASH:\n\t\t\t\t\treturn PathType.Internal;\n\t\t\t}\n\t\t\tconst c1 = maybePath.charCodeAt(1);\n\t\t\tif (\n\t\t\t\tc1 === CHAR_COLON &&\n\t\t\t\t((c0 >= CHAR_A && c0 <= CHAR_Z) ||\n\t\t\t\t\t(c0 >= CHAR_LOWER_A && c0 <= CHAR_LOWER_Z))\n\t\t\t) {\n\t\t\t\treturn PathType.AbsoluteWin;\n\t\t\t}\n\t\t\treturn PathType.Normal;\n\t\t}\n\t}\n\tconst c0 = maybePath.charCodeAt(0);\n\tswitch (c0) {\n\t\tcase CHAR_DOT: {\n\t\t\tconst c1 = maybePath.charCodeAt(1);\n\t\t\tswitch (c1) {\n\t\t\t\tcase CHAR_SLASH:\n\t\t\t\t\treturn PathType.Relative;\n\t\t\t\tcase CHAR_DOT: {\n\t\t\t\t\tconst c2 = maybePath.charCodeAt(2);\n\t\t\t\t\tif (c2 === CHAR_SLASH) return PathType.Relative;\n\t\t\t\t\treturn PathType.Normal;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn PathType.Normal;\n\t\t}\n\t\tcase CHAR_SLASH:\n\t\t\treturn PathType.AbsolutePosix;\n\t\tcase CHAR_HASH:\n\t\t\treturn PathType.Internal;\n\t}\n\tconst c1 = maybePath.charCodeAt(1);\n\tif (c1 === CHAR_COLON) {\n\t\tconst c2 = maybePath.charCodeAt(2);\n\t\tif (\n\t\t\t(c2 === CHAR_BACKSLASH || c2 === CHAR_SLASH) &&\n\t\t\t((c0 >= CHAR_A && c0 <= CHAR_Z) ||\n\t\t\t\t(c0 >= CHAR_LOWER_A && c0 <= CHAR_LOWER_Z))\n\t\t) {\n\t\t\treturn PathType.AbsoluteWin;\n\t\t}\n\t}\n\treturn PathType.Normal;\n};\n\n/**\n * @param {string} maybePath a path\n * @returns {string} the normalized path\n */\nconst normalize = (maybePath) => {\n\tswitch (getType(maybePath)) {\n\t\tcase PathType.Empty:\n\t\t\treturn maybePath;\n\t\tcase PathType.AbsoluteWin:\n\t\t\treturn winNormalize(maybePath);\n\t\tcase PathType.Relative: {\n\t\t\tconst r = posixNormalize(maybePath);\n\t\t\treturn getType(r) === PathType.Relative ? r : `./${r}`;\n\t\t}\n\t}\n\treturn posixNormalize(maybePath);\n};\n\n/**\n * @param {string} rootPath the root path\n * @param {string | undefined} request the request path\n * @returns {string} the joined path\n */\nconst join = (rootPath, request) => {\n\tif (!request) return normalize(rootPath);\n\tconst requestType = getType(request);\n\tswitch (requestType) {\n\t\tcase PathType.AbsolutePosix:\n\t\t\treturn posixNormalize(request);\n\t\tcase PathType.AbsoluteWin:\n\t\t\treturn winNormalize(request);\n\t}\n\tswitch (getType(rootPath)) {\n\t\tcase PathType.Normal:\n\t\tcase PathType.Relative:\n\t\tcase PathType.AbsolutePosix:\n\t\t\treturn posixNormalize(`${rootPath}/${request}`);\n\t\tcase PathType.AbsoluteWin:\n\t\t\treturn winNormalize(`${rootPath}\\\\${request}`);\n\t}\n\tswitch (requestType) {\n\t\tcase PathType.Empty:\n\t\t\treturn rootPath;\n\t\tcase PathType.Relative: {\n\t\t\tconst r = posixNormalize(rootPath);\n\t\t\treturn getType(r) === PathType.Relative ? r : `./${r}`;\n\t\t}\n\t}\n\treturn posixNormalize(rootPath);\n};\n\n/**\n * @param {string} maybePath a path\n * @returns {string} the directory name\n */\nconst dirname = (maybePath) => {\n\tswitch (getType(maybePath)) {\n\t\tcase PathType.AbsoluteWin:\n\t\t\treturn path.win32.dirname(maybePath);\n\t}\n\treturn path.posix.dirname(maybePath);\n};\n\n/** @type {Map<string, Map<string, string | undefined>>} */\nconst joinCache = new Map();\n\n/**\n * @param {string} rootPath the root path\n * @param {string} request the request path\n * @returns {string} the joined path\n */\nconst cachedJoin = (rootPath, request) => {\n\t/** @type {string | undefined} */\n\tlet cacheEntry;\n\tlet cache = joinCache.get(rootPath);\n\tif (cache === undefined) {\n\t\tjoinCache.set(rootPath, (cache = new Map()));\n\t} else {\n\t\tcacheEntry = cache.get(request);\n\t\tif (cacheEntry !== undefined) return cacheEntry;\n\t}\n\tcacheEntry = join(rootPath, request);\n\tcache.set(request, cacheEntry);\n\treturn cacheEntry;\n};\n\n/** @type {Map<string, string>} */\nconst dirnameCache = new Map();\n\n/**\n * @param {string} maybePath a path\n * @returns {string} the directory name\n */\nconst cachedDirname = (maybePath) => {\n\tconst cacheEntry = dirnameCache.get(maybePath);\n\tif (cacheEntry !== undefined) return cacheEntry;\n\tconst result = dirname(maybePath);\n\tdirnameCache.set(maybePath, result);\n\treturn result;\n};\n\n/**\n * Check if childPath is a subdirectory of parentPath\n * @param {string} parentPath parent directory path\n * @param {string} childPath child path to check\n * @returns {boolean} true if childPath is under parentPath\n */\nconst isSubPath = (parentPath, childPath) => {\n\t// Ensure parentPath ends with a separator to avoid false matches\n\t// e.g., \"/app\" shouldn't match \"/app-other\"\n\tconst parentWithSlash =\n\t\tparentPath.endsWith(\"/\") || parentPath.endsWith(\"\\\\\")\n\t\t\t? parentPath\n\t\t\t: normalize(`${parentPath}/`);\n\n\treturn childPath.startsWith(parentWithSlash);\n};\n\nmodule.exports.PathType = PathType;\nmodule.exports.cachedDirname = cachedDirname;\nmodule.exports.cachedJoin = cachedJoin;\nmodule.exports.deprecatedInvalidSegmentRegEx = deprecatedInvalidSegmentRegEx;\nmodule.exports.dirname = dirname;\nmodule.exports.getType = getType;\nmodule.exports.invalidSegmentRegEx = invalidSegmentRegEx;\nmodule.exports.isSubPath = isSubPath;\nmodule.exports.join = join;\nmodule.exports.normalize = normalize;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst forEachBail = require(\"./forEachBail\");\nconst { PathType, getType } = require(\"./util/path\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveContext} ResolveContext */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n/** @typedef {import(\"./Resolver\").ResolveCallback} ResolveCallback */\n/** @typedef {string | string[] | false} Alias */\n/** @typedef {{ alias: Alias, name: string, onlyModule?: boolean }} AliasOption */\n\n/** @typedef {(err?: null | Error, result?: null | ResolveRequest) => void} InnerCallback */\n/**\n * @param {Resolver} resolver resolver\n * @param {AliasOption[]} options options\n * @param {ResolveStepHook} target target\n * @param {ResolveRequest} request request\n * @param {ResolveContext} resolveContext resolve context\n * @param {InnerCallback} callback callback\n * @returns {void}\n */\nfunction aliasResolveHandler(\n\tresolver,\n\toptions,\n\ttarget,\n\trequest,\n\tresolveContext,\n\tcallback,\n) {\n\tconst innerRequest = request.request || request.path;\n\tif (!innerRequest) return callback();\n\n\t/**\n\t * @param {string} maybeAbsolutePath path\n\t * @returns {null | string} absolute path with slash ending\n\t */\n\tconst getAbsolutePathWithSlashEnding = (maybeAbsolutePath) => {\n\t\tconst type = getType(maybeAbsolutePath);\n\t\tif (type === PathType.AbsolutePosix || type === PathType.AbsoluteWin) {\n\t\t\treturn resolver.join(maybeAbsolutePath, \"_\").slice(0, -1);\n\t\t}\n\t\treturn null;\n\t};\n\t/**\n\t * @param {string} path path\n\t * @param {string} maybeSubPath sub path\n\t * @returns {boolean} true, if path is sub path\n\t */\n\tconst isSubPath = (path, maybeSubPath) => {\n\t\tconst absolutePath = getAbsolutePathWithSlashEnding(maybeSubPath);\n\t\tif (!absolutePath) return false;\n\t\treturn path.startsWith(absolutePath);\n\t};\n\n\tforEachBail(\n\t\toptions,\n\t\t(item, callback) => {\n\t\t\t/** @type {boolean} */\n\t\t\tlet shouldStop = false;\n\n\t\t\tconst matchRequest =\n\t\t\t\tinnerRequest === item.name ||\n\t\t\t\t(!item.onlyModule &&\n\t\t\t\t\t(request.request\n\t\t\t\t\t\t? innerRequest.startsWith(`${item.name}/`)\n\t\t\t\t\t\t: isSubPath(innerRequest, item.name)));\n\n\t\t\tconst splitName = item.name.split(\"*\");\n\t\t\tconst matchWildcard = !item.onlyModule && splitName.length === 2;\n\n\t\t\tif (matchRequest || matchWildcard) {\n\t\t\t\t/**\n\t\t\t\t * @param {Alias} alias alias\n\t\t\t\t * @param {(err?: null | Error, result?: null | ResolveRequest) => void} callback callback\n\t\t\t\t * @returns {void}\n\t\t\t\t */\n\t\t\t\tconst resolveWithAlias = (alias, callback) => {\n\t\t\t\t\tif (alias === false) {\n\t\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\t\tconst ignoreObj = {\n\t\t\t\t\t\t\t...request,\n\t\t\t\t\t\t\tpath: false,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (typeof resolveContext.yield === \"function\") {\n\t\t\t\t\t\t\tresolveContext.yield(ignoreObj);\n\t\t\t\t\t\t\treturn callback(null, null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn callback(null, ignoreObj);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet newRequestStr;\n\n\t\t\t\t\tconst [prefix, suffix] = splitName;\n\t\t\t\t\tif (\n\t\t\t\t\t\tmatchWildcard &&\n\t\t\t\t\t\tinnerRequest.startsWith(prefix) &&\n\t\t\t\t\t\tinnerRequest.endsWith(suffix)\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst match = innerRequest.slice(\n\t\t\t\t\t\t\tprefix.length,\n\t\t\t\t\t\t\tinnerRequest.length - suffix.length,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tnewRequestStr = alias.toString().replace(\"*\", match);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tmatchRequest &&\n\t\t\t\t\t\tinnerRequest !== alias &&\n\t\t\t\t\t\t!innerRequest.startsWith(`${alias}/`)\n\t\t\t\t\t) {\n\t\t\t\t\t\t/** @type {string} */\n\t\t\t\t\t\tconst remainingRequest = innerRequest.slice(item.name.length);\n\t\t\t\t\t\tnewRequestStr = alias + remainingRequest;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (newRequestStr !== undefined) {\n\t\t\t\t\t\tshouldStop = true;\n\t\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\t\tconst obj = {\n\t\t\t\t\t\t\t...request,\n\t\t\t\t\t\t\trequest: newRequestStr,\n\t\t\t\t\t\t\tfullySpecified: false,\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn resolver.doResolve(\n\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\tobj,\n\t\t\t\t\t\t\t`aliased with mapping '${item.name}': '${alias}' to '${newRequestStr}'`,\n\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\t\t\t\tif (result) return callback(null, result);\n\t\t\t\t\t\t\t\treturn callback();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn callback();\n\t\t\t\t};\n\n\t\t\t\t/**\n\t\t\t\t * @param {(null | Error)=} err error\n\t\t\t\t * @param {(null | ResolveRequest)=} result result\n\t\t\t\t * @returns {void}\n\t\t\t\t */\n\t\t\t\tconst stoppingCallback = (err, result) => {\n\t\t\t\t\tif (err) return callback(err);\n\n\t\t\t\t\tif (result) return callback(null, result);\n\t\t\t\t\t// Don't allow other aliasing or raw request\n\t\t\t\t\tif (shouldStop) return callback(null, null);\n\t\t\t\t\treturn callback();\n\t\t\t\t};\n\n\t\t\t\tif (Array.isArray(item.alias)) {\n\t\t\t\t\treturn forEachBail(item.alias, resolveWithAlias, stoppingCallback);\n\t\t\t\t}\n\t\t\t\treturn resolveWithAlias(item.alias, stoppingCallback);\n\t\t\t}\n\n\t\t\treturn callback();\n\t\t},\n\t\tcallback,\n\t);\n}\n\nmodule.exports.aliasResolveHandler = aliasResolveHandler;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n/** @typedef {string | string[] | false} Alias */\n/** @typedef {{ alias: Alias, name: string, onlyModule?: boolean }} AliasOption */\n\nconst { aliasResolveHandler } = require(\"./AliasUtils\");\n\nmodule.exports = class AliasPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {AliasOption | AliasOption[]} options options\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, options, target) {\n\t\tthis.source = source;\n\t\tthis.options = Array.isArray(options) ? options : [options];\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"AliasPlugin\", (request, resolveContext, callback) => {\n\t\t\t\taliasResolveHandler(\n\t\t\t\t\tresolver,\n\t\t\t\t\tthis.options,\n\t\t\t\t\ttarget,\n\t\t\t\t\trequest,\n\t\t\t\t\tresolveContext,\n\t\t\t\t\tcallback,\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class AppendPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string} appending appending\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, appending, target) {\n\t\tthis.source = source;\n\t\tthis.appending = appending;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"AppendPlugin\", (request, resolveContext, callback) => {\n\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\tconst obj = {\n\t\t\t\t\t...request,\n\t\t\t\t\tpath: request.path + this.appending,\n\t\t\t\t\trelativePath:\n\t\t\t\t\t\trequest.relativePath && request.relativePath + this.appending,\n\t\t\t\t};\n\t\t\t\tresolver.doResolve(\n\t\t\t\t\ttarget,\n\t\t\t\t\tobj,\n\t\t\t\t\tthis.appending,\n\t\t\t\t\tresolveContext,\n\t\t\t\t\tcallback,\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class ConditionalPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {Partial<ResolveRequest>} test compare object\n\t * @param {string | null} message log message\n\t * @param {boolean} allowAlternatives when false, do not continue with the current step when \"test\" matches\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, test, message, allowAlternatives, target) {\n\t\tthis.source = source;\n\t\tthis.test = test;\n\t\tthis.message = message;\n\t\tthis.allowAlternatives = allowAlternatives;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tconst { test, message, allowAlternatives } = this;\n\t\tconst keys = /** @type {(keyof ResolveRequest)[]} */ (Object.keys(test));\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"ConditionalPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tfor (const prop of keys) {\n\t\t\t\t\tif (request[prop] !== test[prop]) return callback();\n\t\t\t\t}\n\t\t\t\tresolver.doResolve(\n\t\t\t\t\ttarget,\n\t\t\t\t\trequest,\n\t\t\t\t\tmessage,\n\t\t\t\t\tresolveContext,\n\t\t\t\t\tallowAlternatives\n\t\t\t\t\t\t? callback\n\t\t\t\t\t\t: (err, result) => {\n\t\t\t\t\t\t\t\tif (err) return callback(err);\n\n\t\t\t\t\t\t\t\t// Don't allow other alternatives\n\t\t\t\t\t\t\t\tif (result === undefined) return callback(null, null);\n\t\t\t\t\t\t\t\tcallback(null, result);\n\t\t\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst DescriptionFileUtils = require(\"./DescriptionFileUtils\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class DescriptionFilePlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string[]} filenames filenames\n\t * @param {boolean} pathIsFile pathIsFile\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, filenames, pathIsFile, target) {\n\t\tthis.source = source;\n\t\tthis.filenames = filenames;\n\t\tthis.pathIsFile = pathIsFile;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\n\t\t\t\t\"DescriptionFilePlugin\",\n\t\t\t\t(request, resolveContext, callback) => {\n\t\t\t\t\tconst { path } = request;\n\t\t\t\t\tif (!path) return callback();\n\t\t\t\t\tconst directory = this.pathIsFile\n\t\t\t\t\t\t? DescriptionFileUtils.cdUp(path)\n\t\t\t\t\t\t: path;\n\t\t\t\t\tif (!directory) return callback();\n\t\t\t\t\tDescriptionFileUtils.loadDescriptionFile(\n\t\t\t\t\t\tresolver,\n\t\t\t\t\t\tdirectory,\n\t\t\t\t\t\tthis.filenames,\n\t\t\t\t\t\trequest.descriptionFilePath\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tpath: request.descriptionFilePath,\n\t\t\t\t\t\t\t\t\tcontent: request.descriptionFileData,\n\t\t\t\t\t\t\t\t\tdirectory:\n\t\t\t\t\t\t\t\t\t\t/** @type {string} */\n\t\t\t\t\t\t\t\t\t\t(request.descriptionFileRoot),\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\t\t\tif (!result) {\n\t\t\t\t\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\t\t\t\t\tresolveContext.log(\n\t\t\t\t\t\t\t\t\t\t`No description file found in ${directory} or above`,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn callback();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst relativePath = `.${path\n\t\t\t\t\t\t\t\t.slice(result.directory.length)\n\t\t\t\t\t\t\t\t.replace(/\\\\/g, \"/\")}`;\n\t\t\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\t\t\tconst obj = {\n\t\t\t\t\t\t\t\t...request,\n\t\t\t\t\t\t\t\tdescriptionFilePath: result.path,\n\t\t\t\t\t\t\t\tdescriptionFileData: result.content,\n\t\t\t\t\t\t\t\tdescriptionFileRoot: result.directory,\n\t\t\t\t\t\t\t\trelativePath,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tresolver.doResolve(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tobj,\n\t\t\t\t\t\t\t\t`using description file: ${result.path} (relative path: ${relativePath})`,\n\t\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\t\t\t\tif (err) return callback(err);\n\n\t\t\t\t\t\t\t\t\t// Don't allow other processing\n\t\t\t\t\t\t\t\t\tif (result === undefined) return callback(null, null);\n\t\t\t\t\t\t\t\t\tcallback(null, result);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t);\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class DirectoryExistsPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, target) {\n\t\tthis.source = source;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\n\t\t\t\t\"DirectoryExistsPlugin\",\n\t\t\t\t(request, resolveContext, callback) => {\n\t\t\t\t\tconst fs = resolver.fileSystem;\n\t\t\t\t\tconst directory = request.path;\n\t\t\t\t\tif (!directory) return callback();\n\t\t\t\t\tfs.stat(directory, (err, stat) => {\n\t\t\t\t\t\tif (err || !stat) {\n\t\t\t\t\t\t\tif (resolveContext.missingDependencies) {\n\t\t\t\t\t\t\t\tresolveContext.missingDependencies.add(directory);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\t\t\t\tresolveContext.log(`${directory} doesn't exist`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn callback();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!stat.isDirectory()) {\n\t\t\t\t\t\t\tif (resolveContext.missingDependencies) {\n\t\t\t\t\t\t\t\tresolveContext.missingDependencies.add(directory);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\t\t\t\tresolveContext.log(`${directory} is not a directory`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn callback();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (resolveContext.fileDependencies) {\n\t\t\t\t\t\t\tresolveContext.fileDependencies.add(directory);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolver.doResolve(\n\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t\t`existing directory ${directory}`,\n\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t\tcallback,\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t);\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Ivan Kopeykin @vankop\n*/\n\n\"use strict\";\n\nconst memorize = require(\"./memoize\");\n\nconst getUrl = memorize(() => require(\"url\"));\n\nconst PATH_QUERY_FRAGMENT_REGEXP =\n\t/^(#?(?:\\0.|[^?#\\0])*)(\\?(?:\\0.|[^#\\0])*)?(#.*)?$/;\nconst ZERO_ESCAPE_REGEXP = /\\0(.)/g;\nconst FILE_REG_EXP = /file:/i;\n\n/**\n * @param {string} identifier identifier\n * @returns {[string, string, string] | null} parsed identifier\n */\nfunction parseIdentifier(identifier) {\n\tif (!identifier) {\n\t\treturn null;\n\t}\n\n\tif (FILE_REG_EXP.test(identifier)) {\n\t\tidentifier = getUrl().fileURLToPath(identifier);\n\t}\n\n\tconst firstEscape = identifier.indexOf(\"\\0\");\n\n\t// Handle `\\0`\n\tif (firstEscape !== -1) {\n\t\tconst match = PATH_QUERY_FRAGMENT_REGEXP.exec(identifier);\n\n\t\tif (!match) return null;\n\n\t\treturn [\n\t\t\tmatch[1].replace(ZERO_ESCAPE_REGEXP, \"$1\"),\n\t\t\tmatch[2] ? match[2].replace(ZERO_ESCAPE_REGEXP, \"$1\") : \"\",\n\t\t\tmatch[3] || \"\",\n\t\t];\n\t}\n\n\t// Fast path for inputs that don't use \\0 escaping.\n\tconst queryStart = identifier.indexOf(\"?\");\n\t// Start at index 1 to ignore a possible leading hash.\n\tconst fragmentStart = identifier.indexOf(\"#\", 1);\n\n\tif (fragmentStart < 0) {\n\t\tif (queryStart < 0) {\n\t\t\t// No fragment, no query\n\t\t\treturn [identifier, \"\", \"\"];\n\t\t}\n\n\t\t// Query, no fragment\n\t\treturn [identifier.slice(0, queryStart), identifier.slice(queryStart), \"\"];\n\t}\n\n\tif (queryStart < 0 || fragmentStart < queryStart) {\n\t\t// Fragment, no query\n\t\treturn [\n\t\t\tidentifier.slice(0, fragmentStart),\n\t\t\t\"\",\n\t\t\tidentifier.slice(fragmentStart),\n\t\t];\n\t}\n\n\t// Query and fragment\n\treturn [\n\t\tidentifier.slice(0, queryStart),\n\t\tidentifier.slice(queryStart, fragmentStart),\n\t\tidentifier.slice(fragmentStart),\n\t];\n}\n\nmodule.exports.parseIdentifier = parseIdentifier;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Ivan Kopeykin @vankop\n*/\n\n\"use strict\";\n\nconst { parseIdentifier } = require(\"./identifier\");\n\n/** @typedef {string | (string | ConditionalMapping)[]} DirectMapping */\n/** @typedef {{ [k: string]: MappingValue }} ConditionalMapping */\n/** @typedef {ConditionalMapping | DirectMapping | null} MappingValue */\n/** @typedef {Record<string, MappingValue> | ConditionalMapping | DirectMapping} ExportsField */\n/** @typedef {Record<string, MappingValue>} ImportsField */\n\n/**\n * Processing exports/imports field\n * @callback FieldProcessor\n * @param {string} request request\n * @param {Set<string>} conditionNames condition names\n * @returns {[string[], string | null]} resolved paths with used field\n */\n\n/*\nExample exports field:\n{\n  \".\": \"./main.js\",\n  \"./feature\": {\n    \"browser\": \"./feature-browser.js\",\n    \"default\": \"./feature.js\"\n  }\n}\nTerminology:\n\nEnhanced-resolve name keys (\".\" and \"./feature\") as exports field keys.\n\nIf value is string or string[], mapping is called as a direct mapping\nand value called as a direct export.\n\nIf value is key-value object, mapping is called as a conditional mapping\nand value called as a conditional export.\n\nKey in conditional mapping is called condition name.\n\nConditional mapping nested in another conditional mapping is called nested mapping.\n\n----------\n\nExample imports field:\n{\n  \"#a\": \"./main.js\",\n  \"#moment\": {\n    \"browser\": \"./moment/index.js\",\n    \"default\": \"moment\"\n  },\n  \"#moment/\": {\n    \"browser\": \"./moment/\",\n    \"default\": \"moment/\"\n  }\n}\nTerminology:\n\nEnhanced-resolve name keys (\"#a\" and \"#moment/\", \"#moment\") as imports field keys.\n\nIf value is string or string[], mapping is called as a direct mapping\nand value called as a direct export.\n\nIf value is key-value object, mapping is called as a conditional mapping\nand value called as a conditional export.\n\nKey in conditional mapping is called condition name.\n\nConditional mapping nested in another conditional mapping is called nested mapping.\n\n*/\n\nconst slashCode = \"/\".charCodeAt(0);\nconst dotCode = \".\".charCodeAt(0);\nconst hashCode = \"#\".charCodeAt(0);\nconst patternRegEx = /\\*/g;\n\n/**\n * @param {string} a first string\n * @param {string} b second string\n * @returns {number} compare result\n */\nfunction patternKeyCompare(a, b) {\n\tconst aPatternIndex = a.indexOf(\"*\");\n\tconst bPatternIndex = b.indexOf(\"*\");\n\tconst baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;\n\tconst baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;\n\n\tif (baseLenA > baseLenB) return -1;\n\tif (baseLenB > baseLenA) return 1;\n\tif (aPatternIndex === -1) return 1;\n\tif (bPatternIndex === -1) return -1;\n\tif (a.length > b.length) return -1;\n\tif (b.length > a.length) return 1;\n\n\treturn 0;\n}\n\n/**\n * Trying to match request to field\n * @param {string} request request\n * @param {ExportsField | ImportsField} field exports or import field\n * @returns {[MappingValue, string, boolean, boolean, string] | null} match or null, number is negative and one less when it's a folder mapping, number is request.length + 1 for direct mappings\n */\nfunction findMatch(request, field) {\n\tif (\n\t\tObject.prototype.hasOwnProperty.call(field, request) &&\n\t\t!request.includes(\"*\") &&\n\t\t!request.endsWith(\"/\")\n\t) {\n\t\tconst target = /** @type {{ [k: string]: MappingValue }} */ (field)[\n\t\t\trequest\n\t\t];\n\n\t\treturn [target, \"\", false, false, request];\n\t}\n\n\t/** @type {string} */\n\tlet bestMatch = \"\";\n\t/** @type {string | undefined} */\n\tlet bestMatchSubpath;\n\n\tconst keys = Object.getOwnPropertyNames(field);\n\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key = keys[i];\n\t\tconst patternIndex = key.indexOf(\"*\");\n\n\t\tif (patternIndex !== -1 && request.startsWith(key.slice(0, patternIndex))) {\n\t\t\tconst patternTrailer = key.slice(patternIndex + 1);\n\n\t\t\tif (\n\t\t\t\trequest.length >= key.length &&\n\t\t\t\trequest.endsWith(patternTrailer) &&\n\t\t\t\tpatternKeyCompare(bestMatch, key) === 1 &&\n\t\t\t\tkey.lastIndexOf(\"*\") === patternIndex\n\t\t\t) {\n\t\t\t\tbestMatch = key;\n\t\t\t\tbestMatchSubpath = request.slice(\n\t\t\t\t\tpatternIndex,\n\t\t\t\t\trequest.length - patternTrailer.length,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// For legacy `./foo/`\n\t\telse if (\n\t\t\tkey[key.length - 1] === \"/\" &&\n\t\t\trequest.startsWith(key) &&\n\t\t\tpatternKeyCompare(bestMatch, key) === 1\n\t\t) {\n\t\t\tbestMatch = key;\n\t\t\tbestMatchSubpath = request.slice(key.length);\n\t\t}\n\t}\n\n\tif (bestMatch === \"\") return null;\n\n\tconst target =\n\t\t/** @type {{ [k: string]: MappingValue }} */\n\t\t(field)[bestMatch];\n\tconst isSubpathMapping = bestMatch.endsWith(\"/\");\n\tconst isPattern = bestMatch.includes(\"*\");\n\n\treturn [\n\t\ttarget,\n\t\t/** @type {string} */ (bestMatchSubpath),\n\t\tisSubpathMapping,\n\t\tisPattern,\n\t\tbestMatch,\n\t];\n}\n\n/**\n * @param {ConditionalMapping | DirectMapping | null} mapping mapping\n * @returns {boolean} is conditional mapping\n */\nfunction isConditionalMapping(mapping) {\n\treturn (\n\t\tmapping !== null && typeof mapping === \"object\" && !Array.isArray(mapping)\n\t);\n}\n\n/**\n * @param {ConditionalMapping} conditionalMapping_ conditional mapping\n * @param {Set<string>} conditionNames condition names\n * @returns {DirectMapping | null} direct mapping if found\n */\nfunction conditionalMapping(conditionalMapping_, conditionNames) {\n\t/** @type {[ConditionalMapping, string[], number][]} */\n\tconst lookup = [[conditionalMapping_, Object.keys(conditionalMapping_), 0]];\n\n\tloop: while (lookup.length > 0) {\n\t\tconst [mapping, conditions, j] = lookup[lookup.length - 1];\n\n\t\tfor (let i = j; i < conditions.length; i++) {\n\t\t\tconst condition = conditions[i];\n\n\t\t\tif (condition === \"default\") {\n\t\t\t\tconst innerMapping = mapping[condition];\n\t\t\t\t// is nested\n\t\t\t\tif (isConditionalMapping(innerMapping)) {\n\t\t\t\t\tconst conditionalMapping = /** @type {ConditionalMapping} */ (\n\t\t\t\t\t\tinnerMapping\n\t\t\t\t\t);\n\t\t\t\t\tlookup[lookup.length - 1][2] = i + 1;\n\t\t\t\t\tlookup.push([conditionalMapping, Object.keys(conditionalMapping), 0]);\n\t\t\t\t\tcontinue loop;\n\t\t\t\t}\n\n\t\t\t\treturn /** @type {DirectMapping} */ (innerMapping);\n\t\t\t}\n\n\t\t\tif (conditionNames.has(condition)) {\n\t\t\t\tconst innerMapping = mapping[condition];\n\t\t\t\t// is nested\n\t\t\t\tif (isConditionalMapping(innerMapping)) {\n\t\t\t\t\tconst conditionalMapping = /** @type {ConditionalMapping} */ (\n\t\t\t\t\t\tinnerMapping\n\t\t\t\t\t);\n\t\t\t\t\tlookup[lookup.length - 1][2] = i + 1;\n\t\t\t\t\tlookup.push([conditionalMapping, Object.keys(conditionalMapping), 0]);\n\t\t\t\t\tcontinue loop;\n\t\t\t\t}\n\n\t\t\t\treturn /** @type {DirectMapping} */ (innerMapping);\n\t\t\t}\n\t\t}\n\n\t\tlookup.pop();\n\t}\n\n\treturn null;\n}\n\n/**\n * @param {string | undefined} remainingRequest remaining request when folder mapping, undefined for file mappings\n * @param {boolean} isPattern true, if mapping is a pattern (contains \"*\")\n * @param {boolean} isSubpathMapping true, for subpath mappings\n * @param {string} mappingTarget direct export\n * @param {(d: string, f: boolean) => void} assert asserting direct value\n * @returns {string} mapping result\n */\nfunction targetMapping(\n\tremainingRequest,\n\tisPattern,\n\tisSubpathMapping,\n\tmappingTarget,\n\tassert,\n) {\n\tif (remainingRequest === undefined) {\n\t\tassert(mappingTarget, false);\n\n\t\treturn mappingTarget;\n\t}\n\n\tif (isSubpathMapping) {\n\t\tassert(mappingTarget, true);\n\n\t\treturn mappingTarget + remainingRequest;\n\t}\n\n\tassert(mappingTarget, false);\n\n\tlet result = mappingTarget;\n\n\tif (isPattern) {\n\t\tresult = result.replace(\n\t\t\tpatternRegEx,\n\t\t\tremainingRequest.replace(/\\$/g, \"$$\"),\n\t\t);\n\t}\n\n\treturn result;\n}\n\n/**\n * @param {string | undefined} remainingRequest remaining request when folder mapping, undefined for file mappings\n * @param {boolean} isPattern true, if mapping is a pattern (contains \"*\")\n * @param {boolean} isSubpathMapping true, for subpath mappings\n * @param {DirectMapping | null} mappingTarget direct export\n * @param {Set<string>} conditionNames condition names\n * @param {(d: string, f: boolean) => void} assert asserting direct value\n * @returns {string[]} mapping result\n */\nfunction directMapping(\n\tremainingRequest,\n\tisPattern,\n\tisSubpathMapping,\n\tmappingTarget,\n\tconditionNames,\n\tassert,\n) {\n\tif (mappingTarget === null) return [];\n\n\tif (typeof mappingTarget === \"string\") {\n\t\treturn [\n\t\t\ttargetMapping(\n\t\t\t\tremainingRequest,\n\t\t\t\tisPattern,\n\t\t\t\tisSubpathMapping,\n\t\t\t\tmappingTarget,\n\t\t\t\tassert,\n\t\t\t),\n\t\t];\n\t}\n\n\t/** @type {string[]} */\n\tconst targets = [];\n\n\tfor (const exp of mappingTarget) {\n\t\tif (typeof exp === \"string\") {\n\t\t\ttargets.push(\n\t\t\t\ttargetMapping(\n\t\t\t\t\tremainingRequest,\n\t\t\t\t\tisPattern,\n\t\t\t\t\tisSubpathMapping,\n\t\t\t\t\texp,\n\t\t\t\t\tassert,\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst mapping = conditionalMapping(exp, conditionNames);\n\t\tif (!mapping) continue;\n\t\tconst innerExports = directMapping(\n\t\t\tremainingRequest,\n\t\t\tisPattern,\n\t\t\tisSubpathMapping,\n\t\t\tmapping,\n\t\t\tconditionNames,\n\t\t\tassert,\n\t\t);\n\t\tfor (const innerExport of innerExports) {\n\t\t\ttargets.push(innerExport);\n\t\t}\n\t}\n\n\treturn targets;\n}\n\n/**\n * @param {ExportsField | ImportsField} field root\n * @param {(s: string) => string} normalizeRequest Normalize request, for `imports` field it adds `#`, for `exports` field it adds `.` or `./`\n * @param {(s: string) => string} assertRequest assertRequest\n * @param {(s: string, f: boolean) => void} assertTarget assertTarget\n * @returns {FieldProcessor} field processor\n */\nfunction createFieldProcessor(\n\tfield,\n\tnormalizeRequest,\n\tassertRequest,\n\tassertTarget,\n) {\n\treturn function fieldProcessor(request, conditionNames) {\n\t\trequest = assertRequest(request);\n\n\t\tconst match = findMatch(normalizeRequest(request), field);\n\n\t\tif (match === null) return [[], null];\n\n\t\tconst [mapping, remainingRequest, isSubpathMapping, isPattern, usedField] =\n\t\t\tmatch;\n\n\t\t/** @type {DirectMapping | null} */\n\t\tlet direct = null;\n\n\t\tif (isConditionalMapping(mapping)) {\n\t\t\tdirect = conditionalMapping(\n\t\t\t\t/** @type {ConditionalMapping} */ (mapping),\n\t\t\t\tconditionNames,\n\t\t\t);\n\n\t\t\t// matching not found\n\t\t\tif (direct === null) return [[], null];\n\t\t} else {\n\t\t\tdirect = /** @type {DirectMapping} */ (mapping);\n\t\t}\n\n\t\treturn [\n\t\t\tdirectMapping(\n\t\t\t\tremainingRequest,\n\t\t\t\tisPattern,\n\t\t\t\tisSubpathMapping,\n\t\t\t\tdirect,\n\t\t\t\tconditionNames,\n\t\t\t\tassertTarget,\n\t\t\t),\n\t\t\tusedField,\n\t\t];\n\t};\n}\n\n/**\n * @param {string} request request\n * @returns {string} updated request\n */\nfunction assertExportsFieldRequest(request) {\n\tif (request.charCodeAt(0) !== dotCode) {\n\t\tthrow new Error('Request should be relative path and start with \".\"');\n\t}\n\tif (request.length === 1) return \"\";\n\tif (request.charCodeAt(1) !== slashCode) {\n\t\tthrow new Error('Request should be relative path and start with \"./\"');\n\t}\n\tif (request.charCodeAt(request.length - 1) === slashCode) {\n\t\tthrow new Error(\"Only requesting file allowed\");\n\t}\n\n\treturn request.slice(2);\n}\n\n/**\n * @param {ExportsField} field exports field\n * @returns {ExportsField} normalized exports field\n */\nfunction buildExportsField(field) {\n\t// handle syntax sugar, if exports field is direct mapping for \".\"\n\tif (typeof field === \"string\" || Array.isArray(field)) {\n\t\treturn { \".\": field };\n\t}\n\n\tconst keys = Object.keys(field);\n\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key = keys[i];\n\n\t\tif (key.charCodeAt(0) !== dotCode) {\n\t\t\t// handle syntax sugar, if exports field is conditional mapping for \".\"\n\t\t\tif (i === 0) {\n\t\t\t\twhile (i < keys.length) {\n\t\t\t\t\tconst charCode = keys[i].charCodeAt(0);\n\t\t\t\t\tif (charCode === dotCode || charCode === slashCode) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Exports field key should be relative path and start with \".\" (key: ${JSON.stringify(\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t)})`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\n\t\t\t\treturn { \".\": field };\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t`Exports field key should be relative path and start with \".\" (key: ${JSON.stringify(\n\t\t\t\t\tkey,\n\t\t\t\t)})`,\n\t\t\t);\n\t\t}\n\n\t\tif (key.length === 1) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key.charCodeAt(1) !== slashCode) {\n\t\t\tthrow new Error(\n\t\t\t\t`Exports field key should be relative path and start with \"./\" (key: ${JSON.stringify(\n\t\t\t\t\tkey,\n\t\t\t\t)})`,\n\t\t\t);\n\t\t}\n\t}\n\n\treturn field;\n}\n\n/**\n * @param {string} exp export target\n * @param {boolean} expectFolder is folder expected\n */\nfunction assertExportTarget(exp, expectFolder) {\n\tconst parsedIdentifier = parseIdentifier(exp);\n\n\tif (!parsedIdentifier) {\n\t\treturn;\n\t}\n\n\tconst [relativePath] = parsedIdentifier;\n\tconst isFolder =\n\t\trelativePath.charCodeAt(relativePath.length - 1) === slashCode;\n\n\tif (isFolder !== expectFolder) {\n\t\tthrow new Error(\n\t\t\texpectFolder\n\t\t\t\t? `Expecting folder to folder mapping. ${JSON.stringify(\n\t\t\t\t\t\texp,\n\t\t\t\t\t)} should end with \"/\"`\n\t\t\t\t: `Expecting file to file mapping. ${JSON.stringify(\n\t\t\t\t\t\texp,\n\t\t\t\t\t)} should not end with \"/\"`,\n\t\t);\n\t}\n}\n\n/**\n * @param {ExportsField} exportsField the exports field\n * @returns {FieldProcessor} process callback\n */\nmodule.exports.processExportsField = function processExportsField(\n\texportsField,\n) {\n\treturn createFieldProcessor(\n\t\tbuildExportsField(exportsField),\n\t\t(request) => (request.length === 0 ? \".\" : `./${request}`),\n\t\tassertExportsFieldRequest,\n\t\tassertExportTarget,\n\t);\n};\n\n/**\n * @param {string} request request\n * @returns {string} updated request\n */\nfunction assertImportsFieldRequest(request) {\n\tif (request.charCodeAt(0) !== hashCode) {\n\t\tthrow new Error('Request should start with \"#\"');\n\t}\n\tif (request.length === 1) {\n\t\tthrow new Error(\"Request should have at least 2 characters\");\n\t}\n\t// Note: #/ patterns are now allowed per Node.js PR #60864\n\t// https://github.com/nodejs/node/pull/60864\n\tif (request.charCodeAt(request.length - 1) === slashCode) {\n\t\tthrow new Error(\"Only requesting file allowed\");\n\t}\n\n\treturn request.slice(1);\n}\n\n/**\n * @param {string} imp import target\n * @param {boolean} expectFolder is folder expected\n */\nfunction assertImportTarget(imp, expectFolder) {\n\tconst parsedIdentifier = parseIdentifier(imp);\n\n\tif (!parsedIdentifier) {\n\t\treturn;\n\t}\n\n\tconst [relativePath] = parsedIdentifier;\n\tconst isFolder =\n\t\trelativePath.charCodeAt(relativePath.length - 1) === slashCode;\n\n\tif (isFolder !== expectFolder) {\n\t\tthrow new Error(\n\t\t\texpectFolder\n\t\t\t\t? `Expecting folder to folder mapping. ${JSON.stringify(\n\t\t\t\t\t\timp,\n\t\t\t\t\t)} should end with \"/\"`\n\t\t\t\t: `Expecting file to file mapping. ${JSON.stringify(\n\t\t\t\t\t\timp,\n\t\t\t\t\t)} should not end with \"/\"`,\n\t\t);\n\t}\n}\n\n/**\n * @param {ImportsField} importsField the exports field\n * @returns {FieldProcessor} process callback\n */\nmodule.exports.processImportsField = function processImportsField(\n\timportsField,\n) {\n\treturn createFieldProcessor(\n\t\timportsField,\n\t\t(request) => `#${request}`,\n\t\tassertImportsFieldRequest,\n\t\tassertImportTarget,\n\t);\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Ivan Kopeykin @vankop\n*/\n\n\"use strict\";\n\nconst DescriptionFileUtils = require(\"./DescriptionFileUtils\");\nconst forEachBail = require(\"./forEachBail\");\nconst { processExportsField } = require(\"./util/entrypoints\");\nconst { parseIdentifier } = require(\"./util/identifier\");\nconst {\n\tdeprecatedInvalidSegmentRegEx,\n\tinvalidSegmentRegEx,\n} = require(\"./util/path\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").JsonObject} JsonObject */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n/** @typedef {import(\"./util/entrypoints\").ExportsField} ExportsField */\n/** @typedef {import(\"./util/entrypoints\").FieldProcessor} FieldProcessor */\n\nmodule.exports = class ExportsFieldPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {Set<string>} conditionNames condition names\n\t * @param {string | string[]} fieldNamePath name path\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, conditionNames, fieldNamePath, target) {\n\t\tthis.source = source;\n\t\tthis.target = target;\n\t\tthis.conditionNames = conditionNames;\n\t\tthis.fieldName = fieldNamePath;\n\t\t/** @type {WeakMap<JsonObject, FieldProcessor>} */\n\t\tthis.fieldProcessorCache = new WeakMap();\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"ExportsFieldPlugin\", (request, resolveContext, callback) => {\n\t\t\t\t// When there is no description file, abort\n\t\t\t\tif (!request.descriptionFilePath) return callback();\n\t\t\t\tif (\n\t\t\t\t\t// When the description file is inherited from parent, abort\n\t\t\t\t\t// (There is no description file inside of this package)\n\t\t\t\t\trequest.relativePath !== \".\" ||\n\t\t\t\t\trequest.request === undefined\n\t\t\t\t) {\n\t\t\t\t\treturn callback();\n\t\t\t\t}\n\n\t\t\t\tconst remainingRequest =\n\t\t\t\t\trequest.query || request.fragment\n\t\t\t\t\t\t? (request.request === \".\" ? \"./\" : request.request) +\n\t\t\t\t\t\t\trequest.query +\n\t\t\t\t\t\t\trequest.fragment\n\t\t\t\t\t\t: request.request;\n\t\t\t\tconst exportsField =\n\t\t\t\t\t/** @type {ExportsField | null | undefined} */\n\t\t\t\t\t(\n\t\t\t\t\t\tDescriptionFileUtils.getField(\n\t\t\t\t\t\t\t/** @type {JsonObject} */ (request.descriptionFileData),\n\t\t\t\t\t\t\tthis.fieldName,\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\tif (!exportsField) return callback();\n\n\t\t\t\tif (request.directory) {\n\t\t\t\t\treturn callback(\n\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t`Resolving to directories is not possible with the exports field (request was ${remainingRequest}/)`,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t/** @type {string[]} */\n\t\t\t\tlet paths;\n\t\t\t\t/** @type {string | null} */\n\t\t\t\tlet usedField;\n\n\t\t\t\ttry {\n\t\t\t\t\t// We attach the cache to the description file instead of the exportsField value\n\t\t\t\t\t// because we use a WeakMap and the exportsField could be a string too.\n\t\t\t\t\t// Description file is always an object when exports field can be accessed.\n\t\t\t\t\tlet fieldProcessor = this.fieldProcessorCache.get(\n\t\t\t\t\t\t/** @type {JsonObject} */ (request.descriptionFileData),\n\t\t\t\t\t);\n\t\t\t\t\tif (fieldProcessor === undefined) {\n\t\t\t\t\t\tfieldProcessor = processExportsField(exportsField);\n\t\t\t\t\t\tthis.fieldProcessorCache.set(\n\t\t\t\t\t\t\t/** @type {JsonObject} */ (request.descriptionFileData),\n\t\t\t\t\t\t\tfieldProcessor,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t[paths, usedField] = fieldProcessor(\n\t\t\t\t\t\tremainingRequest,\n\t\t\t\t\t\tthis.conditionNames,\n\t\t\t\t\t);\n\t\t\t\t} catch (/** @type {unknown} */ err) {\n\t\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\t\tresolveContext.log(\n\t\t\t\t\t\t\t`Exports field in ${request.descriptionFilePath} can't be processed: ${err}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn callback(/** @type {Error} */ (err));\n\t\t\t\t}\n\n\t\t\t\tif (paths.length === 0) {\n\t\t\t\t\tconst conditions = [...this.conditionNames];\n\t\t\t\t\tconst conditionsStr =\n\t\t\t\t\t\tconditions.length === 1\n\t\t\t\t\t\t\t? `the condition \"${conditions[0]}\"`\n\t\t\t\t\t\t\t: `the conditions ${JSON.stringify(conditions)}`;\n\t\t\t\t\treturn callback(\n\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t`\"${remainingRequest}\" is not exported under ${conditionsStr} from package ${request.descriptionFileRoot} (see exports field in ${request.descriptionFilePath})`,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tforEachBail(\n\t\t\t\t\tpaths,\n\t\t\t\t\t/**\n\t\t\t\t\t * @param {string} path path\n\t\t\t\t\t * @param {(err?: null | Error, result?: null | ResolveRequest) => void} callback callback\n\t\t\t\t\t * @param {number} i index\n\t\t\t\t\t * @returns {void}\n\t\t\t\t\t */\n\t\t\t\t\t(path, callback, i) => {\n\t\t\t\t\t\tconst parsedIdentifier = parseIdentifier(path);\n\n\t\t\t\t\t\tif (!parsedIdentifier) return callback();\n\n\t\t\t\t\t\tconst [relativePath, query, fragment] = parsedIdentifier;\n\n\t\t\t\t\t\tif (relativePath.length === 0 || !relativePath.startsWith(\"./\")) {\n\t\t\t\t\t\t\tif (paths.length === i) {\n\t\t\t\t\t\t\t\treturn callback(\n\t\t\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t\t\t`Invalid \"exports\" target \"${path}\" defined for \"${usedField}\" in the package config ${request.descriptionFilePath}, targets must start with \"./\"`,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn callback();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tinvalidSegmentRegEx.exec(relativePath.slice(2)) !== null &&\n\t\t\t\t\t\t\tdeprecatedInvalidSegmentRegEx.test(relativePath.slice(2))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (paths.length === i) {\n\t\t\t\t\t\t\t\treturn callback(\n\t\t\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t\t\t`Invalid \"exports\" target \"${path}\" defined for \"${usedField}\" in the package config ${request.descriptionFilePath}, targets must start with \"./\"`,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn callback();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\t\tconst obj = {\n\t\t\t\t\t\t\t...request,\n\t\t\t\t\t\t\trequest: undefined,\n\t\t\t\t\t\t\tpath: resolver.join(\n\t\t\t\t\t\t\t\t/** @type {string} */ (request.descriptionFileRoot),\n\t\t\t\t\t\t\t\trelativePath,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\trelativePath,\n\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\tfragment,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tresolver.doResolve(\n\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\tobj,\n\t\t\t\t\t\t\t`using exports field: ${path}`,\n\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\t\t\t\t// Don't allow to continue - https://github.com/webpack/enhanced-resolve/issues/400\n\t\t\t\t\t\t\t\tif (result === undefined) return callback(null, null);\n\t\t\t\t\t\t\t\tcallback(null, result);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t\t/**\n\t\t\t\t\t * @param {(null | Error)=} err error\n\t\t\t\t\t * @param {(null | ResolveRequest)=} result result\n\t\t\t\t\t * @returns {void}\n\t\t\t\t\t */\n\t\t\t\t\t(err, result) => callback(err, result || null),\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Ivan Kopeykin @vankop\n*/\n\n\"use strict\";\n\nconst forEachBail = require(\"./forEachBail\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n/** @typedef {{ alias: string | string[], extension: string }} ExtensionAliasOption */\n\nmodule.exports = class ExtensionAliasPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {ExtensionAliasOption} options options\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, options, target) {\n\t\tthis.source = source;\n\t\tthis.options = options;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tconst { extension, alias } = this.options;\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"ExtensionAliasPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tconst requestPath = request.request;\n\t\t\t\tif (!requestPath || !requestPath.endsWith(extension)) return callback();\n\t\t\t\tconst isAliasString = typeof alias === \"string\";\n\t\t\t\t/**\n\t\t\t\t * @param {string} alias extension alias\n\t\t\t\t * @param {(err?: null | Error, result?: null | ResolveRequest) => void} callback callback\n\t\t\t\t * @param {number=} index index\n\t\t\t\t * @returns {void}\n\t\t\t\t */\n\t\t\t\tconst resolve = (alias, callback, index) => {\n\t\t\t\t\tconst newRequest = `${requestPath.slice(\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t-extension.length,\n\t\t\t\t\t)}${alias}`;\n\n\t\t\t\t\treturn resolver.doResolve(\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...request,\n\t\t\t\t\t\t\trequest: newRequest,\n\t\t\t\t\t\t\tfullySpecified: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`aliased from extension alias with mapping '${extension}' to '${alias}'`,\n\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\t\t// Throw error if we are on the last alias (for multiple aliases) and it failed, always throw if we are not an array or we have only one alias\n\t\t\t\t\t\t\tif (!isAliasString && index) {\n\t\t\t\t\t\t\t\tif (index !== this.options.alias.length) {\n\t\t\t\t\t\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\t\t\t\t\t\tresolveContext.log(\n\t\t\t\t\t\t\t\t\t\t\t`Failed to alias from extension alias with mapping '${extension}' to '${alias}' for '${newRequest}': ${err}`,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn callback(null, result);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn callback(err, result);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback(err, result);\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t};\n\t\t\t\t/**\n\t\t\t\t * @param {(null | Error)=} err error\n\t\t\t\t * @param {(null | ResolveRequest)=} result result\n\t\t\t\t * @returns {void}\n\t\t\t\t */\n\t\t\t\tconst stoppingCallback = (err, result) => {\n\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\tif (result) return callback(null, result);\n\t\t\t\t\t// Don't allow other aliasing or raw request\n\t\t\t\t\treturn callback(null, null);\n\t\t\t\t};\n\t\t\t\tif (isAliasString) {\n\t\t\t\t\tresolve(alias, stoppingCallback);\n\t\t\t\t} else if (alias.length > 1) {\n\t\t\t\t\tforEachBail(alias, resolve, stoppingCallback);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(alias[0], stoppingCallback);\n\t\t\t\t}\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class FileExistsPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, target) {\n\t\tthis.source = source;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tconst fs = resolver.fileSystem;\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"FileExistsPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tconst file = request.path;\n\t\t\t\tif (!file) return callback();\n\t\t\t\tfs.stat(file, (err, stat) => {\n\t\t\t\t\tif (err || !stat) {\n\t\t\t\t\t\tif (resolveContext.missingDependencies) {\n\t\t\t\t\t\t\tresolveContext.missingDependencies.add(file);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (resolveContext.log) resolveContext.log(`${file} doesn't exist`);\n\t\t\t\t\t\treturn callback();\n\t\t\t\t\t}\n\t\t\t\t\tif (!stat.isFile()) {\n\t\t\t\t\t\tif (resolveContext.missingDependencies) {\n\t\t\t\t\t\t\tresolveContext.missingDependencies.add(file);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (resolveContext.log) resolveContext.log(`${file} is not a file`);\n\t\t\t\t\t\treturn callback();\n\t\t\t\t\t}\n\t\t\t\t\tif (resolveContext.fileDependencies) {\n\t\t\t\t\t\tresolveContext.fileDependencies.add(file);\n\t\t\t\t\t}\n\t\t\t\t\tresolver.doResolve(\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\t`existing file: ${file}`,\n\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\tcallback,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Ivan Kopeykin @vankop\n*/\n\n\"use strict\";\n\nconst DescriptionFileUtils = require(\"./DescriptionFileUtils\");\nconst forEachBail = require(\"./forEachBail\");\nconst { processImportsField } = require(\"./util/entrypoints\");\nconst { parseIdentifier } = require(\"./util/identifier\");\nconst {\n\tdeprecatedInvalidSegmentRegEx,\n\tinvalidSegmentRegEx,\n} = require(\"./util/path\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").JsonObject} JsonObject */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n/** @typedef {import(\"./util/entrypoints\").FieldProcessor} FieldProcessor */\n/** @typedef {import(\"./util/entrypoints\").ImportsField} ImportsField */\n\nconst dotCode = \".\".charCodeAt(0);\n\nmodule.exports = class ImportsFieldPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {Set<string>} conditionNames condition names\n\t * @param {string | string[]} fieldNamePath name path\n\t * @param {string | ResolveStepHook} targetFile target file\n\t * @param {string | ResolveStepHook} targetPackage target package\n\t */\n\tconstructor(\n\t\tsource,\n\t\tconditionNames,\n\t\tfieldNamePath,\n\t\ttargetFile,\n\t\ttargetPackage,\n\t) {\n\t\tthis.source = source;\n\t\tthis.targetFile = targetFile;\n\t\tthis.targetPackage = targetPackage;\n\t\tthis.conditionNames = conditionNames;\n\t\tthis.fieldName = fieldNamePath;\n\t\t/** @type {WeakMap<JsonObject, FieldProcessor>} */\n\t\tthis.fieldProcessorCache = new WeakMap();\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst targetFile = resolver.ensureHook(this.targetFile);\n\t\tconst targetPackage = resolver.ensureHook(this.targetPackage);\n\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"ImportsFieldPlugin\", (request, resolveContext, callback) => {\n\t\t\t\t// When there is no description file, abort\n\t\t\t\tif (!request.descriptionFilePath || request.request === undefined) {\n\t\t\t\t\treturn callback();\n\t\t\t\t}\n\n\t\t\t\tconst remainingRequest =\n\t\t\t\t\trequest.request + request.query + request.fragment;\n\t\t\t\tconst importsField =\n\t\t\t\t\t/** @type {ImportsField | null | undefined} */\n\t\t\t\t\t(\n\t\t\t\t\t\tDescriptionFileUtils.getField(\n\t\t\t\t\t\t\t/** @type {JsonObject} */ (request.descriptionFileData),\n\t\t\t\t\t\t\tthis.fieldName,\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\tif (!importsField) return callback();\n\n\t\t\t\tif (request.directory) {\n\t\t\t\t\treturn callback(\n\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t`Resolving to directories is not possible with the imports field (request was ${remainingRequest}/)`,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t/** @type {string[]} */\n\t\t\t\tlet paths;\n\t\t\t\t/** @type {string | null} */\n\t\t\t\tlet usedField;\n\n\t\t\t\ttry {\n\t\t\t\t\t// We attach the cache to the description file instead of the importsField value\n\t\t\t\t\t// because we use a WeakMap and the importsField could be a string too.\n\t\t\t\t\t// Description file is always an object when exports field can be accessed.\n\t\t\t\t\tlet fieldProcessor = this.fieldProcessorCache.get(\n\t\t\t\t\t\t/** @type {JsonObject} */ (request.descriptionFileData),\n\t\t\t\t\t);\n\t\t\t\t\tif (fieldProcessor === undefined) {\n\t\t\t\t\t\tfieldProcessor = processImportsField(importsField);\n\t\t\t\t\t\tthis.fieldProcessorCache.set(\n\t\t\t\t\t\t\t/** @type {JsonObject} */ (request.descriptionFileData),\n\t\t\t\t\t\t\tfieldProcessor,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t[paths, usedField] = fieldProcessor(\n\t\t\t\t\t\tremainingRequest,\n\t\t\t\t\t\tthis.conditionNames,\n\t\t\t\t\t);\n\t\t\t\t} catch (/** @type {unknown} */ err) {\n\t\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\t\tresolveContext.log(\n\t\t\t\t\t\t\t`Imports field in ${request.descriptionFilePath} can't be processed: ${err}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn callback(/** @type {Error} */ (err));\n\t\t\t\t}\n\n\t\t\t\tif (paths.length === 0) {\n\t\t\t\t\treturn callback(\n\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t`Package import ${remainingRequest} is not imported from package ${request.descriptionFileRoot} (see imports field in ${request.descriptionFilePath})`,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tforEachBail(\n\t\t\t\t\tpaths,\n\t\t\t\t\t/**\n\t\t\t\t\t * @param {string} path path\n\t\t\t\t\t * @param {(err?: null | Error, result?: null | ResolveRequest) => void} callback callback\n\t\t\t\t\t * @param {number} i index\n\t\t\t\t\t * @returns {void}\n\t\t\t\t\t */\n\t\t\t\t\t(path, callback, i) => {\n\t\t\t\t\t\tconst parsedIdentifier = parseIdentifier(path);\n\n\t\t\t\t\t\tif (!parsedIdentifier) return callback();\n\n\t\t\t\t\t\tconst [path_, query, fragment] = parsedIdentifier;\n\n\t\t\t\t\t\tswitch (path_.charCodeAt(0)) {\n\t\t\t\t\t\t\t// should be relative\n\t\t\t\t\t\t\tcase dotCode: {\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tinvalidSegmentRegEx.exec(path_.slice(2)) !== null &&\n\t\t\t\t\t\t\t\t\tdeprecatedInvalidSegmentRegEx.test(path_.slice(2)) !== null\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tif (paths.length === i) {\n\t\t\t\t\t\t\t\t\t\treturn callback(\n\t\t\t\t\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t\t\t\t\t`Invalid \"imports\" target \"${path}\" defined for \"${usedField}\" in the package config ${request.descriptionFilePath}, targets must start with \"./\"`,\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn callback();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\t\t\t\tconst obj = {\n\t\t\t\t\t\t\t\t\t...request,\n\t\t\t\t\t\t\t\t\trequest: undefined,\n\t\t\t\t\t\t\t\t\tpath: resolver.join(\n\t\t\t\t\t\t\t\t\t\t/** @type {string} */ (request.descriptionFileRoot),\n\t\t\t\t\t\t\t\t\t\tpath_,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\trelativePath: path_,\n\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\tfragment,\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tresolver.doResolve(\n\t\t\t\t\t\t\t\t\ttargetFile,\n\t\t\t\t\t\t\t\t\tobj,\n\t\t\t\t\t\t\t\t\t`using imports field: ${path}`,\n\t\t\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\t\t\t\t\t\t// Don't allow to continue - https://github.com/webpack/enhanced-resolve/issues/400\n\t\t\t\t\t\t\t\t\t\tif (result === undefined) return callback(null, null);\n\t\t\t\t\t\t\t\t\t\tcallback(null, result);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// package resolving\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\t\t\t\tconst obj = {\n\t\t\t\t\t\t\t\t\t...request,\n\t\t\t\t\t\t\t\t\trequest: path_,\n\t\t\t\t\t\t\t\t\trelativePath: path_,\n\t\t\t\t\t\t\t\t\tfullySpecified: true,\n\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\tfragment,\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tresolver.doResolve(\n\t\t\t\t\t\t\t\t\ttargetPackage,\n\t\t\t\t\t\t\t\t\tobj,\n\t\t\t\t\t\t\t\t\t`using imports field: ${path}`,\n\t\t\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\t\t\t\t\t\t// Don't allow to continue - https://github.com/webpack/enhanced-resolve/issues/400\n\t\t\t\t\t\t\t\t\t\tif (result === undefined) return callback(null, null);\n\t\t\t\t\t\t\t\t\t\tcallback(null, result);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t/**\n\t\t\t\t\t * @param {null | Error=} err error\n\t\t\t\t\t * @param {null | ResolveRequest=} result result\n\t\t\t\t\t * @returns {void}\n\t\t\t\t\t */\n\t\t\t\t\t(err, result) => callback(err, result || null),\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nconst namespaceStartCharCode = \"@\".charCodeAt(0);\n\nmodule.exports = class JoinRequestPartPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, target) {\n\t\tthis.source = source;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\n\t\t\t\t\"JoinRequestPartPlugin\",\n\t\t\t\t(request, resolveContext, callback) => {\n\t\t\t\t\tconst req = request.request || \"\";\n\t\t\t\t\tlet i = req.indexOf(\"/\", 3);\n\n\t\t\t\t\tif (i >= 0 && req.charCodeAt(2) === namespaceStartCharCode) {\n\t\t\t\t\t\ti = req.indexOf(\"/\", i + 1);\n\t\t\t\t\t}\n\n\t\t\t\t\t/** @type {string} */\n\t\t\t\t\tlet moduleName;\n\t\t\t\t\t/** @type {string} */\n\t\t\t\t\tlet remainingRequest;\n\t\t\t\t\t/** @type {boolean} */\n\t\t\t\t\tlet fullySpecified;\n\t\t\t\t\tif (i < 0) {\n\t\t\t\t\t\tmoduleName = req;\n\t\t\t\t\t\tremainingRequest = \".\";\n\t\t\t\t\t\tfullySpecified = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmoduleName = req.slice(0, i);\n\t\t\t\t\t\tremainingRequest = `.${req.slice(i)}`;\n\t\t\t\t\t\tfullySpecified = /** @type {boolean} */ (request.fullySpecified);\n\t\t\t\t\t}\n\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\tconst obj = {\n\t\t\t\t\t\t...request,\n\t\t\t\t\t\tpath: resolver.join(\n\t\t\t\t\t\t\t/** @type {string} */\n\t\t\t\t\t\t\t(request.path),\n\t\t\t\t\t\t\tmoduleName,\n\t\t\t\t\t\t),\n\t\t\t\t\t\trelativePath:\n\t\t\t\t\t\t\trequest.relativePath &&\n\t\t\t\t\t\t\tresolver.join(request.relativePath, moduleName),\n\t\t\t\t\t\trequest: remainingRequest,\n\t\t\t\t\t\tfullySpecified,\n\t\t\t\t\t};\n\t\t\t\t\tresolver.doResolve(target, obj, null, resolveContext, callback);\n\t\t\t\t},\n\t\t\t);\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class JoinRequestPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, target) {\n\t\tthis.source = source;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"JoinRequestPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tconst requestPath = /** @type {string} */ (request.path);\n\t\t\t\tconst requestRequest = /** @type {string} */ (request.request);\n\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\tconst obj = {\n\t\t\t\t\t...request,\n\t\t\t\t\tpath: resolver.join(requestPath, requestRequest),\n\t\t\t\t\trelativePath:\n\t\t\t\t\t\trequest.relativePath &&\n\t\t\t\t\t\tresolver.join(request.relativePath, requestRequest),\n\t\t\t\t\trequest: undefined,\n\t\t\t\t};\n\t\t\t\tresolver.doResolve(target, obj, null, resolveContext, callback);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst path = require(\"path\");\nconst DescriptionFileUtils = require(\"./DescriptionFileUtils\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").JsonObject} JsonObject */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\n/** @typedef {{ name: string | string[], forceRelative: boolean }} MainFieldOptions */\n\nconst alreadyTriedMainField = Symbol(\"alreadyTriedMainField\");\n\nmodule.exports = class MainFieldPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {MainFieldOptions} options options\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, options, target) {\n\t\tthis.source = source;\n\t\tthis.options = options;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"MainFieldPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tif (\n\t\t\t\t\trequest.path !== request.descriptionFileRoot ||\n\t\t\t\t\t/** @type {ResolveRequest & { [alreadyTriedMainField]?: string }} */\n\t\t\t\t\t(request)[alreadyTriedMainField] === request.descriptionFilePath ||\n\t\t\t\t\t!request.descriptionFilePath\n\t\t\t\t) {\n\t\t\t\t\treturn callback();\n\t\t\t\t}\n\t\t\t\tconst filename = path.basename(request.descriptionFilePath);\n\t\t\t\tlet mainModule =\n\t\t\t\t\t/** @type {string | null | undefined} */\n\t\t\t\t\t(\n\t\t\t\t\t\tDescriptionFileUtils.getField(\n\t\t\t\t\t\t\t/** @type {JsonObject} */ (request.descriptionFileData),\n\t\t\t\t\t\t\tthis.options.name,\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\t!mainModule ||\n\t\t\t\t\ttypeof mainModule !== \"string\" ||\n\t\t\t\t\tmainModule === \".\" ||\n\t\t\t\t\tmainModule === \"./\"\n\t\t\t\t) {\n\t\t\t\t\treturn callback();\n\t\t\t\t}\n\t\t\t\tif (this.options.forceRelative && !/^\\.\\.?\\//.test(mainModule)) {\n\t\t\t\t\tmainModule = `./${mainModule}`;\n\t\t\t\t}\n\t\t\t\t/** @type {ResolveRequest & { [alreadyTriedMainField]?: string }} */\n\t\t\t\tconst obj = {\n\t\t\t\t\t...request,\n\t\t\t\t\trequest: mainModule,\n\t\t\t\t\tmodule: false,\n\t\t\t\t\tdirectory: mainModule.endsWith(\"/\"),\n\t\t\t\t\t[alreadyTriedMainField]: request.descriptionFilePath,\n\t\t\t\t};\n\t\t\t\treturn resolver.doResolve(\n\t\t\t\t\ttarget,\n\t\t\t\t\tobj,\n\t\t\t\t\t`use ${mainModule} from ${this.options.name} in ${filename}`,\n\t\t\t\t\tresolveContext,\n\t\t\t\t\tcallback,\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/**\n * @param {string} path path\n * @returns {{ paths: string[], segments: string[] }}} paths and segments\n */\nmodule.exports = function getPaths(path) {\n\tif (path === \"/\") return { paths: [\"/\"], segments: [\"\"] };\n\tconst parts = path.split(/(.*?[\\\\/]+)/);\n\tconst paths = [path];\n\tconst segments = [parts[parts.length - 1]];\n\tlet part = parts[parts.length - 1];\n\tpath = path.slice(0, Math.max(0, path.length - part.length - 1));\n\tfor (let i = parts.length - 2; i > 2; i -= 2) {\n\t\tpaths.push(path);\n\t\tpart = parts[i];\n\t\tpath = path.slice(0, Math.max(0, path.length - part.length)) || \"/\";\n\t\tsegments.push(part.slice(0, -1));\n\t}\n\t[, part] = parts;\n\tsegments.push(part);\n\tpaths.push(part);\n\treturn {\n\t\tpaths,\n\t\tsegments,\n\t};\n};\n\n/**\n * @param {string} path path\n * @returns {string | null} basename or null\n */\nmodule.exports.basename = function basename(path) {\n\tconst i = path.lastIndexOf(\"/\");\n\tconst j = path.lastIndexOf(\"\\\\\");\n\tconst resolvedPath = i < 0 ? j : j < 0 ? i : i < j ? j : i;\n\tif (resolvedPath < 0) return null;\n\tconst basename = path.slice(resolvedPath + 1);\n\treturn basename;\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst forEachBail = require(\"./forEachBail\");\nconst getPaths = require(\"./getPaths\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n/** @typedef {import(\"./Resolver\").ResolveContext} ResolveContext */\n/** @typedef {(err?: null | Error, result?: null | ResolveRequest) => void} InnerCallback */\n/**\n * @param {Resolver} resolver resolver\n * @param {string[]} directories directories\n * @param {ResolveStepHook} target target\n * @param {ResolveRequest} request request\n * @param {ResolveContext} resolveContext resolve context\n * @param {InnerCallback} callback callback\n * @returns {void}\n */\nfunction modulesResolveHandler(\n\tresolver,\n\tdirectories,\n\ttarget,\n\trequest,\n\tresolveContext,\n\tcallback,\n) {\n\tconst fs = resolver.fileSystem;\n\tconst addrs = getPaths(/** @type {string} */ (request.path))\n\t\t.paths.map((path) =>\n\t\t\tdirectories.map((directory) => resolver.join(path, directory)),\n\t\t)\n\t\t.reduce((array, path) => {\n\t\t\tarray.push(...path);\n\t\t\treturn array;\n\t\t}, []);\n\tforEachBail(\n\t\taddrs,\n\t\t/**\n\t\t * @param {string} addr addr\n\t\t * @param {(err?: null | Error, result?: null | ResolveRequest) => void} callback callback\n\t\t * @returns {void}\n\t\t */\n\t\t(addr, callback) => {\n\t\t\tfs.stat(addr, (err, stat) => {\n\t\t\t\tif (!err && stat && stat.isDirectory()) {\n\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\tconst obj = {\n\t\t\t\t\t\t...request,\n\t\t\t\t\t\tpath: addr,\n\t\t\t\t\t\trequest: `./${request.request}`,\n\t\t\t\t\t\tmodule: false,\n\t\t\t\t\t};\n\t\t\t\t\tconst message = `looking for modules in ${addr}`;\n\t\t\t\t\treturn resolver.doResolve(\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\tobj,\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\tcallback,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\tresolveContext.log(`${addr} doesn't exist or is not a directory`);\n\t\t\t\t}\n\t\t\t\tif (resolveContext.missingDependencies) {\n\t\t\t\t\tresolveContext.missingDependencies.add(addr);\n\t\t\t\t}\n\t\t\t\treturn callback();\n\t\t\t});\n\t\t},\n\t\tcallback,\n\t);\n}\n\nmodule.exports = {\n\tmodulesResolveHandler,\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst { modulesResolveHandler } = require(\"./ModulesUtils\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class ModulesInHierarchicalDirectoriesPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string | string[]} directories directories\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, directories, target) {\n\t\tthis.source = source;\n\t\tthis.directories = /** @type {string[]} */ [...directories];\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\n\t\t\t\t\"ModulesInHierarchicalDirectoriesPlugin\",\n\t\t\t\t(request, resolveContext, callback) => {\n\t\t\t\t\tmodulesResolveHandler(\n\t\t\t\t\t\tresolver,\n\t\t\t\t\t\tthis.directories,\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\tcallback,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t);\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class ModulesInRootPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string} path path\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, path, target) {\n\t\tthis.source = source;\n\t\tthis.path = path;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"ModulesInRootPlugin\", (request, resolveContext, callback) => {\n\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\tconst obj = {\n\t\t\t\t\t...request,\n\t\t\t\t\tpath: this.path,\n\t\t\t\t\trequest: `./${request.request}`,\n\t\t\t\t\tmodule: false,\n\t\t\t\t};\n\t\t\t\tresolver.doResolve(\n\t\t\t\t\ttarget,\n\t\t\t\t\tobj,\n\t\t\t\t\t`looking for modules in ${this.path}`,\n\t\t\t\t\tresolveContext,\n\t\t\t\t\tcallback,\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class NextPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, target) {\n\t\tthis.source = source;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"NextPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tresolver.doResolve(target, request, null, resolveContext, callback);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class ParsePlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {Partial<ResolveRequest>} requestOptions request options\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, requestOptions, target) {\n\t\tthis.source = source;\n\t\tthis.requestOptions = requestOptions;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"ParsePlugin\", (request, resolveContext, callback) => {\n\t\t\t\tconst parsed = resolver.parse(/** @type {string} */ (request.request));\n\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\tconst obj = { ...request, ...parsed, ...this.requestOptions };\n\t\t\t\tif (request.query && !parsed.query) {\n\t\t\t\t\tobj.query = request.query;\n\t\t\t\t}\n\t\t\t\tif (request.fragment && !parsed.fragment) {\n\t\t\t\t\tobj.fragment = request.fragment;\n\t\t\t\t}\n\t\t\t\tif (parsed && resolveContext.log) {\n\t\t\t\t\tif (parsed.module) resolveContext.log(\"Parsed request is a module\");\n\t\t\t\t\tif (parsed.directory) {\n\t\t\t\t\t\tresolveContext.log(\"Parsed request is a directory\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// There is an edge-case where a request with # can be a path or a fragment -> try both\n\t\t\t\tif (obj.request && !obj.query && obj.fragment) {\n\t\t\t\t\tconst directory = obj.fragment.endsWith(\"/\");\n\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\tconst alternative = {\n\t\t\t\t\t\t...obj,\n\t\t\t\t\t\tdirectory,\n\t\t\t\t\t\trequest:\n\t\t\t\t\t\t\tobj.request +\n\t\t\t\t\t\t\t(obj.directory ? \"/\" : \"\") +\n\t\t\t\t\t\t\t(directory ? obj.fragment.slice(0, -1) : obj.fragment),\n\t\t\t\t\t\tfragment: \"\",\n\t\t\t\t\t};\n\t\t\t\t\tresolver.doResolve(\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\talternative,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\t\t\tif (result) return callback(null, result);\n\t\t\t\t\t\t\tresolver.doResolve(target, obj, null, resolveContext, callback);\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tresolver.doResolve(target, obj, null, resolveContext, callback);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Maël Nison @arcanis\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/**\n * @typedef {object} PnpApiImpl\n * @property {(packageName: string, issuer: string, options: { considerBuiltins: boolean }) => string | null} resolveToUnqualified resolve to unqualified\n */\n\nmodule.exports = class PnpPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {PnpApiImpl} pnpApi pnpApi\n\t * @param {string | ResolveStepHook} target target\n\t * @param {string | ResolveStepHook} alternateTarget alternateTarget\n\t */\n\tconstructor(source, pnpApi, target, alternateTarget) {\n\t\tthis.source = source;\n\t\tthis.pnpApi = pnpApi;\n\t\tthis.target = target;\n\t\tthis.alternateTarget = alternateTarget;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\t/** @type {ResolveStepHook} */\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tconst alternateTarget = resolver.ensureHook(this.alternateTarget);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"PnpPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tconst req = request.request;\n\t\t\t\tif (!req) return callback();\n\n\t\t\t\t// The trailing slash indicates to PnP that this value is a folder rather than a file\n\t\t\t\tconst issuer = `${request.path}/`;\n\n\t\t\t\tconst packageMatch = /^(@[^/]+\\/)?[^/]+/.exec(req);\n\t\t\t\tif (!packageMatch) return callback();\n\n\t\t\t\tconst [packageName] = packageMatch;\n\t\t\t\tconst innerRequest = `.${req.slice(packageName.length)}`;\n\n\t\t\t\t/** @type {string | undefined | null} */\n\t\t\t\tlet resolution;\n\t\t\t\t/** @type {string | undefined | null} */\n\t\t\t\tlet apiResolution;\n\t\t\t\ttry {\n\t\t\t\t\tresolution = this.pnpApi.resolveToUnqualified(packageName, issuer, {\n\t\t\t\t\t\tconsiderBuiltins: false,\n\t\t\t\t\t});\n\n\t\t\t\t\tif (resolution === null) {\n\t\t\t\t\t\t// This is either not a PnP managed issuer or it's a Node builtin\n\t\t\t\t\t\t// Try to continue resolving with our alternatives\n\t\t\t\t\t\tresolver.doResolve(\n\t\t\t\t\t\t\talternateTarget,\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t\t\"issuer is not managed by a pnpapi\",\n\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\t\t\t\tif (result) return callback(null, result);\n\t\t\t\t\t\t\t\t// Skip alternatives\n\t\t\t\t\t\t\t\treturn callback(null, null);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (resolveContext.fileDependencies) {\n\t\t\t\t\t\tapiResolution = this.pnpApi.resolveToUnqualified(\"pnpapi\", issuer, {\n\t\t\t\t\t\t\tconsiderBuiltins: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (/** @type {unknown} */ error) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t/** @type {Error & { code: string }} */\n\t\t\t\t\t\t(error).code === \"MODULE_NOT_FOUND\" &&\n\t\t\t\t\t\t/** @type {Error & { pnpCode: string }} */\n\t\t\t\t\t\t(error).pnpCode === \"UNDECLARED_DEPENDENCY\"\n\t\t\t\t\t) {\n\t\t\t\t\t\t// This is not a PnP managed dependency.\n\t\t\t\t\t\t// Try to continue resolving with our alternatives\n\t\t\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\t\t\tresolveContext.log(\"request is not managed by the pnpapi\");\n\t\t\t\t\t\t\tfor (const line of /** @type {Error} */ (error).message\n\t\t\t\t\t\t\t\t.split(\"\\n\")\n\t\t\t\t\t\t\t\t.filter(Boolean)) {\n\t\t\t\t\t\t\t\tresolveContext.log(`  ${line}`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn callback();\n\t\t\t\t\t}\n\t\t\t\t\treturn callback(/** @type {Error} */ (error));\n\t\t\t\t}\n\n\t\t\t\tif (resolution === packageName) return callback();\n\n\t\t\t\tif (apiResolution && resolveContext.fileDependencies) {\n\t\t\t\t\tresolveContext.fileDependencies.add(apiResolution);\n\t\t\t\t}\n\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\tconst obj = {\n\t\t\t\t\t...request,\n\t\t\t\t\tpath: resolution,\n\t\t\t\t\trequest: innerRequest,\n\t\t\t\t\tignoreSymlinks: true,\n\t\t\t\t\tfullySpecified: request.fullySpecified && innerRequest !== \".\",\n\t\t\t\t};\n\t\t\t\tresolver.doResolve(\n\t\t\t\t\ttarget,\n\t\t\t\t\tobj,\n\t\t\t\t\t`resolved by pnp to ${resolution}`,\n\t\t\t\t\tresolveContext,\n\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\t\tif (result) return callback(null, result);\n\t\t\t\t\t\t// Skip alternatives\n\t\t\t\t\t\treturn callback(null, null);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst util = require(\"util\");\n\nconst deprecateContext = util.deprecate(\n\t() => {},\n\t\"Hook.context is deprecated and will be removed\"\n);\n\nfunction CALL_DELEGATE(...args) {\n\tthis.call = this._createCall(\"sync\");\n\treturn this.call(...args);\n}\n\nfunction CALL_ASYNC_DELEGATE(...args) {\n\tthis.callAsync = this._createCall(\"async\");\n\treturn this.callAsync(...args);\n}\n\nfunction PROMISE_DELEGATE(...args) {\n\tthis.promise = this._createCall(\"promise\");\n\treturn this.promise(...args);\n}\n\nclass Hook {\n\tconstructor(args = [], name = undefined) {\n\t\tthis._args = args;\n\t\tthis.name = name;\n\t\tthis.taps = [];\n\t\tthis.interceptors = [];\n\t\tthis._call = CALL_DELEGATE;\n\t\tthis.call = CALL_DELEGATE;\n\t\tthis._callAsync = CALL_ASYNC_DELEGATE;\n\t\tthis.callAsync = CALL_ASYNC_DELEGATE;\n\t\tthis._promise = PROMISE_DELEGATE;\n\t\tthis.promise = PROMISE_DELEGATE;\n\t\tthis._x = undefined;\n\n\t\t// eslint-disable-next-line no-self-assign\n\t\tthis.compile = this.compile;\n\t\t// eslint-disable-next-line no-self-assign\n\t\tthis.tap = this.tap;\n\t\t// eslint-disable-next-line no-self-assign\n\t\tthis.tapAsync = this.tapAsync;\n\t\t// eslint-disable-next-line no-self-assign\n\t\tthis.tapPromise = this.tapPromise;\n\t}\n\n\tcompile(_options) {\n\t\tthrow new Error(\"Abstract: should be overridden\");\n\t}\n\n\t_createCall(type) {\n\t\treturn this.compile({\n\t\t\ttaps: this.taps,\n\t\t\tinterceptors: this.interceptors,\n\t\t\targs: this._args,\n\t\t\ttype\n\t\t});\n\t}\n\n\t_tap(type, options, fn) {\n\t\tif (typeof options === \"string\") {\n\t\t\toptions = {\n\t\t\t\tname: options\n\t\t\t};\n\t\t} else if (typeof options !== \"object\" || options === null) {\n\t\t\tthrow new Error(\"Invalid tap options\");\n\t\t}\n\t\tif (typeof options.name === \"string\") {\n\t\t\toptions.name = options.name.trim();\n\t\t}\n\t\tif (typeof options.name !== \"string\" || options.name === \"\") {\n\t\t\tthrow new Error(\"Missing name for tap\");\n\t\t}\n\t\tif (typeof options.context !== \"undefined\") {\n\t\t\tdeprecateContext();\n\t\t}\n\t\toptions = Object.assign({ type, fn }, options);\n\t\toptions = this._runRegisterInterceptors(options);\n\t\tthis._insert(options);\n\t}\n\n\ttap(options, fn) {\n\t\tthis._tap(\"sync\", options, fn);\n\t}\n\n\ttapAsync(options, fn) {\n\t\tthis._tap(\"async\", options, fn);\n\t}\n\n\ttapPromise(options, fn) {\n\t\tthis._tap(\"promise\", options, fn);\n\t}\n\n\t_runRegisterInterceptors(options) {\n\t\tfor (const interceptor of this.interceptors) {\n\t\t\tif (interceptor.register) {\n\t\t\t\tconst newOptions = interceptor.register(options);\n\t\t\t\tif (newOptions !== undefined) {\n\t\t\t\t\toptions = newOptions;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn options;\n\t}\n\n\twithOptions(options) {\n\t\tconst mergeOptions = (opt) =>\n\t\t\tObject.assign({}, options, typeof opt === \"string\" ? { name: opt } : opt);\n\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\ttap: (opt, fn) => this.tap(mergeOptions(opt), fn),\n\t\t\ttapAsync: (opt, fn) => this.tapAsync(mergeOptions(opt), fn),\n\t\t\ttapPromise: (opt, fn) => this.tapPromise(mergeOptions(opt), fn),\n\t\t\tintercept: (interceptor) => this.intercept(interceptor),\n\t\t\tisUsed: () => this.isUsed(),\n\t\t\twithOptions: (opt) => this.withOptions(mergeOptions(opt))\n\t\t};\n\t}\n\n\tisUsed() {\n\t\treturn this.taps.length > 0 || this.interceptors.length > 0;\n\t}\n\n\tintercept(interceptor) {\n\t\tthis._resetCompilation();\n\t\tthis.interceptors.push(Object.assign({}, interceptor));\n\t\tif (interceptor.register) {\n\t\t\tfor (let i = 0; i < this.taps.length; i++) {\n\t\t\t\tthis.taps[i] = interceptor.register(this.taps[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\t_resetCompilation() {\n\t\tthis.call = this._call;\n\t\tthis.callAsync = this._callAsync;\n\t\tthis.promise = this._promise;\n\t}\n\n\t_insert(item) {\n\t\tthis._resetCompilation();\n\t\tlet before;\n\t\tif (typeof item.before === \"string\") {\n\t\t\tbefore = new Set([item.before]);\n\t\t} else if (Array.isArray(item.before)) {\n\t\t\tbefore = new Set(item.before);\n\t\t}\n\t\tlet stage = 0;\n\t\tif (typeof item.stage === \"number\") {\n\t\t\tstage = item.stage;\n\t\t}\n\t\tlet i = this.taps.length;\n\t\twhile (i > 0) {\n\t\t\ti--;\n\t\t\tconst tap = this.taps[i];\n\t\t\tthis.taps[i + 1] = tap;\n\t\t\tconst xStage = tap.stage || 0;\n\t\t\tif (before) {\n\t\t\t\tif (before.has(tap.name)) {\n\t\t\t\t\tbefore.delete(tap.name);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (before.size > 0) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (xStage > stage) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\ti++;\n\t\t\tbreak;\n\t\t}\n\t\tthis.taps[i] = item;\n\t}\n}\n\nObject.setPrototypeOf(Hook.prototype, null);\n\nmodule.exports = Hook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nclass HookCodeFactory {\n\tconstructor(config) {\n\t\tthis.config = config;\n\t\tthis.options = undefined;\n\t\tthis._args = undefined;\n\t}\n\n\tcreate(options) {\n\t\tthis.init(options);\n\t\tlet fn;\n\t\tswitch (this.options.type) {\n\t\t\tcase \"sync\":\n\t\t\t\tfn = new Function(\n\t\t\t\t\tthis.args(),\n\t\t\t\t\t`\"use strict\";\\n${this.header()}${this.contentWithInterceptors({\n\t\t\t\t\t\tonError: (err) => `throw ${err};\\n`,\n\t\t\t\t\t\tonResult: (result) => `return ${result};\\n`,\n\t\t\t\t\t\tresultReturns: true,\n\t\t\t\t\t\tonDone: () => \"\",\n\t\t\t\t\t\trethrowIfPossible: true\n\t\t\t\t\t})}`\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"async\":\n\t\t\t\tfn = new Function(\n\t\t\t\t\tthis.args({\n\t\t\t\t\t\tafter: \"_callback\"\n\t\t\t\t\t}),\n\t\t\t\t\t`\"use strict\";\\n${this.header()}${this.contentWithInterceptors({\n\t\t\t\t\t\tonError: (err) => `_callback(${err});\\n`,\n\t\t\t\t\t\tonResult: (result) => `_callback(null, ${result});\\n`,\n\t\t\t\t\t\tonDone: () => \"_callback();\\n\"\n\t\t\t\t\t})}`\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"promise\": {\n\t\t\t\tlet errorHelperUsed = false;\n\t\t\t\tconst content = this.contentWithInterceptors({\n\t\t\t\t\tonError: (err) => {\n\t\t\t\t\t\terrorHelperUsed = true;\n\t\t\t\t\t\treturn `_error(${err});\\n`;\n\t\t\t\t\t},\n\t\t\t\t\tonResult: (result) => `_resolve(${result});\\n`,\n\t\t\t\t\tonDone: () => \"_resolve();\\n\"\n\t\t\t\t});\n\t\t\t\tlet code = \"\";\n\t\t\t\tcode += '\"use strict\";\\n';\n\t\t\t\tcode += this.header();\n\t\t\t\tcode += \"return new Promise((function(_resolve, _reject) {\\n\";\n\t\t\t\tif (errorHelperUsed) {\n\t\t\t\t\tcode += \"var _sync = true;\\n\";\n\t\t\t\t\tcode += \"function _error(_err) {\\n\";\n\t\t\t\t\tcode += \"if(_sync)\\n\";\n\t\t\t\t\tcode +=\n\t\t\t\t\t\t\"_resolve(Promise.resolve().then((function() { throw _err; })));\\n\";\n\t\t\t\t\tcode += \"else\\n\";\n\t\t\t\t\tcode += \"_reject(_err);\\n\";\n\t\t\t\t\tcode += \"};\\n\";\n\t\t\t\t}\n\t\t\t\tcode += content;\n\t\t\t\tif (errorHelperUsed) {\n\t\t\t\t\tcode += \"_sync = false;\\n\";\n\t\t\t\t}\n\t\t\t\tcode += \"}));\\n\";\n\t\t\t\tfn = new Function(this.args(), code);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.deinit();\n\t\treturn fn;\n\t}\n\n\tsetup(instance, options) {\n\t\tinstance._x = options.taps.map((t) => t.fn);\n\t}\n\n\t/**\n\t * @param {{ type: \"sync\" | \"promise\" | \"async\", taps: Array<Tap>, interceptors: Array<Interceptor> }} options\n\t */\n\tinit(options) {\n\t\tthis.options = options;\n\t\tthis._args = [...options.args];\n\t}\n\n\tdeinit() {\n\t\tthis.options = undefined;\n\t\tthis._args = undefined;\n\t}\n\n\tcontentWithInterceptors(options) {\n\t\tif (this.options.interceptors.length > 0) {\n\t\t\tconst { onError, onResult, onDone } = options;\n\t\t\tlet code = \"\";\n\t\t\tfor (let i = 0; i < this.options.interceptors.length; i++) {\n\t\t\t\tconst interceptor = this.options.interceptors[i];\n\t\t\t\tif (interceptor.call) {\n\t\t\t\t\tcode += `${this.getInterceptor(i)}.call(${this.args({\n\t\t\t\t\t\tbefore: interceptor.context ? \"_context\" : undefined\n\t\t\t\t\t})});\\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcode += this.content(\n\t\t\t\tObject.assign(options, {\n\t\t\t\t\tonError:\n\t\t\t\t\t\tonError &&\n\t\t\t\t\t\t((err) => {\n\t\t\t\t\t\t\tlet code = \"\";\n\t\t\t\t\t\t\tfor (let i = 0; i < this.options.interceptors.length; i++) {\n\t\t\t\t\t\t\t\tconst interceptor = this.options.interceptors[i];\n\t\t\t\t\t\t\t\tif (interceptor.error) {\n\t\t\t\t\t\t\t\t\tcode += `${this.getInterceptor(i)}.error(${err});\\n`;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcode += onError(err);\n\t\t\t\t\t\t\treturn code;\n\t\t\t\t\t\t}),\n\t\t\t\t\tonResult:\n\t\t\t\t\t\tonResult &&\n\t\t\t\t\t\t((result) => {\n\t\t\t\t\t\t\tlet code = \"\";\n\t\t\t\t\t\t\tfor (let i = 0; i < this.options.interceptors.length; i++) {\n\t\t\t\t\t\t\t\tconst interceptor = this.options.interceptors[i];\n\t\t\t\t\t\t\t\tif (interceptor.result) {\n\t\t\t\t\t\t\t\t\tcode += `${this.getInterceptor(i)}.result(${result});\\n`;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcode += onResult(result);\n\t\t\t\t\t\t\treturn code;\n\t\t\t\t\t\t}),\n\t\t\t\t\tonDone:\n\t\t\t\t\t\tonDone &&\n\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\tlet code = \"\";\n\t\t\t\t\t\t\tfor (let i = 0; i < this.options.interceptors.length; i++) {\n\t\t\t\t\t\t\t\tconst interceptor = this.options.interceptors[i];\n\t\t\t\t\t\t\t\tif (interceptor.done) {\n\t\t\t\t\t\t\t\t\tcode += `${this.getInterceptor(i)}.done();\\n`;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcode += onDone();\n\t\t\t\t\t\t\treturn code;\n\t\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn code;\n\t\t}\n\t\treturn this.content(options);\n\t}\n\n\theader() {\n\t\tlet code = \"\";\n\t\tcode += this.needContext() ? \"var _context = {};\\n\" : \"var _context;\\n\";\n\t\tcode += \"var _x = this._x;\\n\";\n\t\tif (this.options.interceptors.length > 0) {\n\t\t\tcode += \"var _taps = this.taps;\\n\";\n\t\t\tcode += \"var _interceptors = this.interceptors;\\n\";\n\t\t}\n\t\treturn code;\n\t}\n\n\tneedContext() {\n\t\tfor (const tap of this.options.taps) if (tap.context) return true;\n\t\treturn false;\n\t}\n\n\tcallTap(tapIndex, { onError, onResult, onDone, rethrowIfPossible }) {\n\t\tlet code = \"\";\n\t\tlet hasTapCached = false;\n\t\tfor (let i = 0; i < this.options.interceptors.length; i++) {\n\t\t\tconst interceptor = this.options.interceptors[i];\n\t\t\tif (interceptor.tap) {\n\t\t\t\tif (!hasTapCached) {\n\t\t\t\t\tcode += `var _tap${tapIndex} = ${this.getTap(tapIndex)};\\n`;\n\t\t\t\t\thasTapCached = true;\n\t\t\t\t}\n\t\t\t\tcode += `${this.getInterceptor(i)}.tap(${\n\t\t\t\t\tinterceptor.context ? \"_context, \" : \"\"\n\t\t\t\t}_tap${tapIndex});\\n`;\n\t\t\t}\n\t\t}\n\t\tcode += `var _fn${tapIndex} = ${this.getTapFn(tapIndex)};\\n`;\n\t\tconst tap = this.options.taps[tapIndex];\n\t\tswitch (tap.type) {\n\t\t\tcase \"sync\":\n\t\t\t\tif (!rethrowIfPossible) {\n\t\t\t\t\tcode += `var _hasError${tapIndex} = false;\\n`;\n\t\t\t\t\tcode += \"try {\\n\";\n\t\t\t\t}\n\t\t\t\tif (onResult) {\n\t\t\t\t\tcode += `var _result${tapIndex} = _fn${tapIndex}(${this.args({\n\t\t\t\t\t\tbefore: tap.context ? \"_context\" : undefined\n\t\t\t\t\t})});\\n`;\n\t\t\t\t} else {\n\t\t\t\t\tcode += `_fn${tapIndex}(${this.args({\n\t\t\t\t\t\tbefore: tap.context ? \"_context\" : undefined\n\t\t\t\t\t})});\\n`;\n\t\t\t\t}\n\t\t\t\tif (!rethrowIfPossible) {\n\t\t\t\t\tcode += \"} catch(_err) {\\n\";\n\t\t\t\t\tcode += `_hasError${tapIndex} = true;\\n`;\n\t\t\t\t\tcode += onError(\"_err\");\n\t\t\t\t\tcode += \"}\\n\";\n\t\t\t\t\tcode += `if(!_hasError${tapIndex}) {\\n`;\n\t\t\t\t}\n\t\t\t\tif (onResult) {\n\t\t\t\t\tcode += onResult(`_result${tapIndex}`);\n\t\t\t\t}\n\t\t\t\tif (onDone) {\n\t\t\t\t\tcode += onDone();\n\t\t\t\t}\n\t\t\t\tif (!rethrowIfPossible) {\n\t\t\t\t\tcode += \"}\\n\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"async\": {\n\t\t\t\tlet cbCode = \"\";\n\t\t\t\tcbCode += onResult\n\t\t\t\t\t? `(function(_err${tapIndex}, _result${tapIndex}) {\\n`\n\t\t\t\t\t: `(function(_err${tapIndex}) {\\n`;\n\t\t\t\tcbCode += `if(_err${tapIndex}) {\\n`;\n\t\t\t\tcbCode += onError(`_err${tapIndex}`);\n\t\t\t\tcbCode += \"} else {\\n\";\n\t\t\t\tif (onResult) {\n\t\t\t\t\tcbCode += onResult(`_result${tapIndex}`);\n\t\t\t\t}\n\t\t\t\tif (onDone) {\n\t\t\t\t\tcbCode += onDone();\n\t\t\t\t}\n\t\t\t\tcbCode += \"}\\n\";\n\t\t\t\tcbCode += \"})\";\n\t\t\t\tcode += `_fn${tapIndex}(${this.args({\n\t\t\t\t\tbefore: tap.context ? \"_context\" : undefined,\n\t\t\t\t\tafter: cbCode\n\t\t\t\t})});\\n`;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"promise\":\n\t\t\t\tcode += `var _hasResult${tapIndex} = false;\\n`;\n\t\t\t\tcode += `var _promise${tapIndex} = _fn${tapIndex}(${this.args({\n\t\t\t\t\tbefore: tap.context ? \"_context\" : undefined\n\t\t\t\t})});\\n`;\n\t\t\t\tcode += `if (!_promise${tapIndex} || !_promise${tapIndex}.then)\\n`;\n\t\t\t\tcode += `  throw new Error('Tap function (tapPromise) did not return promise (returned ' + _promise${tapIndex} + ')');\\n`;\n\t\t\t\tcode += `_promise${tapIndex}.then((function(_result${tapIndex}) {\\n`;\n\t\t\t\tcode += `_hasResult${tapIndex} = true;\\n`;\n\t\t\t\tif (onResult) {\n\t\t\t\t\tcode += onResult(`_result${tapIndex}`);\n\t\t\t\t}\n\t\t\t\tif (onDone) {\n\t\t\t\t\tcode += onDone();\n\t\t\t\t}\n\t\t\t\tcode += `}), function(_err${tapIndex}) {\\n`;\n\t\t\t\tcode += `if(_hasResult${tapIndex}) throw _err${tapIndex};\\n`;\n\t\t\t\tcode += onError(\n\t\t\t\t\t`!_err${tapIndex} ? new Error('Tap function (tapPromise) rejects \"' + _err${tapIndex} + '\" value') : _err${tapIndex}`\n\t\t\t\t);\n\t\t\t\tcode += \"});\\n\";\n\t\t\t\tbreak;\n\t\t}\n\t\treturn code;\n\t}\n\n\tcallTapsSeries({\n\t\tonError,\n\t\tonResult,\n\t\tresultReturns,\n\t\tonDone,\n\t\tdoneReturns,\n\t\trethrowIfPossible\n\t}) {\n\t\tif (this.options.taps.length === 0) return onDone();\n\t\tconst firstAsync = this.options.taps.findIndex((t) => t.type !== \"sync\");\n\t\tconst somethingReturns = resultReturns || doneReturns;\n\t\tlet code = \"\";\n\t\tlet current = onDone;\n\t\tlet unrollCounter = 0;\n\t\tfor (let j = this.options.taps.length - 1; j >= 0; j--) {\n\t\t\tconst i = j;\n\t\t\tconst unroll =\n\t\t\t\tcurrent !== onDone &&\n\t\t\t\t(this.options.taps[i].type !== \"sync\" || unrollCounter++ > 20);\n\t\t\tif (unroll) {\n\t\t\t\tunrollCounter = 0;\n\t\t\t\tcode += `function _next${i}() {\\n`;\n\t\t\t\tcode += current();\n\t\t\t\tcode += \"}\\n\";\n\t\t\t\tcurrent = () => `${somethingReturns ? \"return \" : \"\"}_next${i}();\\n`;\n\t\t\t}\n\t\t\tconst done = current;\n\t\t\tconst doneBreak = (skipDone) => {\n\t\t\t\tif (skipDone) return \"\";\n\t\t\t\treturn onDone();\n\t\t\t};\n\t\t\tconst content = this.callTap(i, {\n\t\t\t\tonError: (error) => onError(i, error, done, doneBreak),\n\t\t\t\tonResult:\n\t\t\t\t\tonResult && ((result) => onResult(i, result, done, doneBreak)),\n\t\t\t\tonDone: !onResult && done,\n\t\t\t\trethrowIfPossible:\n\t\t\t\t\trethrowIfPossible && (firstAsync < 0 || i < firstAsync)\n\t\t\t});\n\t\t\tcurrent = () => content;\n\t\t}\n\t\tcode += current();\n\t\treturn code;\n\t}\n\n\tcallTapsLooping({ onError, onDone, rethrowIfPossible }) {\n\t\tif (this.options.taps.length === 0) return onDone();\n\t\tconst syncOnly = this.options.taps.every((t) => t.type === \"sync\");\n\t\tlet code = \"\";\n\t\tif (!syncOnly) {\n\t\t\tcode += \"var _looper = (function() {\\n\";\n\t\t\tcode += \"var _loopAsync = false;\\n\";\n\t\t}\n\t\tcode += \"var _loop;\\n\";\n\t\tcode += \"do {\\n\";\n\t\tcode += \"_loop = false;\\n\";\n\t\tfor (let i = 0; i < this.options.interceptors.length; i++) {\n\t\t\tconst interceptor = this.options.interceptors[i];\n\t\t\tif (interceptor.loop) {\n\t\t\t\tcode += `${this.getInterceptor(i)}.loop(${this.args({\n\t\t\t\t\tbefore: interceptor.context ? \"_context\" : undefined\n\t\t\t\t})});\\n`;\n\t\t\t}\n\t\t}\n\t\tcode += this.callTapsSeries({\n\t\t\tonError,\n\t\t\tonResult: (i, result, next, doneBreak) => {\n\t\t\t\tlet code = \"\";\n\t\t\t\tcode += `if(${result} !== undefined) {\\n`;\n\t\t\t\tcode += \"_loop = true;\\n\";\n\t\t\t\tif (!syncOnly) code += \"if(_loopAsync) _looper();\\n\";\n\t\t\t\tcode += doneBreak(true);\n\t\t\t\tcode += \"} else {\\n\";\n\t\t\t\tcode += next();\n\t\t\t\tcode += \"}\\n\";\n\t\t\t\treturn code;\n\t\t\t},\n\t\t\tonDone:\n\t\t\t\tonDone &&\n\t\t\t\t(() => {\n\t\t\t\t\tlet code = \"\";\n\t\t\t\t\tcode += \"if(!_loop) {\\n\";\n\t\t\t\t\tcode += onDone();\n\t\t\t\t\tcode += \"}\\n\";\n\t\t\t\t\treturn code;\n\t\t\t\t}),\n\t\t\trethrowIfPossible: rethrowIfPossible && syncOnly\n\t\t});\n\t\tcode += \"} while(_loop);\\n\";\n\t\tif (!syncOnly) {\n\t\t\tcode += \"_loopAsync = true;\\n\";\n\t\t\tcode += \"});\\n\";\n\t\t\tcode += \"_looper();\\n\";\n\t\t}\n\t\treturn code;\n\t}\n\n\tcallTapsParallel({\n\t\tonError,\n\t\tonResult,\n\t\tonDone,\n\t\trethrowIfPossible,\n\t\tonTap = (i, run) => run()\n\t}) {\n\t\tif (this.options.taps.length <= 1) {\n\t\t\treturn this.callTapsSeries({\n\t\t\t\tonError,\n\t\t\t\tonResult,\n\t\t\t\tonDone,\n\t\t\t\trethrowIfPossible\n\t\t\t});\n\t\t}\n\t\tlet code = \"\";\n\t\tcode += \"do {\\n\";\n\t\tcode += `var _counter = ${this.options.taps.length};\\n`;\n\t\tif (onDone) {\n\t\t\tcode += \"var _done = (function() {\\n\";\n\t\t\tcode += onDone();\n\t\t\tcode += \"});\\n\";\n\t\t}\n\t\tfor (let i = 0; i < this.options.taps.length; i++) {\n\t\t\tconst done = () => {\n\t\t\t\tif (onDone) return \"if(--_counter === 0) _done();\\n\";\n\t\t\t\treturn \"--_counter;\";\n\t\t\t};\n\t\t\tconst doneBreak = (skipDone) => {\n\t\t\t\tif (skipDone || !onDone) return \"_counter = 0;\\n\";\n\t\t\t\treturn \"_counter = 0;\\n_done();\\n\";\n\t\t\t};\n\t\t\tcode += \"if(_counter <= 0) break;\\n\";\n\t\t\tcode += onTap(\n\t\t\t\ti,\n\t\t\t\t() =>\n\t\t\t\t\tthis.callTap(i, {\n\t\t\t\t\t\tonError: (error) => {\n\t\t\t\t\t\t\tlet code = \"\";\n\t\t\t\t\t\t\tcode += \"if(_counter > 0) {\\n\";\n\t\t\t\t\t\t\tcode += onError(i, error, done, doneBreak);\n\t\t\t\t\t\t\tcode += \"}\\n\";\n\t\t\t\t\t\t\treturn code;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonResult:\n\t\t\t\t\t\t\tonResult &&\n\t\t\t\t\t\t\t((result) => {\n\t\t\t\t\t\t\t\tlet code = \"\";\n\t\t\t\t\t\t\t\tcode += \"if(_counter > 0) {\\n\";\n\t\t\t\t\t\t\t\tcode += onResult(i, result, done, doneBreak);\n\t\t\t\t\t\t\t\tcode += \"}\\n\";\n\t\t\t\t\t\t\t\treturn code;\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tonDone: !onResult && (() => done()),\n\t\t\t\t\t\trethrowIfPossible\n\t\t\t\t\t}),\n\t\t\t\tdone,\n\t\t\t\tdoneBreak\n\t\t\t);\n\t\t}\n\t\tcode += \"} while(false);\\n\";\n\t\treturn code;\n\t}\n\n\targs({ before, after } = {}) {\n\t\tlet allArgs = this._args;\n\t\tif (before) allArgs = [before, ...allArgs];\n\t\tif (after) allArgs = [...allArgs, after];\n\t\tif (allArgs.length === 0) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn allArgs.join(\", \");\n\t}\n\n\tgetTapFn(idx) {\n\t\treturn `_x[${idx}]`;\n\t}\n\n\tgetTap(idx) {\n\t\treturn `_taps[${idx}]`;\n\t}\n\n\tgetInterceptor(idx) {\n\t\treturn `_interceptors[${idx}]`;\n\t}\n}\n\nmodule.exports = HookCodeFactory;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst Hook = require(\"./Hook\");\nconst HookCodeFactory = require(\"./HookCodeFactory\");\n\nclass AsyncParallelBailHookCodeFactory extends HookCodeFactory {\n\tcontent({ onError, onResult, onDone }) {\n\t\tlet code = \"\";\n\t\tcode += `var _results = new Array(${this.options.taps.length});\\n`;\n\t\tcode += \"var _checkDone = function() {\\n\";\n\t\tcode += \"for(var i = 0; i < _results.length; i++) {\\n\";\n\t\tcode += \"var item = _results[i];\\n\";\n\t\tcode += \"if(item === undefined) return false;\\n\";\n\t\tcode += \"if(item.result !== undefined) {\\n\";\n\t\tcode += onResult(\"item.result\");\n\t\tcode += \"return true;\\n\";\n\t\tcode += \"}\\n\";\n\t\tcode += \"if(item.error) {\\n\";\n\t\tcode += onError(\"item.error\");\n\t\tcode += \"return true;\\n\";\n\t\tcode += \"}\\n\";\n\t\tcode += \"}\\n\";\n\t\tcode += \"return false;\\n\";\n\t\tcode += \"}\\n\";\n\t\tcode += this.callTapsParallel({\n\t\t\tonError: (i, err, done, doneBreak) => {\n\t\t\t\tlet code = \"\";\n\t\t\t\tcode += `if(${i} < _results.length && ((_results.length = ${\n\t\t\t\t\ti + 1\n\t\t\t\t}), (_results[${i}] = { error: ${err} }), _checkDone())) {\\n`;\n\t\t\t\tcode += doneBreak(true);\n\t\t\t\tcode += \"} else {\\n\";\n\t\t\t\tcode += done();\n\t\t\t\tcode += \"}\\n\";\n\t\t\t\treturn code;\n\t\t\t},\n\t\t\tonResult: (i, result, done, doneBreak) => {\n\t\t\t\tlet code = \"\";\n\t\t\t\tcode += `if(${i} < _results.length && (${result} !== undefined && (_results.length = ${\n\t\t\t\t\ti + 1\n\t\t\t\t}), (_results[${i}] = { result: ${result} }), _checkDone())) {\\n`;\n\t\t\t\tcode += doneBreak(true);\n\t\t\t\tcode += \"} else {\\n\";\n\t\t\t\tcode += done();\n\t\t\t\tcode += \"}\\n\";\n\t\t\t\treturn code;\n\t\t\t},\n\t\t\tonTap: (i, run, done, _doneBreak) => {\n\t\t\t\tlet code = \"\";\n\t\t\t\tif (i > 0) {\n\t\t\t\t\tcode += `if(${i} >= _results.length) {\\n`;\n\t\t\t\t\tcode += done();\n\t\t\t\t\tcode += \"} else {\\n\";\n\t\t\t\t}\n\t\t\t\tcode += run();\n\t\t\t\tif (i > 0) code += \"}\\n\";\n\t\t\t\treturn code;\n\t\t\t},\n\t\t\tonDone\n\t\t});\n\t\treturn code;\n\t}\n}\n\nconst factory = new AsyncParallelBailHookCodeFactory();\n\nfunction COMPILE(options) {\n\tfactory.setup(this, options);\n\treturn factory.create(options);\n}\n\nfunction AsyncParallelBailHook(args = [], name = undefined) {\n\tconst hook = new Hook(args, name);\n\thook.constructor = AsyncParallelBailHook;\n\thook.compile = COMPILE;\n\thook._call = undefined;\n\thook.call = undefined;\n\treturn hook;\n}\n\nAsyncParallelBailHook.prototype = null;\n\nmodule.exports = AsyncParallelBailHook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst Hook = require(\"./Hook\");\nconst HookCodeFactory = require(\"./HookCodeFactory\");\n\nclass AsyncParallelHookCodeFactory extends HookCodeFactory {\n\tcontent({ onError, onDone }) {\n\t\treturn this.callTapsParallel({\n\t\t\tonError: (i, err, done, doneBreak) => onError(err) + doneBreak(true),\n\t\t\tonDone\n\t\t});\n\t}\n}\n\nconst factory = new AsyncParallelHookCodeFactory();\n\nfunction COMPILE(options) {\n\tfactory.setup(this, options);\n\treturn factory.create(options);\n}\n\nfunction AsyncParallelHook(args = [], name = undefined) {\n\tconst hook = new Hook(args, name);\n\thook.constructor = AsyncParallelHook;\n\thook.compile = COMPILE;\n\thook._call = undefined;\n\thook.call = undefined;\n\treturn hook;\n}\n\nAsyncParallelHook.prototype = null;\n\nmodule.exports = AsyncParallelHook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst Hook = require(\"./Hook\");\nconst HookCodeFactory = require(\"./HookCodeFactory\");\n\nclass AsyncSeriesBailHookCodeFactory extends HookCodeFactory {\n\tcontent({ onError, onResult, resultReturns, onDone }) {\n\t\treturn this.callTapsSeries({\n\t\t\tonError: (i, err, next, doneBreak) => onError(err) + doneBreak(true),\n\t\t\tonResult: (i, result, next) =>\n\t\t\t\t`if(${result} !== undefined) {\\n${onResult(\n\t\t\t\t\tresult\n\t\t\t\t)}\\n} else {\\n${next()}}\\n`,\n\t\t\tresultReturns,\n\t\t\tonDone\n\t\t});\n\t}\n}\n\nconst factory = new AsyncSeriesBailHookCodeFactory();\n\nfunction COMPILE(options) {\n\tfactory.setup(this, options);\n\treturn factory.create(options);\n}\n\nfunction AsyncSeriesBailHook(args = [], name = undefined) {\n\tconst hook = new Hook(args, name);\n\thook.constructor = AsyncSeriesBailHook;\n\thook.compile = COMPILE;\n\thook._call = undefined;\n\thook.call = undefined;\n\treturn hook;\n}\n\nAsyncSeriesBailHook.prototype = null;\n\nmodule.exports = AsyncSeriesBailHook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst Hook = require(\"./Hook\");\nconst HookCodeFactory = require(\"./HookCodeFactory\");\n\nclass AsyncSeriesHookCodeFactory extends HookCodeFactory {\n\tcontent({ onError, onDone }) {\n\t\treturn this.callTapsSeries({\n\t\t\tonError: (i, err, next, doneBreak) => onError(err) + doneBreak(true),\n\t\t\tonDone\n\t\t});\n\t}\n}\n\nconst factory = new AsyncSeriesHookCodeFactory();\n\nfunction COMPILE(options) {\n\tfactory.setup(this, options);\n\treturn factory.create(options);\n}\n\nfunction AsyncSeriesHook(args = [], name = undefined) {\n\tconst hook = new Hook(args, name);\n\thook.constructor = AsyncSeriesHook;\n\thook.compile = COMPILE;\n\thook._call = undefined;\n\thook.call = undefined;\n\treturn hook;\n}\n\nAsyncSeriesHook.prototype = null;\n\nmodule.exports = AsyncSeriesHook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst Hook = require(\"./Hook\");\nconst HookCodeFactory = require(\"./HookCodeFactory\");\n\nclass AsyncSeriesLoopHookCodeFactory extends HookCodeFactory {\n\tcontent({ onError, onDone }) {\n\t\treturn this.callTapsLooping({\n\t\t\tonError: (i, err, next, doneBreak) => onError(err) + doneBreak(true),\n\t\t\tonDone\n\t\t});\n\t}\n}\n\nconst factory = new AsyncSeriesLoopHookCodeFactory();\n\nfunction COMPILE(options) {\n\tfactory.setup(this, options);\n\treturn factory.create(options);\n}\n\nfunction AsyncSeriesLoopHook(args = [], name = undefined) {\n\tconst hook = new Hook(args, name);\n\thook.constructor = AsyncSeriesLoopHook;\n\thook.compile = COMPILE;\n\thook._call = undefined;\n\thook.call = undefined;\n\treturn hook;\n}\n\nAsyncSeriesLoopHook.prototype = null;\n\nmodule.exports = AsyncSeriesLoopHook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst Hook = require(\"./Hook\");\nconst HookCodeFactory = require(\"./HookCodeFactory\");\n\nclass AsyncSeriesWaterfallHookCodeFactory extends HookCodeFactory {\n\tcontent({ onError, onResult, _onDone }) {\n\t\treturn this.callTapsSeries({\n\t\t\tonError: (i, err, next, doneBreak) => onError(err) + doneBreak(true),\n\t\t\tonResult: (i, result, next) => {\n\t\t\t\tlet code = \"\";\n\t\t\t\tcode += `if(${result} !== undefined) {\\n`;\n\t\t\t\tcode += `${this._args[0]} = ${result};\\n`;\n\t\t\t\tcode += \"}\\n\";\n\t\t\t\tcode += next();\n\t\t\t\treturn code;\n\t\t\t},\n\t\t\tonDone: () => onResult(this._args[0])\n\t\t});\n\t}\n}\n\nconst factory = new AsyncSeriesWaterfallHookCodeFactory();\n\nfunction COMPILE(options) {\n\tfactory.setup(this, options);\n\treturn factory.create(options);\n}\n\nfunction AsyncSeriesWaterfallHook(args = [], name = undefined) {\n\tif (args.length < 1) {\n\t\tthrow new Error(\"Waterfall hooks must have at least one argument\");\n\t}\n\tconst hook = new Hook(args, name);\n\thook.constructor = AsyncSeriesWaterfallHook;\n\thook.compile = COMPILE;\n\thook._call = undefined;\n\thook.call = undefined;\n\treturn hook;\n}\n\nAsyncSeriesWaterfallHook.prototype = null;\n\nmodule.exports = AsyncSeriesWaterfallHook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst util = require(\"util\");\n\nconst defaultFactory = (key, hook) => hook;\n\nclass HookMap {\n\tconstructor(factory, name = undefined) {\n\t\tthis._map = new Map();\n\t\tthis.name = name;\n\t\tthis._factory = factory;\n\t\tthis._interceptors = [];\n\t}\n\n\tget(key) {\n\t\treturn this._map.get(key);\n\t}\n\n\tfor(key) {\n\t\tconst hook = this.get(key);\n\t\tif (hook !== undefined) {\n\t\t\treturn hook;\n\t\t}\n\t\tlet newHook = this._factory(key);\n\t\tconst interceptors = this._interceptors;\n\t\tfor (let i = 0; i < interceptors.length; i++) {\n\t\t\tnewHook = interceptors[i].factory(key, newHook);\n\t\t}\n\t\tthis._map.set(key, newHook);\n\t\treturn newHook;\n\t}\n\n\tintercept(interceptor) {\n\t\tthis._interceptors.push(\n\t\t\tObject.assign(\n\t\t\t\t{\n\t\t\t\t\tfactory: defaultFactory\n\t\t\t\t},\n\t\t\t\tinterceptor\n\t\t\t)\n\t\t);\n\t}\n}\n\nHookMap.prototype.tap = util.deprecate(function tap(key, options, fn) {\n\treturn this.for(key).tap(options, fn);\n}, \"HookMap#tap(key,…) is deprecated. Use HookMap#for(key).tap(…) instead.\");\n\nHookMap.prototype.tapAsync = util.deprecate(function tapAsync(\n\tkey,\n\toptions,\n\tfn\n) {\n\treturn this.for(key).tapAsync(options, fn);\n}, \"HookMap#tapAsync(key,…) is deprecated. Use HookMap#for(key).tapAsync(…) instead.\");\n\nHookMap.prototype.tapPromise = util.deprecate(function tapPromise(\n\tkey,\n\toptions,\n\tfn\n) {\n\treturn this.for(key).tapPromise(options, fn);\n}, \"HookMap#tapPromise(key,…) is deprecated. Use HookMap#for(key).tapPromise(…) instead.\");\n\nmodule.exports = HookMap;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nclass MultiHook {\n\tconstructor(hooks, name = undefined) {\n\t\tthis.hooks = hooks;\n\t\tthis.name = name;\n\t}\n\n\ttap(options, fn) {\n\t\tfor (const hook of this.hooks) {\n\t\t\thook.tap(options, fn);\n\t\t}\n\t}\n\n\ttapAsync(options, fn) {\n\t\tfor (const hook of this.hooks) {\n\t\t\thook.tapAsync(options, fn);\n\t\t}\n\t}\n\n\ttapPromise(options, fn) {\n\t\tfor (const hook of this.hooks) {\n\t\t\thook.tapPromise(options, fn);\n\t\t}\n\t}\n\n\tisUsed() {\n\t\tfor (const hook of this.hooks) {\n\t\t\tif (hook.isUsed()) return true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tintercept(interceptor) {\n\t\tfor (const hook of this.hooks) {\n\t\t\thook.intercept(interceptor);\n\t\t}\n\t}\n\n\twithOptions(options) {\n\t\treturn new MultiHook(\n\t\t\tthis.hooks.map((hook) => hook.withOptions(options)),\n\t\t\tthis.name\n\t\t);\n\t}\n}\n\nmodule.exports = MultiHook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst Hook = require(\"./Hook\");\nconst HookCodeFactory = require(\"./HookCodeFactory\");\n\nclass SyncBailHookCodeFactory extends HookCodeFactory {\n\tcontent({ onError, onResult, resultReturns, onDone, rethrowIfPossible }) {\n\t\treturn this.callTapsSeries({\n\t\t\tonError: (i, err) => onError(err),\n\t\t\tonResult: (i, result, next) =>\n\t\t\t\t`if(${result} !== undefined) {\\n${onResult(\n\t\t\t\t\tresult\n\t\t\t\t)};\\n} else {\\n${next()}}\\n`,\n\t\t\tresultReturns,\n\t\t\tonDone,\n\t\t\trethrowIfPossible\n\t\t});\n\t}\n}\n\nconst factory = new SyncBailHookCodeFactory();\n\nconst TAP_ASYNC = () => {\n\tthrow new Error(\"tapAsync is not supported on a SyncBailHook\");\n};\n\nconst TAP_PROMISE = () => {\n\tthrow new Error(\"tapPromise is not supported on a SyncBailHook\");\n};\n\nfunction COMPILE(options) {\n\tfactory.setup(this, options);\n\treturn factory.create(options);\n}\n\nfunction SyncBailHook(args = [], name = undefined) {\n\tconst hook = new Hook(args, name);\n\thook.constructor = SyncBailHook;\n\thook.tapAsync = TAP_ASYNC;\n\thook.tapPromise = TAP_PROMISE;\n\thook.compile = COMPILE;\n\treturn hook;\n}\n\nSyncBailHook.prototype = null;\n\nmodule.exports = SyncBailHook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst Hook = require(\"./Hook\");\nconst HookCodeFactory = require(\"./HookCodeFactory\");\n\nclass SyncHookCodeFactory extends HookCodeFactory {\n\tcontent({ onError, onDone, rethrowIfPossible }) {\n\t\treturn this.callTapsSeries({\n\t\t\tonError: (i, err) => onError(err),\n\t\t\tonDone,\n\t\t\trethrowIfPossible\n\t\t});\n\t}\n}\n\nconst factory = new SyncHookCodeFactory();\n\nconst TAP_ASYNC = () => {\n\tthrow new Error(\"tapAsync is not supported on a SyncHook\");\n};\n\nconst TAP_PROMISE = () => {\n\tthrow new Error(\"tapPromise is not supported on a SyncHook\");\n};\n\nfunction COMPILE(options) {\n\tfactory.setup(this, options);\n\treturn factory.create(options);\n}\n\nfunction SyncHook(args = [], name = undefined) {\n\tconst hook = new Hook(args, name);\n\thook.constructor = SyncHook;\n\thook.tapAsync = TAP_ASYNC;\n\thook.tapPromise = TAP_PROMISE;\n\thook.compile = COMPILE;\n\treturn hook;\n}\n\nSyncHook.prototype = null;\n\nmodule.exports = SyncHook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst Hook = require(\"./Hook\");\nconst HookCodeFactory = require(\"./HookCodeFactory\");\n\nclass SyncLoopHookCodeFactory extends HookCodeFactory {\n\tcontent({ onError, onDone, rethrowIfPossible }) {\n\t\treturn this.callTapsLooping({\n\t\t\tonError: (i, err) => onError(err),\n\t\t\tonDone,\n\t\t\trethrowIfPossible\n\t\t});\n\t}\n}\n\nconst factory = new SyncLoopHookCodeFactory();\n\nconst TAP_ASYNC = () => {\n\tthrow new Error(\"tapAsync is not supported on a SyncLoopHook\");\n};\n\nconst TAP_PROMISE = () => {\n\tthrow new Error(\"tapPromise is not supported on a SyncLoopHook\");\n};\n\nfunction COMPILE(options) {\n\tfactory.setup(this, options);\n\treturn factory.create(options);\n}\n\nfunction SyncLoopHook(args = [], name = undefined) {\n\tconst hook = new Hook(args, name);\n\thook.constructor = SyncLoopHook;\n\thook.tapAsync = TAP_ASYNC;\n\thook.tapPromise = TAP_PROMISE;\n\thook.compile = COMPILE;\n\treturn hook;\n}\n\nSyncLoopHook.prototype = null;\n\nmodule.exports = SyncLoopHook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nconst Hook = require(\"./Hook\");\nconst HookCodeFactory = require(\"./HookCodeFactory\");\n\nclass SyncWaterfallHookCodeFactory extends HookCodeFactory {\n\tcontent({ onError, onResult, resultReturns, rethrowIfPossible }) {\n\t\treturn this.callTapsSeries({\n\t\t\tonError: (i, err) => onError(err),\n\t\t\tonResult: (i, result, next) => {\n\t\t\t\tlet code = \"\";\n\t\t\t\tcode += `if(${result} !== undefined) {\\n`;\n\t\t\t\tcode += `${this._args[0]} = ${result};\\n`;\n\t\t\t\tcode += \"}\\n\";\n\t\t\t\tcode += next();\n\t\t\t\treturn code;\n\t\t\t},\n\t\t\tonDone: () => onResult(this._args[0]),\n\t\t\tdoneReturns: resultReturns,\n\t\t\trethrowIfPossible\n\t\t});\n\t}\n}\n\nconst factory = new SyncWaterfallHookCodeFactory();\n\nconst TAP_ASYNC = () => {\n\tthrow new Error(\"tapAsync is not supported on a SyncWaterfallHook\");\n};\n\nconst TAP_PROMISE = () => {\n\tthrow new Error(\"tapPromise is not supported on a SyncWaterfallHook\");\n};\n\nfunction COMPILE(options) {\n\tfactory.setup(this, options);\n\treturn factory.create(options);\n}\n\nfunction SyncWaterfallHook(args = [], name = undefined) {\n\tif (args.length < 1) {\n\t\tthrow new Error(\"Waterfall hooks must have at least one argument\");\n\t}\n\tconst hook = new Hook(args, name);\n\thook.constructor = SyncWaterfallHook;\n\thook.tapAsync = TAP_ASYNC;\n\thook.tapPromise = TAP_PROMISE;\n\thook.compile = COMPILE;\n\treturn hook;\n}\n\nSyncWaterfallHook.prototype = null;\n\nmodule.exports = SyncWaterfallHook;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\"use strict\";\n\nmodule.exports.AsyncParallelBailHook = require(\"./AsyncParallelBailHook\");\nmodule.exports.AsyncParallelHook = require(\"./AsyncParallelHook\");\nmodule.exports.AsyncSeriesBailHook = require(\"./AsyncSeriesBailHook\");\nmodule.exports.AsyncSeriesHook = require(\"./AsyncSeriesHook\");\nmodule.exports.AsyncSeriesLoopHook = require(\"./AsyncSeriesLoopHook\");\nmodule.exports.AsyncSeriesWaterfallHook = require(\"./AsyncSeriesWaterfallHook\");\nmodule.exports.HookMap = require(\"./HookMap\");\nmodule.exports.MultiHook = require(\"./MultiHook\");\nmodule.exports.SyncBailHook = require(\"./SyncBailHook\");\nmodule.exports.SyncHook = require(\"./SyncHook\");\nmodule.exports.SyncLoopHook = require(\"./SyncLoopHook\");\nmodule.exports.SyncWaterfallHook = require(\"./SyncWaterfallHook\");\nmodule.exports.__esModule = true;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\").ResolveContext} ResolveContext */\n\n/**\n * @param {ResolveContext} options options for inner context\n * @param {null | string} message message to log\n * @returns {ResolveContext} inner context\n */\nmodule.exports = function createInnerContext(options, message) {\n\tlet messageReported = false;\n\tlet innerLog;\n\tif (options.log) {\n\t\tif (message) {\n\t\t\t/**\n\t\t\t * @param {string} msg message\n\t\t\t */\n\t\t\tinnerLog = (msg) => {\n\t\t\t\tif (!messageReported) {\n\t\t\t\t\t/** @type {((str: string) => void)} */\n\t\t\t\t\t(options.log)(message);\n\t\t\t\t\tmessageReported = true;\n\t\t\t\t}\n\n\t\t\t\t/** @type {((str: string) => void)} */\n\t\t\t\t(options.log)(`  ${msg}`);\n\t\t\t};\n\t\t} else {\n\t\t\tinnerLog = options.log;\n\t\t}\n\t}\n\n\treturn {\n\t\tlog: innerLog,\n\t\tyield: options.yield,\n\t\tfileDependencies: options.fileDependencies,\n\t\tcontextDependencies: options.contextDependencies,\n\t\tmissingDependencies: options.missingDependencies,\n\t\tstack: options.stack,\n\t};\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst { AsyncSeriesBailHook, AsyncSeriesHook, SyncHook } = require(\"tapable\");\nconst createInnerContext = require(\"./createInnerContext\");\nconst { parseIdentifier } = require(\"./util/identifier\");\nconst {\n\tPathType,\n\tcachedJoin: join,\n\tgetType,\n\tnormalize,\n} = require(\"./util/path\");\n\n/** @typedef {import(\"./ResolverFactory\").ResolveOptions} ResolveOptions */\n\n/**\n * @typedef {object} KnownContext\n * @property {string[]=} environments environments\n */\n\n// eslint-disable-next-line jsdoc/reject-any-type\n/** @typedef {KnownContext & Record<any, any>} Context */\n\n/** @typedef {import(\"./AliasUtils\").AliasOption} AliasOption */\n/** @typedef {Error & { details?: string }} ErrorWithDetail */\n\n/** @typedef {(err: ErrorWithDetail | null, res?: string | false, req?: ResolveRequest) => void} ResolveCallback */\n\n/**\n * @typedef {object} PossibleFileSystemError\n * @property {string=} code code\n * @property {number=} errno number\n * @property {string=} path path\n * @property {string=} syscall syscall\n */\n\n/**\n * @template T\n * @callback FileSystemCallback\n * @param {PossibleFileSystemError & Error | null} err\n * @param {T=} result\n */\n\n/**\n * @typedef {string | Buffer | URL} PathLike\n */\n\n/**\n * @typedef {PathLike | number} PathOrFileDescriptor\n */\n\n/**\n * @typedef {object} ObjectEncodingOptions\n * @property {BufferEncoding | null | undefined=} encoding encoding\n */\n\n/**\n * @typedef {ObjectEncodingOptions | BufferEncoding | undefined | null} EncodingOption\n */\n\n/** @typedef {(err: NodeJS.ErrnoException | null, result?: string) => void} StringCallback */\n/** @typedef {(err: NodeJS.ErrnoException | null, result?: Buffer) => void} BufferCallback */\n/** @typedef {(err: NodeJS.ErrnoException | null, result?: (string | Buffer)) => void} StringOrBufferCallback */\n/** @typedef {(err: NodeJS.ErrnoException | null, result?: IStats) => void} StatsCallback */\n/** @typedef {(err: NodeJS.ErrnoException | null, result?: IBigIntStats) => void} BigIntStatsCallback */\n/** @typedef {(err: NodeJS.ErrnoException | null, result?: (IStats | IBigIntStats)) => void} StatsOrBigIntStatsCallback */\n/** @typedef {(err: NodeJS.ErrnoException | Error | null, result?: JsonObject) => void} ReadJsonCallback */\n\n/**\n * @template T\n * @typedef {object} IStatsBase\n * @property {() => boolean} isFile is file\n * @property {() => boolean} isDirectory is directory\n * @property {() => boolean} isBlockDevice is block device\n * @property {() => boolean} isCharacterDevice is character device\n * @property {() => boolean} isSymbolicLink is symbolic link\n * @property {() => boolean} isFIFO is FIFO\n * @property {() => boolean} isSocket is socket\n * @property {T} dev dev\n * @property {T} ino ino\n * @property {T} mode mode\n * @property {T} nlink nlink\n * @property {T} uid uid\n * @property {T} gid gid\n * @property {T} rdev rdev\n * @property {T} size size\n * @property {T} blksize blksize\n * @property {T} blocks blocks\n * @property {T} atimeMs atime ms\n * @property {T} mtimeMs mtime ms\n * @property {T} ctimeMs ctime ms\n * @property {T} birthtimeMs birthtime ms\n * @property {Date} atime atime\n * @property {Date} mtime mtime\n * @property {Date} ctime ctime\n * @property {Date} birthtime birthtime\n */\n\n/**\n * @typedef {IStatsBase<number>} IStats\n */\n\n/**\n * @typedef {IStatsBase<bigint> & { atimeNs: bigint, mtimeNs: bigint, ctimeNs: bigint, birthtimeNs: bigint }} IBigIntStats\n */\n\n/**\n * @template {string | Buffer} [T=string]\n * @typedef {object} Dirent\n * @property {() => boolean} isFile true when is file, otherwise false\n * @property {() => boolean} isDirectory true when is directory, otherwise false\n * @property {() => boolean} isBlockDevice true when is block device, otherwise false\n * @property {() => boolean} isCharacterDevice true when is character device, otherwise false\n * @property {() => boolean} isSymbolicLink true when is symbolic link, otherwise false\n * @property {() => boolean} isFIFO true when is FIFO, otherwise false\n * @property {() => boolean} isSocket true when is socket, otherwise false\n * @property {T} name name\n * @property {string} parentPath path\n * @property {string=} path path\n */\n\n/**\n * @typedef {object} StatOptions\n * @property {(boolean | undefined)=} bigint need bigint values\n */\n\n/**\n * @typedef {object} StatSyncOptions\n * @property {(boolean | undefined)=} bigint need bigint values\n * @property {(boolean | undefined)=} throwIfNoEntry throw if no entry\n */\n\n/**\n * @typedef {{\n * (path: PathOrFileDescriptor, options: ({ encoding?: null | undefined, flag?: string | undefined } & import(\"events\").Abortable) | undefined | null, callback: BufferCallback): void,\n * (path: PathOrFileDescriptor, options: ({ encoding: BufferEncoding, flag?: string | undefined } & import(\"events\").Abortable) | BufferEncoding, callback: StringCallback): void,\n * (path: PathOrFileDescriptor, options: (ObjectEncodingOptions & { flag?: string | undefined } & import(\"events\").Abortable) | BufferEncoding | undefined | null, callback: StringOrBufferCallback): void,\n * (path: PathOrFileDescriptor, callback: BufferCallback): void,\n * }} ReadFile\n */\n\n/**\n * @typedef {\"buffer\" | { encoding: \"buffer\" }} BufferEncodingOption\n */\n\n/**\n * @typedef {{\n * (path: PathOrFileDescriptor, options?: { encoding?: null | undefined, flag?: string | undefined } | null): Buffer,\n * (path: PathOrFileDescriptor, options: { encoding: BufferEncoding, flag?: string | undefined } | BufferEncoding): string,\n * (path: PathOrFileDescriptor, options?: (ObjectEncodingOptions & { flag?: string | undefined }) | BufferEncoding | null): string | Buffer,\n * }} ReadFileSync\n */\n\n/**\n * @typedef {{\n * (path: PathLike, options: { encoding: BufferEncoding | null, withFileTypes?: false | undefined, recursive?: boolean | undefined } | BufferEncoding | undefined | null, callback: (err: NodeJS.ErrnoException | null, files?: string[]) => void): void,\n * (path: PathLike, options: { encoding: \"buffer\", withFileTypes?: false | undefined, recursive?: boolean | undefined } | \"buffer\", callback: (err: NodeJS.ErrnoException | null, files?: Buffer[]) => void): void,\n * (path: PathLike, options: (ObjectEncodingOptions & { withFileTypes?: false | undefined, recursive?: boolean | undefined }) | BufferEncoding | undefined | null, callback: (err: NodeJS.ErrnoException | null, files?: string[] | Buffer[]) => void): void,\n * (path: PathLike, callback: (err: NodeJS.ErrnoException | null, files?: string[]) => void): void,\n * (path: PathLike, options: ObjectEncodingOptions & { withFileTypes: true, recursive?: boolean | undefined }, callback: (err: NodeJS.ErrnoException | null, files?: Dirent<string>[]) => void): void,\n * (path: PathLike, options: { encoding: \"buffer\", withFileTypes: true, recursive?: boolean | undefined }, callback: (err: NodeJS.ErrnoException | null, files: Dirent<Buffer>[]) => void): void,\n * }} Readdir\n */\n\n/**\n * @typedef {{\n * (path: PathLike, options?: { encoding: BufferEncoding | null, withFileTypes?: false | undefined, recursive?: boolean | undefined } | BufferEncoding | null): string[],\n * (path: PathLike, options: { encoding: \"buffer\", withFileTypes?: false | undefined, recursive?: boolean | undefined } | \"buffer\"): Buffer[],\n * (path: PathLike, options?: (ObjectEncodingOptions & { withFileTypes?: false | undefined, recursive?: boolean | undefined }) | BufferEncoding | null): string[] | Buffer[],\n * (path: PathLike, options: ObjectEncodingOptions & { withFileTypes: true, recursive?: boolean | undefined }): Dirent[],\n * (path: PathLike, options: { encoding: \"buffer\", withFileTypes: true, recursive?: boolean | undefined }): Dirent<Buffer>[],\n * }} ReaddirSync\n */\n\n/**\n * @typedef {(pathOrFileDescription: PathOrFileDescriptor, callback: ReadJsonCallback) => void} ReadJson\n */\n\n/**\n * @typedef {(pathOrFileDescription: PathOrFileDescriptor) => JsonObject} ReadJsonSync\n */\n\n/**\n * @typedef {{\n * (path: PathLike, options: EncodingOption, callback: StringCallback): void,\n * (path: PathLike, options: BufferEncodingOption, callback: BufferCallback): void,\n * (path: PathLike, options: EncodingOption, callback: StringOrBufferCallback): void,\n * (path: PathLike, callback: StringCallback): void,\n * }} Readlink\n */\n\n/**\n * @typedef {{\n * (path: PathLike, options?: EncodingOption): string,\n * (path: PathLike, options: BufferEncodingOption): Buffer,\n * (path: PathLike, options?: EncodingOption): string | Buffer,\n * }} ReadlinkSync\n */\n\n/**\n * @typedef {{\n * (path: PathLike, callback: StatsCallback): void,\n * (path: PathLike, options: (StatOptions & { bigint?: false | undefined }) | undefined, callback: StatsCallback): void,\n * (path: PathLike, options: StatOptions & { bigint: true }, callback: BigIntStatsCallback): void,\n * (path: PathLike, options: StatOptions | undefined, callback: StatsOrBigIntStatsCallback): void,\n * }} LStat\n */\n\n/**\n * @typedef {{\n * (path: PathLike, options?: undefined): IStats,\n * (path: PathLike, options?: StatSyncOptions & { bigint?: false | undefined, throwIfNoEntry: false }): IStats | undefined,\n * (path: PathLike, options: StatSyncOptions & { bigint: true, throwIfNoEntry: false }): IBigIntStats | undefined,\n * (path: PathLike, options?: StatSyncOptions & { bigint?: false | undefined }): IStats,\n * (path: PathLike, options: StatSyncOptions & { bigint: true }): IBigIntStats,\n * (path: PathLike, options: StatSyncOptions & { bigint: boolean, throwIfNoEntry?: false | undefined }): IStats | IBigIntStats,\n * (path: PathLike, options?: StatSyncOptions): IStats | IBigIntStats | undefined,\n * }} LStatSync\n */\n\n/**\n * @typedef {{\n * (path: PathLike, callback: StatsCallback): void,\n * (path: PathLike, options: (StatOptions & { bigint?: false | undefined }) | undefined, callback: StatsCallback): void,\n * (path: PathLike, options: StatOptions & { bigint: true }, callback: BigIntStatsCallback): void,\n * (path: PathLike, options: StatOptions | undefined, callback: StatsOrBigIntStatsCallback): void,\n * }} Stat\n */\n\n/**\n * @typedef {{\n * (path: PathLike, options?: undefined): IStats,\n * (path: PathLike, options?: StatSyncOptions & { bigint?: false | undefined, throwIfNoEntry: false }): IStats | undefined,\n * (path: PathLike, options: StatSyncOptions & { bigint: true, throwIfNoEntry: false }): IBigIntStats | undefined,\n * (path: PathLike, options?: StatSyncOptions & { bigint?: false | undefined }): IStats,\n * (path: PathLike, options: StatSyncOptions & { bigint: true }): IBigIntStats,\n * (path: PathLike, options: StatSyncOptions & { bigint: boolean, throwIfNoEntry?: false | undefined }): IStats | IBigIntStats,\n * (path: PathLike, options?: StatSyncOptions): IStats | IBigIntStats | undefined,\n * }} StatSync\n */\n\n/**\n * @typedef {{\n * (path: PathLike, options: EncodingOption, callback: StringCallback): void,\n * (path: PathLike, options: BufferEncodingOption, callback: BufferCallback): void,\n * (path: PathLike, options: EncodingOption, callback: StringOrBufferCallback): void,\n * (path: PathLike, callback: StringCallback): void,\n * }} RealPath\n */\n\n/**\n * @typedef {{\n * (path: PathLike, options?: EncodingOption): string,\n * (path: PathLike, options: BufferEncodingOption): Buffer,\n * (path: PathLike, options?: EncodingOption): string | Buffer,\n * }} RealPathSync\n */\n\n/**\n * @typedef {object} FileSystem\n * @property {ReadFile} readFile read file method\n * @property {Readdir} readdir readdir method\n * @property {ReadJson=} readJson read json method\n * @property {Readlink} readlink read link method\n * @property {LStat=} lstat lstat method\n * @property {Stat} stat stat method\n * @property {RealPath=} realpath realpath method\n */\n\n/**\n * @typedef {object} SyncFileSystem\n * @property {ReadFileSync} readFileSync read file sync method\n * @property {ReaddirSync} readdirSync read dir sync method\n * @property {ReadJsonSync=} readJsonSync read json sync method\n * @property {ReadlinkSync} readlinkSync read link sync method\n * @property {LStatSync=} lstatSync lstat sync method\n * @property {StatSync} statSync stat sync method\n * @property {RealPathSync=} realpathSync real path sync method\n */\n\n/**\n * @typedef {object} ParsedIdentifier\n * @property {string} request request\n * @property {string} query query\n * @property {string} fragment fragment\n * @property {boolean} directory is directory\n * @property {boolean} module is module\n * @property {boolean} file is file\n * @property {boolean} internal is internal\n */\n\n/** @typedef {string | number | boolean | null} JsonPrimitive */\n/** @typedef {JsonValue[]} JsonArray */\n/** @typedef {JsonPrimitive | JsonObject | JsonArray} JsonValue */\n/** @typedef {{ [Key in string]?: JsonValue | undefined }} JsonObject */\n\n/**\n * @typedef {object} TsconfigPathsMap\n * @property {TsconfigPathsData} main main tsconfig paths data\n * @property {string} mainContext main tsconfig base URL (absolute path)\n * @property {{ [baseUrl: string]: TsconfigPathsData }} refs referenced tsconfig paths data mapped by baseUrl\n * @property {{ [context: string]: TsconfigPathsData }} allContexts all contexts (main + refs) for quick lookup\n * @property {Set<string>} fileDependencies file dependencies\n */\n\n/**\n * @typedef {object} TsconfigPathsData\n * @property {AliasOption[]} alias tsconfig file data\n * @property {string[]} modules tsconfig file data\n */\n\n/**\n * @typedef {object} BaseResolveRequest\n * @property {string | false} path path\n * @property {Context=} context content\n * @property {string=} descriptionFilePath description file path\n * @property {string=} descriptionFileRoot description file root\n * @property {JsonObject=} descriptionFileData description file data\n * @property {TsconfigPathsMap | null | undefined=} tsconfigPathsMap tsconfig paths map\n * @property {string=} relativePath relative path\n * @property {boolean=} ignoreSymlinks true when need to ignore symlinks, otherwise false\n * @property {boolean=} fullySpecified true when full specified, otherwise false\n * @property {string=} __innerRequest inner request for internal usage\n * @property {string=} __innerRequest_request inner request for internal usage\n * @property {string=} __innerRequest_relativePath inner relative path for internal usage\n */\n\n/** @typedef {BaseResolveRequest & Partial<ParsedIdentifier>} ResolveRequest */\n\n/**\n * String with special formatting\n * @typedef {string} StackEntry\n */\n\n/**\n * @template T\n * @typedef {{ add: (item: T) => void }} WriteOnlySet\n */\n\n/** @typedef {(request: ResolveRequest) => void} ResolveContextYield */\n\n/**\n * Resolve context\n * @typedef {object} ResolveContext\n * @property {WriteOnlySet<string>=} contextDependencies directories that was found on file system\n * @property {WriteOnlySet<string>=} fileDependencies files that was found on file system\n * @property {WriteOnlySet<string>=} missingDependencies dependencies that was not found on file system\n * @property {Set<StackEntry>=} stack set of hooks' calls. For instance, `resolve → parsedResolve → describedResolve`,\n * @property {((str: string) => void)=} log log function\n * @property {ResolveContextYield=} yield yield result, if provided plugins can return several results\n */\n\n/** @typedef {AsyncSeriesBailHook<[ResolveRequest, ResolveContext], ResolveRequest | null>} ResolveStepHook */\n\n/**\n * @typedef {object} KnownHooks\n * @property {SyncHook<[ResolveStepHook, ResolveRequest], void>} resolveStep resolve step hook\n * @property {SyncHook<[ResolveRequest, Error]>} noResolve no resolve hook\n * @property {ResolveStepHook} resolve resolve hook\n * @property {AsyncSeriesHook<[ResolveRequest, ResolveContext]>} result result hook\n */\n\n/**\n * @typedef {{ [key: string]: ResolveStepHook }} EnsuredHooks\n */\n\n/**\n * @param {string} str input string\n * @returns {string} in camel case\n */\nfunction toCamelCase(str) {\n\treturn str.replace(/-([a-z])/g, (str) => str.slice(1).toUpperCase());\n}\n\nclass Resolver {\n\t/**\n\t * @param {ResolveStepHook} hook hook\n\t * @param {ResolveRequest} request request\n\t * @returns {StackEntry} stack entry\n\t */\n\tstatic createStackEntry(hook, request) {\n\t\treturn `${hook.name}: (${request.path}) ${request.request || \"\"}${\n\t\t\trequest.query || \"\"\n\t\t}${request.fragment || \"\"}${request.directory ? \" directory\" : \"\"}${\n\t\t\trequest.module ? \" module\" : \"\"\n\t\t}`;\n\t}\n\n\t/**\n\t * @param {FileSystem} fileSystem a filesystem\n\t * @param {ResolveOptions} options options\n\t */\n\tconstructor(fileSystem, options) {\n\t\tthis.fileSystem = fileSystem;\n\t\tthis.options = options;\n\t\t/** @type {KnownHooks} */\n\t\tthis.hooks = {\n\t\t\tresolveStep: new SyncHook([\"hook\", \"request\"], \"resolveStep\"),\n\t\t\tnoResolve: new SyncHook([\"request\", \"error\"], \"noResolve\"),\n\t\t\tresolve: new AsyncSeriesBailHook(\n\t\t\t\t[\"request\", \"resolveContext\"],\n\t\t\t\t\"resolve\",\n\t\t\t),\n\t\t\tresult: new AsyncSeriesHook([\"result\", \"resolveContext\"], \"result\"),\n\t\t};\n\t}\n\n\t/**\n\t * @param {string | ResolveStepHook} name hook name or hook itself\n\t * @returns {ResolveStepHook} the hook\n\t */\n\tensureHook(name) {\n\t\tif (typeof name !== \"string\") {\n\t\t\treturn name;\n\t\t}\n\t\tname = toCamelCase(name);\n\t\tif (name.startsWith(\"before\")) {\n\t\t\treturn /** @type {ResolveStepHook} */ (\n\t\t\t\tthis.ensureHook(name[6].toLowerCase() + name.slice(7)).withOptions({\n\t\t\t\t\tstage: -10,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\tif (name.startsWith(\"after\")) {\n\t\t\treturn /** @type {ResolveStepHook} */ (\n\t\t\t\tthis.ensureHook(name[5].toLowerCase() + name.slice(6)).withOptions({\n\t\t\t\t\tstage: 10,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\t/** @type {ResolveStepHook} */\n\t\tconst hook = /** @type {KnownHooks & EnsuredHooks} */ (this.hooks)[name];\n\t\tif (!hook) {\n\t\t\t/** @type {KnownHooks & EnsuredHooks} */\n\t\t\t(this.hooks)[name] = new AsyncSeriesBailHook(\n\t\t\t\t[\"request\", \"resolveContext\"],\n\t\t\t\tname,\n\t\t\t);\n\n\t\t\treturn /** @type {KnownHooks & EnsuredHooks} */ (this.hooks)[name];\n\t\t}\n\t\treturn hook;\n\t}\n\n\t/**\n\t * @param {string | ResolveStepHook} name hook name or hook itself\n\t * @returns {ResolveStepHook} the hook\n\t */\n\tgetHook(name) {\n\t\tif (typeof name !== \"string\") {\n\t\t\treturn name;\n\t\t}\n\t\tname = toCamelCase(name);\n\t\tif (name.startsWith(\"before\")) {\n\t\t\treturn /** @type {ResolveStepHook} */ (\n\t\t\t\tthis.getHook(name[6].toLowerCase() + name.slice(7)).withOptions({\n\t\t\t\t\tstage: -10,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\tif (name.startsWith(\"after\")) {\n\t\t\treturn /** @type {ResolveStepHook} */ (\n\t\t\t\tthis.getHook(name[5].toLowerCase() + name.slice(6)).withOptions({\n\t\t\t\t\tstage: 10,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\t/** @type {ResolveStepHook} */\n\t\tconst hook = /** @type {KnownHooks & EnsuredHooks} */ (this.hooks)[name];\n\t\tif (!hook) {\n\t\t\tthrow new Error(`Hook ${name} doesn't exist`);\n\t\t}\n\t\treturn hook;\n\t}\n\n\t/**\n\t * @param {Context} context context information object\n\t * @param {string} path context path\n\t * @param {string} request request string\n\t * @returns {string | false} result\n\t */\n\tresolveSync(context, path, request) {\n\t\t/** @type {Error | null | undefined} */\n\t\tlet err;\n\t\t/** @type {string | false | undefined} */\n\t\tlet result;\n\t\tlet sync = false;\n\t\tthis.resolve(context, path, request, {}, (_err, r) => {\n\t\t\terr = _err;\n\t\t\tresult = r;\n\t\t\tsync = true;\n\t\t});\n\t\tif (!sync) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Cannot 'resolveSync' because the fileSystem is not sync. Use 'resolve'!\",\n\t\t\t);\n\t\t}\n\t\tif (err) throw err;\n\t\tif (result === undefined) throw new Error(\"No result\");\n\t\treturn result;\n\t}\n\n\t/**\n\t * @param {Context} context context information object\n\t * @param {string} path context path\n\t * @param {string} request request string\n\t * @param {ResolveContext} resolveContext resolve context\n\t * @param {ResolveCallback} callback callback function\n\t * @returns {void}\n\t */\n\tresolve(context, path, request, resolveContext, callback) {\n\t\tif (!context || typeof context !== \"object\") {\n\t\t\treturn callback(new Error(\"context argument is not an object\"));\n\t\t}\n\t\tif (typeof path !== \"string\") {\n\t\t\treturn callback(new Error(\"path argument is not a string\"));\n\t\t}\n\t\tif (typeof request !== \"string\") {\n\t\t\treturn callback(new Error(\"request argument is not a string\"));\n\t\t}\n\t\tif (!resolveContext) {\n\t\t\treturn callback(new Error(\"resolveContext argument is not set\"));\n\t\t}\n\n\t\t/** @type {ResolveRequest} */\n\t\tconst obj = {\n\t\t\tcontext,\n\t\t\tpath,\n\t\t\trequest,\n\t\t};\n\n\t\t/** @type {ResolveContextYield | undefined} */\n\t\tlet yield_;\n\t\tlet yieldCalled = false;\n\t\t/** @type {ResolveContextYield | undefined} */\n\t\tlet finishYield;\n\t\tif (typeof resolveContext.yield === \"function\") {\n\t\t\tconst old = resolveContext.yield;\n\t\t\t/**\n\t\t\t * @param {ResolveRequest} obj object\n\t\t\t */\n\t\t\tyield_ = (obj) => {\n\t\t\t\told(obj);\n\t\t\t\tyieldCalled = true;\n\t\t\t};\n\t\t\t/**\n\t\t\t * @param {ResolveRequest} result result\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tfinishYield = (result) => {\n\t\t\t\tif (result) {\n\t\t\t\t\t/** @type {ResolveContextYield} */ (yield_)(result);\n\t\t\t\t}\n\t\t\t\tcallback(null);\n\t\t\t};\n\t\t}\n\n\t\tconst message = `resolve '${request}' in '${path}'`;\n\n\t\t/**\n\t\t * @param {ResolveRequest} result result\n\t\t * @returns {void}\n\t\t */\n\t\tconst finishResolved = (result) =>\n\t\t\tcallback(\n\t\t\t\tnull,\n\t\t\t\tresult.path === false\n\t\t\t\t\t? false\n\t\t\t\t\t: `${result.path.replace(/#/g, \"\\0#\")}${\n\t\t\t\t\t\t\tresult.query ? result.query.replace(/#/g, \"\\0#\") : \"\"\n\t\t\t\t\t\t}${result.fragment || \"\"}`,\n\t\t\t\tresult,\n\t\t\t);\n\n\t\t/**\n\t\t * @param {string[]} log logs\n\t\t * @returns {void}\n\t\t */\n\t\tconst finishWithoutResolve = (log) => {\n\t\t\t/**\n\t\t\t * @type {ErrorWithDetail}\n\t\t\t */\n\t\t\tconst error = new Error(`Can't ${message}`);\n\t\t\terror.details = log.join(\"\\n\");\n\t\t\tthis.hooks.noResolve.call(obj, error);\n\t\t\treturn callback(error);\n\t\t};\n\n\t\tif (resolveContext.log) {\n\t\t\t// We need log anyway to capture it in case of an error\n\t\t\tconst parentLog = resolveContext.log;\n\t\t\t/** @type {string[]} */\n\t\t\tconst log = [];\n\t\t\treturn this.doResolve(\n\t\t\t\tthis.hooks.resolve,\n\t\t\t\tobj,\n\t\t\t\tmessage,\n\t\t\t\t{\n\t\t\t\t\tlog: (msg) => {\n\t\t\t\t\t\tparentLog(msg);\n\t\t\t\t\t\tlog.push(msg);\n\t\t\t\t\t},\n\t\t\t\t\tyield: yield_,\n\t\t\t\t\tfileDependencies: resolveContext.fileDependencies,\n\t\t\t\t\tcontextDependencies: resolveContext.contextDependencies,\n\t\t\t\t\tmissingDependencies: resolveContext.missingDependencies,\n\t\t\t\t\tstack: resolveContext.stack,\n\t\t\t\t},\n\t\t\t\t(err, result) => {\n\t\t\t\t\tif (err) return callback(err);\n\n\t\t\t\t\tif (yieldCalled || (result && yield_)) {\n\t\t\t\t\t\treturn /** @type {ResolveContextYield} */ (finishYield)(\n\t\t\t\t\t\t\t/** @type {ResolveRequest} */ (result),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (result) return finishResolved(result);\n\n\t\t\t\t\treturn finishWithoutResolve(log);\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\t// Try to resolve assuming there is no error\n\t\t// We don't log stuff in this case\n\t\treturn this.doResolve(\n\t\t\tthis.hooks.resolve,\n\t\t\tobj,\n\t\t\tmessage,\n\t\t\t{\n\t\t\t\tlog: undefined,\n\t\t\t\tyield: yield_,\n\t\t\t\tfileDependencies: resolveContext.fileDependencies,\n\t\t\t\tcontextDependencies: resolveContext.contextDependencies,\n\t\t\t\tmissingDependencies: resolveContext.missingDependencies,\n\t\t\t\tstack: resolveContext.stack,\n\t\t\t},\n\t\t\t(err, result) => {\n\t\t\t\tif (err) return callback(err);\n\n\t\t\t\tif (yieldCalled || (result && yield_)) {\n\t\t\t\t\treturn /** @type {ResolveContextYield} */ (finishYield)(\n\t\t\t\t\t\t/** @type {ResolveRequest} */ (result),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (result) return finishResolved(result);\n\n\t\t\t\t// log is missing for the error details\n\t\t\t\t// so we redo the resolving for the log info\n\t\t\t\t// this is more expensive to the success case\n\t\t\t\t// is assumed by default\n\t\t\t\t/** @type {string[]} */\n\t\t\t\tconst log = [];\n\n\t\t\t\treturn this.doResolve(\n\t\t\t\t\tthis.hooks.resolve,\n\t\t\t\t\tobj,\n\t\t\t\t\tmessage,\n\t\t\t\t\t{\n\t\t\t\t\t\tlog: (msg) => log.push(msg),\n\t\t\t\t\t\tyield: yield_,\n\t\t\t\t\t\tstack: resolveContext.stack,\n\t\t\t\t\t},\n\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\tif (err) return callback(err);\n\n\t\t\t\t\t\t// In a case that there is a race condition and yield will be called\n\t\t\t\t\t\tif (yieldCalled || (result && yield_)) {\n\t\t\t\t\t\t\treturn /** @type {ResolveContextYield} */ (finishYield)(\n\t\t\t\t\t\t\t\t/** @type {ResolveRequest} */ (result),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn finishWithoutResolve(log);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * @param {ResolveStepHook} hook hook\n\t * @param {ResolveRequest} request request\n\t * @param {null | string} message string\n\t * @param {ResolveContext} resolveContext resolver context\n\t * @param {(err?: null | Error, result?: ResolveRequest) => void} callback callback\n\t * @returns {void}\n\t */\n\tdoResolve(hook, request, message, resolveContext, callback) {\n\t\tconst stackEntry = Resolver.createStackEntry(hook, request);\n\n\t\t/** @type {Set<string> | undefined} */\n\t\tlet newStack;\n\t\tif (resolveContext.stack) {\n\t\t\tnewStack = new Set(resolveContext.stack);\n\t\t\tif (resolveContext.stack.has(stackEntry)) {\n\t\t\t\t/**\n\t\t\t\t * Prevent recursion\n\t\t\t\t * @type {Error & { recursion?: boolean }}\n\t\t\t\t */\n\t\t\t\tconst recursionError = new Error(\n\t\t\t\t\t`Recursion in resolving\\nStack:\\n  ${[...newStack].join(\"\\n  \")}`,\n\t\t\t\t);\n\t\t\t\trecursionError.recursion = true;\n\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\tresolveContext.log(\"abort resolving because of recursion\");\n\t\t\t\t}\n\t\t\t\treturn callback(recursionError);\n\t\t\t}\n\t\t\tnewStack.add(stackEntry);\n\t\t} else {\n\t\t\t// creating a set with new Set([item])\n\t\t\t// allocates a new array that has to be garbage collected\n\t\t\t// this is an EXTREMELY hot path, so let's avoid it\n\t\t\tnewStack = new Set();\n\t\t\tnewStack.add(stackEntry);\n\t\t}\n\t\tthis.hooks.resolveStep.call(hook, request);\n\n\t\tif (hook.isUsed()) {\n\t\t\tconst innerContext = createInnerContext(\n\t\t\t\t{\n\t\t\t\t\tlog: resolveContext.log,\n\t\t\t\t\tyield: resolveContext.yield,\n\t\t\t\t\tfileDependencies: resolveContext.fileDependencies,\n\t\t\t\t\tcontextDependencies: resolveContext.contextDependencies,\n\t\t\t\t\tmissingDependencies: resolveContext.missingDependencies,\n\t\t\t\t\tstack: newStack,\n\t\t\t\t},\n\t\t\t\tmessage,\n\t\t\t);\n\t\t\treturn hook.callAsync(request, innerContext, (err, result) => {\n\t\t\t\tif (err) return callback(err);\n\t\t\t\tif (result) return callback(null, result);\n\t\t\t\tcallback();\n\t\t\t});\n\t\t}\n\t\tcallback();\n\t}\n\n\t/**\n\t * @param {string} identifier identifier\n\t * @returns {ParsedIdentifier} parsed identifier\n\t */\n\tparse(identifier) {\n\t\tconst part = {\n\t\t\trequest: \"\",\n\t\t\tquery: \"\",\n\t\t\tfragment: \"\",\n\t\t\tmodule: false,\n\t\t\tdirectory: false,\n\t\t\tfile: false,\n\t\t\tinternal: false,\n\t\t};\n\n\t\tconst parsedIdentifier = parseIdentifier(identifier);\n\n\t\tif (!parsedIdentifier) return part;\n\n\t\t[part.request, part.query, part.fragment] = parsedIdentifier;\n\n\t\tif (part.request.length > 0) {\n\t\t\tpart.internal = this.isPrivate(identifier);\n\t\t\tpart.module = this.isModule(part.request);\n\t\t\tpart.directory = this.isDirectory(part.request);\n\t\t\tif (part.directory) {\n\t\t\t\tpart.request = part.request.slice(0, -1);\n\t\t\t}\n\t\t}\n\n\t\treturn part;\n\t}\n\n\t/**\n\t * @param {string} path path\n\t * @returns {boolean} true, if the path is a module\n\t */\n\tisModule(path) {\n\t\treturn getType(path) === PathType.Normal;\n\t}\n\n\t/**\n\t * @param {string} path path\n\t * @returns {boolean} true, if the path is private\n\t */\n\tisPrivate(path) {\n\t\treturn getType(path) === PathType.Internal;\n\t}\n\n\t/**\n\t * @param {string} path a path\n\t * @returns {boolean} true, if the path is a directory path\n\t */\n\tisDirectory(path) {\n\t\treturn path.endsWith(\"/\");\n\t}\n\n\t/**\n\t * @param {string} path path\n\t * @param {string} request request\n\t * @returns {string} joined path\n\t */\n\tjoin(path, request) {\n\t\treturn join(path, request);\n\t}\n\n\t/**\n\t * @param {string} path path\n\t * @returns {string} normalized path\n\t */\n\tnormalize(path) {\n\t\treturn normalize(path);\n\t}\n}\n\nmodule.exports = Resolver;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Ivan Kopeykin @vankop\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nconst slashCode = \"/\".charCodeAt(0);\nconst backslashCode = \"\\\\\".charCodeAt(0);\n\n/**\n * @param {string} path path\n * @param {string} parent parent path\n * @returns {boolean} true, if path is inside of parent\n */\nconst isInside = (path, parent) => {\n\tif (!path.startsWith(parent)) return false;\n\tif (path.length === parent.length) return true;\n\tconst charCode = path.charCodeAt(parent.length);\n\treturn charCode === slashCode || charCode === backslashCode;\n};\n\nmodule.exports = class RestrictionsPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {Set<string | RegExp>} restrictions restrictions\n\t */\n\tconstructor(source, restrictions) {\n\t\tthis.source = source;\n\t\tthis.restrictions = restrictions;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"RestrictionsPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tif (typeof request.path === \"string\") {\n\t\t\t\t\tconst { path } = request;\n\t\t\t\t\tfor (const rule of this.restrictions) {\n\t\t\t\t\t\tif (typeof rule === \"string\") {\n\t\t\t\t\t\t\tif (!isInside(path, rule)) {\n\t\t\t\t\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\t\t\t\t\tresolveContext.log(\n\t\t\t\t\t\t\t\t\t\t`${path} is not inside of the restriction ${rule}`,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn callback(null, null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (!rule.test(path)) {\n\t\t\t\t\t\t\tif (resolveContext.log) {\n\t\t\t\t\t\t\t\tresolveContext.log(\n\t\t\t\t\t\t\t\t\t`${path} doesn't match the restriction ${rule}`,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn callback(null, null);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback();\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class ResultPlugin {\n\t/**\n\t * @param {ResolveStepHook} source source\n\t */\n\tconstructor(source) {\n\t\tthis.source = source;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tthis.source.tapAsync(\n\t\t\t\"ResultPlugin\",\n\t\t\t(request, resolverContext, callback) => {\n\t\t\t\tconst obj = { ...request };\n\t\t\t\tif (resolverContext.log) {\n\t\t\t\t\tresolverContext.log(`reporting result ${obj.path}`);\n\t\t\t\t}\n\t\t\t\tresolver.hooks.result.callAsync(obj, resolverContext, (err) => {\n\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\tif (typeof resolverContext.yield === \"function\") {\n\t\t\t\t\t\tresolverContext.yield(obj);\n\t\t\t\t\t\tcallback(null, null);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback(null, obj);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t);\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Ivan Kopeykin @vankop\n*/\n\n\"use strict\";\n\nconst forEachBail = require(\"./forEachBail\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nclass RootsPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source hook\n\t * @param {Set<string>} roots roots\n\t * @param {string | ResolveStepHook} target target hook\n\t */\n\tconstructor(source, roots, target) {\n\t\tthis.roots = [...roots];\n\t\tthis.source = source;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"RootsPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tconst req = request.request;\n\t\t\t\tif (!req) return callback();\n\t\t\t\tif (!req.startsWith(\"/\")) return callback();\n\n\t\t\t\tforEachBail(\n\t\t\t\t\tthis.roots,\n\t\t\t\t\t/**\n\t\t\t\t\t * @param {string} root root\n\t\t\t\t\t * @param {(err?: null | Error, result?: null | ResolveRequest) => void} callback callback\n\t\t\t\t\t * @returns {void}\n\t\t\t\t\t */\n\t\t\t\t\t(root, callback) => {\n\t\t\t\t\t\tconst path = resolver.join(root, req.slice(1));\n\t\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\t\tconst obj = {\n\t\t\t\t\t\t\t...request,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\trelativePath: request.relativePath && path,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tresolver.doResolve(\n\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\tobj,\n\t\t\t\t\t\t\t`root path ${root}`,\n\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t\tcallback,\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t\tcallback,\n\t\t\t\t);\n\t\t\t});\n\t}\n}\n\nmodule.exports = RootsPlugin;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst DescriptionFileUtils = require(\"./DescriptionFileUtils\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").JsonObject} JsonObject */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nconst slashCode = \"/\".charCodeAt(0);\n\nmodule.exports = class SelfReferencePlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string | string[]} fieldNamePath name path\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, fieldNamePath, target) {\n\t\tthis.source = source;\n\t\tthis.target = target;\n\t\tthis.fieldName = fieldNamePath;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"SelfReferencePlugin\", (request, resolveContext, callback) => {\n\t\t\t\tif (!request.descriptionFilePath) return callback();\n\n\t\t\t\tconst req = request.request;\n\t\t\t\tif (!req) return callback();\n\n\t\t\t\t// Feature is only enabled when an exports field is present\n\t\t\t\tconst exportsField = DescriptionFileUtils.getField(\n\t\t\t\t\t/** @type {JsonObject} */ (request.descriptionFileData),\n\t\t\t\t\tthis.fieldName,\n\t\t\t\t);\n\t\t\t\tif (!exportsField) return callback();\n\n\t\t\t\tconst name = DescriptionFileUtils.getField(\n\t\t\t\t\t/** @type {JsonObject} */ (request.descriptionFileData),\n\t\t\t\t\t\"name\",\n\t\t\t\t);\n\t\t\t\tif (typeof name !== \"string\") return callback();\n\n\t\t\t\tif (\n\t\t\t\t\treq.startsWith(name) &&\n\t\t\t\t\t(req.length === name.length ||\n\t\t\t\t\t\treq.charCodeAt(name.length) === slashCode)\n\t\t\t\t) {\n\t\t\t\t\tconst remainingRequest = `.${req.slice(name.length)}`;\n\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\tconst obj = {\n\t\t\t\t\t\t...request,\n\t\t\t\t\t\trequest: remainingRequest,\n\t\t\t\t\t\tpath: /** @type {string} */ (request.descriptionFileRoot),\n\t\t\t\t\t\trelativePath: \".\",\n\t\t\t\t\t};\n\n\t\t\t\t\tresolver.doResolve(\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\tobj,\n\t\t\t\t\t\t\"self reference\",\n\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\tcallback,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturn callback();\n\t\t\t\t}\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst forEachBail = require(\"./forEachBail\");\nconst getPaths = require(\"./getPaths\");\nconst { PathType, getType } = require(\"./util/path\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class SymlinkPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, target) {\n\t\tthis.source = source;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tconst fs = resolver.fileSystem;\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"SymlinkPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tif (request.ignoreSymlinks) return callback();\n\t\t\t\tconst pathsResult = getPaths(/** @type {string} */ (request.path));\n\t\t\t\tconst pathSegments = pathsResult.segments;\n\t\t\t\tconst { paths } = pathsResult;\n\n\t\t\t\tlet containsSymlink = false;\n\t\t\t\tlet idx = -1;\n\t\t\t\tforEachBail(\n\t\t\t\t\tpaths,\n\t\t\t\t\t/**\n\t\t\t\t\t * @param {string} path path\n\t\t\t\t\t * @param {(err?: null | Error, result?: null | number) => void} callback callback\n\t\t\t\t\t * @returns {void}\n\t\t\t\t\t */\n\t\t\t\t\t(path, callback) => {\n\t\t\t\t\t\tidx++;\n\t\t\t\t\t\tif (resolveContext.fileDependencies) {\n\t\t\t\t\t\t\tresolveContext.fileDependencies.add(path);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfs.readlink(path, (err, result) => {\n\t\t\t\t\t\t\tif (!err && result) {\n\t\t\t\t\t\t\t\tpathSegments[idx] = /** @type {string} */ (result);\n\t\t\t\t\t\t\t\tcontainsSymlink = true;\n\t\t\t\t\t\t\t\t// Shortcut when absolute symlink found\n\t\t\t\t\t\t\t\tconst resultType = getType(result.toString());\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tresultType === PathType.AbsoluteWin ||\n\t\t\t\t\t\t\t\t\tresultType === PathType.AbsolutePosix\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\treturn callback(null, idx);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\t/**\n\t\t\t\t\t * @param {null | Error=} err error\n\t\t\t\t\t * @param {null | number=} idx result\n\t\t\t\t\t * @returns {void}\n\t\t\t\t\t */\n\t\t\t\t\t(err, idx) => {\n\t\t\t\t\t\tif (!containsSymlink) return callback();\n\t\t\t\t\t\tconst resultSegments =\n\t\t\t\t\t\t\ttypeof idx === \"number\"\n\t\t\t\t\t\t\t\t? pathSegments.slice(0, idx + 1)\n\t\t\t\t\t\t\t\t: [...pathSegments];\n\t\t\t\t\t\tconst result = resultSegments.reduceRight((a, b) =>\n\t\t\t\t\t\t\tresolver.join(a, b),\n\t\t\t\t\t\t);\n\t\t\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\t\t\tconst obj = {\n\t\t\t\t\t\t\t...request,\n\t\t\t\t\t\t\tpath: result,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tresolver.doResolve(\n\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\tobj,\n\t\t\t\t\t\t\t`resolved symlink to ${result}`,\n\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t\tcallback,\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\").FileSystem} FileSystem */\n/** @typedef {import(\"./Resolver\").StringCallback} StringCallback */\n/** @typedef {import(\"./Resolver\").SyncFileSystem} SyncFileSystem */\n\n// eslint-disable-next-line jsdoc/reject-function-type\n/** @typedef {Function} SyncOrAsyncFunction */\n// eslint-disable-next-line jsdoc/reject-any-type\n/** @typedef {any} ResultOfSyncOrAsyncFunction */\n\n/**\n * @param {SyncFileSystem} fs file system implementation\n * @constructor\n */\nfunction SyncAsyncFileSystemDecorator(fs) {\n\tthis.fs = fs;\n\n\tthis.lstat = undefined;\n\tthis.lstatSync = undefined;\n\tconst { lstatSync } = fs;\n\tif (lstatSync) {\n\t\tthis.lstat =\n\t\t\t/** @type {FileSystem[\"lstat\"]} */\n\t\t\t(\n\t\t\t\t(arg, options, callback) => {\n\t\t\t\t\tlet result;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresult = /** @type {SyncOrAsyncFunction | undefined} */ (callback)\n\t\t\t\t\t\t\t? lstatSync.call(fs, arg, options)\n\t\t\t\t\t\t\t: lstatSync.call(fs, arg);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treturn (callback || options)(\n\t\t\t\t\t\t\t/** @type {NodeJS.ErrnoException | null} */\n\t\t\t\t\t\t\t(err),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t(callback || options)(\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t/** @type {ResultOfSyncOrAsyncFunction} */\n\t\t\t\t\t\t(result),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\tthis.lstatSync =\n\t\t\t/** @type {SyncFileSystem[\"lstatSync\"]} */\n\t\t\t((arg, options) => lstatSync.call(fs, arg, options));\n\t}\n\n\tthis.stat =\n\t\t/** @type {FileSystem[\"stat\"]} */\n\t\t(\n\t\t\t(arg, options, callback) => {\n\t\t\t\tlet result;\n\t\t\t\ttry {\n\t\t\t\t\tresult = /** @type {SyncOrAsyncFunction | undefined} */ (callback)\n\t\t\t\t\t\t? fs.statSync(arg, options)\n\t\t\t\t\t\t: fs.statSync(arg);\n\t\t\t\t} catch (err) {\n\t\t\t\t\treturn (callback || options)(\n\t\t\t\t\t\t/** @type {NodeJS.ErrnoException | null} */\n\t\t\t\t\t\t(err),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t(callback || options)(\n\t\t\t\t\tnull,\n\t\t\t\t\t/** @type {ResultOfSyncOrAsyncFunction} */\n\t\t\t\t\t(result),\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\tthis.statSync =\n\t\t/** @type {SyncFileSystem[\"statSync\"]} */\n\t\t((arg, options) => fs.statSync(arg, options));\n\n\tthis.readdir =\n\t\t/** @type {FileSystem[\"readdir\"]} */\n\t\t(\n\t\t\t(arg, options, callback) => {\n\t\t\t\tlet result;\n\t\t\t\ttry {\n\t\t\t\t\tresult = /** @type {SyncOrAsyncFunction | undefined} */ (callback)\n\t\t\t\t\t\t? fs.readdirSync(\n\t\t\t\t\t\t\t\targ,\n\t\t\t\t\t\t\t\t/** @type {Exclude<Parameters<FileSystem[\"readdir\"]>[1], (err: NodeJS.ErrnoException | null, files: string[]) => void>} */\n\t\t\t\t\t\t\t\t(options),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: fs.readdirSync(arg);\n\t\t\t\t} catch (err) {\n\t\t\t\t\treturn (callback || options)(\n\t\t\t\t\t\t/** @type {NodeJS.ErrnoException | null} */\n\t\t\t\t\t\t(err),\n\t\t\t\t\t\t[],\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t(callback || options)(\n\t\t\t\t\tnull,\n\t\t\t\t\t/** @type {ResultOfSyncOrAsyncFunction} */\n\t\t\t\t\t(result),\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\tthis.readdirSync =\n\t\t/** @type {SyncFileSystem[\"readdirSync\"]} */\n\t\t(\n\t\t\t(arg, options) =>\n\t\t\t\tfs.readdirSync(\n\t\t\t\t\targ,\n\t\t\t\t\t/** @type {Parameters<SyncFileSystem[\"readdirSync\"]>[1]} */ (options),\n\t\t\t\t)\n\t\t);\n\n\tthis.readFile =\n\t\t/** @type {FileSystem[\"readFile\"]} */\n\t\t(\n\t\t\t(arg, options, callback) => {\n\t\t\t\tlet result;\n\t\t\t\ttry {\n\t\t\t\t\tresult = /** @type {SyncOrAsyncFunction | undefined} */ (callback)\n\t\t\t\t\t\t? fs.readFileSync(arg, options)\n\t\t\t\t\t\t: fs.readFileSync(arg);\n\t\t\t\t} catch (err) {\n\t\t\t\t\treturn (callback || options)(\n\t\t\t\t\t\t/** @type {NodeJS.ErrnoException | null} */\n\t\t\t\t\t\t(err),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t(callback || options)(\n\t\t\t\t\tnull,\n\t\t\t\t\t/** @type {ResultOfSyncOrAsyncFunction} */\n\t\t\t\t\t(result),\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\tthis.readFileSync =\n\t\t/** @type {SyncFileSystem[\"readFileSync\"]} */\n\t\t((arg, options) => fs.readFileSync(arg, options));\n\n\tthis.readlink =\n\t\t/** @type {FileSystem[\"readlink\"]} */\n\t\t(\n\t\t\t(arg, options, callback) => {\n\t\t\t\tlet result;\n\t\t\t\ttry {\n\t\t\t\t\tresult = /** @type {SyncOrAsyncFunction | undefined} */ (callback)\n\t\t\t\t\t\t? fs.readlinkSync(\n\t\t\t\t\t\t\t\targ,\n\t\t\t\t\t\t\t\t/** @type {Exclude<Parameters<FileSystem[\"readlink\"]>[1], StringCallback>} */\n\t\t\t\t\t\t\t\t(options),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: fs.readlinkSync(arg);\n\t\t\t\t} catch (err) {\n\t\t\t\t\treturn (callback || options)(\n\t\t\t\t\t\t/** @type {NodeJS.ErrnoException | null} */\n\t\t\t\t\t\t(err),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t(callback || options)(\n\t\t\t\t\tnull,\n\t\t\t\t\t/** @type {ResultOfSyncOrAsyncFunction} */\n\t\t\t\t\t(result),\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\tthis.readlinkSync =\n\t\t/** @type {SyncFileSystem[\"readlinkSync\"]} */\n\t\t(\n\t\t\t(arg, options) =>\n\t\t\t\tfs.readlinkSync(\n\t\t\t\t\targ,\n\t\t\t\t\t/** @type {Parameters<SyncFileSystem[\"readlinkSync\"]>[1]} */ (\n\t\t\t\t\t\toptions\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t);\n\n\tthis.readJson = undefined;\n\tthis.readJsonSync = undefined;\n\tconst { readJsonSync } = fs;\n\tif (readJsonSync) {\n\t\tthis.readJson =\n\t\t\t/** @type {FileSystem[\"readJson\"]} */\n\t\t\t(\n\t\t\t\t(arg, callback) => {\n\t\t\t\t\tlet result;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresult = readJsonSync.call(fs, arg);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treturn callback(\n\t\t\t\t\t\t\t/** @type {NodeJS.ErrnoException | Error | null} */ (err),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback(null, result);\n\t\t\t\t}\n\t\t\t);\n\t\tthis.readJsonSync =\n\t\t\t/** @type {SyncFileSystem[\"readJsonSync\"]} */\n\t\t\t((arg) => readJsonSync.call(fs, arg));\n\t}\n\n\tthis.realpath = undefined;\n\tthis.realpathSync = undefined;\n\tconst { realpathSync } = fs;\n\tif (realpathSync) {\n\t\tthis.realpath =\n\t\t\t/** @type {FileSystem[\"realpath\"]} */\n\t\t\t(\n\t\t\t\t(arg, options, callback) => {\n\t\t\t\t\tlet result;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresult = /** @type {SyncOrAsyncFunction | undefined} */ (callback)\n\t\t\t\t\t\t\t? realpathSync.call(\n\t\t\t\t\t\t\t\t\tfs,\n\t\t\t\t\t\t\t\t\targ,\n\t\t\t\t\t\t\t\t\t/** @type {Exclude<Parameters<NonNullable<FileSystem[\"realpath\"]>>[1], StringCallback>} */\n\t\t\t\t\t\t\t\t\t(options),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: realpathSync.call(fs, arg);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treturn (callback || options)(\n\t\t\t\t\t\t\t/** @type {NodeJS.ErrnoException | null} */\n\t\t\t\t\t\t\t(err),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t(callback || options)(\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t/** @type {ResultOfSyncOrAsyncFunction} */\n\t\t\t\t\t\t(result),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\tthis.realpathSync =\n\t\t\t/** @type {SyncFileSystem[\"realpathSync\"]} */\n\t\t\t(\n\t\t\t\t(arg, options) =>\n\t\t\t\t\trealpathSync.call(\n\t\t\t\t\t\tfs,\n\t\t\t\t\t\targ,\n\t\t\t\t\t\t/** @type {Parameters<NonNullable<SyncFileSystem[\"realpathSync\"]>>[1]} */\n\t\t\t\t\t\t(options),\n\t\t\t\t\t)\n\t\t\t);\n\t}\n}\n\nmodule.exports = SyncAsyncFileSystemDecorator;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class TryNextPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string} message message\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, message, target) {\n\t\tthis.source = source;\n\t\tthis.message = message;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"TryNextPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tresolver.doResolve(\n\t\t\t\t\ttarget,\n\t\t\t\t\trequest,\n\t\t\t\t\tthis.message,\n\t\t\t\t\tresolveContext,\n\t\t\t\t\tcallback,\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Natsu @xiaoxiaojx\n\n\tThis file contains code ported from strip-json-comments:\n\thttps://github.com/sindresorhus/strip-json-comments\n\tOriginal license: MIT\n\tOriginal author: Sindre Sorhus\n*/\n\n\"use strict\";\n\n/**\n * @typedef {object} StripJsonCommentsOptions\n * @property {boolean=} whitespace Replace comments with whitespace\n * @property {boolean=} trailingCommas Strip trailing commas\n */\n\nconst singleComment = Symbol(\"singleComment\");\nconst multiComment = Symbol(\"multiComment\");\n\n/**\n * Strip without whitespace (returns empty string)\n * @param {string} _string Unused\n * @param {number} _start Unused\n * @param {number} _end Unused\n * @returns {string} Empty string for all input\n */\nconst stripWithoutWhitespace = (_string, _start, _end) => \"\";\n\n/**\n * Replace all characters except ASCII spaces, tabs and line endings with regular spaces to ensure valid JSON output.\n * @param {string} string String to process\n * @param {number} start Start index\n * @param {number} end End index\n * @returns {string} Processed string with comments replaced by whitespace\n */\nconst stripWithWhitespace = (string, start, end) =>\n\tstring.slice(start, end).replace(/[^ \\t\\r\\n]/g, \" \");\n\n/**\n * Check if a quote is escaped\n * @param {string} jsonString JSON string\n * @param {number} quotePosition Position of the quote\n * @returns {boolean} True if the quote at the given position is escaped\n */\nconst isEscaped = (jsonString, quotePosition) => {\n\tlet index = quotePosition - 1;\n\tlet backslashCount = 0;\n\n\twhile (jsonString[index] === \"\\\\\") {\n\t\tindex -= 1;\n\t\tbackslashCount += 1;\n\t}\n\n\treturn Boolean(backslashCount % 2);\n};\n\n/**\n * Strip comments from JSON string\n * @param {string} jsonString JSON string with potential comments\n * @param {StripJsonCommentsOptions} options Options\n * @returns {string} JSON string without comments\n */\nfunction stripJsonComments(\n\tjsonString,\n\t{ whitespace = true, trailingCommas = false } = {},\n) {\n\tif (typeof jsonString !== \"string\") {\n\t\tthrow new TypeError(\n\t\t\t`Expected argument \\`jsonString\\` to be a \\`string\\`, got \\`${typeof jsonString}\\``,\n\t\t);\n\t}\n\n\tconst strip = whitespace ? stripWithWhitespace : stripWithoutWhitespace;\n\n\tlet isInsideString = false;\n\t/** @type {false | typeof singleComment | typeof multiComment} */\n\tlet isInsideComment = false;\n\tlet offset = 0;\n\tlet buffer = \"\";\n\tlet result = \"\";\n\tlet commaIndex = -1;\n\n\tfor (let index = 0; index < jsonString.length; index++) {\n\t\tconst currentCharacter = jsonString[index];\n\t\tconst nextCharacter = jsonString[index + 1];\n\n\t\tif (!isInsideComment && currentCharacter === '\"') {\n\t\t\t// Enter or exit string\n\t\t\tconst escaped = isEscaped(jsonString, index);\n\t\t\tif (!escaped) {\n\t\t\t\tisInsideString = !isInsideString;\n\t\t\t}\n\t\t}\n\n\t\tif (isInsideString) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!isInsideComment && currentCharacter + nextCharacter === \"//\") {\n\t\t\t// Enter single-line comment\n\t\t\tbuffer += jsonString.slice(offset, index);\n\t\t\toffset = index;\n\t\t\tisInsideComment = singleComment;\n\t\t\tindex++;\n\t\t} else if (\n\t\t\tisInsideComment === singleComment &&\n\t\t\tcurrentCharacter + nextCharacter === \"\\r\\n\"\n\t\t) {\n\t\t\t// Exit single-line comment via \\r\\n\n\t\t\tindex++;\n\t\t\tisInsideComment = false;\n\t\t\tbuffer += strip(jsonString, offset, index);\n\t\t\toffset = index;\n\t\t\tcontinue;\n\t\t} else if (isInsideComment === singleComment && currentCharacter === \"\\n\") {\n\t\t\t// Exit single-line comment via \\n\n\t\t\tisInsideComment = false;\n\t\t\tbuffer += strip(jsonString, offset, index);\n\t\t\toffset = index;\n\t\t} else if (!isInsideComment && currentCharacter + nextCharacter === \"/*\") {\n\t\t\t// Enter multiline comment\n\t\t\tbuffer += jsonString.slice(offset, index);\n\t\t\toffset = index;\n\t\t\tisInsideComment = multiComment;\n\t\t\tindex++;\n\t\t\tcontinue;\n\t\t} else if (\n\t\t\tisInsideComment === multiComment &&\n\t\t\tcurrentCharacter + nextCharacter === \"*/\"\n\t\t) {\n\t\t\t// Exit multiline comment\n\t\t\tindex++;\n\t\t\tisInsideComment = false;\n\t\t\tbuffer += strip(jsonString, offset, index + 1);\n\t\t\toffset = index + 1;\n\t\t\tcontinue;\n\t\t} else if (trailingCommas && !isInsideComment) {\n\t\t\tif (commaIndex !== -1) {\n\t\t\t\tif (currentCharacter === \"}\" || currentCharacter === \"]\") {\n\t\t\t\t\t// Strip trailing comma\n\t\t\t\t\tbuffer += jsonString.slice(offset, index);\n\t\t\t\t\tresult += strip(buffer, 0, 1) + buffer.slice(1);\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\toffset = index;\n\t\t\t\t\tcommaIndex = -1;\n\t\t\t\t} else if (\n\t\t\t\t\tcurrentCharacter !== \" \" &&\n\t\t\t\t\tcurrentCharacter !== \"\\t\" &&\n\t\t\t\t\tcurrentCharacter !== \"\\r\" &&\n\t\t\t\t\tcurrentCharacter !== \"\\n\"\n\t\t\t\t) {\n\t\t\t\t\t// Hit non-whitespace following a comma; comma is not trailing\n\t\t\t\t\tbuffer += jsonString.slice(offset, index);\n\t\t\t\t\toffset = index;\n\t\t\t\t\tcommaIndex = -1;\n\t\t\t\t}\n\t\t\t} else if (currentCharacter === \",\") {\n\t\t\t\t// Flush buffer prior to this point, and save new comma index\n\t\t\t\tresult += buffer + jsonString.slice(offset, index);\n\t\t\t\tbuffer = \"\";\n\t\t\t\toffset = index;\n\t\t\t\tcommaIndex = index;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst remaining =\n\t\tisInsideComment === singleComment\n\t\t\t? strip(jsonString, offset, jsonString.length)\n\t\t\t: jsonString.slice(offset);\n\n\treturn result + buffer + remaining;\n}\n\nmodule.exports = stripJsonComments;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Natsu @xiaoxiaojx\n*/\n\n\"use strict\";\n\nconst stripJsonComments = require(\"./strip-json-comments\");\n\n/** @typedef {import(\"../Resolver\").FileSystem} FileSystem */\n\n/**\n * @typedef {object} ReadJsonOptions\n * @property {boolean=} stripComments Whether to strip JSONC comments\n */\n\n/**\n * Read and parse JSON file (supports JSONC with comments)\n * @template T\n * @param {FileSystem} fileSystem the file system\n * @param {string} jsonFilePath absolute path to JSON file\n * @param {ReadJsonOptions} options Options\n * @returns {Promise<T>} parsed JSON content\n */\nasync function readJson(fileSystem, jsonFilePath, options = {}) {\n\tconst { stripComments = false } = options;\n\tconst { readJson } = fileSystem;\n\tif (readJson && !stripComments) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadJson(jsonFilePath, (err, content) => {\n\t\t\t\tif (err) return reject(err);\n\t\t\t\tresolve(/** @type {T} */ (content));\n\t\t\t});\n\t\t});\n\t}\n\n\tconst buf = await new Promise((resolve, reject) => {\n\t\tfileSystem.readFile(jsonFilePath, (err, data) => {\n\t\t\tif (err) return reject(err);\n\t\t\tresolve(data);\n\t\t});\n\t});\n\n\tconst jsonText = /** @type {string} */ (buf.toString());\n\t// Strip comments to support JSONC (e.g., tsconfig.json with comments)\n\tconst jsonWithoutComments = stripComments\n\t\t? stripJsonComments(jsonText, { trailingCommas: true, whitespace: true })\n\t\t: jsonText;\n\treturn JSON.parse(jsonWithoutComments);\n}\n\nmodule.exports.readJson = readJson;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Natsu @xiaoxiaojx\n*/\n\n\"use strict\";\n\nconst { aliasResolveHandler } = require(\"./AliasUtils\");\nconst { modulesResolveHandler } = require(\"./ModulesUtils\");\nconst { readJson } = require(\"./util/fs\");\nconst {\n\tPathType: _PathType,\n\tcachedDirname: dirname,\n\tcachedJoin: join,\n\tisSubPath,\n\tnormalize,\n} = require(\"./util/path\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n/** @typedef {import(\"./AliasUtils\").AliasOption} AliasOption */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveContext} ResolveContext */\n/** @typedef {import(\"./Resolver\").FileSystem} FileSystem */\n/** @typedef {import(\"./Resolver\").TsconfigPathsData} TsconfigPathsData */\n/** @typedef {import(\"./Resolver\").TsconfigPathsMap} TsconfigPathsMap */\n/** @typedef {import(\"./ResolverFactory\").TsconfigOptions} TsconfigOptions */\n\n/**\n * @typedef {object} TsconfigCompilerOptions\n * @property {string=} baseUrl Base URL for resolving paths\n * @property {{ [key: string]: string[] }=} paths TypeScript paths mapping\n */\n\n/**\n * @typedef {object} TsconfigReference\n * @property {string} path Path to the referenced project\n */\n\n/**\n * @typedef {object} Tsconfig\n * @property {TsconfigCompilerOptions=} compilerOptions Compiler options\n * @property {string | string[]=} extends Extended configuration paths\n * @property {TsconfigReference[]=} references Project references\n */\n\nconst DEFAULT_CONFIG_FILE = \"tsconfig.json\";\n\n/**\n * @param {string} pattern Path pattern\n * @returns {number} Length of the prefix\n */\nfunction getPrefixLength(pattern) {\n\tconst prefixLength = pattern.indexOf(\"*\");\n\tif (prefixLength === -1) {\n\t\treturn pattern.length;\n\t}\n\treturn prefixLength;\n}\n\n/**\n * Sort path patterns.\n * If a module name can be matched with multiple patterns then pattern with the longest prefix will be picked.\n * @param {string[]} arr Array of path patterns\n * @returns {string[]} Array of path patterns sorted by longest prefix\n */\nfunction sortByLongestPrefix(arr) {\n\treturn [...arr].sort((a, b) => getPrefixLength(b) - getPrefixLength(a));\n}\n\n/**\n * Merge two tsconfig objects\n * @param {Tsconfig | null} base base config\n * @param {Tsconfig | null} config config to merge\n * @returns {Tsconfig} merged config\n */\nfunction mergeTsconfigs(base, config) {\n\tbase = base || {};\n\tconfig = config || {};\n\n\treturn {\n\t\t...base,\n\t\t...config,\n\t\tcompilerOptions: {\n\t\t\t.../** @type {TsconfigCompilerOptions} */ (base.compilerOptions),\n\t\t\t.../** @type {TsconfigCompilerOptions} */ (config.compilerOptions),\n\t\t},\n\t};\n}\n\n/**\n * Substitute ${configDir} template variable in path\n * @param {string} pathValue the path value\n * @param {string} configDir the config directory\n * @returns {string} the path with substituted template\n */\nfunction substituteConfigDir(pathValue, configDir) {\n\treturn pathValue.replace(/\\$\\{configDir\\}/g, configDir);\n}\n\n/**\n * Convert tsconfig paths to resolver options\n * @param {string} configDir Config file directory\n * @param {{ [key: string]: string[] }} paths TypeScript paths mapping\n * @param {string=} baseUrl Base URL for resolving paths (relative to configDir)\n * @returns {TsconfigPathsData} the resolver options\n */\nfunction tsconfigPathsToResolveOptions(configDir, paths, baseUrl) {\n\t// Calculate absolute base URL\n\tconst absoluteBaseUrl = !baseUrl ? configDir : join(configDir, baseUrl);\n\n\t/** @type {string[]} */\n\tconst sortedKeys = sortByLongestPrefix(Object.keys(paths));\n\t/** @type {AliasOption[]} */\n\tconst alias = [];\n\t/** @type {string[]} */\n\tconst modules = [];\n\n\tfor (const pattern of sortedKeys) {\n\t\tconst mappings = paths[pattern];\n\t\t// Substitute ${configDir} in path mappings\n\t\tconst absolutePaths = mappings.map((mapping) => {\n\t\t\tconst substituted = substituteConfigDir(mapping, configDir);\n\t\t\treturn join(absoluteBaseUrl, substituted);\n\t\t});\n\n\t\tif (absolutePaths.length > 0) {\n\t\t\tif (pattern === \"*\") {\n\t\t\t\tmodules.push(\n\t\t\t\t\t...absolutePaths\n\t\t\t\t\t\t.map((dir) => {\n\t\t\t\t\t\t\tif (/[/\\\\]\\*$/.test(dir)) {\n\t\t\t\t\t\t\t\treturn dir.replace(/[/\\\\]\\*$/, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn \"\";\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.filter(Boolean),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\talias.push({ name: pattern, alias: absolutePaths });\n\t\t\t}\n\t\t}\n\t}\n\n\tif (absoluteBaseUrl && !modules.includes(absoluteBaseUrl)) {\n\t\tmodules.push(absoluteBaseUrl);\n\t}\n\n\treturn {\n\t\talias,\n\t\tmodules,\n\t};\n}\n\n/**\n * Get the base context for the current project\n * @param {string} context the context\n * @param {string=} baseUrl base URL for resolving paths\n * @returns {string} the base context\n */\nfunction getAbsoluteBaseUrl(context, baseUrl) {\n\treturn !baseUrl ? context : join(context, baseUrl);\n}\n\nmodule.exports = class TsconfigPathsPlugin {\n\t/**\n\t * @param {true | string | TsconfigOptions} configFileOrOptions tsconfig file path or options object\n\t */\n\tconstructor(configFileOrOptions) {\n\t\tif (\n\t\t\ttypeof configFileOrOptions === \"object\" &&\n\t\t\tconfigFileOrOptions !== null\n\t\t) {\n\t\t\t// Options object format\n\t\t\tthis.configFile = configFileOrOptions.configFile || DEFAULT_CONFIG_FILE;\n\t\t\t/** @type {string[] | \"auto\"} */\n\t\t\tif (Array.isArray(configFileOrOptions.references)) {\n\t\t\t\t/** @type {TsconfigReference[] | \"auto\"} */\n\t\t\t\tthis.references = configFileOrOptions.references.map((ref) => ({\n\t\t\t\t\tpath: ref,\n\t\t\t\t}));\n\t\t\t} else if (configFileOrOptions.references === \"auto\") {\n\t\t\t\tthis.references = \"auto\";\n\t\t\t} else {\n\t\t\t\tthis.references = [];\n\t\t\t}\n\t\t\t/** @type {string | undefined} */\n\t\t\tthis.baseUrl = configFileOrOptions.baseUrl;\n\t\t} else {\n\t\t\tthis.configFile =\n\t\t\t\tconfigFileOrOptions === true\n\t\t\t\t\t? DEFAULT_CONFIG_FILE\n\t\t\t\t\t: /** @type {string} */ (configFileOrOptions);\n\t\t\t/** @type {TsconfigReference[] | \"auto\"} */\n\t\t\tthis.references = [];\n\t\t\t/** @type {string | undefined} */\n\t\t\tthis.baseUrl = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst aliasTarget = resolver.ensureHook(\"internal-resolve\");\n\t\tconst moduleTarget = resolver.ensureHook(\"module\");\n\n\t\tresolver\n\t\t\t.getHook(\"raw-resolve\")\n\t\t\t.tapAsync(\n\t\t\t\t\"TsconfigPathsPlugin\",\n\t\t\t\tasync (request, resolveContext, callback) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst tsconfigPathsMap = await this._getTsconfigPathsMap(\n\t\t\t\t\t\t\tresolver,\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!tsconfigPathsMap) return callback();\n\n\t\t\t\t\t\tconst selectedData = this._selectPathsDataForContext(\n\t\t\t\t\t\t\trequest.path,\n\t\t\t\t\t\t\ttsconfigPathsMap,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!selectedData) return callback();\n\n\t\t\t\t\t\taliasResolveHandler(\n\t\t\t\t\t\t\tresolver,\n\t\t\t\t\t\t\tselectedData.alias,\n\t\t\t\t\t\t\taliasTarget,\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t\tcallback,\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tcallback(/** @type {Error} */ (err));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\n\t\tresolver\n\t\t\t.getHook(\"raw-module\")\n\t\t\t.tapAsync(\n\t\t\t\t\"TsconfigPathsPlugin\",\n\t\t\t\tasync (request, resolveContext, callback) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst tsconfigPathsMap = await this._getTsconfigPathsMap(\n\t\t\t\t\t\t\tresolver,\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!tsconfigPathsMap) return callback();\n\n\t\t\t\t\t\tconst selectedData = this._selectPathsDataForContext(\n\t\t\t\t\t\t\trequest.path,\n\t\t\t\t\t\t\ttsconfigPathsMap,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!selectedData) return callback();\n\n\t\t\t\t\t\tmodulesResolveHandler(\n\t\t\t\t\t\t\tresolver,\n\t\t\t\t\t\t\tselectedData.modules,\n\t\t\t\t\t\t\tmoduleTarget,\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\t\tcallback,\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tcallback(/** @type {Error} */ (err));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t}\n\n\t/**\n\t * Get TsconfigPathsMap for the request (with caching)\n\t * @param {Resolver} resolver the resolver\n\t * @param {ResolveRequest} request the request\n\t * @param {ResolveContext} resolveContext the resolve context\n\t * @returns {Promise<TsconfigPathsMap | null>} the tsconfig paths map or null\n\t */\n\tasync _getTsconfigPathsMap(resolver, request, resolveContext) {\n\t\tif (typeof request.tsconfigPathsMap === \"undefined\") {\n\t\t\ttry {\n\t\t\t\tconst absTsconfigPath = join(\n\t\t\t\t\trequest.path || process.cwd(),\n\t\t\t\t\tthis.configFile,\n\t\t\t\t);\n\t\t\t\tconst result = await this._loadTsconfigPathsMap(\n\t\t\t\t\tresolver.fileSystem,\n\t\t\t\t\tabsTsconfigPath,\n\t\t\t\t);\n\n\t\t\t\trequest.tsconfigPathsMap = result;\n\t\t\t} catch (err) {\n\t\t\t\trequest.tsconfigPathsMap = null;\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t}\n\n\t\tif (!request.tsconfigPathsMap) {\n\t\t\treturn null;\n\t\t}\n\n\t\tfor (const fileDependency of request.tsconfigPathsMap.fileDependencies) {\n\t\t\tif (resolveContext.fileDependencies) {\n\t\t\t\tresolveContext.fileDependencies.add(fileDependency);\n\t\t\t}\n\t\t}\n\t\treturn request.tsconfigPathsMap;\n\t}\n\n\t/**\n\t * Load tsconfig.json and build complete TsconfigPathsMap\n\t * Includes main project paths and all referenced projects\n\t * @param {FileSystem} fileSystem the file system\n\t * @param {string} absTsconfigPath absolute path to tsconfig.json\n\t * @returns {Promise<TsconfigPathsMap>} the complete tsconfig paths map\n\t */\n\tasync _loadTsconfigPathsMap(fileSystem, absTsconfigPath) {\n\t\t/** @type {Set<string>} */\n\t\tconst fileDependencies = new Set();\n\t\tconst config = await this._loadTsconfig(\n\t\t\tfileSystem,\n\t\t\tabsTsconfigPath,\n\t\t\tfileDependencies,\n\t\t);\n\n\t\tconst compilerOptions = config.compilerOptions || {};\n\t\tconst mainContext = dirname(absTsconfigPath);\n\n\t\tconst baseUrl =\n\t\t\tthis.baseUrl !== undefined ? this.baseUrl : compilerOptions.baseUrl;\n\n\t\tconst main = tsconfigPathsToResolveOptions(\n\t\t\tmainContext,\n\t\t\tcompilerOptions.paths || {},\n\t\t\tbaseUrl,\n\t\t);\n\t\t/** @type {{ [baseUrl: string]: TsconfigPathsData }} */\n\t\tconst refs = {};\n\n\t\tlet referencesToUse = null;\n\t\tif (this.references === \"auto\") {\n\t\t\treferencesToUse = config.references;\n\t\t} else if (Array.isArray(this.references)) {\n\t\t\treferencesToUse = this.references;\n\t\t}\n\n\t\tif (Array.isArray(referencesToUse)) {\n\t\t\tawait this._loadTsconfigReferences(\n\t\t\t\tfileSystem,\n\t\t\t\tmainContext,\n\t\t\t\treferencesToUse,\n\t\t\t\tfileDependencies,\n\t\t\t\trefs,\n\t\t\t);\n\t\t}\n\n\t\tconst allContexts =\n\t\t\t/** @type {{ [context: string]: TsconfigPathsData }} */ ({\n\t\t\t\t[mainContext]: main,\n\t\t\t\t...refs,\n\t\t\t});\n\t\treturn { main, mainContext, refs, allContexts, fileDependencies };\n\t}\n\n\t/**\n\t * Select the correct TsconfigPathsData based on request.path (context-aware)\n\t * Matches the behavior of tsconfig-paths-webpack-plugin\n\t * @param {string | false} requestPath the request path\n\t * @param {TsconfigPathsMap} tsconfigPathsMap the tsconfig paths map\n\t * @returns {TsconfigPathsData | null} the selected paths data\n\t */\n\t_selectPathsDataForContext(requestPath, tsconfigPathsMap) {\n\t\tconst { main, allContexts } = tsconfigPathsMap;\n\t\tif (!requestPath) {\n\t\t\treturn main;\n\t\t}\n\t\tlet longestMatch = null;\n\t\tlet longestMatchLength = 0;\n\t\tfor (const [context, data] of Object.entries(allContexts)) {\n\t\t\tif (context === requestPath) {\n\t\t\t\treturn data;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tisSubPath(context, requestPath) &&\n\t\t\t\tcontext.length > longestMatchLength\n\t\t\t) {\n\t\t\t\tlongestMatch = data;\n\t\t\t\tlongestMatchLength = context.length;\n\t\t\t}\n\t\t}\n\t\tif (longestMatch) {\n\t\t\treturn longestMatch;\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Load tsconfig from extends path\n\t * @param {FileSystem} fileSystem the file system\n\t * @param {string} configFilePath current config file path\n\t * @param {string} extendedConfigValue extends value\n\t * @param {Set<string>} fileDependencies the file dependencies\n\t * @param {Set<string>} visitedConfigPaths config paths being loaded (for circular extends detection)\n\t * @returns {Promise<Tsconfig>} the extended tsconfig\n\t */\n\tasync _loadTsconfigFromExtends(\n\t\tfileSystem,\n\t\tconfigFilePath,\n\t\textendedConfigValue,\n\t\tfileDependencies,\n\t\tvisitedConfigPaths,\n\t) {\n\t\tconst currentDir = dirname(configFilePath);\n\n\t\t// Substitute ${configDir} in extends path\n\t\textendedConfigValue = substituteConfigDir(extendedConfigValue, currentDir);\n\n\t\t// Remember the original value before potentially appending .json\n\t\tconst originalExtendedConfigValue = extendedConfigValue;\n\n\t\tif (\n\t\t\ttypeof extendedConfigValue === \"string\" &&\n\t\t\t!extendedConfigValue.includes(\".json\")\n\t\t) {\n\t\t\textendedConfigValue += \".json\";\n\t\t}\n\n\t\tlet extendedConfigPath = join(currentDir, extendedConfigValue);\n\n\t\tconst exists = await new Promise((resolve) => {\n\t\t\tfileSystem.readFile(extendedConfigPath, (err) => {\n\t\t\t\tresolve(!err);\n\t\t\t});\n\t\t});\n\t\tif (!exists) {\n\t\t\t// Handle scoped package extends like \"@scope/name\" (no sub-path):\n\t\t\t// \"@scope/name\" should resolve to node_modules/@scope/name/tsconfig.json,\n\t\t\t// not node_modules/@scope/name.json\n\t\t\t// See: test/fixtures/tsconfig-paths/extends-pkg-entry/\n\t\t\tif (\n\t\t\t\ttypeof originalExtendedConfigValue === \"string\" &&\n\t\t\t\toriginalExtendedConfigValue.startsWith(\"@\") &&\n\t\t\t\toriginalExtendedConfigValue.split(\"/\").length === 2\n\t\t\t) {\n\t\t\t\textendedConfigPath = join(\n\t\t\t\t\tcurrentDir,\n\t\t\t\t\tnormalize(\n\t\t\t\t\t\t`node_modules/${originalExtendedConfigValue}/${DEFAULT_CONFIG_FILE}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t} else if (extendedConfigValue.includes(\"/\")) {\n\t\t\t\t// Handle package sub-path extends like \"react/tsconfig\":\n\t\t\t\t// \"react/tsconfig\" resolves to node_modules/react/tsconfig.json\n\t\t\t\t// See: test/fixtures/tsconfig-paths/extends-npm/\n\t\t\t\textendedConfigPath = join(\n\t\t\t\t\tcurrentDir,\n\t\t\t\t\tnormalize(`node_modules/${extendedConfigValue}`),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst config = await this._loadTsconfig(\n\t\t\tfileSystem,\n\t\t\textendedConfigPath,\n\t\t\tfileDependencies,\n\t\t\tvisitedConfigPaths,\n\t\t);\n\t\tconst compilerOptions = config.compilerOptions || { baseUrl: undefined };\n\n\t\tif (compilerOptions.baseUrl) {\n\t\t\tconst extendedConfigDir = dirname(extendedConfigPath);\n\t\t\tcompilerOptions.baseUrl = getAbsoluteBaseUrl(\n\t\t\t\textendedConfigDir,\n\t\t\t\tcompilerOptions.baseUrl,\n\t\t\t);\n\t\t}\n\n\t\tdelete config.references;\n\n\t\treturn /** @type {Tsconfig} */ (config);\n\t}\n\n\t/**\n\t * Load referenced tsconfig projects and store in referenceMatchMap\n\t * Simple implementation matching tsconfig-paths-webpack-plugin:\n\t * Just load each reference and store independently\n\t * @param {FileSystem} fileSystem the file system\n\t * @param {string} context the context\n\t * @param {TsconfigReference[]} references array of references\n\t * @param {Set<string>} fileDependencies the file dependencies\n\t * @param {{ [baseUrl: string]: TsconfigPathsData }} referenceMatchMap the map to populate\n\t * @returns {Promise<void>}\n\t */\n\tasync _loadTsconfigReferences(\n\t\tfileSystem,\n\t\tcontext,\n\t\treferences,\n\t\tfileDependencies,\n\t\treferenceMatchMap,\n\t) {\n\t\tawait Promise.all(\n\t\t\treferences.map(async (ref) => {\n\t\t\t\tconst refPath = substituteConfigDir(ref.path, context);\n\t\t\t\tconst refConfigPath = join(join(context, refPath), DEFAULT_CONFIG_FILE);\n\n\t\t\t\ttry {\n\t\t\t\t\tconst refConfig = await this._loadTsconfig(\n\t\t\t\t\t\tfileSystem,\n\t\t\t\t\t\trefConfigPath,\n\t\t\t\t\t\tfileDependencies,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (refConfig.compilerOptions && refConfig.compilerOptions.paths) {\n\t\t\t\t\t\tconst refContext = dirname(refConfigPath);\n\n\t\t\t\t\t\treferenceMatchMap[refContext] = tsconfigPathsToResolveOptions(\n\t\t\t\t\t\t\trefContext,\n\t\t\t\t\t\t\trefConfig.compilerOptions.paths || {},\n\t\t\t\t\t\t\trefConfig.compilerOptions.baseUrl,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.references === \"auto\" &&\n\t\t\t\t\t\tArray.isArray(refConfig.references)\n\t\t\t\t\t) {\n\t\t\t\t\t\tawait this._loadTsconfigReferences(\n\t\t\t\t\t\t\tfileSystem,\n\t\t\t\t\t\t\tdirname(refConfigPath),\n\t\t\t\t\t\t\trefConfig.references,\n\t\t\t\t\t\t\tfileDependencies,\n\t\t\t\t\t\t\treferenceMatchMap,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} catch (_err) {\n\t\t\t\t\t// continue\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t}\n\n\t/**\n\t * Load tsconfig.json with extends support\n\t * @param {FileSystem} fileSystem the file system\n\t * @param {string} configFilePath absolute path to tsconfig.json\n\t * @param {Set<string>} fileDependencies the file dependencies\n\t * @param {Set<string>=} visitedConfigPaths config paths being loaded (for circular extends detection)\n\t * @returns {Promise<Tsconfig>} the merged tsconfig\n\t */\n\tasync _loadTsconfig(\n\t\tfileSystem,\n\t\tconfigFilePath,\n\t\tfileDependencies,\n\t\tvisitedConfigPaths = new Set(),\n\t) {\n\t\tif (visitedConfigPaths.has(configFilePath)) {\n\t\t\treturn /** @type {Tsconfig} */ ({});\n\t\t}\n\t\tvisitedConfigPaths.add(configFilePath);\n\t\tconst config = await readJson(fileSystem, configFilePath, {\n\t\t\tstripComments: true,\n\t\t});\n\t\tfileDependencies.add(configFilePath);\n\n\t\tlet result = config;\n\n\t\tconst extendedConfig = config.extends;\n\t\tif (extendedConfig) {\n\t\t\tlet base;\n\n\t\t\tif (Array.isArray(extendedConfig)) {\n\t\t\t\tbase = {};\n\t\t\t\tfor (const extendedConfigElement of extendedConfig) {\n\t\t\t\t\tconst extendedTsconfig = await this._loadTsconfigFromExtends(\n\t\t\t\t\t\tfileSystem,\n\t\t\t\t\t\tconfigFilePath,\n\t\t\t\t\t\textendedConfigElement,\n\t\t\t\t\t\tfileDependencies,\n\t\t\t\t\t\tvisitedConfigPaths,\n\t\t\t\t\t);\n\t\t\t\t\tbase = mergeTsconfigs(base, extendedTsconfig);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tbase = await this._loadTsconfigFromExtends(\n\t\t\t\t\tfileSystem,\n\t\t\t\t\tconfigFilePath,\n\t\t\t\t\textendedConfig,\n\t\t\t\t\tfileDependencies,\n\t\t\t\t\tvisitedConfigPaths,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tresult = /** @type {Tsconfig} */ (mergeTsconfigs(base, config));\n\t\t}\n\n\t\treturn result;\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst { cachedJoin } = require(\"./util/path\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n/** @typedef {import(\"./Resolver\").ResolveContextYield} ResolveContextYield */\n/** @typedef {{ [k: string]: undefined | ResolveRequest | ResolveRequest[] }} Cache */\n\nconst RELATIVE_REQUEST_REGEXP = /^\\.\\.?(?:\\/|$)/;\n\n/**\n * @param {string} relativePath relative path from package root\n * @param {string} request relative request\n * @returns {string} normalized request with a preserved leading dot\n */\nfunction joinRelativePreservingLeadingDot(relativePath, request) {\n\tconst normalized = cachedJoin(relativePath, request);\n\treturn RELATIVE_REQUEST_REGEXP.test(normalized)\n\t\t? normalized\n\t\t: `./${normalized}`;\n}\n\n/**\n * @param {ResolveRequest} request request\n * @returns {string | false | undefined} normalized path\n */\nfunction getCachePath(request) {\n\tif (request.descriptionFileRoot && !request.module) {\n\t\treturn request.descriptionFileRoot;\n\t}\n\treturn request.path;\n}\n\n/**\n * @param {ResolveRequest} request request\n * @returns {string | undefined} normalized request string\n */\nfunction getCacheRequest(request) {\n\tconst requestString = request.request;\n\tif (\n\t\t!requestString ||\n\t\t!request.relativePath ||\n\t\t!RELATIVE_REQUEST_REGEXP.test(requestString)\n\t) {\n\t\treturn requestString;\n\t}\n\treturn joinRelativePreservingLeadingDot(request.relativePath, requestString);\n}\n\n/**\n * @param {string} type type of cache\n * @param {ResolveRequest} request request\n * @param {boolean} withContext cache with context?\n * @returns {string} cache id\n */\nfunction getCacheId(type, request, withContext) {\n\treturn JSON.stringify({\n\t\ttype,\n\t\tcontext: withContext ? request.context : \"\",\n\t\tpath: getCachePath(request),\n\t\tquery: request.query,\n\t\tfragment: request.fragment,\n\t\trequest: getCacheRequest(request),\n\t});\n}\n\nmodule.exports = class UnsafeCachePlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {(request: ResolveRequest) => boolean} filterPredicate filterPredicate\n\t * @param {Cache} cache cache\n\t * @param {boolean} withContext withContext\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, filterPredicate, cache, withContext, target) {\n\t\tthis.source = source;\n\t\tthis.filterPredicate = filterPredicate;\n\t\tthis.withContext = withContext;\n\t\tthis.cache = cache;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"UnsafeCachePlugin\", (request, resolveContext, callback) => {\n\t\t\t\tif (!this.filterPredicate(request)) {\n\t\t\t\t\treturn resolver.doResolve(\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tresolveContext,\n\t\t\t\t\t\tcallback,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst isYield = typeof resolveContext.yield === \"function\";\n\t\t\t\tconst cacheId = getCacheId(\n\t\t\t\t\tisYield ? \"yield\" : \"default\",\n\t\t\t\t\trequest,\n\t\t\t\t\tthis.withContext,\n\t\t\t\t);\n\t\t\t\tconst cacheEntry = this.cache[cacheId];\n\t\t\t\tif (cacheEntry) {\n\t\t\t\t\tif (isYield) {\n\t\t\t\t\t\tconst yield_ =\n\t\t\t\t\t\t\t/** @type {ResolveContextYield} */\n\t\t\t\t\t\t\t(resolveContext.yield);\n\t\t\t\t\t\tif (Array.isArray(cacheEntry)) {\n\t\t\t\t\t\t\tfor (const result of cacheEntry) yield_(result);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tyield_(cacheEntry);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn callback(null, null);\n\t\t\t\t\t}\n\t\t\t\t\treturn callback(null, /** @type {ResolveRequest} */ (cacheEntry));\n\t\t\t\t}\n\n\t\t\t\t/** @type {ResolveContextYield | undefined} */\n\t\t\t\tlet yieldFn;\n\t\t\t\t/** @type {ResolveContextYield | undefined} */\n\t\t\t\tlet yield_;\n\t\t\t\t/** @type {ResolveRequest[]} */\n\t\t\t\tconst yieldResult = [];\n\t\t\t\tif (isYield) {\n\t\t\t\t\tyieldFn = resolveContext.yield;\n\t\t\t\t\tyield_ = (result) => {\n\t\t\t\t\t\tyieldResult.push(result);\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tresolver.doResolve(\n\t\t\t\t\ttarget,\n\t\t\t\t\trequest,\n\t\t\t\t\tnull,\n\t\t\t\t\tyield_ ? { ...resolveContext, yield: yield_ } : resolveContext,\n\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\tif (err) return callback(err);\n\t\t\t\t\t\tif (isYield) {\n\t\t\t\t\t\t\tif (result) yieldResult.push(result);\n\t\t\t\t\t\t\tfor (const result of yieldResult) {\n\t\t\t\t\t\t\t\t/** @type {ResolveContextYield} */\n\t\t\t\t\t\t\t\t(yieldFn)(result);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.cache[cacheId] = yieldResult;\n\t\t\t\t\t\t\treturn callback(null, null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (result) return callback(null, (this.cache[cacheId] = result));\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class UseFilePlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string} filename filename\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, filename, target) {\n\t\tthis.source = source;\n\t\tthis.filename = filename;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"UseFilePlugin\", (request, resolveContext, callback) => {\n\t\t\t\tconst filePath = resolver.join(\n\t\t\t\t\t/** @type {string} */ (request.path),\n\t\t\t\t\tthis.filename,\n\t\t\t\t);\n\n\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\tconst obj = {\n\t\t\t\t\t...request,\n\t\t\t\t\tpath: filePath,\n\t\t\t\t\trelativePath:\n\t\t\t\t\t\trequest.relativePath &&\n\t\t\t\t\t\tresolver.join(request.relativePath, this.filename),\n\t\t\t\t};\n\t\t\t\tresolver.doResolve(\n\t\t\t\t\ttarget,\n\t\t\t\t\tobj,\n\t\t\t\t\t`using path: ${filePath}`,\n\t\t\t\t\tresolveContext,\n\t\t\t\t\tcallback,\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n// eslint-disable-next-line n/prefer-global/process\nconst { versions } = require(\"process\");\n\nconst AliasFieldPlugin = require(\"./AliasFieldPlugin\");\nconst AliasPlugin = require(\"./AliasPlugin\");\nconst AppendPlugin = require(\"./AppendPlugin\");\nconst ConditionalPlugin = require(\"./ConditionalPlugin\");\nconst DescriptionFilePlugin = require(\"./DescriptionFilePlugin\");\nconst DirectoryExistsPlugin = require(\"./DirectoryExistsPlugin\");\nconst ExportsFieldPlugin = require(\"./ExportsFieldPlugin\");\nconst ExtensionAliasPlugin = require(\"./ExtensionAliasPlugin\");\nconst FileExistsPlugin = require(\"./FileExistsPlugin\");\nconst ImportsFieldPlugin = require(\"./ImportsFieldPlugin\");\nconst JoinRequestPartPlugin = require(\"./JoinRequestPartPlugin\");\nconst JoinRequestPlugin = require(\"./JoinRequestPlugin\");\nconst MainFieldPlugin = require(\"./MainFieldPlugin\");\nconst ModulesInHierarchicalDirectoriesPlugin = require(\"./ModulesInHierarchicalDirectoriesPlugin\");\nconst ModulesInRootPlugin = require(\"./ModulesInRootPlugin\");\nconst NextPlugin = require(\"./NextPlugin\");\nconst ParsePlugin = require(\"./ParsePlugin\");\nconst PnpPlugin = require(\"./PnpPlugin\");\nconst Resolver = require(\"./Resolver\");\nconst RestrictionsPlugin = require(\"./RestrictionsPlugin\");\nconst ResultPlugin = require(\"./ResultPlugin\");\nconst RootsPlugin = require(\"./RootsPlugin\");\nconst SelfReferencePlugin = require(\"./SelfReferencePlugin\");\nconst SymlinkPlugin = require(\"./SymlinkPlugin\");\nconst SyncAsyncFileSystemDecorator = require(\"./SyncAsyncFileSystemDecorator\");\nconst TryNextPlugin = require(\"./TryNextPlugin\");\nconst TsconfigPathsPlugin = require(\"./TsconfigPathsPlugin\");\nconst UnsafeCachePlugin = require(\"./UnsafeCachePlugin\");\nconst UseFilePlugin = require(\"./UseFilePlugin\");\nconst { PathType, getType } = require(\"./util/path\");\n\n/** @typedef {import(\"./AliasPlugin\").AliasOption} AliasOptionEntry */\n/** @typedef {import(\"./ExtensionAliasPlugin\").ExtensionAliasOption} ExtensionAliasOption */\n/** @typedef {import(\"./PnpPlugin\").PnpApiImpl} PnpApi */\n/** @typedef {import(\"./Resolver\").EnsuredHooks} EnsuredHooks */\n/** @typedef {import(\"./Resolver\").FileSystem} FileSystem */\n/** @typedef {import(\"./Resolver\").KnownHooks} KnownHooks */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").SyncFileSystem} SyncFileSystem */\n/** @typedef {import(\"./UnsafeCachePlugin\").Cache} Cache */\n\n/** @typedef {string | string[] | false} AliasOptionNewRequest */\n/** @typedef {{ [k: string]: AliasOptionNewRequest }} AliasOptions */\n/** @typedef {{ [k: string]: string | string[] }} ExtensionAliasOptions */\n/** @typedef {false | 0 | \"\" | null | undefined} Falsy */\n/** @typedef {{ apply: (resolver: Resolver) => void } | ((this: Resolver, resolver: Resolver) => void) | Falsy} Plugin */\n\n/**\n * @typedef {object} TsconfigOptions\n * @property {string=} configFile A relative path to the tsconfig file based on cwd, or an absolute path of tsconfig file\n * @property {string[] | \"auto\"=} references References to other tsconfig files. 'auto' inherits from TypeScript config, or an array of relative/absolute paths\n * @property {string=} baseUrl Override baseUrl from tsconfig.json. If provided, this value will be used instead of the baseUrl in the tsconfig file\n */\n\n/**\n * @typedef {object} UserResolveOptions\n * @property {(AliasOptions | AliasOptionEntry[])=} alias A list of module alias configurations or an object which maps key to value\n * @property {(AliasOptions | AliasOptionEntry[])=} fallback A list of module alias configurations or an object which maps key to value, applied only after modules option\n * @property {ExtensionAliasOptions=} extensionAlias An object which maps extension to extension aliases\n * @property {(string | string[])[]=} aliasFields A list of alias fields in description files\n * @property {((predicate: ResolveRequest) => boolean)=} cachePredicate A function which decides whether a request should be cached or not. An object is passed with at least `path` and `request` properties.\n * @property {boolean=} cacheWithContext Whether or not the unsafeCache should include request context as part of the cache key.\n * @property {string[]=} descriptionFiles A list of description files to read from\n * @property {string[]=} conditionNames A list of exports field condition names.\n * @property {boolean=} enforceExtension Enforce that a extension from extensions must be used\n * @property {(string | string[])[]=} exportsFields A list of exports fields in description files\n * @property {(string | string[])[]=} importsFields A list of imports fields in description files\n * @property {string[]=} extensions A list of extensions which should be tried for files\n * @property {FileSystem} fileSystem The file system which should be used\n * @property {(Cache | boolean)=} unsafeCache Use this cache object to unsafely cache the successful requests\n * @property {boolean=} symlinks Resolve symlinks to their symlinked location\n * @property {Resolver=} resolver A prepared Resolver to which the plugins are attached\n * @property {string[] | string=} modules A list of directories to resolve modules from, can be absolute path or folder name\n * @property {(string | string[] | { name: string | string[], forceRelative: boolean })[]=} mainFields A list of main fields in description files\n * @property {string[]=} mainFiles A list of main files in directories\n * @property {Plugin[]=} plugins A list of additional resolve plugins which should be applied\n * @property {PnpApi | null=} pnpApi A PnP API that should be used - null is \"never\", undefined is \"auto\"\n * @property {string[]=} roots A list of root paths\n * @property {boolean=} fullySpecified The request is already fully specified and no extensions or directories are resolved for it\n * @property {boolean=} resolveToContext Resolve to a context instead of a file\n * @property {(string | RegExp)[]=} restrictions A list of resolve restrictions\n * @property {boolean=} useSyncFileSystemCalls Use only the sync constraints of the file system calls\n * @property {boolean=} preferRelative Prefer to resolve module requests as relative requests before falling back to modules\n * @property {boolean=} preferAbsolute Prefer to resolve server-relative urls as absolute paths before falling back to resolve in roots\n * @property {string | boolean | TsconfigOptions=} tsconfig TypeScript config file path or config object with configFile and references\n */\n\n/**\n * @typedef {object} ResolveOptions\n * @property {AliasOptionEntry[]} alias alias\n * @property {AliasOptionEntry[]} fallback fallback\n * @property {Set<string | string[]>} aliasFields alias fields\n * @property {ExtensionAliasOption[]} extensionAlias extension alias\n * @property {(predicate: ResolveRequest) => boolean} cachePredicate cache predicate\n * @property {boolean} cacheWithContext cache with context\n * @property {Set<string>} conditionNames A list of exports field condition names.\n * @property {string[]} descriptionFiles description files\n * @property {boolean} enforceExtension enforce extension\n * @property {Set<string | string[]>} exportsFields exports fields\n * @property {Set<string | string[]>} importsFields imports fields\n * @property {Set<string>} extensions extensions\n * @property {FileSystem} fileSystem fileSystem\n * @property {Cache | false} unsafeCache unsafe cache\n * @property {boolean} symlinks symlinks\n * @property {Resolver=} resolver resolver\n * @property {(string | string[])[]} modules modules\n * @property {{ name: string[], forceRelative: boolean }[]} mainFields main fields\n * @property {Set<string>} mainFiles main files\n * @property {Plugin[]} plugins plugins\n * @property {PnpApi | null} pnpApi pnp API\n * @property {Set<string>} roots roots\n * @property {boolean} fullySpecified fully specified\n * @property {boolean} resolveToContext resolve to context\n * @property {Set<string | RegExp>} restrictions restrictions\n * @property {boolean} preferRelative prefer relative\n * @property {boolean} preferAbsolute prefer absolute\n * @property {string | boolean | TsconfigOptions} tsconfig tsconfig file path or config object\n */\n\n/**\n * @param {PnpApi | null=} option option\n * @returns {PnpApi | null} processed option\n */\nfunction processPnpApiOption(option) {\n\tif (\n\t\toption === undefined &&\n\t\t/** @type {NodeJS.ProcessVersions & { pnp: string }} */ versions.pnp\n\t) {\n\t\tconst _findPnpApi =\n\t\t\t/** @type {(issuer: string) => PnpApi | null}} */\n\t\t\t(\n\t\t\t\t// @ts-expect-error maybe nothing\n\t\t\t\trequire(\"module\").findPnpApi\n\t\t\t);\n\n\t\tif (_findPnpApi) {\n\t\t\treturn {\n\t\t\t\tresolveToUnqualified(request, issuer, opts) {\n\t\t\t\t\tconst pnpapi = _findPnpApi(issuer);\n\n\t\t\t\t\tif (!pnpapi) {\n\t\t\t\t\t\t// Issuer isn't managed by PnP\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn pnpapi.resolveToUnqualified(request, issuer, opts);\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\treturn option || null;\n}\n\n/**\n * @param {AliasOptions | AliasOptionEntry[] | undefined} alias alias\n * @returns {AliasOptionEntry[]} normalized aliases\n */\nfunction normalizeAlias(alias) {\n\treturn typeof alias === \"object\" && !Array.isArray(alias) && alias !== null\n\t\t? Object.keys(alias).map((key) => {\n\t\t\t\t/** @type {AliasOptionEntry} */\n\t\t\t\tconst obj = { name: key, onlyModule: false, alias: alias[key] };\n\n\t\t\t\tif (/\\$$/.test(key)) {\n\t\t\t\t\tobj.onlyModule = true;\n\t\t\t\t\tobj.name = key.slice(0, -1);\n\t\t\t\t}\n\n\t\t\t\treturn obj;\n\t\t\t})\n\t\t: /** @type {AliasOptionEntry[]} */ (alias) || [];\n}\n\n/**\n * Merging filtered elements\n * @param {string[]} array source array\n * @param {(item: string) => boolean} filter predicate\n * @returns {(string | string[])[]} merge result\n */\nfunction mergeFilteredToArray(array, filter) {\n\t/** @type {(string | string[])[]} */\n\tconst result = [];\n\tconst set = new Set(array);\n\n\tfor (const item of set) {\n\t\tif (filter(item)) {\n\t\t\tconst lastElement =\n\t\t\t\tresult.length > 0 ? result[result.length - 1] : undefined;\n\t\t\tif (Array.isArray(lastElement)) {\n\t\t\t\tlastElement.push(item);\n\t\t\t} else {\n\t\t\t\tresult.push([item]);\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(item);\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * @param {UserResolveOptions} options input options\n * @returns {ResolveOptions} output options\n */\nfunction createOptions(options) {\n\tconst mainFieldsSet = new Set(options.mainFields || [\"main\"]);\n\t/** @type {ResolveOptions[\"mainFields\"]} */\n\tconst mainFields = [];\n\n\tfor (const item of mainFieldsSet) {\n\t\tif (typeof item === \"string\") {\n\t\t\tmainFields.push({\n\t\t\t\tname: [item],\n\t\t\t\tforceRelative: true,\n\t\t\t});\n\t\t} else if (Array.isArray(item)) {\n\t\t\tmainFields.push({\n\t\t\t\tname: item,\n\t\t\t\tforceRelative: true,\n\t\t\t});\n\t\t} else {\n\t\t\tmainFields.push({\n\t\t\t\tname: Array.isArray(item.name) ? item.name : [item.name],\n\t\t\t\tforceRelative: item.forceRelative,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn {\n\t\talias: normalizeAlias(options.alias),\n\t\tfallback: normalizeAlias(options.fallback),\n\t\taliasFields: new Set(options.aliasFields),\n\t\tcachePredicate:\n\t\t\toptions.cachePredicate ||\n\t\t\tfunction trueFn() {\n\t\t\t\treturn true;\n\t\t\t},\n\t\tcacheWithContext:\n\t\t\ttypeof options.cacheWithContext !== \"undefined\"\n\t\t\t\t? options.cacheWithContext\n\t\t\t\t: true,\n\t\texportsFields: new Set(options.exportsFields || [\"exports\"]),\n\t\timportsFields: new Set(options.importsFields || [\"imports\"]),\n\t\tconditionNames: new Set(options.conditionNames),\n\t\tdescriptionFiles: [\n\t\t\t...new Set(options.descriptionFiles || [\"package.json\"]),\n\t\t],\n\t\tenforceExtension:\n\t\t\toptions.enforceExtension === undefined\n\t\t\t\t? Boolean(options.extensions && options.extensions.includes(\"\"))\n\t\t\t\t: options.enforceExtension,\n\t\textensions: new Set(options.extensions || [\".js\", \".json\", \".node\"]),\n\t\textensionAlias: options.extensionAlias\n\t\t\t? Object.keys(options.extensionAlias).map((k) => ({\n\t\t\t\t\textension: k,\n\t\t\t\t\talias: /** @type {ExtensionAliasOptions} */ (options.extensionAlias)[\n\t\t\t\t\t\tk\n\t\t\t\t\t],\n\t\t\t\t}))\n\t\t\t: [],\n\t\tfileSystem: options.useSyncFileSystemCalls\n\t\t\t? new SyncAsyncFileSystemDecorator(\n\t\t\t\t\t/** @type {SyncFileSystem} */ (\n\t\t\t\t\t\t/** @type {unknown} */ (options.fileSystem)\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t: options.fileSystem,\n\t\tunsafeCache:\n\t\t\toptions.unsafeCache && typeof options.unsafeCache !== \"object\"\n\t\t\t\t? /** @type {Cache} */ ({})\n\t\t\t\t: options.unsafeCache || false,\n\t\tsymlinks: typeof options.symlinks !== \"undefined\" ? options.symlinks : true,\n\t\tresolver: options.resolver,\n\t\tmodules: mergeFilteredToArray(\n\t\t\tArray.isArray(options.modules)\n\t\t\t\t? options.modules\n\t\t\t\t: options.modules\n\t\t\t\t\t? [options.modules]\n\t\t\t\t\t: [\"node_modules\"],\n\t\t\t(item) => {\n\t\t\t\tconst type = getType(item);\n\t\t\t\treturn type === PathType.Normal || type === PathType.Relative;\n\t\t\t},\n\t\t),\n\t\tmainFields,\n\t\tmainFiles: new Set(options.mainFiles || [\"index\"]),\n\t\tplugins: options.plugins || [],\n\t\tpnpApi: processPnpApiOption(options.pnpApi),\n\t\troots: new Set(options.roots || undefined),\n\t\tfullySpecified: options.fullySpecified || false,\n\t\tresolveToContext: options.resolveToContext || false,\n\t\tpreferRelative: options.preferRelative || false,\n\t\tpreferAbsolute: options.preferAbsolute || false,\n\t\trestrictions: new Set(options.restrictions),\n\t\ttsconfig:\n\t\t\ttypeof options.tsconfig === \"undefined\" ? false : options.tsconfig,\n\t};\n}\n\n/**\n * @param {UserResolveOptions} options resolve options\n * @returns {Resolver} created resolver\n */\nmodule.exports.createResolver = function createResolver(options) {\n\tconst normalizedOptions = createOptions(options);\n\n\tconst {\n\t\talias,\n\t\tfallback,\n\t\taliasFields,\n\t\tcachePredicate,\n\t\tcacheWithContext,\n\t\tconditionNames,\n\t\tdescriptionFiles,\n\t\tenforceExtension,\n\t\texportsFields,\n\t\textensionAlias,\n\t\timportsFields,\n\t\textensions,\n\t\tfileSystem,\n\t\tfullySpecified,\n\t\tmainFields,\n\t\tmainFiles,\n\t\tmodules,\n\t\tplugins: userPlugins,\n\t\tpnpApi,\n\t\tresolveToContext,\n\t\tpreferRelative,\n\t\tpreferAbsolute,\n\t\tsymlinks,\n\t\tunsafeCache,\n\t\tresolver: customResolver,\n\t\trestrictions,\n\t\troots,\n\t\ttsconfig,\n\t} = normalizedOptions;\n\n\tconst plugins = [...userPlugins];\n\n\tconst resolver =\n\t\tcustomResolver || new Resolver(fileSystem, normalizedOptions);\n\n\t// // pipeline ////\n\n\tresolver.ensureHook(\"resolve\");\n\tresolver.ensureHook(\"internalResolve\");\n\tresolver.ensureHook(\"newInternalResolve\");\n\tresolver.ensureHook(\"parsedResolve\");\n\tresolver.ensureHook(\"describedResolve\");\n\tresolver.ensureHook(\"rawResolve\");\n\tresolver.ensureHook(\"normalResolve\");\n\tresolver.ensureHook(\"internal\");\n\tresolver.ensureHook(\"rawModule\");\n\tresolver.ensureHook(\"alternateRawModule\");\n\tresolver.ensureHook(\"module\");\n\tresolver.ensureHook(\"resolveAsModule\");\n\tresolver.ensureHook(\"undescribedResolveInPackage\");\n\tresolver.ensureHook(\"resolveInPackage\");\n\tresolver.ensureHook(\"resolveInExistingDirectory\");\n\tresolver.ensureHook(\"relative\");\n\tresolver.ensureHook(\"describedRelative\");\n\tresolver.ensureHook(\"directory\");\n\tresolver.ensureHook(\"undescribedExistingDirectory\");\n\tresolver.ensureHook(\"existingDirectory\");\n\tresolver.ensureHook(\"undescribedRawFile\");\n\tresolver.ensureHook(\"rawFile\");\n\tresolver.ensureHook(\"file\");\n\tresolver.ensureHook(\"finalFile\");\n\tresolver.ensureHook(\"existingFile\");\n\tresolver.ensureHook(\"resolved\");\n\n\t// TODO remove in next major\n\t// cspell:word Interal\n\t// Backward-compat\n\t// @ts-expect-error\n\tresolver.hooks.newInteralResolve = resolver.hooks.newInternalResolve;\n\n\t// resolve\n\tfor (const { source, resolveOptions } of [\n\t\t{ source: \"resolve\", resolveOptions: { fullySpecified } },\n\t\t{ source: \"internal-resolve\", resolveOptions: { fullySpecified: false } },\n\t]) {\n\t\tplugins.push(new ParsePlugin(source, resolveOptions, \"parsed-resolve\"));\n\t}\n\n\t// parsed-resolve\n\tplugins.push(\n\t\tnew DescriptionFilePlugin(\n\t\t\t\"parsed-resolve\",\n\t\t\tdescriptionFiles,\n\t\t\tfalse,\n\t\t\t\"described-resolve\",\n\t\t),\n\t);\n\tplugins.push(new NextPlugin(\"after-parsed-resolve\", \"described-resolve\"));\n\n\t// described-resolve\n\tif (unsafeCache) {\n\t\tplugins.push(\n\t\t\tnew UnsafeCachePlugin(\n\t\t\t\t\"described-resolve\",\n\t\t\t\tcachePredicate,\n\t\t\t\t/** @type {import(\"./UnsafeCachePlugin\").Cache} */ (unsafeCache),\n\t\t\t\tcacheWithContext,\n\t\t\t\t\"raw-resolve\",\n\t\t\t),\n\t\t);\n\t} else {\n\t\tplugins.push(new NextPlugin(\"described-resolve\", \"raw-resolve\"));\n\t}\n\tif (fallback.length > 0) {\n\t\tplugins.push(\n\t\t\tnew AliasPlugin(\"described-resolve\", fallback, \"internal-resolve\"),\n\t\t);\n\t}\n\t// raw-resolve\n\tif (alias.length > 0) {\n\t\tplugins.push(new AliasPlugin(\"raw-resolve\", alias, \"internal-resolve\"));\n\t}\n\tif (tsconfig) {\n\t\tplugins.push(new TsconfigPathsPlugin(tsconfig));\n\t}\n\tfor (const item of aliasFields) {\n\t\tplugins.push(new AliasFieldPlugin(\"raw-resolve\", item, \"internal-resolve\"));\n\t}\n\tfor (const item of extensionAlias) {\n\t\tplugins.push(\n\t\t\tnew ExtensionAliasPlugin(\"raw-resolve\", item, \"normal-resolve\"),\n\t\t);\n\t}\n\tplugins.push(new NextPlugin(\"raw-resolve\", \"normal-resolve\"));\n\n\t// normal-resolve\n\tif (preferRelative) {\n\t\tplugins.push(new JoinRequestPlugin(\"after-normal-resolve\", \"relative\"));\n\t}\n\tplugins.push(\n\t\tnew ConditionalPlugin(\n\t\t\t\"after-normal-resolve\",\n\t\t\t{ module: true },\n\t\t\t\"resolve as module\",\n\t\t\tfalse,\n\t\t\t\"raw-module\",\n\t\t),\n\t);\n\tplugins.push(\n\t\tnew ConditionalPlugin(\n\t\t\t\"after-normal-resolve\",\n\t\t\t{ internal: true },\n\t\t\t\"resolve as internal import\",\n\t\t\tfalse,\n\t\t\t\"internal\",\n\t\t),\n\t);\n\tif (preferAbsolute) {\n\t\tplugins.push(new JoinRequestPlugin(\"after-normal-resolve\", \"relative\"));\n\t}\n\tif (roots.size > 0) {\n\t\tplugins.push(new RootsPlugin(\"after-normal-resolve\", roots, \"relative\"));\n\t}\n\tif (!preferRelative && !preferAbsolute) {\n\t\tplugins.push(new JoinRequestPlugin(\"after-normal-resolve\", \"relative\"));\n\t}\n\n\t// internal\n\tfor (const importsField of importsFields) {\n\t\tplugins.push(\n\t\t\tnew ImportsFieldPlugin(\n\t\t\t\t\"internal\",\n\t\t\t\tconditionNames,\n\t\t\t\timportsField,\n\t\t\t\t\"relative\",\n\t\t\t\t\"internal-resolve\",\n\t\t\t),\n\t\t);\n\t}\n\n\t// raw-module\n\tfor (const exportsField of exportsFields) {\n\t\tplugins.push(\n\t\t\tnew SelfReferencePlugin(\"raw-module\", exportsField, \"resolve-as-module\"),\n\t\t);\n\t}\n\tfor (const item of modules) {\n\t\tif (Array.isArray(item)) {\n\t\t\tif (item.includes(\"node_modules\") && pnpApi) {\n\t\t\t\tplugins.push(\n\t\t\t\t\tnew ModulesInHierarchicalDirectoriesPlugin(\n\t\t\t\t\t\t\"raw-module\",\n\t\t\t\t\t\titem.filter((i) => i !== \"node_modules\"),\n\t\t\t\t\t\t\"module\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tplugins.push(\n\t\t\t\t\tnew PnpPlugin(\n\t\t\t\t\t\t\"raw-module\",\n\t\t\t\t\t\tpnpApi,\n\t\t\t\t\t\t\"undescribed-resolve-in-package\",\n\t\t\t\t\t\t\"alternate-raw-module\",\n\t\t\t\t\t),\n\t\t\t\t);\n\n\t\t\t\tplugins.push(\n\t\t\t\t\tnew ModulesInHierarchicalDirectoriesPlugin(\n\t\t\t\t\t\t\"alternate-raw-module\",\n\t\t\t\t\t\t[\"node_modules\"],\n\t\t\t\t\t\t\"module\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tplugins.push(\n\t\t\t\t\tnew ModulesInHierarchicalDirectoriesPlugin(\n\t\t\t\t\t\t\"raw-module\",\n\t\t\t\t\t\titem,\n\t\t\t\t\t\t\"module\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tplugins.push(new ModulesInRootPlugin(\"raw-module\", item, \"module\"));\n\t\t}\n\t}\n\n\t// module\n\tplugins.push(new JoinRequestPartPlugin(\"module\", \"resolve-as-module\"));\n\n\t// resolve-as-module\n\tif (!resolveToContext) {\n\t\tplugins.push(\n\t\t\tnew ConditionalPlugin(\n\t\t\t\t\"resolve-as-module\",\n\t\t\t\t{ directory: false, request: \".\" },\n\t\t\t\t\"single file module\",\n\t\t\t\ttrue,\n\t\t\t\t\"undescribed-raw-file\",\n\t\t\t),\n\t\t);\n\t}\n\tplugins.push(\n\t\tnew DirectoryExistsPlugin(\n\t\t\t\"resolve-as-module\",\n\t\t\t\"undescribed-resolve-in-package\",\n\t\t),\n\t);\n\n\t// undescribed-resolve-in-package\n\tplugins.push(\n\t\tnew DescriptionFilePlugin(\n\t\t\t\"undescribed-resolve-in-package\",\n\t\t\tdescriptionFiles,\n\t\t\tfalse,\n\t\t\t\"resolve-in-package\",\n\t\t),\n\t);\n\tplugins.push(\n\t\tnew NextPlugin(\n\t\t\t\"after-undescribed-resolve-in-package\",\n\t\t\t\"resolve-in-package\",\n\t\t),\n\t);\n\n\t// resolve-in-package\n\tfor (const exportsField of exportsFields) {\n\t\tplugins.push(\n\t\t\tnew ExportsFieldPlugin(\n\t\t\t\t\"resolve-in-package\",\n\t\t\t\tconditionNames,\n\t\t\t\texportsField,\n\t\t\t\t\"relative\",\n\t\t\t),\n\t\t);\n\t}\n\tplugins.push(\n\t\tnew NextPlugin(\"resolve-in-package\", \"resolve-in-existing-directory\"),\n\t);\n\n\t// resolve-in-existing-directory\n\tplugins.push(\n\t\tnew JoinRequestPlugin(\"resolve-in-existing-directory\", \"relative\"),\n\t);\n\n\t// relative\n\tplugins.push(\n\t\tnew DescriptionFilePlugin(\n\t\t\t\"relative\",\n\t\t\tdescriptionFiles,\n\t\t\ttrue,\n\t\t\t\"described-relative\",\n\t\t),\n\t);\n\tplugins.push(new NextPlugin(\"after-relative\", \"described-relative\"));\n\n\t// described-relative\n\tif (resolveToContext) {\n\t\tplugins.push(new NextPlugin(\"described-relative\", \"directory\"));\n\t} else {\n\t\tplugins.push(\n\t\t\tnew ConditionalPlugin(\n\t\t\t\t\"described-relative\",\n\t\t\t\t{ directory: false },\n\t\t\t\tnull,\n\t\t\t\ttrue,\n\t\t\t\t\"raw-file\",\n\t\t\t),\n\t\t);\n\t\tplugins.push(\n\t\t\tnew ConditionalPlugin(\n\t\t\t\t\"described-relative\",\n\t\t\t\t{ fullySpecified: false },\n\t\t\t\t\"as directory\",\n\t\t\t\ttrue,\n\t\t\t\t\"directory\",\n\t\t\t),\n\t\t);\n\t}\n\n\t// directory\n\tplugins.push(\n\t\tnew DirectoryExistsPlugin(\"directory\", \"undescribed-existing-directory\"),\n\t);\n\n\tif (resolveToContext) {\n\t\t// undescribed-existing-directory\n\t\tplugins.push(new NextPlugin(\"undescribed-existing-directory\", \"resolved\"));\n\t} else {\n\t\t// undescribed-existing-directory\n\t\tplugins.push(\n\t\t\tnew DescriptionFilePlugin(\n\t\t\t\t\"undescribed-existing-directory\",\n\t\t\t\tdescriptionFiles,\n\t\t\t\tfalse,\n\t\t\t\t\"existing-directory\",\n\t\t\t),\n\t\t);\n\t\tfor (const item of mainFiles) {\n\t\t\tplugins.push(\n\t\t\t\tnew UseFilePlugin(\n\t\t\t\t\t\"undescribed-existing-directory\",\n\t\t\t\t\titem,\n\t\t\t\t\t\"undescribed-raw-file\",\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\t// described-existing-directory\n\t\tfor (const item of mainFields) {\n\t\t\tplugins.push(\n\t\t\t\tnew MainFieldPlugin(\n\t\t\t\t\t\"existing-directory\",\n\t\t\t\t\titem,\n\t\t\t\t\t\"resolve-in-existing-directory\",\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tfor (const item of mainFiles) {\n\t\t\tplugins.push(\n\t\t\t\tnew UseFilePlugin(\"existing-directory\", item, \"undescribed-raw-file\"),\n\t\t\t);\n\t\t}\n\n\t\t// undescribed-raw-file\n\t\tplugins.push(\n\t\t\tnew DescriptionFilePlugin(\n\t\t\t\t\"undescribed-raw-file\",\n\t\t\t\tdescriptionFiles,\n\t\t\t\ttrue,\n\t\t\t\t\"raw-file\",\n\t\t\t),\n\t\t);\n\t\tplugins.push(new NextPlugin(\"after-undescribed-raw-file\", \"raw-file\"));\n\n\t\t// raw-file\n\t\tplugins.push(\n\t\t\tnew ConditionalPlugin(\n\t\t\t\t\"raw-file\",\n\t\t\t\t{ fullySpecified: true },\n\t\t\t\tnull,\n\t\t\t\tfalse,\n\t\t\t\t\"file\",\n\t\t\t),\n\t\t);\n\t\tif (!enforceExtension) {\n\t\t\tplugins.push(new TryNextPlugin(\"raw-file\", \"no extension\", \"file\"));\n\t\t}\n\t\tfor (const item of extensions) {\n\t\t\tplugins.push(new AppendPlugin(\"raw-file\", item, \"file\"));\n\t\t}\n\n\t\t// file\n\t\tif (alias.length > 0) {\n\t\t\tplugins.push(new AliasPlugin(\"file\", alias, \"internal-resolve\"));\n\t\t}\n\t\tfor (const item of aliasFields) {\n\t\t\tplugins.push(new AliasFieldPlugin(\"file\", item, \"internal-resolve\"));\n\t\t}\n\t\tplugins.push(new NextPlugin(\"file\", \"final-file\"));\n\n\t\t// final-file\n\t\tplugins.push(new FileExistsPlugin(\"final-file\", \"existing-file\"));\n\n\t\t// existing-file\n\t\tif (symlinks) {\n\t\t\tplugins.push(new SymlinkPlugin(\"existing-file\", \"existing-file\"));\n\t\t}\n\t\tplugins.push(new NextPlugin(\"existing-file\", \"resolved\"));\n\t}\n\n\tconst { resolved } =\n\t\t/** @type {KnownHooks & EnsuredHooks} */\n\t\t(resolver.hooks);\n\n\t// resolved\n\tif (restrictions.size > 0) {\n\t\tplugins.push(new RestrictionsPlugin(resolved, restrictions));\n\t}\n\n\tplugins.push(new ResultPlugin(resolved));\n\n\t// // RESOLVER ////\n\n\tfor (const plugin of plugins) {\n\t\tif (typeof plugin === \"function\") {\n\t\t\t/** @type {(this: Resolver, resolver: Resolver) => void} */\n\t\t\t(plugin).call(resolver, resolver);\n\t\t} else if (plugin) {\n\t\t\tplugin.apply(resolver);\n\t\t}\n\t}\n\n\treturn resolver;\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst { basename } = require(\"./getPaths\");\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class CloneBasenamePlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t * @param {string | ResolveStepHook} target target\n\t */\n\tconstructor(source, target) {\n\t\tthis.source = source;\n\t\tthis.target = target;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst target = resolver.ensureHook(this.target);\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"CloneBasenamePlugin\", (request, resolveContext, callback) => {\n\t\t\t\tconst requestPath = /** @type {string} */ (request.path);\n\t\t\t\tconst filename = /** @type {string} */ (basename(requestPath));\n\t\t\t\tconst filePath = resolver.join(requestPath, filename);\n\t\t\t\t/** @type {ResolveRequest} */\n\t\t\t\tconst obj = {\n\t\t\t\t\t...request,\n\t\t\t\t\tpath: filePath,\n\t\t\t\t\trelativePath:\n\t\t\t\t\t\trequest.relativePath &&\n\t\t\t\t\t\tresolver.join(request.relativePath, filename),\n\t\t\t\t};\n\t\t\t\tresolver.doResolve(\n\t\t\t\t\ttarget,\n\t\t\t\t\tobj,\n\t\t\t\t\t`using path: ${filePath}`,\n\t\t\t\t\tresolveContext,\n\t\t\t\t\tcallback,\n\t\t\t\t);\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").ResolveStepHook} ResolveStepHook */\n\nmodule.exports = class LogInfoPlugin {\n\t/**\n\t * @param {string | ResolveStepHook} source source\n\t */\n\tconstructor(source) {\n\t\tthis.source = source;\n\t}\n\n\t/**\n\t * @param {Resolver} resolver the resolver\n\t * @returns {void}\n\t */\n\tapply(resolver) {\n\t\tconst { source } = this;\n\t\tresolver\n\t\t\t.getHook(this.source)\n\t\t\t.tapAsync(\"LogInfoPlugin\", (request, resolveContext, callback) => {\n\t\t\t\tif (!resolveContext.log) return callback();\n\t\t\t\tconst { log } = resolveContext;\n\t\t\t\tconst prefix = `[${source}] `;\n\t\t\t\tif (request.path) {\n\t\t\t\t\tlog(`${prefix}Resolving in directory: ${request.path}`);\n\t\t\t\t}\n\t\t\t\tif (request.request) {\n\t\t\t\t\tlog(`${prefix}Resolving request: ${request.request}`);\n\t\t\t\t}\n\t\t\t\tif (request.module) log(`${prefix}Request is an module request.`);\n\t\t\t\tif (request.directory) log(`${prefix}Request is a directory request.`);\n\t\t\t\tif (request.query) {\n\t\t\t\t\tlog(`${prefix}Resolving request query: ${request.query}`);\n\t\t\t\t}\n\t\t\t\tif (request.fragment) {\n\t\t\t\t\tlog(`${prefix}Resolving request fragment: ${request.fragment}`);\n\t\t\t\t}\n\t\t\t\tif (request.descriptionFilePath) {\n\t\t\t\t\tlog(\n\t\t\t\t\t\t`${prefix}Has description data from ${request.descriptionFilePath}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (request.relativePath) {\n\t\t\t\t\tlog(\n\t\t\t\t\t\t`${prefix}Relative path from description file is: ${request.relativePath}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcallback();\n\t\t\t});\n\t}\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\n\"use strict\";\n\nconst memoize = require(\"./util/memoize\");\n\n/** @typedef {import(\"./CachedInputFileSystem\").BaseFileSystem} BaseFileSystem */\n/** @typedef {import(\"./PnpPlugin\").PnpApiImpl} PnpApi */\n/** @typedef {import(\"./Resolver\")} Resolver */\n/** @typedef {import(\"./Resolver\").Context} Context */\n/** @typedef {import(\"./Resolver\").FileSystem} FileSystem */\n/** @typedef {import(\"./Resolver\").ResolveCallback} ResolveCallback */\n/** @typedef {import(\"./Resolver\").ResolveContext} ResolveContext */\n/** @typedef {import(\"./Resolver\").ResolveRequest} ResolveRequest */\n/** @typedef {import(\"./Resolver\").SyncFileSystem} SyncFileSystem */\n/** @typedef {import(\"./ResolverFactory\").Plugin} Plugin */\n/** @typedef {import(\"./ResolverFactory\").UserResolveOptions} ResolveOptions */\n\n/**\n * @typedef {{\n * (context: Context, path: string, request: string, resolveContext: ResolveContext, callback: ResolveCallback): void,\n * (context: Context, path: string, request: string, callback: ResolveCallback): void,\n * (path: string, request: string, resolveContext: ResolveContext, callback: ResolveCallback): void,\n * (path: string, request: string, callback: ResolveCallback): void,\n * }} ResolveFunctionAsync\n */\n\n/**\n * @typedef {{\n * (context: Context, path: string, request: string): string | false,\n * (path: string, request: string): string | false,\n * }} ResolveFunction\n */\n\nconst getCachedFileSystem = memoize(() => require(\"./CachedInputFileSystem\"));\n\nconst getNodeFileSystem = memoize(() => {\n\tconst fs = require(\"graceful-fs\");\n\n\tconst CachedInputFileSystem = getCachedFileSystem();\n\n\treturn new CachedInputFileSystem(fs, 4000);\n});\nconst getNodeContext = memoize(() => ({\n\tenvironments: [\"node+es3+es5+process+native\"],\n}));\n\nconst getResolverFactory = memoize(() => require(\"./ResolverFactory\"));\n\nconst getAsyncResolver = memoize(() =>\n\tgetResolverFactory().createResolver({\n\t\tconditionNames: [\"node\"],\n\t\textensions: [\".js\", \".json\", \".node\"],\n\t\tfileSystem: getNodeFileSystem(),\n\t}),\n);\n\n/**\n * @type {ResolveFunctionAsync}\n */\nconst resolve =\n\t/**\n\t * @param {object | string} context context\n\t * @param {string} path path\n\t * @param {string | ResolveContext | ResolveCallback} request request\n\t * @param {ResolveContext | ResolveCallback=} resolveContext resolve context\n\t * @param {ResolveCallback=} callback callback\n\t */\n\t(context, path, request, resolveContext, callback) => {\n\t\tif (typeof context === \"string\") {\n\t\t\tcallback = /** @type {ResolveCallback} */ (resolveContext);\n\t\t\tresolveContext = /** @type {ResolveContext} */ (request);\n\t\t\trequest = path;\n\t\t\tpath = context;\n\t\t\tcontext = getNodeContext();\n\t\t}\n\t\tif (typeof callback !== \"function\") {\n\t\t\tcallback = /** @type {ResolveCallback} */ (resolveContext);\n\t\t}\n\t\tgetAsyncResolver().resolve(\n\t\t\tcontext,\n\t\t\tpath,\n\t\t\t/** @type {string} */ (request),\n\t\t\t/** @type {ResolveContext} */ (resolveContext),\n\t\t\t/** @type {ResolveCallback} */ (callback),\n\t\t);\n\t};\n\nconst getSyncResolver = memoize(() =>\n\tgetResolverFactory().createResolver({\n\t\tconditionNames: [\"node\"],\n\t\textensions: [\".js\", \".json\", \".node\"],\n\t\tuseSyncFileSystemCalls: true,\n\t\tfileSystem: getNodeFileSystem(),\n\t}),\n);\n\n/**\n * @type {ResolveFunction}\n */\nconst resolveSync =\n\t/**\n\t * @param {object | string} context context\n\t * @param {string} path path\n\t * @param {string=} request request\n\t * @returns {string | false} result\n\t */\n\t(context, path, request) => {\n\t\tif (typeof context === \"string\") {\n\t\t\trequest = path;\n\t\t\tpath = context;\n\t\t\tcontext = getNodeContext();\n\t\t}\n\t\treturn getSyncResolver().resolveSync(\n\t\t\tcontext,\n\t\t\tpath,\n\t\t\t/** @type {string} */ (request),\n\t\t);\n\t};\n\n/** @typedef {Omit<ResolveOptions, \"fileSystem\"> & Partial<Pick<ResolveOptions, \"fileSystem\">>} ResolveOptionsOptionalFS */\n\n/**\n * @param {ResolveOptionsOptionalFS} options Resolver options\n * @returns {ResolveFunctionAsync} Resolver function\n */\nfunction create(options) {\n\tconst resolver = getResolverFactory().createResolver({\n\t\tfileSystem: getNodeFileSystem(),\n\t\t...options,\n\t});\n\t/**\n\t * @param {object | string} context Custom context\n\t * @param {string} path Base path\n\t * @param {string | ResolveContext | ResolveCallback} request String to resolve\n\t * @param {ResolveContext | ResolveCallback=} resolveContext Resolve context\n\t * @param {ResolveCallback=} callback Result callback\n\t */\n\treturn function create(context, path, request, resolveContext, callback) {\n\t\tif (typeof context === \"string\") {\n\t\t\tcallback = /** @type {ResolveCallback} */ (resolveContext);\n\t\t\tresolveContext = /** @type {ResolveContext} */ (request);\n\t\t\trequest = path;\n\t\t\tpath = context;\n\t\t\tcontext = getNodeContext();\n\t\t}\n\t\tif (typeof callback !== \"function\") {\n\t\t\tcallback = /** @type {ResolveCallback} */ (resolveContext);\n\t\t}\n\t\tresolver.resolve(\n\t\t\tcontext,\n\t\t\tpath,\n\t\t\t/** @type {string} */ (request),\n\t\t\t/** @type {ResolveContext} */ (resolveContext),\n\t\t\tcallback,\n\t\t);\n\t};\n}\n\n/**\n * @param {ResolveOptionsOptionalFS} options Resolver options\n * @returns {ResolveFunction} Resolver function\n */\nfunction createSync(options) {\n\tconst resolver = getResolverFactory().createResolver({\n\t\tuseSyncFileSystemCalls: true,\n\t\tfileSystem: getNodeFileSystem(),\n\t\t...options,\n\t});\n\t/**\n\t * @param {object | string} context custom context\n\t * @param {string} path base path\n\t * @param {string=} request request to resolve\n\t * @returns {string | false} Resolved path or false\n\t */\n\treturn function createSync(context, path, request) {\n\t\tif (typeof context === \"string\") {\n\t\t\trequest = path;\n\t\t\tpath = context;\n\t\t\tcontext = getNodeContext();\n\t\t}\n\t\treturn resolver.resolveSync(context, path, /** @type {string} */ (request));\n\t};\n}\n\n/**\n * @template A\n * @template B\n * @param {A} obj input a\n * @param {B} exports input b\n * @returns {A & B} merged\n */\nconst mergeExports = (obj, exports) => {\n\tconst descriptors = Object.getOwnPropertyDescriptors(exports);\n\tObject.defineProperties(obj, descriptors);\n\treturn /** @type {A & B} */ (Object.freeze(obj));\n};\n\nmodule.exports = mergeExports(resolve, {\n\tget sync() {\n\t\treturn resolveSync;\n\t},\n\tcreate: mergeExports(create, {\n\t\tget sync() {\n\t\t\treturn createSync;\n\t\t},\n\t}),\n\tget ResolverFactory() {\n\t\treturn getResolverFactory();\n\t},\n\tget CachedInputFileSystem() {\n\t\treturn getCachedFileSystem();\n\t},\n\tget CloneBasenamePlugin() {\n\t\treturn require(\"./CloneBasenamePlugin\");\n\t},\n\tget LogInfoPlugin() {\n\t\treturn require(\"./LogInfoPlugin\");\n\t},\n\tget TsconfigPathsPlugin() {\n\t\treturn require(\"./TsconfigPathsPlugin\");\n\t},\n\tget forEachBail() {\n\t\treturn require(\"./forEachBail\");\n\t},\n});\n","import type { Plugin } from 'prettier'\nimport { sortArrayClassValue } from './array-class'\nimport { applyClassRegex, resolveClassRegexPatterns } from './class-regex'\nimport { extractClassAttributes } from './extract'\nimport { sortNClassValue } from './nclass'\nimport { options as pluginOptions } from './options'\nimport { preprocessLatte, restorePlaceholders } from './preprocess'\nimport type { LatteAstNode } from './printer'\nimport { printer } from './printer'\nimport { sortClasses } from './sorting'\nimport { loadTailwindContext } from './tailwind'\nimport type { LatteOptions, TailwindContext } from './types'\n\nexport { pluginOptions as options }\n\nexport const languages = [\n  {\n    name: 'Latte',\n    parsers: ['latte'],\n    extensions: ['.latte'],\n    vscodeLanguageIds: ['latte'],\n    linguistLanguageId: 196\n  }\n]\n\nexport const parsers: Plugin['parsers'] = {\n  latte: {\n    astFormat: 'latte-ast',\n\n    async parse(code: string, parserOptions) {\n      const opts = parserOptions as typeof parserOptions & LatteOptions\n\n      const ctx = await loadTailwindContext(\n        opts.tailwindStylesheet,\n        parserOptions.filepath ?? '',\n        opts.tailwindPropertyOrder || undefined,\n        opts.tailwindClassOrder\n      )\n\n      // Pass 1: classRegex on original text (before preprocess)\n      const classRegexPatterns = resolveClassRegexPatterns(\n        (opts as any).tailwindClassRegex,\n        parserOptions.filepath ?? ''\n      )\n      let text = code\n      if (classRegexPatterns.length > 0 && ctx) {\n        text = applyClassRegex(text, classRegexPatterns, (classes) =>\n          sortClasses(classes, ctx, {\n            removeDuplicates: !opts.tailwindPreserveDuplicates,\n            preserveWhitespace: opts.tailwindPreserveWhitespace\n          })\n        )\n      }\n\n      // Pass 2: preprocess Latte → placeholders, extract HTML attributes, sort, replace\n      const { code: processed, map } = preprocessLatte(text)\n      const matches = extractClassAttributes(processed, opts.tailwindAttributes ?? [])\n\n      let result = processed\n      if (ctx) {\n        result = applyClassMatches(result, matches, ctx, opts)\n      }\n\n      // Restore placeholders\n      result = restorePlaceholders(result, map)\n\n      return { body: result } satisfies LatteAstNode\n    },\n\n    locStart: () => 0,\n    locEnd: (node: any) => (node as LatteAstNode).body.length\n  }\n}\n\nexport const printers: Plugin['printers'] = {\n  'latte-ast': printer as any\n}\n\n/**\n * Apply sorting to extracted class matches, replacing values in the processed text.\n * Applies from end to start to preserve offsets.\n */\nfunction applyClassMatches(\n  code: string,\n  matches: import('./extract').ClassMatch[],\n  ctx: TailwindContext,\n  opts: LatteOptions\n): string {\n  // Sort matches by offset descending so replacements don't shift earlier offsets\n  const sorted = [...matches].sort((a, b) => b.offset - a.offset)\n\n  let result = code\n  for (const match of sorted) {\n    let replacement: string\n\n    switch (match.type) {\n      case 'class':\n        replacement = sortClasses(match.value, ctx, {\n          removeDuplicates: !opts.tailwindPreserveDuplicates,\n          preserveWhitespace: opts.tailwindPreserveWhitespace\n        })\n        break\n\n      case 'n:class':\n        replacement = sortNClassValue(match.value, ctx, opts)\n        break\n\n      case 'array-class': {\n        const sortFn = (classes: string) =>\n          sortClasses(classes, ctx, {\n            removeDuplicates: false,\n            preserveWhitespace: false\n          })\n        replacement = sortArrayClassValue(match.value, sortFn)\n        break\n      }\n\n      case 'tailwind-attribute':\n        replacement = sortClasses(match.value, ctx, {\n          removeDuplicates: !opts.tailwindPreserveDuplicates,\n          preserveWhitespace: opts.tailwindPreserveWhitespace\n        })\n        break\n\n      default:\n        continue\n    }\n\n    if (replacement !== match.value) {\n      result = result.slice(0, match.offset) + replacement + result.slice(match.offset + match.length)\n    }\n  }\n\n  return result\n}\n","// ─── Public types ───\n\nexport interface ArrayClassItem {\n  type: 'plain' | 'keyed' | 'dynamic'\n  /** Raw text of this item (trimmed, without trailing comma/whitespace) */\n  raw: string\n  /** CSS class name (plain/keyed only) */\n  className?: string\n  /** Condition after => (keyed only) */\n  condition?: string\n  /** Whether the class name is quoted (plain/keyed) */\n  quoted?: boolean\n  /** Trailing separator: comma + whitespace to the next item */\n  trailingSep: string\n}\n\n// ─── Main API ───\n\n/**\n * Sort a Latte array class attribute value.\n *\n * Input: the full attribute value including `{[` and `]}`, e.g. `{[btn, flex, $dyn]}`.\n * Returns the value with plain/keyed items sorted by Tailwind order,\n * dynamic items staying in place as barriers.\n */\nexport function sortArrayClassValue(value: string, sortFn: (classes: string) => string): string {\n  // Must start with {[ and end with ]}\n  if (!value.startsWith('{[') || !value.endsWith(']}')) return value\n\n  const inner = value.slice(2, -2)\n  if (!inner.trim()) return value\n\n  const items = parseArrayClass(inner)\n  if (items.length === 0) return value\n\n  // Check if there are any static items to sort\n  const hasStatic = items.some((it) => it.type !== 'dynamic')\n  if (!hasStatic) return value\n\n  // Split items into groups separated by dynamic barriers.\n  // Each group of static items is sorted independently.\n  const result: ArrayClassItem[] = []\n  const groups: { items: ArrayClassItem[] }[] = []\n  let currentGroup: ArrayClassItem[] = []\n\n  for (let i = 0; i < items.length; i++) {\n    if (items[i].type === 'dynamic') {\n      if (currentGroup.length > 0) {\n        groups.push({ items: currentGroup })\n        currentGroup = []\n      }\n    } else {\n      currentGroup.push(items[i])\n    }\n  }\n  if (currentGroup.length > 0) {\n    groups.push({ items: currentGroup })\n  }\n\n  // Sort each group's class names independently\n  const sortedGroups: ArrayClassItem[][] = []\n  for (const group of groups) {\n    const groupClasses = group.items.map((it) => it.className!)\n    const groupSortedStr = sortFn(groupClasses.join(' '))\n    const groupSorted = groupSortedStr.split(/\\s+/).filter(Boolean)\n\n    if (groupSorted.length !== group.items.length) {\n      // Fallback: don't sort this group\n      sortedGroups.push(group.items)\n      continue\n    }\n\n    // Build sorted order for this group\n    const groupClassToIdx = new Map<string, number[]>()\n    for (let i = 0; i < groupSorted.length; i++) {\n      const cls = groupSorted[i]\n      if (!groupClassToIdx.has(cls)) groupClassToIdx.set(cls, [])\n      groupClassToIdx.get(cls)!.push(i)\n    }\n\n    const groupOrder: { item: ArrayClassItem; sortIdx: number }[] = []\n    const groupConsumed = new Map<string, number>()\n    for (const item of group.items) {\n      const cls = item.className!\n      const indices = groupClassToIdx.get(cls)\n      const offset = groupConsumed.get(cls) ?? 0\n      const sortIdx = indices ? (indices[offset] ?? indices.length) : Infinity\n      groupConsumed.set(cls, offset + 1)\n      groupOrder.push({ item, sortIdx })\n    }\n    groupOrder.sort((a, b) => a.sortIdx - b.sortIdx)\n    sortedGroups.push(groupOrder.map((o) => o.item))\n  }\n\n  // Reassemble: interleave sorted groups with dynamic items in original positions\n  // Walk original items: for each dynamic, emit it; for each static run, emit sorted group\n  let groupIdx = 0\n  let inStaticRun = false\n\n  for (let i = 0; i < items.length; i++) {\n    if (items[i].type === 'dynamic') {\n      if (inStaticRun) {\n        groupIdx++\n        inStaticRun = false\n      }\n      result.push(items[i])\n    } else {\n      if (!inStaticRun) {\n        // Emit entire sorted group\n        const sorted = sortedGroups[groupIdx] ?? []\n        result.push(...sorted)\n        inStaticRun = true\n      }\n      // Skip — already emitted with the group\n    }\n  }\n  // Final group if items end with statics\n  if (inStaticRun) {\n    // Already pushed\n  } else if (groupIdx < sortedGroups.length) {\n    result.push(...sortedGroups[groupIdx])\n  }\n\n  // Fix trailing separators: preserve original separator pattern but assign to new positions\n  // Save original separators from items array\n  const originalSeps = items.map((it) => it.trailingSep)\n\n  // Reassign separators: positional (separator i goes to result position i)\n  for (let i = 0; i < result.length; i++) {\n    result[i] = { ...result[i], trailingSep: originalSeps[i] ?? '' }\n  }\n  // Last item should have no separator\n  if (result.length > 0) {\n    result[result.length - 1] = { ...result[result.length - 1], trailingSep: '' }\n  }\n\n  return '{[' + serializeArrayClass(result) + ']}'\n}\n\n// ─── Parsing ───\n\n/**\n * Parse the inner content of a Latte array class (between `[` and `]`).\n * Returns parsed items with type classification.\n */\nexport function parseArrayClass(inner: string): ArrayClassItem[] {\n  if (!inner.trim()) return []\n\n  const items: ArrayClassItem[] = []\n  const rawItems = splitTopLevel(inner)\n\n  for (const { content, trailingSep } of rawItems) {\n    const trimmed = content.trim()\n    if (!trimmed) continue\n    items.push(classifyItem(trimmed, trailingSep))\n  }\n\n  return items\n}\n\n/**\n * Split by top-level commas, preserving trailing separators (comma + whitespace).\n */\nfunction splitTopLevel(input: string): { content: string; trailingSep: string }[] {\n  const result: { content: string; trailingSep: string }[] = []\n  let current = ''\n  let depth = 0\n  let inString: string | false = false\n\n  for (let i = 0; i <= input.length; i++) {\n    if (i === input.length) {\n      const trimmed = current.trim()\n      if (trimmed) result.push({ content: current, trailingSep: '' })\n      break\n    }\n\n    const ch = input[i]\n\n    // String handling (single and double quotes)\n    if (inString) {\n      current += ch\n      if (ch === inString && (i === 0 || input[i - 1] !== '\\\\')) inString = false\n      continue\n    }\n\n    if (ch === \"'\" || ch === '\"') {\n      inString = ch\n      current += ch\n      continue\n    }\n\n    if (ch === '(' || ch === '[') {\n      depth++\n      current += ch\n      continue\n    }\n    if ((ch === ')' || ch === ']') && depth > 0) {\n      depth--\n      current += ch\n      continue\n    }\n\n    if (ch === ',' && depth === 0) {\n      // Capture trailing separator: comma + whitespace\n      let sep = ','\n      let j = i + 1\n      while (j < input.length && /\\s/.test(input[j])) {\n        sep += input[j]\n        j++\n      }\n      result.push({ content: current, trailingSep: sep })\n      current = ''\n      i = j - 1\n      continue\n    }\n\n    current += ch\n  }\n\n  return result\n}\n\n// ─── Item classification ───\n\n/**\n * Classify a single array class item.\n *\n * Patterns:\n *   - `'className' => expr` or `className => expr` → keyed\n *   - `'className'` or `className` (bare identifier without $) → plain\n *   - `$var`, `$obj->method()`, `...spread`, function calls, expressions → dynamic\n */\nfunction classifyItem(trimmed: string, trailingSep: string): ArrayClassItem {\n  // Check for top-level `=>` (fat arrow) — keyed pair\n  const arrowPos = findTopLevelFatArrow(trimmed)\n  if (arrowPos !== -1) {\n    const key = trimmed.slice(0, arrowPos).trim()\n    const condition = trimmed.slice(arrowPos + 2).trim()\n    const className = extractClassName(key)\n\n    if (className !== null) {\n      const quoted = key.startsWith(\"'\") || key.startsWith('\"')\n      return {\n        type: 'keyed',\n        raw: trimmed,\n        className,\n        condition,\n        quoted,\n        trailingSep\n      }\n    }\n\n    // Key is dynamic expression — treat whole thing as dynamic\n    return { type: 'dynamic', raw: trimmed, trailingSep }\n  }\n\n  // Spread operator\n  if (trimmed.startsWith('...')) {\n    return { type: 'dynamic', raw: trimmed, trailingSep }\n  }\n\n  // Dynamic: starts with $, or contains ( (function call), or contains -> or ::\n  if (isDynamic(trimmed)) {\n    return { type: 'dynamic', raw: trimmed, trailingSep }\n  }\n\n  // Plain: quoted string or bare identifier\n  const className = extractClassName(trimmed)\n  if (className !== null && className !== '') {\n    const quoted = trimmed.startsWith(\"'\") || trimmed.startsWith('\"')\n    return {\n      type: 'plain',\n      raw: trimmed,\n      className,\n      quoted,\n      trailingSep\n    }\n  }\n\n  // Fallback: dynamic\n  return { type: 'dynamic', raw: trimmed, trailingSep }\n}\n\n/**\n * Extract a CSS class name from a key or plain value.\n * Returns null if the value is not a simple class name.\n */\nfunction extractClassName(value: string): string | null {\n  // Quoted string: 'btn' or \"btn\"\n  if ((value.startsWith(\"'\") && value.endsWith(\"'\")) || (value.startsWith('\"') && value.endsWith('\"'))) {\n    if (value.length < 2) return null\n    return value.slice(1, -1)\n  }\n\n  // Bare identifier: must not start with $ and must look like a CSS class\n  // CSS class names: letters, digits, hyphens, underscores, colons (TW modifiers), slashes, dots, brackets\n  if (/^[a-zA-Z_-][a-zA-Z0-9_:/.[\\]!@#%-]*$/.test(value)) {\n    return value\n  }\n\n  return null\n}\n\n/**\n * Check if a value is a dynamic expression (not a static class name).\n */\nfunction isDynamic(value: string): boolean {\n  // Variable\n  if (value.startsWith('$')) return true\n  // Function call or method\n  if (value.includes('(')) return true\n  // Property access or null-safe\n  if (value.includes('->')) return true\n  // Static method/property\n  if (value.includes('::')) return true\n  // Numeric literal\n  if (/^\\d/.test(value)) return true\n  // Ternary\n  if (value.includes('?')) return true\n  // Concatenation\n  if (value.includes('.') && !isCssClassName(value)) return true\n\n  return false\n}\n\n/**\n * Check if a value looks like a CSS class name (may contain dots for TW).\n * Bare identifiers like `btn`, `flex`, `sm:text-lg`, `w-1/2`, `bg-red-500/50`.\n */\nfunction isCssClassName(value: string): boolean {\n  return /^[a-zA-Z_-][a-zA-Z0-9_:/.[\\]!@#%-]*$/.test(value)\n}\n\n/**\n * Find the position of a top-level `=>` fat arrow operator.\n * Skips `=>` inside strings, parentheses, brackets.\n * Returns the index of `=` in `=>`, or -1 if not found.\n */\nfunction findTopLevelFatArrow(s: string): number {\n  let depth = 0\n  let inString: string | false = false\n\n  for (let i = 0; i < s.length - 1; i++) {\n    const ch = s[i]\n\n    if (inString) {\n      if (ch === inString && s[i - 1] !== '\\\\') inString = false\n      continue\n    }\n\n    if (ch === \"'\" || ch === '\"') {\n      inString = ch\n      continue\n    }\n    if (ch === '(' || ch === '[') {\n      depth++\n      continue\n    }\n    if ((ch === ')' || ch === ']') && depth > 0) {\n      depth--\n      continue\n    }\n\n    if (ch === '=' && s[i + 1] === '>' && depth === 0) {\n      // Make sure it's not inside ==>, i.e. preceded by = or >\n      // Actually `=>` is unambiguous in Latte array context\n      return i\n    }\n  }\n\n  return -1\n}\n\n// ─── Serialization ───\n\n/**\n * Serialize parsed items back to string (inner content, without {[ and ]}).\n */\nexport function serializeArrayClass(items: ArrayClassItem[]): string {\n  let result = ''\n\n  for (let i = 0; i < items.length; i++) {\n    const item = items[i]\n\n    if (item.type === 'keyed') {\n      const key = item.quoted ? `'${item.className}'` : item.className\n      result += `${key} => ${item.condition}`\n    } else if (item.type === 'plain') {\n      result += item.quoted ? `'${item.className}'` : item.className\n    } else {\n      // dynamic — preserve raw\n      result += item.raw\n    }\n\n    if (i < items.length - 1) {\n      result += item.trailingSep || ', '\n    }\n  }\n\n  return result\n}\n","import * as path from 'node:path'\nimport { resolveIdeClassRegex } from './ide-config'\n\n/** Parsed classRegex pattern types */\ntype SimplePattern = { regex: RegExp }\ntype TuplePattern = { outer: RegExp; inner: RegExp }\nexport type ClassRegexPattern = SimplePattern | TuplePattern\n\nfunction isSimple(p: ClassRegexPattern): p is SimplePattern {\n  return 'regex' in p\n}\n\n/**\n * Parse JSON string of classRegex patterns.\n * Each item is either a string (simple pattern with one capture group)\n * or a [outerRegex, innerRegex] tuple.\n * Invalid JSON logs a warning and returns an empty array.\n */\nexport function parseClassRegexPatterns(json: string): ClassRegexPattern[] {\n  let raw: unknown\n  try {\n    raw = JSON.parse(json)\n  } catch {\n    console.warn('prettier-plugin-latte-tailwindcss: Invalid tailwindClassRegex JSON')\n    return []\n  }\n\n  if (!Array.isArray(raw)) {\n    console.warn('prettier-plugin-latte-tailwindcss: Invalid tailwindClassRegex JSON')\n    return []\n  }\n\n  return parseClassRegexArray(raw)\n}\n\n/**\n * Parse raw array of classRegex patterns (already deserialized).\n * Dangerous patterns (unbounded greedy quantifiers) are detected, warned about, and skipped.\n */\nfunction parseClassRegexArray(raw: unknown[]): ClassRegexPattern[] {\n  const patterns: ClassRegexPattern[] = []\n\n  for (const item of raw) {\n    try {\n      if (typeof item === 'string') {\n        if (isUnsafePattern(item)) {\n          warnUnsafe(item)\n          continue\n        }\n        patterns.push({ regex: new RegExp(item, 'gs') })\n      } else if (\n        Array.isArray(item) &&\n        item.length === 2 &&\n        typeof item[0] === 'string' &&\n        typeof item[1] === 'string'\n      ) {\n        if (isUnsafePattern(item[0])) {\n          warnUnsafe(item[0])\n          continue\n        }\n        patterns.push({\n          outer: new RegExp(item[0], 'gs'),\n          inner: new RegExp(item[1], 'gs')\n        })\n      }\n    } catch {\n      console.warn('prettier-plugin-latte-tailwindcss: Invalid regex in tailwindClassRegex, skipping pattern')\n    }\n  }\n\n  return patterns\n}\n\n/**\n * Detect patterns with unbounded greedy quantifiers that can match entire files.\n * - `[\\s\\S]*` / `[\\S\\s]*` — explicitly matches everything including newlines\n * - `(?:.*)` or bare `.*` in a context that with dotall flag spans the whole input\n */\nfunction isUnsafePattern(source: string): boolean {\n  // [\\s\\S]* or [\\S\\s]* — common \"match everything\" idiom\n  if (/\\[\\\\?[sS]\\\\?[Ss]\\]\\*/.test(source)) return true\n  // \\$(?:.*) or \\$(.*) — greedy from first $ across entire input with dotall\n  if (/\\\\\\$\\((?:\\?:)?\\.\\*\\)/.test(source)) return true\n  return false\n}\n\nfunction warnUnsafe(source: string): void {\n  console.warn(\n    `prettier-plugin-latte-tailwindcss: Skipping dangerous classRegex pattern \"${source}\" — ` +\n      'unbounded greedy quantifier can match entire file content. ' +\n      'Use bounded patterns like [^\"]*  or [^\\\\]]*  instead.'\n  )\n}\n\n/**\n * Runtime safety: skip capture groups that are not valid class strings.\n * Rejects captures containing structural characters (< > { }),\n * PHP variable markers ($), or captures without any word characters\n * (pure separators like \", \" or \" : \" between quoted tokens).\n */\nfunction isSafeCapture(captured: string): boolean {\n  if (/[<>{}$]/.test(captured)) return false\n  if (!/\\w/.test(captured)) return false\n  return true\n}\n\n// Re-export for testing\nexport { isUnsafePattern as _isUnsafePattern }\n\n/**\n * Resolve classRegex patterns from explicit config or IDE auto-detection.\n * Priority: explicit .prettierrc > .vscode/settings.json > .idea/tailwindcss.xml > []\n */\nexport function resolveClassRegexPatterns(explicitJson: string | undefined, filepath: string): ClassRegexPattern[] {\n  // Explicit config has highest priority\n  if (explicitJson !== undefined && explicitJson !== '') {\n    return parseClassRegexPatterns(explicitJson)\n  }\n\n  // Empty string (default) → try IDE config auto-detection\n  const dir = filepath ? path.dirname(path.resolve(filepath)) : process.cwd()\n  const idePatterns = resolveIdeClassRegex(dir)\n\n  if (idePatterns !== null) {\n    return parseClassRegexArray(idePatterns)\n  }\n\n  return []\n}\n\ninterface Replacement {\n  start: number\n  end: number\n  replacement: string\n}\n\n/**\n * Apply classRegex patterns to source code.\n * For each match, sort the captured class string using sortFn and replace in code.\n * Returns modified code.\n */\nexport function applyClassRegex(\n  code: string,\n  patterns: ClassRegexPattern[],\n  sortFn: (classes: string) => string\n): string {\n  const replacements: Replacement[] = []\n\n  for (const pattern of patterns) {\n    if (isSimple(pattern)) {\n      collectSimple(code, pattern.regex, sortFn, replacements)\n    } else {\n      collectTuple(code, pattern.outer, pattern.inner, sortFn, replacements)\n    }\n  }\n\n  return applyReplacements(code, replacements)\n}\n\nfunction collectSimple(code: string, regex: RegExp, sortFn: (classes: string) => string, out: Replacement[]): void {\n  // Use 'd' flag for capture group indices when available\n  const dRegex = addIndicesFlag(regex)\n  dRegex.lastIndex = 0\n  let match: RegExpExecArray | null\n  while ((match = dRegex.exec(code)) !== null) {\n    if (match[1] === undefined) continue // no capture group\n    const captured = match[1]\n    if (!isSafeCapture(captured)) continue\n    const sorted = sortFn(captured)\n    if (sorted !== captured) {\n      const captureStart = getCaptureOffset(match, 1)\n      out.push({\n        start: captureStart,\n        end: captureStart + captured.length,\n        replacement: sorted\n      })\n    }\n  }\n}\n\nfunction collectTuple(\n  code: string,\n  outer: RegExp,\n  inner: RegExp,\n  sortFn: (classes: string) => string,\n  out: Replacement[]\n): void {\n  outer.lastIndex = 0\n  let outerMatch: RegExpExecArray | null\n  while ((outerMatch = outer.exec(code)) !== null) {\n    const outerStr = outerMatch[0]\n    const outerStart = outerMatch.index\n\n    const dInner = addIndicesFlag(inner)\n    dInner.lastIndex = 0\n    let innerMatch: RegExpExecArray | null\n    while ((innerMatch = dInner.exec(outerStr)) !== null) {\n      if (innerMatch[1] === undefined) continue\n      const captured = innerMatch[1]\n      if (!isSafeCapture(captured)) continue\n      const sorted = sortFn(captured)\n      if (sorted !== captured) {\n        const captureStartInOuter = getCaptureOffset(innerMatch, 1)\n        const absStart = outerStart + captureStartInOuter\n        out.push({\n          start: absStart,\n          end: absStart + captured.length,\n          replacement: sorted\n        })\n      }\n    }\n  }\n}\n\n/**\n * Add 'd' (hasIndices) flag to a regex if not already present.\n * This enables match.indices for precise capture group offsets.\n */\nfunction addIndicesFlag(regex: RegExp): RegExp {\n  if (regex.hasIndices) return regex\n  return new RegExp(regex.source, regex.flags + 'd')\n}\n\n/**\n * Get the start offset of capture group N from a match.\n * Uses match.indices (from 'd' flag) if available, falls back to indexOf.\n */\nfunction getCaptureOffset(match: RegExpExecArray, group: number): number {\n  const indices = (match as any).indices as [number, number][] | undefined\n  if (indices?.[group]) {\n    return indices[group][0]\n  }\n  // Fallback: indexOf (may be incorrect if captured text appears multiple times)\n  return match.index + match[0].indexOf(match[group])\n}\n\n/**\n * Apply collected replacements from end to start so offsets stay valid.\n */\nfunction applyReplacements(code: string, replacements: Replacement[]): string {\n  // Sort by start offset descending — apply from end to preserve earlier offsets\n  replacements.sort((a, b) => b.start - a.start)\n\n  let result = code\n  for (const r of replacements) {\n    result = result.slice(0, r.start) + r.replacement + result.slice(r.end)\n  }\n  return result\n}\n","import * as fs from 'node:fs'\nimport * as path from 'node:path'\n\nconst MAX_TRAVERSAL_DEPTH = 20\n\n// ─── Module-level cache ───\n\nconst NOT_FOUND = Symbol('not-found')\nlet cachedResult: unknown[] | typeof NOT_FOUND | null = null\n\n/** Reset cache — exported for testing */\nexport function _resetIdeConfigCache(): void {\n  cachedResult = null\n}\n\n// ─── Public API ───\n\n/**\n * Find classRegex patterns from IDE configuration files.\n * Traverses from startDir upward, checking .vscode/settings.json\n * and .idea/tailwindcss.xml in priority order.\n * Returns raw pattern array or null if nothing found.\n * Results are cached per prettier run.\n */\nexport function resolveIdeClassRegex(startDir: string): unknown[] | null {\n  if (cachedResult !== null) {\n    return cachedResult === NOT_FOUND ? null : cachedResult\n  }\n\n  const result = findIdeClassRegex(startDir)\n  cachedResult = result ?? NOT_FOUND\n  return result\n}\n\nfunction findIdeClassRegex(startDir: string): unknown[] | null {\n  let dir = path.resolve(startDir)\n  const root = path.parse(dir).root\n\n  for (let depth = 0; depth < MAX_TRAVERSAL_DEPTH; depth++) {\n    // Priority: VS Code > PhpStorm\n    const vscode = readVscodeClassRegex(dir)\n    if (vscode !== null) {\n      console.log(\n        `[prettier-plugin-latte-tailwindcss] Using classRegex from ${path.join(dir, '.vscode', 'settings.json')}`\n      )\n      return vscode\n    }\n\n    const phpstorm = readPhpStormClassRegex(dir)\n    if (phpstorm !== null) {\n      console.log(\n        `[prettier-plugin-latte-tailwindcss] Using classRegex from ${path.join(dir, '.idea', 'tailwindcss.xml')}`\n      )\n      return phpstorm\n    }\n\n    if (dir === root) break\n    dir = path.dirname(dir)\n  }\n\n  return null\n}\n\n// ─── VS Code ───\n\nfunction readVscodeClassRegex(dir: string): unknown[] | null {\n  try {\n    const filePath = path.join(dir, '.vscode', 'settings.json')\n    if (!fs.existsSync(filePath)) return null\n\n    const raw = fs.readFileSync(filePath, 'utf-8')\n    const cleaned = stripJsonComments(raw)\n    const parsed = JSON.parse(cleaned)\n    const regex = parsed?.['tailwindCSS.experimental.classRegex']\n\n    return Array.isArray(regex) && regex.length > 0 ? regex : null\n  } catch {\n    return null\n  }\n}\n\n// ─── PhpStorm / JetBrains ───\n\nfunction readPhpStormClassRegex(dir: string): unknown[] | null {\n  try {\n    const filePath = path.join(dir, '.idea', 'tailwindcss.xml')\n    if (!fs.existsSync(filePath)) return null\n\n    const xml = fs.readFileSync(filePath, 'utf-8')\n\n    // Extract lspConfiguration value — \" inside value is always &quot;\n    const match = xml.match(/name=\"lspConfiguration\"\\s+value=\"([^\"]*)\"/)\n    if (!match) return null\n\n    const decoded = decodeXmlEntities(match[1])\n    const parsed = JSON.parse(decoded)\n    const regex = parsed?.experimental?.classRegex\n\n    return Array.isArray(regex) && regex.length > 0 ? regex : null\n  } catch {\n    return null\n  }\n}\n\n// ─── Utilities ───\n\n/**\n * Decode XML/HTML entities in attribute values.\n * Covers: &#N; &#xHH; &quot; &apos; &lt; &gt; &amp;\n * Note: &amp; must be replaced last.\n */\nexport function decodeXmlEntities(str: string): string {\n  return str\n    .replace(/&#(\\d+);/g, (_, code) => String.fromCharCode(Number(code)))\n    .replace(/&#x([0-9a-fA-F]+);/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)))\n    .replace(/&quot;/g, '\"')\n    .replace(/&apos;/g, \"'\")\n    .replace(/&lt;/g, '<')\n    .replace(/&gt;/g, '>')\n    .replace(/&amp;/g, '&')\n}\n\n/**\n * Strip JSONC comments (line and block) and trailing commas.\n * Uses a char-by-char state machine to avoid stripping inside strings.\n */\nexport function stripJsonComments(str: string): string {\n  let result = ''\n  let i = 0\n  let inString = false\n\n  while (i < str.length) {\n    const ch = str[i]\n\n    if (inString) {\n      result += ch\n      if (ch === '\\\\') {\n        // Skip escaped character\n        i++\n        if (i < str.length) result += str[i]\n      } else if (ch === '\"') {\n        inString = false\n      }\n      i++\n      continue\n    }\n\n    // Outside string\n    if (ch === '\"') {\n      inString = true\n      result += ch\n      i++\n      continue\n    }\n\n    // Line comment\n    if (ch === '/' && str[i + 1] === '/') {\n      // Skip until end of line\n      i += 2\n      while (i < str.length && str[i] !== '\\n') i++\n      continue\n    }\n\n    // Block comment\n    if (ch === '/' && str[i + 1] === '*') {\n      i += 2\n      while (i < str.length && !(str[i] === '*' && str[i + 1] === '/')) i++\n      i += 2 // skip */\n      continue\n    }\n\n    result += ch\n    i++\n  }\n\n  // Strip trailing commas before } or ]\n  return result.replace(/,\\s*([}\\]])/g, '$1')\n}\n","// ─── Public types ───\n\nexport interface ClassMatch {\n  /** Byte offset in the preprocessed text where the VALUE starts (after opening quote) */\n  offset: number\n  /** Length of the value (before closing quote) */\n  length: number\n  /** The extracted value string */\n  value: string\n  /** Type of the match */\n  type: 'class' | 'n:class' | 'array-class' | 'tailwind-attribute'\n  /** The attribute name (for tailwind-attribute type) */\n  attributeName?: string\n}\n\n// ─── Constants ───\n\n/** Placeholder prefix used by preprocessLatte */\nconst _PLACEHOLDER_PREFIX = '__LP_'\n/** Total length of a placeholder: __LP_ (5) + 16 hex chars + __ (2) = 23 */\nconst PLACEHOLDER_LENGTH = 23\n\n// ─── Helpers ───\n\nfunction isTagNameChar(ch: string): boolean {\n  const c = ch.charCodeAt(0)\n  // a-z, A-Z, 0-9, '-', '_', '.', ':'\n  return (\n    (c >= 97 && c <= 122) || // a-z\n    (c >= 65 && c <= 90) || // A-Z\n    (c >= 48 && c <= 57) || // 0-9\n    c === 45 || // -\n    c === 95 || // _\n    c === 46 || // .\n    c === 58 // :\n  )\n}\n\nfunction isAttrNameChar(ch: string): boolean {\n  const c = ch.charCodeAt(0)\n  // letters, digits, '-', ':', '_'\n  return (\n    (c >= 97 && c <= 122) || // a-z\n    (c >= 65 && c <= 90) || // A-Z\n    (c >= 48 && c <= 57) || // 0-9\n    c === 45 || // -\n    c === 58 || // :\n    c === 95 // _\n  )\n}\n\nfunction isWhitespace(ch: string): boolean {\n  const c = ch.charCodeAt(0)\n  return c === 32 || c === 9 || c === 10 || c === 13 // space, tab, LF, CR\n}\n\nfunction isAlpha(ch: string): boolean {\n  const c = ch.charCodeAt(0)\n  return (c >= 97 && c <= 122) || (c >= 65 && c <= 90)\n}\n\n// ─── Main API ───\n\n/**\n * Extract class attribute values from preprocessed HTML/Latte text.\n * Uses char-by-char scanning — no regex for attribute finding.\n *\n * Finds:\n * - class=\"...\" or class='...'\n * - class={[...]} (array class syntax — value includes {[...]})\n * - n:class=\"...\" or n:class='...'\n * - Any attribute from tailwindAttributes list\n *\n * Does NOT find:\n * - Attributes inside Latte tags (placeholders)\n * - Unquoted attribute values\n */\nexport function extractClassAttributes(code: string, tailwindAttributes: string[]): ClassMatch[] {\n  const matches: ClassMatch[] = []\n  const len = code.length\n  let i = 0\n\n  // Build a Set for fast lookup of tailwind attribute names\n  const twAttrSet = new Set(tailwindAttributes)\n\n  while (i < len) {\n    // Skip placeholders anywhere in the text\n    if (code[i] === '_' && code[i + 1] === '_' && code[i + 2] === 'L' && code[i + 3] === 'P' && code[i + 4] === '_') {\n      i += PLACEHOLDER_LENGTH\n      continue\n    }\n\n    // Detect HTML comment: <!-- ... -->\n    if (code[i] === '<' && code[i + 1] === '!' && code[i + 2] === '-' && code[i + 3] === '-') {\n      i = skipHtmlComment(code, i, len)\n      continue\n    }\n\n    // Detect start of HTML tag\n    if (code[i] === '<') {\n      const nextCh = code[i + 1]\n      if (nextCh === undefined) {\n        i++\n        continue\n      }\n\n      // Opening tag: <letter or </letter\n      const isClosing = nextCh === '/'\n      const nameStart = isClosing ? i + 2 : i + 1\n      const nameChar = code[nameStart]\n\n      if (nameChar !== undefined && isAlpha(nameChar)) {\n        // Read tag name\n        let j = nameStart\n        while (j < len && isTagNameChar(code[j])) j++\n\n        const tagName = code.slice(nameStart, j).toLowerCase()\n\n        // Check for script/style — skip their content\n        if (!isClosing && (tagName === 'script' || tagName === 'style')) {\n          // Parse attributes of this tag first, then skip content\n          const tagEnd = scanTagAttributes(code, j, len, twAttrSet, matches)\n          i = skipRawContent(code, tagEnd, len, tagName)\n          continue\n        }\n\n        // Regular tag — scan its attributes\n        if (!isClosing) {\n          const tagEnd = scanTagAttributes(code, j, len, twAttrSet, matches)\n          i = tagEnd\n          continue\n        } else {\n          // Closing tag — skip to >\n          while (j < len && code[j] !== '>') j++\n          i = j < len ? j + 1 : j\n          continue\n        }\n      }\n    }\n\n    i++\n  }\n\n  return matches\n}\n\n// ─── Tag attribute scanner ───\n\n/**\n * Scan attributes inside a tag starting from position `pos` (after tag name).\n * Returns the position after the closing `>`.\n */\nfunction scanTagAttributes(\n  code: string,\n  pos: number,\n  len: number,\n  twAttrSet: Set<string>,\n  matches: ClassMatch[]\n): number {\n  let i = pos\n\n  while (i < len) {\n    // Skip whitespace\n    while (i < len && isWhitespace(code[i])) i++\n\n    // End of tag\n    if (i >= len) break\n    if (code[i] === '>') return i + 1\n    if (code[i] === '/' && code[i + 1] === '>') return i + 2\n\n    // Skip placeholders inside tags\n    if (code[i] === '_' && code[i + 1] === '_' && code[i + 2] === 'L' && code[i + 3] === 'P' && code[i + 4] === '_') {\n      i += PLACEHOLDER_LENGTH\n      continue\n    }\n\n    // Read attribute name\n    if (!isAttrNameChar(code[i])) {\n      // Unexpected character — advance to avoid infinite loop\n      i++\n      continue\n    }\n\n    const attrStart = i\n    while (i < len && isAttrNameChar(code[i])) i++\n    const attrName = code.slice(attrStart, i)\n\n    // Skip whitespace before =\n    while (i < len && isWhitespace(code[i])) i++\n\n    // No = sign → attribute without value (e.g. `hidden`)\n    if (i >= len || code[i] !== '=') {\n      continue\n    }\n\n    // Skip =\n    i++\n\n    // Skip whitespace after =\n    while (i < len && isWhitespace(code[i])) i++\n\n    if (i >= len) break\n\n    // Determine value type\n    const quoteChar = code[i]\n\n    if (quoteChar === '\"' || quoteChar === \"'\") {\n      // Quoted value\n      i++ // skip opening quote\n      const valueStart = i\n\n      // Scan to closing quote\n      while (i < len && code[i] !== quoteChar) i++\n\n      const valueEnd = i\n      const value = code.slice(valueStart, valueEnd)\n\n      if (i < len) i++ // skip closing quote\n\n      // Check attribute name\n      if (attrName === 'class') {\n        matches.push({\n          offset: valueStart,\n          length: valueEnd - valueStart,\n          value,\n          type: 'class'\n        })\n      } else if (attrName === 'n:class') {\n        matches.push({\n          offset: valueStart,\n          length: valueEnd - valueStart,\n          value,\n          type: 'n:class'\n        })\n      } else if (twAttrSet.has(attrName)) {\n        matches.push({\n          offset: valueStart,\n          length: valueEnd - valueStart,\n          value,\n          type: 'tailwind-attribute',\n          attributeName: attrName\n        })\n      }\n    } else if (quoteChar === '{' && code[i + 1] === '[') {\n      // Array class syntax: {[...]}\n      const bracketStart = i\n      i += 2 // skip {[\n\n      let depth = 1\n      while (i < len && depth > 0) {\n        if (code[i] === '[') depth++\n        else if (code[i] === ']') {\n          depth--\n          if (depth === 0) {\n            // Check for closing }\n            if (code[i + 1] === '}') {\n              i += 2 // skip ]}\n              break\n            }\n            // Not the matching ]} — continue\n            depth++\n          }\n        }\n        i++\n      }\n\n      const value = code.slice(bracketStart, i)\n\n      if (attrName === 'class') {\n        matches.push({\n          offset: bracketStart,\n          length: i - bracketStart,\n          value,\n          type: 'array-class'\n        })\n      }\n    } else {\n      // Unquoted value — skip until whitespace or >\n      while (i < len && !isWhitespace(code[i]) && code[i] !== '>' && !(code[i] === '/' && code[i + 1] === '>')) {\n        i++\n      }\n      // Unquoted values are not matched (per spec)\n    }\n  }\n\n  return i\n}\n\n// ─── Content skippers ───\n\n/**\n * Skip an HTML comment starting at position `pos`.\n * Returns position after `-->`.\n */\nfunction skipHtmlComment(code: string, pos: number, len: number): number {\n  let i = pos + 4 // skip <!--\n  while (i < len) {\n    if (code[i] === '-' && code[i + 1] === '-' && code[i + 2] === '>') {\n      return i + 3\n    }\n    i++\n  }\n  return len\n}\n\n/**\n * Skip raw content of a script or style tag.\n * `pos` is the position right after the opening tag's `>`.\n * Returns position after the closing tag `</tagName>`.\n */\nfunction skipRawContent(code: string, pos: number, len: number, tagName: string): number {\n  let i = pos\n  const closingTag = `</${tagName}`\n\n  while (i < len) {\n    if (code[i] === '<' && code[i + 1] === '/') {\n      const remaining = code.slice(i, i + closingTag.length).toLowerCase()\n      if (remaining === closingTag) {\n        // Skip to end of closing tag\n        let j = i + closingTag.length\n        while (j < len && code[j] !== '>') j++\n        return j < len ? j + 1 : j\n      }\n    }\n    i++\n  }\n\n  return len\n}\n","import { applyBuckets } from './class-order'\nimport { getClassSortInfo } from './property-order'\nimport { compareTailwindEntries, sortClasses } from './sorting'\nimport type { LatteOptions, TailwindContext } from './types'\n\n// ─── Public types ───\n\nexport interface NClassToken {\n  /** Trimmed token content */\n  content: string\n  /** Trailing separator: comma + whitespace to the next token */\n  trailingSep: string\n  /** Whether this token can be reordered within its group */\n  sortable: boolean\n  /** Sort key for token-level sorting (single class name for sortable tokens) */\n  sortKey: string\n}\n\nexport interface ParsedNClass {\n  /** Whitespace before the first token */\n  prefix: string\n  /** Parsed tokens with trailing separators */\n  tokens: NClassToken[]\n  /** Whitespace after the last token */\n  suffix: string\n}\n\n// ─── Main API ───\n\n/**\n * Sort an n:class attribute value.\n *\n * 1. Sort classes WITHIN each token (quoted multi-class strings, conditional branches)\n * 2. Sort sortable tokens within groups separated by barrier tokens\n * 3. Reassemble with whitespace handled per tailwindNclassWhitespace option\n */\nexport function sortNClassValue(value: string, context: TailwindContext | null, options: LatteOptions): string {\n  if (!context) return value\n  if (!value.trim()) return value\n\n  const parsed = parseNClass(value)\n  if (parsed.tokens.length === 0) return value\n\n  // Save original positional separators before tokens are reordered\n  const originalSeps = parsed.tokens.map((t) => t.trailingSep)\n\n  // 1. Sort classes WITHIN each token (branches, multi-class quoted strings)\n  for (const token of parsed.tokens) {\n    sortTokenInternalClasses(token, context, options)\n  }\n\n  // 2. Sort sortable tokens within groups (between barriers)\n  sortTokenGroups(parsed.tokens, context)\n\n  // 3. Serialize with whitespace mode\n  const mode = options.tailwindNclassWhitespace ?? 'normalize-barriers'\n  return serializeNClass(parsed, originalSeps, mode)\n}\n\n// ─── Parsing ───\n\n/** Parse n:class value into tokens with trailing separators. */\nexport function parseNClass(value: string): ParsedNClass {\n  // Extract leading whitespace (prefix)\n  let prefixEnd = 0\n  while (prefixEnd < value.length && /\\s/.test(value[prefixEnd])) prefixEnd++\n  const prefix = value.slice(0, prefixEnd)\n\n  // Extract trailing whitespace (suffix)\n  let suffixStart = value.length\n  while (suffixStart > prefixEnd && /\\s/.test(value[suffixStart - 1])) suffixStart--\n  const suffix = value.slice(suffixStart)\n\n  const body = value.slice(prefixEnd, suffixStart)\n  if (!body) return { prefix, tokens: [], suffix }\n\n  // Split by top-level commas, tracking trailing separators\n  const tokens: NClassToken[] = []\n  let current = ''\n  let depth = 0\n  let inString = false\n\n  for (let i = 0; i <= body.length; i++) {\n    if (i === body.length) {\n      const trimmed = current.trim()\n      if (trimmed) tokens.push(classifyToken(trimmed, ''))\n      break\n    }\n\n    const ch = body[i]\n\n    if (inString) {\n      current += ch\n      if (ch === \"'\" && (i === 0 || body[i - 1] !== '\\\\')) inString = false\n      continue\n    }\n\n    if (ch === \"'\") {\n      inString = true\n      current += ch\n      continue\n    }\n    if (ch === '(' || ch === '[') {\n      depth++\n      current += ch\n      continue\n    }\n    if ((ch === ')' || ch === ']') && depth > 0) {\n      depth--\n      current += ch\n      continue\n    }\n\n    if (ch === ',' && depth === 0) {\n      const trimmed = current.trim()\n      // Capture trailing separator: comma + whitespace until next non-whitespace\n      let sep = ','\n      let j = i + 1\n      while (j < body.length && /\\s/.test(body[j])) {\n        sep += body[j]\n        j++\n      }\n      if (trimmed) tokens.push(classifyToken(trimmed, sep))\n      current = ''\n      i = j - 1 // -1 because loop increments\n      continue\n    }\n\n    current += ch\n  }\n\n  return { prefix, tokens, suffix }\n}\n\n// ─── Serialization ───\n\n/** Reassemble n:class value from parsed tokens with whitespace mode applied. */\nexport function serializeNClass(\n  parsed: ParsedNClass,\n  originalSeps: string[],\n  mode: 'preserve' | 'normalize-barriers' | 'normalize'\n): string {\n  const { prefix, tokens, suffix } = parsed\n  if (tokens.length === 0) return prefix + suffix\n\n  let result = prefix\n\n  for (let i = 0; i < tokens.length; i++) {\n    result += tokens[i].content\n\n    if (i < tokens.length - 1) {\n      switch (mode) {\n        case 'preserve':\n          // Separator travels with its token\n          result += tokens[i].trailingSep\n          break\n        case 'normalize':\n          // All separators normalized to single-line\n          result += ', '\n          break\n        case 'normalize-barriers': {\n          // Normalize within sortable groups; preserve at group boundaries and after barriers\n          const bothSortable = tokens[i].sortable && tokens[i + 1]?.sortable\n          if (bothSortable) {\n            const originalSep = originalSeps[i] || ''\n            // Preserve newline + indentation across sortable tokens so that\n            // user-intended multi-line layout survives. Horizontal-only separators\n            // collapse to `, ` for consistency.\n            if (originalSep.includes('\\n')) {\n              result += originalSep\n            } else {\n              result += ', '\n            }\n          } else {\n            const sep = originalSeps[i] || ', '\n            // Ensure at least one space after comma at barrier boundaries\n            result += sep === ',' ? ', ' : sep\n          }\n          break\n        }\n      }\n    }\n  }\n\n  result += suffix\n  return result\n}\n\n// ─── Token classification ───\n\nfunction classifyToken(content: string, trailingSep: string): NClassToken {\n  // Conditional: has top-level ? (ternary operator)\n  if (findTopLevelQuestion(content) !== -1) {\n    return { content, trailingSep, sortable: false, sortKey: '' }\n  }\n\n  // Quoted string\n  if (content.startsWith(\"'\") && content.endsWith(\"'\") && content.length >= 2) {\n    const inner = content.slice(1, -1)\n    // Multi-class (contains whitespace) → barrier\n    if (/\\s/.test(inner)) {\n      return { content, trailingSep, sortable: false, sortKey: '' }\n    }\n    // Single-class → sortable\n    return { content, trailingSep, sortable: true, sortKey: inner }\n  }\n\n  // Dynamic: contains $ (variable, property chain, method call, concatenation)\n  if (content.includes('$')) {\n    return { content, trailingSep, sortable: false, sortKey: '' }\n  }\n\n  // Bare identifier → sortable (single CSS class name)\n  return { content, trailingSep, sortable: true, sortKey: content }\n}\n\n// ─── Find ternary operators ───\n\n/**\n * Find the position of the top-level ternary ? operator.\n * Skips ?-> (null-safe) and ?: (Elvis).\n * Returns -1 if not found.\n */\nfunction findTopLevelQuestion(s: string): number {\n  let depth = 0\n  let inString = false\n\n  for (let i = 0; i < s.length; i++) {\n    const ch = s[i]\n\n    if (inString) {\n      if (ch === \"'\" && s[i - 1] !== '\\\\') inString = false\n      continue\n    }\n\n    if (ch === \"'\") {\n      inString = true\n      continue\n    }\n    if (ch === '(' || ch === '[') {\n      depth++\n      continue\n    }\n    if ((ch === ')' || ch === ']') && depth > 0) {\n      depth--\n      continue\n    }\n\n    if (ch === '?' && depth === 0) {\n      // Skip ?-> (null-safe property access)\n      if (s[i + 1] === '-' && s[i + 2] === '>') continue\n\n      // Skip ?: (Elvis) — next non-whitespace after ? is :\n      let j = i + 1\n      while (j < s.length && /\\s/.test(s[j])) j++\n      if (j < s.length && s[j] === ':') continue\n\n      return i\n    }\n  }\n\n  return -1\n}\n\n/**\n * Find the position of the top-level ternary : operator after startPos.\n * Skips :: (namespace separator) and ?: (Elvis — whitespace-tolerant lookback).\n * Returns -1 if not found.\n */\nfunction findTopLevelColon(s: string, startPos: number): number {\n  let depth = 0\n  let inString = false\n\n  for (let i = startPos; i < s.length; i++) {\n    const ch = s[i]\n\n    if (inString) {\n      if (ch === \"'\" && s[i - 1] !== '\\\\') inString = false\n      continue\n    }\n\n    if (ch === \"'\") {\n      inString = true\n      continue\n    }\n    if (ch === '(' || ch === '[') {\n      depth++\n      continue\n    }\n    if ((ch === ')' || ch === ']') && depth > 0) {\n      depth--\n      continue\n    }\n\n    if (ch === ':' && depth === 0) {\n      // Skip :: (namespace separator)\n      if (s[i + 1] === ':') {\n        i++\n        continue\n      }\n\n      // Skip ?: — lookback through whitespace for ?\n      let j = i - 1\n      while (j >= 0 && /\\s/.test(s[j])) j--\n      if (j >= 0 && s[j] === '?') continue\n\n      return i\n    }\n  }\n\n  return -1\n}\n\n// ─── Internal class sorting within tokens ───\n\n/** Sort classes inside a token's quoted strings and conditional branches. */\nfunction sortTokenInternalClasses(token: NClassToken, context: TailwindContext, options: LatteOptions): void {\n  const sortOpts = {\n    removeDuplicates: !options.tailwindPreserveDuplicates,\n    preserveWhitespace: options.tailwindPreserveWhitespace\n  }\n  const content = token.content\n  const preserveMode = (options.tailwindNclassWhitespace ?? 'normalize-barriers') === 'preserve'\n\n  // Conditional: sort classes in true/false branches\n  const qPos = findTopLevelQuestion(content)\n  if (qPos !== -1) {\n    if (preserveMode) {\n      // Preserve original whitespace around ? and :\n      const beforeQ = content.slice(0, qPos)\n      const afterQ = content.slice(qPos + 1)\n      const cPos = findTopLevelColon(afterQ, 0)\n\n      if (cPos !== -1) {\n        const truePart = afterQ.slice(0, cPos)\n        const falsePart = afterQ.slice(cPos + 1)\n        token.content = `${beforeQ}?${sortBranchPreserve(truePart, context, sortOpts)}:${sortBranchPreserve(falsePart, context, sortOpts)}`\n      } else {\n        const truePart = afterQ\n        token.content = `${beforeQ}?${sortBranchPreserve(truePart, context, sortOpts)}`\n      }\n    } else {\n      // Normalize whitespace around ? and :\n      const condition = content.slice(0, qPos).trimEnd()\n      const afterQ = content.slice(qPos + 1).trimStart()\n      const cPos = findTopLevelColon(afterQ, 0)\n\n      if (cPos !== -1) {\n        const truePart = afterQ.slice(0, cPos).trim()\n        const falsePart = afterQ.slice(cPos + 1).trim()\n        token.content = `${condition} ? ${sortBranch(truePart, context, sortOpts)} : ${sortBranch(falsePart, context, sortOpts)}`\n      } else {\n        const truePart = afterQ.trim()\n        token.content = `${condition} ? ${sortBranch(truePart, context, sortOpts)}`\n      }\n    }\n    return\n  }\n\n  // PHP concatenation: normalize spaces around `.` operator\n  if (!preserveMode && content.includes('.') && content.includes('$')) {\n    token.content = normalizePhpConcatSpacing(content)\n  }\n\n  // Multi-class quoted string: sort inner classes\n  if (content.startsWith(\"'\") && content.endsWith(\"'\") && content.length >= 2) {\n    const inner = content.slice(1, -1)\n    if (/\\s/.test(inner)) {\n      token.content = `'${sortClasses(inner, context, sortOpts)}'`\n    }\n  }\n}\n\n/** Sort classes within a conditional branch (quoted or bare). */\nfunction sortBranch(\n  branch: string,\n  context: TailwindContext,\n  sortOpts: { removeDuplicates?: boolean; preserveWhitespace?: boolean }\n): string {\n  // Quoted string — sort inner classes if multi-class\n  if (branch.startsWith(\"'\") && branch.endsWith(\"'\") && branch.length >= 2) {\n    const inner = branch.slice(1, -1)\n    if (/\\s/.test(inner)) {\n      return `'${sortClasses(inner, context, sortOpts)}'`\n    }\n    return branch\n  }\n\n  // Anything else — bare single identifier, dynamic expression, PHP concatenation\n  // (`'foo' . $x`), mixed constructs. Treat as atomic barrier and do not rewrite,\n  // because extracting whitespace-separated tokens from PHP syntax would corrupt\n  // the expression (e.g. split `'foo bar' . $x->m()` into broken fragments).\n  return branch\n}\n\n/** Sort classes within a branch, preserving surrounding whitespace. */\nfunction sortBranchPreserve(\n  branch: string,\n  context: TailwindContext,\n  sortOpts: { removeDuplicates?: boolean; preserveWhitespace?: boolean }\n): string {\n  // Extract leading/trailing whitespace\n  const leadMatch = branch.match(/^(\\s*)/)\n  const trailMatch = branch.match(/(\\s*)$/)\n  const lead = leadMatch?.[1] ?? ''\n  const trail = trailMatch?.[1] ?? ''\n  const trimmed = branch.slice(lead.length, branch.length - trail.length)\n  if (!trimmed) return branch\n\n  return lead + sortBranch(trimmed, context, sortOpts) + trail\n}\n\n// ─── PHP concatenation spacing ───\n\n/**\n * Normalize spaces around top-level `.` (PHP concatenation operator).\n * Ensures ` . ` spacing while skipping dots inside strings, brackets, and method chains.\n */\nfunction normalizePhpConcatSpacing(s: string): string {\n  let result = ''\n  let inString = false\n  let depth = 0\n\n  for (let i = 0; i < s.length; i++) {\n    const ch = s[i]\n\n    if (inString) {\n      result += ch\n      if (ch === \"'\" && s[i - 1] !== '\\\\') inString = false\n      continue\n    }\n\n    if (ch === \"'\") {\n      inString = true\n      result += ch\n      continue\n    }\n    if (ch === '(' || ch === '[') {\n      depth++\n      result += ch\n      continue\n    }\n    if ((ch === ')' || ch === ']') && depth > 0) {\n      depth--\n      result += ch\n      continue\n    }\n\n    if (ch === '.' && depth === 0) {\n      // Skip -> and ?-> (property/method access)\n      if (s[i - 1] === '-' || s[i - 1] === '>') {\n        result += ch\n        continue\n      }\n\n      // Normalize: trim trailing spaces before dot, add ` . `\n      result = result.replace(/\\s+$/, '')\n      result += ' . '\n      // Skip whitespace after dot\n      while (i + 1 < s.length && /\\s/.test(s[i + 1])) i++\n      continue\n    }\n\n    result += ch\n  }\n\n  return result\n}\n\n// ─── Token-level sorting ───\n\n/**\n * Find groups of consecutive sortable tokens between barriers\n * and sort each group by Tailwind class order.\n */\nfunction sortTokenGroups(tokens: NClassToken[], context: TailwindContext): void {\n  let groupStart = -1\n\n  for (let i = 0; i <= tokens.length; i++) {\n    const isSortable = i < tokens.length && tokens[i].sortable\n\n    if (isSortable && groupStart === -1) {\n      groupStart = i\n    } else if (!isSortable && groupStart !== -1) {\n      sortGroup(tokens, groupStart, i, context)\n      groupStart = -1\n    }\n  }\n}\n\n/** Sort a contiguous group of sortable tokens by Tailwind order. */\nfunction sortGroup(tokens: NClassToken[], start: number, end: number, context: TailwindContext): void {\n  if (end - start <= 1) return\n\n  const group = tokens.slice(start, end)\n  const classNames = group.map((t) => t.sortKey)\n  const order = context.getClassOrder(classNames)\n\n  const propCtx = context.propertyOrder\n  // Carry the original index (`i`) so we can map the bucketed result back to tokens.\n  const entries = order.map(([name, twBigint], i) => ({\n    i,\n    name,\n    twBigint,\n    ...(propCtx ? getClassSortInfo(name, propCtx) : { variantKey: 0, propIndex: 0 })\n  }))\n\n  // Single code-path through the bucket algorithm — `context.classOrder` is always present.\n  const bucketed = applyBuckets(\n    entries,\n    context.classOrder,\n    (e) => e.name,\n    (e) => e.twBigint,\n    (a, b) => compareTailwindEntries(a, b, context)\n  )\n\n  const sorted = bucketed.map((e) => group[e.i])\n  for (let k = 0; k < sorted.length; k++) tokens[start + k] = sorted[k]\n}\n","import * as path from 'node:path'\nimport { pathToFileURL } from 'node:url'\nimport { createJiti } from 'jiti'\n\n// ─── Types ───\n\nexport type Unspecified = 'top' | 'bottom'\n\n/** User-facing bucket specification (raw config form). */\nexport type BucketSpec = 'unknown' | 'tailwind' | 'tailwindcss' | { pattern: string }\n\n/** Compiled bucket ready for the matching loop. */\nexport interface CompiledBucket {\n  /** 'tailwindcss' alias is normalized to 'tailwind'. */\n  kind: 'unknown' | 'tailwind' | 'pattern'\n  /** Present only for kind='pattern'. */\n  regex?: RegExp\n  /** Original spec (preserved for diagnostics). */\n  raw: BucketSpec\n}\n\n/** Resolved class order config attached to TailwindContext. */\nexport interface ClassOrderContext {\n  buckets: CompiledBucket[]\n  unspecified: Unspecified\n}\n\n// ─── Default config ───\n\n/**\n * Implicit default — equivalent to the previous fixed \"unknown FIRST → tailwind ASC\" behavior.\n * Used whenever the user hasn't configured `tailwindClassOrder` (or configured it incorrectly).\n */\nexport function defaultClassOrderContext(): ClassOrderContext {\n  return {\n    buckets: [\n      { kind: 'unknown', raw: 'unknown' },\n      { kind: 'tailwind', raw: 'tailwind' }\n    ],\n    unspecified: 'top'\n  }\n}\n\n// ─── Parsing ───\n\n/**\n * Parse a raw config array into a ClassOrderContext.\n *\n * Accepts:\n *   - Flat: `[\"unknown\", \"tailwind\", {pattern:\"^js-\"}]`\n *   - Tuple: `[[...items], {unspecified:\"top\"}]` (stylelint-order style)\n *\n * Invalid regex patterns produce a warning and the offending bucket is dropped\n * (the rest of the config survives). If no buckets remain after compilation,\n * returns null so the caller can fall back to the default.\n */\nexport function parseClassOrderConfig(raw: unknown): ClassOrderContext | null {\n  if (!Array.isArray(raw)) {\n    console.warn('[prettier-plugin-latte-tailwindcss] tailwindClassOrder: config must be an array')\n    return null\n  }\n\n  // Tuple form: [[items...], {unspecified?: 'top'|'bottom'}]\n  // Heuristic analogous to parsePropertiesOrderRule in property-order.ts: exactly 2 elements,\n  // first is an array, second is a plain (non-array) object.\n  let items: unknown[]\n  let unspecified: Unspecified = 'top'\n\n  if (raw.length === 2 && Array.isArray(raw[0]) && raw[1] && typeof raw[1] === 'object' && !Array.isArray(raw[1])) {\n    items = raw[0] as unknown[]\n    const opts = raw[1] as Record<string, unknown>\n    if (opts.unspecified === 'top' || opts.unspecified === 'bottom') {\n      unspecified = opts.unspecified\n    } else if (opts.unspecified !== undefined) {\n      console.warn(\n        `[prettier-plugin-latte-tailwindcss] tailwindClassOrder: invalid unspecified value '${String(\n          opts.unspecified\n        )}' — falling back to 'top'`\n      )\n    }\n  } else {\n    // Flat form — entire array is the items list\n    items = raw\n  }\n\n  const buckets: CompiledBucket[] = []\n  for (const item of items) {\n    const compiled = compileBucket(item)\n    if (compiled) buckets.push(compiled)\n  }\n\n  if (buckets.length === 0) {\n    console.warn(\n      '[prettier-plugin-latte-tailwindcss] tailwindClassOrder: no valid buckets after compilation — falling back to default'\n    )\n    return null\n  }\n\n  return { buckets, unspecified }\n}\n\nfunction compileBucket(item: unknown): CompiledBucket | null {\n  if (typeof item === 'string') {\n    if (item === 'unknown') {\n      return { kind: 'unknown', raw: 'unknown' }\n    }\n    if (item === 'tailwind' || item === 'tailwindcss') {\n      return { kind: 'tailwind', raw: item as 'tailwind' | 'tailwindcss' }\n    }\n    console.warn(`[prettier-plugin-latte-tailwindcss] tailwindClassOrder: unknown bucket string '${item}' — skipping`)\n    return null\n  }\n\n  if (item && typeof item === 'object' && !Array.isArray(item)) {\n    const obj = item as Record<string, unknown>\n    if (typeof obj.pattern === 'string') {\n      try {\n        const regex = new RegExp(obj.pattern)\n        return { kind: 'pattern', regex, raw: { pattern: obj.pattern } }\n      } catch (err) {\n        console.warn(\n          `[prettier-plugin-latte-tailwindcss] tailwindClassOrder: invalid regex pattern '${obj.pattern}' — skipping bucket`,\n          err\n        )\n        return null\n      }\n    }\n    console.warn(\n      '[prettier-plugin-latte-tailwindcss] tailwindClassOrder: object bucket must have a string \"pattern\" field — skipping'\n    )\n    return null\n  }\n\n  console.warn(\n    `[prettier-plugin-latte-tailwindcss] tailwindClassOrder: invalid bucket entry '${String(item)}' — skipping`\n  )\n  return null\n}\n\n// ─── Config loading via jiti ───\n\n/**\n * Load a class order config from a JS/JSON/TS file via jiti.\n * Mirrors the resolution strategy of `loadPropertyOrderConfig` in property-order.ts.\n * Returns null on error (with console.warn).\n */\nexport async function loadClassOrderConfig(configPath: string, configDir: string): Promise<ClassOrderContext | null> {\n  let raw: unknown\n  try {\n    const jiti = createJiti(path.join(configDir, '__placeholder__.js'), { moduleCache: false, fsCache: false })\n\n    let importId: string\n    if (path.isAbsolute(configPath)) {\n      const url = pathToFileURL(configPath)\n      url.searchParams.append('t', `${+Date.now()}`)\n      importId = url.href\n    } else if (configPath.startsWith('./') || configPath.startsWith('../')) {\n      const resolved = path.resolve(configDir, configPath)\n      const url = pathToFileURL(resolved)\n      url.searchParams.append('t', `${+Date.now()}`)\n      importId = url.href\n    } else {\n      importId = configPath\n    }\n\n    try {\n      raw = await jiti.import(importId, { default: true })\n    } catch (firstErr: any) {\n      if (\n        firstErr?.code === 'ERR_PACKAGE_PATH_NOT_EXPORTED' &&\n        !importId.startsWith('file:') &&\n        /\\.[jt]sx?$/.test(importId)\n      ) {\n        const withoutExt = importId.replace(/\\.[jt]sx?$/, '')\n        raw = await jiti.import(withoutExt, { default: true })\n      } else {\n        throw firstErr\n      }\n    }\n  } catch (err) {\n    console.warn(`[prettier-plugin-latte-tailwindcss] Failed to load class order config: ${configPath}`, err)\n    return null\n  }\n\n  return parseClassOrderConfig(raw)\n}\n\n// ─── Resolver ───\n\n/**\n * Resolve the user-provided `tailwindClassOrder` value into a ClassOrderContext.\n *\n * Dispatch:\n *  - String starting with `[` → parse as JSON-encoded config array.\n *  - Other non-empty string → treat as path and load via jiti.\n *  - undefined / empty or whitespace-only string → implicit default.\n *  - Array (direct, only reachable via API callers bypassing prettier schema) → parse directly.\n *  - Anything else → warn + default.\n *\n * The array branch is kept for API compatibility (prettier CLI collapses arrays in\n * non-`array:true` schemas to their last element, so in `.prettierrc.*` the config\n * must be either a string path or a JSON-encoded string).\n *\n * Never throws; always returns a valid context so call-sites can unconditionally\n * run the bucket algorithm (single code-path).\n */\nexport async function resolveClassOrderConfig(value: unknown, configDir: string): Promise<ClassOrderContext> {\n  if (Array.isArray(value)) {\n    return parseClassOrderConfig(value) ?? defaultClassOrderContext()\n  }\n\n  if (typeof value === 'string') {\n    const trimmed = value.trim()\n    if (trimmed === '') {\n      return defaultClassOrderContext()\n    }\n    if (trimmed.startsWith('[')) {\n      let parsed: unknown\n      try {\n        parsed = JSON.parse(trimmed)\n      } catch (err) {\n        console.warn(\n          `[prettier-plugin-latte-tailwindcss] tailwindClassOrder: failed to parse JSON-encoded config — falling back to default`,\n          err\n        )\n        return defaultClassOrderContext()\n      }\n      return parseClassOrderConfig(parsed) ?? defaultClassOrderContext()\n    }\n    const loaded = await loadClassOrderConfig(value, configDir)\n    return loaded ?? defaultClassOrderContext()\n  }\n\n  if (value === undefined) {\n    return defaultClassOrderContext()\n  }\n\n  console.warn(\n    `[prettier-plugin-latte-tailwindcss] tailwindClassOrder: expected string path or JSON-encoded array, got ${typeof value} — falling back to default`\n  )\n  return defaultClassOrderContext()\n}\n\n// ─── Bucket algorithm ───\n\n/**\n * Priority-based bucket sorter with two phases.\n *\n * **Phase 1 — assign each entry to a bucket (priority):**\n *   - Explicit `{pattern}` buckets have priority over catchall buckets, regardless of\n *     their position in the config. Among patterns, first-match wins.\n *   - If no pattern matches: the first `\"tailwind\"` bucket catches non-null bigint\n *     entries; the first `\"unknown\"` bucket catches null-bigint entries.\n *   - Otherwise the entry is left unspecified.\n *\n * **Phase 2 — emit entries in user-defined bucket order:**\n *   - `\"tailwind\"` bucket members are sorted via the comparator.\n *   - `\"unknown\"` and `{pattern}` bucket members keep input order (stable).\n *   - Unspecified entries go to front or back per `ctx.unspecified`.\n *\n * This separates *membership* (fixed priority: pattern > catchall) from *output\n * order* (user-controlled via bucket sequence). Users can place `\"tailwind\"` anywhere\n * in the config without worrying that it will swallow classes a later pattern would\n * want — patterns always win.\n *\n * Generic over the entry shape so call-sites (`sortClassList`, `sortGroup`) can pass\n * their native representations (plain `[name, bigint]` tuples or richer objects)\n * without an adapter layer.\n *\n * @param entries    input list in original order\n * @param ctx        resolved class order context (buckets + unspecified)\n * @param nameOf     extracts the class name for regex matching\n * @param twBigintOf extracts the Tailwind bigint (null = unknown utility)\n * @param compareTailwind comparator used only inside the `tailwind` bucket;\n *                        callers guarantee both entries have non-null bigints\n */\nexport function applyBuckets<T>(\n  entries: T[],\n  ctx: ClassOrderContext,\n  nameOf: (e: T) => string,\n  twBigintOf: (e: T) => bigint | null,\n  compareTailwind: (a: T, b: T) => number\n): T[] {\n  const n = entries.length\n  const UNSPECIFIED = -1\n  const assignment = new Array<number>(n).fill(UNSPECIFIED)\n\n  const patternBuckets: { bucket: CompiledBucket; index: number }[] = []\n  let firstTailwindIndex = UNSPECIFIED\n  let firstUnknownIndex = UNSPECIFIED\n  for (let i = 0; i < ctx.buckets.length; i++) {\n    const b = ctx.buckets[i]\n    if (b.kind === 'pattern') {\n      patternBuckets.push({ bucket: b, index: i })\n    } else if (b.kind === 'tailwind' && firstTailwindIndex === UNSPECIFIED) {\n      firstTailwindIndex = i\n    } else if (b.kind === 'unknown' && firstUnknownIndex === UNSPECIFIED) {\n      firstUnknownIndex = i\n    }\n  }\n\n  // Phase 1: assign bucket to each entry (priority-first)\n  for (let j = 0; j < n; j++) {\n    const name = nameOf(entries[j])\n    let matched = UNSPECIFIED\n    for (const { bucket, index } of patternBuckets) {\n      if (bucket.regex!.test(name)) {\n        matched = index\n        break\n      }\n    }\n    if (matched === UNSPECIFIED) {\n      const bigint = twBigintOf(entries[j])\n      if (bigint !== null && firstTailwindIndex !== UNSPECIFIED) {\n        matched = firstTailwindIndex\n      } else if (bigint === null && firstUnknownIndex !== UNSPECIFIED) {\n        matched = firstUnknownIndex\n      }\n    }\n    assignment[j] = matched\n  }\n\n  // Phase 2: emit in user-defined bucket order\n  const result: T[] = []\n  for (let i = 0; i < ctx.buckets.length; i++) {\n    const members: T[] = []\n    for (let j = 0; j < n; j++) {\n      if (assignment[j] === i) members.push(entries[j])\n    }\n    if (ctx.buckets[i].kind === 'tailwind') {\n      members.sort(compareTailwind)\n    }\n    result.push(...members)\n  }\n\n  const remaining: T[] = []\n  for (let j = 0; j < n; j++) {\n    if (assignment[j] === UNSPECIFIED) remaining.push(entries[j])\n  }\n\n  return ctx.unspecified === 'top' ? [...remaining, ...result] : [...result, ...remaining]\n}\n","import { createRequire } from \"node:module\";\nimport _createJiti from \"../dist/jiti.cjs\";\n\nfunction onError(err) {\n  throw err; /* ↓ Check stack trace ↓ */\n}\n\nconst nativeImport = (id) => import(id);\n\nlet _transform;\nfunction lazyTransform(...args) {\n  if (!_transform) {\n    _transform = createRequire(import.meta.url)(\"../dist/babel.cjs\");\n  }\n  return _transform(...args);\n}\n\nexport function createJiti(id, opts = {}) {\n  if (!opts.transform) {\n    opts = { ...opts, transform: lazyTransform };\n  }\n  return _createJiti(id, opts, {\n    onError,\n    nativeImport,\n    createRequire,\n  });\n}\n\nexport default createJiti;\n","import * as path from 'node:path'\nimport { pathToFileURL } from 'node:url'\nimport { createJiti } from 'jiti'\n\n// ─── Types ───\n\n/** AST node from candidatesToAst — minimal subset we need */\ninterface AstNode {\n  kind: string\n  property?: string\n  nodes?: AstNode[]\n}\n\n/** Parsed candidate from parseCandidate */\ninterface Candidate {\n  root: string\n  variants: Variant[]\n  important: boolean\n}\n\n/** Variant reference — opaque object used as Map key in getVariantOrder */\ninterface Variant {\n  kind: string\n  name?: string\n}\n\n/** Variant entry from getVariants */\ninterface VariantEntry {\n  name: string\n}\n\n/** Methods from TW4 DesignSystem needed for property ordering */\nexport interface DesignSystemForPropertyOrder {\n  candidatesToAst(classes: string[]): AstNode[][]\n  parseCandidate(candidate: string): readonly Candidate[]\n  getVariantOrder(): Map<Variant, number>\n  getVariants(): VariantEntry[]\n}\n\n/** Resolved property order context attached to TailwindContext */\nexport interface PropertyOrderContext {\n  /** CSS property → position index */\n  propertyOrderMap: Map<string, number>\n  /** Where unspecified properties go */\n  unspecified: 'top' | 'bottom' | 'bottomAlphabetical' | 'ignore'\n  /** Variant → sort order (populated from TW4 design system) */\n  variantOrderMap: Map<Variant, number>\n  /** Design system methods */\n  ds: DesignSystemForPropertyOrder\n  /** Cache: className → { variantKey, propIndex } */\n  classInfoCache: Map<string, ClassSortInfo>\n}\n\nexport interface ClassSortInfo {\n  variantKey: number\n  propIndex: number\n}\n\n// ─── Config loading ───\n\n/**\n * Load and parse a property order config file.\n * Supports:\n * - Flat array of CSS property names\n * - Array of objects with { properties: [...] } (stylelint-order grouped format)\n * - Mixed arrays of strings and objects\n * - Full stylelint config with rules['order/properties-order']\n *\n * Returns null on error (with console.warn).\n */\nexport async function loadPropertyOrderConfig(\n  configPath: string,\n  configDir: string\n): Promise<{ properties: string[]; unspecified: string } | null> {\n  let raw: unknown\n  try {\n    // Create jiti rooted at configDir so bare specifiers (npm packages) resolve from the project\n    const jiti = createJiti(path.join(configDir, '__placeholder__.js'), { moduleCache: false, fsCache: false })\n\n    let importId: string\n    if (path.isAbsolute(configPath)) {\n      // Absolute path → use file URL\n      const url = pathToFileURL(configPath)\n      url.searchParams.append('t', `${+Date.now()}`)\n      importId = url.href\n    } else if (configPath.startsWith('./') || configPath.startsWith('../')) {\n      // Relative path → resolve from configDir\n      const resolved = path.resolve(configDir, configPath)\n      const url = pathToFileURL(resolved)\n      url.searchParams.append('t', `${+Date.now()}`)\n      importId = url.href\n    } else {\n      // Bare specifier (npm package) → let jiti resolve from configDir\n      importId = configPath\n    }\n\n    try {\n      raw = await jiti.import(importId, { default: true })\n    } catch (firstErr: any) {\n      // If bare specifier with .js/.ts extension fails due to exports, retry without extension\n      if (\n        firstErr?.code === 'ERR_PACKAGE_PATH_NOT_EXPORTED' &&\n        !importId.startsWith('file:') &&\n        /\\.[jt]sx?$/.test(importId)\n      ) {\n        const withoutExt = importId.replace(/\\.[jt]sx?$/, '')\n        raw = await jiti.import(withoutExt, { default: true })\n      } else {\n        throw firstErr\n      }\n    }\n  } catch (err) {\n    console.warn(`[prettier-plugin-latte-tailwindcss] Failed to load property order config: ${configPath}`, err)\n    return null\n  }\n\n  return parsePropertyOrderConfig(raw)\n}\n\n/**\n * Parse raw export into a flat property list + unspecified setting.\n */\nexport function parsePropertyOrderConfig(raw: unknown): { properties: string[]; unspecified: string } | null {\n  // If it's a stylelint config object with rules\n  if (raw && typeof raw === 'object' && !Array.isArray(raw)) {\n    const obj = raw as Record<string, unknown>\n\n    // Check for rules['order/properties-order']\n    if (obj.rules && typeof obj.rules === 'object') {\n      const rules = obj.rules as Record<string, unknown>\n      const propOrder = rules['order/properties-order']\n      if (propOrder) {\n        return parsePropertiesOrderRule(propOrder)\n      }\n    }\n\n    // Check for direct 'order/properties-order' key (flat config)\n    const directOrder = obj['order/properties-order']\n    if (directOrder) {\n      return parsePropertiesOrderRule(directOrder)\n    }\n\n    console.warn('[prettier-plugin-latte-tailwindcss] Property order config is not a recognized format')\n    return null\n  }\n\n  // Direct array — treat as the properties-order value\n  if (Array.isArray(raw)) {\n    return parsePropertiesOrderRule(raw)\n  }\n\n  console.warn('[prettier-plugin-latte-tailwindcss] Property order config is not a recognized format')\n  return null\n}\n\n/**\n * Parse the value of order/properties-order rule.\n * Format: [items, secondaryOptions?] where items is an array of strings/objects.\n */\nfunction parsePropertiesOrderRule(value: unknown): { properties: string[]; unspecified: string } | null {\n  if (!Array.isArray(value)) {\n    console.warn('[prettier-plugin-latte-tailwindcss] properties-order must be an array')\n    return null\n  }\n\n  // Detect format: if last element is a plain object with 'unspecified' or 'severity',\n  // it's the secondary options — remaining elements are items\n  let items: unknown[]\n  let unspecified = 'bottom'\n\n  // stylelint-order format: [[...items], { unspecified, severity }]\n  // OR just [...items] (flat array of strings/objects)\n  if (\n    value.length === 2 &&\n    Array.isArray(value[0]) &&\n    value[1] &&\n    typeof value[1] === 'object' &&\n    !Array.isArray(value[1])\n  ) {\n    // Format: [[items...], {secondaryOptions}]\n    items = value[0] as unknown[]\n    const opts = value[1] as Record<string, unknown>\n    if (typeof opts.unspecified === 'string') {\n      unspecified = opts.unspecified\n    }\n  } else {\n    // Flat array — all elements are items (strings or group objects)\n    items = value\n  }\n\n  const properties = flattenPropertyItems(items)\n\n  if (properties.length === 0) {\n    console.warn('[prettier-plugin-latte-tailwindcss] Property order config contains no properties')\n    return null\n  }\n\n  return { properties, unspecified }\n}\n\n/**\n * Flatten items array into a flat list of CSS property names.\n * Items can be strings or objects with { properties: [...] }.\n */\nfunction flattenPropertyItems(items: unknown[]): string[] {\n  const result: string[] = []\n\n  for (const item of items) {\n    if (typeof item === 'string') {\n      result.push(item)\n    } else if (item && typeof item === 'object' && !Array.isArray(item)) {\n      const obj = item as Record<string, unknown>\n      if (Array.isArray(obj.properties)) {\n        for (const prop of obj.properties) {\n          if (typeof prop === 'string') {\n            result.push(prop)\n          }\n        }\n      }\n    }\n    // Skip secondary options objects (have 'unspecified' or 'severity' but no 'properties')\n  }\n\n  return result\n}\n\n// ─── PropertyOrderContext creation ───\n\n/**\n * Create a PropertyOrderContext from parsed config and TW4 design system.\n */\nexport function createPropertyOrderContext(\n  config: { properties: string[]; unspecified: string },\n  ds: DesignSystemForPropertyOrder\n): PropertyOrderContext {\n  // Build property → index map\n  const propertyOrderMap = new Map<string, number>()\n  for (let i = 0; i < config.properties.length; i++) {\n    if (!propertyOrderMap.has(config.properties[i])) {\n      propertyOrderMap.set(config.properties[i], i)\n    }\n  }\n\n  // Populate variant order map via dummy compilation\n  const variants = ds.getVariants()\n  if (variants.length > 0) {\n    ds.candidatesToAst(variants.map((v) => `${v.name}:flex`))\n  }\n  const variantOrderMap = ds.getVariantOrder()\n\n  const unspecified = (\n    ['top', 'bottom', 'bottomAlphabetical', 'ignore'].includes(config.unspecified) ? config.unspecified : 'bottom'\n  ) as PropertyOrderContext['unspecified']\n\n  return {\n    propertyOrderMap,\n    unspecified,\n    variantOrderMap,\n    ds,\n    classInfoCache: new Map()\n  }\n}\n\n// ─── CSS property extraction from AST ───\n\n/**\n * Extract the primary CSS property from candidatesToAst output.\n * Recursively traverses nested rules (@media, @supports).\n * Skips custom properties (--tw-*).\n * Returns null if no property found.\n */\nexport function extractPrimaryProperty(astGroups: AstNode[][]): string | null {\n  for (const group of astGroups) {\n    const prop = findPropertyInNodes(group)\n    if (prop) return prop\n  }\n  return null\n}\n\nfunction findPropertyInNodes(nodes: AstNode[]): string | null {\n  for (const node of nodes) {\n    // Declaration node — check if it's a real CSS property (not --tw-*)\n    if (node.kind === 'declaration' && node.property) {\n      if (!node.property.startsWith('--tw-')) {\n        return node.property\n      }\n    }\n\n    // Rule node (at-rule like @media, @supports) — recurse into children\n    if (node.nodes && node.nodes.length > 0) {\n      const found = findPropertyInNodes(node.nodes)\n      if (found) return found\n    }\n  }\n  return null\n}\n\n// ─── Variant key computation ───\n\n/**\n * Compute a numeric sort key from a class's variants.\n * Classes without variants get -1 (sort first).\n * Multi-variant classes encode variant orders as a composite key.\n */\nexport function computeVariantKey(variants: readonly Variant[], variantOrderMap: Map<Variant, number>): number {\n  if (variants.length === 0) return -1\n\n  // Sort variant orders for consistent key regardless of order (md:hover == hover:md)\n  const orders = variants\n    .map((v) => {\n      const order = variantOrderMap.get(v)\n      // Arbitrary variants (not in map) get high order\n      return order ?? 9998\n    })\n    .sort((a, b) => a - b)\n\n  // Encode as composite number\n  let key = 0\n  for (const o of orders) {\n    key = key * 10000 + o\n  }\n  return key\n}\n\n// ─── Class info resolution ───\n\n/**\n * Get or compute sort info for a class name.\n * Uses cache on PropertyOrderContext.\n */\nexport function getClassSortInfo(className: string, ctx: PropertyOrderContext): ClassSortInfo {\n  const cached = ctx.classInfoCache.get(className)\n  if (cached) return cached\n\n  const info = computeClassSortInfo(className, ctx)\n  ctx.classInfoCache.set(className, info)\n  return info\n}\n\nfunction computeClassSortInfo(className: string, ctx: PropertyOrderContext): ClassSortInfo {\n  // Parse candidate to extract variants\n  const candidates = ctx.ds.parseCandidate(className)\n  const candidate = candidates[0] as Candidate | undefined\n\n  let variantKey = -1\n  if (candidate && candidate.variants && candidate.variants.length > 0) {\n    variantKey = computeVariantKey(candidate.variants, ctx.variantOrderMap)\n  }\n\n  // Get primary CSS property from AST\n  let propIndex: number\n  try {\n    const ast = ctx.ds.candidatesToAst([className])\n    const primaryProp = extractPrimaryProperty(ast)\n\n    if (primaryProp !== null) {\n      const idx = ctx.propertyOrderMap.get(primaryProp)\n      if (idx !== undefined) {\n        propIndex = idx\n      } else {\n        // Property not in user's order config → use unspecified position\n        propIndex = getUnspecifiedIndex(primaryProp, ctx)\n      }\n    } else {\n      // No CSS output → treat as unspecified\n      propIndex = getUnspecifiedIndex(null, ctx)\n    }\n  } catch {\n    propIndex = getUnspecifiedIndex(null, ctx)\n  }\n\n  return { variantKey, propIndex }\n}\n\n// Large sentinel for \"bottom\" positioning\nconst UNSPECIFIED_BOTTOM = 999_000\n\nfunction getUnspecifiedIndex(propertyName: string | null, ctx: PropertyOrderContext): number {\n  switch (ctx.unspecified) {\n    case 'top':\n      return -1\n    case 'bottom':\n      return UNSPECIFIED_BOTTOM\n    case 'bottomAlphabetical':\n      // Bottom + alphabetical tiebreaker via char codes\n      if (propertyName) {\n        let hash = UNSPECIFIED_BOTTOM\n        for (let i = 0; i < Math.min(propertyName.length, 20); i++) {\n          hash += propertyName.charCodeAt(i) / 256 ** (i + 1)\n        }\n        return hash\n      }\n      return UNSPECIFIED_BOTTOM + 0.5\n    case 'ignore':\n      // Use TW ordering — signal with a special value that sorting.ts checks\n      return -2 // Special: means \"use TW bigint as propIndex tiebreaker\"\n    default:\n      return UNSPECIFIED_BOTTOM\n  }\n}\n\n/** Sentinel value for 'ignore' mode — sorting.ts checks for this */\nexport const UNSPECIFIED_IGNORE = -2\n","import { applyBuckets } from './class-order'\nimport { UNSPECIFIED_IGNORE, getClassSortInfo } from './property-order'\nimport type { TailwindContext } from './types'\n\nexport interface SortOptions {\n  removeDuplicates?: boolean\n  preserveWhitespace?: boolean\n}\n\n/**\n * Entry describing a single class with all data needed for comparison.\n * Callers must ensure `twBigint` is non-null — the comparator does not\n * handle the unknown-class case (null bigint). `variantKey` and `propIndex`\n * are only consulted when `context.propertyOrder` is set; otherwise pass\n * any value (e.g. 0).\n */\nexport interface TailwindEntry {\n  name: string\n  twBigint: bigint | null\n  variantKey: number\n  propIndex: number\n}\n\n/**\n * Compare two classes with known (non-null) Tailwind bigints.\n * Ordering: variant > property (when propertyOrder is active) > TW bigint.\n *\n * Callers must guarantee that both `a.twBigint` and `b.twBigint` are non-null;\n * unknown-class handling (null bigint) is the caller's responsibility.\n *\n * Placeholder handling (`name === '...'` / `'…'`) is kept for safety with\n * existing snapshots, but in practice those names never reach this comparator\n * in Latte templates.\n */\nexport function compareTailwindEntries(a: TailwindEntry, b: TailwindEntry, context: TailwindContext): number {\n  // Dynamic placeholders always last (kept for snapshot compatibility)\n  if (a.name === '...' || a.name === '…') return 1\n  if (b.name === '...' || b.name === '…') return -1\n\n  if (context.propertyOrder) {\n    // 1. Variant key\n    if (a.variantKey !== b.variantKey) return a.variantKey - b.variantKey\n    // 2. Property index\n    if (a.propIndex !== b.propIndex) {\n      // 'ignore' mode: use TW bigint for unspecified props\n      if (a.propIndex === UNSPECIFIED_IGNORE && b.propIndex === UNSPECIFIED_IGNORE) {\n        return a.twBigint! < b.twBigint! ? -1 : a.twBigint! > b.twBigint! ? 1 : 0\n      }\n      if (a.propIndex === UNSPECIFIED_IGNORE) return 1\n      if (b.propIndex === UNSPECIFIED_IGNORE) return -1\n      return a.propIndex - b.propIndex\n    }\n  }\n\n  // 3. TW bigint tiebreaker (also the only ordering when propertyOrder is off)\n  if (a.twBigint === b.twBigint) return 0\n  return a.twBigint! < b.twBigint! ? -1 : 1\n}\n\n/**\n * Sort a whitespace-separated class string using Tailwind order.\n * Returns the string unchanged if context is null or the string contains Latte expressions.\n */\nexport function sortClasses(classStr: string, context: TailwindContext | null, opts: SortOptions = {}): string {\n  if (!context) return classStr\n  if (typeof classStr !== 'string' || classStr === '') return classStr\n\n  // Skip strings that still contain unprocessed Latte expressions\n  if (classStr.includes('{')) return classStr\n\n  const { removeDuplicates = true, preserveWhitespace = false } = opts\n\n  // When preserveWhitespace is set, treat newlines as barriers — sort each line independently\n  if (preserveWhitespace && classStr.includes('\\n')) {\n    const segments = classStr.split(/(\\r?\\n[ \\t]*)/)\n    return segments\n      .map((segment, i) => {\n        if (i % 2 === 1) return segment // newline separator, keep as-is\n        return sortClasses(segment, context, opts)\n      })\n      .join('')\n  }\n\n  // Whitespace-only string → normalize to single space\n  if (!preserveWhitespace && /^[\\t\\r\\f\\n ]+$/.test(classStr)) return ' '\n\n  // Split into alternating [class, separator, class, separator, ...] tokens\n  const parts = classStr.split(/([\\t\\r\\f\\n ]+)/)\n  const classes = parts.filter((_, i) => i % 2 === 0)\n  let whitespace = parts.filter((_, i) => i % 2 !== 0)\n\n  // Remove empty tokens from leading/trailing whitespace\n  if (classes[classes.length - 1] === '') {\n    classes.pop()\n    if (!preserveWhitespace) whitespace.pop()\n  }\n  if (!preserveWhitespace && classes[0] === '') {\n    classes.shift()\n    whitespace.shift()\n  }\n\n  // Collapse whitespace separators unless preserveWhitespace is set\n  if (!preserveWhitespace) {\n    whitespace = whitespace.map(() => ' ')\n  }\n\n  const { classList, removedIndices } = sortClassList(classes, context, removeDuplicates)\n\n  // Remove separators that correspond to removed duplicate classes\n  whitespace = whitespace.filter((_, index) => !removedIndices.has(index + 1))\n\n  let result = ''\n  for (let i = 0; i < classList.length; i++) {\n    result += `${classList[i]}${whitespace[i] ?? ''}`\n  }\n\n  return result\n}\n\n/**\n * Sort an array of class names using configurable bucket ordering.\n *\n * Single code-path: `context.classOrder` is always present (default = unknown → tailwind\n * with unspecified: 'top', which matches the previous fixed \"unknown FIRST → tailwind ASC\"\n * behavior). The `tailwind` bucket is the only one that applies the comparator\n * (variant > property > TW bigint); `unknown` and `pattern` buckets preserve input order.\n *\n * Deduplication (first-occurrence-wins) is applied AFTER bucketing.\n */\nexport function sortClassList(\n  classList: string[],\n  context: TailwindContext,\n  removeDuplicates = true\n): { classList: string[]; removedIndices: Set<number> } {\n  const orderedClasses = context.getClassOrder(classList)\n\n  // Precompute property-order sort info for each entry (only used inside the tailwind bucket).\n  const propCtx = context.propertyOrder\n  const entries: TailwindEntry[] = orderedClasses.map(([name, twBigint]) => ({\n    name,\n    twBigint,\n    ...(propCtx ? getClassSortInfo(name, propCtx) : { variantKey: 0, propIndex: 0 })\n  }))\n\n  // Apply buckets — comparator is only invoked on entries with non-null bigint\n  // (applyBuckets guarantees this for the 'tailwind' bucket).\n  const bucketed = applyBuckets(\n    entries,\n    context.classOrder,\n    (e) => e.name,\n    (e) => e.twBigint,\n    (a, b) => compareTailwindEntries(a, b, context)\n  )\n\n  let result: [string, bigint | null][] = bucketed.map((e) => [e.name, e.twBigint] as [string, bigint | null])\n\n  const removedIndices = new Set<number>()\n\n  if (removeDuplicates) {\n    const seenClasses = new Set<string>()\n    result = result.filter(([cls, order], index) => {\n      if (seenClasses.has(cls)) {\n        removedIndices.add(index)\n        return false\n      }\n      if (order !== null) seenClasses.add(cls)\n      return true\n    })\n  }\n\n  return {\n    classList: result.map(([cls]) => cls),\n    removedIndices\n  }\n}\n","import type { SupportOption } from 'prettier'\n\nexport const options: Record<string, SupportOption> = {\n  tailwindStylesheet: {\n    type: 'string',\n    category: 'Tailwind CSS',\n    description: 'Path to the CSS stylesheet with @import \"tailwindcss\" (v4+)'\n  },\n\n  tailwindAttributes: {\n    type: 'string',\n    array: true,\n    // Empty by default — 'class' and 'n:class' are built-in\n    default: [{ value: [] }],\n    category: 'Tailwind CSS',\n    description: 'Additional attributes/props that contain sortable Tailwind classes'\n  },\n\n  tailwindPreserveWhitespace: {\n    type: 'boolean',\n    default: false,\n    category: 'Tailwind CSS',\n    description: 'Preserve whitespace around Tailwind classes when sorting'\n  },\n\n  tailwindPreserveDuplicates: {\n    type: 'boolean',\n    default: false,\n    category: 'Tailwind CSS',\n    description: 'Preserve duplicate classes inside a class list when sorting'\n  },\n\n  tailwindClassRegex: {\n    type: 'string',\n    default: '',\n    category: 'Tailwind CSS',\n    description:\n      'JSON array of classRegex patterns (compatible with tailwindCSS.experimental.classRegex). ' +\n      'Set to \"[]\" to disable. If empty, auto-detected from .vscode/settings.json or .idea/tailwindcss.xml.'\n  },\n\n  tailwindPropertyOrder: {\n    type: 'string',\n    default: '',\n    category: 'Tailwind CSS',\n    description:\n      'Path to a JS/JSON file exporting a stylelint-order compatible properties-order array. ' +\n      \"Empty string (default) disables custom ordering and uses Tailwind's native order.\"\n  },\n\n  tailwindClassOrder: {\n    type: 'string',\n    default: '',\n    category: 'Tailwind CSS',\n    description:\n      'Configurable class ordering buckets (stylelint-order style). ' +\n      'Value is either a path to a JS/JSON file exporting the config, or a JSON-encoded string ' +\n      'starting with \"[\" (e.g. \"[\\\\\"unknown\\\\\", \\\\\"tailwind\\\\\", {\\\\\"pattern\\\\\":\\\\\"^js-\\\\\"}]\"). ' +\n      'Tuple form [items, { \"unspecified\": \"top\"|\"bottom\" }] is also supported. ' +\n      'Empty string (default) preserves the built-in behavior (unknown classes first, then Tailwind).'\n  },\n\n  tailwindNclassWhitespace: {\n    type: 'choice',\n    default: 'normalize-barriers',\n    category: 'Tailwind CSS',\n    description: 'How whitespace separators between n:class tokens are handled when tokens are reordered',\n    choices: [\n      {\n        value: 'preserve',\n        description: 'Each token carries its trailing separator — separators travel with their token when reordered'\n      },\n      {\n        value: 'normalize-barriers',\n        description:\n          'Separators within sortable groups are normalized to \", \"; separators after barrier tokens are preserved'\n      },\n      {\n        value: 'normalize',\n        description: 'All separators normalized to \", \" (single-line output)'\n      }\n    ]\n  }\n}\n","import type { PreprocessResult } from './types'\n\nconst PLACEHOLDER_RE = /__LP_[0-9a-f]{16}__/g\n\n/**\n * Replace Latte constructs with fixed-length placeholders so the HTML parser can produce an AST.\n *\n * Replaced:\n *   {* comments *}\n *   {tags}, {$expressions}, {= expressions}, ... — everything except ={[...]}\n *   <tag{$dynamicName}>                           — whole opening tag with dynamic name\n *\n * NOT replaced:\n *   class={[...]}  — unquoted array class, handled in extract phase (extract.ts)\n */\nexport function preprocessLatte(code: string): PreprocessResult {\n  const map = new Map<string, string>()\n  let counter = 0\n\n  function newPlaceholder(original: string): string {\n    const ph = `__LP_${counter.toString(16).padStart(16, '0')}__`\n    counter++\n    map.set(ph, original)\n    return ph\n  }\n\n  let result = ''\n  let i = 0\n  const len = code.length\n\n  while (i < len) {\n    const ch = code[i]\n\n    // Latte comment: {* ... *}\n    if (ch === '{' && code[i + 1] === '*') {\n      const end = code.indexOf('*}', i + 2)\n      if (end !== -1) {\n        result += newPlaceholder(code.slice(i, end + 2))\n        i = end + 2\n        continue\n      }\n    }\n\n    // Dynamic tag name: <tagname{$expr}> or <{$expr}>\n    // Example: <h{$level}> or <{$tag}>\n    if (ch === '<') {\n      const nextCh = code[i + 1]\n      // Skip closing tags, comments, and whitespace — they don't have dynamic names\n      if (nextCh !== '/' && nextCh !== '!' && nextCh !== ' ' && nextCh !== '\\n') {\n        // Skip static prefix of tag name (e.g. \"h\" in \"h{$level}\")\n        let j = i + 1\n        while (j < len && /[a-zA-Z0-9_.-]/.test(code[j])) j++\n        // Tag name contains { → dynamic tag, replace entire opening tag\n        if (j < len && code[j] === '{') {\n          const tagEnd = code.indexOf('>', j)\n          if (tagEnd !== -1) {\n            result += newPlaceholder(code.slice(i, tagEnd + 1))\n            i = tagEnd + 1\n            continue\n          }\n        }\n      }\n    }\n\n    // Latte expression or tag: {expr}\n    // Replace unless:\n    //   { followed by whitespace or EOF (literal text, not Latte)\n    //   ={[ pattern (array class syntax: class={[btn, flex]})\n    if (ch === '{') {\n      const nextCh = code[i + 1]\n\n      // { followed by whitespace = literal brace, not Latte\n      if (nextCh === ' ' || nextCh === '\\t' || nextCh === '\\n' || nextCh === '\\r' || nextCh === undefined) {\n        result += ch\n        i++\n        continue\n      }\n\n      // ={[ = array class syntax, do not replace\n      if (nextCh === '[' && i > 0 && code[i - 1] === '=') {\n        result += ch\n        i++\n        continue\n      }\n\n      // Find matching closing brace, tracking nesting depth\n      let depth = 1\n      let j = i + 1\n      while (j < len && depth > 0) {\n        if (code[j] === '{') depth++\n        else if (code[j] === '}') depth--\n        j++\n      }\n\n      if (depth === 0) {\n        result += newPlaceholder(code.slice(i, j))\n        i = j\n        continue\n      }\n    }\n\n    result += ch\n    i++\n  }\n\n  return { code: result, map }\n}\n\n/**\n * Restore placeholders in a string back to their original Latte constructs.\n * Called in index.ts after sorting to restore original Latte constructs.\n */\nexport function restorePlaceholders(str: string, map: Map<string, string>): string {\n  return str.replace(PLACEHOLDER_RE, (ph) => map.get(ph) ?? ph)\n}\n","import type { Doc, Printer } from 'prettier'\n\nexport interface LatteAstNode {\n  body: string\n}\n\nexport const printer: Printer<LatteAstNode> = {\n  print(path): Doc {\n    const node = path.getValue() as LatteAstNode\n    return node.body\n  }\n}\n","import * as fs from 'node:fs/promises'\nimport * as path from 'node:path'\nimport { pathToFileURL } from 'node:url'\nimport { createJiti } from 'jiti'\nimport prettier from 'prettier'\nimport { resolveClassOrderConfig } from './class-order'\nimport { createPropertyOrderContext, loadPropertyOrderConfig } from './property-order'\nimport type { DesignSystemForPropertyOrder } from './property-order'\nimport { resolveCssFrom, resolveJsFrom } from './resolve'\nimport type { TailwindContext } from './types'\n\ninterface DesignSystem {\n  getClassOrder(classList: string[]): [string, bigint | null][]\n  // Methods needed for property ordering (may not exist in older TW4 versions)\n  candidatesToAst?(classes: string[]): unknown[][]\n  parseCandidate?(candidate: string): readonly unknown[]\n  getVariantOrder?(): Map<unknown, number>\n  getVariants?(): { name: string }[]\n}\n\ninterface TailwindApi {\n  __unstable__loadDesignSystem(css: string, options: LoadOptions): Promise<DesignSystem>\n}\n\ninterface LoadOptions {\n  base: string\n  loadModule?(id: string, base: string, resourceType: string): Promise<{ base: string; module: unknown }>\n  loadPlugin?(id: string): Promise<unknown>\n  loadConfig?(id: string): Promise<unknown>\n  loadStylesheet?(id: string, base: string): Promise<{ base: string; content: string }>\n}\n\n// Cache: `${configDir}::${stylesheet}` → Promise<TailwindContext | null>\n// Shared across all files in the same project directory (mirrors prettier-plugin-tailwindcss/src/config.ts)\nconst contextCache = new Map<string, Promise<TailwindContext | null>>()\n\n// Cache for prettier config base dir resolution: inputDir → configDir\nconst prettierConfigCache = new Map<string, string>()\n\nexport async function loadTailwindContext(\n  stylesheet: string | undefined,\n  filepath: string,\n  propertyOrderPath?: string,\n  classOrderRaw?: unknown\n): Promise<TailwindContext | null> {\n  const inputDir = filepath ? path.dirname(filepath) : process.cwd()\n  const configDir = await resolvePrettierConfigDir(filepath, inputDir)\n\n  // Relative paths are resolved from the .prettierrc directory\n  let resolvedStylesheet: string | undefined\n  if (stylesheet) {\n    resolvedStylesheet = path.isAbsolute(stylesheet) ? stylesheet : path.resolve(configDir, stylesheet)\n  }\n\n  const cacheKey = `${configDir}::${resolvedStylesheet ?? ''}::${propertyOrderPath ?? ''}::${JSON.stringify(classOrderRaw ?? '')}`\n\n  const cached = contextCache.get(cacheKey)\n  if (cached !== undefined) return cached\n\n  const promise = doLoad(resolvedStylesheet, configDir, propertyOrderPath, classOrderRaw)\n  contextCache.set(cacheKey, promise)\n  return promise\n}\n\nasync function doLoad(\n  stylesheet: string | undefined,\n  configDir: string,\n  propertyOrderPath?: string,\n  classOrderRaw?: unknown\n): Promise<TailwindContext | null> {\n  // Locate @tailwindcss/node in the user's project\n  let tailwindPath: string\n  try {\n    tailwindPath = resolveJsFrom(configDir, '@tailwindcss/node')\n  } catch {\n    console.warn(\n      '[prettier-plugin-latte-tailwindcss] @tailwindcss/node not found — class sorting disabled.\\n' +\n        'This is a required peer dependency. Install it: npm install --save-dev @tailwindcss/node'\n    )\n    return null\n  }\n\n  // jiti@2 with disabled caches so changes to config are picked up immediately\n  const jiti = createJiti(import.meta.url, { moduleCache: false, fsCache: false })\n  const cacheKey = `${+Date.now()}`\n\n  // Load @tailwindcss/node via jiti (ESM-only package)\n  let tailwindMod: TailwindApi\n  try {\n    const url = pathToFileURL(tailwindPath)\n    url.searchParams.append('t', cacheKey)\n    tailwindMod = (await jiti.import(url.href, { default: true })) as TailwindApi\n  } catch (err) {\n    console.warn('[prettier-plugin-latte-tailwindcss] Failed to load @tailwindcss/node:', err)\n    return null\n  }\n\n  if (typeof tailwindMod.__unstable__loadDesignSystem !== 'function') {\n    console.warn(\n      '[prettier-plugin-latte-tailwindcss] @tailwindcss/node does not export __unstable__loadDesignSystem — ' +\n        'is Tailwind CSS v4 installed?'\n    )\n    return null\n  }\n\n  // Read CSS content and set base path for @import resolution\n  let css: string\n  let importBasePath: string\n  let stylesheetPath: string\n\n  if (stylesheet) {\n    css = await fs.readFile(stylesheet, 'utf-8')\n    importBasePath = path.dirname(stylesheet)\n    stylesheetPath = stylesheet\n  } else {\n    // No stylesheet configured — use minimal Tailwind CSS to get at least the default utilities\n    importBasePath = configDir\n    stylesheetPath = path.join(configDir, 'fake.css')\n    css = '@import \"tailwindcss\";'\n  }\n\n  const loader = createLoader({ jiti, cacheKey, stylesheetPath })\n\n  let design: DesignSystem\n  try {\n    design = await tailwindMod.__unstable__loadDesignSystem(css, {\n      base: importBasePath,\n      loadModule: loader.loadModule,\n      loadStylesheet: loader.loadStylesheet,\n      loadPlugin: loader.loadPlugin,\n      loadConfig: loader.loadConfig\n    })\n  } catch (err) {\n    console.warn('[prettier-plugin-latte-tailwindcss] Failed to load Tailwind design system:', err)\n    return null\n  }\n\n  const classOrder = await resolveClassOrderConfig(classOrderRaw, configDir)\n\n  const context: TailwindContext = {\n    getClassOrder: (classList: string[]) => design.getClassOrder(classList),\n    classOrder\n  }\n\n  // Load property order config if specified\n  if (propertyOrderPath) {\n    if (\n      typeof design.candidatesToAst !== 'function' ||\n      typeof design.parseCandidate !== 'function' ||\n      typeof design.getVariantOrder !== 'function' ||\n      typeof design.getVariants !== 'function'\n    ) {\n      console.warn(\n        '[prettier-plugin-latte-tailwindcss] tailwindPropertyOrder requires Tailwind CSS v4 with candidatesToAst API — ' +\n          'custom property ordering disabled.'\n      )\n    } else {\n      const config = await loadPropertyOrderConfig(propertyOrderPath, configDir)\n      if (config) {\n        const ds: DesignSystemForPropertyOrder = {\n          candidatesToAst: (classes) => design.candidatesToAst!(classes) as any,\n          parseCandidate: (candidate) => design.parseCandidate!(candidate) as any,\n          getVariantOrder: () => design.getVariantOrder!() as any,\n          getVariants: () => design.getVariants!() as any\n        }\n        context.propertyOrder = createPropertyOrderContext(config, ds)\n      }\n    }\n  }\n\n  return context\n}\n\nfunction createLoader({\n  jiti,\n  cacheKey,\n  stylesheetPath\n}: {\n  jiti: ReturnType<typeof createJiti>\n  cacheKey: string\n  stylesheetPath: string\n}) {\n  const baseDir = path.dirname(stylesheetPath)\n\n  async function loadFile(id: string, base: string): Promise<unknown> {\n    const resolved = resolveJsFrom(base, id)\n    const url = pathToFileURL(resolved)\n    url.searchParams.append('t', cacheKey)\n    return jiti.import(url.href, { default: true })\n  }\n\n  return {\n    // Non-legacy signature: returns { base, module } (used by loadModule in @tailwindcss/node)\n    loadModule: async (id: string, base: string, _resourceType: string) => ({\n      base,\n      module: await loadFile(id, base)\n    }),\n\n    // Legacy signature: returns value directly (used by loadPlugin and loadConfig)\n    loadPlugin: async (id: string) => {\n      try {\n        return await loadFile(id, baseDir)\n      } catch (err) {\n        console.warn(`[prettier-plugin-latte-tailwindcss] Unable to load plugin: ${id}`, err)\n        return () => {}\n      }\n    },\n\n    loadConfig: async (id: string) => {\n      try {\n        return await loadFile(id, baseDir)\n      } catch (err) {\n        console.warn(`[prettier-plugin-latte-tailwindcss] Unable to load config: ${id}`, err)\n        return {}\n      }\n    },\n\n    // Resolve CSS @import paths using enhanced-resolve\n    loadStylesheet: async (id: string, base: string) => {\n      const resolved = resolveCssFrom(base, id)\n      return {\n        base: path.dirname(resolved),\n        content: await fs.readFile(resolved, 'utf-8')\n      }\n    }\n  }\n}\n\nasync function resolvePrettierConfigDir(filePath: string, inputDir: string): Promise<string> {\n  const cached = prettierConfigCache.get(inputDir)\n  if (cached !== undefined) return cached\n\n  try {\n    const configFile = await prettier.resolveConfigFile(filePath)\n    if (configFile) {\n      const configDir = path.dirname(configFile)\n      prettierConfigCache.set(inputDir, configDir)\n      return configDir\n    }\n  } catch {\n    // Prettier config not found — fall back to cwd\n  }\n\n  prettierConfigCache.set(inputDir, process.cwd())\n  return process.cwd()\n}\n","import fs from 'node:fs'\nimport { CachedInputFileSystem, ResolverFactory } from 'enhanced-resolve'\n\n// Shared filesystem cache with 30s TTL (mirrors prettier-plugin-tailwindcss/src/resolve.ts)\nconst fileSystem = new CachedInputFileSystem(fs, 30_000)\n\nconst esmResolver = ResolverFactory.createResolver({\n  fileSystem,\n  useSyncFileSystemCalls: true,\n  extensions: ['.mjs', '.js'],\n  mainFields: ['module'],\n  conditionNames: ['node', 'import']\n})\n\nconst cjsResolver = ResolverFactory.createResolver({\n  fileSystem,\n  useSyncFileSystemCalls: true,\n  extensions: ['.js', '.cjs'],\n  mainFields: ['main'],\n  conditionNames: ['node', 'require']\n})\n\nconst cssResolver = ResolverFactory.createResolver({\n  fileSystem,\n  useSyncFileSystemCalls: true,\n  extensions: ['.css'],\n  mainFields: ['style'],\n  conditionNames: ['style']\n})\n\n/** Resolve a JS/TS module — ESM first, fallback to CJS */\nexport function resolveJsFrom(base: string, id: string): string {\n  try {\n    return esmResolver.resolveSync({}, base, id) || id\n  } catch {\n    return cjsResolver.resolveSync({}, base, id) || id\n  }\n}\n\n/** Resolve a CSS file path (@import) */\nexport function resolveCssFrom(base: string, id: string): string {\n  return cssResolver.resolveSync({}, base, id) || id\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAKM,kBAOO;AAZb;AAAA;AAAA;AAKA,IAAM,mBAAmB,MACvB,OAAO,aAAa,cAChB,IAAI,IAAI,QAAQ,UAAU,EAAE,EAAE,OAC7B,SAAS,iBAAiB,SAAS,cAAc,QAAQ,YAAY,MAAM,WAC1E,SAAS,cAAc,MACvB,IAAI,IAAI,WAAW,SAAS,OAAO,EAAE;AAEtC,IAAM,gBAAgC,iCAAiB;AAAA;AAAA;;;ACZ9D;AAAA,oCAAAA,UAAAC,SAAA;AAAA;AAAA;AAAA,KAAC,MAAI;AAAC,UAAI,IAAE,EAAC,yEAAwE,SAASC,IAAE;AAAC,iBAAS,yBAAyBA,IAAE;AAAC,iBAAO,QAAQ,QAAQ,EAAE,KAAK,WAAU;AAAC,gBAAIC,KAAE,IAAI,MAAM,yBAAuBD,KAAE,GAAG;AAAE,kBAAMC,GAAE,OAAK,oBAAmBA;AAAA,UAAC,CAAC;AAAA,QAAC;AAAC,iCAAyB,OAAK,MAAI,CAAC,GAAE,yBAAyB,UAAQ,0BAAyB,yBAAyB,KAAG,yEAAwED,GAAE,UAAQ;AAAA,MAAwB,EAAC,GAAE,IAAE,CAAC;AAAE,eAAS,oBAAoBE,IAAE;AAAC,YAAI,IAAE,EAAEA,EAAC;AAAE,YAAG,WAAS,EAAE,QAAO,EAAE;AAAQ,YAAI,IAAE,EAAEA,EAAC,IAAE,EAAC,SAAQ,CAAC,EAAC;AAAE,eAAO,EAAEA,EAAC,EAAE,GAAE,EAAE,SAAQ,mBAAmB,GAAE,EAAE;AAAA,MAAO;AAAC,0BAAoB,IAAE,CAAAF,OAAG;AAAC,YAAIC,KAAED,MAAGA,GAAE,aAAW,MAAIA,GAAE,UAAQ,MAAIA;AAAE,eAAO,oBAAoB,EAAEC,IAAE,EAAC,GAAEA,GAAC,CAAC,GAAEA;AAAA,MAAC,GAAE,oBAAoB,IAAE,CAACD,IAAEC,OAAI;AAAC,iBAAQC,MAAKD,GAAE,qBAAoB,EAAEA,IAAEC,EAAC,KAAG,CAAC,oBAAoB,EAAEF,IAAEE,EAAC,KAAG,OAAO,eAAeF,IAAEE,IAAE,EAAC,YAAW,MAAG,KAAID,GAAEC,EAAC,EAAC,CAAC;AAAA,MAAC,GAAE,oBAAoB,IAAE,CAACF,IAAEC,OAAI,OAAO,UAAU,eAAe,KAAKD,IAAEC,EAAC;AAAE,UAAI,IAAE,CAAC;AAAE,OAAC,MAAI;AAAC;AAAa,4BAAoB,EAAE,GAAE,EAAC,SAAQ,MAAIE,YAAU,CAAC;AAAE,cAAMH,KAAE,QAAQ,IAAS;AAAE,YAAIC,KAAE,CAAC,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,MAAK,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,KAAI,GAAE,KAAI,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,KAAI,GAAE,IAAG,IAAG,IAAG,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,IAAG,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,IAAG,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,GAAE,GAAE,GAAE,GAAE,KAAI,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,GAAE,KAAI,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,IAAG,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,GAAE,GAAE,KAAI,IAAG,KAAI,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,KAAI,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,KAAI,GAAE,IAAG,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,GAAE,IAAG,KAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,KAAI,GAAE,IAAG,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,IAAG,IAAG,MAAK,GAAE,GAAE,IAAG,OAAM,IAAG,MAAK,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,GAAE,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,OAAM,GAAE,MAAK,GAAE,KAAI,IAAG,GAAE,IAAG,KAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,KAAI,GAAE,MAAK,IAAG,KAAI,IAAG,GAAE,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,IAAG,MAAK,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,IAAG,KAAI,IAAG,KAAI,GAAE,GAAE,GAAE,KAAI,GAAE,KAAI,GAAE,GAAE,GAAE,MAAK,GAAE,QAAO,GAAG,GAAE,IAAE,CAAC,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,KAAI,IAAG,IAAG,KAAI,IAAG,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,KAAI,IAAG,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,KAAI,IAAG,IAAG,IAAG,GAAE,IAAG,GAAE,GAAE,IAAG,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,IAAG,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,IAAG,IAAG,GAAE,IAAG,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,IAAG,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,GAAE,GAAE,KAAI,IAAG,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,IAAG,IAAG,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,IAAG,KAAI,IAAG,IAAG,GAAE,GAAE,IAAG,IAAG,GAAE,IAAG,IAAG,KAAI,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,GAAE,KAAI,IAAG,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,KAAI,GAAE,IAAG,KAAI,KAAI,KAAI,IAAG,KAAI,MAAK,IAAG,IAAG,MAAK,IAAG,GAAE,IAAG,MAAK,GAAE,KAAI,MAAK,IAAG,MAAK,KAAI,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,GAAE,IAAG,IAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,GAAE,GAAE,IAAG,IAAG,IAAG,GAAE,GAAE,GAAE,IAAG,MAAK,GAAE,MAAK,IAAG,GAAE,MAAK,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,KAAI,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,KAAI,MAAK,KAAI,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,MAAK,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,MAAK,IAAG,GAAE,GAAE,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,IAAG,GAAE,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,GAAE,GAAE,KAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,KAAI,IAAG,IAAG,GAAE,GAAE,MAAK,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,MAAK,OAAM,IAAG,MAAK,GAAE,KAAI,GAAE,MAAK,IAAG,MAAK,IAAG,KAAI,MAAK,KAAI,MAAK,MAAK,GAAE,IAAI,GAAE,IAAE,grIAAo6B,IAAE,EAAC,GAA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","names":["exports","module","e","t","i","createJiti","s","r","n","a","o","h","c","p","l","u","d","m","g","x","v","isAbsolute","pathToFileURL","f","exports","module","exports","module","dirname","path","err","options","fileSystem","readFile","readFileSync","exports","module","fs","path","err","err2","er","er2","options","exports","module","fs","path","options","exports","module","exports","module","fs","queue","readFile","path","options","cb","data","src","dest","flags","go$readdir","mode","exports","module","exports","module","path","callback","exports","module","exports","module","exports","module","path","c0","c1","join","dirname","exports","module","options","path","callback","exports","module","options","exports","module","exports","module","exports","module","path","err","result","exports","module","fs","exports","module","exports","module","target","conditionalMapping","exports","module","path","callback","exports","module","options","resolve","alias","callback","exports","module","fs","exports","module","path","callback","exports","module","exports","module","exports","module","path","options","exports","module","path","basename","exports","module","fs","path","callback","exports","module","exports","module","path","exports","module","exports","module","exports","module","exports","module","options","exports","module","options","onError","code","exports","module","onError","code","options","exports","module","onError","options","exports","module","onError","options","exports","module","onError","options","exports","module","onError","options","exports","module","onError","options","exports","module","options","exports","module","options","exports","module","onError","options","exports","module","onError","options","exports","module","onError","options","exports","module","onError","options","exports","module","exports","module","options","exports","module","join","str","fileSystem","options","path","obj","err","result","exports","module","path","exports","module","exports","module","callback","path","exports","module","exports","module","fs","path","callback","idx","exports","module","fs","options","exports","module","exports","module","stripJsonComments","exports","module","stripJsonComments","fileSystem","options","readJson","resolve","exports","module","dirname","join","fileSystem","resolve","exports","module","yield_","result","exports","module","exports","module","options","fileSystem","exports","module","exports","module","require_lib","exports","module","fs","CachedInputFileSystem","resolve","path","options","create","createSync","className","path","path","_createJiti","path","import_node_url","options","path","fs","path","import_node_url","fs","prettier"]}