{"_id":"loader-utils","_rev":"87-bb6a9d2ffec0aae876997265584305ba","name":"loader-utils","description":"utils for webpack loaders","dist-tags":{"latest":"3.3.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"},"license":"MIT","_id":"loader-utils@0.1.0","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"c806ab8550eec0f0b716cc5b07fa7641261399e3","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.1.0.tgz","integrity":"sha512-sGjrWvuLzSrBxT42JNKwRxHCLYZNna3XSseenWAzNMh7b4F5vEF94BK0Ir3vzs0mtYFLx/aQ/8nkS6Di6sdwVg==","signatures":[{"sig":"MEUCIQDyNxyDl8NFdSRqcSBCBRdkrKAnjG5qETfe2nmuQI6RkgIgMZmzOkXV0vtfisTKyizwAd/3AxkLi4xEkM6Ls9uthwY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"licenses":[{"url":"http://www.opensource.org/licenses/mit-license.php","type":"MIT"}],"_npmVersion":"1.1.59","description":"utils for webpack loaders","directories":{},"dependencies":{"json5":"0.1.x"}},"0.1.1":{"name":"loader-utils","version":"0.1.1","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.1.1","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"2eb185fdec466d145507077f3ea2435e1cf9cc8e","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.1.1.tgz","integrity":"sha512-PusGrd5vzSe18ARNQppxQswSDAZfxo9qgR1Qs2K/U4WHiQnwkEM+Rp8diDIKbQoSlKYrnPc4kD2c1uSV/9BCYQ==","signatures":[{"sig":"MEYCIQCtsjWufPakFTAcBYpIHTYeSIZAJo01JnZXAAqt/dCBYwIhAKghDxu5yNmjjEzciZ31ROyGWNzSRdte+q/ZfmLsePUz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"licenses":[{"url":"http://www.opensource.org/licenses/mit-license.php","type":"MIT"}],"_npmVersion":"1.1.59","description":"utils for webpack loaders","directories":{},"dependencies":{"json5":"0.1.x"}},"0.1.2":{"name":"loader-utils","version":"0.1.2","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.1.2","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"94b2b270822ae0f53a6bab74394c1d6f557c296b","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.1.2.tgz","integrity":"sha512-whq26BzpCMqzOm+i3d+FKyrSmGzzaZsrndde8LWyEOJdOnmHbEGrX+wRDoK8R3pd+lTd7p76VlUtpBop2pm9lA==","signatures":[{"sig":"MEUCIQDbW1JMGTtbbv93g+LCek+llm45K7qfzA5rRrph5r3LrwIgdNVmDIQfIUdCvABhttqVxAq1Nl7ht3XE5pb3i3eFSek=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"licenses":[{"url":"http://www.opensource.org/licenses/mit-license.php","type":"MIT"}],"_npmVersion":"1.1.63","description":"utils for webpack loaders","directories":{},"dependencies":{"json5":"0.1.x"}},"0.2.0":{"name":"loader-utils","version":"0.2.0","author":{"name":"Tobias Koppers @sokra"},"_id":"loader-utils@0.2.0","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"3ab46086a1397e0fd52470e69106998fd70644a0","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.0.tgz","integrity":"sha512-gWPEBf0anNTkXMJqQ0F3BgV+aw6Xtf5saOf+vYE3KmSdRscWPelVsNiyNOGv2JNeCmdgBBukqo+rC2Bzl5W/tw==","signatures":[{"sig":"MEYCIQD/NAHPQPhhN5NUrkhiVQU3cWNDOn/OF7zutlIuUhDvRAIhAL1eolhfkSwxQDyNSHyBZGVs8GKfJq7fg+mQavUR5ndF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"licenses":[{"url":"http://www.opensource.org/licenses/mit-license.php","type":"MIT"}],"_npmVersion":"1.1.59","description":"utils for webpack loaders","directories":{},"dependencies":{"json5":"0.1.x"}},"0.2.1":{"name":"loader-utils","version":"0.2.1","author":{"name":"Tobias Koppers @sokra"},"_id":"loader-utils@0.2.1","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"c8d03c4fe8c91e0ae362bd3aeb7fcc445f9b7890","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.1.tgz","integrity":"sha512-FhIhOr6oG2JyqWi030XTlVLVWjU6yN/mNDQwUdkMwMWhp60BiW7LTvqwfm2M1TirgzyVJNWz+PnOUlp+ez4Gyw==","signatures":[{"sig":"MEUCIQDFX4DKPFShI6ShnhqeXXZTYg7E0BrtaXFq+ZksSO3aRQIgb8Lk3SALfGXefrg9vJHc4hGvMU63QwKrr0sSU8iHiHk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"licenses":[{"url":"http://www.opensource.org/licenses/mit-license.php","type":"MIT"}],"_npmVersion":"1.2.11","description":"utils for webpack loaders","directories":{},"dependencies":{"json5":"0.1.x"}},"0.2.2":{"name":"loader-utils","version":"0.2.2","author":{"name":"Tobias Koppers @sokra"},"_id":"loader-utils@0.2.2","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"dist":{"shasum":"4c0fe718dd3ab62d1d47d03a2b1af54dd7fda382","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.2.tgz","integrity":"sha512-F0Wo3IeOJBk82TvTuf06t4hf0/VOGx8by6o27Lc1BpSXOZCNAxzUZESej+oWvv3YOnomx2bNW4za9D0EZwu4hg==","signatures":[{"sig":"MEUCIQCb9EKTYAyRrWjuz9pNfW5YYkwvjYscWwWFdNNB6jFcgAIgArK48Vx3eVrBxi5Ce2df/+m7XXRtyRkVe4wk+0m0UpE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"licenses":[{"url":"http://www.opensource.org/licenses/mit-license.php","type":"MIT"}],"_npmVersion":"1.4.3","description":"utils for webpack loaders","directories":{},"dependencies":{"json5":"0.1.x"}},"0.2.3":{"name":"loader-utils","version":"0.2.3","author":{"name":"Tobias Koppers @sokra"},"_id":"loader-utils@0.2.3","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"87fe021587458f10f7eb755c75af60a1fcf4b392","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.3.tgz","integrity":"sha512-gP7uRkdwoAF7wAUMkcGzfW53QBopgVD9jq6jTbiuTe1dSnCkUr572ACKRBWIxlH2aDzjk4zqIPXioUlYAEQTYg==","signatures":[{"sig":"MEYCIQDEvqaxrnAa98cI/xmMftd4E2sfjPw69RvzYKyX/LPr+gIhAIZgYKIi/bINCBTPk2+yydihkQlxRcu6ss1nmVyCc304","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"licenses":[{"url":"http://www.opensource.org/licenses/mit-license.php","type":"MIT"}],"repository":{"url":"git://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"1.4.3","description":"utils for webpack loaders","directories":{},"dependencies":{"json5":"0.1.x"}},"0.2.4":{"name":"loader-utils","version":"0.2.4","author":{"name":"Tobias Koppers @sokra"},"_id":"loader-utils@0.2.4","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"b1fbdd1cf3b57ed111c202ffc193bafd1217f8c5","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.4.tgz","integrity":"sha512-SFoBsonTHefO5TwiVEExlybXCYxCktq5xR6ZvD9UDx8UApi+nBPIRf+Vjn4+qU41jAsHQFScLKGneN4lNoZaPg==","signatures":[{"sig":"MEUCIEULAgVIMDourPV8INYKW269rMaL88z+gMZC/qwIXyCdAiEA9c/22PKEkp3UusoKkz6TL1vZx5/4Jt6J6/YkQw+p8dg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"b1fbdd1cf3b57ed111c202ffc193bafd1217f8c5","gitHead":"bf11c1c2737360c1daf77925cc718fc48e147128","scripts":{"test":"mocha test index.js"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"licenses":[{"url":"http://www.opensource.org/licenses/mit-license.php","type":"MIT"}],"repository":{"url":"git://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"1.4.16","description":"utils for webpack loaders","directories":{},"dependencies":{"json5":"0.1.x"},"devDependencies":{"mocha":"^1.21.4"}},"0.2.5":{"name":"loader-utils","version":"0.2.5","author":{"name":"Tobias Koppers @sokra"},"_id":"loader-utils@0.2.5","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"8dec38ecbcc3a81a01627f2605bec98390ccd5d0","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.5.tgz","integrity":"sha512-02Ay05cSLAN8Su/kWCMpFzpVmo1x1mOPARYRXZWgU9GsI1RAbgaasLuHfZHmPwikAQ3f9thHZ+VCESqbGgG4/A==","signatures":[{"sig":"MEUCIADiJJBrnUZTa0WKwumD8fiD8rNwQS4hs1P01YJwST2KAiEAw6OlRZmB6ouupJe/5JH/hJuBxZuzzb6V/Bbll+MlKUg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"8dec38ecbcc3a81a01627f2605bec98390ccd5d0","gitHead":"db3c7cd123355f61846497ebeef614670c075ed9","scripts":{"test":"mocha test index.js"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"licenses":[{"url":"http://www.opensource.org/licenses/mit-license.php","type":"MIT"}],"repository":{"url":"git://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"1.4.28","description":"utils for webpack loaders","directories":{},"dependencies":{"json5":"0.1.x","big.js":"~2.5.1"},"devDependencies":{"mocha":"^1.21.4"}},"0.2.6":{"name":"loader-utils","version":"0.2.6","author":{"name":"Tobias Koppers @sokra"},"_id":"loader-utils@0.2.6","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"306b798f6a24a5d78505fdb0db2ddd5bb2b90810","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.6.tgz","integrity":"sha512-wTkzqVqw/8cl5xdnqLmltmh1S5WBV6gY3IRQECti7z+HKiYeDbN6fXyDFCyag3WC2nXDhg7c9aGkECQY9DmNzw==","signatures":[{"sig":"MEUCIQC+dh1he0ZqUGUpV6eMC8uk/EfHErs0b6pa0jmA9QL2HgIgWUZxiauae3GWMSowow2Jk7sqdkNkSaWi3I85zm2xRno=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"306b798f6a24a5d78505fdb0db2ddd5bb2b90810","gitHead":"3e9dfceeae52a23e5e027bdb67b30a21b52d2ae2","scripts":{"test":"mocha test index.js"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"licenses":[{"url":"http://www.opensource.org/licenses/mit-license.php","type":"MIT"}],"repository":{"url":"git://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"1.4.28","description":"utils for webpack loaders","directories":{},"dependencies":{"json5":"0.1.x","big.js":"~2.5.1"},"devDependencies":{"mocha":"^1.21.4"}},"0.2.7":{"name":"loader-utils","version":"0.2.7","author":{"name":"Tobias Koppers @sokra"},"_id":"loader-utils@0.2.7","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"dcbe8eaee038caa32961f206531da23f04e2279d","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.7.tgz","integrity":"sha512-egXSdCWbQhgqeRRC9GVp9jbKQveTb9vcUONq8A7k06lSlBk5St7dectNoFRhf8lvL1cnjMnsOT3AQEesx5Rakg==","signatures":[{"sig":"MEUCIGHTbA6s/sikPtE8W0ykgnF2fr32xO4werBtyY2NdpGYAiEA9KHcn+dQ6PbWa/L8UZKJv1HyywJieozWLtCOheXZk38=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"dcbe8eaee038caa32961f206531da23f04e2279d","gitHead":"b52bc62f9b2faba9f6c0aea8f9da7211b4e9bdd7","scripts":{"test":"mocha test index.js"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"licenses":[{"url":"http://www.opensource.org/licenses/mit-license.php","type":"MIT"}],"repository":{"url":"git://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"2.7.4","description":"utils for webpack loaders","directories":{},"_nodeVersion":"0.12.2","dependencies":{"json5":"0.1.x","big.js":"~2.5.1"},"devDependencies":{"mocha":"^1.21.4"}},"0.2.8":{"name":"loader-utils","version":"0.2.8","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.2.8","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"ad61651fac981a2911e9c9200a838be8974c0cf6","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.8.tgz","integrity":"sha512-i+s6qbc0dlCcmi/aaOKSm/1kNRRrAZ3218HRwlSohFWNyEIsn6/FE6PP6QvGBmN2CZy1vDfT7xKFSyhpLVdhjw==","signatures":[{"sig":"MEUCIGu5SGMmlqtXZiKT3fTMjsp1u5xdbkeNUc3oOCYn3ePiAiEA8EsWxchAJSsSwJhBZ+lrOnp+Vq7Lf2DBG6qbEs7I8fI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"ad61651fac981a2911e9c9200a838be8974c0cf6","gitHead":"289d38652bd4035488ff35dd11130b36b77d1035","scripts":{"test":"mocha test index.js"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"repository":{"url":"git://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"2.10.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"0.12.2","dependencies":{"json5":"0.1.x","big.js":"~2.5.1"},"devDependencies":{"mocha":"^1.21.4"}},"0.2.9":{"name":"loader-utils","version":"0.2.9","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.2.9","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"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":[{"sig":"MEUCIGFcwBR+X5xmcGGoUXwgvONqV/pgG22QLXstqOn14evmAiEAoQLgHtt0iI7kcsBx3KN6hTg1AFRxhVBlbMLVJOM/DZg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"9efc08d1ef20e99145e5e627bd8b945a85ac14dc","gitHead":"a417eea4e36f4fa3001d1a7591093e68cc4f5462","scripts":{"test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"repository":{"url":"https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"1.4.23","description":"utils for webpack loaders","directories":{},"dependencies":{"json5":"^0.4.0","big.js":"^3.0.2"},"devDependencies":{"mocha":"^1.21.4","istanbul":"^0.3.14","coveralls":"^2.11.2"}},"0.2.10":{"name":"loader-utils","version":"0.2.10","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.2.10","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"7ed2258e496644c83680590489bb82f3f57892fc","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.10.tgz","integrity":"sha512-CKzJBd9wm5jbOfjtBqp6+EKqembqgiO3Q4dO0wiy+Esp5Ux3GLnf31B0FKno1egafHqeihH5VREtzNuRKFlg/g==","signatures":[{"sig":"MEQCIE/PfQ5bz2KFxnwbU4rhrYFV6CafC9mdM8qxofHtMSyaAiAR/g9s+a1gKBUm+yie5F/c8j0LIkfyqLiobfTOo8jYTQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"7ed2258e496644c83680590489bb82f3f57892fc","gitHead":"7fd3e9a1c9a0fb8d775f835498b8c0a2002e36a0","scripts":{"test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"2.10.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"0.12.2","dependencies":{"json5":"^0.4.0","big.js":"^3.0.2"},"devDependencies":{"mocha":"^1.21.4","istanbul":"^0.3.14","coveralls":"^2.11.2"}},"0.2.11":{"name":"loader-utils","version":"0.2.11","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.2.11","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"8a0164e337c21ca099c2b1716366f0db0ec3087f","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.tgz","integrity":"sha512-2eR0axRLWlHkiQvcgfQlJxKdFGzAplZZhV5pYvJhNsqz/qNSNjkPavCnv58VKpStIj+7s7Jz6SHxa0tZTh+fNA==","signatures":[{"sig":"MEQCIFKH1xzJsh3wCvekzZ56zWsaS2W8tPauSeRFGsHwZKfYAiAhWvcvkQa0WIulTXtCC4BF5MKb5b6bKdQyx8zJevlQKw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"8a0164e337c21ca099c2b1716366f0db0ec3087f","gitHead":"0adb5e5c06b6fd217b8ec4a5316bb08d3363cd88","scripts":{"test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"2.10.1","description":"utils for webpack loaders","directories":{},"_nodeVersion":"0.12.4","dependencies":{"json5":"^0.4.0","big.js":"^3.0.2"},"devDependencies":{"mocha":"^1.21.4","istanbul":"^0.3.14","coveralls":"^2.11.2"}},"0.2.12":{"name":"loader-utils","version":"0.2.12","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.2.12","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"faa2a501563a3c2c9dda57aa8c39d8be628de7a2","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.12.tgz","integrity":"sha512-4swclWt0kYEoxsWSn/sWPDtXVA30Owi37hdagCUJnXXospg2BrsMu5dqhXqtHEIHdxF3UGMmHBXqbiPTzxdetQ==","signatures":[{"sig":"MEUCIDbKTDkK7lMrxcoT20iNJZBQw2/VFc4FjbugXUXH1JY3AiEAttg50QRiL7MgTtl0M52BTloyeoX+STclVvISqZkhfps=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"faa2a501563a3c2c9dda57aa8c39d8be628de7a2","gitHead":"581ccbcb264a9e6d7d667276fbfa609e0ee951f3","scripts":{"test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"2.10.1","description":"utils for webpack loaders","directories":{},"_nodeVersion":"0.12.4","dependencies":{"json5":"^0.4.0","big.js":"^3.0.2"},"devDependencies":{"mocha":"^1.21.4","istanbul":"^0.3.14","coveralls":"^2.11.2"}},"0.2.13":{"name":"loader-utils","version":"0.2.13","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.2.13","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"ea0de320be919056362c9972d5072b4596ae9eec","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.13.tgz","integrity":"sha512-BUaMrK27mCTGCYMc8GzfwGv92i1CtMsT/uDj8dIuFlX2zQuNVwmwuH2p7S54nQln8WhrMWubMAmvrq4BMzxpBg==","signatures":[{"sig":"MEUCIFRpZjcOn/tLC3uK/lwPf2WOMfTmEiPbdAOb0CPAw3WIAiEA9ptHJqtl7cosY8OJe3lz80Cnokp8cAYnZ+qqh+Ur/j0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"ea0de320be919056362c9972d5072b4596ae9eec","gitHead":"b16f37eab0655130f82c1b5255373d7b4a372ceb","scripts":{"test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"3.3.3","description":"utils for webpack loaders","directories":{},"_nodeVersion":"5.4.1","dependencies":{"json5":"^0.4.0","big.js":"^3.0.2"},"devDependencies":{"mocha":"^1.21.4","istanbul":"^0.3.14","coveralls":"^2.11.2"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils-0.2.13.tgz_1458846997166_0.9803386435378343","host":"packages-12-west.internal.npmjs.com"}},"0.2.14":{"name":"loader-utils","version":"0.2.14","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.2.14","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"3edab2a123ebb196a1c9d6dd3e83384958843e6f","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.14.tgz","integrity":"sha512-z74o9g9a2ysPwfcJglqKwA6EqDI9JEAZrRY4QcIV0bd3TlhHCQ0cJuSaNZINFSFHlfLM1eZl2GpLx3M2pMUj1Q==","signatures":[{"sig":"MEUCICp4TpkT3rhEjE/37auzfSg0C1o1iviGEMS9M3NSMZsnAiEAneZzbadwmJAvPgXRS+KjEDALMvyebsOUL5OYrk/pxQ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"3edab2a123ebb196a1c9d6dd3e83384958843e6f","gitHead":"fc647bb47b662771d26529c3157a8d2bc2579844","scripts":{"test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"3.3.3","description":"utils for webpack loaders","directories":{},"_nodeVersion":"5.4.1","dependencies":{"json5":"^0.5.0","big.js":"^3.1.3","emojis-list":"^1.0.0","object-assign":"^4.0.1"},"devDependencies":{"mocha":"^1.21.4","istanbul":"^0.3.14","coveralls":"^2.11.2"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils-0.2.14.tgz_1460208526883_0.26962931361049414","host":"packages-16-east.internal.npmjs.com"}},"0.2.15":{"name":"loader-utils","version":"0.2.15","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.2.15","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"c7df3342a9d4e2103dddc97d4060daccc246d6ac","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.15.tgz","integrity":"sha512-62wASNQF58lPb5fWmg6Y3TtVrqrmtGHgjkBUNB3TWHZBZiODR1jEX4snGHFuFjwcOwOzZ6tFKR+ztVhxgbao7Q==","signatures":[{"sig":"MEUCIQDa72Rr50xn4aoGtzb+3pRUb8uGyZFstg048N0wSuiJCQIgP9IzLi9FIV4D3z2Xs+Xk1aFKgzTVbYXVf13mSmAAZQo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"c7df3342a9d4e2103dddc97d4060daccc246d6ac","gitHead":"bed965bbcb54fa54beecfee2639e9585ab5ae020","scripts":{"test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"3.8.3","description":"utils for webpack loaders","directories":{},"_nodeVersion":"5.10.1","dependencies":{"json5":"^0.5.0","big.js":"^3.1.3","emojis-list":"^2.0.0","object-assign":"^4.0.1"},"devDependencies":{"mocha":"^1.21.4","istanbul":"^0.3.14","coveralls":"^2.11.2"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils-0.2.15.tgz_1463148639681_0.7935674281325191","host":"packages-16-east.internal.npmjs.com"}},"0.2.16":{"name":"loader-utils","version":"0.2.16","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.2.16","maintainers":[{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"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":[{"sig":"MEUCIQDyFDETsRQA1iqbF89vA0q8M1kdx6syKU4Rbq3QCYcjOQIgAh4Kcc+nyiL5nPPpRG5f4jU/J19MB4+TYO7muuJ3r1A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"f08632066ed8282835dff88dfb52704765adee6d","gitHead":"4ea2dfbfe03e3ca70576aff5fe5e4a4235232591","scripts":{"test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"sokra","email":"tobias.koppers@googlemail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"3.3.3","description":"utils for webpack loaders","directories":{},"_nodeVersion":"6.3.1","dependencies":{"json5":"^0.5.0","big.js":"^3.1.3","emojis-list":"^2.0.0","object-assign":"^4.0.1"},"devDependencies":{"mocha":"^1.21.4","istanbul":"^0.3.14","coveralls":"^2.11.2"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils-0.2.16.tgz_1473890187319_0.20624244073405862","host":"packages-16-east.internal.npmjs.com"}},"0.2.17":{"name":"loader-utils","version":"0.2.17","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@0.2.17","maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"f86e6374d43205a6e6c60e9196f17c0299bfb348","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz","integrity":"sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==","signatures":[{"sig":"MEUCIDXECyJiDYsXYQo+RhIhCBbrsTolG+kZzsKOYsw0VfbzAiEAsjVdzM5dnR37w2YYBgQ3mEe9QalWpbaHwoJAxJSVmLk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"f86e6374d43205a6e6c60e9196f17c0299bfb348","gitHead":"00b9d0848bd7216e184beacbf6582dc5ee51ff80","scripts":{"test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"3.10.9","description":"utils for webpack loaders","directories":{},"_nodeVersion":"7.1.0","dependencies":{"json5":"^0.5.0","big.js":"^3.1.3","emojis-list":"^2.0.0","object-assign":"^4.0.1"},"devDependencies":{"mocha":"^1.21.4","istanbul":"^0.3.14","coveralls":"^2.11.2"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils-0.2.17.tgz_1487631410094_0.04626395273953676","host":"packages-18-east.internal.npmjs.com"}},"1.0.0":{"name":"loader-utils","version":"1.0.0","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.0.0","maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"4923aa5442acd8132af59ebc2738a1a828e86184","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.0.0.tgz","integrity":"sha512-68phTQpL2wva2mgErbchbsGB7/OTywIUiq2LrtE2NCK1s21s1VRMh7ANDMEQoeFM3GPN86OBhhX/BOyRGStRmw==","signatures":[{"sig":"MEUCIHfDOVl43/3NsNW4h8598A1JHQ9HMjkWQ3sihgGRb/3VAiEAp9nIIlI979ocT1Wp4fNJduZf79N5saapg+QDIDLpVRw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","files":["lib","README","LICENSE"],"_shasum":"4923aa5442acd8132af59ebc2738a1a828e86184","engines":{"node":"^4.0.0"},"gitHead":"8cda6ab3c53791851b1528b3d7d8d7f537ae344f","scripts":{"lint":"eslint --fix *.js test","test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","posttest":"npm run lint","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"3.10.9","description":"utils for webpack loaders","directories":{},"_nodeVersion":"7.1.0","dependencies":{"json5":"^0.5.0","big.js":"^3.1.3","emojis-list":"^2.0.0"},"devDependencies":{"mocha":"^1.21.4","eslint":"^3.15.0","istanbul":"^0.3.14","coveralls":"^2.11.2","eslint-plugin-node":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils-1.0.0.tgz_1487632673669_0.4440648609306663","host":"packages-12-west.internal.npmjs.com"}},"1.0.1":{"name":"loader-utils","version":"1.0.1","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.0.1","maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"92795b3f71578538b57f7a2ecc71d5b033f0fe29","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.0.1.tgz","integrity":"sha512-7QYVRAegEikHIGdvf5FbXWFEpk19rKdJ7r5RUoB2p5wJ7oANNpWrD04DcKpSJ7Cv70Rr+lrH2VFjFiJC8YVI3Q==","signatures":[{"sig":"MEUCIQDYco3DmxntqKTgKZDAvaIQm4l9zyf0E/k0qpxJg6lhBgIgBYb7wZFwY6OaqqXqw0mwdJU3JpuwB+pGnzfHonXNi9A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","files":["lib","README","LICENSE"],"_shasum":"92795b3f71578538b57f7a2ecc71d5b033f0fe29","engines":{"node":"^4.0.0"},"gitHead":"9986c9c281f33f40a11dedbccac41bb6c24bfd9f","scripts":{"lint":"eslint --fix *.js test","test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","posttest":"npm run lint","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"3.10.9","description":"utils for webpack loaders","directories":{},"_nodeVersion":"7.1.0","dependencies":{"json5":"^0.5.0","big.js":"^3.1.3","emojis-list":"^2.0.0"},"devDependencies":{"mocha":"^1.21.4","eslint":"^3.15.0","istanbul":"^0.3.14","coveralls":"^2.11.2","eslint-plugin-node":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils-1.0.1.tgz_1487688888715_0.6141277730930597","host":"packages-12-west.internal.npmjs.com"}},"1.0.2":{"name":"loader-utils","version":"1.0.2","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.0.2","maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"a9f923c865a974623391a8602d031137fad74830","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.0.2.tgz","integrity":"sha512-3oX4h0m0IAhTUNvcEBLHllnxX0smVVPXBm3YhteZhvUZuchZFQfxmSfjAtlurffVKHqgvkZvIYg+VLi6WsnSlg==","signatures":[{"sig":"MEYCIQDQaVivhEd2WGOtxStFDN4Hi/vfi8GVz+DdlKogGl2TIgIhAOXyRfKkBYEGjv2hqDkQeqh5rOcGXVGexsGr8iyJIJJO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","files":["lib","README","LICENSE"],"_shasum":"a9f923c865a974623391a8602d031137fad74830","engines":{"node":">=4.0.0"},"gitHead":"622de891c53756e3275e7d36197c0fcc2c93149f","scripts":{"lint":"eslint --fix *.js test","test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","posttest":"npm run lint","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"3.10.9","description":"utils for webpack loaders","directories":{},"_nodeVersion":"7.1.0","dependencies":{"json5":"^0.5.0","big.js":"^3.1.3","emojis-list":"^2.0.0"},"devDependencies":{"mocha":"^1.21.4","eslint":"^3.15.0","istanbul":"^0.3.14","coveralls":"^2.11.2","eslint-plugin-node":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils-1.0.2.tgz_1487691451673_0.9973385850898921","host":"packages-18-east.internal.npmjs.com"}},"1.0.3":{"name":"loader-utils","version":"1.0.3","author":{"name":"Tobias Koppers @sokra"},"license":"JSF","_id":"loader-utils@1.0.3","maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"566c320c24c33cb3f02db4df83f3dbf60b253de3","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.0.3.tgz","integrity":"sha512-zzATq2KgjTETTnRw3WoE6M1McKkLKRYajVJcWLo/eq5ztc0FsNk86Fzox3G1TNj6JMqbmGOtSilQXM8hWCYRRw==","signatures":[{"sig":"MEQCIDZL+CxVl7WEcq9+tZdaCH+AG6YSpEaH7MqxHs7zGkg7AiADcqMutq8s16PanVAIgeGvi8bpkm5fajBxXF3nxJu+mQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","files":["lib"],"_shasum":"566c320c24c33cb3f02db4df83f3dbf60b253de3","engines":{"node":">=4.0.0"},"gitHead":"b3648f53c41b4432e8cde5d90d79a1838ceb5fa0","scripts":{"lint":"eslint --fix *.js test","test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","posttest":"npm run lint","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"4.1.2","description":"utils for webpack loaders","directories":{},"_nodeVersion":"7.6.0","dependencies":{"json5":"^0.5.0","big.js":"^3.1.3","emojis-list":"^2.0.0"},"devDependencies":{"mocha":"^1.21.4","eslint":"^3.15.0","istanbul":"^0.3.14","coveralls":"^2.11.2","eslint-plugin-node":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils-1.0.3.tgz_1488808973512_0.982763821259141","host":"packages-12-west.internal.npmjs.com"}},"1.0.4":{"name":"loader-utils","version":"1.0.4","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.0.4","maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"13f56197f1523a305891248b4c7244540848426c","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.0.4.tgz","integrity":"sha512-TMS4PQ0+m0xyRGBunvDQIdhWJY6JOYeEPpHZEW0EmDhqKrQUj04xiMT3jsdVS17pUg0JzX1mJI3QiV8lXjoEng==","signatures":[{"sig":"MEQCIG/ki1PftBq2SOv/TP3kTHNuEtI7eT5vldi/1gHv1hRQAiBQxrNQnnyGgnKFMY4H4xIRrcZyt/zN+F+Y87myo0l6pA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","files":["lib"],"_shasum":"13f56197f1523a305891248b4c7244540848426c","engines":{"node":">=4.0.0"},"gitHead":"dfaa358213c2c96ee07c9fdd4abedd63d4ec528f","scripts":{"lint":"eslint --fix *.js test","test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","posttest":"npm run lint","publish-patch":"mocha && npm version patch && git push && git push --tags && npm publish"},"_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"4.1.2","description":"utils for webpack loaders","directories":{},"_nodeVersion":"7.7.1","dependencies":{"json5":"^0.5.0","big.js":"^3.1.3","emojis-list":"^2.0.0"},"devDependencies":{"mocha":"^1.21.4","eslint":"^3.15.0","istanbul":"^0.3.14","coveralls":"^2.11.2","eslint-plugin-node":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils-1.0.4.tgz_1489488966537_0.6818160915281624","host":"packages-12-west.internal.npmjs.com"}},"1.1.0":{"name":"loader-utils","version":"1.1.0","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.1.0","maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"c98aef488bcceda2ffb5e2de646d6a754429f5cd","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz","integrity":"sha512-gkD9aSEG9UGglyPcDJqY9YBTUtCLKaBK6ihD2VP1d1X60lTfFspNZNulGBBbUZLkPygy4LySYHyxBpq+VhjObQ==","signatures":[{"sig":"MEQCIAfMhDWE8KUyeonmxiQhvnmxRwoRoBRDlph5PIdGNJu4AiBAs6qow5gKne0j/PhkViYIhFr/helEU9gj2B7vt5UUAQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","files":["lib"],"_shasum":"c98aef488bcceda2ffb5e2de646d6a754429f5cd","engines":{"node":">=4.0.0"},"gitHead":"a5602addda0c5e98e70d067b8dd050d5e4153f1d","scripts":{"lint":"eslint lib test","test":"mocha","cover":"istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha","travis":"npm run cover -- --report lcovonly","release":"npm test && standard-version","posttest":"npm run lint"},"_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"4.1.2","description":"utils for webpack loaders","directories":{},"_nodeVersion":"7.7.3","dependencies":{"json5":"^0.5.0","big.js":"^3.1.3","emojis-list":"^2.0.0"},"devDependencies":{"mocha":"^1.21.4","eslint":"^3.15.0","istanbul":"^0.3.14","coveralls":"^2.11.2","standard-version":"^4.0.0","eslint-plugin-node":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils-1.1.0.tgz_1489673126296_0.2887681087013334","host":"packages-12-west.internal.npmjs.com"}},"1.2.0":{"name":"loader-utils","version":"1.2.0","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.2.0","maintainers":[{"name":"bebraw","email":"bebraw@gmail.com"},{"name":"d3viant0ne","email":"wiens.joshua@gmail.com"},{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"jtangelder","email":"j.tangelder@gmail.com"},{"name":"michael-ciniawsky","email":"michael.ciniawsky@gmail.com"},{"name":"shellscape","email":"andrew@shellscape.org"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"thelarkinn","email":"sean.larkin@cuw.edu"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"8194a9bfabc3612e52e556139f67acbf01b267b7","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.0.tgz","fileCount":15,"integrity":"sha512-KkQxP+pVgJC6ypy8ePypyhsV/hZeyVlkqiqrxe4pDgCwClbzmr3dGy8LbeSVhmfzYmCpOovdrVs/9chsQXCrLQ==","signatures":[{"sig":"MEUCIBF3KK1xkyVUqOe0prS58cC3H/dVI6FTPcX2WRInQRtFAiEA77e+XMPuUYH938bHushuIhuKOTC0H1jzEw/cdEhrVSM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"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"},"main":"lib/index.js","engines":{"node":">=4.0.0"},"gitHead":"ba4f0d0912b84d974a80ce8a5d2eae69841cd36b","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"6.5.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"10.14.1","dependencies":{"json5":"^1.0.1","big.js":"^5.2.2","emojis-list":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^21.2.1","eslint":"^5.11.0","prettier":"^1.15.3","coveralls":"^3.0.2","standard-version":"^4.0.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_1.2.0_1545675208365_0.9149365438295183","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"loader-utils","version":"1.2.1","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.2.1","maintainers":[{"name":"bebraw","email":"bebraw@gmail.com"},{"name":"d3viant0ne","email":"wiens.joshua@gmail.com"},{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"jtangelder","email":"j.tangelder@gmail.com"},{"name":"michael-ciniawsky","email":"michael.ciniawsky@gmail.com"},{"name":"shellscape","email":"andrew@shellscape.org"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"thelarkinn","email":"sean.larkin@cuw.edu"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"64bbbac69aa5840d03754ba676a963dec568e844","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.1.tgz","fileCount":15,"integrity":"sha512-3Zhx4qDqBQ9U8udWB3RMJ29nLu5a3ObNOSzk87woPvge01pi0wABowgv7F79Z4mL0DGtHRi/oOndT34EVhInoQ==","signatures":[{"sig":"MEYCIQC0gPAEjjVmrUJGQsmaDH/dGfc8Cz5YlVD0VJs5Z/V3lgIhAKQjll8tXhiTaAb2WoW+0pN66ZbmdzsfHVE1sntBU3N1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"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"},"main":"lib/index.js","engines":{"node":">=4.0.0"},"gitHead":"489ef12a900c9f40c32eb0dceeed1eaab55fcc89","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"6.5.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"10.14.1","dependencies":{"json5":"^1.0.1","big.js":"^5.2.2","emojis-list":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^21.2.1","eslint":"^5.11.0","prettier":"^1.15.3","coveralls":"^3.0.2","standard-version":"^4.0.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_1.2.1_1545740888656_0.7320917201987636","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"loader-utils","version":"1.2.2","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.2.2","maintainers":[{"name":"bebraw","email":"bebraw@gmail.com"},{"name":"d3viant0ne","email":"wiens.joshua@gmail.com"},{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"jtangelder","email":"j.tangelder@gmail.com"},{"name":"michael-ciniawsky","email":"michael.ciniawsky@gmail.com"},{"name":"shellscape","email":"andrew@shellscape.org"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"thelarkinn","email":"sean.larkin@cuw.edu"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"fcfcb6b4109b2358c3df160b2254f0496b261a36","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.2.tgz","fileCount":15,"integrity":"sha512-Xjb++b55GPoVV1ct93EodsswWEErveAqGhhwujIshShtjIKdPpdpveriwNCNsuVo1zQ1ukmPUszK44C9RD7TCg==","signatures":[{"sig":"MEUCIQDgfivS2GReLs3KOBlZKI6p7UVyhjhbKWcSpd/C2w50vwIgMNCj/cdj2CIEafWFJyEbRg/Mbm2ohGlADj0a8GFG7tg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"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"},"main":"lib/index.js","engines":{"node":">=4.0.0"},"gitHead":"809b690c3b7fcb2e0947f014e86554d2ae1f3f03","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"6.5.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"10.14.1","dependencies":{"json5":"^1.0.1","big.js":"^5.2.2","emojis-list":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^21.2.1","eslint":"^5.11.0","prettier":"^1.15.3","coveralls":"^3.0.2","standard-version":"^4.0.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_1.2.2_1545906620751_0.3714967387139998","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"loader-utils","version":"1.2.3","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.2.3","maintainers":[{"name":"bebraw","email":"bebraw@gmail.com"},{"name":"d3viant0ne","email":"wiens.joshua@gmail.com"},{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"jtangelder","email":"j.tangelder@gmail.com"},{"name":"michael-ciniawsky","email":"michael.ciniawsky@gmail.com"},{"name":"shellscape","email":"andrew@shellscape.org"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"thelarkinn","email":"sean.larkin@cuw.edu"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"1ff5dc6911c9f0a062531a4c04b609406108c2c7","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz","fileCount":15,"integrity":"sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==","signatures":[{"sig":"MEUCIFy6sMB85ncp3/9YBRDyEyGvsnDLqpUXnZe7BL3sHXqrAiEAyQh7OJhJCvUlZtrkmv4ojM9E+Ufi1U/nfkFsA53PBJk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"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"},"main":"lib/index.js","engines":{"node":">=4.0.0"},"gitHead":"b91a76c0c98bf71df5a3a1c808ea86268c3716c1","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"6.5.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"10.14.1","dependencies":{"json5":"^1.0.1","big.js":"^5.2.2","emojis-list":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^21.2.1","eslint":"^5.11.0","prettier":"^1.15.3","coveralls":"^3.0.2","standard-version":"^4.0.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_1.2.3_1545913369202_0.5225895317690739","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"loader-utils","version":"1.3.0","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.3.0","maintainers":[{"name":"d3viant0ne","email":"wiens.joshua@gmail.com"},{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"michael-ciniawsky","email":"michael.ciniawsky@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"446ec1ade95d634fd8ad3286ac12ea0306faef3f","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.3.0.tgz","fileCount":15,"integrity":"sha512-3DgDIZM5uYPDORrAT1YvqH/7P4E6Tctk7gaNeNUEEsj+diTu6wGyO9YBLFKJ4kFq+HGn5Au6gg2Hv087U/GBqA==","signatures":[{"sig":"MEUCIDGTSQ1pbA+MXW4cauOyj4lqySxG8adxYWnEs2Rs6s/MAiEAqQ3XrKmjID0z8nLcrU66FLEugG0+ZZ3Y/3xoHQHO6As=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"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"},"main":"lib/index.js","engines":{"node":">=4.0.0"},"gitHead":"06d36cf3a619cab20b08608204cb7ea9bddaceab","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"6.13.7","description":"utils for webpack loaders","directories":{},"_nodeVersion":"10.15.2","dependencies":{"json5":"^1.0.1","big.js":"^5.2.2","emojis-list":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^21.2.1","eslint":"^5.11.0","prettier":"^1.19.1","coveralls":"^3.0.2","standard-version":"^4.0.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_1.3.0_1582131976553_0.24423840167567645","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"loader-utils","version":"1.4.0","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.4.0","maintainers":[{"name":"d3viant0ne","email":"wiens.joshua@gmail.com"},{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"michael-ciniawsky","email":"michael.ciniawsky@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"c579b5e34cb34b1a74edc6c1fb36bfa371d5a613","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz","fileCount":15,"integrity":"sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==","signatures":[{"sig":"MEUCIQC591VA2ak+2/+yNr5g2zgs2bs1Xzkbrry2NB8ldDTo3wIgZjHgwGAPRd7zS1VM/lsiwE2zRcHmnmIdDDje2NbWQsM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"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"},"main":"lib/index.js","engines":{"node":">=4.0.0"},"gitHead":"d95b8b53f0ad547133b47ac8226f735c479f76de","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"6.13.7","description":"utils for webpack loaders","directories":{},"_nodeVersion":"10.15.2","dependencies":{"json5":"^1.0.1","big.js":"^5.2.2","emojis-list":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^21.2.1","eslint":"^5.11.0","prettier":"^1.19.1","coveralls":"^3.0.2","standard-version":"^4.0.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_1.4.0_1582133602049_0.6698382604953661","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"loader-utils","version":"2.0.0","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@2.0.0","maintainers":[{"name":"d3viant0ne","email":"wiens.joshua@gmail.com"},{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"jhnns","email":"mail@johannesewald.de"},{"name":"michael-ciniawsky","email":"michael.ciniawsky@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"e4cace5b816d425a166b5f097e10cd12b36064b0","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz","fileCount":15,"integrity":"sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==","signatures":[{"sig":"MEYCIQDEHQ3vXgRgwHsBqs3XOUvq0ZwfpzRTD3IqxW4gPZ1agAIhAKuUI37uF1ps5Y72G4BtDVlbqSk1X30YN1pnpH+5T5rG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"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"},"main":"lib/index.js","engines":{"node":">=8.9.0"},"gitHead":"d9f4e23cf411d8556f8bac2d3bf05a6e0103b568","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"6.14.2","description":"utils for webpack loaders","directories":{},"_nodeVersion":"10.15.2","dependencies":{"json5":"^2.1.2","big.js":"^5.2.2","emojis-list":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^25.1.0","eslint":"^6.8.0","prettier":"^1.19.1","coveralls":"^3.0.9","standard-version":"^7.1.0","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.2"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_2.0.0_1584445095416_0.02652315978988473","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"loader-utils","version":"3.0.0","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@3.0.0","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"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"dfcd9d1101bc4512d4956e1d5d67577c647b47fe","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.0.0.tgz","fileCount":8,"integrity":"sha512-ry4RE7qen73BFLgihlbyllGIW9SVWLUD5Cq9VWtzrqhntOMOJl8yEjA89d5mCUTT0puCnHo4EecO6bz+BOAS8w==","signatures":[{"sig":"MEUCIBVI/5twlfPjeSNYz2I7G1weSJEHgTwl21CJe/6w2Mx3AiEAgST1FlrkY+CEm8EiKRMmJEs1PNEahcaOAsL2PP5LNx0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21081},"main":"lib/index.js","engines":{"node":">= 12.13.0"},"gitHead":"e1e9f895df7802a859a0e627081fc8fb5ddd7c86","scripts":{"lint":"prettier --list-different . && eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"7.24.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"12.22.7","dependencies":{"big.js":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","eslint":"^8.0.1","prettier":"^2.4.1","coveralls":"^3.1.1","standard-version":"^9.3.2","eslint-plugin-node":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_3.0.0_1634739101267_0.09111287940336044","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"loader-utils","version":"3.1.0","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@3.1.0","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"5d6583148713e4c022b3dac9daac0efd9b6bca42","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.1.0.tgz","fileCount":11,"integrity":"sha512-7YF6k8Q9xXFHkQhVaX76PyJVAIcPAKNk+7zJs5w2k/wVqkb8uq8O6MIWuY50BkuinY2WD5Ugmpu0oVipDexFkQ==","signatures":[{"sig":"MEUCIQCqkmSBUEANRj4pA9C5kTk9zOlGCQD54SBaTphB0eA1jAIgD0CGGZYRReq5Rs8re9CkuqioxnG8wLkm0i6pO1xInbk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26303},"main":"lib/index.js","engines":{"node":">= 12.13.0"},"gitHead":"f764aa5050b3c63bc3aff306c081e0b70acb889b","scripts":{"lint":"prettier --list-different . && eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"8.1.2","description":"utils for webpack loaders","directories":{},"_nodeVersion":"12.22.7","dependencies":{"big.js":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","eslint":"^8.0.1","prettier":"^2.4.1","coveralls":"^3.1.1","standard-version":"^9.3.2","eslint-plugin-node":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_3.1.0_1635513480499_0.7658417251639804","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"loader-utils","version":"2.0.1","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@2.0.1","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"3b8d4386f42378d6434d32d7bc08e7a52d39575e","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.1.tgz","fileCount":17,"integrity":"sha512-g4miPa9uUrZz4iElkaVJgDFwKJGh8aQGM7pUL4ejXl6cu7kSb30seQOVGNMP6sW8j7DW77X68hJZ+GM7UGhXeQ==","signatures":[{"sig":"MEQCID1WTESCohPwr+Dd8NjDT3kd+H48939CyWIhBrUJnD7xAiBnyMLS9zYRCgzncO0zfwGSfhGQcxff90rpdwaXfVSczQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38474},"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","engines":{"node":">=8.9.0"},"gitHead":"5fb556208426d281a18dfbf6f45dca24bfb24e96","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"6.4.1","description":"utils for webpack loaders","directories":{},"_nodeVersion":"8.16.0","dependencies":{"json5":"^2.1.2","big.js":"^5.2.2","emojis-list":"^3.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^25.1.0","eslint":"^6.8.0","prettier":"^1.19.1","coveralls":"^3.0.9","standard-version":"^7.1.0","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.2"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_2.0.1_1635515318079_0.9793538614180066","host":"s3://npm-registry-packages"}},"3.1.1":{"name":"loader-utils","version":"3.1.1","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@3.1.1","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"40cc0458433d61905ab2d50adb8e9e1869fcf59b","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.1.1.tgz","fileCount":13,"integrity":"sha512-81jD+0RcbHha8E0hGkIicXBw+9t2DsiiiEG1Fxrqvl4q7/G4a9o6iFuJU4IffFT0J95skGlEMQIMXFUQsFl3xQ==","signatures":[{"sig":"MEUCIQCPn/JNAgIdjaJSTL8tqlLHLxVB88kX2sH5ir3Opq7EAQIgG/oYVo2DnbEENRLxgU2XwnZcUZMvD0bNKpSHn3mTTmw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31077},"main":"lib/index.js","engines":{"node":">= 12.13.0"},"gitHead":"5ecf7da5c17e4ea731762fface1d2d42456a8a05","scripts":{"lint":"prettier --list-different . && eslint .","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"yarn test:only","test:only":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"8.1.2","description":"utils for webpack loaders","directories":{},"_nodeVersion":"12.22.7","dependencies":{"big.js":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","eslint":"^8.0.1","prettier":"^2.4.1","coveralls":"^3.1.1","standard-version":"^9.3.2","eslint-plugin-node":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_3.1.1_1636036185318_0.18646562391673172","host":"s3://npm-registry-packages"}},"3.1.2":{"name":"loader-utils","version":"3.1.2","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@3.1.2","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"1b3d119d60f367d47ca785e465d85b4f76f59c63","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.1.2.tgz","fileCount":13,"integrity":"sha512-iDKsaIUSTJPi+5AUMQPnCco5XacIY3W2Vyz9oW4GEAiPEJjb5F8J2famQczYBbmcSO+cgZokeGWJJ46cDNyMOA==","signatures":[{"sig":"MEUCIQD/RHGnIoH5a7etWBL8vc20LR75Xq6W2SsWlHGWxNUmZgIgPVuK7IR2XuMPu6uaubjF7FNgQMnx48f5elVZLvxJV1I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31072},"main":"lib/index.js","engines":{"node":">= 12.13.0"},"gitHead":"097f5c3b2ce1bdffac5c74f9a8be34461da319f2","scripts":{"lint":"prettier --list-different . && eslint .","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"yarn test:only","test:only":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"8.1.2","description":"utils for webpack loaders","directories":{},"_nodeVersion":"12.22.7","dependencies":{"big.js":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","eslint":"^8.0.1","prettier":"^2.4.1","coveralls":"^3.1.1","standard-version":"^9.3.2","eslint-plugin-node":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_3.1.2_1636037207812_0.9892909878983134","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"loader-utils","version":"2.0.2","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@2.0.2","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"d6e3b4fb81870721ae4e0868ab11dd638368c129","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz","fileCount":17,"integrity":"sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==","signatures":[{"sig":"MEUCIGrLNOQhSAiztnws5gopnS3kPeieOoQAwXzhLg5Q3UgHAiEA0q5ciAPiBU3JsBVBiB/pGbpSw7IWEET2ZNttaMJuRBw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36311},"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","engines":{"node":">=8.9.0"},"gitHead":"90c7c4be17e3e0b2f6091a69c67db7a6df9fd044","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"8.1.2","description":"utils for webpack loaders","directories":{},"_nodeVersion":"12.22.7","dependencies":{"json5":"^2.1.2","big.js":"^5.2.2","emojis-list":"^3.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^25.1.0","eslint":"^6.8.0","prettier":"^1.19.1","coveralls":"^3.0.9","standard-version":"^7.1.0","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.2"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_2.0.2_1636038473921_0.9034516573093578","host":"s3://npm-registry-packages"}},"3.1.3":{"name":"loader-utils","version":"3.1.3","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@3.1.3","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"bd56dd5f8cc7b94c4f3cb0512be58126219253e8","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.1.3.tgz","fileCount":13,"integrity":"sha512-iQeN+4aRVLiJU1J2BNTRg2cjhuFXWUX9DmvTDDtuwAm+ye6cMpUTLaPZmCFlZOrcDg93C9a17e/Hr+nQ9lquYw==","signatures":[{"sig":"MEYCIQDqS0tPzX+N+gO2A9dGjcu/gSRqNsVTO6JsgXhBT4pJnQIhAL3DWGWBZfKJuUxUwJLmZwTnddSro8SpQDd1UIZhDrIe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31173},"main":"lib/index.js","engines":{"node":">= 12.13.0"},"gitHead":"f7dbfe105094027e2a7fe5e8babb016ecab16239","scripts":{"lint":"prettier --list-different . && eslint .","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"yarn test:only","test:only":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"8.1.2","description":"utils for webpack loaders","directories":{},"_nodeVersion":"12.22.7","dependencies":{"big.js":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","eslint":"^8.0.1","prettier":"^2.4.1","coveralls":"^3.1.1","standard-version":"^9.3.2","eslint-plugin-node":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_3.1.3_1636039404009_0.7344032499332294","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"loader-utils","version":"3.2.0","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@3.2.0","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"bcecc51a7898bee7473d4bc6b845b23af8304d4f","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz","fileCount":13,"integrity":"sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==","signatures":[{"sig":"MEYCIQC66Ggq1DztcTB8dT5T+phDRDCSJLpH1Mf0VWbOWEt1/QIhAOw1o0SgP1+kDKMQ4Itcfm+OIvTdQpNqoTbU+jQig9TN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"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"},"main":"lib/index.js","engines":{"node":">= 12.13.0"},"gitHead":"a282654ddfa0a8c9c770db1adfa064e671bcf471","scripts":{"lint":"prettier --list-different . && eslint .","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"yarn test:only","test:only":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"8.1.2","description":"utils for webpack loaders","directories":{},"_nodeVersion":"12.22.7","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","eslint":"^8.0.1","prettier":"^2.4.1","coveralls":"^3.1.1","standard-version":"^9.3.2","eslint-plugin-node":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_3.2.0_1636645371843_0.5103912647130415","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"loader-utils","version":"2.0.3","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@2.0.3","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"d4b15b8504c63d1fc3f2ade52d41bc8459d6ede1","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz","fileCount":17,"integrity":"sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==","signatures":[{"sig":"MEQCIBtBbsI8XkrBo7Pleuyc8OTiIrOSdOhft+pH+OTYUfgqAiBuXqDLk0nC1aXxNbG/ZaBLdnOh8OYZjT1DmqGPTKtwgw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36328,"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"},"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","engines":{"node":">=8.9.0"},"gitHead":"7162619fb982c394ed75098a0a0ed7e7f3177c70","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"8.15.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"18.7.0","dependencies":{"json5":"^2.1.2","big.js":"^5.2.2","emojis-list":"^3.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^25.1.0","eslint":"^6.8.0","prettier":"^1.19.1","coveralls":"^3.0.9","standard-version":"^7.1.0","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.2"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_2.0.3_1666296023515_0.2740441862219558","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"loader-utils","version":"1.4.1","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.4.1","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"278ad7006660bccc4d2c0c1578e17c5c78d5c0e0","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.1.tgz","fileCount":14,"integrity":"sha512-1Qo97Y2oKaU+Ro2xnDMR26g1BwMT29jNbem1EvcujW2jqt+j5COXyscjM7bLQkM9HaxI7pkWeW7gnI072yMI9Q==","signatures":[{"sig":"MEUCIQDXEnwJQebU5KLsMQUH8TqUUj9TTGUAW+8MfyUSKdQZLAIgWi8fQt9kcgY6jS8du2FzRXgxVqsTE5+eqemkyTxIO5w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25853,"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"},"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","engines":{"node":">=4.0.0"},"gitHead":"8f082b39f6903929f30fe29dab34f4d9c7ef070a","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"8.15.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"18.7.0","dependencies":{"json5":"^1.0.1","big.js":"^5.2.2","emojis-list":"^3.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^21.2.1","eslint":"^5.11.0","prettier":"^1.19.1","coveralls":"^3.0.2","standard-version":"^4.0.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_1.4.1_1667853772735_0.38144366630236837","host":"s3://npm-registry-packages"}},"3.2.1":{"name":"loader-utils","version":"3.2.1","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@3.2.1","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"4fb104b599daafd82ef3e1a41fb9265f87e1f576","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz","fileCount":13,"integrity":"sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==","signatures":[{"sig":"MEQCIHw7+OvcRyNfmz5t00OBz3M/epXcfojPS9U4ZFssmMs7AiBczd0g32ORMCiVSqMaq/ZbkAvU+t+IDiZ7yVTo/ePSew==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31938,"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"},"main":"lib/index.js","engines":{"node":">= 12.13.0"},"gitHead":"a3fd3ca1a5287d217a2370b0902997544e6b9aa9","scripts":{"lint":"prettier --list-different . && eslint .","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"yarn test:only","test:only":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"8.15.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"18.7.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","eslint":"^8.0.1","prettier":"^2.4.1","coveralls":"^3.1.1","standard-version":"^9.3.2","eslint-plugin-node":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_3.2.1_1668126348792_0.5578079529035329","host":"s3://npm-registry-packages"}},"2.0.4":{"name":"loader-utils","version":"2.0.4","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@2.0.4","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz","fileCount":17,"integrity":"sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==","signatures":[{"sig":"MEUCICNab0KXueyp+u2PNOIHLIMWdeekcXYfz6Dqia1z0pSeAiEAmrGS4TWSGncRtM0769fOgzVcXqH+n9aD0kHvlh7WiQE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36329,"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"},"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","engines":{"node":">=8.9.0"},"gitHead":"6688b5028106f144ee9f543bebc8e6a87b57829f","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"8.15.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"18.7.0","dependencies":{"json5":"^2.1.2","big.js":"^5.2.2","emojis-list":"^3.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^25.1.0","eslint":"^6.8.0","prettier":"^1.19.1","coveralls":"^3.0.9","standard-version":"^7.1.0","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.2"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_2.0.4_1668126726011_0.07217711872001775","host":"s3://npm-registry-packages"}},"1.4.2":{"name":"loader-utils","version":"1.4.2","author":{"name":"Tobias Koppers @sokra"},"license":"MIT","_id":"loader-utils@1.4.2","maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"dist":{"shasum":"29a957f3a63973883eb684f10ffd3d151fec01a3","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz","fileCount":14,"integrity":"sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==","signatures":[{"sig":"MEQCIE4CxnY0DK6x5Fj3ULkCTGmpPj2Kzx2SvQifni1ilIHxAiA27RYteLXst7g10uN9G4/N7xEpuKLUSvY5ae271yeDCA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25854,"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"},"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","engines":{"node":">=4.0.0"},"gitHead":"331ad5067d9a1a7b8d646692e6959639969210d1","scripts":{"lint":"eslint lib test","test":"jest","pretest":"yarn lint","release":"yarn test && standard-version","test:ci":"jest --coverage"},"_npmUser":{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},"repository":{"url":"git+https://github.com/webpack/loader-utils.git","type":"git"},"_npmVersion":"8.15.0","description":"utils for webpack loaders","directories":{},"_nodeVersion":"18.7.0","dependencies":{"json5":"^1.0.1","big.js":"^5.2.2","emojis-list":"^3.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^21.2.1","eslint":"^5.11.0","prettier":"^1.19.1","coveralls":"^3.0.2","standard-version":"^4.0.0","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loader-utils_1.4.2_1668126910035_0.6726900818748616","host":"s3://npm-registry-packages"}},"3.2.2":{"name":"loader-utils","version":"3.2.2","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","_id":"loader-utils@3.2.2","gitHead":"977b28d58f5b7d38e08f622cadf69879d3b362c4","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-vjJi4vQDasD8t0kMpxe+9URAcgbSuASqoj/Wuk3MawTk97LYa2KfdHreAkd1G/pmPLMvzZEw7/OsydADNemerQ==","shasum":"dc154c005c65974dab413195c16cd246f545aecb","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.2.tgz","fileCount":13,"unpackedSize":31941,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICwxqgRwQ840Si7mweyjOnfrtKB7MHOEnKMUGvF8YWzLAiEA2jn3SQKUuUr4w0UeOD+czUkEBQY/OG1t+Z/9eAeCaTk="}]},"_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.2_1717002532698_0.33524940983135654"},"_hasShrinkwrap":false},"3.3.0":{"name":"loader-utils","version":"3.3.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","_id":"loader-utils@3.3.0","gitHead":"2d6ed3c9ad15dae933737718244088a7030999f7","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-LugZ5wJCsACYzc728QQ5J3SJ7G+3P6cLuFfdwWJRhOrJMkBMPIx5tDCT9Q9H99jTJIBddEywMrxNliGYqU4qRw==","shasum":"cc9b0c6413a97ecf3be026ac4322ed32bd36f2fa","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.0.tgz","fileCount":13,"unpackedSize":32137,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXQ7fhnsyb9Y9iFHhTceq9ljFYQR7w8MUgyemTNjN8/QIhANV4t9lsw54UsKgB4ODVtz02/OCO/NNc8y/MfiRggkuZ"}]},"_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.3.0_1717523142616_0.4470607040257617"},"_hasShrinkwrap":false},"3.3.1":{"name":"loader-utils","version":"3.3.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","_id":"loader-utils@3.3.1","gitHead":"06fcc0aac9928779d5e2e0fdc58dddd5d4c49ea3","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"homepage":"https://github.com/webpack/loader-utils#readme","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==","shasum":"735b9a19fd63648ca7adbd31c2327dfe281304e5","tarball":"https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz","fileCount":13,"unpackedSize":32146,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2+pkSwx6QsCbeW4cuyi1MgJKP0SKRWjVN8F7212HjMAIhAOZmj6hcPuQc8Jya3tkei29ny5hzonkYn9EfjTOgY3rx"}]},"_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.3.1_1717600443642_0.6784973981944029"},"_hasShrinkwrap":false}},"time":{"created":"2012-11-02T09:04:48.557Z","modified":"2024-06-05T15:14:03.982Z","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","3.2.2":"2024-05-29T17:08:52.935Z","3.3.0":"2024-06-04T17:45:42.825Z","3.3.1":"2024-06-05T15:14:03.780Z"},"maintainers":[{"name":"evilebottnawi","email":"sheo13666q@gmail.com"},{"name":"sokra","email":"tobias.koppers@googlemail.com"},{"name":"jhnns","email":"mail@johannesewald.de"}],"author":{"name":"Tobias Koppers @sokra"},"repository":{"type":"git","url":"git+https://github.com/webpack/loader-utils.git"},"license":"MIT","homepage":"https://github.com/webpack/loader-utils#readme","bugs":{"url":"https://github.com/webpack/loader-utils/issues"},"readme":"# loader-utils\n\n## Methods\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(\n  loaderContext,\n  name,\n  options\n);\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- `[contenthash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the `xxhash64` hash)\n- `[<hashType>:contenthash:<digestType>:<length>]` optionally one can configure\n  - other `hashType`s, i. e. `xxhash64`, `sha1`, `md4` (wasm version), `native-md4` (`crypto` module version), `md5`, `sha256`, `sha512`\n  - other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`, `base64safe`\n  - and `length` the length in chars\n- `[hash]` the hash of `options.content` (Buffer) (by default it's the hex digest of the `xxhash64` hash)\n- `[<hashType>:hash:<digestType>:<length>]` optionally one can configure\n  - other `hashType`s, i. e. `xxhash64`, `sha1`, `md4` (wasm version), `native-md4` (`crypto` module version), `md5`, `sha256`, `sha512`\n  - other `digestType`s, i. e. `hex`, `base26`, `base32`, `base36`, `base49`, `base52`, `base58`, `base62`, `base64`, `base64safe`\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\n`digestType` with `base64safe` don't contain `/`, `+` and `=` symbols.\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.png\"\nloaderUtils.interpolateName(loaderContext, \"[sha512:hash:base64:7].[ext]\", { content: ... });\n// => 2BKDTjl.png\n// use sha512 hash instead of xxhash64 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(\n  buffer,\n  hashType,\n  digestType,\n  maxLength\n);\n```\n\n- `buffer` the content that should be hashed\n- `hashType` one of `xxhash64`, `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`, `base64safe`\n- `maxLength` the maximum length in chars\n\n## License\n\nMIT (http://www.opensource.org/licenses/mit-license.php)\n","readmeFilename":"README.md","users":{"chaoliu":true,"ttionya":true,"yanghaojyhangdian":true}}