{"_id":"@adaskothebeast/esbuild-compressor","_rev":"20-59ff9d6530e45de710aee5f72336f398","name":"@adaskothebeast/esbuild-compressor","dist-tags":{"latest":"2.1.0"},"versions":{"0.0.1":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.1","_id":"@adaskothebeast/esbuild-compressor@0.0.1","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"f341162280c131694a800f0d126d4b199fb8c057","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.1.tgz","fileCount":9,"integrity":"sha512-9y5nsK+M8esu5pTCKRf+MRTp+3LkHeHyfMlBL2pd+C0X65pWJD6+KvnNhm1kAaumAr8DtHG01hQ/Q46tbDAj3Q==","signatures":[{"sig":"MEQCIDp1WgObQF0XGRR0rZ5mObQ/x3f8u/bsPUzb9394I5JpAiAv0bGvNFy0+41qOKtVb4Y/FMuvO1iosqu8jvFNtOTykQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7296},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.1_1738514083149_0.4459370428393947","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.2","_id":"@adaskothebeast/esbuild-compressor@0.0.2","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"5d27778ed4748324efc65b4ee80ff570db8606b4","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.2.tgz","fileCount":9,"integrity":"sha512-/h61mKOQuWeS+NvbV6kNaITwfAL/iX085x1o4/5xyNuDmIQv2EGRTtl+2rU/JTkjRt9LgaVtbJ1xgZrPCGwsrg==","signatures":[{"sig":"MEUCIQDk+Ig9cfUg0vAlCDmmY1PbME0eVUS9KIgxuvR6jgj1lQIgL7NM7SdzY1jb91lAuEwOK4LxQsT1gWGdIFmVIMCgz5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9166},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.2_1738515293013_0.47859685659381523","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.3","_id":"@adaskothebeast/esbuild-compressor@0.0.3","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"f71dfe8fc5f915a55ae9f97f970ade6163593b7d","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.3.tgz","fileCount":9,"integrity":"sha512-cV9LsFn5cRVZ09KEXVSJJquy7Lr0yF5OCm7BW3WafzUYoHmVdZs5ijYMRgLlbBAr1g4PoioZjKQ4F94O6dTeQA==","signatures":[{"sig":"MEUCIHOLxgD7zBtIlxd7Lu4HuzxVXpya6x846VnJuuuROaOvAiEA6SGjm5t7ruk2qw54qgQpe3pDSbgEftpDzHt6B0SzaIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9170},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.3_1738517359030_0.9120724864212513","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.4","_id":"@adaskothebeast/esbuild-compressor@0.0.4","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"62cd7482d0caf6d2f132ee38fa028a10c777e30d","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.4.tgz","fileCount":9,"integrity":"sha512-LnaXwQPt39BJd+RDSDfynW+Jw15skqc8BCc53UwhxKe9zIQrxRz1U/zrXxofsPcLyzpW6e9ipTGYMiTLnPslRw==","signatures":[{"sig":"MEUCIQCjPmL5AvA5xByFTi4nvEP7N6AGIi/woS/UsdzcYaWRCwIgaDxVdrex/cTKDUORfszpsSoMU014bFLK6Mv20iJLnck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9867},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.4_1738517775583_0.42755721008225556","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.5","_id":"@adaskothebeast/esbuild-compressor@0.0.5","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"94ed41bdfcdd74099247d47aafbf411ba6721860","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.5.tgz","fileCount":9,"integrity":"sha512-Uim9sAEMcCfZo/rLsp6iLKoEJAjcZ49ifQTfjzPcd3mMXwHT7KBhvsyHAHnjGZHmGP3CvacBD9Zt0pav45wwaA==","signatures":[{"sig":"MEYCIQCSCEGImQdibp6aCKoRO7cvhO/T+aMYx2vvFP+CUSmo7QIhANJuRNo91wwIMkpDG/p36Cxp4Tloi+0PwIqlCspokPGw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9967},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.5_1738518206151_0.036839860351438825","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.6","_id":"@adaskothebeast/esbuild-compressor@0.0.6","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"0666d48aeb506f38129de172303d5aa80e279dbc","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.6.tgz","fileCount":9,"integrity":"sha512-aR0VWvTLsMM6EbZ6oL/4h6ddzo/X5rllM/RmwJVH/rqH/PL0ZGpoJff/RFbjLR9aornKHehcygI2oPFd2d6IjA==","signatures":[{"sig":"MEQCIHqaYnl/RJmei+athV+C+3UVkO6UdHebx2T10j+figbvAiBgqn9OO/JoOENG3RXYrNjcyRLNo7h1zhfzg31nUO1ZcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10245},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.6_1738518373447_0.5205825210784683","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.7","_id":"@adaskothebeast/esbuild-compressor@0.0.7","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"a3dde4debc00601648e2e72ffb95074b0cd60dc0","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.7.tgz","fileCount":9,"integrity":"sha512-Y7PoBGhRm2r6pNLGEoGKEH8PzCziVk2XKiRakfveaDFFyuakUAzK8d2sSc2to5cpX9aIOqqxx5aaKMvbbyRqNw==","signatures":[{"sig":"MEUCIQCWEBLpMGh8p/LRDlYqitC0cyUHj6lTfzG2AtSiTkRViAIge6OuN4ZdmZ2/Dlw5VIxllXhY8dbnLIKm3AxfyUM97xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10293},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.7_1738518679773_0.13582895595473587","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.8","_id":"@adaskothebeast/esbuild-compressor@0.0.8","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"d3e5e5ecb9fbaadf161b3f01fa83a5ad1fd8a98b","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.8.tgz","fileCount":9,"integrity":"sha512-utp9Y2/FHHJEq/hkrIVTrwyaXp0RGcKdMPCW/6J/rcsCS1t5hF4/a18EEfgC4pqOyiBIm2N2DHdPIVSSTnP1Kg==","signatures":[{"sig":"MEYCIQDdJq/30psMTb+yM+lCCkogvatmgkG7Kdk+cy1vlgaTxgIhAK6/0zKcqTHkJO5qpRG/2koP9gVimY9x7S08M6Y5tG/b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9937},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.8_1738519071685_0.7969393903234854","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.9","_id":"@adaskothebeast/esbuild-compressor@0.0.9","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"55286603542e39cb4b4888f95a51ff9522a61680","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.9.tgz","fileCount":9,"integrity":"sha512-jjRXz7LiA3mFfKPnF11dcBd9/2O7HthOYR1OPYxK8qDmy9INPWfRLDj8l6XVxkRv5Qd8bn+J7xHTblFoYeU3kw==","signatures":[{"sig":"MEUCIAnkcY19ijKCjNpMoH0MiL5l8u1XmCnKMCH+BilR938uAiEA+jYGO+bEF8GMCXwQmMvMjbOEk/J8qEQ9VN346XzEY6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10357},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.9_1738519649040_0.5298552305259412","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.10","_id":"@adaskothebeast/esbuild-compressor@0.0.10","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"a32759e265dad6126e3b0f270df1bcd0e956a8b8","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.10.tgz","fileCount":9,"integrity":"sha512-QV6ogSZiK3e2z5RUoqG1yEX+7LBhqSbAEMSIXBbehCMIO3KwMOHRx4hCoV8ajDzGap0PRyltIZ8iJuKS7efYdQ==","signatures":[{"sig":"MEUCIQC7XMWNUvQPfQ47uzco19Oe8LWvRipFdvSewPXPtJnUTQIgEVpBPW3S4Si+mt/5STTe39CWjSTGaY3hXNhnHAMFqk0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10207},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.10_1738519870616_0.2078340282809723","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.11","_id":"@adaskothebeast/esbuild-compressor@0.0.11","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"eb866623d5529c651360d1587bb2ef2a39c776aa","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.11.tgz","fileCount":9,"integrity":"sha512-YNi3e5f5ZA5VVj23rGMnXXYGv9QSKjVwOmu2If8dxk94U/RjdoqEukBiYS1Z6ye4AsnYwr75XCjvnJy4rAPVOg==","signatures":[{"sig":"MEUCIQCzimtAXbXdiGTSWDKQ1wHI3eEIBZaE6HffmXGf1DTVpwIgN14vQA/s8okN0Ymu71XbMEmqekhvf3/mSqxHh5uNz7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10314},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.11_1738520153948_0.2377472196120587","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.12","_id":"@adaskothebeast/esbuild-compressor@0.0.12","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"bb8b4a25eec0f0f40fbddc5a4e4f559482b814d6","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.12.tgz","fileCount":9,"integrity":"sha512-TBLjOjOERUqarGpHMcqfgqLbzokLYjbU3PPYa0u4321Aq0tD01ZRDT41q+bIJSbbTRXusdNgJzljUEdmVMj24w==","signatures":[{"sig":"MEUCIC4TbYEODW8KBOiZEJRUHMaLoodxe3Q1b3MBLUCWVY38AiEAlxXXe9VNbSC55dVKvD/YjFUFX6x2CDROPHkYUxnO8Dg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10409},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.12_1738520349268_0.576957965914364","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.13","_id":"@adaskothebeast/esbuild-compressor@0.0.13","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"b4d501f60fd196d2c70bd29bc4c8c5c68c9fc2b4","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.13.tgz","fileCount":9,"integrity":"sha512-uO0lZGnwhiqnHhIUBd0D3eEbS04eLIQ3WDoCOsoT1sJvn6jtFvePWgZpJQpTX92iwy4y4viNWfwiuAMYqb/rbA==","signatures":[{"sig":"MEQCIF/YtUNTsBWPM4o44uT5K5Upt/pMtM4fxNFhHYID0xGEAiAosMe6qW7sQsvIyCNywP2j6U+H5Ka6rkIvLTf1r3rhwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10729},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.13_1738521056379_0.8680895463110572","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.14","_id":"@adaskothebeast/esbuild-compressor@0.0.14","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"7529c8524bedc227ee88c14cb3c4aaea41ca59b9","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.14.tgz","fileCount":9,"integrity":"sha512-GMVNAwVmjzkjU5gafIPTPywUUAOPZ+IXI8TFwwhfU/nO0UZdOEB1Peyh6AppgOqIhEzykDhU456d/HUYDkx7QQ==","signatures":[{"sig":"MEUCIAWawd2bsO6DIt9Peh4RxTWaAJgHc91VuNe/9qqXLUcUAiEAzzDlKFMFltmD640CouSF9ArVNYtHna0AAFDBwdeWzfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10849},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.14_1738521175024_0.32700686796738565","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.15","_id":"@adaskothebeast/esbuild-compressor@0.0.15","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"776b1e2522ada882e43571036d3914131e573c93","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.15.tgz","fileCount":9,"integrity":"sha512-Y4wTPSrhlaPCSoPLh0ajP0sHxAapEQBzP/FdANHskV0RLxoKkRjeresA/ph/mJ48hIKl0SAZ48ITgd15zwIyMA==","signatures":[{"sig":"MEUCICQ8Rb5xVOhsGLlWQaRq3j4PN7AGqDqtMMH5DOiVW/ElAiEA6SZ96tdGmsv83h51s5Y9/OJXa+MsTab6M3ZruH3Ts10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10850},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.15_1738521310089_0.2409223062132313","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@adaskothebeast/esbuild-compressor","version":"0.0.16","_id":"@adaskothebeast/esbuild-compressor@0.0.16","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"4ee0ca1a8b8766c833e1cbb79dcad9ba625bdb33","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-0.0.16.tgz","fileCount":9,"integrity":"sha512-TUfzMq81OxM8UqwAXSicjeFjk5srMJSrpqSUX+35Fs3ES6JoEgtP/boa1IleX0DgV0/9vKuRrYcLVkZac9SS4w==","signatures":[{"sig":"MEUCIDQUxJefPjk0H+4pbTef/3t8EVuPR0N6H0sJrPK7V+xAAiEAlihCxyanyJcuTHVl8FPSMrcJylLu6oCOhk3SECeWqyg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10642},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_0.0.16_1738521684304_0.6517951307161769","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@adaskothebeast/esbuild-compressor","version":"1.0.0","_id":"@adaskothebeast/esbuild-compressor@1.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"3c31b81b830d25a8c717345b0f366f7fb7f53e08","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-1.0.0.tgz","fileCount":9,"integrity":"sha512-uWauiCJxTjTHVtqvRLZ2LGPNmH9FFzjl/wN13eyXaNSpl7irNL51/rSOAyps49X28prfb88HIlSsATuwGPO8WQ==","signatures":[{"sig":"MEQCICdPRzTL8KA1lgammVyXnSNSbwArUuDOFYtLwxx0yKpQAiAZwMQTXZdC7t8CuPt7LvK5hMOuqwjwfJ8J1nykgsdKjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10688},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ea5cac2abd266e803342a4be0689bd09d81af051","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"11.16.0","description":"Compressor plugin for esbuild","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.24.2"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_1.0.0_1784840880435_0.8653429188337232","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@adaskothebeast/esbuild-compressor","version":"1.0.1","_id":"@adaskothebeast/esbuild-compressor@1.0.1","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"31e8e2f8aea4cfd3b852d178fc7b42b3aeafb42d","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-1.0.1.tgz","fileCount":9,"integrity":"sha512-Q/dOb8fua2Tj2MbQYvXTJAendtPExqig+kZbPMUQlVb4IRv29i/VVRN6NdmULCCGEb0WhpYz5YPPkj2blBXM/A==","signatures":[{"sig":"MEUCIDDFCzM7MtL/OMeFn0WUdta+o2gf3o+xO8WXcNpm2orAAiEAsjcYXO0nmisGAWr5EnliZrEK3F2GKqcxgik1zGTuVNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17294},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"6c497ff87639caaf7565e0446bfa55fa083d6087","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"11.16.0","description":"An esbuild plugin that creates pre-compressed `.gz` and `.br` versions of build outputs. It is maintained as an Nx library and published as `@adaskothebeast/esbuild-compressor`.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1","esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_1.0.1_1784908610137_0.6926166774376434","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@adaskothebeast/esbuild-compressor","version":"2.0.0","_id":"@adaskothebeast/esbuild-compressor@2.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"bin":{"esbuild-compressor":"src/cli.js"},"dist":{"shasum":"f645ba197094caba808f4360f9d1a79fa112037c","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-2.0.0.tgz","fileCount":15,"integrity":"sha512-xuWy6HJwFpPbf/ynkdaJuZ77iiyArGenfqIeX9hLQiVKkNH6XX1d8l57xU8Z0NcW4wFwJPUnRFRJFqddvezp9Q==","signatures":[{"sig":"MEYCIQCDAXT8Sfg5fM2nAF9hyHMLIJfmLNpeV1C6vh+8wdfUZAIhAN4xefHAQY9KMPBYF6ZaWS2A3cbHyluj3hnmqsMlMspn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31988},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"f16fd994ad555f1fd8b51116ce47b0432bf3430c","private":false,"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"11.16.0","description":"Tools for creating pre-compressed `.gz` and `.br` assets from esbuild output or from a completed build directory. It is maintained as an Nx library and published as `@adaskothebeast/esbuild-compressor`.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"sharp":"^0.35.3","tslib":"^2.8.1"},"_hasShrinkwrap":false,"peerDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-compressor_2.0.0_1784913312153_0.24280644615036362","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@adaskothebeast/esbuild-compressor","version":"2.1.0","private":false,"type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","bin":{"esbuild-compressor":"src/cli.js"},"dependencies":{"sharp":"^0.35.3","tslib":"^2.8.1"},"peerDependencies":{"esbuild":"^0.28.1"},"gitHead":"58af1e7ceb718f46241c08db732cfa6f633bc6b0","_id":"@adaskothebeast/esbuild-compressor@2.1.0","description":"Tools for creating pre-compressed `.gz`, `.br`, and optional `.zst` assets from esbuild output or from a completed build directory. It is maintained as an Nx library and published as `@adaskothebeast/esbuild-compressor`.","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-pu0XB86skKqMyc5qRVuCkX/lOIwEnojDfvls+BOp96TgaPavWBGhM2Zp0wzD8VpfhzVVoDNVcH/eWpHItg/xlQ==","shasum":"8353784c351b85ccfd92257b0515f49e68b5251e","tarball":"https://registry.npmjs.org/@adaskothebeast/esbuild-compressor/-/esbuild-compressor-2.1.0.tgz","fileCount":18,"unpackedSize":43534,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDyY57lEvk+ceuEcTd6nPkdD0TQ0qST9zOJ2cxf3uxbMQIhAOj4d/7Twzf6E431t42pdBEJWG94u07QjNu9g0VW8OOy"}]},"_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"directories":{},"maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/esbuild-compressor_2.1.0_1784932103299_0.5975491931182393"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-02T16:34:43.055Z","modified":"2026-07-24T22:28:23.691Z","0.0.1":"2025-02-02T16:34:43.387Z","0.0.2":"2025-02-02T16:54:53.172Z","0.0.3":"2025-02-02T17:29:19.191Z","0.0.4":"2025-02-02T17:36:15.793Z","0.0.5":"2025-02-02T17:43:26.378Z","0.0.6":"2025-02-02T17:46:13.669Z","0.0.7":"2025-02-02T17:51:19.948Z","0.0.8":"2025-02-02T17:57:51.847Z","0.0.9":"2025-02-02T18:07:29.253Z","0.0.10":"2025-02-02T18:11:10.807Z","0.0.11":"2025-02-02T18:15:54.123Z","0.0.12":"2025-02-02T18:19:09.555Z","0.0.13":"2025-02-02T18:30:56.585Z","0.0.14":"2025-02-02T18:32:55.205Z","0.0.15":"2025-02-02T18:35:10.282Z","0.0.16":"2025-02-02T18:41:24.525Z","1.0.0":"2026-07-23T21:08:00.575Z","1.0.1":"2026-07-24T15:56:50.265Z","2.0.0":"2026-07-24T17:15:12.305Z","2.1.0":"2026-07-24T22:28:23.452Z"},"description":"Tools for creating pre-compressed `.gz`, `.br`, and optional `.zst` assets from esbuild output or from a completed build directory. It is maintained as an Nx library and published as `@adaskothebeast/esbuild-compressor`.","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"readme":"# esbuild-compressor\n\nTools for creating pre-compressed `.gz`, `.br`, and optional `.zst` assets from\nesbuild output or from a completed build directory. It is maintained as an Nx\nlibrary and published as `@adaskothebeast/esbuild-compressor`.\n\n## ✨ What it does\n\nThe package provides two complementary modes:\n\n- An esbuild plugin that adds Gzip, Brotli, and optional Zstandard variants to\n  in-memory output files, for pipelines that pass every desired asset through\n  esbuild.\n- A post-build CLI that scans the final output directory. Use this with Angular\n  application builds to compress JavaScript, CSS, HTML, JSON, and SVG files,\n  and to create AVIF/WebP versions of PNG and JPEG images.\n\nThe default extension list is `js`, `mjs`, `cjs`, `css`, `html`, `svg`, `txt`,\nand `json`.\n\nCompression uses Node's `zlib` implementation, so no external binaries are\nrequired, not even for Zstandard. By default it uses best Gzip compression and\nmaximum-quality text-mode Brotli compression. Zstandard is opt-in.\n\nEach algorithm can be toggled independently:\n\n| Algorithm | Flag | Default | Output |\n| --- | --- | --- | --- |\n| Gzip | `gzip` | enabled | `<file>.gz` |\n| Brotli | `brotli` | enabled | `<file>.br` |\n| Zstandard | `zstd` | disabled | `<file>.zst` |\n\n## 🧰 Development setup\n\nThis repository uses Yarn 4.17.1 and Nx. Install dependencies, then use Nx to\nrun project tasks.\n\n```bash\nyarn install\n```\n\n## 🚀 Common commands\n\nRun these commands from the repository root.\n\n| Task | Command |\n| --- | --- |\n| Build the library | `yarn nx build esbuild-compressor` |\n| Run unit tests | `yarn nx test esbuild-compressor` |\n| Lint the library | `yarn nx lint esbuild-compressor` |\n| Format files | `yarn prettier --write .` |\n\n## 🗂️ Project layout\n\n```text\nlibs/esbuild-compressor/\n├── src/\n│   ├── cli.ts                       # Post-build directory CLI\n│   ├── index.ts                     # Library entry point\n│   └── lib/\n│       ├── directory-compressor.ts  # Post-build directory implementation\n│       ├── esbuild-compressor.ts    # Plugin implementation\n│       ├── zstd-compressor.ts       # Optional Zstandard support\n│       └── esbuild-compressor.spec.ts\n├── jest.config.ts\n├── project.json                     # Nx build target\n└── tsconfig.*.json\n```\n\n## ⚙️ Plugin configuration\n\nThe plugin accepts an optional configuration object:\n\n| Option | Purpose |\n| --- | --- |\n| `extensions` | File extensions eligible for compression. |\n| `gzip` | Set to `false` to skip `.gz` output. Enabled by default. |\n| `gzipOptions` | Node `zlib` options for Gzip output. |\n| `brotli` | Set to `false` to skip `.br` output. Enabled by default. |\n| `brotliOptions` | Brotli options, including `params`. |\n| `zstd` | Set to `true` to emit `.zst` output. Disabled by default. |\n| `zstdOptions` | Zstandard options, including `params`. Providing this implies `zstd: true`. |\n| `skipFilesPattern` | Regular-expression pattern for files to leave uncompressed. |\n\n### Option details\n\n#### `extensions`\n\nAn array of filename extensions that are eligible for compression. The extension\nis taken from the generated output filename, including its leading dot. The\ndefault list is `.js`, `.mjs`, `.cjs`, `.css`, `.html`, `.svg`, `.txt`, and\n`.json`.\n\nUse this option to narrow compression to the assets that your deployment serves\nwith `Content-Encoding` support:\n\n```json\n{\n  \"extensions\": [\".js\", \".css\", \".html\"]\n}\n```\n\n#### `gzipOptions`\n\nOptions forwarded to Node's `zlib.gzip` function. This accepts the same values\nas [`zlib.ZlibOptions`](https://nodejs.org/api/zlib.html#class-options), such as\n`level`, `strategy`, or `chunkSize`. If omitted, the plugin uses Node's\nbest-compression level (`zlib.constants.Z_BEST_COMPRESSION`).\n\n```json\n{\n  \"gzipOptions\": {\n    \"level\": 9\n  }\n}\n```\n\n#### `brotliOptions`\n\nOptions for Node's Brotli compressor. Configure Brotli parameters under\n`params`; keys can use the symbolic Node constant names shown below, or their\nnumeric constant values. The plugin maps `BROTLI_PARAM_QUALITY` and\n`BROTLI_PARAM_MODE` to their Node `zlib.constants` equivalents. At present,\nonly the nested `params` object is read; other `brotliOptions` properties are\nnot applied.\n\n```json\n{\n  \"brotliOptions\": {\n    \"params\": {\n      \"BROTLI_PARAM_QUALITY\": 11,\n      \"BROTLI_PARAM_MODE\": 1\n    }\n  }\n}\n```\n\nWhen omitted, the plugin uses maximum Brotli quality and text mode. Confirm\ncompression-time and output-size trade-offs for your application before using\nthe maximum quality level in every build.\n\n#### `gzip` and `brotli`\n\nBoth algorithms run by default. Set the flag to `false` to skip one of them, for\nexample when a CDN already handles Gzip and you only want to ship Brotli:\n\n```json\n{\n  \"gzip\": false,\n  \"brotli\": true\n}\n```\n\n#### `zstd` and `zstdOptions`\n\nZstandard output is opt-in. Enable it with `\"zstd\": true` for the default\ncompression level (19), or supply `zstdOptions.params` for full control.\nProviding `zstdOptions` implies `zstd: true`; `\"zstd\": false` always wins.\n\n```json\n{\n  \"zstd\": true,\n  \"zstdOptions\": {\n    \"params\": {\n      \"ZSTD_c_compressionLevel\": 22,\n      \"ZSTD_c_checksumFlag\": 0\n    }\n  }\n}\n```\n\nAny `ZSTD_c_*` name from\n[Node's Zstd constants](https://nodejs.org/api/zlib.html#zstd-constants) is\naccepted, as are raw numeric parameter ids. Unknown keys are reported through\n`console.warn` and ignored.\n\nZstandard compression uses `zlib.zstdCompress`, available in Node.js 22.15 and\n24 or newer. On an older runtime the compressor warns once and simply skips\n`.zst` output instead of failing the build. No `zstd` CLI binary is needed.\n\n> ⚠️ **Before you enable `zstd`, check that your web server can serve it.**\n> There is no nginx module that serves pre-compressed `.zst` files the way\n> `gzip_static` and `brotli_static` do, and nginx has no `zstd_static`\n> equivalent in the mainline distribution. `Content-Encoding: zstd` is supported\n> by current Chromium and Firefox, but on nginx you would have to map the files\n> manually (for example with `try_files` plus an explicit\n> `Content-Encoding: zstd` header) or use a server that supports it natively,\n> such as Caddy or Envoy. Keep Gzip and Brotli enabled as the portable baseline.\n\n### Skipping files with `skipFilesPattern`\n\n`skipFilesPattern` is a JavaScript regular-expression string that is tested\nagainst each output file path. If it matches, the plugin leaves that file\nunchanged and does not create its `.gz`, `.br`, or `.zst` variants. Use it for assets\nthat must remain readable at runtime, are already compressed, or are served\nwith special handling.\n\nIn `project.json`, escape regular-expression backslashes because the value is a\nJSON string. For example, this pattern skips the Angular `env-config` bundle\nand any hashed variant of it:\n\n```json\n{\n  \"skipFilesPattern\": \"env-config.*\\\\.js$\"\n}\n```\n\nThe equivalent regular expression is `env-config.*\\.js$`: it matches paths\nending in `env-config.js` and names such as `env-config.abc123.js`. The `$`\nanchor prevents similarly named files with another extension from matching.\n\n## Esbuild plugin example\n\nFor a pipeline in which esbuild produces all the assets that need compression,\nregister the plugin in the build target's `options.plugins` array:\n\n```json\n{\n  \"targets\": {\n    \"build\": {\n      \"executor\": \"@nx/angular:browser-esbuild\",\n      \"options\": {\n        \"plugins\": [\n          {\n            \"path\": \"node_modules/@adaskothebeast/esbuild-compressor/src/lib/esbuild-compressor.js\",\n            \"options\": {\n              \"extensions\": [\".js\", \".css\", \".html\"],\n              \"skipFilesPattern\": \"env-config.*\\\\.js$\",\n              \"gzipOptions\": {\n                \"level\": 9\n              },\n              \"brotliOptions\": {\n                \"params\": {\n                  \"BROTLI_PARAM_QUALITY\": 11\n                }\n              }\n            }\n          }\n        ],\n        \"outputPath\": \"dist/apps/ui\"\n      }\n    }\n  }\n}\n```\n\n## Nx Angular application integration\n\nAngular's `@nx/angular:application` builder produces JavaScript, global CSS,\nand `index.html` in separate stages. Configure the post-build CLI so it sees the\ncompleted browser directory and creates every derived asset.\n\nInstall version 2 or later:\n\n```bash\nyarn add --dev @adaskothebeast/esbuild-compressor@^2.0.0\n```\n\nCreate `tools/ui-compression.config.cjs`:\n\n```js\n/** @type {import('@adaskothebeast/esbuild-compressor').DirectoryCompressionOptions} */\nmodule.exports = {\n  directory: 'dist/apps/ui/browser',\n  extensions: ['.js', '.css', '.html', '.json', '.svg'],\n  skipFilesPattern: 'env-config.*\\\\.js$',\n  gzipOptions: { level: 9 },\n  brotliOptions: {\n    params: { BROTLI_PARAM_QUALITY: 11 },\n  },\n  // Optional, see the zstd caveat above before enabling it.\n  // zstd: true,\n  // zstdOptions: { params: { ZSTD_c_compressionLevel: 22 } },\n  imageExtensions: ['.png', '.jpg', '.jpeg'],\n  imageFormats: {\n    avif: { quality: 50 },\n    webp: { quality: 75 },\n  },\n};\n```\n\nChoose one of the following integration patterns. Both run the compressor after\nAngular has written the complete browser output; the difference is only the\ncommand developers and CI invoke.\n\n### Option A: explicit compression target\n\nAdd a target in the application's `project.json`:\n\n```json\n{\n  \"targets\": {\n    \"compress\": {\n      \"executor\": \"nx:run-commands\",\n      \"dependsOn\": [\"build\"],\n      \"options\": {\n        \"command\": \"esbuild-compressor --config tools/ui-compression.config.cjs\"\n      }\n    }\n  }\n}\n```\n\nRun `nx run ui:compress` to build and then generate the compressed artifacts.\nThe command writes `main.js.gz`, `main.js.br`, `styles.css.gz`,\n`styles.css.br`, `index.html.gz`, and similar outputs alongside their source\nassets. A `logo.png` input produces `logo.avif` and `logo.webp`. The skip\npattern applies to both compression and image conversion, so the example leaves\nthe injected `env-config` file untouched.\n\n### Option B: keep `nx build` as the only command\n\nIf the deployment workflow must remain `nx build ui`, rename the current Angular\n`build` target to `application-build`, then create a wrapper `build` target:\n\n```json\n{\n  \"targets\": {\n    \"application-build\": {\n      \"executor\": \"@nx/angular:application\",\n      \"options\": {\n        \"browser\": \"apps/ui/src/main.ts\",\n        \"outputPath\": \"dist/apps/ui\",\n        \"tsConfig\": \"apps/ui/tsconfig.app.json\"\n      }\n    },\n    \"build\": {\n      \"executor\": \"nx:run-commands\",\n      \"options\": {\n        \"commands\": [\n          \"nx run ui:application-build\",\n          \"esbuild-compressor --config tools/ui-compression.config.cjs\"\n        ]\n      }\n    }\n  }\n}\n```\n\nKeep all existing Angular build options and configurations on\n`application-build`; the shortened example shows only the relevant fields. If a\n`serve` target uses `buildTarget`, point it to `ui:application-build` so the dev\nserver continues to invoke the native Angular builder.\n\nRemove the esbuild `plugins` entry from the Angular `application` target when\nusing either option. The directory compressor handles the final output\ncomprehensively, while the esbuild plugin only sees the JavaScript bundle stage.\n\nWhen changing the plugin, add or update coverage in\n`src/lib/esbuild-compressor.spec.ts` and run the build, lint, and test commands\nbefore opening a pull request.\n\n## ✅ Contribution expectations\n\n- Keep changes focused and covered by tests where behavior changes.\n- Run Prettier before committing; import ordering is handled by the configured\n  Prettier plugin.\n- Do not commit generated build output, coverage reports, or compressed test\n  artifacts.\n\n## 📄 License\n\nMIT. See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}