{"_id":"@avensia-oss/critical-css","_rev":"9-b19d307e9815cb02197ed31e66d8b8d1","name":"@avensia-oss/critical-css","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.0":{"name":"@avensia-oss/critical-css","version":"1.0.0","keywords":["critical","css"],"author":{"name":"Erik Källén","email":"erik.kallen@avensia.com"},"license":"MIT","_id":"@avensia-oss/critical-css@1.0.0","maintainers":[{"name":"avensia-oss","email":"andekd@avensia.com"}],"homepage":"https://github.com/avensia-oss/critical-css","bugs":{"url":"https://github.com/avensia-oss/critical-css"},"dist":{"shasum":"0c08b197a9f7efc8391750f492b55a0939fba314","tarball":"https://registry.npmjs.org/@avensia-oss/critical-css/-/critical-css-1.0.0.tgz","fileCount":5,"integrity":"sha512-ZYAJD53XhfIHBPvoCJYM/qqW3gxO3HztXF3K/79ohTSsV7TDG519TlKk6toyKZq5rvnoVz00THib90fp3Ql5Fg==","signatures":[{"sig":"MEYCIQD2KFZ+GejNxPBCiivptL4RKc96fguBKYKsyXyTI+Q89QIhAOeQXXGmzRSlKqdCQ0Nr+vdHE3+1YlIC+7jaRDmuZamk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17045,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAotjCRA9TVsSAnZWagAA0aMP/19Jwet/jTvgt/D5prKk\nyQpa71rj5VmrE2Ggo05Jk5KKxwmJGhGxZy2ksjOMQJBoKdUD93PPX/xvFVLu\nIIrS6rmui+KAoAZbQXybKs/2CTZc3xWJ09nAsgU6xtFit50cQsHyx4tFCLMl\n0MOCgrwNCtURJ1aRkMx9PYUU0SYB1lgk6BOYEg9aCo7DcJuodo+5xajJLCnC\nt2vumu5PTwOPognET6RMLxGPbZaJ/wEAwyCqjOmosV0lc+cBRY4aoNvvCED8\ncYrI0EjHbXmQgeBLPJ18yR2V5iZNHBt+azTwi4SZRIb4Z99pB+3+SeG0wOal\ntzm+/6wnT0ULWnt2MPpfampOBQaGmfwiFKllAMEzLFD4O2ABoGJ5fwbbFD1N\noS+GwDG7dscVEZLk7jN7CasJW0CqvqauESVD3HWqYnoToICGlWTu/5iVNyod\nPXfJpCFTiXwwq9DYy7PP+A1w0IDQQMTU8Cdl12Fp4RxyATlJtoRAyCpXyOpW\nB8m70w3ztbQLuOTdagmhgLws0BtDaSQ10dTwGpUmkVZFqUSJxgnhaejf+qau\nAzh7kQ5n/DhlxVC53cVpXvdbG8evVuIAl6NYaeNw6ozbmrzwSPhxc9MSuyDa\nxocU9s/7R92LeIOQB1JIWygWY6HPIGBz3Gt1u3diVg6I+6AUrZgLi2YdZ3zh\nb++S\r\n=MVca\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"c0bafcfced2a33f4928bb4dec56eb506fced652c","private":false,"scripts":{"test":"jest","build":"tsc --version && tsc --project \"./src\""},"_npmUser":{"name":"avensia-oss","email":"andekd@avensia.com"},"_npmVersion":"6.4.1","description":"A library that extracts the CSS selectors that are necessary to render a specific piece of HTML","directories":{},"_nodeVersion":"10.13.0","dependencies":{"csso":"^3.5.1","css-tree":"^1.0.0-alpha.28","node-html-parser":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslib":"^1.10.0","ts-jest":"^24.0.2","typescript":"^3.5.1","@types/csso":"*","@types/jest":"^24.0.14","@types/css-tree":"*"},"_npmOperationalInternal":{"tmp":"tmp/critical-css_1.0.0_1560447842703_0.5391522324984881","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@avensia-oss/critical-css","version":"2.0.0","keywords":["critical","css"],"author":{"name":"Erik Källén","email":"erik.kallen@avensia.com"},"license":"MIT","_id":"@avensia-oss/critical-css@2.0.0","maintainers":[{"name":"avensia-oss","email":"andekd@avensia.com"}],"homepage":"https://github.com/avensia-oss/critical-css","bugs":{"url":"https://github.com/avensia-oss/critical-css"},"dist":{"shasum":"4346f6dbb0465b48eb880ec25f6e7e0bdf2353f4","tarball":"https://registry.npmjs.org/@avensia-oss/critical-css/-/critical-css-2.0.0.tgz","fileCount":5,"integrity":"sha512-GC+4U7iLmHV+rutWqUgnSQ3AtdvEexZo8nDfE8xh0YcRWtC/UaGmXJurIzTZsVUXQczgWxcQ1zDevtXNQYH75A==","signatures":[{"sig":"MEUCIQDsDXMSWR5levzbWKOURT6PIG4ns7d52pLRgCgJIkWPTQIgSy2eGq1WJlXNixk73gDQp6Rly12nzdrV25IzjzKWPqE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14809,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdA792CRA9TVsSAnZWagAACFQP/1l2yuSxbgOamKUuMJvQ\n8fYBygB/QTE0omOPYCzKXoy9WpR1Y5k6n/hOEKMiS971vUZnbbQ4PzDvSWFO\n0j4DUcB5Uavjk8lx45DPZP87a09ir/E7CwMSbfYtv3tfkLET+YIG008pRPLU\ndAo8/51J6oSb0tVKo64KZoZ1ErVx7TFgs+MP9DcHUijaTeHNdZ3kIhJMOJHF\nuxV7mNZl3FMSG+GJ5c5IsLYtfZzFO1fmF6sGVa2UeU9QYw+5t9Lb4Bd50gTW\nfBkvxhjJWwod77nx4DnYHUYGPPS3ClzpiJG2pWdN1OnXziD+aIIrVGZeN/TP\nGdsCkyaqz2MHhaL+0SQPBRZ7fwa+wi1KJ6AP5qHGtK29J3VaSTCVU7d0mE2r\n9IQHNS0Y7wflqvKvdp93MwqraoOpANbU4mWBk0T7D8AlfHhfcOdZbaii+Zyv\nXDd5kANinrZwP6tGdsQcceodHYoW9MP1kSVqQdXG9uFXqrrvzLr3uHRVrF3K\ngMnN4IC+IJ/bb9fMGBbfWThLbPOICFhdaztyycma9NHHfL6gthJ9xaY1QrBF\nxAFpV4PzV+EhIdA9kIe01mDWdahiflqslTvpMWsHaS8vcYr+i7dDzGBuPoUD\nT1E4LC8IFLPQtIN0PeaFUsp5/lePNq5u5Zfuv9Rx+VfWE1vyQ2JGa2Pb1jrh\na2NT\r\n=JPZr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"c070152ffdf26ba9f315520bd5e7a5a91bd3e2d6","private":false,"scripts":{"test":"jest","build":"tsc --version && tsc --project \"./src\""},"_npmUser":{"name":"avensia-oss","email":"andekd@avensia.com"},"_npmVersion":"6.4.1","description":"A library that extracts the CSS selectors that are necessary to render a specific piece of HTML","directories":{},"_nodeVersion":"10.13.0","dependencies":{"css-tree":"^1.0.0-alpha.28","node-html-parser":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslib":"^1.10.0","ts-jest":"^24.0.2","typescript":"^3.5.1","@types/jest":"^24.0.14","@types/css-tree":"*"},"_npmOperationalInternal":{"tmp":"tmp/critical-css_2.0.0_1560526709545_0.7572980276556556","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"@avensia-oss/critical-css","version":"2.1.0","keywords":["critical","css"],"author":{"name":"Erik Källén","email":"erik.kallen@avensia.com"},"license":"MIT","_id":"@avensia-oss/critical-css@2.1.0","maintainers":[{"name":"avensia-oss","email":"johan.book@avensia.com"}],"homepage":"https://github.com/avensia-oss/critical-css","bugs":{"url":"https://github.com/avensia-oss/critical-css"},"dist":{"shasum":"ec1afad52a6d7107df9e1cca0fbfe23e0dabeda4","tarball":"https://registry.npmjs.org/@avensia-oss/critical-css/-/critical-css-2.1.0.tgz","fileCount":3,"integrity":"sha512-vnlWytJ7CmdE314GVZpqPIfX0HF5HqLCQKXflBlwCAkh+lPbeia1q1TpKzikJjVfuGYsap1eNMVoQ6sJqYgzOw==","signatures":[{"sig":"MEYCIQDnbwUB/n38NCEQPVYzSZXahJahi55pE+kzl1thmJXvcgIhANBeFVLN5nc088/xGaGB63QhQmP18x3xEMViYlzTiL+4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhqiJeCRA9TVsSAnZWagAA9ywP/2KoP5uxOiZ9cD3y6oOD\nPFunnTOMFG+8aSSBYMLWQYBKN7WSBP02v6LsJE1s4psu69qyZBdOkBuJQ4yW\n82KDbtcMF4HQlKfW+qLzXjXoddrJIEFvTcxo7uXTPBl7ukYUctYmn49+E6I4\nsfmk86x+LZE5DDH9PDSUJRU/B2S7HXieHcO3ETGuQYQZwU9qGysewW2r4MaZ\nRKFo9/tUFxtL7jn+2TlYoyP3PDLoRbiJnkpmpFdP+kIlSIvuOh3hCJ0SOp01\nmZeF3rMh+jzP005gO02a3eehU/vfKPGJ0QayPinD7Shz9b7/VPEZUOnaRiGQ\nDoDFLEQFQfXPis815nmxeW+ax9OY81Lnnz9u/i4bF9ZcF/JsHXXwiA7OVWn2\nrwkASUuhEPRjQ/o/CXtE8EawywcM3b3NXRu3SX6vqwkTgNsyi6Sxg/xo0KVM\nznaWtSk0F+7rzFch05i1dfkQb2xUjfnEodsCVk8Ca1G9XN50uLqaAxPKLtwc\np7rIzBFKQWPYDrgtuGUfz9HBsOwVim2i+3AVDqviQ9JAv1O0MCdOvJkw7XmI\n5QTQrQshHSJ8F4nV6oVd38ZGVLcHjVPDop8NZeo+euDrIQeHlOQxRR5aBcMz\n8U/nJo0vadPfVNJ2+BpcQP+8vZ/xCv1t9DQ1ory+v0GWleof9EmhrJWCMgDN\nPE4p\r\n=170O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"966993d3dd635a49a1c39442951e9e117b85d7b6","private":false,"scripts":{"test":"jest","build":"tsc --version && tsc --project \"./src\""},"_npmUser":{"name":"avensia-oss","email":"johan.book@avensia.com"},"_npmVersion":"6.14.15","description":"A library that extracts the CSS selectors that are necessary to render a specific piece of HTML","directories":{},"_nodeVersion":"14.18.0","dependencies":{"css-tree":"^1.0.0","node-html-parser":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslib":"^1.10.0","ts-jest":"^24.0.2","typescript":"^3.5.1","@types/jest":"^24.0.14","@types/css-tree":"*"},"_npmOperationalInternal":{"tmp":"tmp/critical-css_2.1.0_1638539870631_0.10994090641700316","host":"s3://npm-registry-packages"}},"2.1.1":{"name":"@avensia-oss/critical-css","version":"2.1.1","keywords":["critical","css"],"author":{"name":"Erik Källén","email":"erik.kallen@avensia.com"},"license":"MIT","_id":"@avensia-oss/critical-css@2.1.1","maintainers":[{"name":"avensia-oss","email":"johan.book@avensia.com"}],"homepage":"https://github.com/avensia-oss/critical-css","bugs":{"url":"https://github.com/avensia-oss/critical-css"},"dist":{"shasum":"decb45e1d3392ecf6fc692def1f38989ba27e797","tarball":"https://registry.npmjs.org/@avensia-oss/critical-css/-/critical-css-2.1.1.tgz","fileCount":5,"integrity":"sha512-XO66fnpkAwF2hJxGvYyHz8mLwtXDHEzNLI89Q17RCnOt9km/pn3URqm3Xc/cbaEosf38+iVw/WGmR/UTZGl9og==","signatures":[{"sig":"MEYCIQDKGtLF0zwYSu1SZ+ZOUakIE5CyaU4lkszgmPyUbQvZtwIhAPyhQPn5onJkB3nYT1Qk5IqrdObQZBL/7WH/zeJLtOEi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15214,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhqivlCRA9TVsSAnZWagAAT2IP/A5ilhDZ4RhC3Eaj2IDW\nn9v8+jRhkk7cxZZadIKaiH7tV/Bk+ae81PJ1juRVr5sGnu32N1d3UkeDtGwP\nJL3byl8/QNfnY4zz6BG1zxRif/9ZRXqbzLFerWcgLTbI/sj4l9sMkPj5bBz1\n0mw4SyaocG67sydJHkzhM4AN3FzdeV30oXkpaALpjQbwGbXy6Qso0neLsvn5\nBZHaHSMKqAHXRcakw3Z0+EZObiY4rBaMX18YOgnvYllG+adCSYIn1reFsJW0\nIRjC17R2zMcEA1ILzP0nYx8qivslWfrMWiFFE1zgMGz+bbi5tMeR1Ejpq13W\njOU27y0CZ2XoD/jTzFd609gS+aiYRZdhV9yC9ZjOmEl9hVtoJWQBI6oS+eG9\nyjYG6wIiiQbudaN/8+68+NUqx49OeOxyxcKKwa8qyNPfHdkDQKqyhTRnirVp\neqMRusY+fpk2R/txztJUcptNsfCJGU6QBd2BGOb+0A7fZgOtyG1I5Yj9cIK7\n1dLqc0fWX7jLi61LR/A6mEjNOBhBKS87JBNBfkEMBSKT6APplYooE2iBdlfo\nE6n4nUPMJIAXMQpNwdqKeG4QyUYk1pmwqTO5enXS7WJif0RTtSmWLpHeIeNR\nfZ7VHk13haYI1YcH/If5ZkbNyRHIBJvLO/gwV+kULpjLMIn29QshtccP8fmd\neDl0\r\n=xYVg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"535188dfd7d6114c601db4c0e4992374b0d53ff9","private":false,"scripts":{"test":"jest","build":"tsc --version && tsc --project \"./src\""},"_npmUser":{"name":"avensia-oss","email":"johan.book@avensia.com"},"_npmVersion":"6.14.15","description":"A library that extracts the CSS selectors that are necessary to render a specific piece of HTML","directories":{},"_nodeVersion":"14.18.0","dependencies":{"css-tree":"^1.0.0","node-html-parser":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslib":"^1.10.0","ts-jest":"^24.0.2","typescript":"^3.5.1","@types/jest":"^24.0.14","@types/css-tree":"*"},"_npmOperationalInternal":{"tmp":"tmp/critical-css_2.1.1_1638542309070_0.2416426254068873","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@avensia-oss/critical-css","version":"3.0.0","keywords":["critical","css"],"author":{"name":"Erik Källén","email":"erik.kallen@avensia.com"},"license":"MIT","_id":"@avensia-oss/critical-css@3.0.0","maintainers":[{"name":"avensia-oss","email":"johan.book@avensia.com"}],"homepage":"https://github.com/avensia-oss/critical-css","bugs":{"url":"https://github.com/avensia-oss/critical-css"},"dist":{"shasum":"0e43c37fa6ae97d35b81829848a8d89d09b86ab2","tarball":"https://registry.npmjs.org/@avensia-oss/critical-css/-/critical-css-3.0.0.tgz","fileCount":5,"integrity":"sha512-eOR3st4EtyVWe9FbMZ4kaW03kcz6bRUkgarL3eq0Q4bGS7By9DB5XFJbWkNkvNGTwKwTy+2mu8Xa5IfdSymWpg==","signatures":[{"sig":"MEUCIQCDAL8Z2Lyd0A4NMwYnhByb2Ydri7Oniqw76jqayvf/xQIgcEjaot+3rQmGBwEoyY+/lFum8d0qvXjLiDQWb6OsxEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15940},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"1d669f806f51694552c629df250e4a21b83aca14","private":false,"scripts":{"test":"jest","build":"tsc --version && tsc --project \"./src\""},"_npmUser":{"name":"avensia-oss","email":"johan.book@avensia.com"},"_npmVersion":"8.19.4","description":"A library that extracts the CSS selectors that are necessary to render a specific piece of HTML","directories":{},"_nodeVersion":"16.20.2","dependencies":{"css-tree":"^1.1.3","node-html-parser":"^1.4.9"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tslib":"^1.10.0","ts-jest":"^29.2.5","ts-node":"^10.4.0","typescript":"^4.9.5","@types/jest":"^29.5.14","@types/node":"*","@types/css-tree":"*"},"_npmOperationalInternal":{"tmp":"tmp/critical-css_3.0.0_1739543420441_0.6097580822831952","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2019-06-13T17:44:02.669Z","modified":"2026-09-21T11:35:03.307Z","1.0.0":"2019-06-13T17:44:02.853Z","2.0.0":"2019-06-14T15:38:29.729Z","2.1.0":"2021-12-03T13:57:50.975Z","2.1.1":"2021-12-03T14:38:29.416Z","3.0.0":"2025-02-14T14:30:20.605Z"},"bugs":{"url":"https://github.com/avensia-oss/critical-css"},"author":{"name":"Erik Källén","email":"erik.kallen@avensia.com"},"license":"MIT","homepage":"https://github.com/avensia-oss/critical-css","keywords":["critical","css"],"description":"A library that extracts the CSS selectors that are necessary to render a specific piece of HTML","maintainers":[{"email":"eric.lindell@avensia.com","name":"lindelleric"},{"email":"johan.book@avensia.com","name":"johboo"},{"email":"johan.nilsson@avensia.com","name":"yoohahn-avensia"}],"readme":"# critical-css\r\n\r\nA library that takes a chunk of CSS and extracts only the parts that are required to correctly render a specific chunk of HTML\r\n\r\n## Usage\r\n\r\nThe library only exports one function: `createCriticalCssExtractor()`, which returns an object with a method `extractFrom()`, which returns a string with only the CSS that is required in order to correctly display the passed HTML.\r\n\r\n### Example\r\n```\r\nimport { createCriticalCssExtractor, PreservedSelectors, CriticalCssExtractor } from '@avensia-oss/critical-css';\r\n\r\nconst css = '.main { display: block; } .unused { display: inline }';\r\nconst html = '<div class=\"main\"><span>Hello, world</span></div>';\r\n\r\nconst preservedSelectors: PreservedSelectors = {\r\n  classes: ['globally-available-classname'],\r\n  ids: ['container'],\r\n  tags: ['html', 'body'],\r\n};\r\n\r\nconst criticalCssExtractor = createCriticalCssExtractor(css);\r\nconst criticalCss = criticalCssExtractor.extractFrom(html, preservedSelectors);\r\n\r\nexpect(criticalCss).toBe('.main { display: block; }');\r\n```\r\n\r\n## Developing\r\n\r\nTo develop in this library, clone the repository and run `npm install`. To build the release version, run `npm build` or run tests by running `npm test`.\r\n","readmeFilename":"README.md"}