{"_id":"@digitak/grubber","_rev":"19-5687917ad6ee8995715480bce14a70b5","name":"@digitak/grubber","dist-tags":{"latest":"3.1.4"},"versions":{"1.0.0":{"name":"@digitak/grubber","version":"1.0.0","description":"Parse code files and patch it without having to use an AST","main":"library","type":"module","scripts":{"test":"esrun test","build":"esrun scripts/build"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@types/node":"^14.14.37","@digitak/esrun":"^1.0.8","fartest":"^2.1.5","typescript":"^4.2.4"},"gitHead":"8c14d99293356c627f3f41876f6838a86e119819","_id":"@digitak/grubber@1.0.0","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-FeWGZA8zRLrMypXQRHdIEg3nbpKQSldXEt6d9KC8zCt6/cjHAsXbeS3/3ytXZZqeZP6XEH+IEB2cvkbPLRInRg==","shasum":"980f34c3fbcce04d6fe66d2ff4d7775cd11c1736","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-1.0.0.tgz","fileCount":39,"unpackedSize":29781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeWFtCRA9TVsSAnZWagAAnigQAILAT9Mnv14N19w23IuT\n2RvEklDyymndlo13Gb8wBOxLrp5L8rBL9M4vH3cdtpoyx4/AEr5zfwAwdC/v\nbjAOtZ+Ji2UmcYT9LDYyeEKzE/OcDfmaVNgfwj1r24dsZLBXCGYhg3qm66ez\nrYYRauGT4rR/e+TCPgmLHUYxvLvMLPvmnTctBGlDUXlrKM+auRPdfgC1ZqMP\nzgVWzD7+B7iO9GmQ17CMydo3qqo01v+K8AUxE1fbmYZS6uiTvWqpIXKyYQwk\nqXn2okSXMgqwqR4qjpuFw8I+s5CkleoeRSBu7hUw6AlzEea4cJ1rvW2SYV1h\nGGGLGOfKpq2nnCalXj0mtEnSajOkO0qq9eZ+JscJ0UbJhZ8IsGfkKuKcKq0L\nuGF7B2AtbGAy84beCj//DLGXXJqF/L7Tz6HDfVDicCta8jnhVhGpT1y9t1V5\nlh2IQtBLufp0rBSbQKnM0o2przrmSw5+TtkREJlzG2JI3gIxQDSd76Rwed2n\npYc2xGP8/M/XNOuyTMqo7WXYUGvoeauhT1n7DwkaF7DZSnH/DFAx9GHgW9A1\nHVufTczFBB6GX30Hmr/tFG5qg/5uYG2M9m24yAcS2F/dJKyOLvpiccthgDhL\nWPfjwxN0cS6UjvrWn54CBroIMAsLa3aoM/mRcdJyZ45Qj1JxQZNAu6yXkMs3\nqezU\r\n=L6jP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9eNJxyf0tGVntcduv+MQt2YIjIUFYfs31e3xNV7aKQwIhAJ5E2o2jEfQ/8xk6BT9nAPZ8wdecRpabA0t+YKGSygh0"}]},"_npmUser":{"name":"lepzulnag","email":"gindre.matthieu@yahoo.fr"},"directories":{},"maintainers":[{"name":"lepzulnag","email":"gindre.matthieu@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_1.0.0_1618567533080_0.11067428387746725"},"_hasShrinkwrap":false},"1.0.1":{"name":"@digitak/grubber","version":"1.0.1","description":"Parse code files and patch it without having to use an AST","main":"library/index.js","type":"module","scripts":{"test":"esrun test","build":"esrun scripts/build"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@types/node":"^14.14.37","@digitak/esrun":"^1.0.8","fartest":"^2.1.5","typescript":"^4.2.4"},"gitHead":"35be57b26f6467fb8ccff34e32fcdf07f911e0d5","_id":"@digitak/grubber@1.0.1","_nodeVersion":"10.24.0","_npmVersion":"7.7.2","dist":{"integrity":"sha512-urn7hk3+AN8Dx+wHnq7+gubbqZWqppcmh2DH2ubNEn/mcmbP6hH1hsG9F1anuOtJ5DrizQLou+UCUe4xZMJmUw==","shasum":"f7467835d3ff9f022ba93b84c16f7d357971e20f","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-1.0.1.tgz","fileCount":39,"unpackedSize":29886,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfBEWCRA9TVsSAnZWagAAERwQAJ2CNmVt00BEjxhZhkFe\nKo94/JMgWDTTEmpZXsav+I55dzEm4tjBMsGw6iZapmVzB0sLFEH4PGNwUDyI\nprVZvGP4GqDnuEdPlx02zyD/vPbms/lOPsPmu7xwkD4kZtvnqXG7VmW8iLTm\nYosNGgVc/GTxH135859qlSuK/2JHyiiYdZaLH1o7Lv8D82c5CmCz+vv7rYfZ\nXFqrSyKwUQbneGkrSbOQ9WFv8HELigs8jSSvs69EzI+3+N+HAybjloVsdhus\nHjEtYEhdnPUxCqRxiQ3WeAQZzwD/hOxLRjwy//fuoQ3jusXaez3oTBicmcLJ\nSeN2XAbx1w5KddHbNnRqzEkcjUhYBZhJAqdTN813ioNdlnOXsPMsYfDd6vN5\n3+Lpg8bu6kRhYBZ9RoJQMub85H4D9G9VI6njT8PxPjaoKKFgRu7HEAbbarWA\nDmkW+ALX+cGOhYBEHV7ZQppZxei/GJ6mLk8dkR6LesHfQzY1h8qZi5XhdWqj\nwGf13tlevFhmhw9cPUCmiQuh5QvOUGK4WlHUjUZIe4kjs3AbZkunTgUxH01D\nOV8LZ5E9/EpQOlLn3SoSVPfCmRb5gbuktCm/p/8/ZvrnIGDHHfXvmaL0nz8C\np+O4e65sCfdxhsEUXiAnXy5l7KZ0nubamXTam7gc2Edo/Vl1s9c04VC0rUzB\nJVFM\r\n=8Uyu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE0KxIUoyH4a4esF0bu0He+SkAPMixflmZbE+SbznUf1AiEAr3syhx+6eWr0kL+5NsPm5BUdLZQ58Rh4yYPlByM8ss0="}]},"_npmUser":{"name":"lepzulnag","email":"gindre.matthieu@yahoo.fr"},"directories":{},"maintainers":[{"name":"lepzulnag","email":"gindre.matthieu@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_1.0.1_1618743573595_0.12532609405762485"},"_hasShrinkwrap":false},"1.0.2":{"name":"@digitak/grubber","version":"1.0.2","description":"Parse code files and patch it without having to use an AST","main":"library/index.js","type":"module","scripts":{"test":"esrun test","build":"esrun scripts/build"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@types/node":"^14.14.37","@digitak/esrun":"^1.0.8","fartest":"^2.1.5","typescript":"^4.2.4"},"gitHead":"7789101ffa6a6f4bf9b354537caf2af14b4b2fd5","_id":"@digitak/grubber@1.0.2","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-cufCjWJh9MEsdMZgg4MAyUYtLdwboyiqIYir+/zroxWQ9XFqrYLin/tj1eJuH3UyW2qoy5RWXF4TbteDZ3zd7Q==","shasum":"342830686ed43d072e6cf4c2447f72bd9acbc34a","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-1.0.2.tgz","fileCount":39,"unpackedSize":29886,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfB9+CRA9TVsSAnZWagAAKTcP/3INJZvoa+9YpBYoBSJh\n9SOFonroaqtyurd3Rcu+7N2jL8Vb7KFMO3rGt3X94k5nAOA0V3Xp5eqLLwtL\nez92gYepiYSZQRoxNCDMLG9il3NSqExLgK43a9Ebj9PNXjBVSCjtNtAue6iI\nLJi82nUPshm1CBjZkzfm0S0LJfNEqEXvncYKEYBbRAUWhC5hpCX2C4zFNal/\ntnvUl/2CjNxdhl3lrv4YA/kvQV6RtPpR+r0BiLIeKrQ6O/+rrfMStqiYfyIJ\n1mYDPw+fMELlaART8uOUwwHMU0ff4ptFn5+RXpiMtrebvNEv1VFr7oQGQfB9\nb4nZ3CulXZPr3RKRAPRk/Fwcx6gcA24z2rLuf393404jFDcmssZCn/XbcJ41\nit2Mw9HXD3QJYHFknPDI3OdQnQYPkyGr4MZIbGsv1Z87Ghv+VW/jgr+E7Cj5\nQmHbH6FgBlVwt+vwHKdhs50hctanoRYzz48NAAh/fl3TcBEMXsN1up9jSnno\nioSiVdG0CFVnaf4S6D39+mGpruF9H5EvqqhXqo7mJx+KPdGXnOSPgnqVVPWT\nBM5R+4LqGvG3mw8WnpAwBlHGZ44vp/LPf5qGck5rFUJFLLzpZw7I3vBJYMqU\nVilhmHS3I8nkHZI9S6nMu/9WNUJ9GpTOSWB58z+MujWkIs7TPE0JtkpU/Vj2\nXlFZ\r\n=H5rX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBGkUORnlQ5crtBEqzssF77hJtXxcys/gQ/cxcDL0+rrAiEAg3B2strtYbKT2NxEzsq3VIMd5a/nHD9TR1a23Pt6q64="}]},"_npmUser":{"name":"lepzulnag","email":"gindre.matthieu@yahoo.fr"},"directories":{},"maintainers":[{"name":"lepzulnag","email":"gindre.matthieu@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_1.0.2_1618747262008_0.7784123755024663"},"_hasShrinkwrap":false},"1.0.3":{"name":"@digitak/grubber","version":"1.0.3","description":"Parse code files and patch it without having to use an AST","main":"library/index.js","type":"module","scripts":{"test":"esrun test","build":"esrun scripts/build"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@types/node":"^14.14.37","@digitak/esrun":"^1.0.8","fartest":"^2.1.5","typescript":"^4.2.4"},"licenseText":"MIT License\n\nCopyright (c) 2021 Digital Loukoums\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@digitak/grubber@1.0.3","dist":{"shasum":"2e079349beb25f74151729ba36d2b9d975911f65","integrity":"sha512-CD24zO8BpOjcxq1sIx1xweoBxtm8lJ/kmapsJI4aWnASmJ8tBuIPt3U/yBsyYEl/OLJYjmvilMZ6meIHtm4d7w==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-1.0.3.tgz","fileCount":43,"unpackedSize":30220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoWfxCRA9TVsSAnZWagAAlR0P/3O4poPX+rJCJ/4hyg4w\nVGdVvya92xXe67o8LtYePPb/jcd+vRpE6EY6iRcnmW0fMdnIpX789bubTPle\njol+0zpg+IyydkAszL1vNk4bMwfEqslMrW1jIPa5LbDwSJYzwHDei6lGXm35\nkWJAymeN8EonsxPSvqkLIKXVnZY6CZXm1MfmvG2MVaPa7aDCq6Y9c5LkWw4W\nXbuMZetO0qybwZwKgdwc8ftC/nf3gjmOH0ZddkMOXXf9uD2u93+tCq399etw\nyk1wolLNOvbFxtVMAmz2s+1/pCweQlv0elvBbQQz1fDRTSH96ivJS1Aorjgr\nZHKYM1Na1soxjC/mc/LqT5PnuoSfuvh5J6of6UlZNL4z0r7BhFz/R0FEmIh7\nKVq+XTt4S1hL85KmGmEO7aRL2O+VNlMhKl15rTgmZqUv+TcjBVAclase2fNP\n4F4OXQ+1bx+GQ8SNOXyZ9O1FaV7Dgw0CU9/R0ZckOkZjImsS/DpVyFOHW5zJ\nragxlBaJNPoNiUJ0l7wnmuxESoSQDHOEnSPp0AmTSOS57TsSz8Ra+2sv+SLv\nUGuH6MI8OhIbONFNKBWjAeCLFZ80LgOOZRy9w+k3VgLj43ZYaJq9qRFqkRx8\nskVXBrtke66IwO7vFblKNt5OHkz1uiaa3JheYtfJkYwD8IcmGiz/wfwYv28n\nm7mP\r\n=9iZY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8pglW2hlkoFUtJMa+RGMi7ecLrFO3/bLgZsw9bXafLwIhANf5c5foyRZ7i57MMruXjSyIIGkCSWsVouizBIYzNf0q"}]},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_1.0.3_1637967857298_0.8307759019668528"},"_hasShrinkwrap":false},"2.0.1":{"name":"@digitak/grubber","version":"2.0.1","description":"Parse code files and patch it without having to use an AST","main":"library/index.js","type":"module","scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@digitak/esrun":"^1.0.8","@types/node":"^14.14.37","fartest":"^2.1.5","ncp":"^2.0.0","typescript":"^4.2.4"},"licenseText":"MIT License\n\nCopyright (c) 2021 Digital Loukoums\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@digitak/grubber@2.0.1","dist":{"shasum":"e93a6141d47a59a9c8f4fd82c7ea16e87b2582da","integrity":"sha512-3wc4MxyVhI0pt8d4M1hheIr0ZLXjhBRPOyJh61DAqwY/tF+my8ThOfT2apsiAkoSyh2YP6PpiUPxhzmdtJM3bw==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-2.0.1.tgz","fileCount":45,"unpackedSize":31154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhohRxCRA9TVsSAnZWagAAlrMP/3oQdGTPDtki19Kn+lgD\nNiJ4PRCweNKRb9PvPaJVQ/Dcb7OqBo2gzYKrHfKOJrRv2VSxAcf2KKyKjWzW\nFXJxz09QXqIbBdZehwzgUZYM90YF30h5M1RQ0vm/OtXW/oMihXJtMJJv0eAo\nHnHoP91AjLQBDMCR2HC4mceN581a3lUzFPp2Y/SDZY4VQPRPcaq/QqkylB7z\nu2BnXnTHr61Pwa+2EguWEiolHoeZhd4M6GOEeJBA/cWbL6HDNtgZaRMQrQpq\npen8wPKuoMSOoa/TYmEaOpaMGPbwKLujchFAtokCQVw4XFG8OCGWE4FM3bKw\nG5sxe0bjVe5uGVUaQuEurG0RXmH4+VtcjBDgQbx0BuZaplHO5IkTcHnofgRe\nNlkZd+FjbUNxVLLpa33uC/LwMjs/WKnttKqDEVuaIWLLlzYBESFpbOrHLaLJ\nPj3RdjCoionn2gwKGyhFdCreMSJ4BNTVJt0X3/4S0S2MLg7wEi1O1CBvFw4o\nxpFkyKUuw6K14CR1vtUT3kZyj1IL/k/GsLNCmizhq5pbDMJSSwmldToZMSxE\nBrIW/PBLTPF6UsqB2uLUQyHaaxpcm5UbGQHFyG1+MtFEmo93R62VpU1gICtU\nOarTRoqjghzjvZi8FTRR0IavQTRoykPhFWV/M98nXYj6g9ANBzOSOATlb2b6\nZVdx\r\n=O9IE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqpwN0GxpaAFpSB0eDyldejBbg8Yp4yfpp+FSVVs5zZgIhAMZ0cW3eO4amr8Y0zoP/ZJ3s0NTjUs4v9ZgKZqp53dwd"}]},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_2.0.1_1638012017795_0.6009839857767161"},"_hasShrinkwrap":false},"2.0.2":{"name":"@digitak/grubber","version":"2.0.2","description":"Parse code files and patch it without having to use an AST","main":"library/index.js","type":"module","scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@digitak/esrun":"^1.0.8","@types/node":"^14.14.37","fartest":"^2.1.5","ncp":"^2.0.0","typescript":"^4.2.4"},"licenseText":"MIT License\n\nCopyright (c) 2021 Digital Loukoums\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@digitak/grubber@2.0.2","dist":{"shasum":"320c7a2870c8f3c93b8c98df8595cb5a72b548ff","integrity":"sha512-2j3doyfiQbV+6SeQQzVEX9bL/0Q6RI9KKBfpG4vmtCNQ8+3yaMd+5WOAXn878eLLN+bu2HiePmbirWtEl3EqBw==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-2.0.2.tgz","fileCount":45,"unpackedSize":31154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhospNCRA9TVsSAnZWagAA7g8QAIcdGOK+mqCPwbX/XvcB\n5V2jIUf7wWQsejUvtk38vQrji7Xot8fUYKlintSr3Ml2HWFq1ATZJME9iaX4\nzm3m9BUOaQsi1jMx+MRYkVZ4507nIj0aPf5NMZn02RrJVhu50LjF8CenY3V4\nVRN2nqc7iw4LxcRmMek9i9sZdeOVWeLXx8TK3Yf2HE631+LTI3YIBHhsAUMe\no2i/iYE2Hb5yVWq4TvrHn3mjfowJTQhwAbcUlEaalLgD7o8bxnQaWSNihtSQ\n9DOcupf0c1sAXlBrzmJMAUdWDXhE8C1lLpD2pH28BK5Bbr/frmUfzXgzliW6\nV+gSp4GR5uzavyrWewyyVSd72dg9HjGKQGHUhKB+OHoagPwLFLOhv2D+jdVK\nNNYbbugzyOM4+8KviVkq0JwaBBKi8fQjiW4Wa+OBypzxtneWzwbvSPcr/Dh2\nU92GstPUtpNCREiWPHzOmXjh2UG5+PL7DXPnzdG8OQbyvPUKDGNhzNVvjKs4\nK+M3vGTulh+jVj7pqLyctlbRo0ocvy0pNBx9TqaATTWzw8c6jKy1NqHvSk/R\nHCowpyhdvKGDGSqioOzs3OoiDi+KcgcpsurFhBQChMkK2MSTpoYfha75kpD7\nQw2JJNp5KG2tmbsfJXuwAggGQnKvuV18E98U0TEs8DFccQOIHhmdhxZoXpMI\naVdk\r\n=QVGT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICETSpEpJIOuB4jxWu3xstQZAXab3Vdy3mkRXmtl30UZAiAOPrk7Nc182DSnd+UgKBLdtsdFEY0JEKFn+V7SNeXFkQ=="}]},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_2.0.2_1638058573770_0.21544535806896814"},"_hasShrinkwrap":false},"2.0.3":{"name":"@digitak/grubber","version":"2.0.3","description":"Parse code files and patch it without having to use an AST","main":"library/index.js","type":"module","scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@digitak/esrun":"^1.0.8","@types/node":"^14.14.37","fartest":"^2.1.5","ncp":"^2.0.0","typescript":"^4.2.4"},"licenseText":"MIT License\n\nCopyright (c) 2021 Digital Loukoums\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@digitak/grubber@2.0.3","dist":{"shasum":"24e1bc22813f936aecb51cb268523be7506c4198","integrity":"sha512-PdbOacmRloppv4kwNfy6aNexx5NcVJC8mukoBpKJ9jHg9ZKn+10wpxr6tZtuY3TNkNHAKndXGLJiCiQvXJ7Yig==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-2.0.3.tgz","fileCount":45,"unpackedSize":31165,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhosx2CRA9TVsSAnZWagAAieQQAJD1Q4JQi0bhsbi2Sj0A\ntmnMgcT8qmyuYy7wHbQSFBIGZ4z0veDzU9I6ex5TjG7JPMLDTpLlTH26fAoS\nfbZw6g8sl93ed0ruVRGxYg04JeisR/jvJ7WDU2oF8OawfWwaGAAgK6ARnO31\nGTxr1gfK38jTa9r8Rd5JODjkhYdA4TEQMAiglgh2LTdS47wZhScVpCtrHxJD\nYn3FpSmXvFxhl8YJ+ztz8oKfwc5tNXBfvUl9H02hsytkQaZ3q/AXQK47l/G3\n14YKwkVEzeJeN6+PXbZizFiL97SDSrFAwGM0dIE4MwtWoYbm7ikFLeR98+R7\nHFZjyU04mJl1okReqOxVTlbLln4ThfTLjVgss0q1KnWMKno40AKLcU7wbPTi\nFrmqk3WCl2frS+zToHgh3bbG4U3ufS5ghx+5POvwmTA0cIJVEVG0vcTz85lQ\neq/aJkbdbhieU1Ygq97diF4iwvXBhoOrTHkc85kbBqfFXSnwatiZBwhLxtYd\nOpCNmyH0KvGmxo9Pncf3l/b2iEuWOciP6sUwPKCdFFPeRDLZKFY0Yt9dVxGw\nd4PSeDL66zmXdvp3+2rIZ2wjRVY5AInHJZxcoCdZKfjOi+ibX/ZVARJqrTAe\nvd8J5FfuJ1EKfv2f01i1NtVqGJjSz/scCAF0Cu3GyKW7UEjoL7g3KQloL6Rn\nY+As\r\n=Yj9+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDls6I5bB2Pb6pLfcnMgtIcg4+p2njxuewVIlcHp0RcWAIgB7R9srcJk2daanrn7hG43qsIBRr99mzZjQYAzzwIQCY="}]},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_2.0.3_1638059126716_0.7534667074687511"},"_hasShrinkwrap":false},"2.0.4":{"name":"@digitak/grubber","version":"2.0.4","description":"Parse code files and patch it without having to use an AST","main":"library/index.js","type":"module","scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@digitak/esrun":"^1.0.8","@types/node":"^14.14.37","fartest":"^2.1.5","ncp":"^2.0.0","typescript":"^4.2.4"},"licenseText":"MIT License\n\nCopyright (c) 2021 Digital Loukoums\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@digitak/grubber@2.0.4","dist":{"shasum":"51b3f03003b681b10c5ea9a58a492bab4e768f5e","integrity":"sha512-4mq2EqQ5WsM34fy5y/Z+LUr5I0xO6bNhwReTCnrDzhsuRtXKiGM+V2ZY1XdAjv4X9p+46kyUksp6W4xr9X1d6Q==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-2.0.4.tgz","fileCount":43,"unpackedSize":28682,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhotBhCRA9TVsSAnZWagAAhaoP/jzO9YLCjVOoRfci2bc4\n8YHeIV5bUXE/wsHo1c/dOVv9QPfRhPKkHLKLLUKNz7k/KtpWCYMgacH2KDwT\ndkoZkxcmNqQ50R84OA5nkuxhrpKsZL6f7mz0gpw9xGE8lCWUShrygswHQliQ\nAbRvwQO1sVinMVFvLH4vaSD9TLngKx9Y3poEu3rGoK+aGChBvKio9OnFhNHe\nWcoii8FDbga/5c+j/VL3uKnEqKyDFh2uy+TNHLfDl1PlvV01/w/gY5z4VMWW\nqnLeMAeVbeoPeYGKJuFp13Fu4jmiSa4HLOaqcP3Mf2ySHgrmwSYxcZ4RthYx\nyFX2DSB2yvM8DjnfhWSpym2HVASOv8ddZZQUUE4msJJbMBIbbMTsJwnNga6v\nS4XZLq8KupIxj+NXLx5AJSyXorJzKEY1m7sDaN7PbxN37Vh0U0qEcX0HgDC0\nL6K7JtQBX795svObub7vxBAeGR+HS/lnl+ByLT2QZ15KE0Qk/K7dd6Pcy/+K\n7Ej0ijIOu0b+TIfvC3hL+FK7FlWTA8AYXG6HaXFpZnJ6onqLvH7hd4lE8tCI\nANZfJOZHsMqFLz/K8j11cB/5RW9tZLnZg7Obur+H29gcMMQH1EMDLV1t6bsD\nhJBf/0Nx/BvM/dnzIClnPmt3LF6IiZFfWnTxZpnFef6LmqWkw1Sg2Ip/ytzx\nEGcI\r\n=ycX/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBE7Y4NGnm5/+iZZChOT5qBIl7Un24v36sJXmIEcFgTgIhAJ5Ty3DhVbK1Oov6ywxQOltsO0INbvfYn5EDg9CkCnH4"}]},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_2.0.4_1638060129094_0.9052737877313739"},"_hasShrinkwrap":false},"2.0.5":{"name":"@digitak/grubber","version":"2.0.5","description":"Parse code files and patch it without having to use an AST","type":"module","main":"library/index.js","exports":{".":"./library/index.js","./*":"./library/*","./library/*":"./library/*"},"scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build","deploy":"yarn build && yarn test && yarn publish"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@digitak/esrun":"^3.0.2","@types/node":"^14.14.37","fartest":"^2.1.5","ncp":"^2.0.0","typescript":"^4.2.4"},"licenseText":"MIT License\n\nCopyright (c) 2021 Digital Loukoums\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@digitak/grubber@2.0.5","dist":{"shasum":"585f29055e916384f8944f22e64c17fca58d74e3","integrity":"sha512-Y5II2Ml/3MeySjvcACS/xxaC9AJrGPLPu0UPTks8u5JfhWjS3PHKp0C3gJ5h7B0fKXr51XeUDNRg6A1mItvcIw==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-2.0.5.tgz","fileCount":43,"unpackedSize":28839,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJht1uWCRA9TVsSAnZWagAA3eYQAJOnnOUdhtADiGUaO/Pk\neN6Llukyc57NKYnislWN0l2VLDM99gqV43aF87JxhHhDg4F+Gp4b3CjYzWiO\nH00/YqHK2dTr9JIfUQWoFRzekHchEA6L2TWQ8C6oW8T2K0jOwTI01PshGCTL\ntQMrjttMdJXFrLJXGjcjXpdLm5LAncm0p/StHmr4wy9dJu6u+q0rPDW3pV2u\nFl1u0AIrMMEaryA17440DVpVuq35Jjrs3J0CBSkX1mHA+obf3rqQ9dnGgaVM\nX333T3Ydxhks2Uf7kPNsp8HbAafLJL/yUMq9OWZQv0XnA39J0nojGMuUxLFj\nnKdwi444c3oXOdsz60ATldWS9ZKMefhKPsoul/RvnsHb1WqZkFwgVSM1uLWC\nmcjVPcA++7d5eIoI2ubpJ9tTXLwSGCobHi9SaJSJKO+u83Qzz9CcL9j2jiju\nFMW6g0+HaID/1mzr55COq0hN7FwOi0ilxFc3MoGlRqV3Lg1/dq3ViEbNXRHO\nEMNRMDtKb9y/DyN3ImcwFomX3xhoFxBxvEtowhePoA8p2iuHIvVzaJc66VwD\n79+lyeiQZy4VEilbKY87H1UUlFZn8zztXikjdkCo5bf98Ky0D6tC9cROdVhS\n+emWJ9NkfFbHDcqIGZR05O57bBHJxrzUH/c3JiwPS5Wl9XPjWuvZuvG0ZMpU\nCRRI\r\n=iw6N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH+OwEvxocfy9OjHl8Xbz174U+4kap4kobWovr97gHrTAiEA5KYZWt/mDY+1eZ1U7Jpkr4Va2XI8MqT5v+9ZmIRJz7s="}]},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_2.0.5_1639406486375_0.06262965608964866"},"_hasShrinkwrap":false},"2.0.6":{"name":"@digitak/grubber","version":"2.0.6","description":"Parse code files and patch it without having to use an AST","type":"module","main":"library/index.js","exports":{".":"./library/index.js","./library/*":"./library/*","./*":"./library/*"},"scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build","deploy":"yarn build && yarn test && yarn publish"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@digitak/esrun":"^3.0.3","@types/node":"^14.14.37","fartest":"^2.1.5","ncp":"^2.0.0","typescript":"^4.2.4"},"licenseText":"MIT License\n\nCopyright (c) 2021 Digital Loukoums\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@digitak/grubber@2.0.6","dist":{"shasum":"3f7a5843d82ecfd3f59674902c3195262b8ab8fa","integrity":"sha512-AgHOVhpkgTbJh4hzbqdjLgIxtHRgD89rCytyTLvsVix+qeaPcBFjQwpWU6/Aq/XBrLKlEMN6/D8QxYrgTe32DA==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-2.0.6.tgz","fileCount":43,"unpackedSize":28839,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJht4DaCRA9TVsSAnZWagAA0qIP/ieNX6MU2HD9RxWgiakT\nfe1p5R/QYbrlNCd6mH7ivHGJjz4TS9fJ1tRunInU7XdbbFDSTxj/hlLsg7Ru\nCJa4dAgQw+WM2nw7/N5NEpCU7OOEY66bQhNJlGLp+TxfI02NYBHo0CgSsMKv\nf8fqBwVwgBxT21V54+lElDC5pOxBO4MgxPR2JWLe0FfBLOYU7H9+Hd2YU9Xy\napiu7mySdIg7wPITP+COv6M46EQ2RTG2ZmhJ7zm417mloiBOxODYrh+KL2Kr\nOJNFu3cno8LBuMP09RT+ihbKzqz3p+WQKjgWBwdVJp+rlUfME2M54dNr5Wdz\nQuKhb3J3/emqDlMqJvBUzSNUXh5EDlWwKaGWLQVBhBVl7eVvuJTl48F7cbAH\nWFuHeC2PL4tl5burtXmVj5+wiM78swgeELcUnQnesWRYgen+ENaMK6DMFTuS\nnRH2RlLnYz/fj0NGygQFbuAatOXZdBYH0K+fAsOG18ADGdCGYwl7O4MNoK1D\njvyzbrZJl/8WMyEwEdWZfTA1Wx5+5IsReJufDTvIXWLqbInF8ReTdwQ0WA7I\n/4lkwZ0P1gCSY0v+yMLFmnfei4HoWNoDFRxJ2kCB46+uDT3R07qVxLOtF2vj\nD1vEwnsTWtCFqPsN1PIzVxbfpZ+2VEloJ7vImARxySISl2XLwFhduJqjLKLx\nTdD5\r\n=anmH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID7WShOwnSCWthzhD+6GsCB4T/Eijiy5jJzaS/VUD1LWAiBVGN3hFm3hmy5Hw40fqsT7olQ9niWO+xtI/JWTr+Ta9Q=="}]},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_2.0.6_1639416026562_0.19016109200814668"},"_hasShrinkwrap":false},"3.0.1":{"name":"@digitak/grubber","version":"3.0.1","description":"Parse code files and patch it without having to use an AST","type":"module","main":"library/index.js","exports":{".":"./library/index.js","./library/*":"./library/*","./*":"./library/*"},"scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build","deploy":"yarn build && yarn test && yarn publish"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@digitak/esrun":"^3.0.3","@types/node":"^14.14.37","fartest":"^2.1.5","ncp":"^2.0.0","typescript":"^4.2.4"},"licenseText":"MIT License\n\nCopyright (c) 2021 Digital Loukoums\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@digitak/grubber@3.0.1","dist":{"shasum":"b552c17e61c1d2ccbddae883677f9db5835e95fb","integrity":"sha512-XL3U3M2lqeEO4pk/1IBhtYcMthhKDA/ACPFU4bnyZ1wsT5hRQ1UaqeI8GAr+0rz8uneawnBXlYKUhn6yavz2aQ==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-3.0.1.tgz","fileCount":43,"unpackedSize":28789,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuJ9cCRA9TVsSAnZWagAAtK0P/2QITX6iNqaR3RvECFBB\n3AEY0OoO+13DC3urSlAmzaej6FDzEBME3aGLuJMG2hI9pceVRNTs24ERJk73\nZlRc7MqieZGW9H8VNSWzdpLPgaS37ZY80/Q64O6lOgp6dqd7q5hQTqDvjrZe\niwMEvQzQ0a2EECQSSB8ysVjs8EosrlKoozOhnjS4766wkybhNw4nUmNnfgb2\ngVlEPrUqJ291bp+3VVm8dGrLRSuGsjm0PFn6kYgsP25q1dH0tjD8yrmojfDs\n64aGR6zxmd4zKiHKrXX4mEErKWRItZNrijttEhDFAe7Cg563df2BAVBmPbTW\nG56/zzqn7HQL7GlIdcXRqyVkVbFNxPw4F7BGXelQRgZ/O1p4mk/LisEQeuxt\njvAZvl/kvigzPtQy1wiwrdnRrCLAZ1jTcStD+GVLY93korMzZICgoozmuH3w\nn+LydTfHq2jZA3P8ehBkfj+SBs5Aio+hbwQzK6fcB+hxIe/TSP45Gj1n9X0u\n3hzgznar+Z0VZThB/BOis2dw929QpaiQcS0eGTaBW5L0w40Fch/LBCFhFUt9\n2wJJCOvpdsmzOT70WgPRX0JSdiOp2HJVP2Suqma0nF09M1SyY9MMIvkQ5CSF\nP3y+0seWm1arFp412th6nYYVYeqMWi5eZRJLNvV0OJuoMHulGfasZLSY0cQo\nHYIv\r\n=YnXd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCW4gOuapKEGK26lQ1/5K+7yTH5/zhc03Sapy7agWxggQIhALwEt3Fylef4if/5BKU3w0GgjoRcRzWKqnNT7/ATqUsl"}]},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_3.0.1_1639489371997_0.044664933534464435"},"_hasShrinkwrap":false},"3.0.2":{"name":"@digitak/grubber","version":"3.0.2","description":"Parse code files and patch it without having to use an AST","type":"module","main":"library/index.js","exports":{".":"./library/index.js","./library/*":"./library/*.js","./*":"./library/*.js"},"scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build","deploy":"yarn build && yarn test && yarn publish"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@digitak/esrun":"^3.0.3","@types/node":"^14.14.37","fartest":"^2.1.5","ncp":"^2.0.0","typescript":"^4.2.4"},"licenseText":"MIT License\n\nCopyright (c) 2021 Digital Loukoums\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@digitak/grubber@3.0.2","dist":{"shasum":"87e2e0ea14977af5f38a02c6ea2dbe5ee00759ed","integrity":"sha512-Vs1zYsmejKxGwshnmHm4YmykHZuYyX09qe7zWjPJHBOnxDfsyQX8jBOHYEfukY2aVY2T1ftxHU165PSMFFjRBA==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-3.0.2.tgz","fileCount":43,"unpackedSize":28795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuJ+4CRA9TVsSAnZWagAAOnAQAJ7yRtBN5IBzpBB0EV8w\nnf+is+Kbey2sMrTU1lnWO5Xzr8QnjVi74/7R5UeiKf4/SGrFdvFYk1aYJ9is\ngBNnvTDqCd3aRnzqfRUxEdTZSV2rPVXkRsdL1I3rmS8IeKpGEJCOrmcdpahO\nlioimBc7EdCJMhd0DW0w1r464o5A1Wt05wOAdF9QEiiGcxv1Td5WQL2M0NJL\nHVqGajD4sZLAIa539SIJpWhIh7YqNyg8mUnLRBly30lBfjZ27oQo5YEK9usD\nXv5sAPyNY8sl+t0X1wBwYGtjTPuxgKNGGlrxkUYYZ0MM/orY07iXh77sqK9h\n3B3bZ/fbrWqgh40WuCQDIN2+a5tzT5zOxEV0SJjDQuYxDjiwuTKf+/DqmSSR\nYb06Z0Fp5Qse8EOBOCvxmbI+47dnoGMPh0NUu/wjKu8bOiuWIJsmxjfzYB4M\niVJm0F4Q++R0B5rqTKaJdKg/hAnKCuDY/IUgTteJy3GGUgHItRcXf58xHez9\njM1m4uwZesD9qZKj5uGsSsozTKOi/53owZWP7uEDVtH5/S2HjROp1UmtAtQf\nSeAH1n4zTjSJzPTaxLZjagIFbEixsP2qVt6O+FI5sOu2QGWtcvGBmW8a5Key\naAWtFzB8Wt+8atYuQooHLKDwEHT45dMSVVxJSv+0QD5SkUTtjGefoVUyyOX2\nJOep\r\n=Wddf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNBg7rPMFIQ+HswRKOSM9AlLzysf3CWGCYayDitP1qrwIhAINGdFUlLglKHnT8bMsWsAQZGVlPnFrcb8B6G3lT+WpU"}]},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_3.0.2_1639489464701_0.8841049580603375"},"_hasShrinkwrap":false},"3.1.0":{"name":"@digitak/grubber","version":"3.1.0","description":"Parse code files and patch it without having to use an AST","type":"module","main":"library/index.js","exports":{".":"./library/index.js","./library/*":"./library/*.js","./*":"./library/*.js"},"scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build","deploy":"yarn build && yarn test && yarn publish"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@digitak/esrun":"^3.0.3","@types/node":"^14.14.37","fartest":"^2.1.5","ncp":"^2.0.0","typescript":"^4.2.4"},"licenseText":"MIT License\n\nCopyright (c) 2021 Digital Loukoums\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@digitak/grubber@3.1.0","dist":{"shasum":"645eae110c5687ae07964977872689b6c868612c","integrity":"sha512-OEqR1nsNdFZJyuR8Hl+WbXxqanatII9hvVqEfy1CowqrLkm7EMF/qAw2SW2LzSiRpzSd5butdWZvNA/CNMbGyw==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-3.1.0.tgz","fileCount":43,"unpackedSize":28774,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5/FXCRA9TVsSAnZWagAA95QQAI0BicBPjbF60psx6C5w\n5zMmIIwMl9udbBc3KVzU16KQdnKzDkfRnYEDPmvLLAUQax3d+vWFIYT5uzGn\natQSbAq6JuX0og5Oo8soz47C098ZNHFbTzALX4YoxkON503mcWvo3WVfio+P\neI61ExoM9CI99FtePU9Q2Lg/rKWZkoSLK168h4Rgwlh5rLwMThF75mi/pmSS\nF1tndRKGeAqqSiyRUV9BVCU2TYNeWMSxZUp5aCHLcMtGE8pTHjKmusnopGXy\nE1P2OVPkfW12zrpy9m3Y5IAYBHLO7T9WrP0v/pNnIU56MFw02o8aRyaGJmMo\ned/leQXW1EjVHdz+zR+/2pPBVe4oKaVc6agy9uwqE3kfVYEE9TqvBumX+GlF\nepTZ4zD8YPTUT0CdL1CjZBllfx6lgeOzY0E6xYYr7g/0cz+TknkA2mCB/lzs\n8VGr8iIugRV0lFYZKrfa74gsL7zD1BKoBV5JOFWgR/CPd5xomaHY7eq/OXKh\nJpACroZz9lasQAkSUUV58IK4tzdYkY9AiNxHZqj8MjFF/pyIKjcvF61apPT0\nAWtFyiWkx+BmhrwkVBTCVl8hHfyJLxfL0vV10O1bOEjyHzJYUTUuxMjDAQnG\n03wgl7OU1RCjkXGTr/3bkkkFw2mmGk0FSgTaV5dpNXvDkWeJD2bdp2yZm5aK\n9OQV\r\n=1XJT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUOyprmk+8PpQPIR8/y0jyrLhi7TLWmhWNh1vtUx/V8wIgYryZ6mhML1IV8Zns5Jk82i/mcJExiZGyJ3HjCdplmh8="}]},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_3.1.0_1642590551670_0.8635250829085184"},"_hasShrinkwrap":false},"3.1.1":{"name":"@digitak/grubber","version":"3.1.1","description":"Parse code files and patch it without having to use an AST","type":"module","main":"library/index.js","exports":{".":"./library/index.js","./library/*":"./library/*.js","./*":"./library/*.js"},"scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build","deploy":"yarn build && yarn test && yarn publish"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","dependencies":{},"devDependencies":{"@digitak/esrun":"^3.0.3","@types/node":"^14.14.37","fartest":"^2.1.5","ncp":"^2.0.0","typescript":"^4.2.4"},"licenseText":"MIT License\n\nCopyright (c) 2021 Digital Loukoums\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@digitak/grubber@3.1.1","dist":{"shasum":"13c02833f5ed0c342cb1f9cfec1fd104fb9f943e","integrity":"sha512-xHpmj3Erk5AA/nKpOJzap23TJSV0MFRTgtciG8XZg0GP0CUwms0g02SQQaKEPCe2mvKVlqfzad3xV4DiHlq2jA==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-3.1.1.tgz","fileCount":43,"unpackedSize":28822,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5/oNCRA9TVsSAnZWagAAyp8P/3ADx+5FAppsrEoDD3ED\nFQDPFFXKFpTqRoSIuZDzdL3qHLs2QBKauci3O/y7BPZe0YbWh30GrX4GepOD\nCXaLp7S0iU6omvlrOieUucbxOG8ixcsHyCRyLAZFL1nrY+nruB+uTp7GUzsj\nlETSevHYuWtMaLIVYEGyOa/Ws8lKIoZhgbbbUgEvx2+92rTL4S4x6QOPIhK7\nqUmrvgZKZENnNJlfKQ5tlRz+/g5zgjudT7eBaJxPyZOR1FiEMcNmi+8LVTgC\n2VpRGtRpjfshhNAA4THg/IddIJAZCZu48NlSpRTrva9oz2Ev6sUf9JwSs8t2\nxOw+WpzlC5KfQWnqOvropIkKZouogbaduZMvY3bbisooEqo9rz7bI91/s0bk\nR5UE999IbAsCv+CNx2k2p8mV5t7Ew6eq2tZMuC0GIQkzDYrKsocxbMYjyKGf\nG5tFVim2nkANHsyzZK2tfrIM0XCNoGsxJTVwwMm5wxu4vs72wfIieyZN3M+4\nC+c+kCX5GFEeUSvLJ0RrOKGOk+KbDTRd6Zo8SPGXHZ/kLvOCw9artFpOstwx\no3cfEqbfLq+667VVLBGvTkeZPZbxst5F+nxKl9Zy5tefOo3V/G2Vknsqineu\n79AxQCGUC3oglBHflZ9pwD5OQkr20AENPSWIcSDpxzyE9pbfM5nzv3jLzQJ/\n2lRJ\r\n=05V3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiZxIr5Jko/CfbjQx1/TpkfS7fVbk+FdiYJSztBTi0uAIgHFhE24gF6UE+G+Y6/lp+365SixfCZW33blQYwegtUxs="}]},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_3.1.1_1642592781286_0.9815453354117369"},"_hasShrinkwrap":false},"3.1.2":{"name":"@digitak/grubber","version":"3.1.2","description":"Parse code files and patch it without having to use an AST","type":"module","main":"index.js","exports":{".":"./index.js","./*":"./*"},"scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build","deploy":"yarn build && yarn test && yarn publish"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","devDependencies":{"@digitak/esrun":"^3.1.2","@types/node":"^17.0.17","fartest":"^2.1.8","ncp":"^2.0.0","typescript":"^4.7.3"},"types":"./index.d.ts","gitHead":"cb69f9fb3539dd1120045f96134c398f418d29de","_id":"@digitak/grubber@3.1.2","_nodeVersion":"17.1.0","_npmVersion":"8.1.2","dist":{"integrity":"sha512-I+ova6YCVhEg91iafa54KEkLRAY9tJaQGdnVE4TzJLziOjP6vDZXIn24KMav+Z6mCElnyFeejXJ9Igl7jzwdSQ==","shasum":"db0df07e4ba011fcf2a087a2dccb65b81430b8f6","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-3.1.2.tgz","fileCount":38,"unpackedSize":27889,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGc1QL4u+rpdwpWJKZ7/NziZoziXaiaF1RV8CFPVBxgnAiEAnSGrDxR3IHxEq0eo9L00/eU2wszuhgP/DxyJXq6WASg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqznKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrwWhAAijeeTEevq82WOH1mVRfnKyyJ2XRc2T9f4fcDzEACzm5DrVA2\r\nPSjjNQI2BXKEbaFC2bXhAjFoDjjDS/HZ7KYYzUihFOv1MAabdN54rVv75SzD\r\n2BaTnpXWPNDS3BKMD1k/hPrY/s18edlitKh17M5pvaZFastDvBUJLXsFbEBJ\r\nIXUodmJakK7lZISav6i4liQ9tKG2uOVHLEFkbP1681mdvMXAl1GcXMqBaUil\r\nlHSU7yJHWhiyhz5xb4My/pIpIx2PnfDj4Gr0BX1GrHiaa0Nq4IbKDiMqabo9\r\n6ngSnWWAkcBJuZwGx09CGYYMQfB/5k/6BKsam+7KvPTm56zohLejLQqg5BjG\r\n/cReQAVPQldX3RJ07W75Pz6d9F1m65UpAsL/K9c23YaNLZ1loGKF18k2l9mA\r\nLf+IdRAsQAY3xAKXX/TG0N/OBU/MaOwKUbqxNeFX197QzvMYiDD0XF2gwyCi\r\n5PmIOHp8X0uzLhqM7SQAGSymsUJhGJRqiDP7oL2l7jwSl5V9D5hs5uLJZEjV\r\ncgkFlslXGkRMGnyvft2yWPn7lHR13C0s96h9t2FcQrMO106YIiAOCiFXyNgX\r\nQhxSec8uEs9H4LbBwjjz6ecW6V3eGcBjXsmyrMdJKUQX8iXslZkX5TzVuwSI\r\nZM0YbJe/baiqzZ++Kx+bm5gpEn56b9t6D5I=\r\n=jwBe\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_3.1.2_1655388617980_0.08881398182556377"},"_hasShrinkwrap":false},"3.1.3":{"name":"@digitak/grubber","version":"3.1.3","description":"Parse code files and patch it without having to use an AST","type":"module","main":"index.js","exports":{".":"./index.js","./*":"./*"},"scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build","deploy":"yarn build && yarn test && yarn publish --cwd package","lint":"eslint source","lint:fix":"eslint source --fix"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","devDependencies":{"@digitak/esrun":"^3.1.2","@types/node":"^17.0.17","@typescript-eslint/eslint-plugin":"^5.28.0","@typescript-eslint/parser":"^5.28.0","eslint":"^8.17.0","eslint-plugin-import":"^2.26.0","fartest":"^2.1.8","ncp":"^2.0.0","prettier":"^2.7.1","typescript":"^4.7.3"},"_id":"@digitak/grubber@3.1.3","dist":{"shasum":"10b7732d6777e2abbb34a138f59792136a4877de","integrity":"sha512-7PV6XCS5qC28oaEKWUUXLxiewoj3Z0EfdCdxX5D6Vy5wtC/rYuCO15XOOupUcnwBaNR+Xm/bfmsCe1KJtEfE7g==","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-3.1.3.tgz","fileCount":43,"unpackedSize":28163,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHUarS/bPCZZrXLZvOgVIb67akuP+bRp3FP/COlljwPaAiANzHRd96LcSos4O6DnHYBHn7hKidZ7yVCFyG7IYiqemw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/NsXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqjTg/8CO4HM3PZ0z4xTDgfLIeTJ7mU9/Azth2fUO3/wn48RyrOVFl4\r\n32f5cE943aqtz1SwFOV7HqpvyliQXBjuannQqxJk5HPLSGKEquZfQGCPHVyX\r\nTdb3BxlFRjwpZmJcqXcDqy6Bi3bwBQUbEbKQi8jhkRfolmFSBiO6PmrHl25P\r\nB7AvWrd+p2ej2hn86aTV5Cyh3RDFtiIDidnKNiWWXfhOuwAi4IpBu8MBJ/au\r\nFSvobHYutWPEXn0Py26knX6gnDePJMtjDQ3GnZbvC23fEVHp7gdAOCBq+if+\r\n2laAoe7HxiOfu4zWWLLBseKwDd00OQmKIwUcOwL3iTz8w7pB+wJe0lGQ2M+Y\r\n7S3J4yVBfzT+q4wv5FaLnCnx/S31ENlOk+gTcvY1qQutqgBiR72KVdP5+Nj6\r\n+Og1lj+DQ3vFlwSKSkVciZpuJZ7tetdzUzxMj7C7JyB6QqF4cxrQTm/7mEv0\r\n8VbriH7BR2QSvO1eBrcTaZP1VWRjoHRLObe8Mh/GshCOP16B3UaHYjSNMvyc\r\nC6CIIJ4TPvn/5K5qzaiDVLNu3Jz3m399mKRQZvO/ZiLaxZEnO/ohy2/RKeov\r\nDhr1Q1QS4WXsUKo1uT8pAnVR2fOirNtUT2PM78F0ArAh8HxVpHM4ZSWI/Y1F\r\nncIfI8AUNQUo8z1toqx7pfNLPuaqO3LOVjE=\r\n=CGqp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_3.1.3_1660738327542_0.5704254803752249"},"_hasShrinkwrap":false},"3.1.4":{"name":"@digitak/grubber","version":"3.1.4","description":"Parse code files and patch it without having to use an AST","type":"module","main":"index.js","exports":{".":"./index.js","./*":"./*"},"scripts":{"test":"esrun test","test:jsimports":"esrun test/patchJsImports","build":"esrun scripts/build","lint":"eslint source","lint:fix":"eslint source --fix"},"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"author":{"name":"Gin Quin"},"license":"MIT","bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"homepage":"https://github.com/digital-loukoum/grubber#readme","devDependencies":{"@digitak/esrun":"^3.1.2","@types/node":"^17.0.17","@typescript-eslint/eslint-plugin":"^5.28.0","@typescript-eslint/parser":"^5.28.0","eslint":"^8.17.0","eslint-plugin-import":"^2.26.0","fartest":"^2.1.8","ncp":"^2.0.0","prettier":"^2.7.1","typescript":"^4.7.3"},"types":"./index.d.ts","gitHead":"6ed7e23ec028aeebaf5fd46931b9c8baddd934d6","_id":"@digitak/grubber@3.1.4","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==","shasum":"f29280bc8d205995b6bf4d73344f08b01f21fc65","tarball":"https://registry.npmjs.org/@digitak/grubber/-/grubber-3.1.4.tgz","fileCount":40,"unpackedSize":28119,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBRvRQKM9DAe4LHmOJGUz1KOiJUCtWyho7X6pVUet6IkAiBkU6vlLGyyNkCYv1oZmVD0075VJUkr0UCL4Vt8HVoTNw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzALtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp/lA/9H6zFtrsh0EWXGj0uA4vU15FVZ/ITcz5/HcImDUzoHQx8Gyf4\r\nJgKlcEtybZ1eWWIqSCuArgyfvoCWHTfwftVcOOlTehwOs/qo1HtW9CrLAYze\r\nHlqxdd6tW/9awFiQfxoFGXFJlQn1XypakWCKbsr/15qtn5Y8r2BxrrMndC0v\r\nx7Xu2ixbCtW2n5BZj9ErgF4OvB4c90QbhzGIfwQZ3DIHmtddnjDXvNqFFe4g\r\nSOEn5+92AtNgZF1VwnNFpKbHeuw6MHfy8Mzc88pDwjZ259MrVl1O+4KS5dLT\r\ng7ZRgyYnFJujkkhLT+nGkjOGt3FEpfMFtM6ksNRhG6GE5R6g06qdDh9WTIWB\r\nh9G42RIhJCWn11UzME2DChPdAr/Z0i3/04ttmyOj4acDhAPNnzFnkakPjmzC\r\nKfFsAOdrcNgE3yzkCS8+zdeha17OvoMA8fOHFPAB93h15E5tacYNufCvhxH5\r\nhGbYqwHp7XwoKFQTJFXaa+6/opSmYDQZQ0Pfm6mRhixqeB7e+VK3A57CHVm4\r\nZH6ofwwcJysW9tmncy+DEnq8QKJ7a4wVLJDoTeP6HPYPdSWKluVMr1KD9Jyr\r\n9Yc7aiTaE7JbNYYwc5CDVOVCw+YMl7KWs46spTBI2xz0QC3qUfmQsf1y3fi3\r\nKasD9x+oAPSEedmIEFFM89xIWo7Jh9qwHP8=\r\n=jAiA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gin-quin","email":"gin.the.quin@gmail.com"},"directories":{},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grubber_3.1.4_1674314476885_0.8565688367069471"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-16T10:05:32.829Z","1.0.0":"2021-04-16T10:05:33.208Z","modified":"2023-01-21T15:21:17.142Z","1.0.1":"2021-04-18T10:59:33.745Z","1.0.2":"2021-04-18T12:01:02.191Z","1.0.3":"2021-11-26T23:04:17.434Z","2.0.1":"2021-11-27T11:20:17.936Z","2.0.2":"2021-11-28T00:16:13.906Z","2.0.3":"2021-11-28T00:25:26.935Z","2.0.4":"2021-11-28T00:42:09.256Z","2.0.5":"2021-12-13T14:41:26.530Z","2.0.6":"2021-12-13T17:20:26.728Z","3.0.1":"2021-12-14T13:42:52.163Z","3.0.2":"2021-12-14T13:44:24.852Z","3.1.0":"2022-01-19T11:09:11.790Z","3.1.1":"2022-01-19T11:46:21.427Z","3.1.2":"2022-06-16T14:10:18.137Z","3.1.3":"2022-08-17T12:12:07.689Z","3.1.4":"2023-01-21T15:21:17.059Z"},"maintainers":[{"name":"gin-quin","email":"gin.the.quin@gmail.com"}],"description":"Parse code files and patch it without having to use an AST","homepage":"https://github.com/digital-loukoum/grubber#readme","keywords":["dependencies","parse","patch","find","replace","code","typescript","javascript","python","rust","c","c++","css","scss","nim"],"repository":{"type":"git","url":"git+https://github.com/digital-loukoum/grubber.git"},"author":{"name":"Gin Quin"},"bugs":{"url":"https://github.com/digital-loukoum/grubber/issues"},"license":"MIT","readme":"**_Grubber_** is a lightweight and friendly utility to parse code with regular expressions in a 100% safe way - without having to use an AST 🐛\n\nIn a higher level, Grubber also exposes helper functions to parse the dependencies of a file in many languages (Javascript, Typescript, Css, Scss, Python, Rust, C / C++, Nim, ...).\n\n## How?\n\nThe problem with parsing a source file with regular expressions is that you cannot be sure your match is not commented or inside a string.\n\nFor example, let's say you are looking for all `const` statements in a Javascript file - you would use a regular expression similar to:\n\n```ts\n/\\bconst\\s+/g;\n```\n\nBut what if the file you want to parse is something like:\n\n```ts\nconst x = 12;\n// const y = 13;\nlet z = \"const \";\n```\n\nThen you would match three `const` when only one should be matched.\n\nGrubber understands what is a string, what is a comment and what is code so that you can overcome the issue very easily:\n\n```ts\nimport { grub } from \"@digitak/grubber\";\n\nconst content = `\nconst x = 12\n// const y = 13\nlet z = \"const \"\n`;\n\nconst results = grub(content).find(/\\bconst\\s+/);\nconsole.log(results.length); // will print 1 as expected\n```\n\n> For the sake of the demonstration we used a simple regex, but remember that Ecmascript is a tricky language! Effectively finding all `const` statements would require a more refined regex. Ex: `foo.const = 12` would be matched. Languages that use semi-colon at the end of every statement or strict indentation are much easier to parse in a 100% safe way.\n\n## Installation\n\nUse your favorite package manager:\n\n```\nnpm install @digitak/grubber\n```\n\n## Grubber API\n\nGrubber exports one main function `grub`:\n\n```ts\nexport function grub(\n\tsource: string,\n\tlanguageOrRules: LanguageName | Rule[] = \"es\",\n): {\n\t// find one or more expressions and return an array of fragments\n\tfind: (...expressions: Array<string | RegExp>) => Fragment[];\n\n\t// replace one or more expressions and return the patched string\n\treplace: (\n\t\t...fromTos: Array<{\n\t\t\tfrom: string | RegExp;\n\t\t\tto: string | RegExp;\n\t\t}>\n\t) => string;\n\n\t// find all dependencies (ex: `imports` in Typescript, `use` in Rust)\n\tfindDependencies: () => Fragment[];\n\n\t// replace all dependencies by the given value\n\t// you can use special replace patterns like \"$1\" to replace\n\t// with the first captured group\n\treplaceDependencies: (to: string) => string;\n};\n```\n\nThe `find` and `findDependencies` methods both return an array of fragments:\n\n```ts\nexport type Fragment = {\n\tslice: string; // the matched substring\n\tstart: number; // start of the matched substring\n\tend: number; // end of the matched substring\n\tgroups: string[] = []; // the captured groups\n};\n```\n\n### Using grubber with one of the preset languages\n\nYou can use any of the preset languages:\n\n```ts\nexport type LanguageName =\n\t| \"es\" // Ecmascript (Javascript / Typescript / Haxe): the default\n\t| \"rs\" // Rust\n\t| \"css\"\n\t| \"scss\"\n\t| \"sass\"\n\t| \"c\"\n\t| \"cpp\"\n\t| \"py\" // Python\n\t| \"nim\";\n```\n\nExample:\n\n```ts\n// find all semi-colons inside the rust source code\ngrub(rustCodeToParse, \"rs\").find(\";\");\n```\n\n### Using grubber with custom rules\n\nYou may define custom rules for the grubber parser, ie. what should be ignored an treated as \"not code\".\n\nA `Rule` has the following type:\n\n```ts\nexport type Rule =\n\t| {\n\t\t\texpression: string | RegExp; // the expression to ignore\n\n\t\t\t// if returns false, the match is ignored\n\t\t\tonExpressionMatch?: (match: RegExpExecArray) => boolean | void;\n\t  }\n\t| {\n\t\t\tstartAt: string | RegExp; // start of the expression to ignore\n\t\t\tstopAt: string | RegExp; // stop of the expression to ignore\n\n\t\t\t// if returns false, the match is ignored\n\t\t\tonStartMatch?: (match: RegExpExecArray) => boolean | void;\n\t\t\tonStopMatch?: (match: RegExpExecArray) => boolean | void;\n\t  };\n```\n\nFor example, the rules used for the `C` language are:\n\n```ts\nconst rules: Rule[] = [\n\t{\n\t\t// string\n\t\texpression: /\".*?[^\\\\](?:\\\\\\\\)*\"/,\n\t},\n\t{\n\t\t// single line comment\n\t\texpression: /\\/\\/.*/,\n\t},\n\t{\n\t\t// multiline comment\n\t\texpression: /\\/\\*((?:.|\\s)*?)\\*\\//,\n\t},\n];\n```\n\n> Rules are quite simple for most languages but get complicated for Ecmascript because of the `${...}` syntax. Hopefully the job is already done for you!\n\n🌿 🐛 🌿\n","readmeFilename":"README.md"}