{"version":3,"file":"js/2563.js","mappings":"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","sources":["webpack://nocodenodeweb/./node_modules/@paypalcorp/pp-react-buttons/dist/@paypalcorp/styles.css.js","webpack://nocodenodeweb/./node_modules/@paypalcorp/pp-react-icons/dist/@paypalcorp/styles.css.js","webpack://nocodenodeweb/./node_modules/@paypalcorp/pp-react-shimmer/dist/@paypalcorp/styles.css.js","webpack://nocodenodeweb/./node_modules/@paypalcorp/pp-react-utils/dist/@paypalcorp/cssVariables.css.js","webpack://nocodenodeweb/./node_modules/@vanilla-extract/css/injectStyles/dist/vanilla-extract-css-injectStyles.browser.esm.js","webpack://nocodenodeweb/./node_modules/modern-ahocorasick/dist/index.mjs","webpack://nocodenodeweb/./node_modules/@vanilla-extract/css/adapter/dist/vanilla-extract-css-adapter.browser.esm.js","webpack://nocodenodeweb/./node_modules/css-what/lib/es/types.js","webpack://nocodenodeweb/./node_modules/@vanilla-extract/css/dist/taggedTemplateLiteral-8e47dbd7.browser.esm.js","webpack://nocodenodeweb/./node_modules/css-what/lib/es/parse.js","webpack://nocodenodeweb/./node_modules/dedent/dist/dedent.mjs","webpack://nocodenodeweb/./node_modules/media-query-parser/node_modules/tslib/tslib.es6.js","webpack://nocodenodeweb/./node_modules/media-query-parser/compiled/parse/lexicalAnalysis.js","webpack://nocodenodeweb/./node_modules/@vanilla-extract/css/dist/transformCss-9c456b50.browser.esm.js","webpack://nocodenodeweb/./node_modules/media-query-parser/compiled/parse/simplifyAST.js","webpack://nocodenodeweb/./node_modules/media-query-parser/compiled/parse/syntacticAnalysis.js","webpack://nocodenodeweb/./node_modules/@vanilla-extract/css/node_modules/lru-cache/src/index.ts","webpack://nocodenodeweb/./node_modules/@vanilla-extract/css/dist/vanilla-extract-css.browser.esm.js","webpack://nocodenodeweb/./node_modules/cssesc/cssesc.js","webpack://nocodenodeweb/./node_modules/deepmerge/dist/cjs.js","webpack://nocodenodeweb/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://nocodenodeweb/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://nocodenodeweb/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://nocodenodeweb/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://nocodenodeweb/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://nocodenodeweb/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["import \"node_modules/@paypalcorp/pp-react-screen-reader/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-screen-reader/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"LnY4ZHBmdjAgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7CiAgcGFkZGluZzogMDsKICBib3JkZXI6IDA7CiAgd2lkdGg6IDFweDsKICBoZWlnaHQ6IDFweDsKICBvdmVyZmxvdzogaGlkZGVuOwp9\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"node_modules/@paypalcorp/pp-react-shimmer/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-shimmer/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"QGtleWZyYW1lcyBxOXJncXAwIHsKICAwJSB7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDA7CiAgfQogIDEwMCUgewogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMCUgMDsKICB9Cn0KLnE5cmdxcDEgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW96NHNkb2U4KTsKICBib3JkZXI6IHZhcigtLW96NHNkbzMxKSBzb2xpZCB0cmFuc3BhcmVudDsKICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoCiAgICB0byByaWdodCwKICAgIHZhcigtLW96NHNkb2U4KSAwJSwKICAgIHZhcigtLW96NHNkb2VhKSA1MCUsCiAgICB2YXIoLS1vejRzZG9lOCkgMTAwJQogICk7CiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwOwogIGJhY2tncm91bmQtc2l6ZTogMjAwJTsKICBhbmltYXRpb246IHE5cmdxcDAgdmFyKC0tb3o0c2RvMm4pCiAgICBjdWJpYy1iZXppZXIodmFyKC0tb3o0c2RvMzApKSBpbmZpbml0ZTsKfQoucTlyZ3FwMiB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tb3o0c2RvZTkpOwogIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgKICAgIHRvIHJpZ2h0LAogICAgdmFyKC0tb3o0c2RvZTkpIDAlLAogICAgdmFyKC0tb3o0c2RvZWEpIDUwJSwKICAgIHZhcigtLW96NHNkb2U5KSAxMDAlCiAgKTsKfQoucTlyZ3FwMyB7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tb3o0c2RvMzkpOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKfQ==\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"node_modules/@paypalcorp/pp-react-text/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-text/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"node_modules/@paypalcorp/pp-react-utils/dist/@paypalcorp/focusStyles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-utils/dist/@paypalcorp/focusStyles.css.js.vanilla.css\\\",\\\"source\\\":\\\"#H4sIAAAAAAAAA8WTwWrDMAyG73kKURjU7VwSt/TgPsxwE3UxBCvYSls2+u4jabMmWbalMBg5WJKxpP+TsnpJjtsKVRHDewSQkmN0rGE220UAJQXLlpwGsw9UVIx1lKnUENdWgQe+md6+5q29J5+h1+DI4dU/y5CbjE4a4uZLTZHO1aI5jsbPpaS3TchonQhYQi+ihBC9CKbiXkR6k9kqaLAuR2+5vjnZjHMNSRw/1W6O19ZavyTrGL3EIzoObZeXaNWiSB5EMRBwBzNy0aKZqBwCFTbry9+Kf2DKeGZpXdYQGdF1Y94Ur0GDHJe4ACVEdyrTX/w6N9XM7RswE1gPKD9HANBNMTXPcmrF0RlQxYV1+OiKsDculMaj458m2cG1bnB9lhvkfWTzhk+7vrFdVZIOh4DDFVKi19jmzxr7ilCNIrQuIE9peyzhQta/wOUDJHq0k0oFAAA=\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"node_modules/@paypalcorp/pp-react-buttons/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-buttons/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"#H4sIAAAAAAAAA91Z0W7qOBB971dYV1qpWZErAi3QXGl1922f9heujDMBQ2KntqGlq/77Kk5SbMchSWlX1aoPNGRmfGbmeGZsfu7hlAqcg0S/ovxhv0jlFP1zg9D0N/2BEC8woeoUo+mPG4RebxCKpu2XUfXy9eZ7YybSIgWXVFHOYiQgw4oeoRRcc5GACAVO6EHGpcFp8Wy8kOqUQYwkz2hifP1EE7WN0RGL2zDkL3cy4fMoKAXIQUguYlRwyhSI8isFzypMgHCBKwCMM714QmWR4VOMKMsogzDNQK+NM7phIVWQyxgRaOzsDlLR9BQSzhQwZb5SArPGPcIzLixos1WAAEuYlA5gst8IfmBJ2CNYedot9MOKcZxycpA60vygSnec8MyCKorWt7AIqqg+h3KLE/4Uo6n+c1XNZ0y1Ur1MyNNUgmqtZsGbaWDal0bwVyReRLGLphPbeBZo6ylnKkxxTrOTbXr1EEzQt78gO4KiBKO/4QDfJuhPQXE2QRIzGUoQNH0zIumLE4sV1kto9Fugm62DfkXOEJ5879eVPihVUrRkPts4IokWySlruLoQkJdfFThJtDjBGbk1daIoQKEbxsAjt/DJNcv5HFrb2Zh/YDbS67Ox6ckG7cnGtj8bOzcb8+/L+zohXUGrMtidrt3AbM382TLycdedj8jJx2MQnMvg5R3elVJWm3AKUR8TmAs63vIjiG7oMz/0zmrcB2ju2ONmKEaoWD5gUnaibifu/E68ldih4O8dO0U/eK+KBf5IJVWQDN/Nj46Je63ah/0iB0epvIto92OJNpDgLjnEeD6JFtSxfBqI1eWCHE8f2cI6mj5uZhYd9NHTUIEFMNWH0lkC7q4gyuIDPDK4NoA/hqPdsF16DqhbXhULpsGzAdwZhNOl5oAS5VUxcC4rgJ9UKB679o7FPxPOeIK4u2Z5kSAO8QfldkDZ8apYoMbRwZfmQfkdUHa8KgbW1eDYk0VgT2D62Ok/RnpOfQPLktHC7aOoNVote8frjztNmsEa2frIcnDrs0uCtebXO0mOIYzlysh2TFaD23Fn/B7eM1ORXf/OuqJVktyJzMP1rfJhXKu04Oxbtt5fwJrQ/Vc9DY8uYP+Hw7MRgLUOQI7FhrKwrnXAElspmtpKxKMkFRbKo+Y1rov/EUQZqCzUNTVGihfdPaHuBSEcgSnZ1HkDU9I5ndQXAORiMbCEehezipDTifqV232ga8YBT83rlvVUgS7h1LnFxWvJs4PSoVa8qDO05krxvH7IIFX1v6Ki3tTTaCnbgqDq7W6gzu25U9r3zpjRvL45ON9TmxmZLav70ZAylHLxhEUirf7cNOYL97kdPbseRcKzN0aANherl8EWQ2fbLiZvw60luNOC7oixEdWtePkZKsiLDCso1z3kTJa7oQCsbqNJuaOeGz81Xze4cHbezB62rHdR0JY1wO2vADf7bHDZFeDmnw2Oa3CfP1OavHQn3vOzOWmbIH0TYatGFRWV3UHcY+cPlNBjnFIhVcjTUJ0KiBlXt+fCHNjPEHypafT15mcOCcVIEgHAEGYJui1pUt8t3y0F5BVk5wcQq43nlFkXxSscTNrXxysc/G49Q1BNFU7Tb1kjXmukw9qrCXY+AOzGa37jmN8PBEu91miHNQss/vJg3/jSR5K8dqUWKX9dvWBhvmhbYLWFjrLWbHTfEv8CZ61r4wAeAAA=\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nexport var affordance = '_1m9k6fsc';\nexport var btnBase = '_1m9k6fs1';\nexport var btnFullWidth = '_1m9k6fsm';\nexport var btnGroupFullWidth = '_1m9k6fsn';\nexport var btnLarge = '_1m9k6fs2';\nexport var btnOverlay = '_1m9k6fsf';\nexport var btnSmall = '_1m9k6fs3';\nexport var buttonGroup = {'1':'_1m9k6fsj','2':'_1m9k6fsk','3':'_1m9k6fsl'};\nexport var buttonsType = {primary:'_1m9k6fs4',primaryInverse:'_1m9k6fs5',secondary:'_1m9k6fs6',secondaryInverse:'_1m9k6fs7',tertiary:'_1m9k6fs8',overlay:'_1m9k6fs9'};\nexport var cursorPointer = '_1m9k6fsp';\nexport var icon = '_1m9k6fsb';\nexport var processingState = '_1m9k6fse';\nexport var smallSizeTapContainer = '_1m9k6fso';\nexport var successState = '_1m9k6fsd';\nexport var successStateIcon = '_1m9k6fsh';\nexport var successStateIconSm = '_1m9k6fsi';\nexport var successStateOverlay = '_1m9k6fsg';\nexport var tertiarySmall = '_1m9k6fsa';","import \"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#H4sIAAAAAAAAA4Wa224rNxJF3/MVBIQAE8A2yG7e85b3AQ7mBwZkN1vW/S5bHsy/B2yfICFrt1oKzsNuqrhYxc2i5Lz9V1zWn/wYOfvfL4y9vh6+5KU/cM/Em2jUOe1+/4csslyLjWdNJbWetZUkPZOVpFA0TaMZGs3SaM4zXUnBs+bN1DNEGq6j4XrKkXK4OtrgGadzLD0TlfSeBwpLhq6yTjK9zmpLBm+yXItbuqAdXdDes6Ze0cGztk7a0TNpKu3kma7jnT0zdbyLZ45X2pXW5eaZJau4eybqz354VkufYxpJvh4wi184i4KjNAoBSykaWkvR5q1L7SHRjhbjPqdxwU4XJm8xGteinSccrbsInrV0ZKTbQeQ9T0f2nhEteaboyIHWVSxxccQ7rI5YwTKscRk2oAxbmO8dSOzeM1EIB89eS+WY59WU8jQuShXaOWu8KbRLPcXVM14It/FTYIr7+MAW2gdOw8T+F6MByvnH3U8PnIbjEI0gIZoG94GmrZbWyPxZV0hqNF8h6SpFjRmn5JdCtONuqUQ37pVKDOMUlRgzcy12npk3Xok9miihmAOafYng31HMFRLXSNygibZjIStxh0bu0doPaO35mCdi3uov+V1W6Xu3qxf+Zl74m6ieXp4+vY7pzCGrB7e/HvA3+1IbrLk/fTp6owGkn1MPHlMPviYetPw7FxV2KyY83DbYVW070fdbiZtTqyYCaXiItmYijEWHa+vgqdIGeri2EdzrOs8U/7WQes9+hMePsP1xPrz+sQ3dpnicaOtpB88kL86Pdpn7Fsjqu2ev/I3LSl59999CWz8H2QCQLQXZTYDsMcgBgByfg5wAyJmCXCZArhjkBkDuz0E+0K2i/aQoD3iPbr8gieSURIqnJLJBJLIlJFJCEqkwiQYk5jkJvGlJR0nwdwsZMUkHSJ4bRyZqP0mNI5fwxih/+qap5NE3JcZz28gNwKC2kTuMsccYB4rx3DTyBDCoaeQFY1wxxo1iPLeM/EAXTkktIx+A9wtSKE4o1HO7qAZRKGoXJSmFUphCU4rnVlEWUlCrqAAoIqboKMXfNtmG1f71j8O2L54n2roU9Ylawm9s6qdPRCWvPCsu92pdUvw79atb+RHw/URRo6gd5thjjkPNcSw5/pOWt204F0NOAIRaRV0wyBWD3GqQ+0xZPvCXD0W9oh74S4bCftG8QtFirja6wTCaWkZLDKOxbbSuYcxsgbSdoKHW0WGCBttHdzXNjHl0gtdBTf2jwS9aGptH1+bRs+bRG8xB/aN3gAObR9fm0fPm0ScMQv2jLwAEm0fX5tH32YRM2EdT++gJ+2hsH8M9u55vqdBEBWiaOUDTwkQZSfiMookyGibKGMBmazb3fE+bgH/HMZGidQCtx2ipxhhmU7ScAHmnICsAssYgmxpkO7urzW6CZE9JDoDkiElONcl5pjKXCYwrxbjh7XXHJB81yedscR4TLF+ExXLIYgVksU3FYtvZ+liJYayiMBrDGAxTm8e6p3c6G/CxY6l3bIePHdvDY8fW/rHDc5IlXif1jgXesdg7tvaOnfeO3U2khHrHHtCN2B5xQmr32PM8ywUnhfrH3uDtzmL/2No/9nOe5YG+KVtqH8fhN2UnYFpcQ74BuHkDOfiHF0ft48AfXZzBJLV3nJvnmPCPo/5xHUTG7nG1e9zw/Kh1E73HUf+4FdxUbvx5mreVWjvIbedOWjfRfBw1kDtglCNEqQ3k5g3kJjqQow5yuAO5O2SpDeQ+Z+rzwNGpfQKnx1vArSfUrSe0c8UJEnIE6pygAQfuOqF2Tph3TggYhBongEtbwJe2UNsmDOhH8bD0bCFNfhfyO5ZXni34+CrktWcLEfK7kDeeLdrxVchbzxbD+CrknWcLN74Kee/ZQvOur0YfPFtEm1wlH/OUfVSVfMLc51HWeigO3XAZZdtVQa6Y5IZJ7pjkAy/+E8uPLKvBDGVivzxbpH7gQ1HhyOEqo4BliA0sWmzhKqOEy4kKpipqTGJGWZm+KHG0sAzRjXJrYwkYYKpiHEc3zhV/s4odnrLHsZNni258FfKQ890OpppyCSsf33EGsXfiGgfZ4Cm3OPYOl2GPg2DvxCOOfcKxz9Cu8YKrc8U79oa35h0H+cCAn3j7PPDoLyh3HO7vTsCidQ3MYIe902HvdArH1ni0wbEtJnE4dsByhEdB10E3dD2WEyxaN3h2XsbwL/7Cfv73ptRvxZAlHSLLEe90hClHrPDs69kPbmYn387G2OG07uHG7A4YFduvw62rO+MgF3gKdlcc5Ia3WrZfcsqqUh5bF3edK+Vsv5Sari3lBwbM9htMz/sCsOcwdi8gSd/A5fTtOGUfXXGa9HKUOy6Ls6dXoxxCFSTbLwQjKtlAi/T2e5UqlctxWP5uXcnF4me+PuLljK0rdNbqQs72M23SIRZyGoMEq4vLdj9g7ty6ujjYvhydW1fSQ0gl4ApPucbcuXVpl9+FnFuX5fldyDt40+z3cPv0B9hH+iO8J/UneFL1Z8ydveOi5dWU2TtRhVrO3jFBmaFcJW5dffZO3/VNJY/eGVKs5Aee8gtyJw5zkgQ8fVID7wSphe08SZjBpH4eiY1SL+zvf/L/HVScjAk3s2TmDt1k8aIc3EQpTPGUB3XCTksdTtXY6FqhGv37L///E9DX6PUuLgAA\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"node_modules/@paypalcorp/pp-react-icons/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-icons/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"LnhhYm1qZjAgewogIHNwZWFrOiBub25lOwogIGFzcGVjdC1yYXRpbzogMTsKfQoueGFibWpmMSB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHdpZHRoOiB2YXIoLS1vejRzZG8zKTsKICBoZWlnaHQ6IHZhcigtLW96NHNkbzMpOwp9Ci54YWJtamYyIHsKICB3aWR0aDogdmFyKC0tb3o0c2RvMCk7CiAgaGVpZ2h0OiB2YXIoLS1vejRzZG8wKTsKfQoueGFibWpmMyB7CiAgd2lkdGg6IHZhcigtLW96NHNkbzEpOwogIGhlaWdodDogdmFyKC0tb3o0c2RvMSk7Cn0KLnhhYm1qZjQgewogIHdpZHRoOiB2YXIoLS1vejRzZG8yKTsKICBoZWlnaHQ6IHZhcigtLW96NHNkbzIpOwp9Ci54YWJtamY1IHsKICB3aWR0aDogdmFyKC0tb3o0c2RvMyk7CiAgaGVpZ2h0OiB2YXIoLS1vejRzZG8zKTsKfQoueGFibWpmNiB7CiAgd2lkdGg6IHZhcigtLW96NHNkbzQpOwogIGhlaWdodDogdmFyKC0tb3o0c2RvNCk7Cn0KLnhhYm1qZjcgewogIHNwZWFrOiBub25lOwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBhc3BlY3QtcmF0aW86IDE7Cn0KLnhhYm1qZjcgaW1nLCAueGFibWpmNyBzdmcgewogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICBkaXNwbGF5OiBibG9jazsKfQ==\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nexport var ICON_FALLBACK_COLOR = 'var(--oz4sdoal)';\nexport var backgroundBase = 'xabmjf1';\nexport var base = 'xabmjf0';\nexport var legalColors = {sysColorBackgroundMain:'var(--oz4sdoag)',sysColorBackgroundAlt:'var(--oz4sdoah)',sysColorBackgroundSurface:'var(--oz4sdoai)',sysColorBackgroundSurfaceHover:'var(--oz4sdoaj)',sysColorBackgroundSurfaceActive:'var(--oz4sdoak)',sysColorBackgroundHighContrast:'var(--oz4sdoal)',sysColorBackgroundMediumContrast:'var(--oz4sdoam)',sysColorPrimaryMain:'var(--oz4sdoan)',sysColorPrimaryMainHover:'var(--oz4sdoao)',sysColorPrimaryMainActive:'var(--oz4sdoap)',sysColorPrimaryContrast:'var(--oz4sdoaq)',sysColorPrimaryContrastHover:'var(--oz4sdoar)',sysColorPrimaryContrastActive:'var(--oz4sdoas)',sysColorSecondaryMain:'var(--oz4sdoat)',sysColorSecondaryMainHover:'var(--oz4sdoau)',sysColorSecondaryMainActive:'var(--oz4sdoav)',sysColorSecondaryContrast:'var(--oz4sdoaw)',sysColorTertiaryMain:'var(--oz4sdoax)',sysColorTertiaryMainHover:'var(--oz4sdoay)',sysColorTertiaryMainActive:'var(--oz4sdoaz)',sysColorTertiaryContrast:'var(--oz4sdob0)',sysColorFeaturedMain:'var(--oz4sdob3)',sysColorFeaturedMainHover:'var(--oz4sdob4)',sysColorFeaturedMainActive:'var(--oz4sdob5)',sysColorFeaturedContrast:'var(--oz4sdob6)',sysColorUnselectedMain:'var(--oz4sdobr)',sysColorUnselectedMainHover:'var(--oz4sdobs)',sysColorUnselectedMainActive:'var(--oz4sdobt)',sysColorUnselectedContrast:'var(--oz4sdobu)',sysColorSelectedMain:'var(--oz4sdobv)',sysColorSelectedMainHover:'var(--oz4sdobw)',sysColorSelectedMainActive:'var(--oz4sdobx)',sysColorSelectedContrast:'var(--oz4sdoc1)',sysColorSelectedRangeMain:'var(--oz4sdoc2)',sysColorSelectedRangeMainHover:'var(--oz4sdoc3)',sysColorSelectedRangeMainActive:'var(--oz4sdoc4)',sysColorSelectedRangeContrast:'var(--oz4sdoc5)',sysColorLinkMain:'var(--oz4sdoc6)',sysColorLinkMainHover:'var(--oz4sdoc7)',sysColorLinkMainActive:'var(--oz4sdoc8)',sysColorLinkAlt:'var(--oz4sdocc)',sysColorLinkAltHover:'var(--oz4sdocd)',sysColorLinkAltActive:'var(--oz4sdoce)',sysColorLinkContrast:'var(--oz4sdoc9)',sysColorLinkContrastHover:'var(--oz4sdoca)',sysColorLinkContrastActive:'var(--oz4sdocb)',sysColorAccent1Main:'var(--oz4sdocn)',sysColorAccent1Contrast:'var(--oz4sdoco)',sysColorAccent2Main:'var(--oz4sdocp)',sysColorAccent2Contrast:'var(--oz4sdocq)',sysColorAccent3Main:'var(--oz4sdocr)',sysColorAccent3Contrast:'var(--oz4sdocs)',sysColorAccent4Main:'var(--oz4sdoct)',sysColorAccent4Contrast:'var(--oz4sdocu)',sysColorErrorMain:'var(--oz4sdocv)',sysColorErrorMainHover:'var(--oz4sdocw)',sysColorErrorMainActive:'var(--oz4sdocx)',sysColorErrorContrast:'var(--oz4sdocy)',sysColorWarningMain:'var(--oz4sdod3)',sysColorWarningMainHover:'var(--oz4sdod4)',sysColorWarningMainActive:'var(--oz4sdod5)',sysColorWarningAlt:'var(--oz4sdod6)',sysColorWarningContrast:'var(--oz4sdod7)',sysColorSuccessMain:'var(--oz4sdodc)',sysColorSuccessMainHover:'var(--oz4sdodd)',sysColorSuccessMainActive:'var(--oz4sdode)',sysColorSuccessContrast:'var(--oz4sdodf)',sysColorSystemMain:'var(--oz4sdodk)',sysColorSystemMainHover:'var(--oz4sdodl)',sysColorSystemMainActive:'var(--oz4sdodm)',sysColorSystemContrast:'var(--oz4sdodn)',sysColorInfoMain:'var(--oz4sdodo)',sysColorInfoMainHover:'var(--oz4sdodp)',sysColorInfoMainActive:'var(--oz4sdodq)',sysColorInfoContrast:'var(--oz4sdodr)',sysColorSpecialtyMain:'var(--oz4sdods)',sysColorSpecialtyMainHover:'var(--oz4sdodt)',sysColorSpecialtyMainActive:'var(--oz4sdodu)',sysColorSpecialtyContrast:'var(--oz4sdodv)'};\nexport var sizeLg = 'xabmjf5';\nexport var sizeMd = 'xabmjf4';\nexport var sizeSm = 'xabmjf3';\nexport var sizeXl = 'xabmjf6';\nexport var sizeXs = 'xabmjf2';\nexport var svg = 'xabmjf7';","import \"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"node_modules/@paypalcorp/pp-react-shimmer/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"node_modules/@paypalcorp/pp-react-shimmer/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"QGtleWZyYW1lcyBxOXJncXAwIHsKICAwJSB7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDA7CiAgfQogIDEwMCUgewogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMCUgMDsKICB9Cn0KLnE5cmdxcDEgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW96NHNkb2U4KTsKICBib3JkZXI6IHZhcigtLW96NHNkbzMxKSBzb2xpZCB0cmFuc3BhcmVudDsKICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoCiAgICB0byByaWdodCwKICAgIHZhcigtLW96NHNkb2U4KSAwJSwKICAgIHZhcigtLW96NHNkb2VhKSA1MCUsCiAgICB2YXIoLS1vejRzZG9lOCkgMTAwJQogICk7CiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwOwogIGJhY2tncm91bmQtc2l6ZTogMjAwJTsKICBhbmltYXRpb246IHE5cmdxcDAgdmFyKC0tb3o0c2RvMm4pCiAgICBjdWJpYy1iZXppZXIodmFyKC0tb3o0c2RvMzApKSBpbmZpbml0ZTsKfQoucTlyZ3FwMiB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tb3o0c2RvZTkpOwogIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgKICAgIHRvIHJpZ2h0LAogICAgdmFyKC0tb3o0c2RvZTkpIDAlLAogICAgdmFyKC0tb3o0c2RvZWEpIDUwJSwKICAgIHZhcigtLW96NHNkb2U5KSAxMDAlCiAgKTsKfQoucTlyZ3FwMyB7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tb3o0c2RvMzkpOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKfQ==\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nexport var base = 'q9rgqp1';\nexport var baseStyles = {backgroundColor:'var(--oz4sdoe8)',border:'var(--oz4sdo31) solid transparent',backgroundImage:'linear-gradient(\\n to right,\\n var(--oz4sdoe8) 0%,\\n var(--oz4sdoea) 50%,\\n var(--oz4sdoe8) 100%\\n )',backgroundPosition:'100% 0',backgroundSize:'200%',animation:'q9rgqp0 var(--oz4sdo2n)\\n cubic-bezier(var(--oz4sdo30)) infinite'};\nexport var defaultStyles = {borderRadius:'var(--oz4sdo39)',width:'100%',height:'100%'};\nexport var defaults = 'q9rgqp3';\nexport var inverse = 'q9rgqp2';\nexport var inverseStyles = {backgroundColor:'var(--oz4sdoe9)',backgroundImage:'linear-gradient(\\n to right,\\n var(--oz4sdoe9) 0%,\\n var(--oz4sdoea) 50%,\\n var(--oz4sdoe9) 100%\\n )'};","export var caretVariables = {caretSize:'var(--_1rzrpj16)',caretLeftOffset:'var(--_1rzrpj17)',caretRightOffset:'var(--_1rzrpj18)',caretBottomOffset:'var(--_1rzrpj19)',caretTopOffset:'var(--_1rzrpj1a)',caretCenterOffset:'var(--_1rzrpj1b)',caretSpaceShiftLeft:'var(--_1rzrpj1c)',caretSpaceShiftRight:'var(--_1rzrpj1d)'};\nexport var contextColors = {main:'var(--_1rzrpj10)',background:'var(--_1rzrpj11)',hoverMain:'var(--_1rzrpj12)',hoverBack:'var(--_1rzrpj13)',activeMain:'var(--_1rzrpj14)',activeBack:'var(--_1rzrpj15)'};","var stylesheets = {};\nvar injectStyles = _ref => {\n var {\n fileScope,\n css\n } = _ref;\n var fileScopeId = fileScope.packageName ? [fileScope.packageName, fileScope.filePath].join('/') : fileScope.filePath;\n var stylesheet = stylesheets[fileScopeId];\n if (!stylesheet) {\n var styleEl = document.createElement('style');\n if (fileScope.packageName) {\n styleEl.setAttribute('data-package', fileScope.packageName);\n }\n styleEl.setAttribute('data-file', fileScope.filePath);\n styleEl.setAttribute('type', 'text/css');\n stylesheet = stylesheets[fileScopeId] = styleEl;\n document.head.appendChild(styleEl);\n }\n stylesheet.innerHTML = css;\n};\n\nexport { injectStyles };\n","class AhoCorasick {\n constructor(keywords) {\n const { failure, gotoFn, output } = this._buildTables(keywords);\n this.gotoFn = gotoFn;\n this.output = output;\n this.failure = failure;\n }\n _buildTables(keywords) {\n const gotoFn = {\n 0: {}\n };\n const output = {};\n let state = 0;\n for (const word of keywords) {\n let curr = 0;\n for (const l of word) {\n if (gotoFn[curr] && l in gotoFn[curr]) {\n curr = gotoFn[curr][l];\n }\n else {\n state++;\n gotoFn[curr][l] = state;\n gotoFn[state] = {};\n curr = state;\n output[state] = [];\n }\n }\n output[curr].push(word);\n }\n const failure = {};\n const xs = [];\n // f(s) = 0 for all states of depth 1 (the ones from which the 0 state can transition to)\n for (const l in gotoFn[0]) {\n const state = gotoFn[0][l];\n failure[state] = 0;\n xs.push(state);\n }\n while (xs.length > 0) {\n const r = xs.shift();\n if (r !== undefined) {\n for (const l in gotoFn[r]) {\n const s = gotoFn[r][l];\n xs.push(s);\n // set state = f(r)\n let state = failure[r];\n while (state > 0 && !(l in gotoFn[state])) {\n state = failure[state];\n }\n if (l in gotoFn[state]) {\n const fs = gotoFn[state][l];\n failure[s] = fs;\n output[s] = [...output[s], ...output[fs]];\n }\n else {\n failure[s] = 0;\n }\n }\n }\n // for each symbol a such that g(r, a) = s\n }\n return {\n gotoFn,\n output,\n failure\n };\n }\n search(str) {\n let state = 0;\n const results = [];\n // eslint-disable-next-line unicorn/no-for-loop\n for (let i = 0; i < str.length; i++) {\n const l = str[i];\n while (state > 0 && !(l in this.gotoFn[state])) {\n state = this.failure[state];\n }\n // 使用 object ,表情符号出现问题\n if (!(l in this.gotoFn[state])) {\n continue;\n }\n state = this.gotoFn[state][l];\n if (this.output[state].length > 0) {\n const foundStrs = this.output[state];\n results.push([i, foundStrs]);\n }\n }\n return results;\n }\n}\n\nexport { AhoCorasick as default };\n","var mockAdapter = {\n appendCss: () => {},\n registerClassName: () => {},\n onEndFileScope: () => {},\n registerComposition: () => {},\n markCompositionUsed: () => {},\n getIdentOption: () => process.env.NODE_ENV === 'production' ? 'short' : 'debug'\n};\nvar adapterStack = [mockAdapter];\nvar currentAdapter = () => {\n if (adapterStack.length < 1) {\n throw new Error('No adapter configured');\n }\n return adapterStack[adapterStack.length - 1];\n};\nvar hasConfiguredAdapter = false;\nvar setAdapterIfNotSet = newAdapter => {\n if (!hasConfiguredAdapter) {\n setAdapter(newAdapter);\n }\n};\nvar setAdapter = newAdapter => {\n if (!newAdapter) {\n throw new Error('No adapter provided when calling \"setAdapter\"');\n }\n hasConfiguredAdapter = true;\n adapterStack.push(newAdapter);\n};\nvar removeAdapter = () => {\n adapterStack.pop();\n};\nvar appendCss = function appendCss() {\n return currentAdapter().appendCss(...arguments);\n};\nvar registerClassName = function registerClassName() {\n return currentAdapter().registerClassName(...arguments);\n};\nvar registerComposition = function registerComposition() {\n return currentAdapter().registerComposition(...arguments);\n};\nvar markCompositionUsed = function markCompositionUsed() {\n return currentAdapter().markCompositionUsed(...arguments);\n};\nvar onBeginFileScope = function onBeginFileScope() {\n var _currentAdapter$onBeg, _currentAdapter;\n for (var _len = arguments.length, props = new Array(_len), _key = 0; _key < _len; _key++) {\n props[_key] = arguments[_key];\n }\n return (_currentAdapter$onBeg = (_currentAdapter = currentAdapter()).onBeginFileScope) === null || _currentAdapter$onBeg === void 0 ? void 0 : _currentAdapter$onBeg.call(_currentAdapter, ...props);\n};\nvar onEndFileScope = function onEndFileScope() {\n return currentAdapter().onEndFileScope(...arguments);\n};\nvar getIdentOption = function getIdentOption() {\n var adapter = currentAdapter();\n\n // Backwards compatibility with old versions of the integration package\n if (!('getIdentOption' in adapter)) {\n return process.env.NODE_ENV === 'production' ? 'short' : 'debug';\n }\n return adapter.getIdentOption(...arguments);\n};\n\nexport { appendCss, getIdentOption, markCompositionUsed, mockAdapter, onBeginFileScope, onEndFileScope, registerClassName, registerComposition, removeAdapter, setAdapter, setAdapterIfNotSet };\n","export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"Attribute\"] = \"attribute\";\n SelectorType[\"Pseudo\"] = \"pseudo\";\n SelectorType[\"PseudoElement\"] = \"pseudo-element\";\n SelectorType[\"Tag\"] = \"tag\";\n SelectorType[\"Universal\"] = \"universal\";\n // Traversals\n SelectorType[\"Adjacent\"] = \"adjacent\";\n SelectorType[\"Child\"] = \"child\";\n SelectorType[\"Descendant\"] = \"descendant\";\n SelectorType[\"Parent\"] = \"parent\";\n SelectorType[\"Sibling\"] = \"sibling\";\n SelectorType[\"ColumnCombinator\"] = \"column-combinator\";\n})(SelectorType || (SelectorType = {}));\n/**\n * Modes for ignore case.\n *\n * This could be updated to an enum, and the object is\n * the current stand-in that will allow code to be updated\n * without big changes.\n */\nexport const IgnoreCaseMode = {\n Unknown: null,\n QuirksMode: \"quirks\",\n IgnoreCase: true,\n CaseSensitive: false,\n};\nexport var AttributeAction;\n(function (AttributeAction) {\n AttributeAction[\"Any\"] = \"any\";\n AttributeAction[\"Element\"] = \"element\";\n AttributeAction[\"End\"] = \"end\";\n AttributeAction[\"Equals\"] = \"equals\";\n AttributeAction[\"Exists\"] = \"exists\";\n AttributeAction[\"Hyphen\"] = \"hyphen\";\n AttributeAction[\"Not\"] = \"not\";\n AttributeAction[\"Start\"] = \"start\";\n})(AttributeAction || (AttributeAction = {}));\n","function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nexport { _taggedTemplateLiteral as _ };\n","import { SelectorType, AttributeAction, } from \"./types\";\nconst reName = /^[^\\\\#]?(?:\\\\(?:[\\da-f]{1,6}\\s?|.)|[\\w\\-\\u00b0-\\uFFFF])+/;\nconst reEscape = /\\\\([\\da-f]{1,6}\\s?|(\\s)|.)/gi;\nconst actionTypes = new Map([\n [126 /* Tilde */, AttributeAction.Element],\n [94 /* Circumflex */, AttributeAction.Start],\n [36 /* Dollar */, AttributeAction.End],\n [42 /* Asterisk */, AttributeAction.Any],\n [33 /* ExclamationMark */, AttributeAction.Not],\n [124 /* Pipe */, AttributeAction.Hyphen],\n]);\n// Pseudos, whose data property is parsed as well.\nconst unpackPseudos = new Set([\n \"has\",\n \"not\",\n \"matches\",\n \"is\",\n \"where\",\n \"host\",\n \"host-context\",\n]);\n/**\n * Checks whether a specific selector is a traversal.\n * This is useful eg. in swapping the order of elements that\n * are not traversals.\n *\n * @param selector Selector to check.\n */\nexport function isTraversal(selector) {\n switch (selector.type) {\n case SelectorType.Adjacent:\n case SelectorType.Child:\n case SelectorType.Descendant:\n case SelectorType.Parent:\n case SelectorType.Sibling:\n case SelectorType.ColumnCombinator:\n return true;\n default:\n return false;\n }\n}\nconst stripQuotesFromPseudos = new Set([\"contains\", \"icontains\"]);\n// Unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L152\nfunction funescape(_, escaped, escapedWhitespace) {\n const high = parseInt(escaped, 16) - 0x10000;\n // NaN means non-codepoint\n return high !== high || escapedWhitespace\n ? escaped\n : high < 0\n ? // BMP codepoint\n String.fromCharCode(high + 0x10000)\n : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00);\n}\nfunction unescapeCSS(str) {\n return str.replace(reEscape, funescape);\n}\nfunction isQuote(c) {\n return c === 39 /* SingleQuote */ || c === 34 /* DoubleQuote */;\n}\nfunction isWhitespace(c) {\n return (c === 32 /* Space */ ||\n c === 9 /* Tab */ ||\n c === 10 /* NewLine */ ||\n c === 12 /* FormFeed */ ||\n c === 13 /* CarriageReturn */);\n}\n/**\n * Parses `selector`, optionally with the passed `options`.\n *\n * @param selector Selector to parse.\n * @param options Options for parsing.\n * @returns Returns a two-dimensional array.\n * The first dimension represents selectors separated by commas (eg. `sub1, sub2`),\n * the second contains the relevant tokens for that selector.\n */\nexport function parse(selector) {\n const subselects = [];\n const endIndex = parseSelector(subselects, `${selector}`, 0);\n if (endIndex < selector.length) {\n throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`);\n }\n return subselects;\n}\nfunction parseSelector(subselects, selector, selectorIndex) {\n let tokens = [];\n function getName(offset) {\n const match = selector.slice(selectorIndex + offset).match(reName);\n if (!match) {\n throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);\n }\n const [name] = match;\n selectorIndex += offset + name.length;\n return unescapeCSS(name);\n }\n function stripWhitespace(offset) {\n selectorIndex += offset;\n while (selectorIndex < selector.length &&\n isWhitespace(selector.charCodeAt(selectorIndex))) {\n selectorIndex++;\n }\n }\n function readValueWithParenthesis() {\n selectorIndex += 1;\n const start = selectorIndex;\n let counter = 1;\n for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter++;\n }\n else if (selector.charCodeAt(selectorIndex) ===\n 41 /* RightParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter--;\n }\n }\n if (counter) {\n throw new Error(\"Parenthesis not matched\");\n }\n return unescapeCSS(selector.slice(start, selectorIndex - 1));\n }\n function isEscaped(pos) {\n let slashCount = 0;\n while (selector.charCodeAt(--pos) === 92 /* BackSlash */)\n slashCount++;\n return (slashCount & 1) === 1;\n }\n function ensureNotTraversal() {\n if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {\n throw new Error(\"Did not expect successive traversals.\");\n }\n }\n function addTraversal(type) {\n if (tokens.length > 0 &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens[tokens.length - 1].type = type;\n return;\n }\n ensureNotTraversal();\n tokens.push({ type });\n }\n function addSpecialAttribute(name, action) {\n tokens.push({\n type: SelectorType.Attribute,\n name,\n action,\n value: getName(1),\n namespace: null,\n ignoreCase: \"quirks\",\n });\n }\n /**\n * We have finished parsing the current part of the selector.\n *\n * Remove descendant tokens at the end if they exist,\n * and return the last index, so that parsing can be\n * picked up from here.\n */\n function finalizeSubselector() {\n if (tokens.length &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens.pop();\n }\n if (tokens.length === 0) {\n throw new Error(\"Empty sub-selector\");\n }\n subselects.push(tokens);\n }\n stripWhitespace(0);\n if (selector.length === selectorIndex) {\n return selectorIndex;\n }\n loop: while (selectorIndex < selector.length) {\n const firstChar = selector.charCodeAt(selectorIndex);\n switch (firstChar) {\n // Whitespace\n case 32 /* Space */:\n case 9 /* Tab */:\n case 10 /* NewLine */:\n case 12 /* FormFeed */:\n case 13 /* CarriageReturn */: {\n if (tokens.length === 0 ||\n tokens[0].type !== SelectorType.Descendant) {\n ensureNotTraversal();\n tokens.push({ type: SelectorType.Descendant });\n }\n stripWhitespace(1);\n break;\n }\n // Traversals\n case 62 /* GreaterThan */: {\n addTraversal(SelectorType.Child);\n stripWhitespace(1);\n break;\n }\n case 60 /* LessThan */: {\n addTraversal(SelectorType.Parent);\n stripWhitespace(1);\n break;\n }\n case 126 /* Tilde */: {\n addTraversal(SelectorType.Sibling);\n stripWhitespace(1);\n break;\n }\n case 43 /* Plus */: {\n addTraversal(SelectorType.Adjacent);\n stripWhitespace(1);\n break;\n }\n // Special attribute selectors: .class, #id\n case 46 /* Period */: {\n addSpecialAttribute(\"class\", AttributeAction.Element);\n break;\n }\n case 35 /* Hash */: {\n addSpecialAttribute(\"id\", AttributeAction.Equals);\n break;\n }\n case 91 /* LeftSquareBracket */: {\n stripWhitespace(1);\n // Determine attribute name and namespace\n let name;\n let namespace = null;\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */) {\n // Equivalent to no namespace\n name = getName(1);\n }\n else if (selector.startsWith(\"*|\", selectorIndex)) {\n namespace = \"*\";\n name = getName(2);\n }\n else {\n name = getName(0);\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n namespace = name;\n name = getName(1);\n }\n }\n stripWhitespace(0);\n // Determine comparison operation\n let action = AttributeAction.Exists;\n const possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));\n if (possibleAction) {\n action = possibleAction;\n if (selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n throw new Error(\"Expected `=`\");\n }\n stripWhitespace(2);\n }\n else if (selector.charCodeAt(selectorIndex) === 61 /* Equal */) {\n action = AttributeAction.Equals;\n stripWhitespace(1);\n }\n // Determine value\n let value = \"\";\n let ignoreCase = null;\n if (action !== \"exists\") {\n if (isQuote(selector.charCodeAt(selectorIndex))) {\n const quote = selector.charCodeAt(selectorIndex);\n let sectionEnd = selectorIndex + 1;\n while (sectionEnd < selector.length &&\n (selector.charCodeAt(sectionEnd) !== quote ||\n isEscaped(sectionEnd))) {\n sectionEnd += 1;\n }\n if (selector.charCodeAt(sectionEnd) !== quote) {\n throw new Error(\"Attribute value didn't end\");\n }\n value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));\n selectorIndex = sectionEnd + 1;\n }\n else {\n const valueStart = selectorIndex;\n while (selectorIndex < selector.length &&\n ((!isWhitespace(selector.charCodeAt(selectorIndex)) &&\n selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) ||\n isEscaped(selectorIndex))) {\n selectorIndex += 1;\n }\n value = unescapeCSS(selector.slice(valueStart, selectorIndex));\n }\n stripWhitespace(0);\n // See if we have a force ignore flag\n const forceIgnore = selector.charCodeAt(selectorIndex) | 0x20;\n // If the forceIgnore flag is set (either `i` or `s`), use that value\n if (forceIgnore === 115 /* LowerS */) {\n ignoreCase = false;\n stripWhitespace(1);\n }\n else if (forceIgnore === 105 /* LowerI */) {\n ignoreCase = true;\n stripWhitespace(1);\n }\n }\n if (selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) {\n throw new Error(\"Attribute selector didn't terminate\");\n }\n selectorIndex += 1;\n const attributeSelector = {\n type: SelectorType.Attribute,\n name,\n action,\n value,\n namespace,\n ignoreCase,\n };\n tokens.push(attributeSelector);\n break;\n }\n case 58 /* Colon */: {\n if (selector.charCodeAt(selectorIndex + 1) === 58 /* Colon */) {\n tokens.push({\n type: SelectorType.PseudoElement,\n name: getName(2).toLowerCase(),\n data: selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */\n ? readValueWithParenthesis()\n : null,\n });\n continue;\n }\n const name = getName(1).toLowerCase();\n let data = null;\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */) {\n if (unpackPseudos.has(name)) {\n if (isQuote(selector.charCodeAt(selectorIndex + 1))) {\n throw new Error(`Pseudo-selector ${name} cannot be quoted`);\n }\n data = [];\n selectorIndex = parseSelector(data, selector, selectorIndex + 1);\n if (selector.charCodeAt(selectorIndex) !==\n 41 /* RightParenthesis */) {\n throw new Error(`Missing closing parenthesis in :${name} (${selector})`);\n }\n selectorIndex += 1;\n }\n else {\n data = readValueWithParenthesis();\n if (stripQuotesFromPseudos.has(name)) {\n const quot = data.charCodeAt(0);\n if (quot === data.charCodeAt(data.length - 1) &&\n isQuote(quot)) {\n data = data.slice(1, -1);\n }\n }\n data = unescapeCSS(data);\n }\n }\n tokens.push({ type: SelectorType.Pseudo, name, data });\n break;\n }\n case 44 /* Comma */: {\n finalizeSubselector();\n tokens = [];\n stripWhitespace(1);\n break;\n }\n default: {\n if (selector.startsWith(\"/*\", selectorIndex)) {\n const endIndex = selector.indexOf(\"*/\", selectorIndex + 2);\n if (endIndex < 0) {\n throw new Error(\"Comment was not terminated\");\n }\n selectorIndex = endIndex + 2;\n // Remove leading whitespace\n if (tokens.length === 0) {\n stripWhitespace(0);\n }\n break;\n }\n let namespace = null;\n let name;\n if (firstChar === 42 /* Asterisk */) {\n selectorIndex += 1;\n name = \"*\";\n }\n else if (firstChar === 124 /* Pipe */) {\n name = \"\";\n if (selector.charCodeAt(selectorIndex + 1) === 124 /* Pipe */) {\n addTraversal(SelectorType.ColumnCombinator);\n stripWhitespace(2);\n break;\n }\n }\n else if (reName.test(selector.slice(selectorIndex))) {\n name = getName(0);\n }\n else {\n break loop;\n }\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !== 124 /* Pipe */) {\n namespace = name;\n if (selector.charCodeAt(selectorIndex + 1) ===\n 42 /* Asterisk */) {\n name = \"*\";\n selectorIndex += 2;\n }\n else {\n name = getName(1);\n }\n }\n tokens.push(name === \"*\"\n ? { type: SelectorType.Universal, namespace }\n : { type: SelectorType.Tag, name, namespace });\n }\n }\n }\n finalizeSubselector();\n return selectorIndex;\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nconst dedent = createDedent({});\nexport default dedent;\nfunction createDedent(options) {\n dedent.withOptions = newOptions => createDedent(_objectSpread(_objectSpread({}, options), newOptions));\n return dedent;\n function dedent(strings, ...values) {\n const raw = typeof strings === \"string\" ? [strings] : strings.raw;\n const {\n escapeSpecialCharacters = Array.isArray(strings)\n } = options;\n\n // first, perform interpolation\n let result = \"\";\n for (let i = 0; i < raw.length; i++) {\n let next = raw[i];\n if (escapeSpecialCharacters) {\n // handle escaped newlines, backticks, and interpolation characters\n next = next.replace(/\\\\\\n[ \\t]*/g, \"\").replace(/\\\\`/g, \"`\").replace(/\\\\\\$/g, \"$\").replace(/\\\\\\{/g, \"{\");\n }\n result += next;\n if (i < values.length) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n result += values[i];\n }\n }\n\n // now strip indentation\n const lines = result.split(\"\\n\");\n let mindent = null;\n for (const l of lines) {\n const m = l.match(/^(\\s+)\\S+/);\n if (m) {\n const indent = m[1].length;\n if (!mindent) {\n // this is the first indented line\n mindent = indent;\n } else {\n mindent = Math.min(mindent, indent);\n }\n }\n }\n if (mindent !== null) {\n const m = mindent; // appease TypeScript\n result = lines\n // https://github.com/typescript-eslint/typescript-eslint/issues/7140\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n .map(l => l[0] === \" \" || l[0] === \"\\t\" ? l.slice(m) : l).join(\"\\n\");\n }\n\n // dedent eats leading and trailing whitespace too\n result = result.trim();\n if (escapeSpecialCharacters) {\n // handle escaped newlines at the end to ensure they don't get stripped too\n result = result.replace(/\\\\n/g, \"\\n\");\n }\n return result;\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __read } from \"tslib\";\nvar weirdNewlines = /(\\u000D|\\u000C|\\u000D\\u000A)/g;\nvar nullOrSurrogates = /[\\u0000\\uD800-\\uDFFF]/g;\nvar commentRegex = /(\\/\\*)[\\s\\S]*?(\\*\\/)/g;\nexport var lexicalAnalysis = function (str, index) {\n if (index === void 0) { index = 0; }\n str = str.replace(weirdNewlines, '\\n').replace(nullOrSurrogates, '\\uFFFD');\n str = str.replace(commentRegex, '');\n var tokens = [];\n for (; index < str.length; index += 1) {\n var code = str.charCodeAt(index);\n if (code === 0x0009 || code === 0x0020 || code === 0x000a) {\n var code_1 = str.charCodeAt(++index);\n while (code_1 === 0x0009 || code_1 === 0x0020 || code_1 === 0x000a) {\n code_1 = str.charCodeAt(++index);\n }\n index -= 1;\n tokens.push({\n type: ''\n });\n }\n else if (code === 0x0022) {\n var result = consumeString(str, index);\n if (result === null) {\n return null;\n }\n var _a = __read(result, 2), lastIndex = _a[0], value = _a[1];\n tokens.push({\n type: '',\n value: value\n });\n index = lastIndex;\n }\n else if (code === 0x0023) {\n if (index + 1 < str.length) {\n var nextCode = str.charCodeAt(index + 1);\n if (nextCode === 0x005f ||\n (nextCode >= 0x0041 && nextCode <= 0x005a) ||\n (nextCode >= 0x0061 && nextCode <= 0x007a) ||\n nextCode >= 0x0080 ||\n (nextCode >= 0x0030 && nextCode <= 0x0039) ||\n (nextCode === 0x005c &&\n index + 2 < str.length &&\n str.charCodeAt(index + 2) !== 0x000a)) {\n var flag = wouldStartIdentifier(str, index + 1)\n ? 'id'\n : 'unrestricted';\n var result = consumeIdentUnsafe(str, index + 1);\n if (result !== null) {\n var _b = __read(result, 2), lastIndex = _b[0], value = _b[1];\n tokens.push({\n type: '',\n value: value.toLowerCase(),\n flag: flag\n });\n index = lastIndex;\n continue;\n }\n }\n }\n tokens.push({ type: '', value: code });\n }\n else if (code === 0x0027) {\n var result = consumeString(str, index);\n if (result === null) {\n return null;\n }\n var _c = __read(result, 2), lastIndex = _c[0], value = _c[1];\n tokens.push({\n type: '',\n value: value\n });\n index = lastIndex;\n }\n else if (code === 0x0028) {\n tokens.push({ type: '<(-token>' });\n }\n else if (code === 0x0029) {\n tokens.push({ type: '<)-token>' });\n }\n else if (code === 0x002b) {\n var plusNumeric = consumeNumeric(str, index);\n if (plusNumeric === null) {\n tokens.push({\n type: '',\n value: code\n });\n }\n else {\n var _d = __read(plusNumeric, 2), lastIndex = _d[0], tokenTuple = _d[1];\n if (tokenTuple[0] === '') {\n tokens.push({\n type: '',\n value: tokenTuple[1],\n unit: tokenTuple[2].toLowerCase(),\n flag: 'number'\n });\n }\n else if (tokenTuple[0] === '') {\n tokens.push({\n type: tokenTuple[0],\n value: tokenTuple[1],\n flag: tokenTuple[2]\n });\n }\n else {\n tokens.push({\n type: tokenTuple[0],\n value: tokenTuple[1],\n flag: 'number'\n });\n }\n index = lastIndex;\n }\n }\n else if (code === 0x002c) {\n tokens.push({ type: '' });\n }\n else if (code === 0x002d) {\n var minusNumeric = consumeNumeric(str, index);\n if (minusNumeric !== null) {\n var _e = __read(minusNumeric, 2), lastIndex = _e[0], tokenTuple = _e[1];\n if (tokenTuple[0] === '') {\n tokens.push({\n type: '',\n value: tokenTuple[1],\n unit: tokenTuple[2].toLowerCase(),\n flag: 'number'\n });\n }\n else if (tokenTuple[0] === '') {\n tokens.push({\n type: tokenTuple[0],\n value: tokenTuple[1],\n flag: tokenTuple[2]\n });\n }\n else {\n tokens.push({\n type: tokenTuple[0],\n value: tokenTuple[1],\n flag: 'number'\n });\n }\n index = lastIndex;\n continue;\n }\n if (index + 2 < str.length) {\n var nextCode = str.charCodeAt(index + 1);\n var nextNextCode = str.charCodeAt(index + 2);\n if (nextCode === 0x002d && nextNextCode === 0x003e) {\n tokens.push({\n type: ''\n });\n index += 2;\n continue;\n }\n }\n var result = consumeIdentLike(str, index);\n if (result !== null) {\n var _f = __read(result, 3), lastIndex = _f[0], value = _f[1], type = _f[2];\n tokens.push({\n type: type,\n value: value\n });\n index = lastIndex;\n continue;\n }\n tokens.push({\n type: '',\n value: code\n });\n }\n else if (code === 0x002e) {\n var minusNumeric = consumeNumeric(str, index);\n if (minusNumeric === null) {\n tokens.push({\n type: '',\n value: code\n });\n }\n else {\n var _g = __read(minusNumeric, 2), lastIndex = _g[0], tokenTuple = _g[1];\n if (tokenTuple[0] === '') {\n tokens.push({\n type: '',\n value: tokenTuple[1],\n unit: tokenTuple[2].toLowerCase(),\n flag: 'number'\n });\n }\n else if (tokenTuple[0] === '') {\n tokens.push({\n type: tokenTuple[0],\n value: tokenTuple[1],\n flag: tokenTuple[2]\n });\n }\n else {\n tokens.push({\n type: tokenTuple[0],\n value: tokenTuple[1],\n flag: 'number'\n });\n }\n index = lastIndex;\n continue;\n }\n }\n else if (code === 0x003a) {\n tokens.push({ type: '' });\n }\n else if (code === 0x003b) {\n tokens.push({ type: '' });\n }\n else if (code === 0x003c) {\n if (index + 3 < str.length) {\n var nextCode = str.charCodeAt(index + 1);\n var nextNextCode = str.charCodeAt(index + 2);\n var nextNextNextCode = str.charCodeAt(index + 3);\n if (nextCode === 0x0021 &&\n nextNextCode === 0x002d &&\n nextNextNextCode === 0x002d) {\n tokens.push({\n type: ''\n });\n index += 3;\n continue;\n }\n }\n tokens.push({\n type: '',\n value: code\n });\n }\n else if (code === 0x0040) {\n var result = consumeIdent(str, index + 1);\n if (result !== null) {\n var _h = __read(result, 2), lastIndex = _h[0], value = _h[1];\n tokens.push({\n type: '',\n value: value.toLowerCase()\n });\n index = lastIndex;\n continue;\n }\n tokens.push({ type: '', value: code });\n }\n else if (code === 0x005b) {\n tokens.push({ type: '<[-token>' });\n }\n else if (code === 0x005c) {\n var result = consumeEscape(str, index);\n if (result === null) {\n return null;\n }\n var _j = __read(result, 2), lastIndex = _j[0], value = _j[1];\n str = str.slice(0, index) + value + str.slice(lastIndex + 1);\n index -= 1;\n }\n else if (code === 0x005d) {\n tokens.push({ type: '<]-token>' });\n }\n else if (code === 0x007b) {\n tokens.push({ type: '<{-token>' });\n }\n else if (code === 0x007d) {\n tokens.push({ type: '<}-token>' });\n }\n else if (code >= 0x0030 && code <= 0x0039) {\n var result = consumeNumeric(str, index);\n var _k = __read(result, 2), lastIndex = _k[0], tokenTuple = _k[1];\n if (tokenTuple[0] === '') {\n tokens.push({\n type: '',\n value: tokenTuple[1],\n unit: tokenTuple[2].toLowerCase(),\n flag: 'number'\n });\n }\n else if (tokenTuple[0] === '') {\n tokens.push({\n type: tokenTuple[0],\n value: tokenTuple[1],\n flag: tokenTuple[2]\n });\n }\n else {\n tokens.push({\n type: tokenTuple[0],\n value: tokenTuple[1],\n flag: 'number'\n });\n }\n index = lastIndex;\n }\n else if (code === 0x005f ||\n (code >= 0x0041 && code <= 0x005a) ||\n (code >= 0x0061 && code <= 0x007a) ||\n code >= 0x0080) {\n var result = consumeIdentLike(str, index);\n if (result === null) {\n return null;\n }\n var _l = __read(result, 3), lastIndex = _l[0], value = _l[1], type = _l[2];\n tokens.push({\n type: type,\n value: value\n });\n index = lastIndex;\n }\n else {\n tokens.push({ type: '', value: code });\n }\n }\n tokens.push({ type: '' });\n return tokens;\n};\nexport var consumeString = function (str, index) {\n if (str.length <= index + 1)\n return null;\n var firstCode = str.charCodeAt(index);\n var charCodes = [];\n for (var i = index + 1; i < str.length; i += 1) {\n var code = str.charCodeAt(i);\n if (code === firstCode) {\n return [i, String.fromCharCode.apply(null, charCodes)];\n }\n else if (code === 0x005c) {\n var result = consumeEscape(str, i);\n if (result === null)\n return null;\n var _a = __read(result, 2), lastIndex = _a[0], charCode = _a[1];\n charCodes.push(charCode);\n i = lastIndex;\n }\n else if (code === 0x000a) {\n return null;\n }\n else {\n charCodes.push(code);\n }\n }\n return null;\n};\nexport var wouldStartIdentifier = function (str, index) {\n if (str.length <= index)\n return false;\n var code = str.charCodeAt(index);\n if (code === 0x002d) {\n if (str.length <= index + 1)\n return false;\n var nextCode = str.charCodeAt(index + 1);\n if (nextCode === 0x002d ||\n nextCode === 0x005f ||\n (nextCode >= 0x0041 && nextCode <= 0x005a) ||\n (nextCode >= 0x0061 && nextCode <= 0x007a) ||\n nextCode >= 0x0080) {\n return true;\n }\n else if (nextCode === 0x005c) {\n if (str.length <= index + 2)\n return false;\n var nextNextCode = str.charCodeAt(index + 2);\n return nextNextCode !== 0x000a;\n }\n else {\n return false;\n }\n }\n else if (code === 0x005f ||\n (code >= 0x0041 && code <= 0x005a) ||\n (code >= 0x0061 && code <= 0x007a) ||\n code >= 0x0080) {\n return true;\n }\n else if (code === 0x005c) {\n if (str.length <= index + 1)\n return false;\n var nextCode = str.charCodeAt(index + 1);\n return nextCode !== 0x000a;\n }\n else {\n return false;\n }\n};\nexport var consumeEscape = function (str, index) {\n if (str.length <= index + 1)\n return null;\n if (str.charCodeAt(index) !== 0x005c)\n return null;\n var code = str.charCodeAt(index + 1);\n if (code === 0x000a) {\n return null;\n }\n else if ((code >= 0x0030 && code <= 0x0039) ||\n (code >= 0x0041 && code <= 0x0046) ||\n (code >= 0x0061 && code <= 0x0066)) {\n var hexCharCodes = [code];\n var min = Math.min(index + 7, str.length);\n var i = index + 2;\n for (; i < min; i += 1) {\n var code_2 = str.charCodeAt(i);\n if ((code_2 >= 0x0030 && code_2 <= 0x0039) ||\n (code_2 >= 0x0041 && code_2 <= 0x0046) ||\n (code_2 >= 0x0061 && code_2 <= 0x0066)) {\n hexCharCodes.push(code_2);\n }\n else {\n break;\n }\n }\n if (i < str.length) {\n var code_3 = str.charCodeAt(i);\n if (code_3 === 0x0009 || code_3 === 0x0020 || code_3 === 0x000a) {\n i += 1;\n }\n }\n return [i - 1, parseInt(String.fromCharCode.apply(null, hexCharCodes), 16)];\n }\n else {\n return [index + 1, code];\n }\n};\nexport var consumeNumeric = function (str, index) {\n var numberResult = consumeNumber(str, index);\n if (numberResult === null)\n return null;\n var _a = __read(numberResult, 3), numberEndIndex = _a[0], numberValue = _a[1], numberFlag = _a[2];\n var identResult = consumeIdent(str, numberEndIndex + 1);\n if (identResult !== null) {\n var _b = __read(identResult, 2), identEndIndex = _b[0], identValue = _b[1];\n return [identEndIndex, ['', numberValue, identValue]];\n }\n if (numberEndIndex + 1 < str.length &&\n str.charCodeAt(numberEndIndex + 1) === 0x0025) {\n return [numberEndIndex + 1, ['', numberValue]];\n }\n return [numberEndIndex, ['', numberValue, numberFlag]];\n};\nexport var consumeNumber = function (str, index) {\n if (str.length <= index)\n return null;\n var flag = 'integer';\n var numberChars = [];\n var firstCode = str.charCodeAt(index);\n if (firstCode === 0x002b || firstCode === 0x002d) {\n index += 1;\n if (firstCode === 0x002d)\n numberChars.push(0x002d);\n }\n while (index < str.length) {\n var code = str.charCodeAt(index);\n if (code >= 0x0030 && code <= 0x0039) {\n numberChars.push(code);\n index += 1;\n }\n else {\n break;\n }\n }\n if (index + 1 < str.length) {\n var nextCode = str.charCodeAt(index);\n var nextNextCode = str.charCodeAt(index + 1);\n if (nextCode === 0x002e &&\n nextNextCode >= 0x0030 &&\n nextNextCode <= 0x0039) {\n numberChars.push(nextCode, nextNextCode);\n flag = 'number';\n index += 2;\n while (index < str.length) {\n var code = str.charCodeAt(index);\n if (code >= 0x0030 && code <= 0x0039) {\n numberChars.push(code);\n index += 1;\n }\n else {\n break;\n }\n }\n }\n }\n if (index + 1 < str.length) {\n var nextCode = str.charCodeAt(index);\n var nextNextCode = str.charCodeAt(index + 1);\n var nextNextNextCode = str.charCodeAt(index + 2);\n if (nextCode === 0x0045 || nextCode === 0x0065) {\n var nextNextIsDigit = nextNextCode >= 0x0030 && nextNextCode <= 0x0039;\n if (nextNextIsDigit ||\n ((nextNextCode === 0x002b || nextNextCode === 0x002d) &&\n nextNextNextCode >= 0x0030 &&\n nextNextNextCode <= 0x0039)) {\n flag = 'number';\n if (nextNextIsDigit) {\n numberChars.push(0x0045, nextNextCode);\n index += 2;\n }\n else if (nextNextCode === 0x002d) {\n numberChars.push(0x0045, 0x002d, nextNextNextCode);\n index += 3;\n }\n else {\n numberChars.push(0x0045, nextNextNextCode);\n index += 3;\n }\n while (index < str.length) {\n var code = str.charCodeAt(index);\n if (code >= 0x0030 && code <= 0x0039) {\n numberChars.push(code);\n index += 1;\n }\n else {\n break;\n }\n }\n }\n }\n }\n var numberString = String.fromCharCode.apply(null, numberChars);\n var value = flag === 'number' ? parseFloat(numberString) : parseInt(numberString);\n if (value === -0)\n value = 0;\n return Number.isNaN(value) ? null : [index - 1, value, flag];\n};\nexport var consumeIdentUnsafe = function (str, index) {\n if (str.length <= index) {\n return null;\n }\n var identChars = [];\n for (var code = str.charCodeAt(index); index < str.length; code = str.charCodeAt(++index)) {\n if (code === 0x002d ||\n code === 0x005f ||\n (code >= 0x0041 && code <= 0x005a) ||\n (code >= 0x0061 && code <= 0x007a) ||\n code >= 0x0080 ||\n (code >= 0x0030 && code <= 0x0039)) {\n identChars.push(code);\n continue;\n }\n else {\n var result = consumeEscape(str, index);\n if (result !== null) {\n var _a = __read(result, 2), lastIndex = _a[0], code_4 = _a[1];\n identChars.push(code_4);\n index = lastIndex;\n continue;\n }\n }\n break;\n }\n return index === 0\n ? null\n : [index - 1, String.fromCharCode.apply(null, identChars)];\n};\nexport var consumeIdent = function (str, index) {\n if (str.length <= index || !wouldStartIdentifier(str, index)) {\n return null;\n }\n var identChars = [];\n for (var code = str.charCodeAt(index); index < str.length; code = str.charCodeAt(++index)) {\n if (code === 0x002d ||\n code === 0x005f ||\n (code >= 0x0041 && code <= 0x005a) ||\n (code >= 0x0061 && code <= 0x007a) ||\n code >= 0x0080 ||\n (code >= 0x0030 && code <= 0x0039)) {\n identChars.push(code);\n continue;\n }\n else {\n var result = consumeEscape(str, index);\n if (result !== null) {\n var _a = __read(result, 2), lastIndex = _a[0], code_5 = _a[1];\n identChars.push(code_5);\n index = lastIndex;\n continue;\n }\n }\n break;\n }\n return [index - 1, String.fromCharCode.apply(null, identChars)];\n};\nexport var consumeUrl = function (str, index) {\n var code = str.charCodeAt(index);\n while (code === 0x0009 || code === 0x0020 || code === 0x000a) {\n code = str.charCodeAt(++index);\n }\n var urlChars = [];\n var hasFinishedWord = false;\n while (index < str.length) {\n if (code === 0x0029) {\n return [index, String.fromCharCode.apply(null, urlChars)];\n }\n else if (code === 0x0022 || code === 0x0027 || code === 0x0028) {\n return null;\n }\n else if (code === 0x0009 || code === 0x0020 || code === 0x000a) {\n if (!hasFinishedWord && urlChars.length !== 0)\n hasFinishedWord = true;\n }\n else if (code === 0x005c) {\n var result = consumeEscape(str, index);\n if (result === null || hasFinishedWord)\n return null;\n var _a = __read(result, 2), lastIndex = _a[0], value = _a[1];\n urlChars.push(value);\n index = lastIndex;\n }\n else {\n if (hasFinishedWord)\n return null;\n urlChars.push(code);\n }\n code = str.charCodeAt(++index);\n }\n return null;\n};\nexport var consumeIdentLike = function (str, index) {\n var result = consumeIdent(str, index);\n if (result === null)\n return null;\n var _a = __read(result, 2), lastIndex = _a[0], value = _a[1];\n if (value.toLowerCase() === 'url') {\n if (str.length > lastIndex + 1) {\n var nextCode = str.charCodeAt(lastIndex + 1);\n if (nextCode === 0x0028) {\n for (var offset = 2; lastIndex + offset < str.length; offset += 1) {\n var nextNextCode = str.charCodeAt(lastIndex + offset);\n if (nextNextCode === 0x0022 || nextNextCode === 0x0027) {\n return [lastIndex + 1, value.toLowerCase(), ''];\n }\n else if (nextNextCode !== 0x0009 &&\n nextNextCode !== 0x0020 &&\n nextNextCode !== 0x000a) {\n var result_1 = consumeUrl(str, lastIndex + offset);\n if (result_1 === null)\n return null;\n var _b = __read(result_1, 2), lastUrlIndex = _b[0], value_1 = _b[1];\n return [lastUrlIndex, value_1, ''];\n }\n }\n return [lastIndex + 1, value.toLowerCase(), ''];\n }\n }\n }\n else if (str.length > lastIndex + 1) {\n var nextCode = str.charCodeAt(lastIndex + 1);\n if (nextCode === 0x0028) {\n return [lastIndex + 1, value.toLowerCase(), ''];\n }\n }\n return [lastIndex, value.toLowerCase(), ''];\n};\n//# sourceMappingURL=lexicalAnalysis.js.map","import { getVarName } from '@vanilla-extract/private';\nimport cssesc from 'cssesc';\nimport AhoCorasick from 'modern-ahocorasick';\nimport { markCompositionUsed } from '../adapter/dist/vanilla-extract-css-adapter.browser.esm.js';\nimport { _ as _taggedTemplateLiteral } from './taggedTemplateLiteral-8e47dbd7.browser.esm.js';\nimport { parse } from 'css-what';\nimport dedent from 'dedent';\nimport { toAST } from 'media-query-parser';\n\nfunction toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\n\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : String(i);\n}\n\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\n\nfunction forEach(obj, fn) {\n for (var _key in obj) {\n fn(obj[_key], _key);\n }\n}\nfunction omit(obj, omitKeys) {\n var result = {};\n for (var _key2 in obj) {\n if (omitKeys.indexOf(_key2) === -1) {\n result[_key2] = obj[_key2];\n }\n }\n return result;\n}\nfunction mapKeys(obj, fn) {\n var result = {};\n for (var _key3 in obj) {\n result[fn(obj[_key3], _key3)] = obj[_key3];\n }\n return result;\n}\nfunction composeStylesIntoSet(set) {\n for (var _len = arguments.length, classNames = new Array(_len > 1 ? _len - 1 : 0), _key5 = 1; _key5 < _len; _key5++) {\n classNames[_key5 - 1] = arguments[_key5];\n }\n for (var className of classNames) {\n if (className.length === 0) {\n continue;\n }\n if (typeof className === 'string') {\n if (className.includes(' ')) {\n composeStylesIntoSet(set, ...className.trim().split(' '));\n } else {\n set.add(className);\n }\n } else if (Array.isArray(className)) {\n composeStylesIntoSet(set, ...className);\n }\n }\n}\nfunction dudupeAndJoinClassList(classNames) {\n var set = new Set();\n composeStylesIntoSet(set, ...classNames);\n return Array.from(set).join(' ');\n}\n\nvar _templateObject$1;\n\n// https://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction escapeRegex(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\nvar validateSelector = (selector, targetClassName) => {\n var replaceTarget = () => {\n var targetRegex = new RegExp(\".\".concat(escapeRegex(cssesc(targetClassName, {\n isIdentifier: true\n }))), 'g');\n return selector.replace(targetRegex, '&');\n };\n var selectorParts;\n try {\n selectorParts = parse(selector);\n } catch (err) {\n throw new Error(\"Invalid selector: \".concat(replaceTarget()));\n }\n selectorParts.forEach(tokens => {\n try {\n for (var i = tokens.length - 1; i >= -1; i--) {\n if (!tokens[i]) {\n throw new Error();\n }\n var token = tokens[i];\n if (token.type === 'child' || token.type === 'parent' || token.type === 'sibling' || token.type === 'adjacent' || token.type === 'descendant') {\n throw new Error();\n }\n if (token.type === 'attribute' && token.name === 'class' && token.value === targetClassName) {\n return; // Found it\n }\n }\n } catch (err) {\n throw new Error(dedent(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral([\"\\n Invalid selector: \", \"\\n \\n Style selectors must target the '&' character (along with any modifiers), e.g. \", \" or \", \".\\n \\n This is to ensure that each style block only affects the styling of a single class.\\n \\n If your selector is targeting another class, you should move it to the style definition for that class, e.g. given we have styles for 'parent' and 'child' elements, instead of adding a selector of \", \") to 'parent', you should add \", \" to 'child').\\n \\n If your selector is targeting something global, use the 'globalStyle' function instead, e.g. if you wanted to write \", \", you should instead write 'globalStyle(\", \", { ... })'\\n \"])), replaceTarget(), '`${parent} &`', '`${parent} &:hover`', '`& ${child}`', '`${parent} &`', '`& h1`', '`${parent} h1`'));\n }\n });\n};\n\n/** e.g. @media screen and (min-width: 500px) */\n\nclass ConditionalRuleset {\n /**\n * Stores information about where conditions must be in relation to other conditions\n *\n * e.g. mobile -> tablet, desktop\n */\n\n constructor() {\n this.ruleset = new Map();\n this.precedenceLookup = new Map();\n }\n findOrCreateCondition(conditionQuery) {\n var targetCondition = this.ruleset.get(conditionQuery);\n if (!targetCondition) {\n // No target condition so create one\n targetCondition = {\n query: conditionQuery,\n rules: [],\n children: new ConditionalRuleset()\n };\n this.ruleset.set(conditionQuery, targetCondition);\n }\n return targetCondition;\n }\n getConditionalRulesetByPath(conditionPath) {\n var currRuleset = this;\n for (var query of conditionPath) {\n var condition = currRuleset.findOrCreateCondition(query);\n currRuleset = condition.children;\n }\n return currRuleset;\n }\n addRule(rule, conditionQuery, conditionPath) {\n var ruleset = this.getConditionalRulesetByPath(conditionPath);\n var targetCondition = ruleset.findOrCreateCondition(conditionQuery);\n if (!targetCondition) {\n throw new Error('Failed to add conditional rule');\n }\n targetCondition.rules.push(rule);\n }\n addConditionPrecedence(conditionPath, conditionOrder) {\n var ruleset = this.getConditionalRulesetByPath(conditionPath);\n for (var i = 0; i < conditionOrder.length; i++) {\n var _ruleset$precedenceLo;\n var query = conditionOrder[i];\n var conditionPrecedence = (_ruleset$precedenceLo = ruleset.precedenceLookup.get(query)) !== null && _ruleset$precedenceLo !== void 0 ? _ruleset$precedenceLo : new Set();\n for (var lowerPrecedenceCondition of conditionOrder.slice(i + 1)) {\n conditionPrecedence.add(lowerPrecedenceCondition);\n }\n ruleset.precedenceLookup.set(query, conditionPrecedence);\n }\n }\n isCompatible(incomingRuleset) {\n for (var [condition, orderPrecedence] of this.precedenceLookup.entries()) {\n for (var lowerPrecedenceCondition of orderPrecedence) {\n var _incomingRuleset$prec;\n if ((_incomingRuleset$prec = incomingRuleset.precedenceLookup.get(lowerPrecedenceCondition)) !== null && _incomingRuleset$prec !== void 0 && _incomingRuleset$prec.has(condition)) {\n return false;\n }\n }\n }\n\n // Check that children are compatible\n for (var {\n query,\n children\n } of incomingRuleset.ruleset.values()) {\n var matchingCondition = this.ruleset.get(query);\n if (matchingCondition && !matchingCondition.children.isCompatible(children)) {\n return false;\n }\n }\n return true;\n }\n merge(incomingRuleset) {\n // Merge rulesets into one array\n for (var {\n query,\n rules,\n children\n } of incomingRuleset.ruleset.values()) {\n var matchingCondition = this.ruleset.get(query);\n if (matchingCondition) {\n matchingCondition.rules.push(...rules);\n matchingCondition.children.merge(children);\n } else {\n this.ruleset.set(query, {\n query,\n rules,\n children\n });\n }\n }\n\n // Merge order precedences\n for (var [condition, incomingOrderPrecedence] of incomingRuleset.precedenceLookup.entries()) {\n var _this$precedenceLooku;\n var orderPrecedence = (_this$precedenceLooku = this.precedenceLookup.get(condition)) !== null && _this$precedenceLooku !== void 0 ? _this$precedenceLooku : new Set();\n this.precedenceLookup.set(condition, new Set([...orderPrecedence, ...incomingOrderPrecedence]));\n }\n }\n\n /**\n * Merge another ConditionalRuleset into this one if they are compatible\n *\n * @returns true if successful, false if the ruleset is incompatible\n */\n mergeIfCompatible(incomingRuleset) {\n if (!this.isCompatible(incomingRuleset)) {\n return false;\n }\n this.merge(incomingRuleset);\n return true;\n }\n getSortedRuleset() {\n var _this = this;\n var sortedRuleset = [];\n\n // Loop through all queries and add them to the sorted ruleset\n var _loop = function _loop(dependents) {\n var conditionForQuery = _this.ruleset.get(query);\n if (!conditionForQuery) {\n throw new Error(\"Can't find condition for \".concat(query));\n }\n\n // Find the location of the first dependent condition in the sortedRuleset\n // A dependent condition is a condition that must be placed *after* the current one\n var firstMatchingDependent = sortedRuleset.findIndex(condition => dependents.has(condition.query));\n if (firstMatchingDependent > -1) {\n // Insert the condition before the dependent one\n sortedRuleset.splice(firstMatchingDependent, 0, conditionForQuery);\n } else {\n // No match, just insert at the end\n sortedRuleset.push(conditionForQuery);\n }\n };\n for (var [query, dependents] of this.precedenceLookup.entries()) {\n _loop(dependents);\n }\n return sortedRuleset;\n }\n renderToArray() {\n var arr = [];\n for (var {\n query,\n rules,\n children\n } of this.getSortedRuleset()) {\n var selectors = {};\n for (var rule of rules) {\n selectors[rule.selector] = _objectSpread2(_objectSpread2({}, selectors[rule.selector]), rule.rule);\n }\n Object.assign(selectors, ...children.renderToArray());\n arr.push({\n [query]: selectors\n });\n }\n return arr;\n }\n}\n\nvar simplePseudoMap = {\n ':-moz-any-link': true,\n ':-moz-full-screen': true,\n ':-moz-placeholder': true,\n ':-moz-read-only': true,\n ':-moz-read-write': true,\n ':-ms-fullscreen': true,\n ':-ms-input-placeholder': true,\n ':-webkit-any-link': true,\n ':-webkit-full-screen': true,\n '::-moz-color-swatch': true,\n '::-moz-list-bullet': true,\n '::-moz-list-number': true,\n '::-moz-page-sequence': true,\n '::-moz-page': true,\n '::-moz-placeholder': true,\n '::-moz-progress-bar': true,\n '::-moz-range-progress': true,\n '::-moz-range-thumb': true,\n '::-moz-range-track': true,\n '::-moz-scrolled-page-sequence': true,\n '::-moz-selection': true,\n '::-ms-backdrop': true,\n '::-ms-browse': true,\n '::-ms-check': true,\n '::-ms-clear': true,\n '::-ms-fill-lower': true,\n '::-ms-fill-upper': true,\n '::-ms-fill': true,\n '::-ms-reveal': true,\n '::-ms-thumb': true,\n '::-ms-ticks-after': true,\n '::-ms-ticks-before': true,\n '::-ms-tooltip': true,\n '::-ms-track': true,\n '::-ms-value': true,\n '::-webkit-backdrop': true,\n '::-webkit-calendar-picker-indicator': true,\n '::-webkit-inner-spin-button': true,\n '::-webkit-input-placeholder': true,\n '::-webkit-meter-bar': true,\n '::-webkit-meter-even-less-good-value': true,\n '::-webkit-meter-inner-element': true,\n '::-webkit-meter-optimum-value': true,\n '::-webkit-meter-suboptimum-value': true,\n '::-webkit-outer-spin-button': true,\n '::-webkit-progress-bar': true,\n '::-webkit-progress-inner-element': true,\n '::-webkit-progress-inner-value': true,\n '::-webkit-progress-value': true,\n '::-webkit-resizer': true,\n '::-webkit-scrollbar-button': true,\n '::-webkit-scrollbar-corner': true,\n '::-webkit-scrollbar-thumb': true,\n '::-webkit-scrollbar-track-piece': true,\n '::-webkit-scrollbar-track': true,\n '::-webkit-scrollbar': true,\n '::-webkit-search-cancel-button': true,\n '::-webkit-search-results-button': true,\n '::-webkit-slider-runnable-track': true,\n '::-webkit-slider-thumb': true,\n '::after': true,\n '::backdrop': true,\n '::before': true,\n '::cue': true,\n '::file-selector-button': true,\n '::first-letter': true,\n '::first-line': true,\n '::grammar-error': true,\n '::marker': true,\n '::placeholder': true,\n '::selection': true,\n '::spelling-error': true,\n '::target-text': true,\n '::view-transition-group': true,\n '::view-transition-image-pair': true,\n '::view-transition-new': true,\n '::view-transition-old': true,\n '::view-transition': true,\n ':active': true,\n ':after': true,\n ':any-link': true,\n ':before': true,\n ':blank': true,\n ':checked': true,\n ':default': true,\n ':defined': true,\n ':disabled': true,\n ':empty': true,\n ':enabled': true,\n ':first-child': true,\n ':first-letter': true,\n ':first-line': true,\n ':first-of-type': true,\n ':first': true,\n ':focus-visible': true,\n ':focus-within': true,\n ':focus': true,\n ':fullscreen': true,\n ':hover': true,\n ':in-range': true,\n ':indeterminate': true,\n ':invalid': true,\n ':last-child': true,\n ':last-of-type': true,\n ':left': true,\n ':link': true,\n ':only-child': true,\n ':only-of-type': true,\n ':optional': true,\n ':out-of-range': true,\n ':placeholder-shown': true,\n ':read-only': true,\n ':read-write': true,\n ':required': true,\n ':right': true,\n ':root': true,\n ':scope': true,\n ':target': true,\n ':valid': true,\n ':visited': true\n};\nvar simplePseudos = Object.keys(simplePseudoMap);\nvar simplePseudoLookup = simplePseudoMap;\n\nvar _templateObject;\nvar createMediaQueryError = (mediaQuery, msg) => new Error(dedent(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n Invalid media query: \\\"\", \"\\\"\\n\\n \", \"\\n\\n Read more on MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries\\n \"])), mediaQuery, msg));\nvar validateMediaQuery = mediaQuery => {\n // Empty queries will start with '@media '\n if (mediaQuery === '@media ') {\n throw createMediaQueryError(mediaQuery, 'Query is empty');\n }\n try {\n toAST(mediaQuery);\n } catch (e) {\n throw createMediaQueryError(mediaQuery, e.message);\n }\n};\n\nvar _excluded = [\"vars\"],\n _excluded2 = [\"content\"];\nvar DECLARATION = '__DECLARATION';\nvar UNITLESS = {\n animationIterationCount: true,\n borderImage: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexShrink: true,\n fontWeight: true,\n gridArea: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnStart: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowStart: true,\n initialLetter: true,\n lineClamp: true,\n lineHeight: true,\n maxLines: true,\n opacity: true,\n order: true,\n orphans: true,\n scale: true,\n tabSize: true,\n WebkitLineClamp: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // svg properties\n fillOpacity: true,\n floodOpacity: true,\n maskBorder: true,\n maskBorderOutset: true,\n maskBorderSlice: true,\n maskBorderWidth: true,\n shapeImageThreshold: true,\n stopOpacity: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\nfunction dashify(str) {\n return str.replace(/([A-Z])/g, '-$1').replace(/^ms-/, '-ms-').toLowerCase();\n}\nfunction replaceBetweenIndexes(target, startIndex, endIndex, replacement) {\n var start = target.slice(0, startIndex);\n var end = target.slice(endIndex);\n return \"\".concat(start).concat(replacement).concat(end);\n}\nvar DOUBLE_SPACE = ' ';\nvar specialKeys = [...simplePseudos, '@layer', '@media', '@supports', '@container', 'selectors'];\nclass Stylesheet {\n constructor(localClassNames, composedClassLists) {\n this.rules = [];\n this.conditionalRulesets = [new ConditionalRuleset()];\n this.fontFaceRules = [];\n this.keyframesRules = [];\n this.localClassNamesMap = new Map(localClassNames.map(localClassName => [localClassName, localClassName]));\n this.localClassNamesSearch = new AhoCorasick(localClassNames);\n this.layers = new Map();\n\n // Class list compositions should be priortized by Newer > Older\n // Therefore we reverse the array as they are added in sequence\n this.composedClassLists = composedClassLists.map(_ref => {\n var {\n identifier,\n classList\n } = _ref;\n return {\n identifier,\n regex: RegExp(\"(\".concat(classList, \")\"), 'g')\n };\n }).reverse();\n }\n processCssObj(root) {\n if (root.type === 'fontFace') {\n this.fontFaceRules.push(root.rule);\n return;\n }\n if (root.type === 'keyframes') {\n root.rule = Object.fromEntries(Object.entries(root.rule).map(_ref2 => {\n var [keyframe, rule] = _ref2;\n return [keyframe, this.transformProperties(rule)];\n }));\n this.keyframesRules.push(root);\n return;\n }\n this.currConditionalRuleset = new ConditionalRuleset();\n if (root.type === 'layer') {\n var layerDefinition = \"@layer \".concat(root.name);\n this.addLayer([layerDefinition]);\n } else {\n // Add main styles\n var mainRule = omit(root.rule, specialKeys);\n this.addRule({\n selector: root.selector,\n rule: mainRule\n });\n this.transformLayer(root, root.rule['@layer']);\n this.transformMedia(root, root.rule['@media']);\n this.transformSupports(root, root.rule['@supports']);\n this.transformContainer(root, root.rule['@container']);\n this.transformSimplePseudos(root, root.rule);\n this.transformSelectors(root, root.rule);\n }\n var activeConditionalRuleset = this.conditionalRulesets[this.conditionalRulesets.length - 1];\n if (!activeConditionalRuleset.mergeIfCompatible(this.currConditionalRuleset)) {\n // Ruleset merge failed due to incompatibility. We now deopt by starting a fresh ConditionalRuleset\n this.conditionalRulesets.push(this.currConditionalRuleset);\n }\n }\n addConditionalRule(cssRule, conditions) {\n // Run `transformProperties` before `transformVars` as we don't want to pixelify CSS Vars\n var rule = this.transformVars(this.transformProperties(cssRule.rule));\n var selector = this.transformSelector(cssRule.selector);\n if (!this.currConditionalRuleset) {\n throw new Error(\"Couldn't add conditional rule\");\n }\n var conditionQuery = conditions[conditions.length - 1];\n var parentConditions = conditions.slice(0, conditions.length - 1);\n this.currConditionalRuleset.addRule({\n selector,\n rule\n }, conditionQuery, parentConditions);\n }\n addRule(cssRule) {\n // Run `transformProperties` before `transformVars` as we don't want to pixelify CSS Vars\n var rule = this.transformVars(this.transformProperties(cssRule.rule));\n var selector = this.transformSelector(cssRule.selector);\n this.rules.push({\n selector,\n rule\n });\n }\n addLayer(layer) {\n var uniqueLayerKey = layer.join(' - ');\n this.layers.set(uniqueLayerKey, layer);\n }\n transformProperties(cssRule) {\n return this.transformContent(this.pixelifyProperties(cssRule));\n }\n pixelifyProperties(cssRule) {\n forEach(cssRule, (value, key) => {\n if (typeof value === 'number' && value !== 0 && !UNITLESS[key]) {\n // @ts-expect-error Any ideas?\n cssRule[key] = \"\".concat(value, \"px\");\n }\n });\n return cssRule;\n }\n transformVars(_ref3) {\n var {\n vars\n } = _ref3,\n rest = _objectWithoutProperties(_ref3, _excluded);\n if (!vars) {\n return rest;\n }\n return _objectSpread2(_objectSpread2({}, mapKeys(vars, (_value, key) => getVarName(key))), rest);\n }\n transformContent(_ref4) {\n var {\n content\n } = _ref4,\n rest = _objectWithoutProperties(_ref4, _excluded2);\n if (typeof content === 'undefined') {\n return rest;\n }\n\n // Handle fallback arrays:\n var contentArray = Array.isArray(content) ? content : [content];\n return _objectSpread2({\n content: contentArray.map(value =>\n // This logic was adapted from Stitches :)\n value && (value.includes('\"') || value.includes(\"'\") || /^([A-Za-z\\-]+\\([^]*|[^]*-quote|inherit|initial|none|normal|revert|unset)(\\s|$)/.test(value)) ? value : \"\\\"\".concat(value, \"\\\"\"))\n }, rest);\n }\n transformClassname(identifier) {\n return \".\".concat(cssesc(identifier, {\n isIdentifier: true\n }));\n }\n transformSelector(selector) {\n // Map class list compositions to single identifiers\n var transformedSelector = selector;\n var _loop = function _loop(identifier) {\n transformedSelector = transformedSelector.replace(regex, () => {\n markCompositionUsed(identifier);\n return identifier;\n });\n };\n for (var {\n identifier,\n regex\n } of this.composedClassLists) {\n _loop(identifier);\n }\n if (this.localClassNamesMap.has(transformedSelector)) {\n return this.transformClassname(transformedSelector);\n }\n var results = this.localClassNamesSearch.search(transformedSelector);\n var lastReplaceIndex = transformedSelector.length;\n\n // Perform replacements backwards to simplify index handling\n for (var i = results.length - 1; i >= 0; i--) {\n var [endIndex, [firstMatch]] = results[i];\n var startIndex = endIndex - firstMatch.length + 1;\n if (startIndex >= lastReplaceIndex) {\n // Class names can be substrings of other class names\n // e.g. '_1g1ptzo1' and '_1g1ptzo10'\n // If the startIndex >= lastReplaceIndex, then\n // this is the case and this replace should be skipped\n continue;\n }\n lastReplaceIndex = startIndex;\n\n // If class names already starts with a '.' then skip\n if (transformedSelector[startIndex - 1] !== '.') {\n transformedSelector = replaceBetweenIndexes(transformedSelector, startIndex, endIndex + 1, this.transformClassname(firstMatch));\n }\n }\n return transformedSelector;\n }\n transformSelectors(root, rule, conditions) {\n forEach(rule.selectors, (selectorRule, selector) => {\n if (root.type !== 'local') {\n throw new Error(\"Selectors are not allowed within \".concat(root.type === 'global' ? '\"globalStyle\"' : '\"selectors\"'));\n }\n var transformedSelector = this.transformSelector(selector.replace(RegExp('&', 'g'), root.selector));\n validateSelector(transformedSelector, root.selector);\n var rule = {\n selector: transformedSelector,\n rule: omit(selectorRule, specialKeys)\n };\n if (conditions) {\n this.addConditionalRule(rule, conditions);\n } else {\n this.addRule(rule);\n }\n var selectorRoot = {\n type: 'selector',\n selector: transformedSelector,\n rule: selectorRule\n };\n this.transformLayer(selectorRoot, selectorRule['@layer'], conditions);\n this.transformSupports(selectorRoot, selectorRule['@supports'], conditions);\n this.transformMedia(selectorRoot, selectorRule['@media'], conditions);\n });\n }\n transformMedia(root, rules) {\n var parentConditions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n if (rules) {\n var _this$currConditional;\n (_this$currConditional = this.currConditionalRuleset) === null || _this$currConditional === void 0 || _this$currConditional.addConditionPrecedence(parentConditions, Object.keys(rules).map(query => \"@media \".concat(query)));\n for (var [query, mediaRule] of Object.entries(rules)) {\n var mediaQuery = \"@media \".concat(query);\n validateMediaQuery(mediaQuery);\n var conditions = [...parentConditions, mediaQuery];\n this.addConditionalRule({\n selector: root.selector,\n rule: omit(mediaRule, specialKeys)\n }, conditions);\n if (root.type === 'local') {\n this.transformSimplePseudos(root, mediaRule, conditions);\n this.transformSelectors(root, mediaRule, conditions);\n }\n this.transformLayer(root, mediaRule['@layer'], conditions);\n this.transformSupports(root, mediaRule['@supports'], conditions);\n this.transformContainer(root, mediaRule['@container'], conditions);\n }\n }\n }\n transformContainer(root, rules) {\n var parentConditions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n if (rules) {\n var _this$currConditional2;\n (_this$currConditional2 = this.currConditionalRuleset) === null || _this$currConditional2 === void 0 || _this$currConditional2.addConditionPrecedence(parentConditions, Object.keys(rules).map(query => \"@container \".concat(query)));\n forEach(rules, (containerRule, query) => {\n var containerQuery = \"@container \".concat(query);\n var conditions = [...parentConditions, containerQuery];\n this.addConditionalRule({\n selector: root.selector,\n rule: omit(containerRule, specialKeys)\n }, conditions);\n if (root.type === 'local') {\n this.transformSimplePseudos(root, containerRule, conditions);\n this.transformSelectors(root, containerRule, conditions);\n }\n this.transformLayer(root, containerRule['@layer'], conditions);\n this.transformSupports(root, containerRule['@supports'], conditions);\n this.transformMedia(root, containerRule['@media'], conditions);\n });\n }\n }\n transformLayer(root, rules) {\n var parentConditions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n if (rules) {\n var _this$currConditional3;\n (_this$currConditional3 = this.currConditionalRuleset) === null || _this$currConditional3 === void 0 || _this$currConditional3.addConditionPrecedence(parentConditions, Object.keys(rules).map(name => \"@layer \".concat(name)));\n forEach(rules, (layerRule, name) => {\n var conditions = [...parentConditions, \"@layer \".concat(name)];\n this.addLayer(conditions);\n this.addConditionalRule({\n selector: root.selector,\n rule: omit(layerRule, specialKeys)\n }, conditions);\n if (root.type === 'local') {\n this.transformSimplePseudos(root, layerRule, conditions);\n this.transformSelectors(root, layerRule, conditions);\n }\n this.transformMedia(root, layerRule['@media'], conditions);\n this.transformSupports(root, layerRule['@supports'], conditions);\n this.transformContainer(root, layerRule['@container'], conditions);\n });\n }\n }\n transformSupports(root, rules) {\n var parentConditions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n if (rules) {\n var _this$currConditional4;\n (_this$currConditional4 = this.currConditionalRuleset) === null || _this$currConditional4 === void 0 || _this$currConditional4.addConditionPrecedence(parentConditions, Object.keys(rules).map(query => \"@supports \".concat(query)));\n forEach(rules, (supportsRule, query) => {\n var conditions = [...parentConditions, \"@supports \".concat(query)];\n this.addConditionalRule({\n selector: root.selector,\n rule: omit(supportsRule, specialKeys)\n }, conditions);\n if (root.type === 'local') {\n this.transformSimplePseudos(root, supportsRule, conditions);\n this.transformSelectors(root, supportsRule, conditions);\n }\n this.transformLayer(root, supportsRule['@layer'], conditions);\n this.transformMedia(root, supportsRule['@media'], conditions);\n this.transformContainer(root, supportsRule['@container'], conditions);\n });\n }\n }\n transformSimplePseudos(root, rule, conditions) {\n for (var key of Object.keys(rule)) {\n // Process simple pseudos\n if (simplePseudoLookup[key]) {\n if (root.type !== 'local') {\n throw new Error(\"Simple pseudos are not valid in \".concat(root.type === 'global' ? '\"globalStyle\"' : '\"selectors\"'));\n }\n if (conditions) {\n this.addConditionalRule({\n selector: \"\".concat(root.selector).concat(key),\n rule: rule[key]\n }, conditions);\n } else {\n this.addRule({\n conditions,\n selector: \"\".concat(root.selector).concat(key),\n rule: rule[key]\n });\n }\n }\n }\n }\n toCss() {\n var css = [];\n\n // Render font-face rules\n for (var fontFaceRule of this.fontFaceRules) {\n css.push(renderCss({\n '@font-face': fontFaceRule\n }));\n }\n\n // Render keyframes\n for (var keyframe of this.keyframesRules) {\n css.push(renderCss({\n [\"@keyframes \".concat(keyframe.name)]: keyframe.rule\n }));\n }\n\n // Render layer definitions\n for (var layer of this.layers.values()) {\n var [definition, ...nesting] = layer.reverse();\n var cssObj = {\n [definition]: DECLARATION\n };\n for (var part of nesting) {\n cssObj = {\n [part]: cssObj\n };\n }\n css.push(renderCss(cssObj));\n }\n\n // Render unconditional rules\n for (var rule of this.rules) {\n css.push(renderCss({\n [rule.selector]: rule.rule\n }));\n }\n\n // Render conditional rules\n for (var conditionalRuleset of this.conditionalRulesets) {\n for (var conditionalRule of conditionalRuleset.renderToArray()) {\n css.push(renderCss(conditionalRule));\n }\n }\n return css.filter(Boolean);\n }\n}\nfunction renderCss(v) {\n var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var rules = [];\n var _loop2 = function _loop2(key) {\n var value = v[key];\n if (value && Array.isArray(value)) {\n rules.push(...value.map(v => renderCss({\n [key]: v\n }, indent)));\n } else if (value && typeof value === 'object') {\n var isEmpty = Object.keys(value).length === 0;\n if (!isEmpty) {\n rules.push(\"\".concat(indent).concat(key, \" {\\n\").concat(renderCss(value, indent + DOUBLE_SPACE), \"\\n\").concat(indent, \"}\"));\n }\n } else if (value === DECLARATION) {\n rules.push(\"\".concat(indent).concat(key, \";\"));\n } else {\n rules.push(\"\".concat(indent).concat(key.startsWith('--') ? key : dashify(key), \": \").concat(value, \";\"));\n }\n };\n for (var key of Object.keys(v)) {\n _loop2(key);\n }\n return rules.join('\\n');\n}\nfunction transformCss(_ref5) {\n var {\n localClassNames,\n cssObjs,\n composedClassLists\n } = _ref5;\n var stylesheet = new Stylesheet(localClassNames, composedClassLists);\n for (var root of cssObjs) {\n stylesheet.processCssObj(root);\n }\n return stylesheet.toCss();\n}\n\nexport { _objectSpread2 as _, dudupeAndJoinClassList as d, transformCss as t };\n","export var simplifyAST = function (ast) {\n for (var i = ast.length - 1; i >= 0; i--) {\n ast[i] = simplifyMediaQuery(ast[i]);\n }\n return ast;\n};\nvar simplifyMediaQuery = function (mediaQuery) {\n if (mediaQuery.mediaCondition === null)\n return mediaQuery;\n var mediaCondition = simplifyMediaCondition(mediaQuery.mediaCondition);\n if (mediaCondition.operator === null &&\n mediaCondition.children.length === 1 &&\n 'children' in mediaCondition.children[0]) {\n mediaCondition = mediaCondition.children[0];\n }\n return {\n mediaPrefix: mediaQuery.mediaPrefix,\n mediaType: mediaQuery.mediaType,\n mediaCondition: mediaCondition\n };\n};\nvar simplifyMediaCondition = function (mediaCondition) {\n for (var i = mediaCondition.children.length - 1; i >= 0; i--) {\n var unsimplifiedChild = mediaCondition.children[i];\n if (!('context' in unsimplifiedChild)) {\n var child = simplifyMediaCondition(unsimplifiedChild);\n if (child.operator === null && child.children.length === 1) {\n mediaCondition.children[i] = child.children[0];\n }\n else if (child.operator === mediaCondition.operator &&\n (child.operator === 'and' || child.operator === 'or')) {\n var spliceArgs = [i, 1];\n for (var i_1 = 0; i_1 < child.children.length; i_1++) {\n spliceArgs.push(child.children[i_1]);\n }\n mediaCondition.children.splice.apply(mediaCondition.children, spliceArgs);\n }\n }\n }\n return mediaCondition;\n};\n//# sourceMappingURL=simplifyAST.js.map","import { __assign, __rest, __values } from \"tslib\";\nimport { lexicalAnalysis } from './lexicalAnalysis';\nimport { simplifyAST } from './simplifyAST';\nvar createError = function (message, err) {\n if (err instanceof Error) {\n return new Error(\"\".concat(err.message.trim(), \"\\n\").concat(message.trim()));\n }\n else {\n return new Error(message.trim());\n }\n};\nexport var toAST = function (str) {\n return simplifyAST(toUnflattenedAST(str));\n};\nexport var toUnflattenedAST = function (str) {\n var tokenList = lexicalAnalysis(str.trim());\n if (tokenList === null) {\n throw createError('Failed tokenizing');\n }\n var startIndex = 0;\n var endIndex = tokenList.length - 1;\n if (tokenList[0].type === '' &&\n tokenList[0].value === 'media') {\n if (tokenList[1].type !== '') {\n throw createError('Expected whitespace after media');\n }\n startIndex = 2;\n for (var i = 2; i < tokenList.length - 1; i++) {\n var token = tokenList[i];\n if (token.type === '<{-token>') {\n endIndex = i;\n break;\n }\n else if (token.type === '') {\n throw createError(\"Expected '{' in media query but found ';'\");\n }\n }\n }\n tokenList = tokenList.slice(startIndex, endIndex);\n return syntacticAnalysis(tokenList);\n};\nexport var removeWhitespace = function (tokenList) {\n var newTokenList = [];\n var before = false;\n for (var i = 0; i < tokenList.length; i++) {\n if (tokenList[i].type === '') {\n before = true;\n if (newTokenList.length > 0) {\n newTokenList[newTokenList.length - 1].wsAfter = true;\n }\n }\n else {\n newTokenList.push(__assign(__assign({}, tokenList[i]), { wsBefore: before, wsAfter: false }));\n before = false;\n }\n }\n return newTokenList;\n};\nexport var syntacticAnalysis = function (tokenList) {\n var e_1, _a;\n var mediaQueryList = [[]];\n for (var i = 0; i < tokenList.length; i++) {\n var token = tokenList[i];\n if (token.type === '') {\n mediaQueryList.push([]);\n }\n else {\n mediaQueryList[mediaQueryList.length - 1].push(token);\n }\n }\n var mediaQueries = mediaQueryList.map(removeWhitespace);\n if (mediaQueries.length === 1 && mediaQueries[0].length === 0) {\n return [{ mediaCondition: null, mediaPrefix: null, mediaType: 'all' }];\n }\n else {\n var mediaQueryTokens = mediaQueries.map(function (mediaQueryTokens) {\n if (mediaQueryTokens.length === 0) {\n return null;\n }\n else {\n return tokenizeMediaQuery(mediaQueryTokens);\n }\n });\n var nonNullMediaQueryTokens = [];\n try {\n for (var mediaQueryTokens_1 = __values(mediaQueryTokens), mediaQueryTokens_1_1 = mediaQueryTokens_1.next(); !mediaQueryTokens_1_1.done; mediaQueryTokens_1_1 = mediaQueryTokens_1.next()) {\n var mediaQueryToken = mediaQueryTokens_1_1.value;\n if (mediaQueryToken !== null) {\n nonNullMediaQueryTokens.push(mediaQueryToken);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (mediaQueryTokens_1_1 && !mediaQueryTokens_1_1.done && (_a = mediaQueryTokens_1.return)) _a.call(mediaQueryTokens_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (nonNullMediaQueryTokens.length === 0) {\n throw createError('No valid media queries');\n }\n return nonNullMediaQueryTokens;\n }\n};\nexport var tokenizeMediaQuery = function (tokens) {\n var firstToken = tokens[0];\n if (firstToken.type === '<(-token>') {\n try {\n return {\n mediaPrefix: null,\n mediaType: 'all',\n mediaCondition: tokenizeMediaCondition(tokens, true)\n };\n }\n catch (err) {\n throw createError(\"Expected media condition after '('\", err);\n }\n }\n else if (firstToken.type === '') {\n var mediaPrefix = null;\n var mediaType = void 0;\n var value = firstToken.value;\n if (value === 'only' || value === 'not') {\n mediaPrefix = value;\n }\n var firstIndex = mediaPrefix === null ? 0 : 1;\n if (tokens.length <= firstIndex) {\n throw createError(\"Expected extra token in media query\");\n }\n var firstNonUnaryToken = tokens[firstIndex];\n if (firstNonUnaryToken.type === '') {\n var value_1 = firstNonUnaryToken.value;\n if (value_1 === 'all') {\n mediaType = 'all';\n }\n else if (value_1 === 'print' || value_1 === 'screen') {\n mediaType = value_1;\n }\n else if (value_1 === 'tty' ||\n value_1 === 'tv' ||\n value_1 === 'projection' ||\n value_1 === 'handheld' ||\n value_1 === 'braille' ||\n value_1 === 'embossed' ||\n value_1 === 'aural' ||\n value_1 === 'speech') {\n mediaPrefix = mediaPrefix === 'not' ? null : 'not';\n mediaType = 'all';\n }\n else {\n throw createError(\"Unknown ident '\".concat(value_1, \"' in media query\"));\n }\n }\n else if (mediaPrefix === 'not' &&\n firstNonUnaryToken.type === '<(-token>') {\n var tokensWithParens = [\n { type: '<(-token>', wsBefore: false, wsAfter: false }\n ];\n tokensWithParens.push.apply(tokensWithParens, tokens);\n tokensWithParens.push({\n type: '<)-token>',\n wsBefore: false,\n wsAfter: false\n });\n try {\n return {\n mediaPrefix: null,\n mediaType: 'all',\n mediaCondition: tokenizeMediaCondition(tokensWithParens, true)\n };\n }\n catch (err) {\n throw createError(\"Expected media condition after '('\", err);\n }\n }\n else {\n throw createError('Invalid media query');\n }\n if (firstIndex + 1 === tokens.length) {\n return {\n mediaPrefix: mediaPrefix,\n mediaType: mediaType,\n mediaCondition: null\n };\n }\n else if (firstIndex + 4 < tokens.length) {\n var secondNonUnaryToken = tokens[firstIndex + 1];\n if (secondNonUnaryToken.type === '' &&\n secondNonUnaryToken.value === 'and') {\n try {\n return {\n mediaPrefix: mediaPrefix,\n mediaType: mediaType,\n mediaCondition: tokenizeMediaCondition(tokens.slice(firstIndex + 2), false)\n };\n }\n catch (err) {\n throw createError(\"Expected media condition after 'and'\", err);\n }\n }\n else {\n throw createError(\"Expected 'and' after media prefix\");\n }\n }\n else {\n throw createError('Expected media condition after media prefix');\n }\n }\n else {\n throw createError('Expected media condition or media prefix');\n }\n};\nexport var tokenizeMediaCondition = function (tokens, mayContainOr, previousOperator) {\n if (previousOperator === void 0) { previousOperator = null; }\n if (tokens.length < 3 ||\n tokens[0].type !== '<(-token>' ||\n tokens[tokens.length - 1].type !== '<)-token>') {\n throw new Error('Invalid media condition');\n }\n var endIndexOfFirstFeature = tokens.length - 1;\n var maxDepth = 0;\n var count = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type === '<(-token>') {\n count += 1;\n maxDepth = Math.max(maxDepth, count);\n }\n else if (token.type === '<)-token>') {\n count -= 1;\n }\n if (count === 0) {\n endIndexOfFirstFeature = i;\n break;\n }\n }\n if (count !== 0) {\n throw new Error('Mismatched parens\\nInvalid media condition');\n }\n var child;\n var featureTokens = tokens.slice(0, endIndexOfFirstFeature + 1);\n if (maxDepth === 1) {\n child = tokenizeMediaFeature(featureTokens);\n }\n else {\n if (featureTokens[1].type === '' &&\n featureTokens[1].value === 'not') {\n child = tokenizeMediaCondition(featureTokens.slice(2, -1), true, 'not');\n }\n else {\n child = tokenizeMediaCondition(featureTokens.slice(1, -1), true);\n }\n }\n if (endIndexOfFirstFeature === tokens.length - 1) {\n return {\n operator: previousOperator,\n children: [child]\n };\n }\n else {\n var nextToken = tokens[endIndexOfFirstFeature + 1];\n if (nextToken.type !== '') {\n throw new Error('Invalid operator\\nInvalid media condition');\n }\n else if (previousOperator !== null &&\n previousOperator !== nextToken.value) {\n throw new Error(\"'\".concat(nextToken.value, \"' and '\").concat(previousOperator, \"' must not be at same level\\nInvalid media condition\"));\n }\n else if (nextToken.value === 'or' && !mayContainOr) {\n throw new Error(\"Cannot use 'or' at top level of a media query\\nInvalid media condition\");\n }\n else if (nextToken.value !== 'and' && nextToken.value !== 'or') {\n throw new Error(\"Invalid operator: '\".concat(nextToken.value, \"'\\nInvalid media condition\"));\n }\n var siblings = tokenizeMediaCondition(tokens.slice(endIndexOfFirstFeature + 2), mayContainOr, nextToken.value);\n return {\n operator: nextToken.value,\n children: [child].concat(siblings.children)\n };\n }\n};\nexport var tokenizeMediaFeature = function (rawTokens) {\n if (rawTokens.length < 3 ||\n rawTokens[0].type !== '<(-token>' ||\n rawTokens[rawTokens.length - 1].type !== '<)-token>') {\n throw new Error('Invalid media feature');\n }\n var tokens = [rawTokens[0]];\n for (var i = 1; i < rawTokens.length; i++) {\n if (i < rawTokens.length - 2) {\n var a = rawTokens[i];\n var b = rawTokens[i + 1];\n var c = rawTokens[i + 2];\n if (a.type === '' &&\n a.value > 0 &&\n b.type === '' &&\n b.value === 0x002f &&\n c.type === '' &&\n c.value > 0) {\n tokens.push({\n type: '',\n numerator: a.value,\n denominator: c.value,\n wsBefore: a.wsBefore,\n wsAfter: c.wsAfter\n });\n i += 2;\n continue;\n }\n }\n tokens.push(rawTokens[i]);\n }\n var nextToken = tokens[1];\n if (nextToken.type === '' && tokens.length === 3) {\n return {\n context: 'boolean',\n feature: nextToken.value\n };\n }\n else if (tokens.length === 5 &&\n tokens[1].type === '' &&\n tokens[2].type === '') {\n var valueToken = tokens[3];\n if (valueToken.type === '' ||\n valueToken.type === '' ||\n valueToken.type === '' ||\n valueToken.type === '') {\n var feature = tokens[1].value;\n var prefix = null;\n var slice = feature.slice(0, 4);\n if (slice === 'min-') {\n prefix = 'min';\n feature = feature.slice(4);\n }\n else if (slice === 'max-') {\n prefix = 'max';\n feature = feature.slice(4);\n }\n var _0 = valueToken.wsBefore, _1 = valueToken.wsAfter, value = __rest(valueToken, [\"wsBefore\", \"wsAfter\"]);\n return {\n context: 'value',\n prefix: prefix,\n feature: feature,\n value: value\n };\n }\n }\n else if (tokens.length >= 5) {\n try {\n var range = tokenizeRange(tokens);\n return {\n context: 'range',\n feature: range.featureName,\n range: range\n };\n }\n catch (err) {\n throw createError('Invalid media feature', err);\n }\n }\n throw new Error('Invalid media feature');\n};\nexport var tokenizeRange = function (tokens) {\n var _a, _b, _c, _d;\n if (tokens.length < 5 ||\n tokens[0].type !== '<(-token>' ||\n tokens[tokens.length - 1].type !== '<)-token>') {\n throw new Error('Invalid range');\n }\n var range = {\n leftToken: null,\n leftOp: null,\n featureName: '',\n rightOp: null,\n rightToken: null\n };\n var hasLeft = tokens[1].type === '' ||\n tokens[1].type === '' ||\n tokens[1].type === '' ||\n (tokens[1].type === '' && tokens[1].value === 'infinite');\n if (tokens[2].type === '') {\n if (tokens[2].value === 0x003c) {\n if (tokens[3].type === '' &&\n tokens[3].value === 0x003d &&\n !tokens[3].wsBefore) {\n range[hasLeft ? 'leftOp' : 'rightOp'] = '<=';\n }\n else {\n range[hasLeft ? 'leftOp' : 'rightOp'] = '<';\n }\n }\n else if (tokens[2].value === 0x003e) {\n if (tokens[3].type === '' &&\n tokens[3].value === 0x003d &&\n !tokens[3].wsBefore) {\n range[hasLeft ? 'leftOp' : 'rightOp'] = '>=';\n }\n else {\n range[hasLeft ? 'leftOp' : 'rightOp'] = '>';\n }\n }\n else if (tokens[2].value === 0x003d) {\n range[hasLeft ? 'leftOp' : 'rightOp'] = '=';\n }\n else {\n throw new Error('Invalid range');\n }\n if (hasLeft) {\n range.leftToken = tokens[1];\n }\n else if (tokens[1].type === '') {\n range.featureName = tokens[1].value;\n }\n else {\n throw new Error('Invalid range');\n }\n var tokenIndexAfterFirstOp = 2 + ((_b = (_a = range[hasLeft ? 'leftOp' : 'rightOp']) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);\n var tokenAfterFirstOp = tokens[tokenIndexAfterFirstOp];\n if (hasLeft) {\n if (tokenAfterFirstOp.type === '') {\n range.featureName = tokenAfterFirstOp.value;\n if (tokens.length >= 7) {\n var secondOpToken = tokens[tokenIndexAfterFirstOp + 1];\n var followingToken = tokens[tokenIndexAfterFirstOp + 2];\n if (secondOpToken.type === '') {\n var charCode = secondOpToken.value;\n if (charCode === 0x003c) {\n if (followingToken.type === '' &&\n followingToken.value === 0x003d &&\n !followingToken.wsBefore) {\n range.rightOp = '<=';\n }\n else {\n range.rightOp = '<';\n }\n }\n else if (charCode === 0x003e) {\n if (followingToken.type === '' &&\n followingToken.value === 0x003d &&\n !followingToken.wsBefore) {\n range.rightOp = '>=';\n }\n else {\n range.rightOp = '>';\n }\n }\n else {\n throw new Error('Invalid range');\n }\n var tokenAfterSecondOp = tokens[tokenIndexAfterFirstOp + 1 + ((_d = (_c = range.rightOp) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0)];\n range.rightToken = tokenAfterSecondOp;\n }\n else {\n throw new Error('Invalid range');\n }\n }\n else if (tokenIndexAfterFirstOp + 2 !== tokens.length) {\n throw new Error('Invalid range');\n }\n }\n else {\n throw new Error('Invalid range');\n }\n }\n else {\n range.rightToken = tokenAfterFirstOp;\n }\n var validRange = null;\n var lt = range.leftToken, leftOp = range.leftOp, featureName = range.featureName, rightOp = range.rightOp, rt = range.rightToken;\n var leftToken = null;\n if (lt !== null) {\n if (lt.type === '') {\n var type = lt.type, value = lt.value;\n if (value === 'infinite') {\n leftToken = { type: type, value: value };\n }\n }\n else if (lt.type === '' ||\n lt.type === '' ||\n lt.type === '') {\n var _0 = lt.wsBefore, _1 = lt.wsAfter, ltNoWS = __rest(lt, [\"wsBefore\", \"wsAfter\"]);\n leftToken = ltNoWS;\n }\n }\n var rightToken = null;\n if (rt !== null) {\n if (rt.type === '') {\n var type = rt.type, value = rt.value;\n if (value === 'infinite') {\n rightToken = { type: type, value: value };\n }\n }\n else if (rt.type === '' ||\n rt.type === '' ||\n rt.type === '') {\n var _0 = rt.wsBefore, _1 = rt.wsAfter, rtNoWS = __rest(rt, [\"wsBefore\", \"wsAfter\"]);\n rightToken = rtNoWS;\n }\n }\n if (leftToken !== null && rightToken !== null) {\n if ((leftOp === '<' || leftOp === '<=') &&\n (rightOp === '<' || rightOp === '<=')) {\n validRange = { leftToken: leftToken, leftOp: leftOp, featureName: featureName, rightOp: rightOp, rightToken: rightToken };\n }\n else if ((leftOp === '>' || leftOp === '>=') &&\n (rightOp === '>' || rightOp === '>=')) {\n validRange = { leftToken: leftToken, leftOp: leftOp, featureName: featureName, rightOp: rightOp, rightToken: rightToken };\n }\n else {\n throw new Error('Invalid range');\n }\n }\n else if (leftToken === null &&\n leftOp === null &&\n rightOp !== null &&\n rightToken !== null) {\n validRange = { leftToken: leftToken, leftOp: leftOp, featureName: featureName, rightOp: rightOp, rightToken: rightToken };\n }\n else if (leftToken !== null &&\n leftOp !== null &&\n rightOp === null &&\n rightToken === null) {\n validRange = { leftToken: leftToken, leftOp: leftOp, featureName: featureName, rightOp: rightOp, rightToken: rightToken };\n }\n return validRange;\n }\n else {\n throw new Error('Invalid range');\n }\n};\n//# sourceMappingURL=syntacticAnalysis.js.map","/**\n * @module LRUCache\n */\n\n// module-private names and types\ntype Perf = { now: () => number }\nconst perf: Perf =\n typeof performance === 'object' &&\n performance &&\n typeof performance.now === 'function'\n ? performance\n : Date\n\nconst warned = new Set()\n\n// either a function or a class\ntype ForC = ((...a: any[]) => any) | { new (...a: any[]): any }\n\n/* c8 ignore start */\nconst PROCESS = (\n typeof process === 'object' && !!process ? process : {}\n) as { [k: string]: any }\n/* c8 ignore start */\n\nconst emitWarning = (\n msg: string,\n type: string,\n code: string,\n fn: ForC\n) => {\n typeof PROCESS.emitWarning === 'function'\n ? PROCESS.emitWarning(msg, type, code, fn)\n : console.error(`[${code}] ${type}: ${msg}`)\n}\n\nlet AC = globalThis.AbortController\nlet AS = globalThis.AbortSignal\n\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n //@ts-ignore\n AS = class AbortSignal {\n onabort?: (...a: any[]) => any\n _onabort: ((...a: any[]) => any)[] = []\n reason?: any\n aborted: boolean = false\n addEventListener(_: string, fn: (...a: any[]) => any) {\n this._onabort.push(fn)\n }\n }\n //@ts-ignore\n AC = class AbortController {\n constructor() {\n warnACPolyfill()\n }\n signal = new AS()\n abort(reason: any) {\n if (this.signal.aborted) return\n //@ts-ignore\n this.signal.reason = reason\n //@ts-ignore\n this.signal.aborted = true\n //@ts-ignore\n for (const fn of this.signal._onabort) {\n fn(reason)\n }\n this.signal.onabort?.(reason)\n }\n }\n let printACPolyfillWarning =\n PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1'\n const warnACPolyfill = () => {\n if (!printACPolyfillWarning) return\n printACPolyfillWarning = false\n emitWarning(\n 'AbortController is not defined. If using lru-cache in ' +\n 'node 14, load an AbortController polyfill from the ' +\n '`node-abort-controller` package. A minimal polyfill is ' +\n 'provided for use by LRUCache.fetch(), but it should not be ' +\n 'relied upon in other contexts (eg, passing it to other APIs that ' +\n 'use AbortController/AbortSignal might have undesirable effects). ' +\n 'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.',\n 'NO_ABORT_CONTROLLER',\n 'ENOTSUP',\n warnACPolyfill\n )\n }\n}\n/* c8 ignore stop */\n\nconst shouldWarn = (code: string) => !warned.has(code)\n\nconst TYPE = Symbol('type')\nexport type PosInt = number & { [TYPE]: 'Positive Integer' }\nexport type Index = number & { [TYPE]: 'LRUCache Index' }\n\nconst isPosInt = (n: any): n is PosInt =>\n n && n === Math.floor(n) && n > 0 && isFinite(n)\n\nexport type UintArray = Uint8Array | Uint16Array | Uint32Array\nexport type NumberArray = UintArray | number[]\n\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values. Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max: number) =>\n !isPosInt(max)\n ? null\n : max <= Math.pow(2, 8)\n ? Uint8Array\n : max <= Math.pow(2, 16)\n ? Uint16Array\n : max <= Math.pow(2, 32)\n ? Uint32Array\n : max <= Number.MAX_SAFE_INTEGER\n ? ZeroArray\n : null\n/* c8 ignore stop */\n\nclass ZeroArray extends Array {\n constructor(size: number) {\n super(size)\n this.fill(0)\n }\n}\nexport type { ZeroArray }\nexport type { Stack }\n\nexport type StackLike = Stack | Index[]\nclass Stack {\n heap: NumberArray\n length: number\n // private constructor\n static #constructing: boolean = false\n static create(max: number): StackLike {\n const HeapCls = getUintArray(max)\n if (!HeapCls) return []\n Stack.#constructing = true\n const s = new Stack(max, HeapCls)\n Stack.#constructing = false\n return s\n }\n constructor(\n max: number,\n HeapCls: { new (n: number): NumberArray }\n ) {\n /* c8 ignore start */\n if (!Stack.#constructing) {\n throw new TypeError('instantiate Stack using Stack.create(n)')\n }\n /* c8 ignore stop */\n this.heap = new HeapCls(max)\n this.length = 0\n }\n push(n: Index) {\n this.heap[this.length++] = n\n }\n pop(): Index {\n return this.heap[--this.length] as Index\n }\n}\n\n/**\n * Promise representing an in-progress {@link LRUCache#fetch} call\n */\nexport type BackgroundFetch = Promise & {\n __returned: BackgroundFetch | undefined\n __abortController: AbortController\n __staleWhileFetching: V | undefined\n}\n\nexport type DisposeTask = [\n value: V,\n key: K,\n reason: LRUCache.DisposeReason\n]\n\nexport namespace LRUCache {\n /**\n * An integer greater than 0, reflecting the calculated size of items\n */\n export type Size = number\n\n /**\n * Integer greater than 0, representing some number of milliseconds, or the\n * time at which a TTL started counting from.\n */\n export type Milliseconds = number\n\n /**\n * An integer greater than 0, reflecting a number of items\n */\n export type Count = number\n\n /**\n * The reason why an item was removed from the cache, passed\n * to the {@link Disposer} methods.\n *\n * - `evict`: The item was evicted because it is the least recently used,\n * and the cache is full.\n * - `set`: A new value was set, overwriting the old value being disposed.\n * - `delete`: The item was explicitly deleted, either by calling\n * {@link LRUCache#delete}, {@link LRUCache#clear}, or\n * {@link LRUCache#set} with an undefined value.\n * - `expire`: The item was removed due to exceeding its TTL.\n * - `fetch`: A {@link OptionsBase#fetchMethod} operation returned\n * `undefined` or was aborted, causing the item to be deleted.\n */\n export type DisposeReason =\n | 'evict'\n | 'set'\n | 'delete'\n | 'expire'\n | 'fetch'\n /**\n * A method called upon item removal, passed as the\n * {@link OptionsBase.dispose} and/or\n * {@link OptionsBase.disposeAfter} options.\n */\n export type Disposer = (\n value: V,\n key: K,\n reason: DisposeReason\n ) => void\n\n /**\n * A function that returns the effective calculated size\n * of an entry in the cache.\n */\n export type SizeCalculator = (value: V, key: K) => Size\n\n /**\n * Options provided to the\n * {@link OptionsBase.fetchMethod} function.\n */\n export interface FetcherOptions {\n signal: AbortSignal\n options: FetcherFetchOptions\n /**\n * Object provided in the {@link FetchOptions.context} option to\n * {@link LRUCache#fetch}\n */\n context: FC\n }\n\n /**\n * Occasionally, it may be useful to track the internal behavior of the\n * cache, particularly for logging, debugging, or for behavior within the\n * `fetchMethod`. To do this, you can pass a `status` object to the\n * {@link LRUCache#fetch}, {@link LRUCache#get}, {@link LRUCache#set},\n * {@link LRUCache#memo}, and {@link LRUCache#has} methods.\n *\n * The `status` option should be a plain JavaScript object. The following\n * fields will be set on it appropriately, depending on the situation.\n */\n export interface Status {\n /**\n * The status of a set() operation.\n *\n * - add: the item was not found in the cache, and was added\n * - update: the item was in the cache, with the same value provided\n * - replace: the item was in the cache, and replaced\n * - miss: the item was not added to the cache for some reason\n */\n set?: 'add' | 'update' | 'replace' | 'miss'\n\n /**\n * the ttl stored for the item, or undefined if ttls are not used.\n */\n ttl?: Milliseconds\n\n /**\n * the start time for the item, or undefined if ttls are not used.\n */\n start?: Milliseconds\n\n /**\n * The timestamp used for TTL calculation\n */\n now?: Milliseconds\n\n /**\n * the remaining ttl for the item, or undefined if ttls are not used.\n */\n remainingTTL?: Milliseconds\n\n /**\n * The calculated size for the item, if sizes are used.\n */\n entrySize?: Size\n\n /**\n * The total calculated size of the cache, if sizes are used.\n */\n totalCalculatedSize?: Size\n\n /**\n * A flag indicating that the item was not stored, due to exceeding the\n * {@link OptionsBase.maxEntrySize}\n */\n maxEntrySizeExceeded?: true\n\n /**\n * The old value, specified in the case of `set:'update'` or\n * `set:'replace'`\n */\n oldValue?: V\n\n /**\n * The results of a {@link LRUCache#has} operation\n *\n * - hit: the item was found in the cache\n * - stale: the item was found in the cache, but is stale\n * - miss: the item was not found in the cache\n */\n has?: 'hit' | 'stale' | 'miss'\n\n /**\n * The status of a {@link LRUCache#fetch} operation.\n * Note that this can change as the underlying fetch() moves through\n * various states.\n *\n * - inflight: there is another fetch() for this key which is in process\n * - get: there is no {@link OptionsBase.fetchMethod}, so\n * {@link LRUCache#get} was called.\n * - miss: the item is not in cache, and will be fetched.\n * - hit: the item is in the cache, and was resolved immediately.\n * - stale: the item is in the cache, but stale.\n * - refresh: the item is in the cache, and not stale, but\n * {@link FetchOptions.forceRefresh} was specified.\n */\n fetch?: 'get' | 'inflight' | 'miss' | 'hit' | 'stale' | 'refresh'\n\n /**\n * The {@link OptionsBase.fetchMethod} was called\n */\n fetchDispatched?: true\n\n /**\n * The cached value was updated after a successful call to\n * {@link OptionsBase.fetchMethod}\n */\n fetchUpdated?: true\n\n /**\n * The reason for a fetch() rejection. Either the error raised by the\n * {@link OptionsBase.fetchMethod}, or the reason for an\n * AbortSignal.\n */\n fetchError?: Error\n\n /**\n * The fetch received an abort signal\n */\n fetchAborted?: true\n\n /**\n * The abort signal received was ignored, and the fetch was allowed to\n * continue.\n */\n fetchAbortIgnored?: true\n\n /**\n * The fetchMethod promise resolved successfully\n */\n fetchResolved?: true\n\n /**\n * The fetchMethod promise was rejected\n */\n fetchRejected?: true\n\n /**\n * The status of a {@link LRUCache#get} operation.\n *\n * - fetching: The item is currently being fetched. If a previous value\n * is present and allowed, that will be returned.\n * - stale: The item is in the cache, and is stale.\n * - hit: the item is in the cache\n * - miss: the item is not in the cache\n */\n get?: 'stale' | 'hit' | 'miss'\n\n /**\n * A fetch or get operation returned a stale value.\n */\n returnedStale?: true\n }\n\n /**\n * options which override the options set in the LRUCache constructor\n * when calling {@link LRUCache#fetch}.\n *\n * This is the union of {@link GetOptions} and {@link SetOptions}, plus\n * {@link OptionsBase.noDeleteOnFetchRejection},\n * {@link OptionsBase.allowStaleOnFetchRejection},\n * {@link FetchOptions.forceRefresh}, and\n * {@link FetcherOptions.context}\n *\n * Any of these may be modified in the {@link OptionsBase.fetchMethod}\n * function, but the {@link GetOptions} fields will of course have no\n * effect, as the {@link LRUCache#get} call already happened by the time\n * the fetchMethod is called.\n */\n export interface FetcherFetchOptions\n extends Pick<\n OptionsBase,\n | 'allowStale'\n | 'updateAgeOnGet'\n | 'noDeleteOnStaleGet'\n | 'sizeCalculation'\n | 'ttl'\n | 'noDisposeOnSet'\n | 'noUpdateTTL'\n | 'noDeleteOnFetchRejection'\n | 'allowStaleOnFetchRejection'\n | 'ignoreFetchAbort'\n | 'allowStaleOnFetchAbort'\n > {\n status?: Status\n size?: Size\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#fetch} method.\n */\n export interface FetchOptions\n extends FetcherFetchOptions {\n /**\n * Set to true to force a re-load of the existing data, even if it\n * is not yet stale.\n */\n forceRefresh?: boolean\n /**\n * Context provided to the {@link OptionsBase.fetchMethod} as\n * the {@link FetcherOptions.context} param.\n *\n * If the FC type is specified as unknown (the default),\n * undefined or void, then this is optional. Otherwise, it will\n * be required.\n */\n context?: FC\n signal?: AbortSignal\n status?: Status\n }\n /**\n * Options provided to {@link LRUCache#fetch} when the FC type is something\n * other than `unknown`, `undefined`, or `void`\n */\n export interface FetchOptionsWithContext\n extends FetchOptions {\n context: FC\n }\n /**\n * Options provided to {@link LRUCache#fetch} when the FC type is\n * `undefined` or `void`\n */\n export interface FetchOptionsNoContext\n extends FetchOptions {\n context?: undefined\n }\n\n export interface MemoOptions\n extends Pick<\n OptionsBase,\n | 'allowStale'\n | 'updateAgeOnGet'\n | 'noDeleteOnStaleGet'\n | 'sizeCalculation'\n | 'ttl'\n | 'noDisposeOnSet'\n | 'noUpdateTTL'\n | 'noDeleteOnFetchRejection'\n | 'allowStaleOnFetchRejection'\n | 'ignoreFetchAbort'\n | 'allowStaleOnFetchAbort'\n > {\n /**\n * Set to true to force a re-load of the existing data, even if it\n * is not yet stale.\n */\n forceRefresh?: boolean\n /**\n * Context provided to the {@link OptionsBase.memoMethod} as\n * the {@link MemoizerOptions.context} param.\n *\n * If the FC type is specified as unknown (the default),\n * undefined or void, then this is optional. Otherwise, it will\n * be required.\n */\n context?: FC\n status?: Status\n }\n /**\n * Options provided to {@link LRUCache#memo} when the FC type is something\n * other than `unknown`, `undefined`, or `void`\n */\n export interface MemoOptionsWithContext\n extends MemoOptions {\n context: FC\n }\n /**\n * Options provided to {@link LRUCache#memo} when the FC type is\n * `undefined` or `void`\n */\n export interface MemoOptionsNoContext\n extends MemoOptions {\n context?: undefined\n }\n\n /**\n * Options provided to the\n * {@link OptionsBase.memoMethod} function.\n */\n export interface MemoizerOptions {\n options: MemoizerMemoOptions\n /**\n * Object provided in the {@link MemoOptions.context} option to\n * {@link LRUCache#memo}\n */\n context: FC\n }\n\n /**\n * options which override the options set in the LRUCache constructor\n * when calling {@link LRUCache#memo}.\n *\n * This is the union of {@link GetOptions} and {@link SetOptions}, plus\n * {@link MemoOptions.forceRefresh}, and\n * {@link MemoerOptions.context}\n *\n * Any of these may be modified in the {@link OptionsBase.memoMethod}\n * function, but the {@link GetOptions} fields will of course have no\n * effect, as the {@link LRUCache#get} call already happened by the time\n * the memoMethod is called.\n */\n export interface MemoizerMemoOptions\n extends Pick<\n OptionsBase,\n | 'allowStale'\n | 'updateAgeOnGet'\n | 'noDeleteOnStaleGet'\n | 'sizeCalculation'\n | 'ttl'\n | 'noDisposeOnSet'\n | 'noUpdateTTL'\n > {\n status?: Status\n size?: Size\n start?: Milliseconds\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#has} method.\n */\n export interface HasOptions\n extends Pick, 'updateAgeOnHas'> {\n status?: Status\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#get} method.\n */\n export interface GetOptions\n extends Pick<\n OptionsBase,\n 'allowStale' | 'updateAgeOnGet' | 'noDeleteOnStaleGet'\n > {\n status?: Status\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#peek} method.\n */\n export interface PeekOptions\n extends Pick, 'allowStale'> {}\n\n /**\n * Options that may be passed to the {@link LRUCache#set} method.\n */\n export interface SetOptions\n extends Pick<\n OptionsBase,\n 'sizeCalculation' | 'ttl' | 'noDisposeOnSet' | 'noUpdateTTL'\n > {\n /**\n * If size tracking is enabled, then setting an explicit size\n * in the {@link LRUCache#set} call will prevent calling the\n * {@link OptionsBase.sizeCalculation} function.\n */\n size?: Size\n /**\n * If TTL tracking is enabled, then setting an explicit start\n * time in the {@link LRUCache#set} call will override the\n * default time from `performance.now()` or `Date.now()`.\n *\n * Note that it must be a valid value for whichever time-tracking\n * method is in use.\n */\n start?: Milliseconds\n status?: Status\n }\n\n /**\n * The type signature for the {@link OptionsBase.fetchMethod} option.\n */\n export type Fetcher = (\n key: K,\n staleValue: V | undefined,\n options: FetcherOptions\n ) => Promise | V | undefined | void\n\n /**\n * the type signature for the {@link OptionsBase.memoMethod} option.\n */\n export type Memoizer = (\n key: K,\n staleValue: V | undefined,\n options: MemoizerOptions\n ) => V\n\n /**\n * Options which may be passed to the {@link LRUCache} constructor.\n *\n * Most of these may be overridden in the various options that use\n * them.\n *\n * Despite all being technically optional, the constructor requires that\n * a cache is at minimum limited by one or more of {@link OptionsBase.max},\n * {@link OptionsBase.ttl}, or {@link OptionsBase.maxSize}.\n *\n * If {@link OptionsBase.ttl} is used alone, then it is strongly advised\n * (and in fact required by the type definitions here) that the cache\n * also set {@link OptionsBase.ttlAutopurge}, to prevent potentially\n * unbounded storage.\n *\n * All options are also available on the {@link LRUCache} instance, making\n * it safe to pass an LRUCache instance as the options argumemnt to\n * make another empty cache of the same type.\n *\n * Some options are marked as read-only, because changing them after\n * instantiation is not safe. Changing any of the other options will of\n * course only have an effect on subsequent method calls.\n */\n export interface OptionsBase {\n /**\n * The maximum number of items to store in the cache before evicting\n * old entries. This is read-only on the {@link LRUCache} instance,\n * and may not be overridden.\n *\n * If set, then storage space will be pre-allocated at construction\n * time, and the cache will perform significantly faster.\n *\n * Note that significantly fewer items may be stored, if\n * {@link OptionsBase.maxSize} and/or {@link OptionsBase.ttl} are also\n * set.\n *\n * **It is strongly recommended to set a `max` to prevent unbounded growth\n * of the cache.**\n */\n max?: Count\n\n /**\n * Max time in milliseconds for items to live in cache before they are\n * considered stale. Note that stale items are NOT preemptively removed by\n * default, and MAY live in the cache, contributing to its LRU max, long\n * after they have expired, unless {@link OptionsBase.ttlAutopurge} is\n * set.\n *\n * If set to `0` (the default value), then that means \"do not track\n * TTL\", not \"expire immediately\".\n *\n * Also, as this cache is optimized for LRU/MRU operations, some of\n * the staleness/TTL checks will reduce performance, as they will incur\n * overhead by deleting items.\n *\n * This is not primarily a TTL cache, and does not make strong TTL\n * guarantees. There is no pre-emptive pruning of expired items, but you\n * _may_ set a TTL on the cache, and it will treat expired items as missing\n * when they are fetched, and delete them.\n *\n * Optional, but must be a non-negative integer in ms if specified.\n *\n * This may be overridden by passing an options object to `cache.set()`.\n *\n * At least one of `max`, `maxSize`, or `TTL` is required. This must be a\n * positive integer if set.\n *\n * Even if ttl tracking is enabled, **it is strongly recommended to set a\n * `max` to prevent unbounded growth of the cache.**\n *\n * If ttl tracking is enabled, and `max` and `maxSize` are not set,\n * and `ttlAutopurge` is not set, then a warning will be emitted\n * cautioning about the potential for unbounded memory consumption.\n * (The TypeScript definitions will also discourage this.)\n */\n ttl?: Milliseconds\n\n /**\n * Minimum amount of time in ms in which to check for staleness.\n * Defaults to 1, which means that the current time is checked\n * at most once per millisecond.\n *\n * Set to 0 to check the current time every time staleness is tested.\n * (This reduces performance, and is theoretically unnecessary.)\n *\n * Setting this to a higher value will improve performance somewhat\n * while using ttl tracking, albeit at the expense of keeping stale\n * items around a bit longer than their TTLs would indicate.\n *\n * @default 1\n */\n ttlResolution?: Milliseconds\n\n /**\n * Preemptively remove stale items from the cache.\n *\n * Note that this may *significantly* degrade performance, especially if\n * the cache is storing a large number of items. It is almost always best\n * to just leave the stale items in the cache, and let them fall out as new\n * items are added.\n *\n * Note that this means that {@link OptionsBase.allowStale} is a bit\n * pointless, as stale items will be deleted almost as soon as they\n * expire.\n *\n * Use with caution!\n */\n ttlAutopurge?: boolean\n\n /**\n * When using time-expiring entries with `ttl`, setting this to `true` will\n * make each item's age reset to 0 whenever it is retrieved from cache with\n * {@link LRUCache#get}, causing it to not expire. (It can still fall out\n * of cache based on recency of use, of course.)\n *\n * Has no effect if {@link OptionsBase.ttl} is not set.\n *\n * This may be overridden by passing an options object to `cache.get()`.\n */\n updateAgeOnGet?: boolean\n\n /**\n * When using time-expiring entries with `ttl`, setting this to `true` will\n * make each item's age reset to 0 whenever its presence in the cache is\n * checked with {@link LRUCache#has}, causing it to not expire. (It can\n * still fall out of cache based on recency of use, of course.)\n *\n * Has no effect if {@link OptionsBase.ttl} is not set.\n */\n updateAgeOnHas?: boolean\n\n /**\n * Allow {@link LRUCache#get} and {@link LRUCache#fetch} calls to return\n * stale data, if available.\n *\n * By default, if you set `ttl`, stale items will only be deleted from the\n * cache when you `get(key)`. That is, it's not preemptively pruning items,\n * unless {@link OptionsBase.ttlAutopurge} is set.\n *\n * If you set `allowStale:true`, it'll return the stale value *as well as*\n * deleting it. If you don't set this, then it'll return `undefined` when\n * you try to get a stale entry.\n *\n * Note that when a stale entry is fetched, _even if it is returned due to\n * `allowStale` being set_, it is removed from the cache immediately. You\n * can suppress this behavior by setting\n * {@link OptionsBase.noDeleteOnStaleGet}, either in the constructor, or in\n * the options provided to {@link LRUCache#get}.\n *\n * This may be overridden by passing an options object to `cache.get()`.\n * The `cache.has()` method will always return `false` for stale items.\n *\n * Only relevant if a ttl is set.\n */\n allowStale?: boolean\n\n /**\n * Function that is called on items when they are dropped from the\n * cache, as `dispose(value, key, reason)`.\n *\n * This can be handy if you want to close file descriptors or do\n * other cleanup tasks when items are no longer stored in the cache.\n *\n * **NOTE**: It is called _before_ the item has been fully removed\n * from the cache, so if you want to put it right back in, you need\n * to wait until the next tick. If you try to add it back in during\n * the `dispose()` function call, it will break things in subtle and\n * weird ways.\n *\n * Unlike several other options, this may _not_ be overridden by\n * passing an option to `set()`, for performance reasons.\n *\n * The `reason` will be one of the following strings, corresponding\n * to the reason for the item's deletion:\n *\n * - `evict` Item was evicted to make space for a new addition\n * - `set` Item was overwritten by a new value\n * - `expire` Item expired its TTL\n * - `fetch` Item was deleted due to a failed or aborted fetch, or a\n * fetchMethod returning `undefined.\n * - `delete` Item was removed by explicit `cache.delete(key)`,\n * `cache.clear()`, or `cache.set(key, undefined)`.\n */\n dispose?: Disposer\n\n /**\n * The same as {@link OptionsBase.dispose}, but called *after* the entry\n * is completely removed and the cache is once again in a clean state.\n *\n * It is safe to add an item right back into the cache at this point.\n * However, note that it is *very* easy to inadvertently create infinite\n * recursion this way.\n */\n disposeAfter?: Disposer\n\n /**\n * Set to true to suppress calling the\n * {@link OptionsBase.dispose} function if the entry key is\n * still accessible within the cache.\n *\n * This may be overridden by passing an options object to\n * {@link LRUCache#set}.\n *\n * Only relevant if `dispose` or `disposeAfter` are set.\n */\n noDisposeOnSet?: boolean\n\n /**\n * Boolean flag to tell the cache to not update the TTL when setting a new\n * value for an existing key (ie, when updating a value rather than\n * inserting a new value). Note that the TTL value is _always_ set (if\n * provided) when adding a new entry into the cache.\n *\n * Has no effect if a {@link OptionsBase.ttl} is not set.\n *\n * May be passed as an option to {@link LRUCache#set}.\n */\n noUpdateTTL?: boolean\n\n /**\n * Set to a positive integer to track the sizes of items added to the\n * cache, and automatically evict items in order to stay below this size.\n * Note that this may result in fewer than `max` items being stored.\n *\n * Attempting to add an item to the cache whose calculated size is greater\n * that this amount will be a no-op. The item will not be cached, and no\n * other items will be evicted.\n *\n * Optional, must be a positive integer if provided.\n *\n * Sets `maxEntrySize` to the same value, unless a different value is\n * provided for `maxEntrySize`.\n *\n * At least one of `max`, `maxSize`, or `TTL` is required. This must be a\n * positive integer if set.\n *\n * Even if size tracking is enabled, **it is strongly recommended to set a\n * `max` to prevent unbounded growth of the cache.**\n *\n * Note also that size tracking can negatively impact performance,\n * though for most cases, only minimally.\n */\n maxSize?: Size\n\n /**\n * The maximum allowed size for any single item in the cache.\n *\n * If a larger item is passed to {@link LRUCache#set} or returned by a\n * {@link OptionsBase.fetchMethod} or {@link OptionsBase.memoMethod}, then\n * it will not be stored in the cache.\n *\n * Attempting to add an item whose calculated size is greater than\n * this amount will not cache the item or evict any old items, but\n * WILL delete an existing value if one is already present.\n *\n * Optional, must be a positive integer if provided. Defaults to\n * the value of `maxSize` if provided.\n */\n maxEntrySize?: Size\n\n /**\n * A function that returns a number indicating the item's size.\n *\n * Requires {@link OptionsBase.maxSize} to be set.\n *\n * If not provided, and {@link OptionsBase.maxSize} or\n * {@link OptionsBase.maxEntrySize} are set, then all\n * {@link LRUCache#set} calls **must** provide an explicit\n * {@link SetOptions.size} or sizeCalculation param.\n */\n sizeCalculation?: SizeCalculator\n\n /**\n * Method that provides the implementation for {@link LRUCache#fetch}\n *\n * ```ts\n * fetchMethod(key, staleValue, { signal, options, context })\n * ```\n *\n * If `fetchMethod` is not provided, then `cache.fetch(key)` is equivalent\n * to `Promise.resolve(cache.get(key))`.\n *\n * If at any time, `signal.aborted` is set to `true`, or if the\n * `signal.onabort` method is called, or if it emits an `'abort'` event\n * which you can listen to with `addEventListener`, then that means that\n * the fetch should be abandoned. This may be passed along to async\n * functions aware of AbortController/AbortSignal behavior.\n *\n * The `fetchMethod` should **only** return `undefined` or a Promise\n * resolving to `undefined` if the AbortController signaled an `abort`\n * event. In all other cases, it should return or resolve to a value\n * suitable for adding to the cache.\n *\n * The `options` object is a union of the options that may be provided to\n * `set()` and `get()`. If they are modified, then that will result in\n * modifying the settings to `cache.set()` when the value is resolved, and\n * in the case of\n * {@link OptionsBase.noDeleteOnFetchRejection} and\n * {@link OptionsBase.allowStaleOnFetchRejection}, the handling of\n * `fetchMethod` failures.\n *\n * For example, a DNS cache may update the TTL based on the value returned\n * from a remote DNS server by changing `options.ttl` in the `fetchMethod`.\n */\n fetchMethod?: Fetcher\n\n /**\n * Method that provides the implementation for {@link LRUCache#memo}\n */\n memoMethod?: Memoizer\n\n /**\n * Set to true to suppress the deletion of stale data when a\n * {@link OptionsBase.fetchMethod} returns a rejected promise.\n */\n noDeleteOnFetchRejection?: boolean\n\n /**\n * Do not delete stale items when they are retrieved with\n * {@link LRUCache#get}.\n *\n * Note that the `get` return value will still be `undefined`\n * unless {@link OptionsBase.allowStale} is true.\n *\n * When using time-expiring entries with `ttl`, by default stale\n * items will be removed from the cache when the key is accessed\n * with `cache.get()`.\n *\n * Setting this option will cause stale items to remain in the cache, until\n * they are explicitly deleted with `cache.delete(key)`, or retrieved with\n * `noDeleteOnStaleGet` set to `false`.\n *\n * This may be overridden by passing an options object to `cache.get()`.\n *\n * Only relevant if a ttl is used.\n */\n noDeleteOnStaleGet?: boolean\n\n /**\n * Set to true to allow returning stale data when a\n * {@link OptionsBase.fetchMethod} throws an error or returns a rejected\n * promise.\n *\n * This differs from using {@link OptionsBase.allowStale} in that stale\n * data will ONLY be returned in the case that the {@link LRUCache#fetch}\n * fails, not any other times.\n *\n * If a `fetchMethod` fails, and there is no stale value available, the\n * `fetch()` will resolve to `undefined`. Ie, all `fetchMethod` errors are\n * suppressed.\n *\n * Implies `noDeleteOnFetchRejection`.\n *\n * This may be set in calls to `fetch()`, or defaulted on the constructor,\n * or overridden by modifying the options object in the `fetchMethod`.\n */\n allowStaleOnFetchRejection?: boolean\n\n /**\n * Set to true to return a stale value from the cache when the\n * `AbortSignal` passed to the {@link OptionsBase.fetchMethod} dispatches\n * an `'abort'` event, whether user-triggered, or due to internal cache\n * behavior.\n *\n * Unless {@link OptionsBase.ignoreFetchAbort} is also set, the underlying\n * {@link OptionsBase.fetchMethod} will still be considered canceled, and\n * any value it returns will be ignored and not cached.\n *\n * Caveat: since fetches are aborted when a new value is explicitly\n * set in the cache, this can lead to fetch returning a stale value,\n * since that was the fallback value _at the moment the `fetch()` was\n * initiated_, even though the new updated value is now present in\n * the cache.\n *\n * For example:\n *\n * ```ts\n * const cache = new LRUCache({\n * ttl: 100,\n * fetchMethod: async (url, oldValue, { signal }) => {\n * const res = await fetch(url, { signal })\n * return await res.json()\n * }\n * })\n * cache.set('https://example.com/', { some: 'data' })\n * // 100ms go by...\n * const result = cache.fetch('https://example.com/')\n * cache.set('https://example.com/', { other: 'thing' })\n * console.log(await result) // { some: 'data' }\n * console.log(cache.get('https://example.com/')) // { other: 'thing' }\n * ```\n */\n allowStaleOnFetchAbort?: boolean\n\n /**\n * Set to true to ignore the `abort` event emitted by the `AbortSignal`\n * object passed to {@link OptionsBase.fetchMethod}, and still cache the\n * resulting resolution value, as long as it is not `undefined`.\n *\n * When used on its own, this means aborted {@link LRUCache#fetch} calls\n * are not immediately resolved or rejected when they are aborted, and\n * instead take the full time to await.\n *\n * When used with {@link OptionsBase.allowStaleOnFetchAbort}, aborted\n * {@link LRUCache#fetch} calls will resolve immediately to their stale\n * cached value or `undefined`, and will continue to process and eventually\n * update the cache when they resolve, as long as the resulting value is\n * not `undefined`, thus supporting a \"return stale on timeout while\n * refreshing\" mechanism by passing `AbortSignal.timeout(n)` as the signal.\n *\n * For example:\n *\n * ```ts\n * const c = new LRUCache({\n * ttl: 100,\n * ignoreFetchAbort: true,\n * allowStaleOnFetchAbort: true,\n * fetchMethod: async (key, oldValue, { signal }) => {\n * // note: do NOT pass the signal to fetch()!\n * // let's say this fetch can take a long time.\n * const res = await fetch(`https://slow-backend-server/${key}`)\n * return await res.json()\n * },\n * })\n *\n * // this will return the stale value after 100ms, while still\n * // updating in the background for next time.\n * const val = await c.fetch('key', { signal: AbortSignal.timeout(100) })\n * ```\n *\n * **Note**: regardless of this setting, an `abort` event _is still\n * emitted on the `AbortSignal` object_, so may result in invalid results\n * when passed to other underlying APIs that use AbortSignals.\n *\n * This may be overridden in the {@link OptionsBase.fetchMethod} or the\n * call to {@link LRUCache#fetch}.\n */\n ignoreFetchAbort?: boolean\n }\n\n export interface OptionsMaxLimit\n extends OptionsBase {\n max: Count\n }\n export interface OptionsTTLLimit\n extends OptionsBase {\n ttl: Milliseconds\n ttlAutopurge: boolean\n }\n export interface OptionsSizeLimit\n extends OptionsBase {\n maxSize: Size\n }\n\n /**\n * The valid safe options for the {@link LRUCache} constructor\n */\n export type Options =\n | OptionsMaxLimit\n | OptionsSizeLimit\n | OptionsTTLLimit\n\n /**\n * Entry objects used by {@link LRUCache#load} and {@link LRUCache#dump},\n * and returned by {@link LRUCache#info}.\n */\n export interface Entry {\n value: V\n ttl?: Milliseconds\n size?: Size\n start?: Milliseconds\n }\n}\n\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nexport class LRUCache\n implements Map\n{\n // options that cannot be changed without disaster\n readonly #max: LRUCache.Count\n readonly #maxSize: LRUCache.Size\n readonly #dispose?: LRUCache.Disposer\n readonly #disposeAfter?: LRUCache.Disposer\n readonly #fetchMethod?: LRUCache.Fetcher\n readonly #memoMethod?: LRUCache.Memoizer\n\n /**\n * {@link LRUCache.OptionsBase.ttl}\n */\n ttl: LRUCache.Milliseconds\n\n /**\n * {@link LRUCache.OptionsBase.ttlResolution}\n */\n ttlResolution: LRUCache.Milliseconds\n /**\n * {@link LRUCache.OptionsBase.ttlAutopurge}\n */\n ttlAutopurge: boolean\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnGet}\n */\n updateAgeOnGet: boolean\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnHas}\n */\n updateAgeOnHas: boolean\n /**\n * {@link LRUCache.OptionsBase.allowStale}\n */\n allowStale: boolean\n\n /**\n * {@link LRUCache.OptionsBase.noDisposeOnSet}\n */\n noDisposeOnSet: boolean\n /**\n * {@link LRUCache.OptionsBase.noUpdateTTL}\n */\n noUpdateTTL: boolean\n /**\n * {@link LRUCache.OptionsBase.maxEntrySize}\n */\n maxEntrySize: LRUCache.Size\n /**\n * {@link LRUCache.OptionsBase.sizeCalculation}\n */\n sizeCalculation?: LRUCache.SizeCalculator\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n */\n noDeleteOnFetchRejection: boolean\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n */\n noDeleteOnStaleGet: boolean\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n */\n allowStaleOnFetchAbort: boolean\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n */\n allowStaleOnFetchRejection: boolean\n /**\n * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n */\n ignoreFetchAbort: boolean\n\n // computed properties\n #size: LRUCache.Count\n #calculatedSize: LRUCache.Size\n #keyMap: Map\n #keyList: (K | undefined)[]\n #valList: (V | BackgroundFetch | undefined)[]\n #next: NumberArray\n #prev: NumberArray\n #head: Index\n #tail: Index\n #free: StackLike\n #disposed?: DisposeTask[]\n #sizes?: ZeroArray\n #starts?: ZeroArray\n #ttls?: ZeroArray\n\n #hasDispose: boolean\n #hasFetchMethod: boolean\n #hasDisposeAfter: boolean\n\n /**\n * Do not call this method unless you need to inspect the\n * inner workings of the cache. If anything returned by this\n * object is modified in any way, strange breakage may occur.\n *\n * These fields are private for a reason!\n *\n * @internal\n */\n static unsafeExposeInternals<\n K extends {},\n V extends {},\n FC extends unknown = unknown\n >(c: LRUCache) {\n return {\n // properties\n starts: c.#starts,\n ttls: c.#ttls,\n sizes: c.#sizes,\n keyMap: c.#keyMap as Map,\n keyList: c.#keyList,\n valList: c.#valList,\n next: c.#next,\n prev: c.#prev,\n get head() {\n return c.#head\n },\n get tail() {\n return c.#tail\n },\n free: c.#free,\n // methods\n isBackgroundFetch: (p: any) => c.#isBackgroundFetch(p),\n backgroundFetch: (\n k: K,\n index: number | undefined,\n options: LRUCache.FetchOptions,\n context: any\n ): BackgroundFetch =>\n c.#backgroundFetch(\n k,\n index as Index | undefined,\n options,\n context\n ),\n moveToTail: (index: number): void =>\n c.#moveToTail(index as Index),\n indexes: (options?: { allowStale: boolean }) =>\n c.#indexes(options),\n rindexes: (options?: { allowStale: boolean }) =>\n c.#rindexes(options),\n isStale: (index: number | undefined) =>\n c.#isStale(index as Index),\n }\n }\n\n // Protected read-only members\n\n /**\n * {@link LRUCache.OptionsBase.max} (read-only)\n */\n get max(): LRUCache.Count {\n return this.#max\n }\n /**\n * {@link LRUCache.OptionsBase.maxSize} (read-only)\n */\n get maxSize(): LRUCache.Count {\n return this.#maxSize\n }\n /**\n * The total computed size of items in the cache (read-only)\n */\n get calculatedSize(): LRUCache.Size {\n return this.#calculatedSize\n }\n /**\n * The number of items stored in the cache (read-only)\n */\n get size(): LRUCache.Count {\n return this.#size\n }\n /**\n * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n */\n get fetchMethod(): LRUCache.Fetcher | undefined {\n return this.#fetchMethod\n }\n get memoMethod(): LRUCache.Memoizer | undefined {\n return this.#memoMethod\n }\n /**\n * {@link LRUCache.OptionsBase.dispose} (read-only)\n */\n get dispose() {\n return this.#dispose\n }\n /**\n * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n */\n get disposeAfter() {\n return this.#disposeAfter\n }\n\n constructor(\n options: LRUCache.Options | LRUCache\n ) {\n const {\n max = 0,\n ttl,\n ttlResolution = 1,\n ttlAutopurge,\n updateAgeOnGet,\n updateAgeOnHas,\n allowStale,\n dispose,\n disposeAfter,\n noDisposeOnSet,\n noUpdateTTL,\n maxSize = 0,\n maxEntrySize = 0,\n sizeCalculation,\n fetchMethod,\n memoMethod,\n noDeleteOnFetchRejection,\n noDeleteOnStaleGet,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n } = options\n\n if (max !== 0 && !isPosInt(max)) {\n throw new TypeError('max option must be a nonnegative integer')\n }\n\n const UintArray = max ? getUintArray(max) : Array\n if (!UintArray) {\n throw new Error('invalid max value: ' + max)\n }\n\n this.#max = max\n this.#maxSize = maxSize\n this.maxEntrySize = maxEntrySize || this.#maxSize\n this.sizeCalculation = sizeCalculation\n if (this.sizeCalculation) {\n if (!this.#maxSize && !this.maxEntrySize) {\n throw new TypeError(\n 'cannot set sizeCalculation without setting maxSize or maxEntrySize'\n )\n }\n if (typeof this.sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation set to non-function')\n }\n }\n\n if (\n memoMethod !== undefined &&\n typeof memoMethod !== 'function'\n ) {\n throw new TypeError('memoMethod must be a function if defined')\n }\n this.#memoMethod = memoMethod\n\n if (\n fetchMethod !== undefined &&\n typeof fetchMethod !== 'function'\n ) {\n throw new TypeError(\n 'fetchMethod must be a function if specified'\n )\n }\n this.#fetchMethod = fetchMethod\n this.#hasFetchMethod = !!fetchMethod\n\n this.#keyMap = new Map()\n this.#keyList = new Array(max).fill(undefined)\n this.#valList = new Array(max).fill(undefined)\n this.#next = new UintArray(max)\n this.#prev = new UintArray(max)\n this.#head = 0 as Index\n this.#tail = 0 as Index\n this.#free = Stack.create(max)\n this.#size = 0\n this.#calculatedSize = 0\n\n if (typeof dispose === 'function') {\n this.#dispose = dispose\n }\n if (typeof disposeAfter === 'function') {\n this.#disposeAfter = disposeAfter\n this.#disposed = []\n } else {\n this.#disposeAfter = undefined\n this.#disposed = undefined\n }\n this.#hasDispose = !!this.#dispose\n this.#hasDisposeAfter = !!this.#disposeAfter\n\n this.noDisposeOnSet = !!noDisposeOnSet\n this.noUpdateTTL = !!noUpdateTTL\n this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection\n this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection\n this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort\n this.ignoreFetchAbort = !!ignoreFetchAbort\n\n // NB: maxEntrySize is set to maxSize if it's set\n if (this.maxEntrySize !== 0) {\n if (this.#maxSize !== 0) {\n if (!isPosInt(this.#maxSize)) {\n throw new TypeError(\n 'maxSize must be a positive integer if specified'\n )\n }\n }\n if (!isPosInt(this.maxEntrySize)) {\n throw new TypeError(\n 'maxEntrySize must be a positive integer if specified'\n )\n }\n this.#initializeSizeTracking()\n }\n\n this.allowStale = !!allowStale\n this.noDeleteOnStaleGet = !!noDeleteOnStaleGet\n this.updateAgeOnGet = !!updateAgeOnGet\n this.updateAgeOnHas = !!updateAgeOnHas\n this.ttlResolution =\n isPosInt(ttlResolution) || ttlResolution === 0\n ? ttlResolution\n : 1\n this.ttlAutopurge = !!ttlAutopurge\n this.ttl = ttl || 0\n if (this.ttl) {\n if (!isPosInt(this.ttl)) {\n throw new TypeError(\n 'ttl must be a positive integer if specified'\n )\n }\n this.#initializeTTLTracking()\n }\n\n // do not allow completely unbounded caches\n if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n throw new TypeError(\n 'At least one of max, maxSize, or ttl is required'\n )\n }\n if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n const code = 'LRU_CACHE_UNBOUNDED'\n if (shouldWarn(code)) {\n warned.add(code)\n const msg =\n 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n 'result in unbounded memory consumption.'\n emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache)\n }\n }\n }\n\n /**\n * Return the number of ms left in the item's TTL. If item is not in cache,\n * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n */\n getRemainingTTL(key: K) {\n return this.#keyMap.has(key) ? Infinity : 0\n }\n\n #initializeTTLTracking() {\n const ttls = new ZeroArray(this.#max)\n const starts = new ZeroArray(this.#max)\n this.#ttls = ttls\n this.#starts = starts\n\n this.#setItemTTL = (index, ttl, start = perf.now()) => {\n starts[index] = ttl !== 0 ? start : 0\n ttls[index] = ttl\n if (ttl !== 0 && this.ttlAutopurge) {\n const t = setTimeout(() => {\n if (this.#isStale(index)) {\n this.#delete(this.#keyList[index] as K, 'expire')\n }\n }, ttl + 1)\n // unref() not supported on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref()\n }\n /* c8 ignore stop */\n }\n }\n\n this.#updateItemAge = index => {\n starts[index] = ttls[index] !== 0 ? perf.now() : 0\n }\n\n this.#statusTTL = (status, index) => {\n if (ttls[index]) {\n const ttl = ttls[index]\n const start = starts[index]\n /* c8 ignore next */\n if (!ttl || !start) return\n status.ttl = ttl\n status.start = start\n status.now = cachedNow || getNow()\n const age = status.now - start\n status.remainingTTL = ttl - age\n }\n }\n\n // debounce calls to perf.now() to 1s so we're not hitting\n // that costly call repeatedly.\n let cachedNow = 0\n const getNow = () => {\n const n = perf.now()\n if (this.ttlResolution > 0) {\n cachedNow = n\n const t = setTimeout(\n () => (cachedNow = 0),\n this.ttlResolution\n )\n // not available on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref()\n }\n /* c8 ignore stop */\n }\n return n\n }\n\n this.getRemainingTTL = key => {\n const index = this.#keyMap.get(key)\n if (index === undefined) {\n return 0\n }\n const ttl = ttls[index]\n const start = starts[index]\n if (!ttl || !start) {\n return Infinity\n }\n const age = (cachedNow || getNow()) - start\n return ttl - age\n }\n\n this.#isStale = index => {\n const s = starts[index]\n const t = ttls[index]\n return !!t && !!s && (cachedNow || getNow()) - s > t\n }\n }\n\n // conditionally set private methods related to TTL\n #updateItemAge: (index: Index) => void = () => {}\n #statusTTL: (status: LRUCache.Status, index: Index) => void =\n () => {}\n #setItemTTL: (\n index: Index,\n ttl: LRUCache.Milliseconds,\n start?: LRUCache.Milliseconds\n // ignore because we never call this if we're not already in TTL mode\n /* c8 ignore start */\n ) => void = () => {}\n /* c8 ignore stop */\n\n #isStale: (index: Index) => boolean = () => false\n\n #initializeSizeTracking() {\n const sizes = new ZeroArray(this.#max)\n this.#calculatedSize = 0\n this.#sizes = sizes\n this.#removeItemSize = index => {\n this.#calculatedSize -= sizes[index] as number\n sizes[index] = 0\n }\n this.#requireSize = (k, v, size, sizeCalculation) => {\n // provisionally accept background fetches.\n // actual value size will be checked when they return.\n if (this.#isBackgroundFetch(v)) {\n return 0\n }\n if (!isPosInt(size)) {\n if (sizeCalculation) {\n if (typeof sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation must be a function')\n }\n size = sizeCalculation(v, k)\n if (!isPosInt(size)) {\n throw new TypeError(\n 'sizeCalculation return invalid (expect positive integer)'\n )\n }\n } else {\n throw new TypeError(\n 'invalid size value (must be positive integer). ' +\n 'When maxSize or maxEntrySize is used, sizeCalculation ' +\n 'or size must be set.'\n )\n }\n }\n return size\n }\n this.#addItemSize = (\n index: Index,\n size: LRUCache.Size,\n status?: LRUCache.Status\n ) => {\n sizes[index] = size\n if (this.#maxSize) {\n const maxSize = this.#maxSize - (sizes[index] as number)\n while (this.#calculatedSize > maxSize) {\n this.#evict(true)\n }\n }\n this.#calculatedSize += sizes[index] as number\n if (status) {\n status.entrySize = size\n status.totalCalculatedSize = this.#calculatedSize\n }\n }\n }\n\n #removeItemSize: (index: Index) => void = _i => {}\n #addItemSize: (\n index: Index,\n size: LRUCache.Size,\n status?: LRUCache.Status\n ) => void = (_i, _s, _st) => {}\n #requireSize: (\n k: K,\n v: V | BackgroundFetch,\n size?: LRUCache.Size,\n sizeCalculation?: LRUCache.SizeCalculator\n ) => LRUCache.Size = (\n _k: K,\n _v: V | BackgroundFetch,\n size?: LRUCache.Size,\n sizeCalculation?: LRUCache.SizeCalculator\n ) => {\n if (size || sizeCalculation) {\n throw new TypeError(\n 'cannot set size without setting maxSize or maxEntrySize on cache'\n )\n }\n return 0\n };\n\n *#indexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#tail; true; ) {\n if (!this.#isValidIndex(i)) {\n break\n }\n if (allowStale || !this.#isStale(i)) {\n yield i\n }\n if (i === this.#head) {\n break\n } else {\n i = this.#prev[i] as Index\n }\n }\n }\n }\n\n *#rindexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#head; true; ) {\n if (!this.#isValidIndex(i)) {\n break\n }\n if (allowStale || !this.#isStale(i)) {\n yield i\n }\n if (i === this.#tail) {\n break\n } else {\n i = this.#next[i] as Index\n }\n }\n }\n }\n\n #isValidIndex(index: Index) {\n return (\n index !== undefined &&\n this.#keyMap.get(this.#keyList[index] as K) === index\n )\n }\n\n /**\n * Return a generator yielding `[key, value]` pairs,\n * in order from most recently used to least recently used.\n */\n *entries() {\n for (const i of this.#indexes()) {\n if (\n this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])\n ) {\n yield [this.#keyList[i], this.#valList[i]] as [K, V]\n }\n }\n }\n\n /**\n * Inverse order version of {@link LRUCache.entries}\n *\n * Return a generator yielding `[key, value]` pairs,\n * in order from least recently used to most recently used.\n */\n *rentries() {\n for (const i of this.#rindexes()) {\n if (\n this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])\n ) {\n yield [this.#keyList[i], this.#valList[i]]\n }\n }\n }\n\n /**\n * Return a generator yielding the keys in the cache,\n * in order from most recently used to least recently used.\n */\n *keys() {\n for (const i of this.#indexes()) {\n const k = this.#keyList[i]\n if (\n k !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])\n ) {\n yield k\n }\n }\n }\n\n /**\n * Inverse order version of {@link LRUCache.keys}\n *\n * Return a generator yielding the keys in the cache,\n * in order from least recently used to most recently used.\n */\n *rkeys() {\n for (const i of this.#rindexes()) {\n const k = this.#keyList[i]\n if (\n k !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])\n ) {\n yield k\n }\n }\n }\n\n /**\n * Return a generator yielding the values in the cache,\n * in order from most recently used to least recently used.\n */\n *values() {\n for (const i of this.#indexes()) {\n const v = this.#valList[i]\n if (\n v !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])\n ) {\n yield this.#valList[i] as V\n }\n }\n }\n\n /**\n * Inverse order version of {@link LRUCache.values}\n *\n * Return a generator yielding the values in the cache,\n * in order from least recently used to most recently used.\n */\n *rvalues() {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i]\n if (\n v !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])\n ) {\n yield this.#valList[i]\n }\n }\n }\n\n /**\n * Iterating over the cache itself yields the same results as\n * {@link LRUCache.entries}\n */\n [Symbol.iterator]() {\n return this.entries()\n }\n\n /**\n * A String value that is used in the creation of the default string\n * description of an object. Called by the built-in method\n * `Object.prototype.toString`.\n */\n [Symbol.toStringTag] = 'LRUCache'\n\n /**\n * Find a value for which the supplied fn method returns a truthy value,\n * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n */\n find(\n fn: (v: V, k: K, self: LRUCache) => boolean,\n getOptions: LRUCache.GetOptions = {}\n ) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i]\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v\n if (value === undefined) continue\n if (fn(value, this.#keyList[i] as K, this)) {\n return this.get(this.#keyList[i] as K, getOptions)\n }\n }\n }\n\n /**\n * Call the supplied function on each item in the cache, in order from most\n * recently used to least recently used.\n *\n * `fn` is called as `fn(value, key, cache)`.\n *\n * If `thisp` is provided, function will be called in the `this`-context of\n * the provided object, or the cache if no `thisp` object is provided.\n *\n * Does not update age or recenty of use, or iterate over stale values.\n */\n forEach(\n fn: (v: V, k: K, self: LRUCache) => any,\n thisp: any = this\n ) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i]\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v\n if (value === undefined) continue\n fn.call(thisp, value, this.#keyList[i] as K, this)\n }\n }\n\n /**\n * The same as {@link LRUCache.forEach} but items are iterated over in\n * reverse order. (ie, less recently used items are iterated over first.)\n */\n rforEach(\n fn: (v: V, k: K, self: LRUCache) => any,\n thisp: any = this\n ) {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i]\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v\n if (value === undefined) continue\n fn.call(thisp, value, this.#keyList[i] as K, this)\n }\n }\n\n /**\n * Delete any stale entries. Returns true if anything was removed,\n * false otherwise.\n */\n purgeStale() {\n let deleted = false\n for (const i of this.#rindexes({ allowStale: true })) {\n if (this.#isStale(i)) {\n this.#delete(this.#keyList[i] as K, 'expire')\n deleted = true\n }\n }\n return deleted\n }\n\n /**\n * Get the extended info about a given entry, to get its value, size, and\n * TTL info simultaneously. Returns `undefined` if the key is not present.\n *\n * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n * serialization, the `start` value is always the current timestamp, and the\n * `ttl` is a calculated remaining time to live (negative if expired).\n *\n * Always returns stale values, if their info is found in the cache, so be\n * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n * if relevant.\n */\n info(key: K): LRUCache.Entry | undefined {\n const i = this.#keyMap.get(key)\n if (i === undefined) return undefined\n const v = this.#valList[i]\n const value: V | undefined = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v\n if (value === undefined) return undefined\n const entry: LRUCache.Entry = { value }\n if (this.#ttls && this.#starts) {\n const ttl = this.#ttls[i]\n const start = this.#starts[i]\n if (ttl && start) {\n const remain = ttl - (perf.now() - start)\n entry.ttl = remain\n entry.start = Date.now()\n }\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i]\n }\n return entry\n }\n\n /**\n * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n * passed to {@link LRLUCache#load}.\n *\n * The `start` fields are calculated relative to a portable `Date.now()`\n * timestamp, even if `performance.now()` is available.\n *\n * Stale entries are always included in the `dump`, even if\n * {@link LRUCache.OptionsBase.allowStale} is false.\n *\n * Note: this returns an actual array, not a generator, so it can be more\n * easily passed around.\n */\n dump() {\n const arr: [K, LRUCache.Entry][] = []\n for (const i of this.#indexes({ allowStale: true })) {\n const key = this.#keyList[i]\n const v = this.#valList[i]\n const value: V | undefined = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v\n if (value === undefined || key === undefined) continue\n const entry: LRUCache.Entry = { value }\n if (this.#ttls && this.#starts) {\n entry.ttl = this.#ttls[i]\n // always dump the start relative to a portable timestamp\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = perf.now() - (this.#starts[i] as number)\n entry.start = Math.floor(Date.now() - age)\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i]\n }\n arr.unshift([key, entry])\n }\n return arr\n }\n\n /**\n * Reset the cache and load in the items in entries in the order listed.\n *\n * The shape of the resulting cache may be different if the same options are\n * not used in both caches.\n *\n * The `start` fields are assumed to be calculated relative to a portable\n * `Date.now()` timestamp, even if `performance.now()` is available.\n */\n load(arr: [K, LRUCache.Entry][]) {\n this.clear()\n for (const [key, entry] of arr) {\n if (entry.start) {\n // entry.start is a portable timestamp, but we may be using\n // node's performance.now(), so calculate the offset, so that\n // we get the intended remaining TTL, no matter how long it's\n // been on ice.\n //\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = Date.now() - entry.start\n entry.start = perf.now() - age\n }\n this.set(key, entry.value, entry)\n }\n }\n\n /**\n * Add a value to the cache.\n *\n * Note: if `undefined` is specified as a value, this is an alias for\n * {@link LRUCache#delete}\n *\n * Fields on the {@link LRUCache.SetOptions} options param will override\n * their corresponding values in the constructor options for the scope\n * of this single `set()` operation.\n *\n * If `start` is provided, then that will set the effective start\n * time for the TTL calculation. Note that this must be a previous\n * value of `performance.now()` if supported, or a previous value of\n * `Date.now()` if not.\n *\n * Options object may also include `size`, which will prevent\n * calling the `sizeCalculation` function and just use the specified\n * number if it is a positive integer, and `noDisposeOnSet` which\n * will prevent calling a `dispose` function in the case of\n * overwrites.\n *\n * If the `size` (or return value of `sizeCalculation`) for a given\n * entry is greater than `maxEntrySize`, then the item will not be\n * added to the cache.\n *\n * Will update the recency of the entry.\n *\n * If the value is `undefined`, then this is an alias for\n * `cache.delete(key)`. `undefined` is never stored in the cache.\n */\n set(\n k: K,\n v: V | BackgroundFetch | undefined,\n setOptions: LRUCache.SetOptions = {}\n ) {\n if (v === undefined) {\n this.delete(k)\n return this\n }\n const {\n ttl = this.ttl,\n start,\n noDisposeOnSet = this.noDisposeOnSet,\n sizeCalculation = this.sizeCalculation,\n status,\n } = setOptions\n let { noUpdateTTL = this.noUpdateTTL } = setOptions\n\n const size = this.#requireSize(\n k,\n v,\n setOptions.size || 0,\n sizeCalculation\n )\n // if the item doesn't fit, don't do anything\n // NB: maxEntrySize set to maxSize by default\n if (this.maxEntrySize && size > this.maxEntrySize) {\n if (status) {\n status.set = 'miss'\n status.maxEntrySizeExceeded = true\n }\n // have to delete, in case something is there already.\n this.#delete(k, 'set')\n return this\n }\n let index = this.#size === 0 ? undefined : this.#keyMap.get(k)\n if (index === undefined) {\n // addition\n index = (\n this.#size === 0\n ? this.#tail\n : this.#free.length !== 0\n ? this.#free.pop()\n : this.#size === this.#max\n ? this.#evict(false)\n : this.#size\n ) as Index\n this.#keyList[index] = k\n this.#valList[index] = v\n this.#keyMap.set(k, index)\n this.#next[this.#tail] = index\n this.#prev[index] = this.#tail\n this.#tail = index\n this.#size++\n this.#addItemSize(index, size, status)\n if (status) status.set = 'add'\n noUpdateTTL = false\n } else {\n // update\n this.#moveToTail(index)\n const oldVal = this.#valList[index] as V | BackgroundFetch\n if (v !== oldVal) {\n if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n oldVal.__abortController.abort(new Error('replaced'))\n const { __staleWhileFetching: s } = oldVal\n if (s !== undefined && !noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(s as V, k, 'set')\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([s as V, k, 'set'])\n }\n }\n } else if (!noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(oldVal as V, k, 'set')\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([oldVal as V, k, 'set'])\n }\n }\n this.#removeItemSize(index)\n this.#addItemSize(index, size, status)\n this.#valList[index] = v\n if (status) {\n status.set = 'replace'\n const oldValue =\n oldVal && this.#isBackgroundFetch(oldVal)\n ? oldVal.__staleWhileFetching\n : oldVal\n if (oldValue !== undefined) status.oldValue = oldValue\n }\n } else if (status) {\n status.set = 'update'\n }\n }\n if (ttl !== 0 && !this.#ttls) {\n this.#initializeTTLTracking()\n }\n if (this.#ttls) {\n if (!noUpdateTTL) {\n this.#setItemTTL(index, ttl, start)\n }\n if (status) this.#statusTTL(status, index)\n }\n if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed\n let task: DisposeTask | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n return this\n }\n\n /**\n * Evict the least recently used item, returning its value or\n * `undefined` if cache is empty.\n */\n pop(): V | undefined {\n try {\n while (this.#size) {\n const val = this.#valList[this.#head]\n this.#evict(true)\n if (this.#isBackgroundFetch(val)) {\n if (val.__staleWhileFetching) {\n return val.__staleWhileFetching\n }\n } else if (val !== undefined) {\n return val\n }\n }\n } finally {\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed\n let task: DisposeTask | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n }\n }\n\n #evict(free: boolean) {\n const head = this.#head\n const k = this.#keyList[head] as K\n const v = this.#valList[head] as V\n if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('evicted'))\n } else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, 'evict')\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, 'evict'])\n }\n }\n this.#removeItemSize(head)\n // if we aren't about to use the index, then null these out\n if (free) {\n this.#keyList[head] = undefined\n this.#valList[head] = undefined\n this.#free.push(head)\n }\n if (this.#size === 1) {\n this.#head = this.#tail = 0 as Index\n this.#free.length = 0\n } else {\n this.#head = this.#next[head] as Index\n }\n this.#keyMap.delete(k)\n this.#size--\n return head\n }\n\n /**\n * Check if a key is in the cache, without updating the recency of use.\n * Will return false if the item is stale, even though it is technically\n * in the cache.\n *\n * Check if a key is in the cache, without updating the recency of\n * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n * to `true` in either the options or the constructor.\n *\n * Will return `false` if the item is stale, even though it is technically in\n * the cache. The difference can be determined (if it matters) by using a\n * `status` argument, and inspecting the `has` field.\n *\n * Will not update item age unless\n * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n */\n has(k: K, hasOptions: LRUCache.HasOptions = {}) {\n const { updateAgeOnHas = this.updateAgeOnHas, status } =\n hasOptions\n const index = this.#keyMap.get(k)\n if (index !== undefined) {\n const v = this.#valList[index]\n if (\n this.#isBackgroundFetch(v) &&\n v.__staleWhileFetching === undefined\n ) {\n return false\n }\n if (!this.#isStale(index)) {\n if (updateAgeOnHas) {\n this.#updateItemAge(index)\n }\n if (status) {\n status.has = 'hit'\n this.#statusTTL(status, index)\n }\n return true\n } else if (status) {\n status.has = 'stale'\n this.#statusTTL(status, index)\n }\n } else if (status) {\n status.has = 'miss'\n }\n return false\n }\n\n /**\n * Like {@link LRUCache#get} but doesn't update recency or delete stale\n * items.\n *\n * Returns `undefined` if the item is stale, unless\n * {@link LRUCache.OptionsBase.allowStale} is set.\n */\n peek(k: K, peekOptions: LRUCache.PeekOptions = {}) {\n const { allowStale = this.allowStale } = peekOptions\n const index = this.#keyMap.get(k)\n if (\n index === undefined ||\n (!allowStale && this.#isStale(index))\n ) {\n return\n }\n const v = this.#valList[index]\n // either stale and allowed, or forcing a refresh of non-stale value\n return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n }\n\n #backgroundFetch(\n k: K,\n index: Index | undefined,\n options: LRUCache.FetchOptions,\n context: any\n ): BackgroundFetch {\n const v = index === undefined ? undefined : this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n return v\n }\n\n const ac = new AC()\n const { signal } = options\n // when/if our AC signals, then stop listening to theirs.\n signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n signal: ac.signal,\n })\n\n const fetchOpts = {\n signal: ac.signal,\n options,\n context,\n }\n\n const cb = (\n v: V | undefined,\n updateCache = false\n ): V | undefined => {\n const { aborted } = ac.signal\n const ignoreAbort = options.ignoreFetchAbort && v !== undefined\n if (options.status) {\n if (aborted && !updateCache) {\n options.status.fetchAborted = true\n options.status.fetchError = ac.signal.reason\n if (ignoreAbort) options.status.fetchAbortIgnored = true\n } else {\n options.status.fetchResolved = true\n }\n }\n if (aborted && !ignoreAbort && !updateCache) {\n return fetchFail(ac.signal.reason)\n }\n // either we didn't abort, and are still here, or we did, and ignored\n const bf = p as BackgroundFetch\n if (this.#valList[index as Index] === p) {\n if (v === undefined) {\n if (bf.__staleWhileFetching) {\n this.#valList[index as Index] = bf.__staleWhileFetching\n } else {\n this.#delete(k, 'fetch')\n }\n } else {\n if (options.status) options.status.fetchUpdated = true\n this.set(k, v, fetchOpts.options)\n }\n }\n return v\n }\n\n const eb = (er: any) => {\n if (options.status) {\n options.status.fetchRejected = true\n options.status.fetchError = er\n }\n return fetchFail(er)\n }\n\n const fetchFail = (er: any): V | undefined => {\n const { aborted } = ac.signal\n const allowStaleAborted =\n aborted && options.allowStaleOnFetchAbort\n const allowStale =\n allowStaleAborted || options.allowStaleOnFetchRejection\n const noDelete = allowStale || options.noDeleteOnFetchRejection\n const bf = p as BackgroundFetch\n if (this.#valList[index as Index] === p) {\n // if we allow stale on fetch rejections, then we need to ensure that\n // the stale value is not removed from the cache when the fetch fails.\n const del = !noDelete || bf.__staleWhileFetching === undefined\n if (del) {\n this.#delete(k, 'fetch')\n } else if (!allowStaleAborted) {\n // still replace the *promise* with the stale value,\n // since we are done with the promise at this point.\n // leave it untouched if we're still waiting for an\n // aborted background fetch that hasn't yet returned.\n this.#valList[index as Index] = bf.__staleWhileFetching\n }\n }\n if (allowStale) {\n if (options.status && bf.__staleWhileFetching !== undefined) {\n options.status.returnedStale = true\n }\n return bf.__staleWhileFetching\n } else if (bf.__returned === bf) {\n throw er\n }\n }\n\n const pcall = (\n res: (v: V | undefined) => void,\n rej: (e: any) => void\n ) => {\n const fmp = this.#fetchMethod?.(k, v, fetchOpts)\n if (fmp && fmp instanceof Promise) {\n fmp.then(v => res(v === undefined ? undefined : v), rej)\n }\n // ignored, we go until we finish, regardless.\n // defer check until we are actually aborting,\n // so fetchMethod can override.\n ac.signal.addEventListener('abort', () => {\n if (\n !options.ignoreFetchAbort ||\n options.allowStaleOnFetchAbort\n ) {\n res(undefined)\n // when it eventually resolves, update the cache.\n if (options.allowStaleOnFetchAbort) {\n res = v => cb(v, true)\n }\n }\n })\n }\n\n if (options.status) options.status.fetchDispatched = true\n const p = new Promise(pcall).then(cb, eb)\n const bf: BackgroundFetch = Object.assign(p, {\n __abortController: ac,\n __staleWhileFetching: v,\n __returned: undefined,\n })\n\n if (index === undefined) {\n // internal, don't expose status.\n this.set(k, bf, { ...fetchOpts.options, status: undefined })\n index = this.#keyMap.get(k)\n } else {\n this.#valList[index] = bf\n }\n return bf\n }\n\n #isBackgroundFetch(p: any): p is BackgroundFetch {\n if (!this.#hasFetchMethod) return false\n const b = p as BackgroundFetch\n return (\n !!b &&\n b instanceof Promise &&\n b.hasOwnProperty('__staleWhileFetching') &&\n b.__abortController instanceof AC\n )\n }\n\n /**\n * Make an asynchronous cached fetch using the\n * {@link LRUCache.OptionsBase.fetchMethod} function.\n *\n * If the value is in the cache and not stale, then the returned\n * Promise resolves to the value.\n *\n * If not in the cache, or beyond its TTL staleness, then\n * `fetchMethod(key, staleValue, { options, signal, context })` is\n * called, and the value returned will be added to the cache once\n * resolved.\n *\n * If called with `allowStale`, and an asynchronous fetch is\n * currently in progress to reload a stale value, then the former\n * stale value will be returned.\n *\n * If called with `forceRefresh`, then the cached item will be\n * re-fetched, even if it is not stale. However, if `allowStale` is also\n * set, then the old value will still be returned. This is useful\n * in cases where you want to force a reload of a cached value. If\n * a background fetch is already in progress, then `forceRefresh`\n * has no effect.\n *\n * If multiple fetches for the same key are issued, then they will all be\n * coalesced into a single call to fetchMethod.\n *\n * Note that this means that handling options such as\n * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort},\n * {@link LRUCache.FetchOptions.signal},\n * and {@link LRUCache.OptionsBase.allowStaleOnFetchRejection} will be\n * determined by the FIRST fetch() call for a given key.\n *\n * This is a known (fixable) shortcoming which will be addresed on when\n * someone complains about it, as the fix would involve added complexity and\n * may not be worth the costs for this edge case.\n *\n * If {@link LRUCache.OptionsBase.fetchMethod} is not specified, then this is\n * effectively an alias for `Promise.resolve(cache.get(key))`.\n *\n * When the fetch method resolves to a value, if the fetch has not\n * been aborted due to deletion, eviction, or being overwritten,\n * then it is added to the cache using the options provided.\n *\n * If the key is evicted or deleted before the `fetchMethod`\n * resolves, then the AbortSignal passed to the `fetchMethod` will\n * receive an `abort` event, and the promise returned by `fetch()`\n * will reject with the reason for the abort.\n *\n * If a `signal` is passed to the `fetch()` call, then aborting the\n * signal will abort the fetch and cause the `fetch()` promise to\n * reject with the reason provided.\n *\n * **Setting `context`**\n *\n * If an `FC` type is set to a type other than `unknown`, `void`, or\n * `undefined` in the {@link LRUCache} constructor, then all\n * calls to `cache.fetch()` _must_ provide a `context` option. If\n * set to `undefined` or `void`, then calls to fetch _must not_\n * provide a `context` option.\n *\n * The `context` param allows you to provide arbitrary data that\n * might be relevant in the course of fetching the data. It is only\n * relevant for the course of a single `fetch()` operation, and\n * discarded afterwards.\n *\n * **Note: `fetch()` calls are inflight-unique**\n *\n * If you call `fetch()` multiple times with the same key value,\n * then every call after the first will resolve on the same\n * promise1,\n * _even if they have different settings that would otherwise change\n * the behavior of the fetch_, such as `noDeleteOnFetchRejection`\n * or `ignoreFetchAbort`.\n *\n * In most cases, this is not a problem (in fact, only fetching\n * something once is what you probably want, if you're caching in\n * the first place). If you are changing the fetch() options\n * dramatically between runs, there's a good chance that you might\n * be trying to fit divergent semantics into a single object, and\n * would be better off with multiple cache instances.\n *\n * **1**: Ie, they're not the \"same Promise\", but they resolve at\n * the same time, because they're both waiting on the same\n * underlying fetchMethod response.\n */\n\n fetch(\n k: K,\n fetchOptions: unknown extends FC\n ? LRUCache.FetchOptions\n : FC extends undefined | void\n ? LRUCache.FetchOptionsNoContext\n : LRUCache.FetchOptionsWithContext\n ): Promise\n\n // this overload not allowed if context is required\n fetch(\n k: unknown extends FC\n ? K\n : FC extends undefined | void\n ? K\n : never,\n fetchOptions?: unknown extends FC\n ? LRUCache.FetchOptions\n : FC extends undefined | void\n ? LRUCache.FetchOptionsNoContext\n : never\n ): Promise\n\n async fetch(\n k: K,\n fetchOptions: LRUCache.FetchOptions = {}\n ): Promise {\n const {\n // get options\n allowStale = this.allowStale,\n updateAgeOnGet = this.updateAgeOnGet,\n noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n // set options\n ttl = this.ttl,\n noDisposeOnSet = this.noDisposeOnSet,\n size = 0,\n sizeCalculation = this.sizeCalculation,\n noUpdateTTL = this.noUpdateTTL,\n // fetch exclusive options\n noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,\n allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,\n ignoreFetchAbort = this.ignoreFetchAbort,\n allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,\n context,\n forceRefresh = false,\n status,\n signal,\n } = fetchOptions\n\n if (!this.#hasFetchMethod) {\n if (status) status.fetch = 'get'\n return this.get(k, {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n status,\n })\n }\n\n const options = {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n ttl,\n noDisposeOnSet,\n size,\n sizeCalculation,\n noUpdateTTL,\n noDeleteOnFetchRejection,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n status,\n signal,\n }\n\n let index = this.#keyMap.get(k)\n if (index === undefined) {\n if (status) status.fetch = 'miss'\n const p = this.#backgroundFetch(k, index, options, context)\n return (p.__returned = p)\n } else {\n // in cache, maybe already fetching\n const v = this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n const stale =\n allowStale && v.__staleWhileFetching !== undefined\n if (status) {\n status.fetch = 'inflight'\n if (stale) status.returnedStale = true\n }\n return stale ? v.__staleWhileFetching : (v.__returned = v)\n }\n\n // if we force a refresh, that means do NOT serve the cached value,\n // unless we are already in the process of refreshing the cache.\n const isStale = this.#isStale(index)\n if (!forceRefresh && !isStale) {\n if (status) status.fetch = 'hit'\n this.#moveToTail(index)\n if (updateAgeOnGet) {\n this.#updateItemAge(index)\n }\n if (status) this.#statusTTL(status, index)\n return v\n }\n\n // ok, it is stale or a forced refresh, and not already fetching.\n // refresh the cache.\n const p = this.#backgroundFetch(k, index, options, context)\n const hasStale = p.__staleWhileFetching !== undefined\n const staleVal = hasStale && allowStale\n if (status) {\n status.fetch = isStale ? 'stale' : 'refresh'\n if (staleVal && isStale) status.returnedStale = true\n }\n return staleVal ? p.__staleWhileFetching : (p.__returned = p)\n }\n }\n\n /**\n * In some cases, `cache.fetch()` may resolve to `undefined`, either because\n * a {@link LRUCache.OptionsBase#fetchMethod} was not provided (turning\n * `cache.fetch(k)` into just an async wrapper around `cache.get(k)`) or\n * because `ignoreFetchAbort` was specified (either to the constructor or\n * in the {@link LRUCache.FetchOptions}). Also, the\n * {@link OptionsBase.fetchMethod} may return `undefined` or `void`, making\n * the test even more complicated.\n *\n * Because inferring the cases where `undefined` might be returned are so\n * cumbersome, but testing for `undefined` can also be annoying, this method\n * can be used, which will reject if `this.fetch()` resolves to undefined.\n */\n forceFetch(\n k: K,\n fetchOptions: unknown extends FC\n ? LRUCache.FetchOptions\n : FC extends undefined | void\n ? LRUCache.FetchOptionsNoContext\n : LRUCache.FetchOptionsWithContext\n ): Promise\n // this overload not allowed if context is required\n forceFetch(\n k: unknown extends FC\n ? K\n : FC extends undefined | void\n ? K\n : never,\n fetchOptions?: unknown extends FC\n ? LRUCache.FetchOptions\n : FC extends undefined | void\n ? LRUCache.FetchOptionsNoContext\n : never\n ): Promise\n async forceFetch(\n k: K,\n fetchOptions: LRUCache.FetchOptions = {}\n ): Promise {\n const v = await this.fetch(\n k,\n fetchOptions as unknown extends FC\n ? LRUCache.FetchOptions\n : FC extends undefined | void\n ? LRUCache.FetchOptionsNoContext\n : LRUCache.FetchOptionsWithContext\n )\n if (v === undefined) throw new Error('fetch() returned undefined')\n return v\n }\n\n /**\n * If the key is found in the cache, then this is equivalent to\n * {@link LRUCache#get}. If not, in the cache, then calculate the value using\n * the {@link LRUCache.OptionsBase.memoMethod}, and add it to the cache.\n *\n * If an `FC` type is set to a type other than `unknown`, `void`, or\n * `undefined` in the LRUCache constructor, then all calls to `cache.memo()`\n * _must_ provide a `context` option. If set to `undefined` or `void`, then\n * calls to memo _must not_ provide a `context` option.\n *\n * The `context` param allows you to provide arbitrary data that might be\n * relevant in the course of fetching the data. It is only relevant for the\n * course of a single `memo()` operation, and discarded afterwards.\n */\n memo(\n k: K,\n memoOptions: unknown extends FC\n ? LRUCache.MemoOptions\n : FC extends undefined | void\n ? LRUCache.MemoOptionsNoContext\n : LRUCache.MemoOptionsWithContext\n ): V\n // this overload not allowed if context is required\n memo(\n k: unknown extends FC\n ? K\n : FC extends undefined | void\n ? K\n : never,\n memoOptions?: unknown extends FC\n ? LRUCache.MemoOptions\n : FC extends undefined | void\n ? LRUCache.MemoOptionsNoContext\n : never\n ): V\n memo(k: K, memoOptions: LRUCache.MemoOptions = {}) {\n const memoMethod = this.#memoMethod\n if (!memoMethod) {\n throw new Error('no memoMethod provided to constructor')\n }\n const { context, forceRefresh, ...options } = memoOptions\n const v = this.get(k, options)\n if (!forceRefresh && v !== undefined) return v\n const vv = memoMethod(k, v, {\n options,\n context,\n } as LRUCache.MemoizerOptions)\n this.set(k, vv, options)\n return vv\n }\n\n /**\n * Return a value from the cache. Will update the recency of the cache\n * entry found.\n *\n * If the key is not found, get() will return `undefined`.\n */\n get(k: K, getOptions: LRUCache.GetOptions = {}) {\n const {\n allowStale = this.allowStale,\n updateAgeOnGet = this.updateAgeOnGet,\n noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n status,\n } = getOptions\n const index = this.#keyMap.get(k)\n if (index !== undefined) {\n const value = this.#valList[index]\n const fetching = this.#isBackgroundFetch(value)\n if (status) this.#statusTTL(status, index)\n if (this.#isStale(index)) {\n if (status) status.get = 'stale'\n // delete only if not an in-flight background fetch\n if (!fetching) {\n if (!noDeleteOnStaleGet) {\n this.#delete(k, 'expire')\n }\n if (status && allowStale) status.returnedStale = true\n return allowStale ? value : undefined\n } else {\n if (\n status &&\n allowStale &&\n value.__staleWhileFetching !== undefined\n ) {\n status.returnedStale = true\n }\n return allowStale ? value.__staleWhileFetching : undefined\n }\n } else {\n if (status) status.get = 'hit'\n // if we're currently fetching it, we don't actually have it yet\n // it's not stale, which means this isn't a staleWhileRefetching.\n // If it's not stale, and fetching, AND has a __staleWhileFetching\n // value, then that means the user fetched with {forceRefresh:true},\n // so it's safe to return that value.\n if (fetching) {\n return value.__staleWhileFetching\n }\n this.#moveToTail(index)\n if (updateAgeOnGet) {\n this.#updateItemAge(index)\n }\n return value\n }\n } else if (status) {\n status.get = 'miss'\n }\n }\n\n #connect(p: Index, n: Index) {\n this.#prev[n] = p\n this.#next[p] = n\n }\n\n #moveToTail(index: Index): void {\n // if tail already, nothing to do\n // if head, move head to next[index]\n // else\n // move next[prev[index]] to next[index] (head has no prev)\n // move prev[next[index]] to prev[index]\n // prev[index] = tail\n // next[tail] = index\n // tail = index\n if (index !== this.#tail) {\n if (index === this.#head) {\n this.#head = this.#next[index] as Index\n } else {\n this.#connect(\n this.#prev[index] as Index,\n this.#next[index] as Index\n )\n }\n this.#connect(this.#tail, index)\n this.#tail = index\n }\n }\n\n /**\n * Deletes a key out of the cache.\n *\n * Returns true if the key was deleted, false otherwise.\n */\n delete(k: K) {\n return this.#delete(k, 'delete')\n }\n\n #delete(k: K, reason: LRUCache.DisposeReason) {\n let deleted = false\n if (this.#size !== 0) {\n const index = this.#keyMap.get(k)\n if (index !== undefined) {\n deleted = true\n if (this.#size === 1) {\n this.#clear(reason)\n } else {\n this.#removeItemSize(index)\n const v = this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'))\n } else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v as V, k, reason)\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v as V, k, reason])\n }\n }\n this.#keyMap.delete(k)\n this.#keyList[index] = undefined\n this.#valList[index] = undefined\n if (index === this.#tail) {\n this.#tail = this.#prev[index] as Index\n } else if (index === this.#head) {\n this.#head = this.#next[index] as Index\n } else {\n const pi = this.#prev[index] as number\n this.#next[pi] = this.#next[index] as number\n const ni = this.#next[index] as number\n this.#prev[ni] = this.#prev[index] as number\n }\n this.#size--\n this.#free.push(index)\n }\n }\n }\n if (this.#hasDisposeAfter && this.#disposed?.length) {\n const dt = this.#disposed\n let task: DisposeTask | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n return deleted\n }\n\n /**\n * Clear the cache entirely, throwing away all values.\n */\n clear() {\n return this.#clear('delete')\n }\n #clear(reason: LRUCache.DisposeReason) {\n for (const index of this.#rindexes({ allowStale: true })) {\n const v = this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'))\n } else {\n const k = this.#keyList[index]\n if (this.#hasDispose) {\n this.#dispose?.(v as V, k as K, reason)\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v as V, k as K, reason])\n }\n }\n }\n\n this.#keyMap.clear()\n this.#valList.fill(undefined)\n this.#keyList.fill(undefined)\n if (this.#ttls && this.#starts) {\n this.#ttls.fill(0)\n this.#starts.fill(0)\n }\n if (this.#sizes) {\n this.#sizes.fill(0)\n }\n this.#head = 0 as Index\n this.#tail = 0 as Index\n this.#free.length = 0\n this.#calculatedSize = 0\n this.#size = 0\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed\n let task: DisposeTask | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n }\n}\n","import { injectStyles } from '../injectStyles/dist/vanilla-extract-css-injectStyles.browser.esm.js';\nimport { t as transformCss, _ as _objectSpread2, d as dudupeAndJoinClassList } from './transformCss-9c456b50.browser.esm.js';\nimport { setAdapterIfNotSet, getIdentOption, appendCss, registerClassName, registerComposition, markCompositionUsed } from '../adapter/dist/vanilla-extract-css-adapter.browser.esm.js';\nimport hash from '@emotion/hash';\nimport { getAndIncrementRefCounter, getFileScope, hasFileScope } from '../fileScope/dist/vanilla-extract-css-fileScope.browser.esm.js';\nimport { LRUCache } from 'lru-cache';\nimport { walkObject, get } from '@vanilla-extract/private';\nimport cssesc from 'cssesc';\nimport { diff } from 'deep-object-diff';\nimport pc from 'picocolors';\nimport { _ as _taggedTemplateLiteral } from './taggedTemplateLiteral-8e47dbd7.browser.esm.js';\nimport dedent from 'dedent';\nimport deepmerge from 'deepmerge';\nimport 'modern-ahocorasick';\nimport 'css-what';\nimport 'media-query-parser';\n\nvar localClassNames = new Set();\nvar composedClassLists = [];\nvar bufferedCSSObjs = [];\nvar browserRuntimeAdapter = {\n appendCss: cssObj => {\n bufferedCSSObjs.push(cssObj);\n },\n registerClassName: className => {\n localClassNames.add(className);\n },\n registerComposition: composition => {\n composedClassLists.push(composition);\n },\n markCompositionUsed: () => {},\n onEndFileScope: fileScope => {\n var css = transformCss({\n localClassNames: Array.from(localClassNames),\n composedClassLists,\n cssObjs: bufferedCSSObjs\n }).join('\\n');\n injectStyles({\n fileScope,\n css\n });\n bufferedCSSObjs = [];\n },\n getIdentOption: () => process.env.NODE_ENV === 'production' ? 'short' : 'debug'\n};\n{\n setAdapterIfNotSet(browserRuntimeAdapter);\n}\n\nvar getLastSlashBeforeIndex = (path, index) => {\n var pathIndex = index - 1;\n while (pathIndex >= 0) {\n if (path[pathIndex] === '/') {\n return pathIndex;\n }\n pathIndex--;\n }\n return -1;\n};\n\n/**\n * Assumptions:\n * - The path is always normalized to use posix file separators (/) (see `addFileScope`)\n * - The path is always relative to the project root, i.e. there will never be a leading slash (see `addFileScope`)\n * - As long as `.css` is there, we have a valid `.css.*` file path, because otherwise there wouldn't\n * be a file scope to begin with\n *\n * The LRU cache we use can't cache undefined/null values, so we opt to return an empty string,\n * rather than using a custom Symbol or something similar.\n */\nvar _getDebugFileName = path => {\n var file;\n var lastIndexOfDotCss = path.lastIndexOf('.css');\n if (lastIndexOfDotCss === -1) {\n return '';\n }\n var lastSlashIndex = getLastSlashBeforeIndex(path, lastIndexOfDotCss);\n file = path.slice(lastSlashIndex + 1, lastIndexOfDotCss);\n\n // There are no slashes, therefore theres no directory to extract\n if (lastSlashIndex === -1) {\n return file;\n }\n var secondLastSlashIndex = getLastSlashBeforeIndex(path, lastSlashIndex - 1);\n // If secondLastSlashIndex is -1, it means that the path looks like `directory/file.css.ts`,\n // in which case dir will still be sliced starting at 0, which is what we want\n var dir = path.slice(secondLastSlashIndex + 1, lastSlashIndex);\n var debugFileName = file !== 'index' ? file : dir;\n return debugFileName;\n};\nvar memoizedGetDebugFileName = () => {\n var cache = new LRUCache({\n max: 500\n });\n return path => {\n var cachedResult = cache.get(path);\n if (cachedResult) {\n return cachedResult;\n }\n var result = _getDebugFileName(path);\n cache.set(path, result);\n return result;\n };\n};\nvar getDebugFileName = memoizedGetDebugFileName();\n\nfunction getDevPrefix(_ref) {\n var {\n debugId,\n debugFileName\n } = _ref;\n var parts = debugId ? [debugId.replace(/\\s/g, '_')] : [];\n if (debugFileName) {\n var {\n filePath\n } = getFileScope();\n var _debugFileName = getDebugFileName(filePath);\n\n // debugFileName could be an empty string\n if (_debugFileName) {\n parts.unshift(_debugFileName);\n }\n }\n return parts.join('_');\n}\nfunction normalizeIdentifier(identifier) {\n return identifier.match(/^[0-9]/) ? \"_\".concat(identifier) : identifier;\n}\nfunction generateIdentifier(arg) {\n var identOption = getIdentOption();\n var {\n debugId,\n debugFileName = true\n } = _objectSpread2(_objectSpread2({}, typeof arg === 'string' ? {\n debugId: arg\n } : null), typeof arg === 'object' ? arg : null);\n\n // Convert ref count to base 36 for optimal hash lengths\n var refCount = getAndIncrementRefCounter().toString(36);\n var {\n filePath,\n packageName\n } = getFileScope();\n var fileScopeHash = hash(packageName ? \"\".concat(packageName).concat(filePath) : filePath);\n var identifier = \"\".concat(fileScopeHash).concat(refCount);\n if (identOption === 'debug') {\n var devPrefix = getDevPrefix({\n debugId,\n debugFileName\n });\n if (devPrefix) {\n identifier = \"\".concat(devPrefix, \"__\").concat(identifier);\n }\n return normalizeIdentifier(identifier);\n }\n if (typeof identOption === 'function') {\n identifier = identOption({\n hash: identifier,\n debugId,\n filePath,\n packageName\n });\n if (!identifier.match(/^[A-Z_][0-9A-Z_-]+$/i)) {\n throw new Error(\"Identifier function returned invalid indentifier: \\\"\".concat(identifier, \"\\\"\"));\n }\n return identifier;\n }\n return normalizeIdentifier(identifier);\n}\n\nvar normaliseObject = obj => walkObject(obj, () => '');\nfunction validateContract(contract, tokens) {\n var theDiff = diff(normaliseObject(contract), normaliseObject(tokens));\n var valid = Object.keys(theDiff).length === 0;\n return {\n valid,\n diffString: valid ? '' : renderDiff(contract, theDiff)\n };\n}\nfunction diffLine(value, nesting, type) {\n var whitespace = [...Array(nesting).keys()].map(() => ' ').join('');\n var line = \"\".concat(type ? type : ' ').concat(whitespace).concat(value);\n if (process.env.NODE_ENV !== 'test') {\n if (type === '-') {\n return pc.red(line);\n }\n if (type === '+') {\n return pc.green(line);\n }\n }\n return line;\n}\nfunction renderDiff(orig, diff) {\n var nesting = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var lines = [];\n if (nesting === 0) {\n lines.push(diffLine('{', 0));\n }\n var innerNesting = nesting + 1;\n var keys = Object.keys(diff).sort();\n for (var key of keys) {\n var value = diff[key];\n if (!(key in orig)) {\n lines.push(diffLine(\"\".concat(key, \": ...,\"), innerNesting, '+'));\n } else if (typeof value === 'object') {\n lines.push(diffLine(\"\".concat(key, \": {\"), innerNesting));\n lines.push(renderDiff(orig[key], diff[key], innerNesting));\n lines.push(diffLine('}', innerNesting));\n } else {\n lines.push(diffLine(\"\".concat(key, \": ...,\"), innerNesting, '-'));\n }\n }\n if (nesting === 0) {\n lines.push(diffLine('}', 0));\n }\n return lines.join('\\n');\n}\n\nfunction createVar(debugId) {\n var cssVarName = cssesc(generateIdentifier({\n debugId,\n debugFileName: false\n }), {\n isIdentifier: true\n });\n return \"var(--\".concat(cssVarName, \")\");\n}\nfunction fallbackVar() {\n var finalValue = '';\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n values.reverse().forEach(value => {\n if (finalValue === '') {\n finalValue = String(value);\n } else {\n if (typeof value !== 'string' || !/^var\\(--.*\\)$/.test(value)) {\n throw new Error(\"Invalid variable name: \".concat(value));\n }\n finalValue = value.replace(/\\)$/, \", \".concat(finalValue, \")\"));\n }\n });\n return finalValue;\n}\nfunction assignVars(varContract, tokens) {\n var varSetters = {};\n var {\n valid,\n diffString\n } = validateContract(varContract, tokens);\n if (!valid) {\n throw new Error(\"Tokens don't match contract.\\n\".concat(diffString));\n }\n walkObject(tokens, (value, path) => {\n varSetters[get(varContract, path)] = String(value);\n });\n return varSetters;\n}\nfunction createThemeContract(tokens) {\n return walkObject(tokens, (_value, path) => {\n return createVar(path.join('-'));\n });\n}\nfunction createGlobalThemeContract(tokens, mapFn) {\n return walkObject(tokens, (value, path) => {\n var rawVarName = typeof mapFn === 'function' ? mapFn(value, path) : value;\n var varName = typeof rawVarName === 'string' ? rawVarName.replace(/^\\-\\-/, '') : null;\n if (typeof varName !== 'string' || varName !== cssesc(varName, {\n isIdentifier: true\n })) {\n throw new Error(\"Invalid variable name for \\\"\".concat(path.join('.'), \"\\\": \").concat(varName));\n }\n return \"var(--\".concat(varName, \")\");\n });\n}\n\nfunction createGlobalTheme(selector, arg2, arg3) {\n var shouldCreateVars = Boolean(!arg3);\n var themeVars = shouldCreateVars ? createThemeContract(arg2) : arg2;\n var tokens = shouldCreateVars ? arg2 : arg3;\n appendCss({\n type: 'global',\n selector: selector,\n rule: {\n vars: assignVars(themeVars, tokens)\n }\n }, getFileScope());\n if (shouldCreateVars) {\n return themeVars;\n }\n}\nfunction createTheme(arg1, arg2, arg3) {\n var themeClassName = generateIdentifier(typeof arg2 === 'object' ? arg3 : arg2);\n registerClassName(themeClassName, getFileScope());\n var vars = typeof arg2 === 'object' ? createGlobalTheme(themeClassName, arg1, arg2) : createGlobalTheme(themeClassName, arg1);\n return vars ? [themeClassName, vars] : themeClassName;\n}\n\nvar _templateObject;\nfunction composedStyle(rules, debugId) {\n var className = generateIdentifier(debugId);\n registerClassName(className, getFileScope());\n var classList = [];\n var styleRules = [];\n for (var rule of rules) {\n if (typeof rule === 'string') {\n classList.push(rule);\n } else {\n styleRules.push(rule);\n }\n }\n var result = className;\n if (classList.length > 0) {\n result = \"\".concat(className, \" \").concat(dudupeAndJoinClassList(classList));\n registerComposition({\n identifier: className,\n classList: result\n }, getFileScope());\n if (styleRules.length > 0) {\n // If there are styles attached to this composition then it is\n // always used and should never be removed\n markCompositionUsed(className);\n }\n }\n if (styleRules.length > 0) {\n var _rule = deepmerge.all(styleRules, {\n // Replace arrays rather than merging\n arrayMerge: (_, sourceArray) => sourceArray\n });\n appendCss({\n type: 'local',\n selector: className,\n rule: _rule\n }, getFileScope());\n }\n return result;\n}\nfunction style(rule, debugId) {\n if (Array.isArray(rule)) {\n return composedStyle(rule, debugId);\n }\n var className = generateIdentifier(debugId);\n registerClassName(className, getFileScope());\n appendCss({\n type: 'local',\n selector: className,\n rule\n }, getFileScope());\n return className;\n}\n\n/**\n * @deprecated The same functionality is now provided by the 'style' function when you pass it an array\n */\nfunction composeStyles() {\n var compose = hasFileScope() ? composedStyle : dudupeAndJoinClassList;\n for (var _len = arguments.length, classNames = new Array(_len), _key = 0; _key < _len; _key++) {\n classNames[_key] = arguments[_key];\n }\n return compose(classNames);\n}\nfunction globalStyle(selector, rule) {\n appendCss({\n type: 'global',\n selector,\n rule\n }, getFileScope());\n}\nfunction fontFace(rule, debugId) {\n var fontFamily = \"\\\"\".concat(cssesc(generateIdentifier(debugId), {\n quotes: 'double'\n }), \"\\\"\");\n var rules = Array.isArray(rule) ? rule : [rule];\n for (var singleRule of rules) {\n if ('fontFamily' in singleRule) {\n throw new Error(dedent(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n This function creates and returns a hashed font-family name, so the \\\"fontFamily\\\" property should not be provided.\\n \\n If you'd like to define a globally scoped custom font, you can use the \\\"globalFontFace\\\" function instead.\\n \"]))));\n }\n appendCss({\n type: 'fontFace',\n rule: _objectSpread2(_objectSpread2({}, singleRule), {}, {\n fontFamily\n })\n }, getFileScope());\n }\n return fontFamily;\n}\nfunction globalFontFace(fontFamily, rule) {\n var rules = Array.isArray(rule) ? rule : [rule];\n for (var singleRule of rules) {\n appendCss({\n type: 'fontFace',\n rule: _objectSpread2(_objectSpread2({}, singleRule), {}, {\n fontFamily\n })\n }, getFileScope());\n }\n}\nfunction keyframes(rule, debugId) {\n var name = cssesc(generateIdentifier(debugId), {\n isIdentifier: true\n });\n appendCss({\n type: 'keyframes',\n name,\n rule\n }, getFileScope());\n return name;\n}\nfunction globalKeyframes(name, rule) {\n appendCss({\n type: 'keyframes',\n name,\n rule\n }, getFileScope());\n}\nfunction styleVariants() {\n if (typeof (arguments.length <= 1 ? undefined : arguments[1]) === 'function') {\n var _data = arguments.length <= 0 ? undefined : arguments[0];\n var _mapData = arguments.length <= 1 ? undefined : arguments[1];\n var _debugId = arguments.length <= 2 ? undefined : arguments[2];\n var _classMap = {};\n for (var _key2 in _data) {\n _classMap[_key2] = style(_mapData(_data[_key2], _key2), _debugId ? \"\".concat(_debugId, \"_\").concat(_key2) : _key2);\n }\n return _classMap;\n }\n var styleMap = arguments.length <= 0 ? undefined : arguments[0];\n var debugId = arguments.length <= 1 ? undefined : arguments[1];\n var classMap = {};\n for (var _key3 in styleMap) {\n classMap[_key3] = style(styleMap[_key3], debugId ? \"\".concat(debugId, \"_\").concat(_key3) : _key3);\n }\n return classMap;\n}\n\n// createContainer is used for local scoping of CSS containers\n// For now it is mostly just an alias of generateIdentifier\nvar createContainer = debugId => generateIdentifier(debugId);\n\n// createViewTransition is used for locally scoping CSS view transitions\n// For now it is mostly just an alias of generateIdentifier\nvar createViewTransition = debugId => generateIdentifier(debugId);\n\nvar defaultLayerOptions = {};\nvar merge = (obj1, obj2) => _objectSpread2(_objectSpread2({}, obj1), obj2);\nvar getLayerArgs = function getLayerArgs() {\n var options = defaultLayerOptions;\n var debugId = arguments.length <= 0 ? undefined : arguments[0];\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'object') {\n options = merge(defaultLayerOptions, arguments.length <= 0 ? undefined : arguments[0]);\n debugId = arguments.length <= 1 ? undefined : arguments[1];\n }\n return [options, debugId];\n};\nfunction layer() {\n var [options, debugId] = getLayerArgs(...arguments);\n var name = generateIdentifier(debugId);\n if (options.parent) {\n name = \"\".concat(options.parent, \".\").concat(name);\n }\n appendCss({\n type: 'layer',\n name\n }, getFileScope());\n return name;\n}\nfunction globalLayer() {\n var [options, name] = getLayerArgs(...arguments);\n if (options.parent) {\n name = \"\".concat(options.parent, \".\").concat(name);\n }\n appendCss({\n type: 'layer',\n name\n }, getFileScope());\n return name;\n}\n\nexport { assignVars, composeStyles, createContainer, createGlobalTheme, createGlobalThemeContract, createTheme, createThemeContract, createVar, createViewTransition, fallbackVar, fontFace, generateIdentifier, globalFontFace, globalKeyframes, globalLayer, globalStyle, keyframes, layer, style, styleVariants };\n","/*! https://mths.be/cssesc v3.0.0 by @mathias */\n'use strict';\n\nvar object = {};\nvar hasOwnProperty = object.hasOwnProperty;\nvar merge = function merge(options, defaults) {\n\tif (!options) {\n\t\treturn defaults;\n\t}\n\tvar result = {};\n\tfor (var key in defaults) {\n\t\t// `if (defaults.hasOwnProperty(key) { … }` is not needed here, since\n\t\t// only recognized option names are used.\n\t\tresult[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key];\n\t}\n\treturn result;\n};\n\nvar regexAnySingleEscape = /[ -,\\.\\/:-@\\[-\\^`\\{-~]/;\nvar regexSingleEscape = /[ -,\\.\\/:-@\\[\\]\\^`\\{-~]/;\nvar regexAlwaysEscape = /['\"\\\\]/;\nvar regexExcessiveSpaces = /(^|\\\\+)?(\\\\[A-F0-9]{1,6})\\x20(?![a-fA-F0-9\\x20])/g;\n\n// https://mathiasbynens.be/notes/css-escapes#css\nvar cssesc = function cssesc(string, options) {\n\toptions = merge(options, cssesc.options);\n\tif (options.quotes != 'single' && options.quotes != 'double') {\n\t\toptions.quotes = 'single';\n\t}\n\tvar quote = options.quotes == 'double' ? '\"' : '\\'';\n\tvar isIdentifier = options.isIdentifier;\n\n\tvar firstChar = string.charAt(0);\n\tvar output = '';\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar character = string.charAt(counter++);\n\t\tvar codePoint = character.charCodeAt();\n\t\tvar value = void 0;\n\t\t// If it’s not a printable ASCII character…\n\t\tif (codePoint < 0x20 || codePoint > 0x7E) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) {\n\t\t\t\t// It’s a high surrogate, and there is a next character.\n\t\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// next character is low surrogate\n\t\t\t\t\tcodePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000;\n\t\t\t\t} else {\n\t\t\t\t\t// It’s an unmatched surrogate; only append this code unit, in case\n\t\t\t\t\t// the next code unit is the high surrogate of a surrogate pair.\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t} else {\n\t\t\tif (options.escapeEverything) {\n\t\t\t\tif (regexAnySingleEscape.test(character)) {\n\t\t\t\t\tvalue = '\\\\' + character;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t\t}\n\t\t\t} else if (/[\\t\\n\\f\\r\\x0B]/.test(character)) {\n\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t} else if (character == '\\\\' || !isIdentifier && (character == '\"' && quote == character || character == '\\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) {\n\t\t\t\tvalue = '\\\\' + character;\n\t\t\t} else {\n\t\t\t\tvalue = character;\n\t\t\t}\n\t\t}\n\t\toutput += value;\n\t}\n\n\tif (isIdentifier) {\n\t\tif (/^-[-\\d]/.test(output)) {\n\t\t\toutput = '\\\\-' + output.slice(1);\n\t\t} else if (/\\d/.test(firstChar)) {\n\t\t\toutput = '\\\\3' + firstChar + ' ' + output.slice(1);\n\t\t}\n\t}\n\n\t// Remove spaces after `\\HEX` escapes that are not followed by a hex digit,\n\t// since they’re redundant. Note that this is only possible if the escape\n\t// sequence isn’t preceded by an odd number of backslashes.\n\toutput = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {\n\t\tif ($1 && $1.length % 2) {\n\t\t\t// It’s not safe to remove the space, so don’t.\n\t\t\treturn $0;\n\t\t}\n\t\t// Strip the space.\n\t\treturn ($1 || '') + $2;\n\t});\n\n\tif (!isIdentifier && options.wrap) {\n\t\treturn quote + output + quote;\n\t}\n\treturn output;\n};\n\n// Expose default options (so they can be overridden globally).\ncssesc.options = {\n\t'escapeEverything': false,\n\t'isIdentifier': false,\n\t'quotes': 'single',\n\t'wrap': false\n};\n\ncssesc.version = '3.0.0';\n\nmodule.exports = cssesc;\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };"],"names":["affordance","btnBase","btnFullWidth","btnLarge","btnOverlay","btnSmall","buttonsType","primary","primaryInverse","secondary","secondaryInverse","tertiary","overlay","cursorPointer","icon","processingState","smallSizeTapContainer","successState","successStateIcon","successStateIconSm","successStateOverlay","tertiarySmall","ICON_FALLBACK_COLOR","legalColors","sysColorBackgroundMain","sysColorBackgroundAlt","sysColorBackgroundSurface","sysColorBackgroundSurfaceHover","sysColorBackgroundSurfaceActive","sysColorBackgroundHighContrast","sysColorBackgroundMediumContrast","sysColorPrimaryMain","sysColorPrimaryMainHover","sysColorPrimaryMainActive","sysColorPrimaryContrast","sysColorPrimaryContrastHover","sysColorPrimaryContrastActive","sysColorSecondaryMain","sysColorSecondaryMainHover","sysColorSecondaryMainActive","sysColorSecondaryContrast","sysColorTertiaryMain","sysColorTertiaryMainHover","sysColorTertiaryMainActive","sysColorTertiaryContrast","sysColorFeaturedMain","sysColorFeaturedMainHover","sysColorFeaturedMainActive","sysColorFeaturedContrast","sysColorUnselectedMain","sysColorUnselectedMainHover","sysColorUnselectedMainActive","sysColorUnselectedContrast","sysColorSelectedMain","sysColorSelectedMainHover","sysColorSelectedMainActive","sysColorSelectedContrast","sysColorSelectedRangeMain","sysColorSelectedRangeMainHover","sysColorSelectedRangeMainActive","sysColorSelectedRangeContrast","sysColorLinkMain","sysColorLinkMainHover","sysColorLinkMainActive","sysColorLinkAlt","sysColorLinkAltHover","sysColorLinkAltActive","sysColorLinkContrast","sysColorLinkContrastHover","sysColorLinkContrastActive","sysColorAccent1Main","sysColorAccent1Contrast","sysColorAccent2Main","sysColorAccent2Contrast","sysColorAccent3Main","sysColorAccent3Contrast","sysColorAccent4Main","sysColorAccent4Contrast","sysColorErrorMain","sysColorErrorMainHover","sysColorErrorMainActive","sysColorErrorContrast","sysColorWarningMain","sysColorWarningMainHover","sysColorWarningMainActive","sysColorWarningAlt","sysColorWarningContrast","sysColorSuccessMain","sysColorSuccessMainHover","sysColorSuccessMainActive","sysColorSuccessContrast","sysColorSystemMain","sysColorSystemMainHover","sysColorSystemMainActive","sysColorSystemContrast","sysColorInfoMain","sysColorInfoMainHover","sysColorInfoMainActive","sysColorInfoContrast","sysColorSpecialtyMain","sysColorSpecialtyMainHover","sysColorSpecialtyMainActive","sysColorSpecialtyContrast","sizeLg","sizeMd","sizeSm","sizeXl","sizeXs","svg","base","defaults","inverse","contextColors","main","background","hoverMain","hoverBack","activeMain","activeBack","stylesheets","AhoCorasick","constructor","keywords","failure","gotoFn","output","this","_buildTables","state","word","curr","l","push","xs","length","r","shift","undefined","s","fs","search","str","results","i","foundStrs","SelectorType","AttributeAction","adapterStack","appendCss","registerClassName","onEndFileScope","registerComposition","markCompositionUsed","getIdentOption","hasConfiguredAdapter","strings","raw","slice","Object","freeze","defineProperties","value","reName","reEscape","actionTypes","Map","Element","Start","End","Any","Not","Hyphen","unpackPseudos","Set","stripQuotesFromPseudos","funescape","_","escaped","escapedWhitespace","high","parseInt","String","fromCharCode","unescapeCSS","replace","isQuote","c","isWhitespace","parse","selector","subselects","endIndex","parseSelector","Error","selectorIndex","tokens","getName","offset","match","name","stripWhitespace","charCodeAt","readValueWithParenthesis","start","counter","isEscaped","pos","slashCount","ensureNotTraversal","type","Adjacent","Child","Descendant","Parent","Sibling","ColumnCombinator","isTraversal","addTraversal","addSpecialAttribute","action","Attribute","namespace","ignoreCase","finalizeSubselector","pop","loop","firstChar","Equals","startsWith","Exists","possibleAction","get","quote","sectionEnd","valueStart","forceIgnore","attributeSelector","PseudoElement","toLowerCase","data","has","quot","Pseudo","indexOf","test","Universal","Tag","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperty","obj","arg","input","prim","Symbol","toPrimitive","res","call","hint","TypeError","_toPrimitive","_toPropertyKey","configurable","writable","createDedent","options","dedent","withOptions","newOptions","values","escapeSpecialCharacters","Array","isArray","result","next","lines","split","mindent","m","indent","Math","min","map","join","trim","__assign","assign","t","n","p","prototype","hasOwnProperty","__rest","e","propertyIsEnumerable","__read","o","iterator","ar","done","error","_templateObject$1","weirdNewlines","nullOrSurrogates","commentRegex","consumeString","index","firstCode","charCodes","code","consumeEscape","lastIndex","charCode","wouldStartIdentifier","nextCode","hexCharCodes","code_2","code_3","consumeNumeric","numberResult","consumeNumber","numberEndIndex","numberValue","numberFlag","identResult","consumeIdent","flag","numberChars","nextNextCode","nextNextNextCode","nextNextIsDigit","numberString","parseFloat","Number","isNaN","consumeIdentUnsafe","identChars","code_4","code_5","consumeUrl","urlChars","hasFinishedWord","consumeIdentLike","result_1","simplifyMediaQuery","mediaQuery","mediaCondition","simplifyMediaCondition","operator","children","mediaPrefix","mediaType","unsimplifiedChild","child","spliceArgs","i_1","splice","createError","message","err","concat","toUnflattenedAST","tokenList","code_1","plusNumeric","tokenTuple","unit","minusNumeric","lexicalAnalysis","startIndex","token","syntacticAnalysis","removeWhitespace","newTokenList","before","wsAfter","wsBefore","mediaQueryList","mediaQueries","mediaQueryTokens","tokenizeMediaQuery","nonNullMediaQueryTokens","mediaQueryTokens_1_1","mediaQueryToken","firstToken","tokenizeMediaCondition","firstIndex","firstNonUnaryToken","value_1","tokensWithParens","secondNonUnaryToken","mayContainOr","previousOperator","endIndexOfFirstFeature","maxDepth","count","max","featureTokens","tokenizeMediaFeature","nextToken","siblings","rawTokens","a","b","numerator","denominator","feature","valueToken","prefix","range","tokenizeRange","featureName","rightOp","rightToken","hasLeft","leftToken","tokenIndexAfterFirstOp","_a","_b","tokenAfterFirstOp","secondOpToken","followingToken","tokenAfterSecondOp","_c","_d","validRange","lt","leftOp","rt","toPropertyKey","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","fn","_key","omit","omitKeys","_key2","ConditionalRuleset","ruleset","precedenceLookup","findOrCreateCondition","conditionQuery","targetCondition","query","rules","set","getConditionalRulesetByPath","conditionPath","currRuleset","condition","addRule","rule","addConditionPrecedence","conditionOrder","_ruleset$precedenceLo","conditionPrecedence","lowerPrecedenceCondition","add","isCompatible","incomingRuleset","orderPrecedence","entries","_incomingRuleset$prec","matchingCondition","merge","incomingOrderPrecedence","_this$precedenceLooku","mergeIfCompatible","getSortedRuleset","_this","sortedRuleset","_loop","dependents","conditionForQuery","firstMatchingDependent","findIndex","renderToArray","arr","selectors","_templateObject","simplePseudoMap","simplePseudos","simplePseudoLookup","createMediaQueryError","msg","validateMediaQuery","ast","simplifyAST","_excluded","_excluded2","DECLARATION","UNITLESS","animationIterationCount","borderImage","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","columnCount","columns","flex","flexGrow","flexShrink","fontWeight","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","initialLetter","lineClamp","lineHeight","maxLines","opacity","order","orphans","scale","tabSize","WebkitLineClamp","widows","zIndex","zoom","fillOpacity","floodOpacity","maskBorder","maskBorderOutset","maskBorderSlice","maskBorderWidth","shapeImageThreshold","stopOpacity","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","replaceBetweenIndexes","replacement","end","specialKeys","Stylesheet","localClassNames","composedClassLists","conditionalRulesets","fontFaceRules","keyframesRules","localClassNamesMap","localClassName","localClassNamesSearch","layers","_ref","identifier","classList","regex","RegExp","reverse","processCssObj","root","fromEntries","_ref2","keyframe","transformProperties","currConditionalRuleset","layerDefinition","addLayer","mainRule","transformLayer","transformMedia","transformSupports","transformContainer","transformSimplePseudos","transformSelectors","addConditionalRule","cssRule","conditions","transformVars","transformSelector","parentConditions","layer","uniqueLayerKey","transformContent","pixelifyProperties","_ref3","vars","rest","_key3","mapKeys","_ref4","content","includes","transformClassname","isIdentifier","transformedSelector","currentAdapter","lastReplaceIndex","firstMatch","selectorRule","targetClassName","selectorParts","replaceTarget","targetRegex","validateSelector","selectorRoot","_this$currConditional","mediaRule","_this$currConditional2","containerRule","containerQuery","_this$currConditional3","layerRule","_this$currConditional4","supportsRule","toCss","css","fontFaceRule","renderCss","definition","nesting","cssObj","part","conditionalRuleset","conditionalRule","Boolean","v","_loop2","perf","performance","now","Date","warned","PROCESS","process","emitWarning","console","AC","globalThis","AbortController","AS","AbortSignal","onabort","_onabort","reason","aborted","addEventListener","warnACPolyfill","signal","abort","printACPolyfillWarning","env","LRU_CACHE_IGNORE_AC_WARNING","isPosInt","floor","isFinite","getUintArray","pow","Uint8Array","Uint16Array","Uint32Array","MAX_SAFE_INTEGER","ZeroArray","size","super","fill","Stack","heap","static","create","HeapCls","LRUCache","ttl","ttlResolution","ttlAutopurge","updateAgeOnGet","updateAgeOnHas","allowStale","noDisposeOnSet","noUpdateTTL","maxEntrySize","sizeCalculation","noDeleteOnFetchRejection","noDeleteOnStaleGet","allowStaleOnFetchAbort","allowStaleOnFetchRejection","ignoreFetchAbort","unsafeExposeInternals","starts","ttls","sizes","keyMap","keyList","valList","prev","head","tail","free","isBackgroundFetch","backgroundFetch","k","context","moveToTail","indexes","rindexes","isStale","maxSize","calculatedSize","fetchMethod","memoMethod","dispose","disposeAfter","UintArray","shouldWarn","getRemainingTTL","Infinity","setTimeout","unref","status","cachedNow","getNow","age","remainingTTL","entrySize","totalCalculatedSize","_i","_s","_st","_k","_v","rentries","rkeys","rvalues","toStringTag","find","getOptions","__staleWhileFetching","thisp","rforEach","purgeStale","deleted","info","entry","remain","dump","unshift","load","clear","setOptions","delete","maxEntrySizeExceeded","oldVal","__abortController","oldValue","dt","task","val","hasOptions","peek","peekOptions","ac","fetchOpts","cb","updateCache","ignoreAbort","fetchAborted","fetchError","fetchAbortIgnored","fetchResolved","fetchFail","bf","fetchUpdated","er","allowStaleAborted","noDelete","returnedStale","__returned","fetchDispatched","Promise","rej","fmp","then","fetchRejected","fetch","fetchOptions","forceRefresh","stale","staleVal","forceFetch","memo","memoOptions","vv","fetching","pi","ni","bufferedCSSObjs","newAdapter","setAdapter","className","composition","fileScope","_ref5","cssObjs","stylesheet","transformCss","from","fileScopeId","packageName","filePath","styleEl","document","createElement","setAttribute","appendChild","innerHTML","injectStyles","fallbackVar","finalValue","_len","regexAnySingleEscape","regexSingleEscape","regexExcessiveSpaces","cssesc","string","quotes","charAt","character","codePoint","extra","toString","toUpperCase","escapeEverything","$0","$1","$2","wrap","version","module","exports","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","defaultArrayMerge","element","getKeys","symbol","getEnumerableOwnPropertySymbols","propertyIsOnObject","property","arrayMerge","sourceIsArray","destination","propertyIsUnsafe","customMerge","getMergeFunction","mergeObject","all","array","reduce","deepmerge_1","_arrayLikeToArray","_toConsumableArray","arrayLikeToArray","unsupportedIterableToArray","_unsupportedIterableToArray"],"sourceRoot":""}