Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add basic support resolving conditional package exports #197

Merged
merged 3 commits into from
Jan 16, 2022

Conversation

kherock
Copy link
Contributor

@kherock kherock commented Nov 17, 2021

This adds basic support for importing styles from a bare package export when the package.json is using an exports map. The implementation is loosely inspired by Jest's upcoming support for them:

https://github.com/facebook/jest/blob/bc3c921251193e88eca0d94ca6bd5ab92a137cbf/packages/jest-resolve/src/defaultResolver.ts#L84-L126

I've copied the conditions of webpack's sass-loader with regards to imports from a sass context:

https://github.com/webpack-contrib/sass-loader/blob/0ab22f0a015ac807594482595171b55e8852852c/src/utils.js#L481-L491

@codecov
Copy link

codecov bot commented Jan 16, 2022

Codecov Report

Merging #197 (407733b) into main (b402687) will increase coverage by 0.00%.
The diff coverage is 100.00%.

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #197   +/-   ##
=======================================
  Coverage   99.62%   99.63%           
=======================================
  Files          36       36           
  Lines        1069     1083   +14     
  Branches      298      318   +20     
=======================================
+ Hits         1065     1079   +14     
- Misses          1        4    +3     
+ Partials        3        0    -3     
Impacted Files Coverage Δ
src/loaders/sass/importer.ts 100.00% <100.00%> (ø)
src/loaders/sass/index.ts 96.15% <0.00%> (-0.52%) ⬇️
src/index.ts 99.45% <0.00%> (-0.01%) ⬇️
src/utils/concat.ts 100.00% <0.00%> (ø)
src/loaders/index.ts 97.36% <0.00%> (ø)
src/utils/resolve.ts 100.00% <0.00%> (ø)
src/loaders/stylus.ts 100.00% <0.00%> (ø)
__tests__/helpers/index.ts 100.00% <0.00%> (ø)
src/loaders/postcss/index.ts 100.00% <0.00%> (ø)
src/loaders/postcss/url/index.ts 98.86% <0.00%> (ø)
... and 2 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b402687...407733b. Read the comment docs.

@Anidetrix Anidetrix merged commit 2d390de into Anidetrix:main Jan 16, 2022
github-actions bot pushed a commit to danhuang1202/rollup-plugin-styles that referenced this pull request Jun 3, 2023
# [5.0.0](v4.0.0...v5.0.0) (2023-06-03)

### Bug Fixes

* **csp:** set nonce to style tag from __webpack_nonce__ in run time ([4b4781c](4b4781c))
* function name typo ([d7574fb](d7574fb))
* prioritize `sass` over `node-sass` ([e9a93ef](e9a93ef))
* **treeshakable:** use es5 syntax for treeshakable object ([Anidetrix#177](https://github.com/danhuang1202/rollup-plugin-styles/issues/177)) ([a084834](a084834))

### Features

* **resolve:** `exports` fields support (thanks [@kherock](https://github.com/kherock)) ([eb22803](eb22803))
* respect for `.cjs` files and move towards `exports` fields ([cc391bb](cc391bb))
* **sass:** `exports` conditions ([Anidetrix#197](https://github.com/danhuang1202/rollup-plugin-styles/issues/197)) ([2d390de](2d390de))

### BREAKING CHANGES

* **resolve:** resolver now prioritizes `exports` fields before any others, including `style` inside `exports` over independent `style` field
* `sass` is now the default Sass implementation due to `node-sass` deprecation
github-actions bot pushed a commit to danhuang1202/rollup-plugin-styles that referenced this pull request Jun 3, 2023
# [5.0.0](v4.0.0...v5.0.0) (2023-06-03)

### Bug Fixes

* **csp:** set nonce to style tag from __webpack_nonce__ in run time ([16110e7](16110e7))
* function name typo ([d7574fb](d7574fb))
* prioritize `sass` over `node-sass` ([e9a93ef](e9a93ef))
* **treeshakable:** use es5 syntax for treeshakable object ([Anidetrix#177](https://github.com/danhuang1202/rollup-plugin-styles/issues/177)) ([a084834](a084834))

### Features

* **resolve:** `exports` fields support (thanks [@kherock](https://github.com/kherock)) ([eb22803](eb22803))
* respect for `.cjs` files and move towards `exports` fields ([cc391bb](cc391bb))
* **sass:** `exports` conditions ([Anidetrix#197](https://github.com/danhuang1202/rollup-plugin-styles/issues/197)) ([2d390de](2d390de))

### BREAKING CHANGES

* **resolve:** resolver now prioritizes `exports` fields before any others, including `style` inside `exports` over independent `style` field
* `sass` is now the default Sass implementation due to `node-sass` deprecation
github-actions bot pushed a commit to plumelo/rollup-plugin-styler that referenced this pull request Nov 16, 2023
# 1.0.0 (2023-11-16)

### Bug Fixes

* `onExtract` func check and desc ([4bfaac5](4bfaac5))
* `onExtract` option fix ([65d74cf](65d74cf))
* avoid partial names replacement when aliasing ([f5aa1e2](f5aa1e2))
* avoid postcss warning about no plugins ([dbd72b7](dbd72b7))
* better lf placement for output ([663c184](663c184))
* better match Rollup's hashing method ([1825045](1825045))
* better typedoc ([fb31286](fb31286))
* **build:** add dependabot and dependency badge ([761e3ed](761e3ed))
* **build:** disable minification for use with `patch-package` ([fbba337](fbba337))
* **changelog:** repairs after github breakage ([b01e058](b01e058))
* **ci:** do not release twice ([fc719f2](fc719f2))
* **code generation:** imports should precede exports ([814ccdb](814ccdb))
* **code splitting:** infinite loop on cyclic imports ([4dd0ca3](4dd0ca3))
* **code splitting:** potential over-extraction ([0b94909](0b94909))
* correct filename for single file /w `preserveModules` ([837f9ed](837f9ed))
* correct multi-file detection ([d92d6da](d92d6da))
* correctly resolve file imports with query params ([Anidetrix#148](https://github.com/plumelo/rollup-plugin-styles/issues/148)) ([71bfe87](71bfe87)), closes [Anidetrix#132](https://github.com/plumelo/rollup-plugin-styles/issues/132)
* **deps:** more precise pkg versions ([403158c](403158c))
* do not bundle mime-types ([e444f04](e444f04))
* do not depend on directory structure for hashing ([18c3022](18c3022))
* **extract:** allow paths relative to cwd ([bdfc266](bdfc266))
* **extract:** missing parts of extracted file ([9afa9ac](9afa9ac))
* filter out only related files ([0976e8f](0976e8f))
* fix overwrite style file in preserveModules mode ([2c13345](2c13345))
* fix production build, also speed up builds ([b5b2e4f](b5b2e4f))
* function name typo ([d7574fb](d7574fb))
* hashed url handling ([5735a01](5735a01))
* infinite postcss loop ([c8cf892](c8cf892))
* **injector:** external @babel/runtime ([129aff5](129aff5))
* **injector:** pass selector instead of element as container ([63bc959](63bc959))
* keep references inside declaration ([a6f9b35](a6f9b35)), closes [Anidetrix#159](https://github.com/plumelo/rollup-plugin-styles/issues/159)
* **less:** add plugins to less loader options type ([8b502ef](8b502ef))
* **less:** fileManager inheritance ([aba12a4](aba12a4))
* **less:** fix importer ([7900186](7900186))
* **less:** remove less from bundle ([9dafe0a](9dafe0a))
* **less:** respect `paths` options ([a72ab4c](a72ab4c)), closes [Anidetrix#125](https://github.com/plumelo/rollup-plugin-styles/issues/125)
* **less:** use provided less in importer ([66f0fce](66f0fce))
* **loaders:** clearly show what options are public ([2ab86be](2ab86be))
* **loaders:** run `sourcemap` loader first ([b651be3](b651be3))
* minimize exports in extract mode as well ([ab919d7](ab919d7))
* misc fixes ([a4d3924](a4d3924))
* missing fs-extra ([4173a2a](4173a2a))
* missing/overwritten files ([b4dc69c](b4dc69c))
* more reliable chunk hash augmentation ([91f9b8f](91f9b8f)), closes [Anidetrix#143](https://github.com/plumelo/rollup-plugin-styles/issues/143)
* **multi-entry:** correct and consistent order of single extracted file ([553ca85](553ca85))
* **node:** wrong supported version of Node.js ([3fb9f80](3fb9f80))
* normalize assetFileNames dir ([f551a76](f551a76))
* occasional wrong order in extract mode ([52cb377](52cb377)), closes [Anidetrix#153](https://github.com/plumelo/rollup-plugin-styles/issues/153)
* **options:** `use` type ([41884fb](41884fb))
* **p-queue:** proper default size ([156ebff](156ebff))
* **partials:** incorrect path without dir in url ([68d40be](68d40be))
* **path-utils:** fix relativePath ([e22ca71](e22ca71))
* postcss related types ([df78c78](df78c78))
* prioritize `sass` over `node-sass` ([e9a93ef](e9a93ef))
* proper declaration file ([0b5502b](0b5502b))
* **readme:** clarification ([6f5b995](6f5b995))
* **readme:** fix links ([208c254](208c254))
* **readme:** fix more links ([c4e6690](c4e6690))
* **readme:** tagline wording ([0a55020](0a55020))
* remove <no source> from sourcemap ([b1c32e8](b1c32e8))
* remove debugging log ([e09ac09](e09ac09))
* remove puppeteer ([13bf4e8](13bf4e8))
* resolving `url` outside of first order place ([c61f0ce](c61f0ce)), closes [Anidetrix#126](https://github.com/plumelo/rollup-plugin-styles/issues/126)
* respect `output.file` for main CSS chunk ([19eb9d7](19eb9d7))
* respect content option for minification ([59b3c07](59b3c07))
* respect esm and styles for sync resolves ([0c51253](0c51253))
* respect NODE_ENV ([7a600c3](7a600c3))
* respect programmatic manual chunks as well ([311e0dc](311e0dc))
* respect rollup's sourcemap ([cc6ad34](cc6ad34))
* revert <no source> removal ([8def44e](8def44e))
* **runtime:** safer option check ([78a5922](78a5922))
* **runtime:** working singleTag option ([5d6a5c8](5d6a5c8))
* **sass!:** remove `fibers` support ([8992356](8992356))
* **sass:** do not modify non-module url ([fd022c6](fd022c6))
* **sass:** properly call custom resolvers ([002366f](002366f))
* skip parsing of invalid sourcemaps ([a96d01f](a96d01f))
* small misc fixes and changes ([7cbb05a](7cbb05a))
* **sourcemap:** broken single line URL comments extraction ([fd8ebf9](fd8ebf9))
* **sourcemap:** more reliable detection ([a419361](a419361))
* **sourcemaps:** hashing and fixes for inlining in `extract` mode ([c2bb12d](c2bb12d))
* **styles-url:** clarify which url is unresolved ([aefc263](aefc263))
* **styles:** clean dist ([511ea8d](511ea8d))
* **styles:** fix CSS injector ([f4ccef4](f4ccef4))
* **stylus:** proper sourcesContent ([f9b4774](f9b4774))
* **stylus:** respect local node_modules ([eebbbed](eebbbed))
* test and warning for already processed files ([19fd942](19fd942))
* **treeshakable:** use es5 syntax for treeshakable object ([Anidetrix#177](https://github.com/plumelo/rollup-plugin-styles/issues/177)) ([a084834](a084834))
* trigger release due to `semantic-release` failure (see [here](https://github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md[#354](https://github.com/plumelo/rollup-plugin-styles/issues/354)-2020-05-22)) ([c9e6acf](c9e6acf)), closes [/github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md#354-2020-05-22](https://github.com//github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md/issues/354-2020-05-22)
* typenames too long for typedoc ([13e2d49](13e2d49))
* **types:** fix less typings ([c129dec](c129dec))
* uniform sass error message ([49655a4](49655a4))
* **url handler:** working default `assetDir` ([7187a27](7187a27))
* **url:** consider all possible basedirs ([62353b2](62353b2))
* use path.parse instead of regex ([135b658](135b658))
* **utils:** async resolve types ([08ae382](08ae382))
* very rare double code extraction ([d89a5fe](d89a5fe))

### Features

* .d.ts generation and treeshakeable injector options ([2990cb0](2990cb0))
* allow multiple instances of the plugin ([aa0d4d1](aa0d4d1))
* code splitting rework /w `preserveModules` support ([8f44a7a](8f44a7a))
* **code splitting:** rollup's `manualChunks` option support ([5aeb350](5aeb350))
* **cssnano!:** v5 ([5d6ccc1](5d6ccc1))
* dir in css modules class names ([94d10b2](94d10b2))
* extended browser support (>=ie9, or >=ie8 with polyfills) ([d849278](d849278))
* **importer:** extensions override ([74fcd39](74fcd39))
* **import:** resolve extensions ([9005ab8](9005ab8))
* **injector:** ability to set attibutes ([653e91c](653e91c))
* **injector:** one less polyfill needed for ie8 ([97796d8](97796d8))
* **modules:** customizable `autoModules` ([c3298de](c3298de))
* multi entry support ([840996c](840996c))
* **node:** drop v10 ([5786615](5786615))
* option to disable `sourcesContent` in sourcemaps ([afc440b](afc440b))
* pass resulting filename to sourcemap transformer when possible ([5570cf4](5570cf4))
* postcss 8 upgrade ([b9adee9](b9adee9))
* **postcss:** support both object and array for plugin ([7ce53b9](7ce53b9))
* replace `postcss-load-config` with custom implementation ([50b19bb](50b19bb))
* **resolve:** `exports` fields support (thanks [@kherock](https://github.com/kherock)) ([eb22803](eb22803))
* respect for `.cjs` files and move towards `exports` fields ([cc391bb](cc391bb))
* respect rollup's 2.18.0 option changes ([53072b0](53072b0))
* **sass:** `exports` conditions ([Anidetrix#197](https://github.com/plumelo/rollup-plugin-styles/issues/197)) ([2d390de](2d390de))
* **sass:** sync mode support with dart implementation ([91846bc](91846bc))
* silently skip empty files ([a34bdbf](a34bdbf))
* sourcemap transformation ([ed49328](ed49328)), closes [Anidetrix#160](https://github.com/plumelo/rollup-plugin-styles/issues/160)
* **styles:** add singleTag option for CSS injection ([b7e4ca8](b7e4ca8))
* **styles:** postcss plugins without require ([7db718f](7db718f))
* **styles:** v2 ([21d2c9d](21d2c9d))
* support functional assetFileNames ([91d4ca2](91d4ca2))
* support partials and ~ in Less [@import](https://github.com/import) statements ([b4fbda5](b4fbda5))
* support web url and query strings inside [@import](https://github.com/import) ([bbff4e5](bbff4e5)), closes [Anidetrix#140](https://github.com/plumelo/rollup-plugin-styles/issues/140)
* update deps ([fd44c1f](fd44c1f))
* **url:** automatically inline assets in inject mode ([db7dc9a](db7dc9a))
* v3 ([c0a7daa](c0a7daa))

### Performance Improvements

* bundle minification ([369279a](369279a))
* global p-queue for all loaders ([ccac951](ccac951))
* **less:** less allocations in importer ([bf3710a](bf3710a))
* **less:** less code ([2717427](2717427))
* misc optimizations ([df1d1ee](df1d1ee))
* **modules:** simpler internal implementation ([c1f92e1](c1f92e1))
* overall considerable performance improvements ([6c08d55](6c08d55))
* overall improvements and optimizations ([a460dd0](a460dd0))
* **path:** unneded normalization ([df03c59](df03c59))
* **postcss:** less allocations ([c9ac3f5](c9ac3f5))
* **postcss:** less type checking ([5611655](5611655))
* **project:** refactoring and optimizations ([d3405aa](d3405aa))
* relace import-cwd with resolve ([dd4310e](dd4310e))
* removed deprecated rollup API ([46b73e6](46b73e6))
* replace concat-with-sourcemaps with custom function ([a1b04d2](a1b04d2))
* replace some sets with arrays ([2b7c28e](2b7c28e))
* resolved modules caching ([7eab36d](7eab36d))
* **runtime:** less operations ([7375fe7](7375fe7))
* simpler error handling ([438d5b1](438d5b1))
* **sourcemap:** less operations ([178e2d4](178e2d4))
* **sourcemap:** switch to `source-map-js` ([0488634](0488634))
* **styles:** do not call path.join twice ([272bb8b](272bb8b))
* **styles:** small CSS injector optimization ([fbdd413](fbdd413))
* tiny optimizations ([309e37b](309e37b))
* **types:** trimmed down vendor types ([6a52be8](6a52be8))
* Use Set to optimize performance ([b402687](b402687))

### Reverts

* Revert "chore(release): 3.8.3 [skip ci]" ([49b18ff](49b18ff))

### BREAKING CHANGES

* **resolve:** resolver now prioritizes `exports` fields before any others, including `style` inside `exports` over independent `style` field
* `sass` is now the default Sass implementation due to `node-sass` deprecation
* **node:** Now support v12.20.0 and up
* Some breaking changes occured:
* output.assetFileNames is now respected for both CSS files and assets from CSS
* `extract`'s path now should be relative to output dir/output file's basedir, but not outside of it
* `extract`'s path no longer passed to PostCSS as `to`, added dedicated `to` option instead
* Removed `hash` option from url handler (now handled by Rollup's assetFileName)
* `assetDir` option for url handler no longer affects resulting URL
* signature changes for `onExtract`
As always, please consult documentation and API Reference for details
* **styles:** A lot of API and behavior changes, please consult README and API Reference
github-actions bot pushed a commit to plumelo/rollup-plugin-styler that referenced this pull request Nov 17, 2023
# 1.0.0 (2023-11-17)

### Bug Fixes

* `onExtract` func check and desc ([4bfaac5](4bfaac5))
* `onExtract` option fix ([65d74cf](65d74cf))
* avoid partial names replacement when aliasing ([f5aa1e2](f5aa1e2))
* avoid postcss warning about no plugins ([dbd72b7](dbd72b7))
* better lf placement for output ([663c184](663c184))
* better match Rollup's hashing method ([1825045](1825045))
* better typedoc ([fb31286](fb31286))
* **build:** add dependabot and dependency badge ([761e3ed](761e3ed))
* **build:** disable minification for use with `patch-package` ([fbba337](fbba337))
* **changelog:** repairs after github breakage ([b01e058](b01e058))
* **ci:** do not release twice ([fc719f2](fc719f2))
* **code generation:** imports should precede exports ([814ccdb](814ccdb))
* **code splitting:** infinite loop on cyclic imports ([4dd0ca3](4dd0ca3))
* **code splitting:** potential over-extraction ([0b94909](0b94909))
* correct filename for single file /w `preserveModules` ([837f9ed](837f9ed))
* correct multi-file detection ([d92d6da](d92d6da))
* correctly resolve file imports with query params ([Anidetrix#148](https://github.com/plumelo/rollup-styles/issues/148)) ([71bfe87](71bfe87)), closes [Anidetrix#132](https://github.com/plumelo/rollup-styles/issues/132)
* **deps:** more precise pkg versions ([403158c](403158c))
* do not bundle mime-types ([e444f04](e444f04))
* do not depend on directory structure for hashing ([18c3022](18c3022))
* **extract:** allow paths relative to cwd ([bdfc266](bdfc266))
* **extract:** missing parts of extracted file ([9afa9ac](9afa9ac))
* filter out only related files ([0976e8f](0976e8f))
* fix overwrite style file in preserveModules mode ([2c13345](2c13345))
* fix production build, also speed up builds ([b5b2e4f](b5b2e4f))
* function name typo ([d7574fb](d7574fb))
* hashed url handling ([5735a01](5735a01))
* infinite postcss loop ([c8cf892](c8cf892))
* **injector:** external @babel/runtime ([129aff5](129aff5))
* **injector:** pass selector instead of element as container ([63bc959](63bc959))
* keep references inside declaration ([a6f9b35](a6f9b35)), closes [Anidetrix#159](https://github.com/plumelo/rollup-styles/issues/159)
* **less:** add plugins to less loader options type ([8b502ef](8b502ef))
* **less:** fileManager inheritance ([aba12a4](aba12a4))
* **less:** fix importer ([7900186](7900186))
* **less:** remove less from bundle ([9dafe0a](9dafe0a))
* **less:** respect `paths` options ([a72ab4c](a72ab4c)), closes [Anidetrix#125](https://github.com/plumelo/rollup-styles/issues/125)
* **less:** use provided less in importer ([66f0fce](66f0fce))
* **loaders:** clearly show what options are public ([2ab86be](2ab86be))
* **loaders:** run `sourcemap` loader first ([b651be3](b651be3))
* minimize exports in extract mode as well ([ab919d7](ab919d7))
* misc fixes ([a4d3924](a4d3924))
* missing fs-extra ([4173a2a](4173a2a))
* missing/overwritten files ([b4dc69c](b4dc69c))
* more reliable chunk hash augmentation ([91f9b8f](91f9b8f)), closes [Anidetrix#143](https://github.com/plumelo/rollup-styles/issues/143)
* **multi-entry:** correct and consistent order of single extracted file ([553ca85](553ca85))
* **node:** wrong supported version of Node.js ([3fb9f80](3fb9f80))
* normalize assetFileNames dir ([f551a76](f551a76))
* occasional wrong order in extract mode ([52cb377](52cb377)), closes [Anidetrix#153](https://github.com/plumelo/rollup-styles/issues/153)
* **options:** `use` type ([41884fb](41884fb))
* **p-queue:** proper default size ([156ebff](156ebff))
* **partials:** incorrect path without dir in url ([68d40be](68d40be))
* **path-utils:** fix relativePath ([e22ca71](e22ca71))
* postcss related types ([df78c78](df78c78))
* prioritize `sass` over `node-sass` ([e9a93ef](e9a93ef))
* proper declaration file ([0b5502b](0b5502b))
* **readme:** clarification ([6f5b995](6f5b995))
* **readme:** fix links ([208c254](208c254))
* **readme:** fix more links ([c4e6690](c4e6690))
* **readme:** tagline wording ([0a55020](0a55020))
* remove <no source> from sourcemap ([b1c32e8](b1c32e8))
* remove debugging log ([e09ac09](e09ac09))
* remove puppeteer ([13bf4e8](13bf4e8))
* resolving `url` outside of first order place ([c61f0ce](c61f0ce)), closes [Anidetrix#126](https://github.com/plumelo/rollup-styles/issues/126)
* respect `output.file` for main CSS chunk ([19eb9d7](19eb9d7))
* respect content option for minification ([59b3c07](59b3c07))
* respect esm and styles for sync resolves ([0c51253](0c51253))
* respect NODE_ENV ([7a600c3](7a600c3))
* respect programmatic manual chunks as well ([311e0dc](311e0dc))
* respect rollup's sourcemap ([cc6ad34](cc6ad34))
* revert <no source> removal ([8def44e](8def44e))
* **runtime:** safer option check ([78a5922](78a5922))
* **runtime:** working singleTag option ([5d6a5c8](5d6a5c8))
* **sass!:** remove `fibers` support ([8992356](8992356))
* **sass:** do not modify non-module url ([fd022c6](fd022c6))
* **sass:** properly call custom resolvers ([002366f](002366f))
* skip parsing of invalid sourcemaps ([a96d01f](a96d01f))
* small misc fixes and changes ([7cbb05a](7cbb05a))
* **sourcemap:** broken single line URL comments extraction ([fd8ebf9](fd8ebf9))
* **sourcemap:** more reliable detection ([a419361](a419361))
* **sourcemaps:** hashing and fixes for inlining in `extract` mode ([c2bb12d](c2bb12d))
* **styles-url:** clarify which url is unresolved ([aefc263](aefc263))
* **styles:** clean dist ([511ea8d](511ea8d))
* **styles:** fix CSS injector ([f4ccef4](f4ccef4))
* **stylus:** proper sourcesContent ([f9b4774](f9b4774))
* **stylus:** respect local node_modules ([eebbbed](eebbbed))
* test and warning for already processed files ([19fd942](19fd942))
* **treeshakable:** use es5 syntax for treeshakable object ([Anidetrix#177](https://github.com/plumelo/rollup-styles/issues/177)) ([a084834](a084834))
* trigger release due to `semantic-release` failure (see [here](https://github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md[#354](https://github.com/plumelo/rollup-styles/issues/354)-2020-05-22)) ([c9e6acf](c9e6acf)), closes [/github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md#354-2020-05-22](https://github.com//github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md/issues/354-2020-05-22)
* typenames too long for typedoc ([13e2d49](13e2d49))
* **types:** fix less typings ([c129dec](c129dec))
* uniform sass error message ([49655a4](49655a4))
* **url handler:** working default `assetDir` ([7187a27](7187a27))
* **url:** consider all possible basedirs ([62353b2](62353b2))
* use path.parse instead of regex ([135b658](135b658))
* **utils:** async resolve types ([08ae382](08ae382))
* very rare double code extraction ([d89a5fe](d89a5fe))

### Features

* .d.ts generation and treeshakeable injector options ([2990cb0](2990cb0))
* allow multiple instances of the plugin ([aa0d4d1](aa0d4d1))
* code splitting rework /w `preserveModules` support ([8f44a7a](8f44a7a))
* **code splitting:** rollup's `manualChunks` option support ([5aeb350](5aeb350))
* **cssnano!:** v5 ([5d6ccc1](5d6ccc1))
* dir in css modules class names ([94d10b2](94d10b2))
* extended browser support (>=ie9, or >=ie8 with polyfills) ([d849278](d849278))
* **importer:** extensions override ([74fcd39](74fcd39))
* **import:** resolve extensions ([9005ab8](9005ab8))
* **injector:** ability to set attibutes ([653e91c](653e91c))
* **injector:** one less polyfill needed for ie8 ([97796d8](97796d8))
* **modules:** customizable `autoModules` ([c3298de](c3298de))
* multi entry support ([840996c](840996c))
* **node:** drop v10 ([5786615](5786615))
* option to disable `sourcesContent` in sourcemaps ([afc440b](afc440b))
* pass resulting filename to sourcemap transformer when possible ([5570cf4](5570cf4))
* postcss 8 upgrade ([b9adee9](b9adee9))
* **postcss:** support both object and array for plugin ([7ce53b9](7ce53b9))
* replace `postcss-load-config` with custom implementation ([50b19bb](50b19bb))
* **resolve:** `exports` fields support (thanks [@kherock](https://github.com/kherock)) ([eb22803](eb22803))
* respect for `.cjs` files and move towards `exports` fields ([cc391bb](cc391bb))
* respect rollup's 2.18.0 option changes ([53072b0](53072b0))
* **sass:** `exports` conditions ([Anidetrix#197](https://github.com/plumelo/rollup-styles/issues/197)) ([2d390de](2d390de))
* **sass:** sync mode support with dart implementation ([91846bc](91846bc))
* silently skip empty files ([a34bdbf](a34bdbf))
* sourcemap transformation ([ed49328](ed49328)), closes [Anidetrix#160](https://github.com/plumelo/rollup-styles/issues/160)
* **styles:** add singleTag option for CSS injection ([b7e4ca8](b7e4ca8))
* **styles:** postcss plugins without require ([7db718f](7db718f))
* **styles:** v2 ([21d2c9d](21d2c9d))
* support functional assetFileNames ([91d4ca2](91d4ca2))
* support partials and ~ in Less [@import](https://github.com/import) statements ([b4fbda5](b4fbda5))
* support web url and query strings inside [@import](https://github.com/import) ([bbff4e5](bbff4e5)), closes [Anidetrix#140](https://github.com/plumelo/rollup-styles/issues/140)
* update package ([9f4dd9c](9f4dd9c))
* **url:** automatically inline assets in inject mode ([db7dc9a](db7dc9a))
* v3 ([c0a7daa](c0a7daa))

### Performance Improvements

* bundle minification ([369279a](369279a))
* global p-queue for all loaders ([ccac951](ccac951))
* **less:** less allocations in importer ([bf3710a](bf3710a))
* **less:** less code ([2717427](2717427))
* misc optimizations ([df1d1ee](df1d1ee))
* **modules:** simpler internal implementation ([c1f92e1](c1f92e1))
* overall considerable performance improvements ([6c08d55](6c08d55))
* overall improvements and optimizations ([a460dd0](a460dd0))
* **path:** unneded normalization ([df03c59](df03c59))
* **postcss:** less allocations ([c9ac3f5](c9ac3f5))
* **postcss:** less type checking ([5611655](5611655))
* **project:** refactoring and optimizations ([d3405aa](d3405aa))
* relace import-cwd with resolve ([dd4310e](dd4310e))
* removed deprecated rollup API ([46b73e6](46b73e6))
* replace concat-with-sourcemaps with custom function ([a1b04d2](a1b04d2))
* replace some sets with arrays ([2b7c28e](2b7c28e))
* resolved modules caching ([7eab36d](7eab36d))
* **runtime:** less operations ([7375fe7](7375fe7))
* simpler error handling ([438d5b1](438d5b1))
* **sourcemap:** less operations ([178e2d4](178e2d4))
* **sourcemap:** switch to `source-map-js` ([0488634](0488634))
* **styles:** do not call path.join twice ([272bb8b](272bb8b))
* **styles:** small CSS injector optimization ([fbdd413](fbdd413))
* tiny optimizations ([309e37b](309e37b))
* **types:** trimmed down vendor types ([6a52be8](6a52be8))
* Use Set to optimize performance ([b402687](b402687))

### BREAKING CHANGES

* **resolve:** resolver now prioritizes `exports` fields before any others, including `style` inside `exports` over independent `style` field
* `sass` is now the default Sass implementation due to `node-sass` deprecation
* **node:** Now support v12.20.0 and up
* Some breaking changes occured:
* output.assetFileNames is now respected for both CSS files and assets from CSS
* `extract`'s path now should be relative to output dir/output file's basedir, but not outside of it
* `extract`'s path no longer passed to PostCSS as `to`, added dedicated `to` option instead
* Removed `hash` option from url handler (now handled by Rollup's assetFileName)
* `assetDir` option for url handler no longer affects resulting URL
* signature changes for `onExtract`
As always, please consult documentation and API Reference for details
* **styles:** A lot of API and behavior changes, please consult README and API Reference
github-actions bot pushed a commit to plumelo/rollup-plugin-styler that referenced this pull request Nov 17, 2023
# 1.0.0 (2023-11-17)

### Bug Fixes

* `onExtract` func check and desc ([4bfaac5](4bfaac5))
* `onExtract` option fix ([65d74cf](65d74cf))
* avoid partial names replacement when aliasing ([f5aa1e2](f5aa1e2))
* avoid postcss warning about no plugins ([dbd72b7](dbd72b7))
* better lf placement for output ([663c184](663c184))
* better match Rollup's hashing method ([1825045](1825045))
* better typedoc ([fb31286](fb31286))
* **build:** add dependabot and dependency badge ([761e3ed](761e3ed))
* **build:** disable minification for use with `patch-package` ([fbba337](fbba337))
* **changelog:** repairs after github breakage ([b01e058](b01e058))
* **ci:** do not release twice ([fc719f2](fc719f2))
* **code generation:** imports should precede exports ([814ccdb](814ccdb))
* **code splitting:** infinite loop on cyclic imports ([4dd0ca3](4dd0ca3))
* **code splitting:** potential over-extraction ([0b94909](0b94909))
* correct filename for single file /w `preserveModules` ([837f9ed](837f9ed))
* correct multi-file detection ([d92d6da](d92d6da))
* correctly resolve file imports with query params ([Anidetrix#148](https://github.com/plumelo/rollup-styles/issues/148)) ([71bfe87](71bfe87)), closes [Anidetrix#132](https://github.com/plumelo/rollup-styles/issues/132)
* **deps:** more precise pkg versions ([403158c](403158c))
* do not bundle mime-types ([e444f04](e444f04))
* do not depend on directory structure for hashing ([18c3022](18c3022))
* **extract:** allow paths relative to cwd ([bdfc266](bdfc266))
* **extract:** missing parts of extracted file ([9afa9ac](9afa9ac))
* filter out only related files ([0976e8f](0976e8f))
* fix overwrite style file in preserveModules mode ([2c13345](2c13345))
* fix production build, also speed up builds ([b5b2e4f](b5b2e4f))
* function name typo ([d7574fb](d7574fb))
* hashed url handling ([5735a01](5735a01))
* infinite postcss loop ([c8cf892](c8cf892))
* **injector:** external @babel/runtime ([129aff5](129aff5))
* **injector:** pass selector instead of element as container ([63bc959](63bc959))
* keep references inside declaration ([a6f9b35](a6f9b35)), closes [Anidetrix#159](https://github.com/plumelo/rollup-styles/issues/159)
* **less:** add plugins to less loader options type ([8b502ef](8b502ef))
* **less:** fileManager inheritance ([aba12a4](aba12a4))
* **less:** fix importer ([7900186](7900186))
* **less:** remove less from bundle ([9dafe0a](9dafe0a))
* **less:** respect `paths` options ([a72ab4c](a72ab4c)), closes [Anidetrix#125](https://github.com/plumelo/rollup-styles/issues/125)
* **less:** use provided less in importer ([66f0fce](66f0fce))
* **loaders:** clearly show what options are public ([2ab86be](2ab86be))
* **loaders:** run `sourcemap` loader first ([b651be3](b651be3))
* minimize exports in extract mode as well ([ab919d7](ab919d7))
* misc fixes ([a4d3924](a4d3924))
* missing fs-extra ([4173a2a](4173a2a))
* missing/overwritten files ([b4dc69c](b4dc69c))
* more reliable chunk hash augmentation ([91f9b8f](91f9b8f)), closes [Anidetrix#143](https://github.com/plumelo/rollup-styles/issues/143)
* **multi-entry:** correct and consistent order of single extracted file ([553ca85](553ca85))
* **node:** wrong supported version of Node.js ([3fb9f80](3fb9f80))
* normalize assetFileNames dir ([f551a76](f551a76))
* occasional wrong order in extract mode ([52cb377](52cb377)), closes [Anidetrix#153](https://github.com/plumelo/rollup-styles/issues/153)
* **options:** `use` type ([41884fb](41884fb))
* **p-queue:** proper default size ([156ebff](156ebff))
* **partials:** incorrect path without dir in url ([68d40be](68d40be))
* **path-utils:** fix relativePath ([e22ca71](e22ca71))
* postcss related types ([df78c78](df78c78))
* prioritize `sass` over `node-sass` ([e9a93ef](e9a93ef))
* proper declaration file ([0b5502b](0b5502b))
* **readme:** clarification ([6f5b995](6f5b995))
* **readme:** fix links ([208c254](208c254))
* **readme:** fix more links ([c4e6690](c4e6690))
* **readme:** tagline wording ([0a55020](0a55020))
* remove <no source> from sourcemap ([b1c32e8](b1c32e8))
* remove debugging log ([e09ac09](e09ac09))
* remove puppeteer ([13bf4e8](13bf4e8))
* resolving `url` outside of first order place ([c61f0ce](c61f0ce)), closes [Anidetrix#126](https://github.com/plumelo/rollup-styles/issues/126)
* respect `output.file` for main CSS chunk ([19eb9d7](19eb9d7))
* respect content option for minification ([59b3c07](59b3c07))
* respect esm and styles for sync resolves ([0c51253](0c51253))
* respect NODE_ENV ([7a600c3](7a600c3))
* respect programmatic manual chunks as well ([311e0dc](311e0dc))
* respect rollup's sourcemap ([cc6ad34](cc6ad34))
* revert <no source> removal ([8def44e](8def44e))
* **runtime:** safer option check ([78a5922](78a5922))
* **runtime:** working singleTag option ([5d6a5c8](5d6a5c8))
* **sass!:** remove `fibers` support ([8992356](8992356))
* **sass:** do not modify non-module url ([fd022c6](fd022c6))
* **sass:** properly call custom resolvers ([002366f](002366f))
* skip parsing of invalid sourcemaps ([a96d01f](a96d01f))
* small misc fixes and changes ([7cbb05a](7cbb05a))
* **sourcemap:** broken single line URL comments extraction ([fd8ebf9](fd8ebf9))
* **sourcemap:** more reliable detection ([a419361](a419361))
* **sourcemaps:** hashing and fixes for inlining in `extract` mode ([c2bb12d](c2bb12d))
* **styles-url:** clarify which url is unresolved ([aefc263](aefc263))
* **styles:** clean dist ([511ea8d](511ea8d))
* **styles:** fix CSS injector ([f4ccef4](f4ccef4))
* **stylus:** proper sourcesContent ([f9b4774](f9b4774))
* **stylus:** respect local node_modules ([eebbbed](eebbbed))
* test and warning for already processed files ([19fd942](19fd942))
* **treeshakable:** use es5 syntax for treeshakable object ([Anidetrix#177](https://github.com/plumelo/rollup-styles/issues/177)) ([a084834](a084834))
* trigger release due to `semantic-release` failure (see [here](https://github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md[#354](https://github.com/plumelo/rollup-styles/issues/354)-2020-05-22)) ([c9e6acf](c9e6acf)), closes [/github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md#354-2020-05-22](https://github.com//github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md/issues/354-2020-05-22)
* typenames too long for typedoc ([13e2d49](13e2d49))
* **types:** fix less typings ([c129dec](c129dec))
* uniform sass error message ([49655a4](49655a4))
* **url handler:** working default `assetDir` ([7187a27](7187a27))
* **url:** consider all possible basedirs ([62353b2](62353b2))
* use path.parse instead of regex ([135b658](135b658))
* **utils:** async resolve types ([08ae382](08ae382))
* very rare double code extraction ([d89a5fe](d89a5fe))

### Features

* .d.ts generation and treeshakeable injector options ([2990cb0](2990cb0))
* allow multiple instances of the plugin ([aa0d4d1](aa0d4d1))
* code splitting rework /w `preserveModules` support ([8f44a7a](8f44a7a))
* **code splitting:** rollup's `manualChunks` option support ([5aeb350](5aeb350))
* **cssnano!:** v5 ([5d6ccc1](5d6ccc1))
* dir in css modules class names ([94d10b2](94d10b2))
* extended browser support (>=ie9, or >=ie8 with polyfills) ([d849278](d849278))
* **importer:** extensions override ([74fcd39](74fcd39))
* **import:** resolve extensions ([9005ab8](9005ab8))
* **injector:** ability to set attibutes ([653e91c](653e91c))
* **injector:** one less polyfill needed for ie8 ([97796d8](97796d8))
* **modules:** customizable `autoModules` ([c3298de](c3298de))
* multi entry support ([840996c](840996c))
* **node:** drop v10 ([5786615](5786615))
* option to disable `sourcesContent` in sourcemaps ([afc440b](afc440b))
* pass resulting filename to sourcemap transformer when possible ([5570cf4](5570cf4))
* postcss 8 upgrade ([b9adee9](b9adee9))
* **postcss:** support both object and array for plugin ([7ce53b9](7ce53b9))
* replace `postcss-load-config` with custom implementation ([50b19bb](50b19bb))
* **resolve:** `exports` fields support (thanks [@kherock](https://github.com/kherock)) ([eb22803](eb22803))
* respect for `.cjs` files and move towards `exports` fields ([cc391bb](cc391bb))
* respect rollup's 2.18.0 option changes ([53072b0](53072b0))
* **sass:** `exports` conditions ([Anidetrix#197](https://github.com/plumelo/rollup-styles/issues/197)) ([2d390de](2d390de))
* **sass:** sync mode support with dart implementation ([91846bc](91846bc))
* silently skip empty files ([a34bdbf](a34bdbf))
* sourcemap transformation ([ed49328](ed49328)), closes [Anidetrix#160](https://github.com/plumelo/rollup-styles/issues/160)
* **styles:** add singleTag option for CSS injection ([b7e4ca8](b7e4ca8))
* **styles:** postcss plugins without require ([7db718f](7db718f))
* **styles:** v2 ([21d2c9d](21d2c9d))
* support functional assetFileNames ([91d4ca2](91d4ca2))
* support partials and ~ in Less [@import](https://github.com/import) statements ([b4fbda5](b4fbda5))
* support web url and query strings inside [@import](https://github.com/import) ([bbff4e5](bbff4e5)), closes [Anidetrix#140](https://github.com/plumelo/rollup-styles/issues/140)
* update package ([9f4dd9c](9f4dd9c))
* **url:** automatically inline assets in inject mode ([db7dc9a](db7dc9a))
* v3 ([c0a7daa](c0a7daa))

### Performance Improvements

* bundle minification ([369279a](369279a))
* global p-queue for all loaders ([ccac951](ccac951))
* **less:** less allocations in importer ([bf3710a](bf3710a))
* **less:** less code ([2717427](2717427))
* misc optimizations ([df1d1ee](df1d1ee))
* **modules:** simpler internal implementation ([c1f92e1](c1f92e1))
* overall considerable performance improvements ([6c08d55](6c08d55))
* overall improvements and optimizations ([a460dd0](a460dd0))
* **path:** unneded normalization ([df03c59](df03c59))
* **postcss:** less allocations ([c9ac3f5](c9ac3f5))
* **postcss:** less type checking ([5611655](5611655))
* **project:** refactoring and optimizations ([d3405aa](d3405aa))
* relace import-cwd with resolve ([dd4310e](dd4310e))
* removed deprecated rollup API ([46b73e6](46b73e6))
* replace concat-with-sourcemaps with custom function ([a1b04d2](a1b04d2))
* replace some sets with arrays ([2b7c28e](2b7c28e))
* resolved modules caching ([7eab36d](7eab36d))
* **runtime:** less operations ([7375fe7](7375fe7))
* simpler error handling ([438d5b1](438d5b1))
* **sourcemap:** less operations ([178e2d4](178e2d4))
* **sourcemap:** switch to `source-map-js` ([0488634](0488634))
* **styles:** do not call path.join twice ([272bb8b](272bb8b))
* **styles:** small CSS injector optimization ([fbdd413](fbdd413))
* tiny optimizations ([309e37b](309e37b))
* **types:** trimmed down vendor types ([6a52be8](6a52be8))
* Use Set to optimize performance ([b402687](b402687))

### BREAKING CHANGES

* **resolve:** resolver now prioritizes `exports` fields before any others, including `style` inside `exports` over independent `style` field
* `sass` is now the default Sass implementation due to `node-sass` deprecation
* **node:** Now support v12.20.0 and up
* Some breaking changes occured:
* output.assetFileNames is now respected for both CSS files and assets from CSS
* `extract`'s path now should be relative to output dir/output file's basedir, but not outside of it
* `extract`'s path no longer passed to PostCSS as `to`, added dedicated `to` option instead
* Removed `hash` option from url handler (now handled by Rollup's assetFileName)
* `assetDir` option for url handler no longer affects resulting URL
* signature changes for `onExtract`
As always, please consult documentation and API Reference for details
* **styles:** A lot of API and behavior changes, please consult README and API Reference
github-actions bot pushed a commit to plumelo/rollup-plugin-styler that referenced this pull request Nov 17, 2023
# 1.0.0 (2023-11-17)

### Bug Fixes

* `onExtract` func check and desc ([4bfaac5](4bfaac5))
* `onExtract` option fix ([65d74cf](65d74cf))
* avoid partial names replacement when aliasing ([f5aa1e2](f5aa1e2))
* avoid postcss warning about no plugins ([dbd72b7](dbd72b7))
* better lf placement for output ([663c184](663c184))
* better match Rollup's hashing method ([1825045](1825045))
* better typedoc ([fb31286](fb31286))
* **build:** add dependabot and dependency badge ([761e3ed](761e3ed))
* **build:** disable minification for use with `patch-package` ([fbba337](fbba337))
* **changelog:** repairs after github breakage ([b01e058](b01e058))
* **ci:** do not release twice ([fc719f2](fc719f2))
* **code generation:** imports should precede exports ([814ccdb](814ccdb))
* **code splitting:** infinite loop on cyclic imports ([4dd0ca3](4dd0ca3))
* **code splitting:** potential over-extraction ([0b94909](0b94909))
* correct filename for single file /w `preserveModules` ([837f9ed](837f9ed))
* correct multi-file detection ([d92d6da](d92d6da))
* correctly resolve file imports with query params ([Anidetrix#148](https://github.com/plumelo/rollup-styles/issues/148)) ([71bfe87](71bfe87)), closes [Anidetrix#132](https://github.com/plumelo/rollup-styles/issues/132)
* **deps:** more precise pkg versions ([403158c](403158c))
* do not bundle mime-types ([e444f04](e444f04))
* do not depend on directory structure for hashing ([18c3022](18c3022))
* **extract:** allow paths relative to cwd ([bdfc266](bdfc266))
* **extract:** missing parts of extracted file ([9afa9ac](9afa9ac))
* filter out only related files ([0976e8f](0976e8f))
* fix overwrite style file in preserveModules mode ([2c13345](2c13345))
* fix production build, also speed up builds ([b5b2e4f](b5b2e4f))
* function name typo ([d7574fb](d7574fb))
* hashed url handling ([5735a01](5735a01))
* infinite postcss loop ([c8cf892](c8cf892))
* **injector:** external @babel/runtime ([129aff5](129aff5))
* **injector:** pass selector instead of element as container ([63bc959](63bc959))
* keep references inside declaration ([a6f9b35](a6f9b35)), closes [Anidetrix#159](https://github.com/plumelo/rollup-styles/issues/159)
* **less:** add plugins to less loader options type ([8b502ef](8b502ef))
* **less:** fileManager inheritance ([aba12a4](aba12a4))
* **less:** fix importer ([7900186](7900186))
* **less:** remove less from bundle ([9dafe0a](9dafe0a))
* **less:** respect `paths` options ([a72ab4c](a72ab4c)), closes [Anidetrix#125](https://github.com/plumelo/rollup-styles/issues/125)
* **less:** use provided less in importer ([66f0fce](66f0fce))
* **loaders:** clearly show what options are public ([2ab86be](2ab86be))
* **loaders:** run `sourcemap` loader first ([b651be3](b651be3))
* minimize exports in extract mode as well ([ab919d7](ab919d7))
* misc fixes ([a4d3924](a4d3924))
* missing fs-extra ([4173a2a](4173a2a))
* missing/overwritten files ([b4dc69c](b4dc69c))
* more reliable chunk hash augmentation ([91f9b8f](91f9b8f)), closes [Anidetrix#143](https://github.com/plumelo/rollup-styles/issues/143)
* **multi-entry:** correct and consistent order of single extracted file ([553ca85](553ca85))
* **node:** wrong supported version of Node.js ([3fb9f80](3fb9f80))
* normalize assetFileNames dir ([f551a76](f551a76))
* occasional wrong order in extract mode ([52cb377](52cb377)), closes [Anidetrix#153](https://github.com/plumelo/rollup-styles/issues/153)
* **options:** `use` type ([41884fb](41884fb))
* **p-queue:** proper default size ([156ebff](156ebff))
* **partials:** incorrect path without dir in url ([68d40be](68d40be))
* **path-utils:** fix relativePath ([e22ca71](e22ca71))
* postcss related types ([df78c78](df78c78))
* prioritize `sass` over `node-sass` ([e9a93ef](e9a93ef))
* proper declaration file ([0b5502b](0b5502b))
* **readme:** clarification ([6f5b995](6f5b995))
* **readme:** fix links ([208c254](208c254))
* **readme:** fix more links ([c4e6690](c4e6690))
* **readme:** tagline wording ([0a55020](0a55020))
* remove <no source> from sourcemap ([b1c32e8](b1c32e8))
* remove debugging log ([e09ac09](e09ac09))
* remove puppeteer ([13bf4e8](13bf4e8))
* resolving `url` outside of first order place ([c61f0ce](c61f0ce)), closes [Anidetrix#126](https://github.com/plumelo/rollup-styles/issues/126)
* respect `output.file` for main CSS chunk ([19eb9d7](19eb9d7))
* respect content option for minification ([59b3c07](59b3c07))
* respect esm and styles for sync resolves ([0c51253](0c51253))
* respect NODE_ENV ([7a600c3](7a600c3))
* respect programmatic manual chunks as well ([311e0dc](311e0dc))
* respect rollup's sourcemap ([cc6ad34](cc6ad34))
* revert <no source> removal ([8def44e](8def44e))
* **runtime:** safer option check ([78a5922](78a5922))
* **runtime:** working singleTag option ([5d6a5c8](5d6a5c8))
* **sass!:** remove `fibers` support ([8992356](8992356))
* **sass:** do not modify non-module url ([fd022c6](fd022c6))
* **sass:** properly call custom resolvers ([002366f](002366f))
* skip parsing of invalid sourcemaps ([a96d01f](a96d01f))
* small misc fixes and changes ([7cbb05a](7cbb05a))
* **sourcemap:** broken single line URL comments extraction ([fd8ebf9](fd8ebf9))
* **sourcemap:** more reliable detection ([a419361](a419361))
* **sourcemaps:** hashing and fixes for inlining in `extract` mode ([c2bb12d](c2bb12d))
* **styles-url:** clarify which url is unresolved ([aefc263](aefc263))
* **styles:** clean dist ([511ea8d](511ea8d))
* **styles:** fix CSS injector ([f4ccef4](f4ccef4))
* **stylus:** proper sourcesContent ([f9b4774](f9b4774))
* **stylus:** respect local node_modules ([eebbbed](eebbbed))
* test and warning for already processed files ([19fd942](19fd942))
* **treeshakable:** use es5 syntax for treeshakable object ([Anidetrix#177](https://github.com/plumelo/rollup-styles/issues/177)) ([a084834](a084834))
* trigger release due to `semantic-release` failure (see [here](https://github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md[#354](https://github.com/plumelo/rollup-styles/issues/354)-2020-05-22)) ([c9e6acf](c9e6acf)), closes [/github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md#354-2020-05-22](https://github.com//github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md/issues/354-2020-05-22)
* typenames too long for typedoc ([13e2d49](13e2d49))
* **types:** fix less typings ([c129dec](c129dec))
* uniform sass error message ([49655a4](49655a4))
* **url handler:** working default `assetDir` ([7187a27](7187a27))
* **url:** consider all possible basedirs ([62353b2](62353b2))
* use path.parse instead of regex ([135b658](135b658))
* **utils:** async resolve types ([08ae382](08ae382))
* very rare double code extraction ([d89a5fe](d89a5fe))

### Features

* .d.ts generation and treeshakeable injector options ([2990cb0](2990cb0))
* allow multiple instances of the plugin ([aa0d4d1](aa0d4d1))
* code splitting rework /w `preserveModules` support ([8f44a7a](8f44a7a))
* **code splitting:** rollup's `manualChunks` option support ([5aeb350](5aeb350))
* **cssnano!:** v5 ([5d6ccc1](5d6ccc1))
* dir in css modules class names ([94d10b2](94d10b2))
* extended browser support (>=ie9, or >=ie8 with polyfills) ([d849278](d849278))
* **importer:** extensions override ([74fcd39](74fcd39))
* **import:** resolve extensions ([9005ab8](9005ab8))
* **injector:** ability to set attibutes ([653e91c](653e91c))
* **injector:** one less polyfill needed for ie8 ([97796d8](97796d8))
* **modules:** customizable `autoModules` ([c3298de](c3298de))
* multi entry support ([840996c](840996c))
* **node:** drop v10 ([5786615](5786615))
* option to disable `sourcesContent` in sourcemaps ([afc440b](afc440b))
* pass resulting filename to sourcemap transformer when possible ([5570cf4](5570cf4))
* postcss 8 upgrade ([b9adee9](b9adee9))
* **postcss:** support both object and array for plugin ([7ce53b9](7ce53b9))
* replace `postcss-load-config` with custom implementation ([50b19bb](50b19bb))
* **resolve:** `exports` fields support (thanks [@kherock](https://github.com/kherock)) ([eb22803](eb22803))
* respect for `.cjs` files and move towards `exports` fields ([cc391bb](cc391bb))
* respect rollup's 2.18.0 option changes ([53072b0](53072b0))
* **sass:** `exports` conditions ([Anidetrix#197](https://github.com/plumelo/rollup-styles/issues/197)) ([2d390de](2d390de))
* **sass:** sync mode support with dart implementation ([91846bc](91846bc))
* silently skip empty files ([a34bdbf](a34bdbf))
* sourcemap transformation ([ed49328](ed49328)), closes [Anidetrix#160](https://github.com/plumelo/rollup-styles/issues/160)
* **styles:** add singleTag option for CSS injection ([b7e4ca8](b7e4ca8))
* **styles:** postcss plugins without require ([7db718f](7db718f))
* **styles:** v2 ([21d2c9d](21d2c9d))
* support functional assetFileNames ([91d4ca2](91d4ca2))
* support partials and ~ in Less [@import](https://github.com/import) statements ([b4fbda5](b4fbda5))
* support web url and query strings inside [@import](https://github.com/import) ([bbff4e5](bbff4e5)), closes [Anidetrix#140](https://github.com/plumelo/rollup-styles/issues/140)
* update package ([9f4dd9c](9f4dd9c))
* update rollup config ([bc728f0](bc728f0))
* **url:** automatically inline assets in inject mode ([db7dc9a](db7dc9a))
* v3 ([c0a7daa](c0a7daa))

### Performance Improvements

* bundle minification ([369279a](369279a))
* global p-queue for all loaders ([ccac951](ccac951))
* **less:** less allocations in importer ([bf3710a](bf3710a))
* **less:** less code ([2717427](2717427))
* misc optimizations ([df1d1ee](df1d1ee))
* **modules:** simpler internal implementation ([c1f92e1](c1f92e1))
* overall considerable performance improvements ([6c08d55](6c08d55))
* overall improvements and optimizations ([a460dd0](a460dd0))
* **path:** unneded normalization ([df03c59](df03c59))
* **postcss:** less allocations ([c9ac3f5](c9ac3f5))
* **postcss:** less type checking ([5611655](5611655))
* **project:** refactoring and optimizations ([d3405aa](d3405aa))
* relace import-cwd with resolve ([dd4310e](dd4310e))
* removed deprecated rollup API ([46b73e6](46b73e6))
* replace concat-with-sourcemaps with custom function ([a1b04d2](a1b04d2))
* replace some sets with arrays ([2b7c28e](2b7c28e))
* resolved modules caching ([7eab36d](7eab36d))
* **runtime:** less operations ([7375fe7](7375fe7))
* simpler error handling ([438d5b1](438d5b1))
* **sourcemap:** less operations ([178e2d4](178e2d4))
* **sourcemap:** switch to `source-map-js` ([0488634](0488634))
* **styles:** do not call path.join twice ([272bb8b](272bb8b))
* **styles:** small CSS injector optimization ([fbdd413](fbdd413))
* tiny optimizations ([309e37b](309e37b))
* **types:** trimmed down vendor types ([6a52be8](6a52be8))
* Use Set to optimize performance ([b402687](b402687))

### BREAKING CHANGES

* **resolve:** resolver now prioritizes `exports` fields before any others, including `style` inside `exports` over independent `style` field
* `sass` is now the default Sass implementation due to `node-sass` deprecation
* **node:** Now support v12.20.0 and up
* Some breaking changes occured:
* output.assetFileNames is now respected for both CSS files and assets from CSS
* `extract`'s path now should be relative to output dir/output file's basedir, but not outside of it
* `extract`'s path no longer passed to PostCSS as `to`, added dedicated `to` option instead
* Removed `hash` option from url handler (now handled by Rollup's assetFileName)
* `assetDir` option for url handler no longer affects resulting URL
* signature changes for `onExtract`
As always, please consult documentation and API Reference for details
* **styles:** A lot of API and behavior changes, please consult README and API Reference
github-actions bot pushed a commit to plumelo/rollup-plugin-styler that referenced this pull request Nov 17, 2023
# 1.0.0 (2023-11-17)

### Bug Fixes

* `onExtract` func check and desc ([4bfaac5](4bfaac5))
* `onExtract` option fix ([65d74cf](65d74cf))
* avoid partial names replacement when aliasing ([f5aa1e2](f5aa1e2))
* avoid postcss warning about no plugins ([dbd72b7](dbd72b7))
* better lf placement for output ([663c184](663c184))
* better match Rollup's hashing method ([1825045](1825045))
* better typedoc ([fb31286](fb31286))
* **build:** add dependabot and dependency badge ([761e3ed](761e3ed))
* **build:** disable minification for use with `patch-package` ([fbba337](fbba337))
* **changelog:** repairs after github breakage ([b01e058](b01e058))
* **ci:** do not release twice ([fc719f2](fc719f2))
* **code generation:** imports should precede exports ([814ccdb](814ccdb))
* **code splitting:** infinite loop on cyclic imports ([4dd0ca3](4dd0ca3))
* **code splitting:** potential over-extraction ([0b94909](0b94909))
* correct filename for single file /w `preserveModules` ([837f9ed](837f9ed))
* correct multi-file detection ([d92d6da](d92d6da))
* correctly resolve file imports with query params ([Anidetrix#148](https://github.com/plumelo/rollup-styles/issues/148)) ([71bfe87](71bfe87)), closes [Anidetrix#132](https://github.com/plumelo/rollup-styles/issues/132)
* **deps:** more precise pkg versions ([403158c](403158c))
* do not bundle mime-types ([e444f04](e444f04))
* do not depend on directory structure for hashing ([18c3022](18c3022))
* **extract:** allow paths relative to cwd ([bdfc266](bdfc266))
* **extract:** missing parts of extracted file ([9afa9ac](9afa9ac))
* filter out only related files ([0976e8f](0976e8f))
* fix overwrite style file in preserveModules mode ([2c13345](2c13345))
* fix production build, also speed up builds ([b5b2e4f](b5b2e4f))
* function name typo ([d7574fb](d7574fb))
* hashed url handling ([5735a01](5735a01))
* infinite postcss loop ([c8cf892](c8cf892))
* **injector:** external @babel/runtime ([129aff5](129aff5))
* **injector:** pass selector instead of element as container ([63bc959](63bc959))
* keep references inside declaration ([a6f9b35](a6f9b35)), closes [Anidetrix#159](https://github.com/plumelo/rollup-styles/issues/159)
* **less:** add plugins to less loader options type ([8b502ef](8b502ef))
* **less:** fileManager inheritance ([aba12a4](aba12a4))
* **less:** fix importer ([7900186](7900186))
* **less:** remove less from bundle ([9dafe0a](9dafe0a))
* **less:** respect `paths` options ([a72ab4c](a72ab4c)), closes [Anidetrix#125](https://github.com/plumelo/rollup-styles/issues/125)
* **less:** use provided less in importer ([66f0fce](66f0fce))
* **loaders:** clearly show what options are public ([2ab86be](2ab86be))
* **loaders:** run `sourcemap` loader first ([b651be3](b651be3))
* minimize exports in extract mode as well ([ab919d7](ab919d7))
* misc fixes ([a4d3924](a4d3924))
* missing fs-extra ([4173a2a](4173a2a))
* missing/overwritten files ([b4dc69c](b4dc69c))
* more reliable chunk hash augmentation ([91f9b8f](91f9b8f)), closes [Anidetrix#143](https://github.com/plumelo/rollup-styles/issues/143)
* **multi-entry:** correct and consistent order of single extracted file ([553ca85](553ca85))
* **node:** wrong supported version of Node.js ([3fb9f80](3fb9f80))
* normalize assetFileNames dir ([f551a76](f551a76))
* occasional wrong order in extract mode ([52cb377](52cb377)), closes [Anidetrix#153](https://github.com/plumelo/rollup-styles/issues/153)
* **options:** `use` type ([41884fb](41884fb))
* **p-queue:** proper default size ([156ebff](156ebff))
* **partials:** incorrect path without dir in url ([68d40be](68d40be))
* **path-utils:** fix relativePath ([e22ca71](e22ca71))
* postcss related types ([df78c78](df78c78))
* prioritize `sass` over `node-sass` ([e9a93ef](e9a93ef))
* proper declaration file ([0b5502b](0b5502b))
* **readme:** clarification ([6f5b995](6f5b995))
* **readme:** fix links ([208c254](208c254))
* **readme:** fix more links ([c4e6690](c4e6690))
* **readme:** tagline wording ([0a55020](0a55020))
* remove <no source> from sourcemap ([b1c32e8](b1c32e8))
* remove debugging log ([e09ac09](e09ac09))
* remove puppeteer ([13bf4e8](13bf4e8))
* resolving `url` outside of first order place ([c61f0ce](c61f0ce)), closes [Anidetrix#126](https://github.com/plumelo/rollup-styles/issues/126)
* respect `output.file` for main CSS chunk ([19eb9d7](19eb9d7))
* respect content option for minification ([59b3c07](59b3c07))
* respect esm and styles for sync resolves ([0c51253](0c51253))
* respect NODE_ENV ([7a600c3](7a600c3))
* respect programmatic manual chunks as well ([311e0dc](311e0dc))
* respect rollup's sourcemap ([cc6ad34](cc6ad34))
* revert <no source> removal ([8def44e](8def44e))
* **runtime:** safer option check ([78a5922](78a5922))
* **runtime:** working singleTag option ([5d6a5c8](5d6a5c8))
* **sass!:** remove `fibers` support ([8992356](8992356))
* **sass:** do not modify non-module url ([fd022c6](fd022c6))
* **sass:** properly call custom resolvers ([002366f](002366f))
* skip parsing of invalid sourcemaps ([a96d01f](a96d01f))
* small misc fixes and changes ([7cbb05a](7cbb05a))
* **sourcemap:** broken single line URL comments extraction ([fd8ebf9](fd8ebf9))
* **sourcemap:** more reliable detection ([a419361](a419361))
* **sourcemaps:** hashing and fixes for inlining in `extract` mode ([c2bb12d](c2bb12d))
* **styles-url:** clarify which url is unresolved ([aefc263](aefc263))
* **styles:** clean dist ([511ea8d](511ea8d))
* **styles:** fix CSS injector ([f4ccef4](f4ccef4))
* **stylus:** proper sourcesContent ([f9b4774](f9b4774))
* **stylus:** respect local node_modules ([eebbbed](eebbbed))
* test and warning for already processed files ([19fd942](19fd942))
* **treeshakable:** use es5 syntax for treeshakable object ([Anidetrix#177](https://github.com/plumelo/rollup-styles/issues/177)) ([a084834](a084834))
* trigger release due to `semantic-release` failure (see [here](https://github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md[#354](https://github.com/plumelo/rollup-styles/issues/354)-2020-05-22)) ([c9e6acf](c9e6acf)), closes [/github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md#354-2020-05-22](https://github.com//github.com/Anidetrix/rollup-plugin-styles/blob/master/CHANGELOG.md/issues/354-2020-05-22)
* typenames too long for typedoc ([13e2d49](13e2d49))
* **types:** fix less typings ([c129dec](c129dec))
* uniform sass error message ([49655a4](49655a4))
* **url handler:** working default `assetDir` ([7187a27](7187a27))
* **url:** consider all possible basedirs ([62353b2](62353b2))
* use path.parse instead of regex ([135b658](135b658))
* **utils:** async resolve types ([08ae382](08ae382))
* very rare double code extraction ([d89a5fe](d89a5fe))

### Features

* .d.ts generation and treeshakeable injector options ([2990cb0](2990cb0))
* allow multiple instances of the plugin ([aa0d4d1](aa0d4d1))
* code splitting rework /w `preserveModules` support ([8f44a7a](8f44a7a))
* **code splitting:** rollup's `manualChunks` option support ([5aeb350](5aeb350))
* **cssnano!:** v5 ([5d6ccc1](5d6ccc1))
* dir in css modules class names ([94d10b2](94d10b2))
* extended browser support (>=ie9, or >=ie8 with polyfills) ([d849278](d849278))
* **importer:** extensions override ([74fcd39](74fcd39))
* **import:** resolve extensions ([9005ab8](9005ab8))
* **injector:** ability to set attibutes ([653e91c](653e91c))
* **injector:** one less polyfill needed for ie8 ([97796d8](97796d8))
* **modules:** customizable `autoModules` ([c3298de](c3298de))
* multi entry support ([840996c](840996c))
* **node:** drop v10 ([5786615](5786615))
* option to disable `sourcesContent` in sourcemaps ([afc440b](afc440b))
* pass resulting filename to sourcemap transformer when possible ([5570cf4](5570cf4))
* postcss 8 upgrade ([b9adee9](b9adee9))
* **postcss:** support both object and array for plugin ([7ce53b9](7ce53b9))
* replace `postcss-load-config` with custom implementation ([50b19bb](50b19bb))
* **resolve:** `exports` fields support (thanks [@kherock](https://github.com/kherock)) ([eb22803](eb22803))
* respect for `.cjs` files and move towards `exports` fields ([cc391bb](cc391bb))
* respect rollup's 2.18.0 option changes ([53072b0](53072b0))
* **sass:** `exports` conditions ([Anidetrix#197](https://github.com/plumelo/rollup-styles/issues/197)) ([2d390de](2d390de))
* **sass:** sync mode support with dart implementation ([91846bc](91846bc))
* silently skip empty files ([a34bdbf](a34bdbf))
* sourcemap transformation ([ed49328](ed49328)), closes [Anidetrix#160](https://github.com/plumelo/rollup-styles/issues/160)
* **styles:** add singleTag option for CSS injection ([b7e4ca8](b7e4ca8))
* **styles:** postcss plugins without require ([7db718f](7db718f))
* **styles:** v2 ([21d2c9d](21d2c9d))
* support functional assetFileNames ([91d4ca2](91d4ca2))
* support partials and ~ in Less [@import](https://github.com/import) statements ([b4fbda5](b4fbda5))
* support web url and query strings inside [@import](https://github.com/import) ([bbff4e5](bbff4e5)), closes [Anidetrix#140](https://github.com/plumelo/rollup-styles/issues/140)
* update package ([9f4dd9c](9f4dd9c))
* update rollup config ([e3f1053](e3f1053))
* **url:** automatically inline assets in inject mode ([db7dc9a](db7dc9a))
* v3 ([c0a7daa](c0a7daa))

### Performance Improvements

* bundle minification ([369279a](369279a))
* global p-queue for all loaders ([ccac951](ccac951))
* **less:** less allocations in importer ([bf3710a](bf3710a))
* **less:** less code ([2717427](2717427))
* misc optimizations ([df1d1ee](df1d1ee))
* **modules:** simpler internal implementation ([c1f92e1](c1f92e1))
* overall considerable performance improvements ([6c08d55](6c08d55))
* overall improvements and optimizations ([a460dd0](a460dd0))
* **path:** unneded normalization ([df03c59](df03c59))
* **postcss:** less allocations ([c9ac3f5](c9ac3f5))
* **postcss:** less type checking ([5611655](5611655))
* **project:** refactoring and optimizations ([d3405aa](d3405aa))
* relace import-cwd with resolve ([dd4310e](dd4310e))
* removed deprecated rollup API ([46b73e6](46b73e6))
* replace concat-with-sourcemaps with custom function ([a1b04d2](a1b04d2))
* replace some sets with arrays ([2b7c28e](2b7c28e))
* resolved modules caching ([7eab36d](7eab36d))
* **runtime:** less operations ([7375fe7](7375fe7))
* simpler error handling ([438d5b1](438d5b1))
* **sourcemap:** less operations ([178e2d4](178e2d4))
* **sourcemap:** switch to `source-map-js` ([0488634](0488634))
* **styles:** do not call path.join twice ([272bb8b](272bb8b))
* **styles:** small CSS injector optimization ([fbdd413](fbdd413))
* tiny optimizations ([309e37b](309e37b))
* **types:** trimmed down vendor types ([6a52be8](6a52be8))
* Use Set to optimize performance ([b402687](b402687))

### BREAKING CHANGES

* **resolve:** resolver now prioritizes `exports` fields before any others, including `style` inside `exports` over independent `style` field
* `sass` is now the default Sass implementation due to `node-sass` deprecation
* **node:** Now support v12.20.0 and up
* Some breaking changes occured:
* output.assetFileNames is now respected for both CSS files and assets from CSS
* `extract`'s path now should be relative to output dir/output file's basedir, but not outside of it
* `extract`'s path no longer passed to PostCSS as `to`, added dedicated `to` option instead
* Removed `hash` option from url handler (now handled by Rollup's assetFileName)
* `assetDir` option for url handler no longer affects resulting URL
* signature changes for `onExtract`
As always, please consult documentation and API Reference for details
* **styles:** A lot of API and behavior changes, please consult README and API Reference
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants