{"_id":"loader-utils","_rev":"84-53f075ba3f61f8d9f934adb6ca83c940","name":"loader-utils","description":"utils for webpack loaders","dist-tags":{"latest":"3.2.1","version-2":"2.0.4","version-1":"1.4.2"},"versions":{"0.1.0":{"name":"loader-utils","version":"0.1.0","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/mit-license.php"}],"license":"MIT","_id":"loader-utils@0.1.0","dist":{"shasum":"c806ab8550eec0f0b716cc5b07fa7641261399e3","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.1.0.tgz","integrity":"sha512-sGjrWvuLzSrBxT42JNKwRxHCLYZNna3XSseenWAzNMh7b4F5vEF94BK0Ir3vzs0mtYFLx/aQ/8nkS6Di6sdwVg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyNxyDl8NFdSRqcSBCBRdkrKAnjG5qETfe2nmuQI6RkgIgMZmzOkXV0vtfisTKyizwAd/3AxkLi4xEkM6Ls9uthwY="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"directories":{}},"0.1.1":{"name":"loader-utils","version":"0.1.1","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/mit-license.php"}],"license":"MIT","_id":"loader-utils@0.1.1","dist":{"shasum":"2eb185fdec466d145507077f3ea2435e1cf9cc8e","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.1.1.tgz","integrity":"sha512-PusGrd5vzSe18ARNQppxQswSDAZfxo9qgR1Qs2K/U4WHiQnwkEM+Rp8diDIKbQoSlKYrnPc4kD2c1uSV/9BCYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtsjWufPakFTAcBYpIHTYeSIZAJo01JnZXAAqt/dCBYwIhAKghDxu5yNmjjEzciZ31ROyGWNzSRdte+q/ZfmLsePUz"}]},"_npmVersion":"1.1.59","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"directories":{}},"0.1.2":{"name":"loader-utils","version":"0.1.2","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/mit-license.php"}],"license":"MIT","_id":"loader-utils@0.1.2","dist":{"shasum":"94b2b270822ae0f53a6bab74394c1d6f557c296b","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.1.2.tgz","integrity":"sha512-whq26BzpCMqzOm+i3d+FKyrSmGzzaZsrndde8LWyEOJdOnmHbEGrX+wRDoK8R3pd+lTd7p76VlUtpBop2pm9lA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbW1JMGTtbbv93g+LCek+llm45K7qfzA5rRrph5r3LrwIgdNVmDIQfIUdCvABhttqVxAq1Nl7ht3XE5pb3i3eFSek="}]},"_npmVersion":"1.1.63","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"directories":{}},"0.2.0":{"name":"loader-utils","version":"0.2.0","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/mit-license.php"}],"_id":"loader-utils@0.2.0","dist":{"shasum":"3ab46086a1397e0fd52470e69106998fd70644a0","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.0.tgz","integrity":"sha512-gWPEBf0anNTkXMJqQ0F3BgV+aw6Xtf5saOf+vYE3KmSdRscWPelVsNiyNOGv2JNeCmdgBBukqo+rC2Bzl5W/tw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/NAHPQPhhN5NUrkhiVQU3cWNDOn/OF7zutlIuUhDvRAIhAL1eolhfkSwxQDyNSHyBZGVs8GKfJq7fg+mQavUR5ndF"}]},"_npmVersion":"1.1.59","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"directories":{}},"0.2.1":{"name":"loader-utils","version":"0.2.1","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/mit-license.php"}],"_id":"loader-utils@0.2.1","dist":{"shasum":"c8d03c4fe8c91e0ae362bd3aeb7fcc445f9b7890","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.1.tgz","integrity":"sha512-FhIhOr6oG2JyqWi030XTlVLVWjU6yN/mNDQwUdkMwMWhp60BiW7LTvqwfm2M1TirgzyVJNWz+PnOUlp+ez4Gyw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFX4DKPFShI6ShnhqeXXZTYg7E0BrtaXFq+ZksSO3aRQIgb8Lk3SALfGXefrg9vJHc4hGvMU63QwKrr0sSU8iHiHk="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"directories":{}},"0.2.2":{"name":"loader-utils","version":"0.2.2","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/mit-license.php"}],"_id":"loader-utils@0.2.2","dist":{"shasum":"4c0fe718dd3ab62d1d47d03a2b1af54dd7fda382","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.2.tgz","integrity":"sha512-F0Wo3IeOJBk82TvTuf06t4hf0/VOGx8by6o27Lc1BpSXOZCNAxzUZESej+oWvv3YOnomx2bNW4za9D0EZwu4hg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCb9EKTYAyRrWjuz9pNfW5YYkwvjYscWwWFdNNB6jFcgAIgArK48Vx3eVrBxi5Ce2df/+m7XXRtyRkVe4wk+0m0UpE="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"directories":{}},"0.2.3":{"name":"loader-utils","version":"0.2.3","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/mit-license.php"}],"repository":{"type":"git","url":"git://github.com/webpack/loader-utils.git"},"bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils","_id":"loader-utils@0.2.3","dist":{"shasum":"87fe021587458f10f7eb755c75af60a1fcf4b392","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.3.tgz","integrity":"sha512-gP7uRkdwoAF7wAUMkcGzfW53QBopgVD9jq6jTbiuTe1dSnCkUr572ACKRBWIxlH2aDzjk4zqIPXioUlYAEQTYg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEvqaxrnAa98cI/xmMftd4E2sfjPw69RvzYKyX/LPr+gIhAIZgYKIi/bINCBTPk2+yydihkQlxRcu6ss1nmVyCc304"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"directories":{}},"0.2.4":{"name":"loader-utils","version":"0.2.4","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x"},"scripts":{"test":"mocha test index.js"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/mit-license.php"}],"repository":{"type":"git","url":"git://github.com/webpack/loader-utils.git"},"devDependencies":{"mocha":"^1.21.4"},"gitHead":"bf11c1c2737360c1daf77925cc718fc48e147128","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils","_id":"loader-utils@0.2.4","_shasum":"b1fbdd1cf3b57ed111c202ffc193bafd1217f8c5","_from":".","_npmVersion":"1.4.16","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"b1fbdd1cf3b57ed111c202ffc193bafd1217f8c5","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.4.tgz","integrity":"sha512-SFoBsonTHefO5TwiVEExlybXCYxCktq5xR6ZvD9UDx8UApi+nBPIRf+Vjn4+qU41jAsHQFScLKGneN4lNoZaPg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEULAgVIMDourPV8INYKW269rMaL88z+gMZC/qwIXyCdAiEA9c/22PKEkp3UusoKkz6TL1vZx5/4Jt6J6/YkQw+p8dg="}]},"directories":{}},"0.2.5":{"name":"loader-utils","version":"0.2.5","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x","big.js":"~2.5.1"},"scripts":{"test":"mocha test index.js"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/mit-license.php"}],"repository":{"type":"git","url":"git://github.com/webpack/loader-utils.git"},"devDependencies":{"mocha":"^1.21.4"},"gitHead":"db3c7cd123355f61846497ebeef614670c075ed9","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils","_id":"loader-utils@0.2.5","_shasum":"8dec38ecbcc3a81a01627f2605bec98390ccd5d0","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"8dec38ecbcc3a81a01627f2605bec98390ccd5d0","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.5.tgz","integrity":"sha512-02Ay05cSLAN8Su/kWCMpFzpVmo1x1mOPARYRXZWgU9GsI1RAbgaasLuHfZHmPwikAQ3f9thHZ+VCESqbGgG4/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIADiJJBrnUZTa0WKwumD8fiD8rNwQS4hs1P01YJwST2KAiEAw6OlRZmB6ouupJe/5JH/hJuBxZuzzb6V/Bbll+MlKUg="}]},"directories":{}},"0.2.6":{"name":"loader-utils","version":"0.2.6","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x","big.js":"~2.5.1"},"scripts":{"test":"mocha test index.js"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/mit-license.php"}],"repository":{"type":"git","url":"git://github.com/webpack/loader-utils.git"},"devDependencies":{"mocha":"^1.21.4"},"gitHead":"3e9dfceeae52a23e5e027bdb67b30a21b52d2ae2","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils","_id":"loader-utils@0.2.6","_shasum":"306b798f6a24a5d78505fdb0db2ddd5bb2b90810","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"306b798f6a24a5d78505fdb0db2ddd5bb2b90810","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.6.tgz","integrity":"sha512-wTkzqVqw/8cl5xdnqLmltmh1S5WBV6gY3IRQECti7z+HKiYeDbN6fXyDFCyag3WC2nXDhg7c9aGkECQY9DmNzw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+dh1he0ZqUGUpV6eMC8uk/EfHErs0b6pa0jmA9QL2HgIgWUZxiauae3GWMSowow2Jk7sqdkNkSaWi3I85zm2xRno="}]},"directories":{}},"0.2.7":{"name":"loader-utils","version":"0.2.7","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x","big.js":"~2.5.1"},"scripts":{"test":"mocha test index.js"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/mit-license.php"}],"repository":{"type":"git","url":"git://github.com/webpack/loader-utils.git"},"devDependencies":{"mocha":"^1.21.4"},"gitHead":"b52bc62f9b2faba9f6c0aea8f9da7211b4e9bdd7","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils","_id":"loader-utils@0.2.7","_shasum":"dcbe8eaee038caa32961f206531da23f04e2279d","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"dcbe8eaee038caa32961f206531da23f04e2279d","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.7.tgz","integrity":"sha512-egXSdCWbQhgqeRRC9GVp9jbKQveTb9vcUONq8A7k06lSlBk5St7dectNoFRhf8lvL1cnjMnsOT3AQEesx5Rakg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGHTbA6s/sikPtE8W0ykgnF2fr32xO4werBtyY2NdpGYAiEA9KHcn+dQ6PbWa/L8UZKJv1HyywJieozWLtCOheXZk38="}]},"directories":{}},"0.2.8":{"name":"loader-utils","version":"0.2.8","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"json5":"0.1.x","big.js":"~2.5.1"},"scripts":{"test":"mocha test index.js"},"license":"MIT","repository":{"type":"git","url":"git://github.com/webpack/loader-utils.git"},"devDependencies":{"mocha":"^1.21.4"},"gitHead":"289d38652bd4035488ff35dd11130b36b77d1035","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@0.2.8","_shasum":"ad61651fac981a2911e9c9200a838be8974c0cf6","_from":".","_npmVersion":"2.10.0","_nodeVersion":"0.12.2","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"ad61651fac981a2911e9c9200a838be8974c0cf6","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.8.tgz","integrity":"sha512-i+s6qbc0dlCcmi/aaOKSm/1kNRRrAZ3218HRwlSohFWNyEIsn6/FE6PP6QvGBmN2CZy1vDfT7xKFSyhpLVdhjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGu5SGMmlqtXZiKT3fTMjsp1u5xdbkeNUc3oOCYn3ePiAiEA8EsWxchAJSsSwJhBZ+lrOnp+Vq7Lf2DBG6qbEs7I8fI="}]},"directories":{}},"0.2.9":{"name":"loader-utils","version":"0.2.9","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.0.2","json5":"^0.4.0"},"scripts":{"test":"mocha","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"https://github.com/webpack/loader-utils.git"},"devDependencies":{"coveralls":"^2.11.2","istanbul":"^0.3.14","mocha":"^1.21.4"},"files":["index.js"],"gitHead":"a417eea4e36f4fa3001d1a7591093e68cc4f5462","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils","_id":"loader-utils@0.2.9","_shasum":"9efc08d1ef20e99145e5e627bd8b945a85ac14dc","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"9efc08d1ef20e99145e5e627bd8b945a85ac14dc","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.9.tgz","integrity":"sha512-R6T7O5Grp+Nq9LhK23y1saw+8WiIu4wdmN3hxAOSp5W/MuT8FXBRkXdH1CWcUP8JggnVTCfgB/CaQ7scUG/abg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGFcwBR+X5xmcGGoUXwgvONqV/pgG22QLXstqOn14evmAiEAoQLgHtt0iI7kcsBx3KN6hTg1AFRxhVBlbMLVJOM/DZg="}]},"directories":{}},"0.2.10":{"name":"loader-utils","version":"0.2.10","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.0.2","json5":"^0.4.0"},"scripts":{"test":"mocha","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"devDependencies":{"coveralls":"^2.11.2","istanbul":"^0.3.14","mocha":"^1.21.4"},"files":["index.js"],"gitHead":"7fd3e9a1c9a0fb8d775f835498b8c0a2002e36a0","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@0.2.10","_shasum":"7ed2258e496644c83680590489bb82f3f57892fc","_from":".","_npmVersion":"2.10.0","_nodeVersion":"0.12.2","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"7ed2258e496644c83680590489bb82f3f57892fc","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.10.tgz","integrity":"sha512-CKzJBd9wm5jbOfjtBqp6+EKqembqgiO3Q4dO0wiy+Esp5Ux3GLnf31B0FKno1egafHqeihH5VREtzNuRKFlg/g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE/PfQ5bz2KFxnwbU4rhrYFV6CafC9mdM8qxofHtMSyaAiAR/g9s+a1gKBUm+yie5F/c8j0LIkfyqLiobfTOo8jYTQ=="}]},"directories":{}},"0.2.11":{"name":"loader-utils","version":"0.2.11","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.0.2","json5":"^0.4.0"},"scripts":{"test":"mocha","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"devDependencies":{"coveralls":"^2.11.2","istanbul":"^0.3.14","mocha":"^1.21.4"},"files":["index.js"],"gitHead":"0adb5e5c06b6fd217b8ec4a5316bb08d3363cd88","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@0.2.11","_shasum":"8a0164e337c21ca099c2b1716366f0db0ec3087f","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.12.4","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"8a0164e337c21ca099c2b1716366f0db0ec3087f","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.tgz","integrity":"sha512-2eR0axRLWlHkiQvcgfQlJxKdFGzAplZZhV5pYvJhNsqz/qNSNjkPavCnv58VKpStIj+7s7Jz6SHxa0tZTh+fNA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFKH1xzJsh3wCvekzZ56zWsaS2W8tPauSeRFGsHwZKfYAiAhWvcvkQa0WIulTXtCC4BF5MKb5b6bKdQyx8zJevlQKw=="}]},"directories":{}},"0.2.12":{"name":"loader-utils","version":"0.2.12","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.0.2","json5":"^0.4.0"},"scripts":{"test":"mocha","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"devDependencies":{"coveralls":"^2.11.2","istanbul":"^0.3.14","mocha":"^1.21.4"},"files":["index.js"],"gitHead":"581ccbcb264a9e6d7d667276fbfa609e0ee951f3","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@0.2.12","_shasum":"faa2a501563a3c2c9dda57aa8c39d8be628de7a2","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.12.4","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"faa2a501563a3c2c9dda57aa8c39d8be628de7a2","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.12.tgz","integrity":"sha512-4swclWt0kYEoxsWSn/sWPDtXVA30Owi37hdagCUJnXXospg2BrsMu5dqhXqtHEIHdxF3UGMmHBXqbiPTzxdetQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDbKTDkK7lMrxcoT20iNJZBQw2/VFc4FjbugXUXH1JY3AiEAttg50QRiL7MgTtl0M52BTloyeoX+STclVvISqZkhfps="}]},"directories":{}},"0.2.13":{"name":"loader-utils","version":"0.2.13","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.0.2","json5":"^0.4.0"},"scripts":{"test":"mocha","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"devDependencies":{"coveralls":"^2.11.2","istanbul":"^0.3.14","mocha":"^1.21.4"},"files":["index.js"],"gitHead":"b16f37eab0655130f82c1b5255373d7b4a372ceb","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@0.2.13","_shasum":"ea0de320be919056362c9972d5072b4596ae9eec","_from":".","_npmVersion":"3.3.3","_nodeVersion":"5.4.1","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"dist":{"shasum":"ea0de320be919056362c9972d5072b4596ae9eec","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.13.tgz","integrity":"sha512-BUaMrK27mCTGCYMc8GzfwGv92i1CtMsT/uDj8dIuFlX2zQuNVwmwuH2p7S54nQln8WhrMWubMAmvrq4BMzxpBg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFRpZjcOn/tLC3uK/lwPf2WOMfTmEiPbdAOb0CPAw3WIAiEA9ptHJqtl7cosY8OJe3lz80Cnokp8cAYnZ+qqh+Ur/j0="}]},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/loader-utils-0.2.13.tgz_1458846997166_0.9803386435378343"},"directories":{}},"0.2.14":{"name":"loader-utils","version":"0.2.14","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.1.3","emojis-list":"^1.0.0","json5":"^0.5.0","object-assign":"^4.0.1"},"scripts":{"test":"mocha","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"devDependencies":{"coveralls":"^2.11.2","istanbul":"^0.3.14","mocha":"^1.21.4"},"files":["index.js"],"gitHead":"fc647bb47b662771d26529c3157a8d2bc2579844","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@0.2.14","_shasum":"3edab2a123ebb196a1c9d6dd3e83384958843e6f","_from":".","_npmVersion":"3.3.3","_nodeVersion":"5.4.1","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"dist":{"shasum":"3edab2a123ebb196a1c9d6dd3e83384958843e6f","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.14.tgz","integrity":"sha512-z74o9g9a2ysPwfcJglqKwA6EqDI9JEAZrRY4QcIV0bd3TlhHCQ0cJuSaNZINFSFHlfLM1eZl2GpLx3M2pMUj1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICp4TpkT3rhEjE/37auzfSg0C1o1iviGEMS9M3NSMZsnAiEAneZzbadwmJAvPgXRS+KjEDALMvyebsOUL5OYrk/pxQ4="}]},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/loader-utils-0.2.14.tgz_1460208526883_0.26962931361049414"},"directories":{}},"0.2.15":{"name":"loader-utils","version":"0.2.15","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.1.3","emojis-list":"^2.0.0","json5":"^0.5.0","object-assign":"^4.0.1"},"scripts":{"test":"mocha","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"devDependencies":{"coveralls":"^2.11.2","istanbul":"^0.3.14","mocha":"^1.21.4"},"files":["index.js"],"gitHead":"bed965bbcb54fa54beecfee2639e9585ab5ae020","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@0.2.15","_shasum":"c7df3342a9d4e2103dddc97d4060daccc246d6ac","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.1","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"dist":{"shasum":"c7df3342a9d4e2103dddc97d4060daccc246d6ac","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.15.tgz","integrity":"sha512-62wASNQF58lPb5fWmg6Y3TtVrqrmtGHgjkBUNB3TWHZBZiODR1jEX4snGHFuFjwcOwOzZ6tFKR+ztVhxgbao7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDa72Rr50xn4aoGtzb+3pRUb8uGyZFstg048N0wSuiJCQIgP9IzLi9FIV4D3z2Xs+Xk1aFKgzTVbYXVf13mSmAAZQo="}]},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/loader-utils-0.2.15.tgz_1463148639681_0.7935674281325191"},"directories":{}},"0.2.16":{"name":"loader-utils","version":"0.2.16","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.1.3","emojis-list":"^2.0.0","json5":"^0.5.0","object-assign":"^4.0.1"},"scripts":{"test":"mocha","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"devDependencies":{"coveralls":"^2.11.2","istanbul":"^0.3.14","mocha":"^1.21.4"},"files":["index.js"],"gitHead":"4ea2dfbfe03e3ca70576aff5fe5e4a4235232591","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@0.2.16","_shasum":"f08632066ed8282835dff88dfb52704765adee6d","_from":".","_npmVersion":"3.3.3","_nodeVersion":"6.3.1","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"dist":{"shasum":"f08632066ed8282835dff88dfb52704765adee6d","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.16.tgz","integrity":"sha512-dd4/ZWk+/kNr/GHdKCOGamC6WTfmi6yFjWTJ+l1nTNHut+y4RxGWuWtOzWWXEmmvunTBspjvTsp8RsjhasOxDA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyFDETsRQA1iqbF89vA0q8M1kdx6syKU4Rbq3QCYcjOQIgAh4Kcc+nyiL5nPPpRG5f4jU/J19MB4+TYO7muuJ3r1A="}]},"maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/loader-utils-0.2.16.tgz_1473890187319_0.20624244073405862"},"directories":{}},"0.2.17":{"name":"loader-utils","version":"0.2.17","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.1.3","emojis-list":"^2.0.0","json5":"^0.5.0","object-assign":"^4.0.1"},"scripts":{"test":"mocha","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"devDependencies":{"coveralls":"^2.11.2","istanbul":"^0.3.14","mocha":"^1.21.4"},"files":["index.js"],"gitHead":"00b9d0848bd7216e184beacbf6582dc5ee51ff80","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@0.2.17","_shasum":"f86e6374d43205a6e6c60e9196f17c0299bfb348","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"dist":{"shasum":"f86e6374d43205a6e6c60e9196f17c0299bfb348","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz","integrity":"sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDXECyJiDYsXYQo+RhIhCBbrsTolG+kZzsKOYsw0VfbzAiEAsjVdzM5dnR37w2YYBgQ3mEe9QalWpbaHwoJAxJSVmLk="}]},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/loader-utils-0.2.17.tgz_1487631410094_0.04626395273953676"},"directories":{}},"1.0.0":{"name":"loader-utils","version":"1.0.0","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.1.3","emojis-list":"^2.0.0","json5":"^0.5.0"},"scripts":{"test":"mocha","posttest":"npm run lint","lint":"eslint --fix *.js test","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":"^4.0.0"},"devDependencies":{"coveralls":"^2.11.2","eslint":"^3.15.0","eslint-plugin-node":"^4.0.1","istanbul":"^0.3.14","mocha":"^1.21.4"},"main":"lib/index.js","files":["lib","README","LICENSE"],"gitHead":"8cda6ab3c53791851b1528b3d7d8d7f537ae344f","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.0.0","_shasum":"4923aa5442acd8132af59ebc2738a1a828e86184","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"dist":{"shasum":"4923aa5442acd8132af59ebc2738a1a828e86184","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.0.0.tgz","integrity":"sha512-68phTQpL2wva2mgErbchbsGB7/OTywIUiq2LrtE2NCK1s21s1VRMh7ANDMEQoeFM3GPN86OBhhX/BOyRGStRmw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHfDOVl43/3NsNW4h8598A1JHQ9HMjkWQ3sihgGRb/3VAiEAp9nIIlI979ocT1Wp4fNJduZf79N5saapg+QDIDLpVRw="}]},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/loader-utils-1.0.0.tgz_1487632673669_0.4440648609306663"},"directories":{}},"1.0.1":{"name":"loader-utils","version":"1.0.1","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.1.3","emojis-list":"^2.0.0","json5":"^0.5.0"},"scripts":{"test":"mocha","posttest":"npm run lint","lint":"eslint --fix *.js test","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":"^4.0.0"},"devDependencies":{"coveralls":"^2.11.2","eslint":"^3.15.0","eslint-plugin-node":"^4.0.1","istanbul":"^0.3.14","mocha":"^1.21.4"},"main":"lib/index.js","files":["lib","README","LICENSE"],"gitHead":"9986c9c281f33f40a11dedbccac41bb6c24bfd9f","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.0.1","_shasum":"92795b3f71578538b57f7a2ecc71d5b033f0fe29","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"dist":{"shasum":"92795b3f71578538b57f7a2ecc71d5b033f0fe29","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.0.1.tgz","integrity":"sha512-7QYVRAegEikHIGdvf5FbXWFEpk19rKdJ7r5RUoB2p5wJ7oANNpWrD04DcKpSJ7Cv70Rr+lrH2VFjFiJC8YVI3Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYco3DmxntqKTgKZDAvaIQm4l9zyf0E/k0qpxJg6lhBgIgBYb7wZFwY6OaqqXqw0mwdJU3JpuwB+pGnzfHonXNi9A="}]},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/loader-utils-1.0.1.tgz_1487688888715_0.6141277730930597"},"directories":{}},"1.0.2":{"name":"loader-utils","version":"1.0.2","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.1.3","emojis-list":"^2.0.0","json5":"^0.5.0"},"scripts":{"test":"mocha","posttest":"npm run lint","lint":"eslint --fix *.js test","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^2.11.2","eslint":"^3.15.0","eslint-plugin-node":"^4.0.1","istanbul":"^0.3.14","mocha":"^1.21.4"},"main":"lib/index.js","files":["lib","README","LICENSE"],"gitHead":"622de891c53756e3275e7d36197c0fcc2c93149f","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.0.2","_shasum":"a9f923c865a974623391a8602d031137fad74830","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"dist":{"shasum":"a9f923c865a974623391a8602d031137fad74830","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.0.2.tgz","integrity":"sha512-3oX4h0m0IAhTUNvcEBLHllnxX0smVVPXBm3YhteZhvUZuchZFQfxmSfjAtlurffVKHqgvkZvIYg+VLi6WsnSlg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQaVivhEd2WGOtxStFDN4Hi/vfi8GVz+DdlKogGl2TIgIhAOXyRfKkBYEGjv2hqDkQeqh5rOcGXVGexsGr8iyJIJJO"}]},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/loader-utils-1.0.2.tgz_1487691451673_0.9973385850898921"},"directories":{}},"1.0.3":{"name":"loader-utils","version":"1.0.3","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.1.3","emojis-list":"^2.0.0","json5":"^0.5.0"},"scripts":{"test":"mocha","posttest":"npm run lint","lint":"eslint --fix *.js test","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"JSF","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^2.11.2","eslint":"^3.15.0","eslint-plugin-node":"^4.0.1","istanbul":"^0.3.14","mocha":"^1.21.4"},"main":"lib/index.js","files":["lib"],"gitHead":"b3648f53c41b4432e8cde5d90d79a1838ceb5fa0","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.0.3","_shasum":"566c320c24c33cb3f02db4df83f3dbf60b253de3","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.6.0","_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"dist":{"shasum":"566c320c24c33cb3f02db4df83f3dbf60b253de3","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.0.3.tgz","integrity":"sha512-zzATq2KgjTETTnRw3WoE6M1McKkLKRYajVJcWLo/eq5ztc0FsNk86Fzox3G1TNj6JMqbmGOtSilQXM8hWCYRRw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDZL+CxVl7WEcq9+tZdaCH+AG6YSpEaH7MqxHs7zGkg7AiADcqMutq8s16PanVAIgeGvi8bpkm5fajBxXF3nxJu+mQ=="}]},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/loader-utils-1.0.3.tgz_1488808973512_0.982763821259141"},"directories":{}},"1.0.4":{"name":"loader-utils","version":"1.0.4","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.1.3","emojis-list":"^2.0.0","json5":"^0.5.0"},"scripts":{"test":"mocha","posttest":"npm run lint","lint":"eslint --fix *.js test","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^2.11.2","eslint":"^3.15.0","eslint-plugin-node":"^4.0.1","istanbul":"^0.3.14","mocha":"^1.21.4"},"main":"lib/index.js","files":["lib"],"gitHead":"dfaa358213c2c96ee07c9fdd4abedd63d4ec528f","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.0.4","_shasum":"13f56197f1523a305891248b4c7244540848426c","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.7.1","_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"dist":{"shasum":"13f56197f1523a305891248b4c7244540848426c","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.0.4.tgz","integrity":"sha512-TMS4PQ0+m0xyRGBunvDQIdhWJY6JOYeEPpHZEW0EmDhqKrQUj04xiMT3jsdVS17pUg0JzX1mJI3QiV8lXjoEng==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG/ki1PftBq2SOv/TP3kTHNuEtI7eT5vldi/1gHv1hRQAiBQxrNQnnyGgnKFMY4H4xIRrcZyt/zN+F+Y87myo0l6pA=="}]},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/loader-utils-1.0.4.tgz_1489488966537_0.6818160915281624"},"directories":{}},"1.1.0":{"name":"loader-utils","version":"1.1.0","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^3.1.3","emojis-list":"^2.0.0","json5":"^0.5.0"},"scripts":{"test":"mocha","posttest":"npm run lint","lint":"eslint lib test","travis":"npm run cover -- --report lcovonly","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","release":"npm test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^2.11.2","eslint":"^3.15.0","eslint-plugin-node":"^4.0.1","istanbul":"^0.3.14","mocha":"^1.21.4","standard-version":"^4.0.0"},"main":"lib/index.js","files":["lib"],"gitHead":"a5602addda0c5e98e70d067b8dd050d5e4153f1d","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.1.0","_shasum":"c98aef488bcceda2ffb5e2de646d6a754429f5cd","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.7.3","_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"dist":{"shasum":"c98aef488bcceda2ffb5e2de646d6a754429f5cd","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz","integrity":"sha512-gkD9aSEG9UGglyPcDJqY9YBTUtCLKaBK6ihD2VP1d1X60lTfFspNZNulGBBbUZLkPygy4LySYHyxBpq+VhjObQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAfMhDWE8KUyeonmxiQhvnmxRwoRoBRDlph5PIdGNJu4AiBAs6qow5gKne0j/PhkViYIhFr/helEU9gj2B7vt5UUAQ=="}]},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/loader-utils-1.1.0.tgz_1489673126296_0.2887681087013334"},"directories":{}},"1.2.0":{"name":"loader-utils","version":"1.2.0","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^2.0.0","json5":"^1.0.1"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^3.0.2","eslint":"^5.11.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0","jest":"^21.2.1","prettier":"^1.15.3","standard-version":"^4.0.0"},"main":"lib/index.js","gitHead":"ba4f0d0912b84d974a80ce8a5d2eae69841cd36b","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.2.0","_npmVersion":"6.5.0","_nodeVersion":"10.14.1","_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"dist":{"integrity":"sha512-KkQxP+pVgJC6ypy8ePypyhsV/hZeyVlkqiqrxe4pDgCwClbzmr3dGy8LbeSVhmfzYmCpOovdrVs/9chsQXCrLQ==","shasum":"8194a9bfabc3612e52e556139f67acbf01b267b7","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.0.tgz","fileCount":15,"unpackedSize":25347,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcISHICRA9TVsSAnZWagAA42kP/RrAH166H/qC2XToF46N\nr3WNbGOXa2eGT03IkfWRqSjYH6akAWd9t2S6qAeLgAuTlqiZHNVsJB0+VIyS\nM3hZjh/mptS10uFRRq49N9iNjSy8RL/4kKOn+E6vwL60bJrScjrGdQxn/0So\njTlOByOqT14yEEh/gbphGIF+fXGVTQo/rBVMMnbxuWkhGPq5zVBCQoHYemup\n2m/QwrUVyeaZo+EAVL5mZ2mHvSb1BpTBfGbAcgQdUUYutIjghlogLl737j6J\neSm6ClA86rj9dLHOxIBG9jkt9T+Z6Jb8huDyiZDEQHLY/W7vLHOoMZF16inQ\nBi7EhUWUhs5Hb+fbVHXTHqpB7VIwiIdP72nrGkQvzj2NbVc9suHsOVY+wWNz\nbs8Lm9OCnHxso1KElI7Td6iMDSpn3TYVjVTHK9sqnfthu5dPUPQjZGnUXqA6\nqPU2AbIatCzfHqEnNtKfEGmHWTfsdobicqz67B8/fS/qVAGz6F3T9sm++Oge\n9uImEND7asQHnTGtc0jGRFi78MPu/OpKyPmFO4aZ2pvktiiJ6v/EqpDBbXNq\n9gKo7+UXQI7oaVgJ3H8fmlVnIeX5vesgB97/EtFngiyj5efzFHv11fsb9rNn\nUqgEwYTH1Z2zhj76mxI63DR1baRhl4nFBP/LDd0SdqDxHwGziTmclGyVrlZ7\nxw7C\r\n=Khcs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBF3KK1xkyVUqOe0prS58cC3H/dVI6FTPcX2WRInQRtFAiEA77e+XMPuUYH938bHushuIhuKOTC0H1jzEw/cdEhrVSM="}]},"maintainers":[{"email":"bebraw@gmail.com","name":"bebraw"},{"email":"wiens.joshua@gmail.com","name":"d3viant0ne"},{"email":"sheo13666q@gmail.com","name":"evilebottnawi"},{"email":"mail@johannesewald.de","name":"jhnns"},{"email":"j.tangelder@gmail.com","name":"jtangelder"},{"email":"michael.ciniawsky@gmail.com","name":"michael-ciniawsky"},{"email":"andrew@shellscape.org","name":"shellscape"},{"email":"tobias.koppers@googlemail.com","name":"sokra"},{"email":"sean.larkin@cuw.edu","name":"thelarkinn"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_1.2.0_1545675208365_0.9149365438295183"},"_hasShrinkwrap":false},"1.2.1":{"name":"loader-utils","version":"1.2.1","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^2.0.0","json5":"^1.0.1"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^3.0.2","eslint":"^5.11.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0","jest":"^21.2.1","prettier":"^1.15.3","standard-version":"^4.0.0"},"main":"lib/index.js","gitHead":"489ef12a900c9f40c32eb0dceeed1eaab55fcc89","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.2.1","_npmVersion":"6.5.0","_nodeVersion":"10.14.1","_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"dist":{"integrity":"sha512-3Zhx4qDqBQ9U8udWB3RMJ29nLu5a3ObNOSzk87woPvge01pi0wABowgv7F79Z4mL0DGtHRi/oOndT34EVhInoQ==","shasum":"64bbbac69aa5840d03754ba676a963dec568e844","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.1.tgz","fileCount":15,"unpackedSize":26237,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcIiJZCRA9TVsSAnZWagAAr5UQAIUvYJyWoK6CJrmc3s/S\nbsCg86PCgqGRf0Tt9Kc03kUYXpZ1s1cBkGgbvX+SsakxBfaXOdYJV+IsbCtY\nBMMjWVXKtvgeRhtyOZnd/6WzDsb8nRns5BiemZH15fg+x2YDBe09yj//O2Fe\nGdYRo3xm+SvbdKfCaOp2EkFeIrKe4qppJXXR0oaqJxj8fFAMU4zFfK3Zmdtr\n1h1Sv/dLMRae6jipGbYglJYRcRf6Hl8jqk3FRME92hEQyFTMB97vSUxzSFsM\nxMRom/wGqXhFxG5qUOOJjdllo1crO76Bo1mICHunWk/CZo0iNliyKoWKXfbk\naj6zDE31wsU9WceUcHKaUyUonY9ww8SnoLMF589HZ+9UaXNapa8pNrLhohzd\n/Xu51PTS2gbTZJpSzdh/93lueUDceEiWqQRlARWie0iNTdPhIFW++FC0zvxp\nhOOIItORE/8YY8hYTsOd2m6AgXAy86lYImKXELxGyzEiIdhSErFEoNKGJUID\ntwFhZWJPBn+3QpFhYHASMCgi/W13bBoqnDq6lIfrmQJBFmUolLfyvLOroCg8\ndJD+D/XyGnRCtPp0HZUdUS8L6sbCEtFxDwL1+TkCZYd5Zsz1+hCLryZwPfmu\nRD8F1UhJSU4LyhcIwvCfme50qwaDGB6yOuU/NpWmjRU7W/wpXQ6IdZE4Ksvh\nQ2ap\r\n=N2QL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0gPAEjjVmrUJGQsmaDH/dGfc8Cz5YlVD0VJs5Z/V3lgIhAKQjll8tXhiTaAb2WoW+0pN66ZbmdzsfHVE1sntBU3N1"}]},"maintainers":[{"email":"bebraw@gmail.com","name":"bebraw"},{"email":"wiens.joshua@gmail.com","name":"d3viant0ne"},{"email":"sheo13666q@gmail.com","name":"evilebottnawi"},{"email":"mail@johannesewald.de","name":"jhnns"},{"email":"j.tangelder@gmail.com","name":"jtangelder"},{"email":"michael.ciniawsky@gmail.com","name":"michael-ciniawsky"},{"email":"andrew@shellscape.org","name":"shellscape"},{"email":"tobias.koppers@googlemail.com","name":"sokra"},{"email":"sean.larkin@cuw.edu","name":"thelarkinn"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_1.2.1_1545740888656_0.7320917201987636"},"_hasShrinkwrap":false},"1.2.2":{"name":"loader-utils","version":"1.2.2","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^2.0.0","json5":"^1.0.1"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^3.0.2","eslint":"^5.11.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0","jest":"^21.2.1","prettier":"^1.15.3","standard-version":"^4.0.0"},"main":"lib/index.js","gitHead":"809b690c3b7fcb2e0947f014e86554d2ae1f3f03","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.2.2","_npmVersion":"6.5.0","_nodeVersion":"10.14.1","_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"dist":{"integrity":"sha512-Xjb++b55GPoVV1ct93EodsswWEErveAqGhhwujIshShtjIKdPpdpveriwNCNsuVo1zQ1ukmPUszK44C9RD7TCg==","shasum":"fcfcb6b4109b2358c3df160b2254f0496b261a36","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.2.tgz","fileCount":15,"unpackedSize":26548,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcJKm9CRA9TVsSAnZWagAA4e4P/RwxrBXfQSg+BfhrQR+z\nx1zhi/CdNAoGq6QihGbkF86da6mk9nREGpLzDVp6AlM07XZSeipC+CNKDSU1\nNsXy3onFaRFD5pjEyURsqGP2f0ptEG8mPlQtMdkaN2Rz8XhAfHYTHUhit+pS\n33QDHA/tX7h+95aEz7oUfJgEyEVtcuqsIB3otAk++ic1A15ZxCNfmPaN5AuU\n9pECvcxVG/qsYGfIKPww/ypCjRtBrNUJSH5D+7QN0TIe13ecizsWxa9R61vu\nuj8GTjbyWNvqza2itqfTbz49lYkzKNuPWbAMsqMriU3+3AOr9VD0VnB/75ii\nwsOn/8ups+HLNOV5SmNISOGXi/ZzLEflKkKv+l6Aa2tMcegR4aleSdeO1Ytc\njQf0xHRU8JPatQzlFkOG0cmNBR9oKYrQQCIN2JJYGeEHw+mm9MnzGiEa04yB\nwQ90rEaauMsE2LodS8QNe+/zbjnS+1o+/RWYBauIzzsg77ulV4ZNWt4YibIh\ntLle76Dhzo6O7+TOB4uRv8kJ/XIU9oUsBsruEJme4hTbSoGEdp+fYixIAKL5\nzT2Y0zs1oQG+CqHuCxXi2ImyPVVFVUEcntMG1MLXWIL3tlpD3wPCM/VyphRp\np9jO7IeIkZDFFpQOTZM4yr+8DI4eDrafmKHGIZM846FJyHcEsUGclz8VLYXi\n++mp\r\n=U93B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgfivS2GReLs3KOBlZKI6p7UVyhjhbKWcSpd/C2w50vwIgMNCj/cdj2CIEafWFJyEbRg/Mbm2ohGlADj0a8GFG7tg="}]},"maintainers":[{"email":"bebraw@gmail.com","name":"bebraw"},{"email":"wiens.joshua@gmail.com","name":"d3viant0ne"},{"email":"sheo13666q@gmail.com","name":"evilebottnawi"},{"email":"mail@johannesewald.de","name":"jhnns"},{"email":"j.tangelder@gmail.com","name":"jtangelder"},{"email":"michael.ciniawsky@gmail.com","name":"michael-ciniawsky"},{"email":"andrew@shellscape.org","name":"shellscape"},{"email":"tobias.koppers@googlemail.com","name":"sokra"},{"email":"sean.larkin@cuw.edu","name":"thelarkinn"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_1.2.2_1545906620751_0.3714967387139998"},"_hasShrinkwrap":false},"1.2.3":{"name":"loader-utils","version":"1.2.3","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^2.0.0","json5":"^1.0.1"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^3.0.2","eslint":"^5.11.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0","jest":"^21.2.1","prettier":"^1.15.3","standard-version":"^4.0.0"},"main":"lib/index.js","gitHead":"b91a76c0c98bf71df5a3a1c808ea86268c3716c1","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.2.3","_npmVersion":"6.5.0","_nodeVersion":"10.14.1","_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"dist":{"integrity":"sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==","shasum":"1ff5dc6911c9f0a062531a4c04b609406108c2c7","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz","fileCount":15,"unpackedSize":26892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcJMQZCRA9TVsSAnZWagAASckP/jRacPov3Xq8RzE938Wv\n+JE0r/2JrbRt41B1vgVrcYsessd1phyGkha/RGoHl9DLDiptjkOdZ1bgg+HX\ngU0emdTyCm3dX8INN3/fDtPyt8bAmO+PfvW8GvwY+nrrwN8g5PnOMgdUr8+T\nqnEbONrkda4dLkM3MarnBm8PZaAnF1igdCPxyjLQb8mQahgw3CAq38N/uA9a\noxUF04E4OSR2qrz75+ur/0LnEvR8vDJ7TTZ36lpdOF2pTN+/3/f8PxVxnYxo\nwlDYTLozYcK8LgBXmb9k5XqX+dxrmCcj6DIhupXgOQjq7tdHiuTvDAEDR40o\nbYDmn6O5Z3neq3AFGmMo1+WSj1+K7zY8kJeoYDX3V7zxFe0vf4ZgWSuvFueM\nkWqpiu8GkrE7RSbDb7bRZ0piJrtCfQVswGY6nmywBQLXPaztRllDAvHUHonF\nvEG665VBqkeIHaZ8LWKvUQZw/RCg4nvmYLoB0eMfIQi9FDo79atfGQSZMf2B\nMsBzz1GoS5HqICorptFwhTab+6PUUYI7y1VfiVRiP3bn8sPlfW2TL/tivXFs\n/EKIey8yA2JwIfeRrIBu57b5dXuX8edyQSMyx5gp16VeLEvukwdVgUoHzyWN\nnyjQYBhvkP3Au5QkxxlucGxIVrpaEAiOpOGPhN8IgNRxS3ppTi1OvhQsJtuQ\nPDwt\r\n=GdxV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFy6sMB85ncp3/9YBRDyEyGvsnDLqpUXnZe7BL3sHXqrAiEAyQh7OJhJCvUlZtrkmv4ojM9E+Ufi1U/nfkFsA53PBJk="}]},"maintainers":[{"email":"bebraw@gmail.com","name":"bebraw"},{"email":"wiens.joshua@gmail.com","name":"d3viant0ne"},{"email":"sheo13666q@gmail.com","name":"evilebottnawi"},{"email":"mail@johannesewald.de","name":"jhnns"},{"email":"j.tangelder@gmail.com","name":"jtangelder"},{"email":"michael.ciniawsky@gmail.com","name":"michael-ciniawsky"},{"email":"andrew@shellscape.org","name":"shellscape"},{"email":"tobias.koppers@googlemail.com","name":"sokra"},{"email":"sean.larkin@cuw.edu","name":"thelarkinn"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_1.2.3_1545913369202_0.5225895317690739"},"_hasShrinkwrap":false},"1.3.0":{"name":"loader-utils","version":"1.3.0","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^3.0.0","json5":"^1.0.1"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^3.0.2","eslint":"^5.11.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0","jest":"^21.2.1","prettier":"^1.19.1","standard-version":"^4.0.0"},"main":"lib/index.js","gitHead":"06d36cf3a619cab20b08608204cb7ea9bddaceab","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.3.0","_nodeVersion":"10.15.2","_npmVersion":"6.13.7","dist":{"integrity":"sha512-3DgDIZM5uYPDORrAT1YvqH/7P4E6Tctk7gaNeNUEEsj+diTu6wGyO9YBLFKJ4kFq+HGn5Au6gg2Hv087U/GBqA==","shasum":"446ec1ade95d634fd8ad3286ac12ea0306faef3f","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.3.0.tgz","fileCount":15,"unpackedSize":27818,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTWsICRA9TVsSAnZWagAA4w8P/iLBAY5kmASDhYwmwzMR\nzhHPktuXwjIdx4erE6FuDIhUJJZcCSvLGdavOZimbrNZKRZ73Aag0BkbXV4x\niAXRM09mfAnKEYYjzPNWNLvBHw2I60WgngLD0FN5+cKzo/cP8CC8ifmLH2D2\nPEa0VOT+7EEMXUXn1+0MhEWJuxXsA2kOMrIfTNN8jwplmscfMb8sDG7djrND\nsDIiks3k8z6xIISwMScGrPYjkzh8lF8wFh5DZKzMtESAJlapU3OFZlmjTriJ\nAcIN7qe5Vg/dzGrLwkgxjBKZoRam9/60JqoQjqd0jCSuZxj/KZhySQ42uJFb\noe0+/ZMMnkK2VY8O3RbcyMPbnvsHuDvbZmuZ6F9xX3T8TFd3VJ4HKhfZ0hKy\n2/NV25Ph7kXsDrsUXMtCUB9FOtcRdesO5uFT6/wX+d3QWagbGs2vpTV3HQRa\nKL5MePmiOrbPD6+6US1R35+uYTscJRRdYpL0J4nMsHJZvQ43j39IPC23HQ2Q\nlujADc+v6KBps+kHlfSu+vwLerUXOepqAnZZYmCLj3eZ5nF91DLsxmLXOsZY\nOXmdO4CQPFTXpQx3UYhST/VeJMsesqmVFQhAAJ62FcganhXR5+ISkiQVCMo9\nwIHPt5STgY9xBZ+ik+hBRmYNkczqQCwcQEjDzmVMYDiAc6Dra+y0kB+hWDxd\noQL9\r\n=4QWF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDGTSQ1pbA+MXW4cauOyj4lqySxG8adxYWnEs2Rs6s/MAiEAqQ3XrKmjID0z8nLcrU66FLEugG0+ZZ3Y/3xoHQHO6As="}]},"maintainers":[{"email":"wiens.joshua@gmail.com","name":"d3viant0ne"},{"email":"sheo13666q@gmail.com","name":"evilebottnawi"},{"email":"mail@johannesewald.de","name":"jhnns"},{"email":"michael.ciniawsky@gmail.com","name":"michael-ciniawsky"},{"email":"tobias.koppers@googlemail.com","name":"sokra"}],"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_1.3.0_1582131976553_0.24423840167567645"},"_hasShrinkwrap":false},"1.4.0":{"name":"loader-utils","version":"1.4.0","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^3.0.0","json5":"^1.0.1"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^3.0.2","eslint":"^5.11.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0","jest":"^21.2.1","prettier":"^1.19.1","standard-version":"^4.0.0"},"main":"lib/index.js","gitHead":"d95b8b53f0ad547133b47ac8226f735c479f76de","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.4.0","_nodeVersion":"10.15.2","_npmVersion":"6.13.7","dist":{"integrity":"sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==","shasum":"c579b5e34cb34b1a74edc6c1fb36bfa371d5a613","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz","fileCount":15,"unpackedSize":28893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTXFiCRA9TVsSAnZWagAA21QQAKRq/Aq+PKQYsMvF49Qz\nkGuo/aAgvcphqUVPgBlk0PFNyYSJzhI42H889XWGQ/HjWSsiYvP0MTHby985\nOcgCQ4TTy3iK9fynC0spDs1/pxIGHWxWYBpQmt15Cn/VlPPbWdjHq0vKIcUY\nrwgYu+E/ylXNiAG9vkldFGNemrD/vCafb3D4h/aPLYYVvWaIzo8Kq+UHMDNw\nURKqD0P6bSIPVglIqK71Ch0XS/6C4m/U45fwmjZITgr7zNfOV4HR10GfupTI\ntAOwlhQjINVGhPCf2mZqHnvNCKD7mJlGgvvoN1zbEu2AD5q27P2xCRKeQA3z\nt8IAzebfSSZYqfBaHQg1F3/xHQrQye8bCQY7jfpL5HBZyxCV3hXbOQ5DFKCU\nFKDGfHmurKAfUkhcGH3J+QLePHjTG3yzso9+2IOWXUbRmLVk9CoT72RioS7v\njVZkPi0XnFDar++XpOrJVdOzkqk9hquOcBQDKkT62OLQ0ZdjJvUyqN7Z19OP\n0gZnyFlWLvIRhs08fn2/b02C8VCVeU+E/gjFlRNA/PHzIA2237DLClSv61tu\nTQPsZXZGBbB6etPshtOjJoFzb9cBvwXp++vS1HcuU18xpsXphckWCsHp4fRP\n6F09g8umNH1t6d5+N/6UPFz7OMH3GXHmZ0SzZe9Fq0Z/SEB3V/71Zf+6ARvv\nsggX\r\n=kKRV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC591VA2ak+2/+yNr5g2zgs2bs1Xzkbrry2NB8ldDTo3wIgZjHgwGAPRd7zS1VM/lsiwE2zRcHmnmIdDDje2NbWQsM="}]},"maintainers":[{"email":"wiens.joshua@gmail.com","name":"d3viant0ne"},{"email":"sheo13666q@gmail.com","name":"evilebottnawi"},{"email":"mail@johannesewald.de","name":"jhnns"},{"email":"michael.ciniawsky@gmail.com","name":"michael-ciniawsky"},{"email":"tobias.koppers@googlemail.com","name":"sokra"}],"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_1.4.0_1582133602049_0.6698382604953661"},"_hasShrinkwrap":false},"2.0.0":{"name":"loader-utils","version":"2.0.0","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^3.0.0","json5":"^2.1.2"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=8.9.0"},"devDependencies":{"coveralls":"^3.0.9","eslint":"^6.8.0","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.2","jest":"^25.1.0","prettier":"^1.19.1","standard-version":"^7.1.0"},"main":"lib/index.js","gitHead":"d9f4e23cf411d8556f8bac2d3bf05a6e0103b568","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@2.0.0","_nodeVersion":"10.15.2","_npmVersion":"6.14.2","dist":{"integrity":"sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==","shasum":"e4cace5b816d425a166b5f097e10cd12b36064b0","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz","fileCount":15,"unpackedSize":29542,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecLanCRA9TVsSAnZWagAAcUQP/A4EMnQKlU7bQfyGUm3c\n40IQvwykmwyy77Kuosrsh1+5JqcATrTzKBn2x/EeZodZeO3BbKQskiUSVaLn\nOVGYsx1WtD/k/1ubQj/GGJZ2QdThX10OS/b/VD7hSNnLgTqYRgwNBSYjJPR2\nS9esn3mq2XtoZ/qll4tOVIL2sWZMEJ+Rz28u/1WrNB5VH7NKZhW0DbYAcLXF\njXVTovp8s2pQhgFG0jEWHu2lNsZfAeJ2ZRWaGYUjz/Cy1Pj9/SdO8qAI67+D\nLEzy8OGFFmwbCGd+5na5+EVBwKrAaeVJeBrnJeqoayWs/lv3z7qoccODBvbh\nWvG5pKDTbU9MewUqP+Pz09Kw+JY+p5xmRc3AlGd7oP32fhxagx1FSHxdicUe\nSs0NDlsNoXwFsFDj1z6nLI5w/yJqLEC+rw8i3iOSe7i2yc4PpoEwTIoH/sWS\nDL/lO+JyGGsDnuSdDpakFscK2BD2YBWpMKBf+EUYfbKJBj5WJv7qo5EUl27C\nOOZIZNOrpGnDszygH6fIWbrkW/0nnAjg0LdPER7VGtpZldILKdfU6YYm0c50\nalTqRFT1/kKcvuVoUUgnU37POyb77CkiyH+ctcJW4NVjVFr1N+QAggg2BaB4\n58f8/tEl1IJKGP0Mz2VFvMveLFNDXHnwjSiDDY2b+26WOQlpQjNNM928wRME\nIZ7v\r\n=HeY2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEHQ3vXgRgwHsBqs3XOUvq0ZwfpzRTD3IqxW4gPZ1agAIhAKuUI37uF1ps5Y72G4BtDVlbqSk1X30YN1pnpH+5T5rG"}]},"maintainers":[{"email":"wiens.joshua@gmail.com","name":"d3viant0ne"},{"email":"sheo13666q@gmail.com","name":"evilebottnawi"},{"email":"mail@johannesewald.de","name":"jhnns"},{"email":"michael.ciniawsky@gmail.com","name":"michael-ciniawsky"},{"email":"tobias.koppers@googlemail.com","name":"sokra"}],"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_2.0.0_1584445095416_0.02652315978988473"},"_hasShrinkwrap":false},"3.0.0":{"name":"loader-utils","version":"3.0.0","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^6.1.1"},"scripts":{"lint":"prettier --list-different . && eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">= 12.13.0"},"devDependencies":{"coveralls":"^3.1.1","eslint":"^8.0.1","eslint-plugin-node":"^11.1.0","jest":"^27.3.1","prettier":"^2.4.1","standard-version":"^9.3.2"},"main":"lib/index.js","gitHead":"e1e9f895df7802a859a0e627081fc8fb5ddd7c86","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@3.0.0","_nodeVersion":"12.22.7","_npmVersion":"7.24.0","dist":{"integrity":"sha512-ry4RE7qen73BFLgihlbyllGIW9SVWLUD5Cq9VWtzrqhntOMOJl8yEjA89d5mCUTT0puCnHo4EecO6bz+BOAS8w==","shasum":"dfcd9d1101bc4512d4956e1d5d67577c647b47fe","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.0.0.tgz","fileCount":8,"unpackedSize":21081,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBVI/5twlfPjeSNYz2I7G1weSJEHgTwl21CJe/6w2Mx3AiEAgST1FlrkY+CEm8EiKRMmJEs1PNEahcaOAsL2PP5LNx0="}]},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"michael-ciniawsky","email":"michael.ciniawsky@gmail.com"},{"name":"d3viant0ne","email":"wiens.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_3.0.0_1634739101267_0.09111287940336044"},"_hasShrinkwrap":false},"3.1.0":{"name":"loader-utils","version":"3.1.0","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^6.1.1"},"scripts":{"lint":"prettier --list-different . && eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">= 12.13.0"},"devDependencies":{"coveralls":"^3.1.1","eslint":"^8.0.1","eslint-plugin-node":"^11.1.0","jest":"^27.3.1","prettier":"^2.4.1","standard-version":"^9.3.2"},"main":"lib/index.js","gitHead":"f764aa5050b3c63bc3aff306c081e0b70acb889b","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@3.1.0","_nodeVersion":"12.22.7","_npmVersion":"8.1.2","dist":{"integrity":"sha512-7YF6k8Q9xXFHkQhVaX76PyJVAIcPAKNk+7zJs5w2k/wVqkb8uq8O6MIWuY50BkuinY2WD5Ugmpu0oVipDexFkQ==","shasum":"5d6583148713e4c022b3dac9daac0efd9b6bca42","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.1.0.tgz","fileCount":11,"unpackedSize":26303,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqkmSBUEANRj4pA9C5kTk9zOlGCQD54SBaTphB0eA1jAIgD0CGGZYRReq5Rs8re9CkuqioxnG8wLkm0i6pO1xInbk="}]},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_3.1.0_1635513480499_0.7658417251639804"},"_hasShrinkwrap":false},"2.0.1":{"name":"loader-utils","version":"2.0.1","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^3.0.0","json5":"^2.1.2"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=8.9.0"},"devDependencies":{"coveralls":"^3.0.9","eslint":"^6.8.0","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.2","jest":"^25.1.0","prettier":"^1.19.1","standard-version":"^7.1.0"},"main":"lib/index.js","readme":"# loader-utils\n\n## Methods\n\n### `getOptions`\n\nRecommended way to retrieve the options of a loader invocation:\n\n```javascript\n// inside your loader\nconst options = loaderUtils.getOptions(this);\n```\n\n1. If `this.query` is a string:\n\t- Tries to parse the query string and returns a new object\n\t- Throws if it's not a valid query string\n2. If `this.query` is object-like, it just returns `this.query`\n3. In any other case, it just returns `null`\n\n**Please note:** The returned `options` object is *read-only*. It may be re-used across multiple invocations.\nIf you pass it on to another library, make sure to make a *deep copy* of it:\n\n```javascript\nconst options = Object.assign(\n\t{},\n\tdefaultOptions,\n\tloaderUtils.getOptions(this) // it is safe to pass null to Object.assign()\n);\n// don't forget nested objects or arrays\noptions.obj = Object.assign({}, options.obj); \noptions.arr = options.arr.slice();\nsomeLibrary(options);\n```\n\n[clone](https://www.npmjs.com/package/clone) is a good library to make a deep copy of the options.\n\n#### Options as query strings\n\nIf the loader options have been passed as loader query string (`loader?some&params`), the string is parsed by using [`parseQuery`](#parsequery).\n\n### `parseQuery`\n\nParses a passed string (e.g. `loaderContext.resourceQuery`) as a query string, and returns an object.\n\n``` javascript\nconst params = loaderUtils.parseQuery(this.resourceQuery); // resource: `file?param1=foo`\nif (params.param1 === \"foo\") {\n\t// do something\n}\n```\n\nThe string is parsed like this:\n\n``` text\n                             -> Error\n?                            -> {}\n?flag                        -> { flag: true }\n?+flag                       -> { flag: true }\n?-flag                       -> { flag: false }\n?xyz=test                    -> { xyz: \"test\" }\n?xyz=1                       -> { xyz: \"1\" } // numbers are NOT parsed\n?xyz[]=a                     -> { xyz: [\"a\"] }\n?flag1&flag2                 -> { flag1: true, flag2: true }\n?+flag1,-flag2               -> { flag1: true, flag2: false }\n?xyz[]=a,xyz[]=b             -> { xyz: [\"a\", \"b\"] }\n?a%2C%26b=c%2C%26d           -> { \"a,&b\": \"c,&d\" }\n?{data:{a:1},isJSON5:true}   -> { data: { a: 1 }, isJSON5: true }\n```\n\n### `stringifyRequest`\n\nTurns a request into a string that can be used inside `require()` or `import` while avoiding absolute paths.\nUse it instead of `JSON.stringify(...)` if you're generating code inside a loader.\n\n**Why is this necessary?** Since webpack calculates the hash before module paths are translated into module ids, we must avoid absolute paths to ensure\nconsistent hashes across different compilations.\n\nThis function:\n\n- resolves absolute requests into relative requests if the request and the module are on the same hard drive\n- replaces `\\` with `/` if the request and the module are on the same hard drive\n- won't change the path at all if the request and the module are on different hard drives\n- applies `JSON.stringify` to the result\n\n```javascript\nloaderUtils.stringifyRequest(this, \"./test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \".\\\\test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test\");\n// \"\\\"test\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test/lib/index.js\");\n// \"\\\"test/lib/index.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"otherLoader?andConfig!test?someConfig\");\n// \"\\\"otherLoader?andConfig!test?someConfig\\\"\"\n\nloaderUtils.stringifyRequest(this, require.resolve(\"test\"));\n// \"\\\"../node_modules/some-loader/lib/test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"../../test.js\\\"\" (on Windows, in case the module and the request are on the same drive)\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"C:\\\\module\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n\nloaderUtils.stringifyRequest(this, \"\\\\\\\\network-drive\\\\test.js\");\n// \"\\\"\\\\\\\\network-drive\\\\\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n```\n\n### `urlToRequest`\n\nConverts some resource URL to a webpack module request.\n\n> i Before call `urlToRequest` you need call `isUrlRequest` to ensure it is requestable url\n\n```javascript\nconst url = \"path/to/module.js\";\n\nif (loaderUtils.isUrlRequest(url)) {\n  // Logic for requestable url\n  const request = loaderUtils.urlToRequest(url);\n} else {\n  // Logic for not requestable url\n}\n```\n\nSimple example:\n\n```javascript\nconst url = \"path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"./path/to/module.js\"\n```\n\n#### Module URLs\n\nAny URL containing a `~` will be interpreted as a module request. Anything after the `~` will be considered the request path.\n\n```javascript\nconst url = \"~path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"path/to/module.js\"\n```\n\n#### Root-relative URLs\n\nURLs that are root-relative (start with `/`) can be resolved relative to some arbitrary path by using the `root` parameter:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"./root\";\nconst request = loaderUtils.urlToRequest(url, root); // \"./root/path/to/module.js\"\n```\n\nTo convert a root-relative URL into a module URL, specify a `root` value that starts with `~`:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"~\";\nconst request = loaderUtils.urlToRequest(url, root); // \"path/to/module.js\"\n```\n\n### `interpolateName`\n\nInterpolates a filename template using multiple placeholders and/or a regular expression.\nThe template and regular expression are set as query params called `name` and `regExp` on the current loader's context.\n\n```javascript\nconst interpolatedName = loaderUtils.interpolateName(loaderContext, name, options);\n```\n\nThe following tokens are replaced in the `name` parameter:\n\n* `[ext]` the extension of the resource\n* `[name]` the basename of the resource\n* `[path]` the path of the resource relative to the `context` query parameter or option.\n* `[folder]` the folder the resource is in\n* `[query]` the queryof the resource, i.e. `?foo=bar`\n* `[emoji]` a random emoji representation of `options.content`\n* `[emoji:<length>]` same as above, but with a customizable number of emojis\n* `[contenthash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md4 hash)\n* `[<hashType>:contenthash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md4`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[hash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md4 hash)\n* `[<hashType>:hash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md4`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[N]` the N-th match obtained from matching the current file name against `options.regExp`\n\nIn loader context `[hash]` and `[contenthash]` are the same, but we recommend using `[contenthash]` for avoid misleading.\n\nExamples\n\n``` javascript\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext][query]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js?foo=bar\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[contenthash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/page.html\"\nloaderUtils.interpolateName(loaderContext, \"html-[hash:6].html\", { content: ... });\n// => html-9473fd.html\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/flash.txt\"\nloaderUtils.interpolateName(loaderContext, \"[hash]\", { content: ... });\n// => c31e9820c001c9c4a86bce33ce43b679\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji]\", { content: ... });\n// => 👍\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji:4]\", { content: ... });\n// => 🙍🏢📤🐝\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.png\"\nloaderUtils.interpolateName(loaderContext, \"[sha512:hash:base64:7].[ext]\", { content: ... });\n// => 2BKDTjl.png\n// use sha512 hash instead of md4 and with only 7 chars of base64\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/myself.png\"\n// loaderContext.query.name =\nloaderUtils.interpolateName(loaderContext, \"picture.png\");\n// => picture.png\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/dir/file.png\"\nloaderUtils.interpolateName(loaderContext, \"[path][name].[ext]?[hash]\", { content: ... });\n// => /app/dir/file.png?9473fdd0d880a43c21b7778d34872157\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/page-home.js\"\nloaderUtils.interpolateName(loaderContext, \"script-[1].[ext]\", { regExp: \"page-(.*)\\\\.js\", content: ... });\n// => script-home.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(\n  loaderContext, \n  (resourcePath, resourceQuery) => { \n    // resourcePath - `/app/js/javascript.js`\n    // resourceQuery - `?foo=bar`\n\n    return \"js/[hash].script.[ext]\"; \n  }, \n  { content: ... }\n);\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n```\n\n### `getHashDigest`\n\n``` javascript\nconst digestString = loaderUtils.getHashDigest(buffer, hashType, digestType, maxLength);\n```\n\n* `buffer` the content that should be hashed\n* `hashType` one of `sha1`, `md4`, `md5`, `sha256`, `sha512` or any other node.js supported hash type\n* `digestType` one of `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n* `maxLength` the maximum length in chars\n\n## License\n\nMIT (http://www.opensource.org/licenses/mit-license.php)\n","readmeFilename":"README.md","gitHead":"5fb556208426d281a18dfbf6f45dca24bfb24e96","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@2.0.1","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"dist":{"integrity":"sha512-g4miPa9uUrZz4iElkaVJgDFwKJGh8aQGM7pUL4ejXl6cu7kSb30seQOVGNMP6sW8j7DW77X68hJZ+GM7UGhXeQ==","shasum":"3b8d4386f42378d6434d32d7bc08e7a52d39575e","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.1.tgz","fileCount":17,"unpackedSize":38474,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID1WTESCohPwr+Dd8NjDT3kd+H48939CyWIhBrUJnD7xAiBnyMLS9zYRCgzncO0zfwGSfhGQcxff90rpdwaXfVSczQ=="}]},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_2.0.1_1635515318079_0.9793538614180066"},"_hasShrinkwrap":false},"3.1.1":{"name":"loader-utils","version":"3.1.1","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^6.1.1"},"scripts":{"lint":"prettier --list-different . && eslint .","pretest":"yarn lint","test":"jest","test:only":"jest --coverage","test:ci":"yarn test:only","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">= 12.13.0"},"devDependencies":{"coveralls":"^3.1.1","eslint":"^8.0.1","eslint-plugin-node":"^11.1.0","jest":"^27.3.1","prettier":"^2.4.1","standard-version":"^9.3.2"},"main":"lib/index.js","gitHead":"5ecf7da5c17e4ea731762fface1d2d42456a8a05","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@3.1.1","_nodeVersion":"12.22.7","_npmVersion":"8.1.2","dist":{"integrity":"sha512-81jD+0RcbHha8E0hGkIicXBw+9t2DsiiiEG1Fxrqvl4q7/G4a9o6iFuJU4IffFT0J95skGlEMQIMXFUQsFl3xQ==","shasum":"40cc0458433d61905ab2d50adb8e9e1869fcf59b","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.1.1.tgz","fileCount":13,"unpackedSize":31077,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPn/JNAgIdjaJSTL8tqlLHLxVB88kX2sH5ir3Opq7EAQIgG/oYVo2DnbEENRLxgU2XwnZcUZMvD0bNKpSHn3mTTmw="}]},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_3.1.1_1636036185318_0.18646562391673172"},"_hasShrinkwrap":false},"3.1.2":{"name":"loader-utils","version":"3.1.2","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^6.1.1"},"scripts":{"lint":"prettier --list-different . && eslint .","pretest":"yarn lint","test":"jest","test:only":"jest --coverage","test:ci":"yarn test:only","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">= 12.13.0"},"devDependencies":{"coveralls":"^3.1.1","eslint":"^8.0.1","eslint-plugin-node":"^11.1.0","jest":"^27.3.1","prettier":"^2.4.1","standard-version":"^9.3.2"},"main":"lib/index.js","gitHead":"097f5c3b2ce1bdffac5c74f9a8be34461da319f2","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@3.1.2","_nodeVersion":"12.22.7","_npmVersion":"8.1.2","dist":{"integrity":"sha512-iDKsaIUSTJPi+5AUMQPnCco5XacIY3W2Vyz9oW4GEAiPEJjb5F8J2famQczYBbmcSO+cgZokeGWJJ46cDNyMOA==","shasum":"1b3d119d60f367d47ca785e465d85b4f76f59c63","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.1.2.tgz","fileCount":13,"unpackedSize":31072,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/RHGnIoH5a7etWBL8vc20LR75Xq6W2SsWlHGWxNUmZgIgPVuK7IR2XuMPu6uaubjF7FNgQMnx48f5elVZLvxJV1I="}]},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_3.1.2_1636037207812_0.9892909878983134"},"_hasShrinkwrap":false},"2.0.2":{"name":"loader-utils","version":"2.0.2","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^3.0.0","json5":"^2.1.2"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=8.9.0"},"devDependencies":{"coveralls":"^3.0.9","eslint":"^6.8.0","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.2","jest":"^25.1.0","prettier":"^1.19.1","standard-version":"^7.1.0"},"main":"lib/index.js","readme":"# loader-utils\n\n## Methods\n\n### `getOptions`\n\nRecommended way to retrieve the options of a loader invocation:\n\n```javascript\n// inside your loader\nconst options = loaderUtils.getOptions(this);\n```\n\n1. If `this.query` is a string:\n\t- Tries to parse the query string and returns a new object\n\t- Throws if it's not a valid query string\n2. If `this.query` is object-like, it just returns `this.query`\n3. In any other case, it just returns `null`\n\n**Please note:** The returned `options` object is *read-only*. It may be re-used across multiple invocations.\nIf you pass it on to another library, make sure to make a *deep copy* of it:\n\n```javascript\nconst options = Object.assign(\n\t{},\n\tdefaultOptions,\n\tloaderUtils.getOptions(this) // it is safe to pass null to Object.assign()\n);\n// don't forget nested objects or arrays\noptions.obj = Object.assign({}, options.obj); \noptions.arr = options.arr.slice();\nsomeLibrary(options);\n```\n\n[clone](https://www.npmjs.com/package/clone) is a good library to make a deep copy of the options.\n\n#### Options as query strings\n\nIf the loader options have been passed as loader query string (`loader?some&params`), the string is parsed by using [`parseQuery`](#parsequery).\n\n### `parseQuery`\n\nParses a passed string (e.g. `loaderContext.resourceQuery`) as a query string, and returns an object.\n\n``` javascript\nconst params = loaderUtils.parseQuery(this.resourceQuery); // resource: `file?param1=foo`\nif (params.param1 === \"foo\") {\n\t// do something\n}\n```\n\nThe string is parsed like this:\n\n``` text\n                             -> Error\n?                            -> {}\n?flag                        -> { flag: true }\n?+flag                       -> { flag: true }\n?-flag                       -> { flag: false }\n?xyz=test                    -> { xyz: \"test\" }\n?xyz=1                       -> { xyz: \"1\" } // numbers are NOT parsed\n?xyz[]=a                     -> { xyz: [\"a\"] }\n?flag1&flag2                 -> { flag1: true, flag2: true }\n?+flag1,-flag2               -> { flag1: true, flag2: false }\n?xyz[]=a,xyz[]=b             -> { xyz: [\"a\", \"b\"] }\n?a%2C%26b=c%2C%26d           -> { \"a,&b\": \"c,&d\" }\n?{data:{a:1},isJSON5:true}   -> { data: { a: 1 }, isJSON5: true }\n```\n\n### `stringifyRequest`\n\nTurns a request into a string that can be used inside `require()` or `import` while avoiding absolute paths.\nUse it instead of `JSON.stringify(...)` if you're generating code inside a loader.\n\n**Why is this necessary?** Since webpack calculates the hash before module paths are translated into module ids, we must avoid absolute paths to ensure\nconsistent hashes across different compilations.\n\nThis function:\n\n- resolves absolute requests into relative requests if the request and the module are on the same hard drive\n- replaces `\\` with `/` if the request and the module are on the same hard drive\n- won't change the path at all if the request and the module are on different hard drives\n- applies `JSON.stringify` to the result\n\n```javascript\nloaderUtils.stringifyRequest(this, \"./test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \".\\\\test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test\");\n// \"\\\"test\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test/lib/index.js\");\n// \"\\\"test/lib/index.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"otherLoader?andConfig!test?someConfig\");\n// \"\\\"otherLoader?andConfig!test?someConfig\\\"\"\n\nloaderUtils.stringifyRequest(this, require.resolve(\"test\"));\n// \"\\\"../node_modules/some-loader/lib/test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"../../test.js\\\"\" (on Windows, in case the module and the request are on the same drive)\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"C:\\\\module\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n\nloaderUtils.stringifyRequest(this, \"\\\\\\\\network-drive\\\\test.js\");\n// \"\\\"\\\\\\\\network-drive\\\\\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n```\n\n### `urlToRequest`\n\nConverts some resource URL to a webpack module request.\n\n> i Before call `urlToRequest` you need call `isUrlRequest` to ensure it is requestable url\n\n```javascript\nconst url = \"path/to/module.js\";\n\nif (loaderUtils.isUrlRequest(url)) {\n  // Logic for requestable url\n  const request = loaderUtils.urlToRequest(url);\n} else {\n  // Logic for not requestable url\n}\n```\n\nSimple example:\n\n```javascript\nconst url = \"path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"./path/to/module.js\"\n```\n\n#### Module URLs\n\nAny URL containing a `~` will be interpreted as a module request. Anything after the `~` will be considered the request path.\n\n```javascript\nconst url = \"~path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"path/to/module.js\"\n```\n\n#### Root-relative URLs\n\nURLs that are root-relative (start with `/`) can be resolved relative to some arbitrary path by using the `root` parameter:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"./root\";\nconst request = loaderUtils.urlToRequest(url, root); // \"./root/path/to/module.js\"\n```\n\nTo convert a root-relative URL into a module URL, specify a `root` value that starts with `~`:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"~\";\nconst request = loaderUtils.urlToRequest(url, root); // \"path/to/module.js\"\n```\n\n### `interpolateName`\n\nInterpolates a filename template using multiple placeholders and/or a regular expression.\nThe template and regular expression are set as query params called `name` and `regExp` on the current loader's context.\n\n```javascript\nconst interpolatedName = loaderUtils.interpolateName(loaderContext, name, options);\n```\n\nThe following tokens are replaced in the `name` parameter:\n\n* `[ext]` the extension of the resource\n* `[name]` the basename of the resource\n* `[path]` the path of the resource relative to the `context` query parameter or option.\n* `[folder]` the folder the resource is in\n* `[query]` the queryof the resource, i.e. `?foo=bar`\n* `[emoji]` a random emoji representation of `options.content`\n* `[emoji:<length>]` same as above, but with a customizable number of emojis\n* `[contenthash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md4 hash)\n* `[<hashType>:contenthash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md4`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[hash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md4 hash)\n* `[<hashType>:hash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md4`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[N]` the N-th match obtained from matching the current file name against `options.regExp`\n\nIn loader context `[hash]` and `[contenthash]` are the same, but we recommend using `[contenthash]` for avoid misleading.\n\nExamples\n\n``` javascript\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext][query]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js?foo=bar\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[contenthash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/page.html\"\nloaderUtils.interpolateName(loaderContext, \"html-[hash:6].html\", { content: ... });\n// => html-9473fd.html\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/flash.txt\"\nloaderUtils.interpolateName(loaderContext, \"[hash]\", { content: ... });\n// => c31e9820c001c9c4a86bce33ce43b679\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji]\", { content: ... });\n// => 👍\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji:4]\", { content: ... });\n// => 🙍🏢📤🐝\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.png\"\nloaderUtils.interpolateName(loaderContext, \"[sha512:hash:base64:7].[ext]\", { content: ... });\n// => 2BKDTjl.png\n// use sha512 hash instead of md4 and with only 7 chars of base64\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/myself.png\"\n// loaderContext.query.name =\nloaderUtils.interpolateName(loaderContext, \"picture.png\");\n// => picture.png\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/dir/file.png\"\nloaderUtils.interpolateName(loaderContext, \"[path][name].[ext]?[hash]\", { content: ... });\n// => /app/dir/file.png?9473fdd0d880a43c21b7778d34872157\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/page-home.js\"\nloaderUtils.interpolateName(loaderContext, \"script-[1].[ext]\", { regExp: \"page-(.*)\\\\.js\", content: ... });\n// => script-home.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(\n  loaderContext, \n  (resourcePath, resourceQuery) => { \n    // resourcePath - `/app/js/javascript.js`\n    // resourceQuery - `?foo=bar`\n\n    return \"js/[hash].script.[ext]\"; \n  }, \n  { content: ... }\n);\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n```\n\n### `getHashDigest`\n\n``` javascript\nconst digestString = loaderUtils.getHashDigest(buffer, hashType, digestType, maxLength);\n```\n\n* `buffer` the content that should be hashed\n* `hashType` one of `sha1`, `md4`, `md5`, `sha256`, `sha512` or any other node.js supported hash type\n* `digestType` one of `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n* `maxLength` the maximum length in chars\n\n## License\n\nMIT (http://www.opensource.org/licenses/mit-license.php)\n","readmeFilename":"README.md","gitHead":"90c7c4be17e3e0b2f6091a69c67db7a6df9fd044","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@2.0.2","_nodeVersion":"12.22.7","_npmVersion":"8.1.2","dist":{"integrity":"sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==","shasum":"d6e3b4fb81870721ae4e0868ab11dd638368c129","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz","fileCount":17,"unpackedSize":36311,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGrLNOQhSAiztnws5gopnS3kPeieOoQAwXzhLg5Q3UgHAiEA0q5ciAPiBU3JsBVBiB/pGbpSw7IWEET2ZNttaMJuRBw="}]},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_2.0.2_1636038473921_0.9034516573093578"},"_hasShrinkwrap":false},"3.1.3":{"name":"loader-utils","version":"3.1.3","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^6.1.1"},"scripts":{"lint":"prettier --list-different . && eslint .","pretest":"yarn lint","test":"jest","test:only":"jest --coverage","test:ci":"yarn test:only","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">= 12.13.0"},"devDependencies":{"coveralls":"^3.1.1","eslint":"^8.0.1","eslint-plugin-node":"^11.1.0","jest":"^27.3.1","prettier":"^2.4.1","standard-version":"^9.3.2"},"main":"lib/index.js","gitHead":"f7dbfe105094027e2a7fe5e8babb016ecab16239","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@3.1.3","_nodeVersion":"12.22.7","_npmVersion":"8.1.2","dist":{"integrity":"sha512-iQeN+4aRVLiJU1J2BNTRg2cjhuFXWUX9DmvTDDtuwAm+ye6cMpUTLaPZmCFlZOrcDg93C9a17e/Hr+nQ9lquYw==","shasum":"bd56dd5f8cc7b94c4f3cb0512be58126219253e8","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.1.3.tgz","fileCount":13,"unpackedSize":31173,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqS0tPzX+N+gO2A9dGjcu/gSRqNsVTO6JsgXhBT4pJnQIhAL3DWGWBZfKJuUxUwJLmZwTnddSro8SpQDd1UIZhDrIe"}]},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_3.1.3_1636039404009_0.7344032499332294"},"_hasShrinkwrap":false},"3.2.0":{"name":"loader-utils","version":"3.2.0","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{},"scripts":{"lint":"prettier --list-different . && eslint .","pretest":"yarn lint","test":"jest","test:only":"jest --coverage","test:ci":"yarn test:only","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">= 12.13.0"},"devDependencies":{"coveralls":"^3.1.1","eslint":"^8.0.1","eslint-plugin-node":"^11.1.0","jest":"^27.3.1","prettier":"^2.4.1","standard-version":"^9.3.2"},"main":"lib/index.js","gitHead":"a282654ddfa0a8c9c770db1adfa064e671bcf471","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@3.2.0","_nodeVersion":"12.22.7","_npmVersion":"8.1.2","dist":{"integrity":"sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==","shasum":"bcecc51a7898bee7473d4bc6b845b23af8304d4f","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz","fileCount":13,"unpackedSize":31937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2yLSCRA9TVsSAnZWagAAAUAP/R2WnZpgw0Z1dSWgATlA\n26CzN+kzMIcfH6o480lqcJehGt4UXjNRhKBmQ2gziqnLgFr16BTu27Ct04Wo\nKPmnq4SAcfwteYKrqEFP9sHqfnVn3TMf2/OzI5TmLG+6sCEzJhfwOE75/Xda\niGAh2qnIugDwVUCsv01Dz2zuyCwKIwzkh4YkkwtngyJMHOFa/dgO3aRV+z6n\nBX3sSydUzosWew8n0G3uYk4MYiVnHIBAt0A9sRgXQwU4MxkicPLo7IrfiMAl\nzrwwraiV/Ddyk+0ar/RPFLeT3dq5G/RDCMc0us9COn8h+Ew3BAxwWOWpCBHE\n5j4wqDkpLVg7pUAjX0ZcX50h0VusbVGEvE3crWUf2zBAtoTdKfaps0mDSma2\nh3hD1XKbgqbjDMG5GlE9xnhleAnRG3fXhtahUZYK8x+JqMfQ+ykQsm8X+86J\ntB9cSeV8jSWXjEgz+NfYUXq6ZPQPK7xpTh8rSSa28Zed7Vh9H93C+Zg38eBH\n5o0AJbRpr3OPXqWwR/BYfLmESxceBwdyG1WkTyZLN357TOPewjawm32xAqBe\nRA3mpB+TZDQeOsnnqG3ldJNw7yuMJOZVgbu9PtBEq4QfGaVzF2fdq0Qlcmnq\nPF2WfHrhoy4x0n6QuZ5ta7uSbxdpNSYAlnOqBMndBASDkb7jzx3lBvbsnuHj\nz0Pc\r\n=TfVS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC66Ggq1DztcTB8dT5T+phDRDCSJLpH1Mf0VWbOWEt1/QIhAOw1o0SgP1+kDKMQ4Itcfm+OIvTdQpNqoTbU+jQig9TN"}]},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_3.2.0_1636645371843_0.5103912647130415"},"_hasShrinkwrap":false},"2.0.3":{"name":"loader-utils","version":"2.0.3","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^3.0.0","json5":"^2.1.2"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=8.9.0"},"devDependencies":{"coveralls":"^3.0.9","eslint":"^6.8.0","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.2","jest":"^25.1.0","prettier":"^1.19.1","standard-version":"^7.1.0"},"main":"lib/index.js","readme":"# loader-utils\n\n## Methods\n\n### `getOptions`\n\nRecommended way to retrieve the options of a loader invocation:\n\n```javascript\n// inside your loader\nconst options = loaderUtils.getOptions(this);\n```\n\n1. If `this.query` is a string:\n\t- Tries to parse the query string and returns a new object\n\t- Throws if it's not a valid query string\n2. If `this.query` is object-like, it just returns `this.query`\n3. In any other case, it just returns `null`\n\n**Please note:** The returned `options` object is *read-only*. It may be re-used across multiple invocations.\nIf you pass it on to another library, make sure to make a *deep copy* of it:\n\n```javascript\nconst options = Object.assign(\n\t{},\n\tdefaultOptions,\n\tloaderUtils.getOptions(this) // it is safe to pass null to Object.assign()\n);\n// don't forget nested objects or arrays\noptions.obj = Object.assign({}, options.obj); \noptions.arr = options.arr.slice();\nsomeLibrary(options);\n```\n\n[clone](https://www.npmjs.com/package/clone) is a good library to make a deep copy of the options.\n\n#### Options as query strings\n\nIf the loader options have been passed as loader query string (`loader?some&params`), the string is parsed by using [`parseQuery`](#parsequery).\n\n### `parseQuery`\n\nParses a passed string (e.g. `loaderContext.resourceQuery`) as a query string, and returns an object.\n\n``` javascript\nconst params = loaderUtils.parseQuery(this.resourceQuery); // resource: `file?param1=foo`\nif (params.param1 === \"foo\") {\n\t// do something\n}\n```\n\nThe string is parsed like this:\n\n``` text\n                             -> Error\n?                            -> {}\n?flag                        -> { flag: true }\n?+flag                       -> { flag: true }\n?-flag                       -> { flag: false }\n?xyz=test                    -> { xyz: \"test\" }\n?xyz=1                       -> { xyz: \"1\" } // numbers are NOT parsed\n?xyz[]=a                     -> { xyz: [\"a\"] }\n?flag1&flag2                 -> { flag1: true, flag2: true }\n?+flag1,-flag2               -> { flag1: true, flag2: false }\n?xyz[]=a,xyz[]=b             -> { xyz: [\"a\", \"b\"] }\n?a%2C%26b=c%2C%26d           -> { \"a,&b\": \"c,&d\" }\n?{data:{a:1},isJSON5:true}   -> { data: { a: 1 }, isJSON5: true }\n```\n\n### `stringifyRequest`\n\nTurns a request into a string that can be used inside `require()` or `import` while avoiding absolute paths.\nUse it instead of `JSON.stringify(...)` if you're generating code inside a loader.\n\n**Why is this necessary?** Since webpack calculates the hash before module paths are translated into module ids, we must avoid absolute paths to ensure\nconsistent hashes across different compilations.\n\nThis function:\n\n- resolves absolute requests into relative requests if the request and the module are on the same hard drive\n- replaces `\\` with `/` if the request and the module are on the same hard drive\n- won't change the path at all if the request and the module are on different hard drives\n- applies `JSON.stringify` to the result\n\n```javascript\nloaderUtils.stringifyRequest(this, \"./test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \".\\\\test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test\");\n// \"\\\"test\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test/lib/index.js\");\n// \"\\\"test/lib/index.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"otherLoader?andConfig!test?someConfig\");\n// \"\\\"otherLoader?andConfig!test?someConfig\\\"\"\n\nloaderUtils.stringifyRequest(this, require.resolve(\"test\"));\n// \"\\\"../node_modules/some-loader/lib/test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"../../test.js\\\"\" (on Windows, in case the module and the request are on the same drive)\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"C:\\\\module\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n\nloaderUtils.stringifyRequest(this, \"\\\\\\\\network-drive\\\\test.js\");\n// \"\\\"\\\\\\\\network-drive\\\\\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n```\n\n### `urlToRequest`\n\nConverts some resource URL to a webpack module request.\n\n> i Before call `urlToRequest` you need call `isUrlRequest` to ensure it is requestable url\n\n```javascript\nconst url = \"path/to/module.js\";\n\nif (loaderUtils.isUrlRequest(url)) {\n  // Logic for requestable url\n  const request = loaderUtils.urlToRequest(url);\n} else {\n  // Logic for not requestable url\n}\n```\n\nSimple example:\n\n```javascript\nconst url = \"path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"./path/to/module.js\"\n```\n\n#### Module URLs\n\nAny URL containing a `~` will be interpreted as a module request. Anything after the `~` will be considered the request path.\n\n```javascript\nconst url = \"~path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"path/to/module.js\"\n```\n\n#### Root-relative URLs\n\nURLs that are root-relative (start with `/`) can be resolved relative to some arbitrary path by using the `root` parameter:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"./root\";\nconst request = loaderUtils.urlToRequest(url, root); // \"./root/path/to/module.js\"\n```\n\nTo convert a root-relative URL into a module URL, specify a `root` value that starts with `~`:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"~\";\nconst request = loaderUtils.urlToRequest(url, root); // \"path/to/module.js\"\n```\n\n### `interpolateName`\n\nInterpolates a filename template using multiple placeholders and/or a regular expression.\nThe template and regular expression are set as query params called `name` and `regExp` on the current loader's context.\n\n```javascript\nconst interpolatedName = loaderUtils.interpolateName(loaderContext, name, options);\n```\n\nThe following tokens are replaced in the `name` parameter:\n\n* `[ext]` the extension of the resource\n* `[name]` the basename of the resource\n* `[path]` the path of the resource relative to the `context` query parameter or option.\n* `[folder]` the folder the resource is in\n* `[query]` the queryof the resource, i.e. `?foo=bar`\n* `[emoji]` a random emoji representation of `options.content`\n* `[emoji:<length>]` same as above, but with a customizable number of emojis\n* `[contenthash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md4 hash)\n* `[<hashType>:contenthash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md4`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[hash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md4 hash)\n* `[<hashType>:hash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md4`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[N]` the N-th match obtained from matching the current file name against `options.regExp`\n\nIn loader context `[hash]` and `[contenthash]` are the same, but we recommend using `[contenthash]` for avoid misleading.\n\nExamples\n\n``` javascript\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext][query]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js?foo=bar\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[contenthash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/page.html\"\nloaderUtils.interpolateName(loaderContext, \"html-[hash:6].html\", { content: ... });\n// => html-9473fd.html\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/flash.txt\"\nloaderUtils.interpolateName(loaderContext, \"[hash]\", { content: ... });\n// => c31e9820c001c9c4a86bce33ce43b679\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji]\", { content: ... });\n// => 👍\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji:4]\", { content: ... });\n// => 🙍🏢📤🐝\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.png\"\nloaderUtils.interpolateName(loaderContext, \"[sha512:hash:base64:7].[ext]\", { content: ... });\n// => 2BKDTjl.png\n// use sha512 hash instead of md4 and with only 7 chars of base64\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/myself.png\"\n// loaderContext.query.name =\nloaderUtils.interpolateName(loaderContext, \"picture.png\");\n// => picture.png\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/dir/file.png\"\nloaderUtils.interpolateName(loaderContext, \"[path][name].[ext]?[hash]\", { content: ... });\n// => /app/dir/file.png?9473fdd0d880a43c21b7778d34872157\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/page-home.js\"\nloaderUtils.interpolateName(loaderContext, \"script-[1].[ext]\", { regExp: \"page-(.*)\\\\.js\", content: ... });\n// => script-home.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(\n  loaderContext, \n  (resourcePath, resourceQuery) => { \n    // resourcePath - `/app/js/javascript.js`\n    // resourceQuery - `?foo=bar`\n\n    return \"js/[hash].script.[ext]\"; \n  }, \n  { content: ... }\n);\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n```\n\n### `getHashDigest`\n\n``` javascript\nconst digestString = loaderUtils.getHashDigest(buffer, hashType, digestType, maxLength);\n```\n\n* `buffer` the content that should be hashed\n* `hashType` one of `sha1`, `md4`, `md5`, `sha256`, `sha512` or any other node.js supported hash type\n* `digestType` one of `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n* `maxLength` the maximum length in chars\n\n## License\n\nMIT (http://www.opensource.org/licenses/mit-license.php)\n","readmeFilename":"README.md","gitHead":"7162619fb982c394ed75098a0a0ed7e7f3177c70","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@2.0.3","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==","shasum":"d4b15b8504c63d1fc3f2ade52d41bc8459d6ede1","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz","fileCount":17,"unpackedSize":36328,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBtBbsI8XkrBo7Pleuyc8OTiIrOSdOhft+pH+OTYUfgqAiBuXqDLk0nC1aXxNbG/ZaBLdnOh8OYZjT1DmqGPTKtwgw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUajXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrttA/+OXt+PtahMyC5FsQHF1pS60X4Wm4ZliNcWCfmgsWP0Dya8sLP\r\nNJCgrFdIX3wRWXZcyViTplaPL9jhR+X0Py6M7x9k4sBXHH57tm5R21V+DJEr\r\nqP9YMDY5rwK03q45qnMG5lrjJMcoFDxPpNjtDJp4aHD0MGOU5OLiICBtmyJT\r\nzV3C0K7bLhxDP+4KQO5B2PjMvwmeZ8z8KE2Rsv1N4lotIsPYy3hERu7qtdgd\r\nSPq2B0Wa29imy0hs6kyrWDR4QCKjO7eC4fxM5Dxqg+8DMjV02wMm/4OQ8obA\r\nWrUeMRC96DkrCwe6CQLhCPyL0KN0b1FaC2+ZhQgcj+MjOA50sbY9hcDVBWvx\r\nVbnK8576yWrrpRDiwF+WFOeWK0/tMmpXIhuMr2JV7okDUubj8As/8hudq3Yj\r\nXDINDUsJ8WZ/iFmZVp89kkT0Srmps/VaUpNBrWaytU3F3wm2HKzAmgpGwkLU\r\nNitctBjX3dksOTlV3L35MAJvlg00aHab1TbCJCEsFnCvg6MdbDVhpqu5crn+\r\nTbHak6xHN4xFHSJbqrIcJMkvtuLKIYuiBm67hlWJDrY8MwLTO0ewN/azfpHt\r\nN89wjHzjdbXUh8JhTBqOT+kghhFMPCSg181HbIJvb0YpLsLJZgQ2zwMv767X\r\nX4wp0vcXej3jJAr8FpZobbpgVmxPvK03+g8=\r\n=fZh3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_2.0.3_1666296023515_0.2740441862219558"},"_hasShrinkwrap":false},"1.4.1":{"name":"loader-utils","version":"1.4.1","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^3.0.0","json5":"^1.0.1"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^3.0.2","eslint":"^5.11.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0","jest":"^21.2.1","prettier":"^1.19.1","standard-version":"^4.0.0"},"main":"lib/index.js","readme":"# loader-utils\n\n## Methods\n\n### `getOptions`\n\nRecommended way to retrieve the options of a loader invocation:\n\n```javascript\n// inside your loader\nconst options = loaderUtils.getOptions(this);\n```\n\n1. If `this.query` is a string:\n\t- Tries to parse the query string and returns a new object\n\t- Throws if it's not a valid query string\n2. If `this.query` is object-like, it just returns `this.query`\n3. In any other case, it just returns `null`\n\n**Please note:** The returned `options` object is *read-only*. It may be re-used across multiple invocations.\nIf you pass it on to another library, make sure to make a *deep copy* of it:\n\n```javascript\nconst options = Object.assign(\n\t{},\n\tdefaultOptions,\n\tloaderUtils.getOptions(this) // it is safe to pass null to Object.assign()\n);\n// don't forget nested objects or arrays\noptions.obj = Object.assign({}, options.obj); \noptions.arr = options.arr.slice();\nsomeLibrary(options);\n```\n\n[clone](https://www.npmjs.com/package/clone) is a good library to make a deep copy of the options.\n\n#### Options as query strings\n\nIf the loader options have been passed as loader query string (`loader?some&params`), the string is parsed by using [`parseQuery`](#parsequery).\n\n### `parseQuery`\n\nParses a passed string (e.g. `loaderContext.resourceQuery`) as a query string, and returns an object.\n\n``` javascript\nconst params = loaderUtils.parseQuery(this.resourceQuery); // resource: `file?param1=foo`\nif (params.param1 === \"foo\") {\n\t// do something\n}\n```\n\nThe string is parsed like this:\n\n``` text\n                             -> Error\n?                            -> {}\n?flag                        -> { flag: true }\n?+flag                       -> { flag: true }\n?-flag                       -> { flag: false }\n?xyz=test                    -> { xyz: \"test\" }\n?xyz=1                       -> { xyz: \"1\" } // numbers are NOT parsed\n?xyz[]=a                     -> { xyz: [\"a\"] }\n?flag1&flag2                 -> { flag1: true, flag2: true }\n?+flag1,-flag2               -> { flag1: true, flag2: false }\n?xyz[]=a,xyz[]=b             -> { xyz: [\"a\", \"b\"] }\n?a%2C%26b=c%2C%26d           -> { \"a,&b\": \"c,&d\" }\n?{data:{a:1},isJSON5:true}   -> { data: { a: 1 }, isJSON5: true }\n```\n\n### `stringifyRequest`\n\nTurns a request into a string that can be used inside `require()` or `import` while avoiding absolute paths.\nUse it instead of `JSON.stringify(...)` if you're generating code inside a loader.\n\n**Why is this necessary?** Since webpack calculates the hash before module paths are translated into module ids, we must avoid absolute paths to ensure\nconsistent hashes across different compilations.\n\nThis function:\n\n- resolves absolute requests into relative requests if the request and the module are on the same hard drive\n- replaces `\\` with `/` if the request and the module are on the same hard drive\n- won't change the path at all if the request and the module are on different hard drives\n- applies `JSON.stringify` to the result\n\n```javascript\nloaderUtils.stringifyRequest(this, \"./test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \".\\\\test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test\");\n// \"\\\"test\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test/lib/index.js\");\n// \"\\\"test/lib/index.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"otherLoader?andConfig!test?someConfig\");\n// \"\\\"otherLoader?andConfig!test?someConfig\\\"\"\n\nloaderUtils.stringifyRequest(this, require.resolve(\"test\"));\n// \"\\\"../node_modules/some-loader/lib/test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"../../test.js\\\"\" (on Windows, in case the module and the request are on the same drive)\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"C:\\\\module\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n\nloaderUtils.stringifyRequest(this, \"\\\\\\\\network-drive\\\\test.js\");\n// \"\\\"\\\\\\\\network-drive\\\\\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n```\n\n### `urlToRequest`\n\nConverts some resource URL to a webpack module request.\n\n> i Before call `urlToRequest` you need call `isUrlRequest` to ensure it is requestable url\n\n```javascript\nconst url = \"path/to/module.js\";\n\nif (loaderUtils.isUrlRequest(url)) {\n  // Logic for requestable url\n  const request = loaderUtils.urlToRequest(url);\n} else {\n  // Logic for not requestable url\n}\n```\n\nSimple example:\n\n```javascript\nconst url = \"path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"./path/to/module.js\"\n```\n\n#### Module URLs\n\nAny URL containing a `~` will be interpreted as a module request. Anything after the `~` will be considered the request path.\n\n```javascript\nconst url = \"~path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"path/to/module.js\"\n```\n\n#### Root-relative URLs\n\nURLs that are root-relative (start with `/`) can be resolved relative to some arbitrary path by using the `root` parameter:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"./root\";\nconst request = loaderUtils.urlToRequest(url, root); // \"./root/path/to/module.js\"\n```\n\nTo convert a root-relative URL into a module URL, specify a `root` value that starts with `~`:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"~\";\nconst request = loaderUtils.urlToRequest(url, root); // \"path/to/module.js\"\n```\n\n### `interpolateName`\n\nInterpolates a filename template using multiple placeholders and/or a regular expression.\nThe template and regular expression are set as query params called `name` and `regExp` on the current loader's context.\n\n```javascript\nconst interpolatedName = loaderUtils.interpolateName(loaderContext, name, options);\n```\n\nThe following tokens are replaced in the `name` parameter:\n\n* `[ext]` the extension of the resource\n* `[name]` the basename of the resource\n* `[path]` the path of the resource relative to the `context` query parameter or option.\n* `[folder]` the folder the resource is in\n* `[query]` the queryof the resource, i.e. `?foo=bar`\n* `[emoji]` a random emoji representation of `options.content`\n* `[emoji:<length>]` same as above, but with a customizable number of emojis\n* `[contenthash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md5 hash)\n* `[<hashType>:contenthash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[hash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md5 hash)\n* `[<hashType>:hash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[N]` the N-th match obtained from matching the current file name against `options.regExp`\n\nIn loader context `[hash]` and `[contenthash]` are the same, but we recommend using `[contenthash]` for avoid misleading.\n\nExamples\n\n``` javascript\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext][query]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js?foo=bar\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[contenthash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/page.html\"\nloaderUtils.interpolateName(loaderContext, \"html-[hash:6].html\", { content: ... });\n// => html-9473fd.html\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/flash.txt\"\nloaderUtils.interpolateName(loaderContext, \"[hash]\", { content: ... });\n// => c31e9820c001c9c4a86bce33ce43b679\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji]\", { content: ... });\n// => 👍\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji:4]\", { content: ... });\n// => 🙍🏢📤🐝\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.png\"\nloaderUtils.interpolateName(loaderContext, \"[sha512:hash:base64:7].[ext]\", { content: ... });\n// => 2BKDTjl.png\n// use sha512 hash instead of md5 and with only 7 chars of base64\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/myself.png\"\n// loaderContext.query.name =\nloaderUtils.interpolateName(loaderContext, \"picture.png\");\n// => picture.png\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/dir/file.png\"\nloaderUtils.interpolateName(loaderContext, \"[path][name].[ext]?[hash]\", { content: ... });\n// => /app/dir/file.png?9473fdd0d880a43c21b7778d34872157\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/page-home.js\"\nloaderUtils.interpolateName(loaderContext, \"script-[1].[ext]\", { regExp: \"page-(.*)\\\\.js\", content: ... });\n// => script-home.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(\n  loaderContext, \n  (resourcePath, resourceQuery) => { \n    // resourcePath - `/app/js/javascript.js`\n    // resourceQuery - `?foo=bar`\n\n    return \"js/[hash].script.[ext]\"; \n  }, \n  { content: ... }\n);\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n```\n\n### `getHashDigest`\n\n``` javascript\nconst digestString = loaderUtils.getHashDigest(buffer, hashType, digestType, maxLength);\n```\n\n* `buffer` the content that should be hashed\n* `hashType` one of `sha1`, `md5`, `sha256`, `sha512` or any other node.js supported hash type\n* `digestType` one of `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n* `maxLength` the maximum length in chars\n\n## License\n\nMIT (http://www.opensource.org/licenses/mit-license.php)\n","readmeFilename":"README.md","gitHead":"8f082b39f6903929f30fe29dab34f4d9c7ef070a","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.4.1","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-1Qo97Y2oKaU+Ro2xnDMR26g1BwMT29jNbem1EvcujW2jqt+j5COXyscjM7bLQkM9HaxI7pkWeW7gnI072yMI9Q==","shasum":"278ad7006660bccc4d2c0c1578e17c5c78d5c0e0","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.1.tgz","fileCount":14,"unpackedSize":25853,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXEnwJQebU5KLsMQUH8TqUUj9TTGUAW+8MfyUSKdQZLAIgWi8fQt9kcgY6jS8du2FzRXgxVqsTE5+eqemkyTxIO5w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaW3MACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmruzA/+PeUMlX++5QpJeQg/OJUmWQH674GlXGBPHaS3k3iJofgFfxPv\r\nuY5ag/f+ZJ90EQNTzv275yyrUVrT2N2gNuHKS3mzfdHbU/xfsp8PACmB1irL\r\nayBocUcoU5bEmb5EugAcVevX06MSUi+AA9LQNJegxWpKZDy5+ga0/SE3RyUf\r\n88vM43bLk52qJq3Jjr4wzQFDS4MiRrs+Mjir9QZOyjUBsqdv9F8Xydf08SHe\r\ntIYkQH05OUMqjAUVLh+8z7e5Umi1WmnJYg0D9OySnlsyhEC4gur/zZLdSFB9\r\nYxKMUq3Q7j/ufJwx0D2b5LE0BvSTQi7tI6G30eZtmzME5F8tiywCyghedeBU\r\n0SafcHleqiYgbxc0J8LNX3Y4DkShrVvL0qUZbkOnV/NQz6x2BAbC4YOCCH/S\r\nfyLupgV9rtNOUiZrRxA7hCFwIL9d4tvcwyHPtR5ATn7j64g9JudxHPwEwG/t\r\nmSM2bzZkzZEeZdDDQSJB8SBZ/ETtqUP0M+ka0cLsfbll8aA+MRofz68d8nIa\r\ngM5rMhw+3q0PFj91xlTMm8nt00J8BFhUee8P/Zcf/+p6DbNosgXnf8Y2QwVN\r\nFmwiwBhrvCX6XkTxhwJMbWdccxJNhR6nBPK6xOn0612Tbh8wVLoBTc5kiWm9\r\nU11RRoKdyIOviuwT6zYAyM6FQoZ2Bq49DfQ=\r\n=RRyV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_1.4.1_1667853772735_0.38144366630236837"},"_hasShrinkwrap":false},"3.2.1":{"name":"loader-utils","version":"3.2.1","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{},"scripts":{"lint":"prettier --list-different . && eslint .","pretest":"yarn lint","test":"jest","test:only":"jest --coverage","test:ci":"yarn test:only","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">= 12.13.0"},"devDependencies":{"coveralls":"^3.1.1","eslint":"^8.0.1","eslint-plugin-node":"^11.1.0","jest":"^27.3.1","prettier":"^2.4.1","standard-version":"^9.3.2"},"main":"lib/index.js","gitHead":"a3fd3ca1a5287d217a2370b0902997544e6b9aa9","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@3.2.1","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==","shasum":"4fb104b599daafd82ef3e1a41fb9265f87e1f576","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz","fileCount":13,"unpackedSize":31938,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHw7+OvcRyNfmz5t00OBz3M/epXcfojPS9U4ZFssmMs7AiBczd0g32ORMCiVSqMaq/ZbkAvU+t+IDiZ7yVTo/ePSew=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbZaMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqIZA//aWskla0R/HkcpC/3lQTh4W5dtgqA0TMB9gkDAc7PvCQf3O+2\r\nCZ4gluyH0oHYzRKeD+BHyVyZlCjONZ/EAoMsltp8tWf07Fq8z9AKQ0hd4MmM\r\nKcMCGFlrLpJD31UEyLLFcv6NAdGHrEiG3m426xRYJzovn8lRx8Vgw44cHAKl\r\n5um+vgKp0z5QSB3CXkq25Rc0Y90sAeXjdODZ5KOxYRw+sybbnrJnZkupw2p2\r\nukz0o6UNrT1gjWNtDoAqcCcSnb8IfvomMzAauTazvAgv8iqhy7e9ig9A6+yp\r\nCIlwj3WqD2K6vzDkeX2CK1aYFpA7x7U6kOYQ1SI1uS+uE8k9PlgpoSRXpL5c\r\nFqjcgh/4f+vB7O/voKtX5/XXhTbCpHy3cZp0y+PZb7ByRncCu//twIXjQwaB\r\nmA8TI7nDnJ8aCZ5/64YNG5UnXRrZQeivX/SxlAkb/kohr/V7JU46KP1cmPYE\r\nsL4IqX2amayR5/2ascXi3UvLclTyfinW900xIVUOc5WiNlZCv8b+DalBa1rl\r\nHgQX9cBf0cM1WPWsHr6bmxUFDvhslskf04jPnppLlAnmTVptuVSiDskcmlQ+\r\nNbieZkcsfqytuG3ePr1iZUMKYnDZhgdqz7tsTQ5Dszkf1wQwHCSmNV1cqLGa\r\nASpeo+wRiuyQEfxIdVSJMakKNIP9F4g/MCs=\r\n=iqsQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_3.2.1_1668126348792_0.5578079529035329"},"_hasShrinkwrap":false},"2.0.4":{"name":"loader-utils","version":"2.0.4","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^3.0.0","json5":"^2.1.2"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=8.9.0"},"devDependencies":{"coveralls":"^3.0.9","eslint":"^6.8.0","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.2","jest":"^25.1.0","prettier":"^1.19.1","standard-version":"^7.1.0"},"main":"lib/index.js","readme":"# loader-utils\n\n## Methods\n\n### `getOptions`\n\nRecommended way to retrieve the options of a loader invocation:\n\n```javascript\n// inside your loader\nconst options = loaderUtils.getOptions(this);\n```\n\n1. If `this.query` is a string:\n\t- Tries to parse the query string and returns a new object\n\t- Throws if it's not a valid query string\n2. If `this.query` is object-like, it just returns `this.query`\n3. In any other case, it just returns `null`\n\n**Please note:** The returned `options` object is *read-only*. It may be re-used across multiple invocations.\nIf you pass it on to another library, make sure to make a *deep copy* of it:\n\n```javascript\nconst options = Object.assign(\n\t{},\n\tdefaultOptions,\n\tloaderUtils.getOptions(this) // it is safe to pass null to Object.assign()\n);\n// don't forget nested objects or arrays\noptions.obj = Object.assign({}, options.obj); \noptions.arr = options.arr.slice();\nsomeLibrary(options);\n```\n\n[clone](https://www.npmjs.com/package/clone) is a good library to make a deep copy of the options.\n\n#### Options as query strings\n\nIf the loader options have been passed as loader query string (`loader?some&params`), the string is parsed by using [`parseQuery`](#parsequery).\n\n### `parseQuery`\n\nParses a passed string (e.g. `loaderContext.resourceQuery`) as a query string, and returns an object.\n\n``` javascript\nconst params = loaderUtils.parseQuery(this.resourceQuery); // resource: `file?param1=foo`\nif (params.param1 === \"foo\") {\n\t// do something\n}\n```\n\nThe string is parsed like this:\n\n``` text\n                             -> Error\n?                            -> {}\n?flag                        -> { flag: true }\n?+flag                       -> { flag: true }\n?-flag                       -> { flag: false }\n?xyz=test                    -> { xyz: \"test\" }\n?xyz=1                       -> { xyz: \"1\" } // numbers are NOT parsed\n?xyz[]=a                     -> { xyz: [\"a\"] }\n?flag1&flag2                 -> { flag1: true, flag2: true }\n?+flag1,-flag2               -> { flag1: true, flag2: false }\n?xyz[]=a,xyz[]=b             -> { xyz: [\"a\", \"b\"] }\n?a%2C%26b=c%2C%26d           -> { \"a,&b\": \"c,&d\" }\n?{data:{a:1},isJSON5:true}   -> { data: { a: 1 }, isJSON5: true }\n```\n\n### `stringifyRequest`\n\nTurns a request into a string that can be used inside `require()` or `import` while avoiding absolute paths.\nUse it instead of `JSON.stringify(...)` if you're generating code inside a loader.\n\n**Why is this necessary?** Since webpack calculates the hash before module paths are translated into module ids, we must avoid absolute paths to ensure\nconsistent hashes across different compilations.\n\nThis function:\n\n- resolves absolute requests into relative requests if the request and the module are on the same hard drive\n- replaces `\\` with `/` if the request and the module are on the same hard drive\n- won't change the path at all if the request and the module are on different hard drives\n- applies `JSON.stringify` to the result\n\n```javascript\nloaderUtils.stringifyRequest(this, \"./test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \".\\\\test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test\");\n// \"\\\"test\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test/lib/index.js\");\n// \"\\\"test/lib/index.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"otherLoader?andConfig!test?someConfig\");\n// \"\\\"otherLoader?andConfig!test?someConfig\\\"\"\n\nloaderUtils.stringifyRequest(this, require.resolve(\"test\"));\n// \"\\\"../node_modules/some-loader/lib/test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"../../test.js\\\"\" (on Windows, in case the module and the request are on the same drive)\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"C:\\\\module\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n\nloaderUtils.stringifyRequest(this, \"\\\\\\\\network-drive\\\\test.js\");\n// \"\\\"\\\\\\\\network-drive\\\\\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n```\n\n### `urlToRequest`\n\nConverts some resource URL to a webpack module request.\n\n> i Before call `urlToRequest` you need call `isUrlRequest` to ensure it is requestable url\n\n```javascript\nconst url = \"path/to/module.js\";\n\nif (loaderUtils.isUrlRequest(url)) {\n  // Logic for requestable url\n  const request = loaderUtils.urlToRequest(url);\n} else {\n  // Logic for not requestable url\n}\n```\n\nSimple example:\n\n```javascript\nconst url = \"path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"./path/to/module.js\"\n```\n\n#### Module URLs\n\nAny URL containing a `~` will be interpreted as a module request. Anything after the `~` will be considered the request path.\n\n```javascript\nconst url = \"~path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"path/to/module.js\"\n```\n\n#### Root-relative URLs\n\nURLs that are root-relative (start with `/`) can be resolved relative to some arbitrary path by using the `root` parameter:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"./root\";\nconst request = loaderUtils.urlToRequest(url, root); // \"./root/path/to/module.js\"\n```\n\nTo convert a root-relative URL into a module URL, specify a `root` value that starts with `~`:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"~\";\nconst request = loaderUtils.urlToRequest(url, root); // \"path/to/module.js\"\n```\n\n### `interpolateName`\n\nInterpolates a filename template using multiple placeholders and/or a regular expression.\nThe template and regular expression are set as query params called `name` and `regExp` on the current loader's context.\n\n```javascript\nconst interpolatedName = loaderUtils.interpolateName(loaderContext, name, options);\n```\n\nThe following tokens are replaced in the `name` parameter:\n\n* `[ext]` the extension of the resource\n* `[name]` the basename of the resource\n* `[path]` the path of the resource relative to the `context` query parameter or option.\n* `[folder]` the folder the resource is in\n* `[query]` the queryof the resource, i.e. `?foo=bar`\n* `[emoji]` a random emoji representation of `options.content`\n* `[emoji:<length>]` same as above, but with a customizable number of emojis\n* `[contenthash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md4 hash)\n* `[<hashType>:contenthash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md4`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[hash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md4 hash)\n* `[<hashType>:hash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md4`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[N]` the N-th match obtained from matching the current file name against `options.regExp`\n\nIn loader context `[hash]` and `[contenthash]` are the same, but we recommend using `[contenthash]` for avoid misleading.\n\nExamples\n\n``` javascript\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext][query]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js?foo=bar\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[contenthash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/page.html\"\nloaderUtils.interpolateName(loaderContext, \"html-[hash:6].html\", { content: ... });\n// => html-9473fd.html\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/flash.txt\"\nloaderUtils.interpolateName(loaderContext, \"[hash]\", { content: ... });\n// => c31e9820c001c9c4a86bce33ce43b679\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji]\", { content: ... });\n// => 👍\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji:4]\", { content: ... });\n// => 🙍🏢📤🐝\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.png\"\nloaderUtils.interpolateName(loaderContext, \"[sha512:hash:base64:7].[ext]\", { content: ... });\n// => 2BKDTjl.png\n// use sha512 hash instead of md4 and with only 7 chars of base64\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/myself.png\"\n// loaderContext.query.name =\nloaderUtils.interpolateName(loaderContext, \"picture.png\");\n// => picture.png\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/dir/file.png\"\nloaderUtils.interpolateName(loaderContext, \"[path][name].[ext]?[hash]\", { content: ... });\n// => /app/dir/file.png?9473fdd0d880a43c21b7778d34872157\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/page-home.js\"\nloaderUtils.interpolateName(loaderContext, \"script-[1].[ext]\", { regExp: \"page-(.*)\\\\.js\", content: ... });\n// => script-home.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(\n  loaderContext, \n  (resourcePath, resourceQuery) => { \n    // resourcePath - `/app/js/javascript.js`\n    // resourceQuery - `?foo=bar`\n\n    return \"js/[hash].script.[ext]\"; \n  }, \n  { content: ... }\n);\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n```\n\n### `getHashDigest`\n\n``` javascript\nconst digestString = loaderUtils.getHashDigest(buffer, hashType, digestType, maxLength);\n```\n\n* `buffer` the content that should be hashed\n* `hashType` one of `sha1`, `md4`, `md5`, `sha256`, `sha512` or any other node.js supported hash type\n* `digestType` one of `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n* `maxLength` the maximum length in chars\n\n## License\n\nMIT (http://www.opensource.org/licenses/mit-license.php)\n","readmeFilename":"README.md","gitHead":"6688b5028106f144ee9f543bebc8e6a87b57829f","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@2.0.4","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==","shasum":"8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz","fileCount":17,"unpackedSize":36329,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICNab0KXueyp+u2PNOIHLIMWdeekcXYfz6Dqia1z0pSeAiEAmrGS4TWSGncRtM0769fOgzVcXqH+n9aD0kHvlh7WiQE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbZgGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmofsw/8Dc+9RIQp97NjHoIzybv/zkhokdqbdFT6iG+CzsIFxSgGcwXC\r\nAGq8QwIZXFNKX+vqwglNktkR0jISv7ZgGD2YMVK+aMqzV081SucL+j7U92/p\r\npHJfgUF/oWDEVP7hSPe0pyHd5YJO3uepYsW4D9gqt4Z5Qyh5GvPtMmJcDQNV\r\nEYLjEALOJEq/txZfNRaU8+g5h018qbWuhRPQwg62ytRVCKZas58Z/PFL6blm\r\nfF00M9HS4SypUiu8iseb0qgpLS+fVV8aDQ45kkJmILoLXb3oGMqNa6pQ2p0R\r\nrt3SejllTOsmiJ2T+YOukIgJHgry9a3TKtZo0ADMVAHnge+8gskDlMm0Il4H\r\nUvUtyH02XGHxycVKkVKUljL1SgI/eS77iFgaUseD36ZrpwE6oTy0ntQiIhmF\r\nxRkbQ+zmexZtNmn03VxuHsurW8YELOyKVJhSU8pYvWOQq1Fqfu3dp+Va3U5d\r\nbbgAcbUzdeJbHAgv/Ok1L8NeoodEfLnaylR07RZrGatxVlffTuO7dZ5j13N+\r\n5bjJq474N/r9GJZh92WB0OCCykrRaHQwfyMXjbdsmHlTpysBF0jblgtexBDE\r\nVJcsVFjgUvQh6WpDwCvOgP9+1BICepPoLJChq2B3IzgV7Q33SLYHj6X5MikS\r\nfZFZUmMTOxiTcaeec31H7LbbDGzccsdQ0cc=\r\n=2pUi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_2.0.4_1668126726011_0.07217711872001775"},"_hasShrinkwrap":false},"1.4.2":{"name":"loader-utils","version":"1.4.2","author":{"name":"Tobias Koppers @sokra"},"description":"utils for webpack loaders","dependencies":{"big.js":"^5.2.2","emojis-list":"^3.0.0","json5":"^1.0.1"},"scripts":{"lint":"eslint lib test","pretest":"yarn lint","test":"jest","test:ci":"jest --coverage","release":"yarn test && standard-version"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"engines":{"node":">=4.0.0"},"devDependencies":{"coveralls":"^3.0.2","eslint":"^5.11.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0","jest":"^21.2.1","prettier":"^1.19.1","standard-version":"^4.0.0"},"main":"lib/index.js","readme":"# loader-utils\n\n## Methods\n\n### `getOptions`\n\nRecommended way to retrieve the options of a loader invocation:\n\n```javascript\n// inside your loader\nconst options = loaderUtils.getOptions(this);\n```\n\n1. If `this.query` is a string:\n\t- Tries to parse the query string and returns a new object\n\t- Throws if it's not a valid query string\n2. If `this.query` is object-like, it just returns `this.query`\n3. In any other case, it just returns `null`\n\n**Please note:** The returned `options` object is *read-only*. It may be re-used across multiple invocations.\nIf you pass it on to another library, make sure to make a *deep copy* of it:\n\n```javascript\nconst options = Object.assign(\n\t{},\n\tdefaultOptions,\n\tloaderUtils.getOptions(this) // it is safe to pass null to Object.assign()\n);\n// don't forget nested objects or arrays\noptions.obj = Object.assign({}, options.obj); \noptions.arr = options.arr.slice();\nsomeLibrary(options);\n```\n\n[clone](https://www.npmjs.com/package/clone) is a good library to make a deep copy of the options.\n\n#### Options as query strings\n\nIf the loader options have been passed as loader query string (`loader?some&params`), the string is parsed by using [`parseQuery`](#parsequery).\n\n### `parseQuery`\n\nParses a passed string (e.g. `loaderContext.resourceQuery`) as a query string, and returns an object.\n\n``` javascript\nconst params = loaderUtils.parseQuery(this.resourceQuery); // resource: `file?param1=foo`\nif (params.param1 === \"foo\") {\n\t// do something\n}\n```\n\nThe string is parsed like this:\n\n``` text\n                             -> Error\n?                            -> {}\n?flag                        -> { flag: true }\n?+flag                       -> { flag: true }\n?-flag                       -> { flag: false }\n?xyz=test                    -> { xyz: \"test\" }\n?xyz=1                       -> { xyz: \"1\" } // numbers are NOT parsed\n?xyz[]=a                     -> { xyz: [\"a\"] }\n?flag1&flag2                 -> { flag1: true, flag2: true }\n?+flag1,-flag2               -> { flag1: true, flag2: false }\n?xyz[]=a,xyz[]=b             -> { xyz: [\"a\", \"b\"] }\n?a%2C%26b=c%2C%26d           -> { \"a,&b\": \"c,&d\" }\n?{data:{a:1},isJSON5:true}   -> { data: { a: 1 }, isJSON5: true }\n```\n\n### `stringifyRequest`\n\nTurns a request into a string that can be used inside `require()` or `import` while avoiding absolute paths.\nUse it instead of `JSON.stringify(...)` if you're generating code inside a loader.\n\n**Why is this necessary?** Since webpack calculates the hash before module paths are translated into module ids, we must avoid absolute paths to ensure\nconsistent hashes across different compilations.\n\nThis function:\n\n- resolves absolute requests into relative requests if the request and the module are on the same hard drive\n- replaces `\\` with `/` if the request and the module are on the same hard drive\n- won't change the path at all if the request and the module are on different hard drives\n- applies `JSON.stringify` to the result\n\n```javascript\nloaderUtils.stringifyRequest(this, \"./test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \".\\\\test.js\");\n// \"\\\"./test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test\");\n// \"\\\"test\\\"\"\n\nloaderUtils.stringifyRequest(this, \"test/lib/index.js\");\n// \"\\\"test/lib/index.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"otherLoader?andConfig!test?someConfig\");\n// \"\\\"otherLoader?andConfig!test?someConfig\\\"\"\n\nloaderUtils.stringifyRequest(this, require.resolve(\"test\"));\n// \"\\\"../node_modules/some-loader/lib/test.js\\\"\"\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"../../test.js\\\"\" (on Windows, in case the module and the request are on the same drive)\n\nloaderUtils.stringifyRequest(this, \"C:\\\\module\\\\test.js\");\n// \"\\\"C:\\\\module\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n\nloaderUtils.stringifyRequest(this, \"\\\\\\\\network-drive\\\\test.js\");\n// \"\\\"\\\\\\\\network-drive\\\\\\\\test.js\\\"\" (on Windows, in case the module and the request are on different drives)\n```\n\n### `urlToRequest`\n\nConverts some resource URL to a webpack module request.\n\n> i Before call `urlToRequest` you need call `isUrlRequest` to ensure it is requestable url\n\n```javascript\nconst url = \"path/to/module.js\";\n\nif (loaderUtils.isUrlRequest(url)) {\n  // Logic for requestable url\n  const request = loaderUtils.urlToRequest(url);\n} else {\n  // Logic for not requestable url\n}\n```\n\nSimple example:\n\n```javascript\nconst url = \"path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"./path/to/module.js\"\n```\n\n#### Module URLs\n\nAny URL containing a `~` will be interpreted as a module request. Anything after the `~` will be considered the request path.\n\n```javascript\nconst url = \"~path/to/module.js\";\nconst request = loaderUtils.urlToRequest(url); // \"path/to/module.js\"\n```\n\n#### Root-relative URLs\n\nURLs that are root-relative (start with `/`) can be resolved relative to some arbitrary path by using the `root` parameter:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"./root\";\nconst request = loaderUtils.urlToRequest(url, root); // \"./root/path/to/module.js\"\n```\n\nTo convert a root-relative URL into a module URL, specify a `root` value that starts with `~`:\n\n```javascript\nconst url = \"/path/to/module.js\";\nconst root = \"~\";\nconst request = loaderUtils.urlToRequest(url, root); // \"path/to/module.js\"\n```\n\n### `interpolateName`\n\nInterpolates a filename template using multiple placeholders and/or a regular expression.\nThe template and regular expression are set as query params called `name` and `regExp` on the current loader's context.\n\n```javascript\nconst interpolatedName = loaderUtils.interpolateName(loaderContext, name, options);\n```\n\nThe following tokens are replaced in the `name` parameter:\n\n* `[ext]` the extension of the resource\n* `[name]` the basename of the resource\n* `[path]` the path of the resource relative to the `context` query parameter or option.\n* `[folder]` the folder the resource is in\n* `[query]` the queryof the resource, i.e. `?foo=bar`\n* `[emoji]` a random emoji representation of `options.content`\n* `[emoji:<length>]` same as above, but with a customizable number of emojis\n* `[contenthash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md5 hash)\n* `[<hashType>:contenthash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[hash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the md5 hash)\n* `[<hashType>:hash:<digestType>:<length>]` optionally one can configure\n  * other `hashType`s, i. e. `sha1`, `md5`, `sha256`, `sha512`\n  * other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n  * and `length` the length in chars\n* `[N]` the N-th match obtained from matching the current file name against `options.regExp`\n\nIn loader context `[hash]` and `[contenthash]` are the same, but we recommend using `[contenthash]` for avoid misleading.\n\nExamples\n\n``` javascript\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(loaderContext, \"js/[hash].script.[ext][query]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js?foo=bar\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\nloaderUtils.interpolateName(loaderContext, \"js/[contenthash].script.[ext]\", { content: ... });\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/page.html\"\nloaderUtils.interpolateName(loaderContext, \"html-[hash:6].html\", { content: ... });\n// => html-9473fd.html\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/flash.txt\"\nloaderUtils.interpolateName(loaderContext, \"[hash]\", { content: ... });\n// => c31e9820c001c9c4a86bce33ce43b679\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji]\", { content: ... });\n// => 👍\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.gif\"\nloaderUtils.interpolateName(loaderContext, \"[emoji:4]\", { content: ... });\n// => 🙍🏢📤🐝\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/image.png\"\nloaderUtils.interpolateName(loaderContext, \"[sha512:hash:base64:7].[ext]\", { content: ... });\n// => 2BKDTjl.png\n// use sha512 hash instead of md5 and with only 7 chars of base64\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/img/myself.png\"\n// loaderContext.query.name =\nloaderUtils.interpolateName(loaderContext, \"picture.png\");\n// => picture.png\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/dir/file.png\"\nloaderUtils.interpolateName(loaderContext, \"[path][name].[ext]?[hash]\", { content: ... });\n// => /app/dir/file.png?9473fdd0d880a43c21b7778d34872157\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/page-home.js\"\nloaderUtils.interpolateName(loaderContext, \"script-[1].[ext]\", { regExp: \"page-(.*)\\\\.js\", content: ... });\n// => script-home.js\n\n// loaderContext.resourcePath = \"/absolute/path/to/app/js/javascript.js\"\n// loaderContext.resourceQuery = \"?foo=bar\"\nloaderUtils.interpolateName(\n  loaderContext, \n  (resourcePath, resourceQuery) => { \n    // resourcePath - `/app/js/javascript.js`\n    // resourceQuery - `?foo=bar`\n\n    return \"js/[hash].script.[ext]\"; \n  }, \n  { content: ... }\n);\n// => js/9473fdd0d880a43c21b7778d34872157.script.js\n```\n\n### `getHashDigest`\n\n``` javascript\nconst digestString = loaderUtils.getHashDigest(buffer, hashType, digestType, maxLength);\n```\n\n* `buffer` the content that should be hashed\n* `hashType` one of `sha1`, `md5`, `sha256`, `sha512` or any other node.js supported hash type\n* `digestType` one of `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`\n* `maxLength` the maximum length in chars\n\n## License\n\nMIT (http://www.opensource.org/licenses/mit-license.php)\n","readmeFilename":"README.md","gitHead":"331ad5067d9a1a7b8d646692e6959639969210d1","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_id":"loader-utils@1.4.2","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==","shasum":"29a957f3a63973883eb684f10ffd3d151fec01a3","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz","fileCount":14,"unpackedSize":25854,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE4CxnY0DK6x5Fj3ULkCTGmpPj2Kzx2SvQifni1ilIHxAiA27RYteLXst7g10uN9G4/N7xEpuKLUSvY5ae271yeDCA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbZi+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovwA//XqhQjud5lZIDzNSyMuJKWonCHSQtIaoIUvXc9giJxVh+k6yS\r\nuR9kiHG8zjDnN33htPh7EMRb7J12rJUrSyIzV9g/sztWz+6PIAcvXTfOTDm9\r\nH+3yPrC8HbjLSMH0UTRQV6cDRqImO3AmRbvmTueFaK2arRIc2e7LlKy+vcKt\r\n/fKK3qC5emjoRpOY2Z7JI4yJ4bies/a6Uqv4Ey9oqYjvvtHrrQ2zGZmkt5QV\r\nmdGw9bToU2y4rrrJKA48jUWJ/oXMDc5b5jIumb+hcaT7bvLapznj/l6OPRV7\r\nYlsSN8ffePmpmxVeQejWOSHhLcMR5n+PkUO+XW/rKm4NQ7XzcAHjm8NnM/o3\r\nMqwZjXSqP37W1pcClYk8KdoFgOD8YYIQJZoSMNJ8eA/TD2mXYDoAgeqOTBXJ\r\nSq9J9qb3jI26hIZpjk/4HekqArM6RYihoAGg4+/ibEj1rOd5ZGFgOFS96qJF\r\naD4WIlH5h5ivY4JVXZUEI8D8di4JjYMfdtgxPaDjteuq+9g3GONrVtHBMQoM\r\nekCyNHqLWm4+0+ATpvOvedkX76yoQKw5vmId5GGGqkwxMh+jmcMYG7nDYkkK\r\n/sdrE42umpBUuPOPkzfvpZu4ICroSI5gnAjXJCxNRIRffjtt4lSxOzFFyLCL\r\nyXbxKgwiFJgXVFx6ERhAbuXQA2F3EsJvwJM=\r\n=S4XW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"directories":{},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loader-utils_1.4.2_1668126910035_0.6726900818748616"},"_hasShrinkwrap":false}},"readme":"","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"time":{"modified":"2023-07-21T15:33:08.449Z","created":"2012-11-02T09:04:48.557Z","0.1.0":"2012-11-02T09:04:51.604Z","0.1.1":"2012-11-06T15:14:58.115Z","0.1.2":"2012-11-11T09:32:50.101Z","0.2.0":"2013-02-01T07:47:44.929Z","0.2.1":"2013-03-25T22:59:39.122Z","0.2.2":"2014-03-31T07:42:01.233Z","0.2.3":"2014-07-07T11:02:24.572Z","0.2.4":"2014-09-24T19:04:38.525Z","0.2.5":"2014-10-11T15:38:55.265Z","0.2.6":"2015-01-11T08:48:46.271Z","0.2.7":"2015-04-09T21:04:50.152Z","0.2.8":"2015-05-21T20:32:02.085Z","0.2.9":"2015-05-22T06:56:37.606Z","0.2.10":"2015-06-16T18:57:52.693Z","0.2.11":"2015-07-18T16:26:57.137Z","0.2.12":"2015-11-23T21:50:32.833Z","0.2.13":"2016-03-24T19:16:39.586Z","0.2.14":"2016-04-09T13:28:47.920Z","0.2.15":"2016-05-13T14:10:41.676Z","0.2.16":"2016-09-14T21:56:28.432Z","0.2.17":"2017-02-20T22:56:50.783Z","1.0.0":"2017-02-20T23:17:55.776Z","1.0.1":"2017-02-21T14:54:50.645Z","1.0.2":"2017-02-21T15:37:34.017Z","1.0.3":"2017-03-06T14:02:55.308Z","1.0.4":"2017-03-14T10:56:08.427Z","1.1.0":"2017-03-16T14:05:28.112Z","1.2.0":"2018-12-24T18:13:28.465Z","1.2.1":"2018-12-25T12:28:08.826Z","1.2.2":"2018-12-27T10:30:20.872Z","1.2.3":"2018-12-27T12:22:49.344Z","1.3.0":"2020-02-19T17:06:16.671Z","1.4.0":"2020-02-19T17:33:22.170Z","2.0.0":"2020-03-17T11:38:15.582Z","3.0.0":"2021-10-20T14:11:41.393Z","3.1.0":"2021-10-29T13:18:00.673Z","2.0.1":"2021-10-29T13:48:38.200Z","3.1.1":"2021-11-04T14:29:45.632Z","3.1.2":"2021-11-04T14:46:47.915Z","2.0.2":"2021-11-04T15:07:54.091Z","3.1.3":"2021-11-04T15:23:24.160Z","3.2.0":"2021-11-11T15:42:51.973Z","2.0.3":"2022-10-20T20:00:23.718Z","1.4.1":"2022-11-07T20:42:52.933Z","3.2.1":"2022-11-11T00:25:48.943Z","2.0.4":"2022-11-11T00:32:06.181Z","1.4.2":"2022-11-11T00:35:10.237Z"},"author":{"name":"Tobias Koppers @sokra"},"readmeFilename":"","homepage":"https://github.com/webpack/loader-utils#readme","repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"license":"MIT","users":{"yanghaojyhangdian":true,"chaoliu":true,"ttionya":true}}