diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 1f264cd42..1f7d3bbaf 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -129,7 +129,6 @@ yarn nx run-many --target=type-check --all - `@griffel/react` - React bindings and hooks - `@griffel/webpack-loader` - Webpack build-time transforms - `@griffel/vite-plugin` - Vite build-time transforms -- `@griffel/next-extraction-plugin` - Next.js CSS extraction - `@griffel/devtools` - Browser extension for debugging - `@griffel/eslint-plugin` - ESLint rules for Griffel usage diff --git a/apps/website/docs/react/ahead-of-time-compilation/with-webpack.md b/apps/website/docs/react/ahead-of-time-compilation/with-webpack.md index 2c1096553..262f182c9 100644 --- a/apps/website/docs/react/ahead-of-time-compilation/with-webpack.md +++ b/apps/website/docs/react/ahead-of-time-compilation/with-webpack.md @@ -13,14 +13,14 @@ import TabItem from '@theme/TabItem'; ```shell -yarn add --dev @griffel/webpack-loader +yarn add --dev @griffel/webpack-plugin ``` ```shell -npm install --save-dev @griffel/webpack-loader +npm install --save-dev @griffel/webpack-plugin ``` @@ -30,7 +30,7 @@ npm install --save-dev @griffel/webpack-loader Webpack documentation: [Loaders](https://webpack.js.org/loaders/) -Within your webpack configuration object, you'll need to add the `@griffel/webpack-loader` to the list of modules, like so: +Within your webpack configuration object, you'll need to add the `@griffel/webpack-plugin` loader to the list of modules, like so: ```js module.exports = { @@ -40,7 +40,7 @@ module.exports = { test: /\.(js|jsx)$/, exclude: /node_modules/, use: { - loader: '@griffel/webpack-loader', + loader: '@griffel/webpack-plugin/loader', }, }, @@ -49,7 +49,7 @@ module.exports = { test: /\.(ts|tsx)$/, exclude: /node_modules/, use: { - loader: '@griffel/webpack-loader', + loader: '@griffel/webpack-plugin/loader', options: { babelOptions: { presets: ['@babel/preset-typescript'], @@ -72,7 +72,7 @@ module.exports = { test: /\.styles.ts$/, exclude: /node_modules/, use: { - loader: '@griffel/webpack-loader', + loader: '@griffel/webpack-plugin/loader', options: { babelOptions: { presets: ['@babel/preset-typescript'], @@ -99,7 +99,7 @@ module.exports = { exclude: /node_modules/, use: [ { - loader: '@griffel/webpack-loader', + loader: '@griffel/webpack-plugin/loader', }, ], }); @@ -110,7 +110,7 @@ module.exports = { exclude: /node_modules/, use: [ { - loader: '@griffel/webpack-loader', + loader: '@griffel/webpack-plugin/loader', options: { babelOptions: { presets: ['next/babel'], @@ -127,4 +127,4 @@ module.exports = { ## Configuration -Please check [the README](https://github.com/microsoft/griffel/tree/main/packages/webpack-loader) of `@griffel/webpack-loader` to check how to configure module evaluation and imports. +Please check [the README](https://github.com/microsoft/griffel/tree/main/packages/webpack-plugin) of `@griffel/webpack-plugin` to check how to configure module evaluation and imports. diff --git a/apps/website/docs/react/css-extraction/with-nextjs.md b/apps/website/docs/react/css-extraction/with-nextjs.md deleted file mode 100644 index d44bbca22..000000000 --- a/apps/website/docs/react/css-extraction/with-nextjs.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -sidebar_position: 3 ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -# With Next.js - -## Install - - - - -```shell -yarn add --dev @griffel/next-extraction-plugin -``` - - - - -```shell -npm install --save-dev @griffel/next-extraction-plugin -``` - - - - -## Usage - -:::info - -Please configure [`@griffel/webpack-loader`](/react/ahead-of-time-compilation/with-webpack) first. - -::: - -In `next.config.js` file you'll need to add the next-plugin from `@griffel/webpack-extraction-plugin` like so: - -```js -// next.config.js -const { withGriffelCSSExtraction } = require('@griffel/next-extraction-plugin'); - -module.exports = withGriffelCSSExtraction()({ - webpack(config) { - config.module.rules.unshift({ - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: [ - { - loader: '@griffel/webpack-loader', - }, - ], - }); - - // If your project uses TypeScript - config.module.rules.unshift({ - test: /\.(ts|tsx)$/, - exclude: /node_modules/, - use: [ - { - loader: '@griffel/webpack-loader', - options: { - babelOptions: { - presets: ['next/babel'], - }, - }, - }, - ], - }); - - return config; - }, -}); -``` diff --git a/apps/website/docs/react/css-extraction/with-webpack.md b/apps/website/docs/react/css-extraction/with-webpack.md index 9e78b96fb..df8aa1d61 100644 --- a/apps/website/docs/react/css-extraction/with-webpack.md +++ b/apps/website/docs/react/css-extraction/with-webpack.md @@ -13,14 +13,14 @@ import TabItem from '@theme/TabItem'; ```shell -yarn add --dev @griffel/webpack-extraction-plugin +yarn add --dev @griffel/webpack-plugin ``` ```shell -npm install --save-dev @griffel/webpack-extraction-plugin +npm install --save-dev @griffel/webpack-plugin ``` @@ -28,16 +28,10 @@ npm install --save-dev @griffel/webpack-extraction-plugin ## Usage -:::info - -Please configure [`@griffel/webpack-loader`](/react/ahead-of-time-compilation/with-webpack) first. - -::: - -Within your Webpack configuration object, you'll need to add the loader and the plugin from `@griffel/webpack-extraction-plugin` like so: +Within your Webpack configuration object, you'll need to add the loader and the plugin from `@griffel/webpack-plugin` like so: ```js -const { GriffelCSSExtractionPlugin } = require('@griffel/webpack-extraction-plugin'); +const { GriffelPlugin } = require('@griffel/webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = { @@ -48,20 +42,7 @@ module.exports = { // Apply "exclude" only if your dependencies **do not use** Griffel // exclude: /node_modules/, use: { - loader: GriffelCSSExtractionPlugin.loader, - }, - }, - // Add "@griffel/webpack-loader" if you use Griffel directly in your project - { - test: /\.(ts|tsx)$/, - exclude: /node_modules/, - use: { - loader: '@griffel/webpack-loader', - options: { - babelOptions: { - presets: ['@babel/preset-typescript'], - }, - }, + loader: '@griffel/webpack-plugin/loader', }, }, // "css-loader" is required to handle produced CSS assets by Griffel @@ -72,7 +53,7 @@ module.exports = { }, ], }, - plugins: [new MiniCssExtractPlugin(), new GriffelCSSExtractionPlugin()], + plugins: [new MiniCssExtractPlugin(), new GriffelPlugin()], }; ``` @@ -84,10 +65,10 @@ module.exports = { ::: -For better performance (to process less files) consider using `include` for `GriffelCSSExtractionPlugin.loader`: +For better performance (to process less files) consider using `include` for `@griffel/webpack-plugin/loader`: ```js -const { GriffelCSSExtractionPlugin } = require('@griffel/webpack-extraction-plugin'); +const { GriffelPlugin } = require('@griffel/webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = { @@ -101,7 +82,7 @@ module.exports = { // see https://webpack.js.org/configuration/module/#condition ], use: { - loader: GriffelCSSExtractionPlugin.loader, + loader: '@griffel/webpack-plugin/loader', }, }, ], @@ -116,9 +97,6 @@ If you use `mini-css-extract-plugin`, you may need to set it to `false` to remov ``` WARNING in chunk griffel [mini-css-extract-plugin] Conflicting order. Following module has been added: -* css ./node_modules/css-loader/dist/cjs.js!./node_modules/@griffel/webpack-extraction-plugin/virtual-loader/index.js?style=%2F**%20%40griffel%3Acss-start%20%5Bd%5D%20**%2F%0A.fm40iov%7Bcolor%3A%23ccc%3B%7D%0A%2F**%20%40griffel%3Acss-end%20**%2F%0A!./src/foo-module/baz.js - despite it was not able to fulfill desired ordering with these modules: -* css ./node_modules/css-loader/dist/cjs.js!./node_modules/@griffel/webpack-extraction-plugin/virtual-loader/index.js?style=%2F**%20%40griffel%3Acss-start%20%5Bd%5D%20**%2F%0A.f1e30ogq%7Bcolor%3Ablueviolet%3B%7D%0A%2F**%20%40griffel%3Acss-end%20**%2F%0A!./src/foo-module/qux.js - couldn't fulfill desired order of chunk group(s) ``` diff --git a/e2e/rspack/project.json b/e2e/rspack/project.json index a5ce4e01e..d8296cdfa 100644 --- a/e2e/rspack/project.json +++ b/e2e/rspack/project.json @@ -3,7 +3,7 @@ "$schema": "../../node_modules/nx/schemas/project-schema.json", "sourceRoot": "e2e/rspack/src", "projectType": "library", - "implicitDependencies": ["@griffel/webpack-loader"], + "implicitDependencies": ["@griffel/webpack-plugin"], "targets": { "test": { "executor": "nx:run-commands", diff --git a/e2e/rspack/src/assets/rspack.config.js b/e2e/rspack/src/assets/rspack.config.js index e2b46f448..75309635f 100644 --- a/e2e/rspack/src/assets/rspack.config.js +++ b/e2e/rspack/src/assets/rspack.config.js @@ -1,7 +1,6 @@ // @ts-check -const { GriffelCSSExtractionPlugin } = require('@griffel/webpack-extraction-plugin'); -const path = require('path'); +const { GriffelPlugin } = require('@griffel/webpack-plugin'); /** * @type {import('@rspack/core').Configuration} @@ -22,17 +21,11 @@ const config = { { test: /\.js$/, exclude: /node_modules/, - use: [{ loader: GriffelCSSExtractionPlugin.loader }, { loader: '@griffel/webpack-loader' }], + use: [{ loader: '@griffel/webpack-plugin/loader' }], }, ], }, - plugins: [/** @type {any} */ (new GriffelCSSExtractionPlugin())], - resolve: { - alias: { - 'fake-module': path.resolve(__dirname, 'src', 'Component.js'), - 'fake-colors': path.resolve(__dirname, 'src', 'colors.js'), - }, - }, + plugins: [/** @type {any} */ (new GriffelPlugin())], }; module.exports = config; diff --git a/e2e/rspack/src/assets/src/Component.js b/e2e/rspack/src/assets/src/Component.js index 3fa3da096..bcda77aea 100644 --- a/e2e/rspack/src/assets/src/Component.js +++ b/e2e/rspack/src/assets/src/Component.js @@ -1,6 +1,5 @@ import { makeResetStyles, makeStyles } from '@griffel/react'; -// @ts-expect-error It's a fake module resolved via aliases -import { colors } from 'fake-colors'; +import { colors } from './colors.js'; const useClasses = makeStyles({ root: { diff --git a/e2e/rspack/src/assets/src/index.js b/e2e/rspack/src/assets/src/index.js index 63b7c27e0..fe97f0f0e 100644 --- a/e2e/rspack/src/assets/src/index.js +++ b/e2e/rspack/src/assets/src/index.js @@ -1,4 +1,3 @@ -// @ts-expect-error It's a fake module resolved via aliases -import { Component } from 'fake-module'; +import { Component } from './Component.js'; console.log(Component); diff --git a/e2e/rspack/src/test.ts b/e2e/rspack/src/test.ts index b532efc4f..1cda86713 100644 --- a/e2e/rspack/src/test.ts +++ b/e2e/rspack/src/test.ts @@ -26,9 +26,9 @@ async function performTest() { packLocalPackage(rootDir, tempDir, '@griffel/style-types'), packLocalPackage(rootDir, tempDir, '@griffel/core'), packLocalPackage(rootDir, tempDir, '@griffel/react'), - packLocalPackage(rootDir, tempDir, '@griffel/babel-preset'), - packLocalPackage(rootDir, tempDir, '@griffel/webpack-extraction-plugin'), - packLocalPackage(rootDir, tempDir, '@griffel/webpack-loader'), + packLocalPackage(rootDir, tempDir, '@griffel/transform-shaker'), + packLocalPackage(rootDir, tempDir, '@griffel/transform'), + packLocalPackage(rootDir, tempDir, '@griffel/webpack-plugin'), ]); const rspackVersion = (await sh(`yarn rspack --version`, rootDir, true)).trim(); diff --git a/packages/next-extraction-plugin/.eslintrc.json b/packages/next-extraction-plugin/.eslintrc.json deleted file mode 100644 index 9d9c0db55..000000000 --- a/packages/next-extraction-plugin/.eslintrc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": {} - }, - { - "files": ["*.ts", "*.tsx"], - "rules": {} - }, - { - "files": ["*.js", "*.jsx"], - "rules": {} - } - ] -} diff --git a/packages/next-extraction-plugin/CHANGELOG.json b/packages/next-extraction-plugin/CHANGELOG.json deleted file mode 100644 index 05013850e..000000000 --- a/packages/next-extraction-plugin/CHANGELOG.json +++ /dev/null @@ -1,917 +0,0 @@ -{ - "name": "@griffel/next-extraction-plugin", - "entries": [ - { - "date": "Fri, 06 Mar 2026 15:56:28 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.15", - "version": "0.1.15", - "comments": { - "none": [ - { - "author": "olfedias@microsoft.com", - "package": "@griffel/next-extraction-plugin", - "commit": "f422dee59ffc7ad2f4e5396def5dae5c9785cf24", - "comment": "chore: hoist common tsconfig strict options to base config" - } - ], - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.14", - "commit": "75914de37870943b9f2d483be421efe9cad8872f" - } - ] - } - }, - { - "date": "Fri, 06 Mar 2026 08:17:05 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.14", - "version": "0.1.14", - "comments": { - "patch": [ - { - "author": "olfedias@microsoft.com", - "package": "@griffel/next-extraction-plugin", - "commit": "5370788cea69e6e6e66a21e3bcc7031791d69811", - "comment": "fix: work with Next.js 15" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.13", - "commit": "832ca3b88650bb8fa8b20499ade2e679518bc934" - } - ] - } - }, - { - "date": "Tue, 05 Aug 2025 16:25:42 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.13", - "version": "0.1.13", - "comments": { - "none": [ - { - "author": "olfedias@microsoft.com", - "package": "@griffel/next-extraction-plugin", - "commit": "fce8acbe447eb79df31918e5fd56f264ee1a3440", - "comment": "chore: bump nx to 21.3.8" - } - ], - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.12", - "commit": "04c09e10c83c712def41323320eb798c78638487" - } - ] - } - }, - { - "date": "Mon, 28 Jul 2025 09:12:30 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.12", - "version": "0.1.12", - "comments": { - "none": [ - { - "author": "olfedias@microsoft.com", - "package": "@griffel/next-extraction-plugin", - "commit": "a588a6c1f301e598557a8a1255f6069ccbbb2534", - "comment": "chore: apply release" - } - ], - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.11", - "commit": "230887b0ab80fb2db29ed04687f15d14d0200396" - } - ] - } - }, - { - "date": "Tue, 22 Apr 2025 10:05:48 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.11", - "version": "0.1.11", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.10", - "commit": "d25d0967a81daac6fd8640961836b806ecfc7fe8" - } - ] - } - }, - { - "date": "Thu, 23 Jan 2025 12:09:03 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.10", - "version": "0.1.10", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.9", - "commit": "78b2b5f231e3032de8aa1b5c5794a2a4317df42e" - } - ] - } - }, - { - "date": "Wed, 22 Jan 2025 13:44:43 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.9", - "version": "0.1.9", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.8", - "commit": "fa0a08b0452669a9bc4e0f83b2dbcd85b97f733e" - } - ] - } - }, - { - "date": "Tue, 12 Nov 2024 09:58:11 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.8", - "version": "0.1.8", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.7", - "commit": "4dd2eec22aaff93dead8429c4a35496de7dab438" - } - ] - } - }, - { - "date": "Thu, 31 Oct 2024 16:16:50 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.7", - "version": "0.1.7", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.6", - "commit": "00ba8831f3b895c1600e8211895c0d2b99c13365" - } - ] - } - }, - { - "date": "Mon, 29 Jul 2024 07:31:53 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.6", - "version": "0.1.6", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.5", - "commit": "aa24116ea5cf763ee7f56363067a5c386c4c2222" - } - ] - } - }, - { - "date": "Wed, 10 Jul 2024 14:36:29 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.5", - "version": "0.1.5", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.4", - "commit": "15496655df98b9d8e8f505b461cc6dbd12e3122e" - } - ] - } - }, - { - "date": "Wed, 22 May 2024 08:24:17 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.4", - "version": "0.1.4", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.3", - "commit": "6ae570dbbd711a5e95184004f5d4d98a8ffa2df3" - } - ] - } - }, - { - "date": "Thu, 02 May 2024 14:07:14 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.3", - "version": "0.1.3", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.2", - "commit": "9745935b1bd28b02ee7c19d9195883e8454f0810" - } - ] - } - }, - { - "date": "Tue, 19 Mar 2024 11:33:53 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.2", - "version": "0.1.2", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.1", - "commit": "95326c52b330ad9d286fad926f2aa26914c39061" - } - ] - } - }, - { - "date": "Fri, 26 Jan 2024 10:01:06 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.1", - "version": "0.1.1", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.5.0", - "commit": "b7180a73848f6c3aa277716d5c3411024d946197" - } - ] - } - }, - { - "date": "Tue, 23 Jan 2024 11:03:15 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.0", - "version": "0.1.0", - "comments": { - "none": [ - { - "author": "olfedias@microsoft.com", - "package": "@griffel/next-extraction-plugin", - "commit": "9c0b1acf69a4645331d1623b1f0b5484ce5d2cc9", - "comment": "chore: bump to Nx@15.9.7" - } - ] - } - }, - { - "date": "Fri, 12 Jan 2024 11:08:40 GMT", - "tag": "@griffel/next-extraction-plugin_v0.1.0", - "version": "0.1.0", - "comments": { - "minor": [ - { - "author": "olfedias@microsoft.com", - "package": "@griffel/next-extraction-plugin", - "commit": "f134bc6056599a78cf27b71dec854224a162ee22", - "comment": "chore: require Next.js 13 or 14" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.4.5", - "commit": "0d2e5506d6b9bc9d7e4a102b88c2bb25eff9a34d" - } - ], - "patch": [ - { - "author": "olfedias@microsoft.com", - "package": "@griffel/next-extraction-plugin", - "commit": "5f2a0e43eb2ff94914904b54bd474cd1af948b6f", - "comment": "chore: improve checks on .rules" - } - ] - } - }, - { - "date": "Thu, 30 Nov 2023 16:42:15 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.36", - "version": "0.0.36", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.4.4", - "commit": "7d72d1eb3439ef8423fe958035a1525da1822750" - } - ] - } - }, - { - "date": "Mon, 13 Nov 2023 15:16:05 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.35", - "version": "0.0.35", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.4.3", - "commit": "dbbdcb6cdacb4ee3200b0dbb4a6e4da7fd443805" - } - ] - } - }, - { - "date": "Thu, 09 Nov 2023 14:35:07 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.34", - "version": "0.0.34", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.4.2", - "commit": "8f213a0c040ee833b268cb2558adf976773ac14d" - } - ] - } - }, - { - "date": "Mon, 30 Oct 2023 14:08:55 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.33", - "version": "0.0.33", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.4.1", - "commit": "f001ae503d75d7ddcf70d0633e2f51111b70ed45" - } - ] - } - }, - { - "date": "Wed, 18 Oct 2023 09:11:01 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.32", - "version": "0.0.32", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.4.0", - "commit": "c2d669493849f4c117624862379f05c25d7f1b40" - } - ] - } - }, - { - "date": "Tue, 03 Oct 2023 19:09:32 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.31", - "version": "0.0.31", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.22", - "commit": "1476e34bd093df1132181acfebbb8c51922d5c8b" - } - ] - } - }, - { - "date": "Fri, 15 Sep 2023 08:08:43 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.30", - "version": "0.0.30", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.21", - "commit": "744403e2d046701dc82b02460a60e1680bb60f2e" - } - ] - } - }, - { - "date": "Fri, 01 Sep 2023 12:27:27 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.29", - "version": "0.0.29", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.20", - "commit": "64613e2b35984a40f1e1de4229409669d3499bfb" - } - ] - } - }, - { - "date": "Mon, 28 Aug 2023 17:17:47 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.28", - "version": "0.0.28", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.19", - "commit": "5865f8ac8953dc0caa5dc47807e8bc9cc6487dae" - } - ] - } - }, - { - "date": "Mon, 31 Jul 2023 12:18:47 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.27", - "version": "0.0.27", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.18", - "commit": "fa5f0d726cbdca1cc583ccc7af4578a7f3f6599f" - } - ] - } - }, - { - "date": "Mon, 31 Jul 2023 09:05:33 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.26", - "version": "0.0.26", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.17", - "commit": "1d0df068e80f3cb602651f1875edbd625d221c47" - } - ] - } - }, - { - "date": "Wed, 19 Jul 2023 07:32:54 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.25", - "version": "0.0.25", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.16", - "commit": "47f4df96449fc23545eab7c58ede2e55610c637c" - } - ] - } - }, - { - "date": "Thu, 13 Jul 2023 11:31:22 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.24", - "version": "0.0.24", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.15", - "commit": "2f75c38dada524264284c2a92c57437309dcf491" - } - ] - } - }, - { - "date": "Thu, 29 Jun 2023 12:49:54 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.23", - "version": "0.0.23", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.14", - "commit": "105857b021ee1d471efc29037a20601fb80bc72a" - } - ] - } - }, - { - "date": "Wed, 28 Jun 2023 16:07:13 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.22", - "version": "0.0.22", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.13", - "commit": "d551a7f5a11b4123d1b353cab37e85058de17eb4" - } - ] - } - }, - { - "date": "Tue, 27 Jun 2023 14:18:04 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.21", - "version": "0.0.21", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.12", - "commit": "02499fc94501e5f859aef982db3d9a23bc2a13bc" - } - ] - } - }, - { - "date": "Tue, 25 Apr 2023 14:34:44 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.20", - "version": "0.0.20", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.11", - "commit": "b7b8ccddbc7681cdb9894d7415cd51ea29320145" - } - ] - } - }, - { - "date": "Fri, 14 Apr 2023 07:58:49 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.19", - "version": "0.0.19", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.10", - "commit": "ff7edd54e829fbeb5453383fe6a19009e44b64b2" - } - ] - } - }, - { - "date": "Wed, 29 Mar 2023 12:45:13 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.18", - "version": "0.0.18", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.9", - "commit": "9ad8031fa6346e97d5d444b26d7bdf380f9c69c1" - } - ] - } - }, - { - "date": "Tue, 28 Mar 2023 13:04:53 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.17", - "version": "0.0.17", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.8", - "commit": "a0b6a6c16329b9ab79a603cbcfbbee7de80dba0e" - } - ] - } - }, - { - "date": "Thu, 02 Mar 2023 14:51:11 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.16", - "version": "0.0.16", - "comments": { - "none": [ - { - "author": "olfedias@microsoft.com", - "package": "@griffel/next-extraction-plugin", - "commit": "d8e62d7756c8bd3908e2ce5a95ee0a842fc7df9d", - "comment": "chore: bump Nx" - } - ], - "patch": [ - { - "author": "olfedias@microsoft.com", - "package": "@griffel/next-extraction-plugin", - "commit": "3edb840d4139d81744620d8bded738d814cd71f5", - "comment": "chore: remove @griffel/core from peerDependencies" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.7", - "commit": "3edb840d4139d81744620d8bded738d814cd71f5" - } - ] - } - }, - { - "date": "Fri, 10 Feb 2023 10:23:25 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.15", - "version": "0.0.15", - "comments": { - "none": [ - { - "author": "olfedias@microsoft.com", - "package": "@griffel/next-extraction-plugin", - "commit": "bb07d370d3084b9bd7f2941fd82be79fa6c99b4b", - "comment": "chore: update tsconfig files" - } - ], - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.6", - "commit": "5837c739ee141a9099a031449870dbca46ce648d" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/core to v1.9.2", - "commit": "5837c739ee141a9099a031449870dbca46ce648d" - } - ] - } - }, - { - "date": "Wed, 01 Feb 2023 10:47:40 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.14", - "version": "0.0.14", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.5", - "commit": "15fa8433ef03cb28b8f528960ae335e9e2231eeb" - } - ] - } - }, - { - "date": "Thu, 26 Jan 2023 14:06:28 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.13", - "version": "0.0.13", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.4", - "commit": "d87ba30b4f07fc759c0abb18ff86fd57dd79296f" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/core to v1.9.1", - "commit": "d87ba30b4f07fc759c0abb18ff86fd57dd79296f" - } - ] - } - }, - { - "date": "Tue, 20 Dec 2022 11:48:33 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.12", - "version": "0.0.12", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.3", - "commit": "7d2e3ba8656afccb6cf0b56e7b7f6cce0ae9fd15" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/core to v1.9.0", - "commit": "7d2e3ba8656afccb6cf0b56e7b7f6cce0ae9fd15" - } - ] - } - }, - { - "date": "Fri, 09 Dec 2022 11:15:19 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.11", - "version": "0.0.11", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.2", - "commit": "9b94a45ba5bd526460dd97aaea103cf64d9d5450" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/core to v1.8.3", - "commit": "9b94a45ba5bd526460dd97aaea103cf64d9d5450" - } - ] - } - }, - { - "date": "Wed, 30 Nov 2022 17:14:53 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.10", - "version": "0.0.10", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.1", - "commit": "f985b6dc5e3576f5aacce45752755d06cff7ef70" - } - ] - } - }, - { - "date": "Wed, 30 Nov 2022 09:32:24 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.9", - "version": "0.0.9", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.3.0", - "commit": "f5c9ec05b8892ef7388e876671b475daf64b28b6" - } - ] - } - }, - { - "date": "Thu, 24 Nov 2022 10:05:12 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.8", - "version": "0.0.8", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.2.2", - "commit": "fc3403a602d5dd0b206ceeb48ca689cb2fdf6d37" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/core to v1.8.2", - "commit": "fc3403a602d5dd0b206ceeb48ca689cb2fdf6d37" - } - ] - } - }, - { - "date": "Wed, 26 Oct 2022 11:06:03 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.7", - "version": "0.0.7", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.2.1", - "commit": "f9fb5726c89abff0c7f5e07c6e1d1c8e0ebbcde6" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/core to v1.8.1", - "commit": "f9fb5726c89abff0c7f5e07c6e1d1c8e0ebbcde6" - } - ] - } - }, - { - "date": "Thu, 13 Oct 2022 08:36:18 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.6", - "version": "0.0.6", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.2.0", - "commit": "32d9b0bfa4372343d710368b6bed1cc5185a6684" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/core to v1.8.0", - "commit": "32d9b0bfa4372343d710368b6bed1cc5185a6684" - } - ] - } - }, - { - "date": "Wed, 05 Oct 2022 14:28:43 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.5", - "version": "0.0.5", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.1.8", - "commit": "9173966f4f1c69556f68351e6361d9302c674621" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/core to v1.7.0", - "commit": "9173966f4f1c69556f68351e6361d9302c674621" - } - ] - } - }, - { - "date": "Tue, 04 Oct 2022 08:44:33 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.4", - "version": "0.0.4", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.1.7", - "commit": "6828b9b754d65621e12a8fbff54c9f486eab032e" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/core to v1.6.1", - "commit": "6828b9b754d65621e12a8fbff54c9f486eab032e" - } - ] - } - }, - { - "date": "Tue, 16 Aug 2022 11:16:00 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.3", - "version": "0.0.3", - "comments": { - "patch": [ - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.1.6", - "commit": "545253c7bd0c84f3c72803b6b88946e617922714" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/core to v1.6.0", - "commit": "545253c7bd0c84f3c72803b6b88946e617922714" - } - ] - } - }, - { - "date": "Fri, 05 Aug 2022 09:44:44 GMT", - "tag": "@griffel/next-extraction-plugin_v0.0.2", - "version": "0.0.2", - "comments": { - "patch": [ - { - "author": "dwlad90@gmail.com", - "package": "@griffel/next-extraction-plugin", - "commit": "81c9176d20ecefdeca14c94fb4705563f5faeba2", - "comment": "feat: export GriffelCSSExtractionPluginOptions type" - }, - { - "author": "beachball", - "package": "@griffel/next-extraction-plugin", - "comment": "Bump @griffel/webpack-extraction-plugin to v0.1.5", - "commit": "81c9176d20ecefdeca14c94fb4705563f5faeba2" - } - ] - } - } - ] -} diff --git a/packages/next-extraction-plugin/CHANGELOG.md b/packages/next-extraction-plugin/CHANGELOG.md deleted file mode 100644 index 76f9c95f1..000000000 --- a/packages/next-extraction-plugin/CHANGELOG.md +++ /dev/null @@ -1,431 +0,0 @@ -# Change Log - @griffel/next-extraction-plugin - -This log was last generated on Fri, 06 Mar 2026 15:56:28 GMT and should not be manually modified. - - - -## 0.1.15 - -Fri, 06 Mar 2026 15:56:28 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.14 - -## 0.1.14 - -Fri, 06 Mar 2026 08:17:05 GMT - -### Patches - -- fix: work with Next.js 15 (olfedias@microsoft.com) -- Bump @griffel/webpack-extraction-plugin to v0.5.13 - -## 0.1.13 - -Tue, 05 Aug 2025 16:25:42 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.12 - -## 0.1.12 - -Mon, 28 Jul 2025 09:12:30 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.11 - -## 0.1.11 - -Tue, 22 Apr 2025 10:05:48 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.10 - -## 0.1.10 - -Thu, 23 Jan 2025 12:09:03 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.9 - -## 0.1.9 - -Wed, 22 Jan 2025 13:44:43 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.8 - -## 0.1.8 - -Tue, 12 Nov 2024 09:58:11 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.7 - -## 0.1.7 - -Thu, 31 Oct 2024 16:16:50 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.6 - -## 0.1.6 - -Mon, 29 Jul 2024 07:31:53 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.5 - -## 0.1.5 - -Wed, 10 Jul 2024 14:36:29 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.4 - -## 0.1.4 - -Wed, 22 May 2024 08:24:17 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.3 - -## 0.1.3 - -Thu, 02 May 2024 14:07:14 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.2 - -## 0.1.2 - -Tue, 19 Mar 2024 11:33:53 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.1 - -## 0.1.1 - -Fri, 26 Jan 2024 10:01:06 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.5.0 - -## 0.1.0 - -Fri, 12 Jan 2024 11:08:40 GMT - -### Minor changes - -- chore: require Next.js 13 or 14 (olfedias@microsoft.com) -- Bump @griffel/webpack-extraction-plugin to v0.4.5 - -### Patches - -- chore: improve checks on .rules (olfedias@microsoft.com) - -## 0.0.36 - -Thu, 30 Nov 2023 16:42:15 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.4.4 - -## 0.0.35 - -Mon, 13 Nov 2023 15:16:05 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.4.3 - -## 0.0.34 - -Thu, 09 Nov 2023 14:35:07 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.4.2 - -## 0.0.33 - -Mon, 30 Oct 2023 14:08:55 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.4.1 - -## 0.0.32 - -Wed, 18 Oct 2023 09:11:01 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.4.0 - -## 0.0.31 - -Tue, 03 Oct 2023 19:09:32 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.22 - -## 0.0.30 - -Fri, 15 Sep 2023 08:08:43 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.21 - -## 0.0.29 - -Fri, 01 Sep 2023 12:27:27 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.20 - -## 0.0.28 - -Mon, 28 Aug 2023 17:17:47 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.19 - -## 0.0.27 - -Mon, 31 Jul 2023 12:18:47 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.18 - -## 0.0.26 - -Mon, 31 Jul 2023 09:05:33 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.17 - -## 0.0.25 - -Wed, 19 Jul 2023 07:32:54 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.16 - -## 0.0.24 - -Thu, 13 Jul 2023 11:31:22 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.15 - -## 0.0.23 - -Thu, 29 Jun 2023 12:49:54 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.14 - -## 0.0.22 - -Wed, 28 Jun 2023 16:07:13 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.13 - -## 0.0.21 - -Tue, 27 Jun 2023 14:18:04 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.12 - -## 0.0.20 - -Tue, 25 Apr 2023 14:34:44 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.11 - -## 0.0.19 - -Fri, 14 Apr 2023 07:58:49 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.10 - -## 0.0.18 - -Wed, 29 Mar 2023 12:45:13 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.9 - -## 0.0.17 - -Tue, 28 Mar 2023 13:04:53 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.8 - -## 0.0.16 - -Thu, 02 Mar 2023 14:51:11 GMT - -### Patches - -- chore: remove @griffel/core from peerDependencies (olfedias@microsoft.com) -- Bump @griffel/webpack-extraction-plugin to v0.3.7 - -## 0.0.15 - -Fri, 10 Feb 2023 10:23:25 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.6 -- Bump @griffel/core to v1.9.2 - -## 0.0.14 - -Wed, 01 Feb 2023 10:47:40 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.5 - -## 0.0.13 - -Thu, 26 Jan 2023 14:06:28 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.4 -- Bump @griffel/core to v1.9.1 - -## 0.0.12 - -Tue, 20 Dec 2022 11:48:33 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.3 -- Bump @griffel/core to v1.9.0 - -## 0.0.11 - -Fri, 09 Dec 2022 11:15:19 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.2 -- Bump @griffel/core to v1.8.3 - -## 0.0.10 - -Wed, 30 Nov 2022 17:14:53 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.1 - -## 0.0.9 - -Wed, 30 Nov 2022 09:32:24 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.3.0 - -## 0.0.8 - -Thu, 24 Nov 2022 10:05:12 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.2.2 -- Bump @griffel/core to v1.8.2 - -## 0.0.7 - -Wed, 26 Oct 2022 11:06:03 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.2.1 -- Bump @griffel/core to v1.8.1 - -## 0.0.6 - -Thu, 13 Oct 2022 08:36:18 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.2.0 -- Bump @griffel/core to v1.8.0 - -## 0.0.5 - -Wed, 05 Oct 2022 14:28:43 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.1.8 -- Bump @griffel/core to v1.7.0 - -## 0.0.4 - -Tue, 04 Oct 2022 08:44:33 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.1.7 -- Bump @griffel/core to v1.6.1 - -## 0.0.3 - -Tue, 16 Aug 2022 11:16:00 GMT - -### Patches - -- Bump @griffel/webpack-extraction-plugin to v0.1.6 -- Bump @griffel/core to v1.6.0 - -## 0.0.2 - -Fri, 05 Aug 2022 09:44:44 GMT - -### Patches - -- feat: export GriffelCSSExtractionPluginOptions type (dwlad90@gmail.com) -- Bump @griffel/webpack-extraction-plugin to v0.1.5 diff --git a/packages/next-extraction-plugin/README.md b/packages/next-extraction-plugin/README.md deleted file mode 100644 index 558b4a7a5..000000000 --- a/packages/next-extraction-plugin/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Next plugin to perform CSS extraction in Griffel - -A plugin for NextJS 12.0.5 and newer that adds [`@griffel/webpack-extraction-plugin`](../webpack-extraction-plugin) to webpack loaders pipeline. - - - - -- [Install](#install) -- [Usage](#usage) - - - -## Install - -```bash -yarn add --dev @griffel/next-extraction-plugin -# or -npm install --save-dev @griffel/next-extraction-plugin -``` - -Please install `@griffel/webpack-loader` if you haven't done so already: - -```bash -yarn add --dev @griffel/webpack-loader -# or -npm install --save-dev @griffel/webpack-loader -``` - -For more details please check [README of `@griffel/webpack-loader`](../webpack-loader/README.md). - -## Usage - -In `next.config.js` file you'll need to add the next-plugin from `@griffel/webpack-extraction-plugin` like so: - -```js -// next.config.js -const { withGriffelCSSExtraction } = require('@griffel/next-extraction-plugin'); - -module.exports = withGriffelCSSExtraction()({ - webpack(config) { - config.module.rules.unshift({ - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: [ - { - loader: '@griffel/webpack-loader', - }, - ], - }); - - // If your project uses TypeScript - config.module.rules.unshift({ - test: /\.(ts|tsx)$/, - exclude: /node_modules/, - use: [ - { - loader: '@griffel/webpack-loader', - options: { - babelOptions: { - presets: ['next/babel'], - }, - }, - }, - ], - }); - - return config; - }, -}); -``` diff --git a/packages/next-extraction-plugin/jest.config.ts b/packages/next-extraction-plugin/jest.config.ts deleted file mode 100644 index 878908829..000000000 --- a/packages/next-extraction-plugin/jest.config.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* eslint-disable */ -export default { - displayName: 'next-extraction-plugin', - preset: '../../jest.preset.js', - globals: {}, - testEnvironment: 'node', - transform: { - '^.+\\.[tj]sx?$': [ - 'ts-jest', - { - tsconfig: '/tsconfig.spec.json', - }, - ], - }, - moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], - coverageDirectory: '../../coverage/packages/next-extraction-plugin', -}; diff --git a/packages/next-extraction-plugin/package.json b/packages/next-extraction-plugin/package.json deleted file mode 100644 index 1f4bdac03..000000000 --- a/packages/next-extraction-plugin/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@griffel/next-extraction-plugin", - "version": "0.1.15", - "description": "NextJS plugin that add Griffel's CSS extraction to webpack loaders pipeline", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/microsoft/griffel" - }, - "dependencies": { - "@griffel/webpack-extraction-plugin": "^0.5.14", - "browserslist": "^4.19.1", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "next": ">=13" - } -} diff --git a/packages/next-extraction-plugin/project.json b/packages/next-extraction-plugin/project.json deleted file mode 100644 index 5daf93f80..000000000 --- a/packages/next-extraction-plugin/project.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "@griffel/next-extraction-plugin", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "packages/next-extraction-plugin/src", - "projectType": "library", - "tags": [], - "targets": { - "lint": { - "executor": "@nx/eslint:lint", - "outputs": ["{options.outputFile}"] - }, - "test": { - "executor": "@nx/jest:jest", - "outputs": ["{workspaceRoot}/coverage/packages/next-extraction-plugin"], - "options": { - "jestConfig": "packages/next-extraction-plugin/jest.config.ts" - } - }, - "build": { - "executor": "@nx/js:tsc", - "outputs": ["{options.outputPath}"], - "options": { - "outputPath": "dist/packages/next-extraction-plugin", - "tsConfig": "packages/next-extraction-plugin/tsconfig.lib.json", - "skipTypeField": true, - "packageJson": "packages/next-extraction-plugin/package.json", - "main": "packages/next-extraction-plugin/src/index.ts", - "assets": ["packages/next-extraction-plugin/*.md"] - } - }, - "type-check": { - "executor": "nx:run-commands", - "options": { - "cwd": "packages/next-extraction-plugin", - "commands": [ - { - "command": "tsc -b --pretty" - } - ] - }, - "outputs": [] - } - } -} diff --git a/packages/next-extraction-plugin/src/index.ts b/packages/next-extraction-plugin/src/index.ts deleted file mode 100644 index a2e4df820..000000000 --- a/packages/next-extraction-plugin/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { withGriffelCSSExtraction } from './lib/next-extraction-plugin'; diff --git a/packages/next-extraction-plugin/src/lib/next-extraction-plugin.spec.ts b/packages/next-extraction-plugin/src/lib/next-extraction-plugin.spec.ts deleted file mode 100644 index bef34b4ab..000000000 --- a/packages/next-extraction-plugin/src/lib/next-extraction-plugin.spec.ts +++ /dev/null @@ -1,126 +0,0 @@ -import { withGriffelCSSExtraction } from './next-extraction-plugin'; - -import type { NextConfig } from 'next'; -import type { WebpackConfigContext } from 'next/dist/server/config-shared'; -import type { Configuration, RuleSetRule } from 'webpack'; - -const getNextConfig: () => NextConfig = () => ({ - webpack: config => { - return config; - }, -}); - -const getWebpackConfig: () => Configuration = () => ({ - module: { - rules: [ - { - oneOf: [ - { - test: /.css/, - }, - ], - }, - ], - }, - plugins: [], -}); - -const options = { - defaultLoaders: {}, - dev: false, - dir: '/', - isServer: true, - buildId: 'griffel', -} as WebpackConfigContext; - -describe('nextExtractionPlugin', () => { - it('should work', () => { - const config = withGriffelCSSExtraction({})({}); - - expect(config).toBeInstanceOf(Object); - expect(config.webpack).toBeInstanceOf(Function); - }); - - it('should failed with next@5 and lower', () => { - const config = withGriffelCSSExtraction({})({}); - - if (config?.webpack) { - const result = () => config.webpack?.({}, {} as WebpackConfigContext); - expect(result).toThrow(Error); - } - }); - - it('should call custom webpack config', () => { - // eslint-disable-next-line @typescript-eslint/no-empty-function - const nextConfig = getNextConfig(); - const consoleSpy = jest.spyOn(nextConfig, 'webpack'); - - const config = withGriffelCSSExtraction({})(nextConfig); - - if (config?.webpack) config?.webpack({}, options); - - expect(consoleSpy).toHaveBeenCalled(); - }); - - it('should extract css when mode is prod', () => { - const nextConfig = getNextConfig(); - const webpackConfig = getWebpackConfig(); - - const config = withGriffelCSSExtraction({})(nextConfig); - - expect(webpackConfig.plugins?.length).toEqual(0); - expect(webpackConfig.module?.rules?.length).toEqual(1); - expect((webpackConfig.module?.rules?.[0] as RuleSetRule)?.oneOf?.length).toEqual(1); - - config.webpack?.(webpackConfig, { ...options }); - - expect(webpackConfig.plugins?.length).toEqual(1); - expect(webpackConfig.module?.rules?.length).toEqual(2); - expect((webpackConfig.module?.rules?.[1] as RuleSetRule)?.oneOf?.length).toEqual(2); - }); - - it('should extend webpack loader rule', () => { - const nextConfig = getNextConfig(); - const webpackConfig = getWebpackConfig(); - - // @ts-expect-error - pass 'test' param isn't legal - const config = withGriffelCSSExtraction({ extractLoaderRuleAttrs: { test: /\.(jsx)$/, exclude: /node_modules/ } })( - nextConfig, - ); - - config.webpack?.(webpackConfig, { ...options }); - - const rule = webpackConfig.module?.rules?.[0] as RuleSetRule; - - expect(rule?.exclude).toEqual(/node_modules/); - expect(rule?.test).toEqual(/\.(tsx|ts|js|jsx)$/); - expect(rule?.use).toHaveLength(1); - }); - - it("should't extract css when mode is dev", () => { - const nextConfig = getNextConfig(); - const webpackConfig = getWebpackConfig(); - - const config = withGriffelCSSExtraction({})(nextConfig); - - config.webpack?.(webpackConfig, { ...options, dev: true }); - - expect(webpackConfig.plugins?.length).toEqual(0); - expect(webpackConfig.module?.rules?.length).toEqual(1); - expect((webpackConfig.module?.rules?.[0] as RuleSetRule)?.oneOf?.length).toEqual(1); - }); - - it("should't extract css if native css loader isn't exist", () => { - const nextConfig = getNextConfig(); - const webpackConfig = getWebpackConfig(); - - webpackConfig.module!.rules!.length = 0; - - const config = withGriffelCSSExtraction({})(nextConfig); - - config.webpack?.(webpackConfig, { ...options, dev: true }); - - expect(webpackConfig.plugins?.length).toEqual(0); - expect(webpackConfig.module?.rules?.length).toEqual(0); - }); -}); diff --git a/packages/next-extraction-plugin/src/lib/next-extraction-plugin.ts b/packages/next-extraction-plugin/src/lib/next-extraction-plugin.ts deleted file mode 100644 index 40116c406..000000000 --- a/packages/next-extraction-plugin/src/lib/next-extraction-plugin.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { GriffelCSSExtractionPlugin } from '@griffel/webpack-extraction-plugin'; -import * as browserslist from 'browserslist'; -import { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'; -import { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'; - -import type { GriffelCSSExtractionPluginOptions } from '@griffel/webpack-extraction-plugin'; -import type { NextConfig } from 'next'; -import type { ConfigurationContext } from 'next/dist/build/webpack/config/utils'; -import type { Configuration, RuleSetRule } from 'webpack'; - -type GriffelNextExtractionPluginOptions = GriffelCSSExtractionPluginOptions & { - extractLoaderRuleAttrs?: Omit; -}; - -function getSupportedBrowsers(dir: string, isDevelopment: boolean) { - let browsers: string[] | undefined; - try { - browsers = browserslist.loadConfig({ - path: dir, - env: isDevelopment ? 'development' : 'production', - }); - } catch { - // Prevent error on build time - } - - return browsers; -} - -export const withGriffelCSSExtraction = - ({ - extractLoaderRuleAttrs: webpackLoaderRules = {}, - ...webpackPluginOptions - }: GriffelNextExtractionPluginOptions = {}) => - (nextConfig: NextConfig = {}) => - Object.assign({}, nextConfig, { - webpack(config: Configuration & ConfigurationContext, options) { - const { dir, dev, isServer } = options; - - if (!options.defaultLoaders) { - throw new Error( - 'This plugin is not compatible with Next.js versions below 5.0.0 https://err.sh/next-plugins/upgrade', - ); - } - - // The @Griffel compiler must run on source code, which means it must be - // configured as the last loader in webpack so that it runs before any - // other transformation. - - if (typeof nextConfig.webpack === 'function') { - // eslint-disable-next-line no-param-reassign - config = nextConfig.webpack(config, options); - } - - if (dev) { - // not push @griffel/webpack-extraction-plugin if dev build - return config; - } - - const cssRules = ( - config.module?.rules?.find( - rule => - typeof rule === 'object' && - rule !== null && - Array.isArray(rule.oneOf) && - rule.oneOf.some( - setRule => - setRule && - setRule.test instanceof RegExp && - typeof setRule.test.test === 'function' && - setRule.test.test('filename.css'), - ), - ) as RuleSetRule - )?.oneOf; - - if (cssRules) { - config?.module?.rules?.unshift({ - ...webpackLoaderRules, - test: /\.(tsx|ts|js|jsx)$/, - use: [ - { - loader: GriffelCSSExtractionPlugin.loader, - }, - ], - }); - - cssRules.unshift({ - test: /griffel\.css$/i, - sideEffects: true, - use: getGlobalCssLoader( - { - assetPrefix: config.assetPrefix, - isClient: !isServer, - isServer, - isDevelopment: dev, - experimental: nextConfig.experimental || {}, - } as ConfigurationContext, - () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev), undefined, undefined), - [], - ), - }); - - if (!Array.isArray(config?.plugins)) { - config.plugins = []; - } - - config.plugins.push(new GriffelCSSExtractionPlugin(webpackPluginOptions)); - } - - return config; - }, - } as NextConfig); diff --git a/packages/next-extraction-plugin/tsconfig.json b/packages/next-extraction-plugin/tsconfig.json deleted file mode 100644 index b5371dfd3..000000000 --- a/packages/next-extraction-plugin/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "allowJs": true, - "checkJs": true - }, - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.lib.json" - }, - { - "path": "./tsconfig.spec.json" - } - ] -} diff --git a/packages/next-extraction-plugin/tsconfig.lib.json b/packages/next-extraction-plugin/tsconfig.lib.json deleted file mode 100644 index 0a5aff6ef..000000000 --- a/packages/next-extraction-plugin/tsconfig.lib.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "module": "commonjs", - "outDir": "../../dist/out-tsc", - "declaration": true, - "types": ["node", "environment"] - }, - "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"], - "include": ["**/*.ts"] -} diff --git a/packages/next-extraction-plugin/tsconfig.spec.json b/packages/next-extraction-plugin/tsconfig.spec.json deleted file mode 100644 index 1470336f4..000000000 --- a/packages/next-extraction-plugin/tsconfig.spec.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "jsx": "react", - "outDir": "../../dist/out-tsc", - "module": "commonjs", - "types": ["jest", "node", "environment", "static-assets"] - }, - "include": [ - "__fixtures__/**/*/code.ts", - "**/*.test.ts", - "**/*.spec.ts", - "**/*.test.tsx", - "**/*.spec.tsx", - "**/*.test.js", - "**/*.spec.js", - "**/*.test.jsx", - "**/*.spec.jsx", - "**/*.d.ts", - "jest.config.ts" - ] -} diff --git a/packages/transform-shaker/package.json b/packages/transform-shaker/package.json index 3431d5fdd..0eb52168d 100644 --- a/packages/transform-shaker/package.json +++ b/packages/transform-shaker/package.json @@ -8,10 +8,12 @@ "url": "https://github.com/microsoft/griffel" }, "type": "module", + "main": "./src/index.js", + "types": "./src/index.d.ts", "exports": { ".": { - "node": "./transform-shaker.js", - "types": "./index.d.mts" + "types": "./src/index.d.ts", + "default": "./src/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/transform-shaker/project.json b/packages/transform-shaker/project.json index 7e017c20f..9c49f36e3 100644 --- a/packages/transform-shaker/project.json +++ b/packages/transform-shaker/project.json @@ -17,12 +17,22 @@ } }, "build": { - "executor": "@nx/vite:build", + "executor": "@nx/js:tsc", "outputs": ["{options.outputPath}"], "options": { "outputPath": "dist/packages/transform-shaker", - "compiler": "swc", - "format": ["esm"] + "tsConfig": "packages/transform-shaker/tsconfig.lib.json", + "skipTypeField": true, + "packageJson": "packages/transform-shaker/package.json", + "main": "packages/transform-shaker/src/index.ts", + "assets": [ + "packages/transform-shaker/README.md", + { + "glob": "LICENSE.md", + "input": ".", + "output": "." + } + ] } }, "type-check": { diff --git a/packages/transform-shaker/tsconfig.lib.json b/packages/transform-shaker/tsconfig.lib.json index 4ed42b2e1..e52065737 100644 --- a/packages/transform-shaker/tsconfig.lib.json +++ b/packages/transform-shaker/tsconfig.lib.json @@ -1,6 +1,8 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "module": "ESNext", + "moduleResolution": "bundler", "outDir": "../../dist/out-tsc", "declaration": true, "types": ["node"] diff --git a/packages/transform-shaker/vite.config.ts b/packages/transform-shaker/vite.config.ts deleted file mode 100644 index 7f0cdef7b..000000000 --- a/packages/transform-shaker/vite.config.ts +++ /dev/null @@ -1,46 +0,0 @@ -/// -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; -import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; -import { readFileSync } from 'node:fs'; -import { join, resolve } from 'node:path'; - -const packageJson = JSON.parse(readFileSync(join(__dirname, 'package.json'), 'utf-8')); - -const dependencies: string[] = Object.keys(packageJson.dependencies || {}); -const external = ([/node:/] as (string | RegExp)[]).concat(dependencies); - -export default defineConfig(() => ({ - root: __dirname, - cacheDir: '../../node_modules/.vite/packages/transform-shaker', - plugins: [ - nxViteTsPaths(), - nxCopyAssetsPlugin(['*.md']), - dts({ entryRoot: 'src', tsconfigPath: join(__dirname, 'tsconfig.lib.json'), pathsToAliases: false }), - ], - build: { - emptyOutDir: true, - lib: { - entry: resolve(__dirname, 'src/index.ts'), - formats: ['es' as const], - target: 'node20' as const, - }, - rollupOptions: { - external, - }, - minify: false, - }, - test: { - watch: false, - globals: true, - passWithNoTests: true, - environment: 'node', - include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - reporters: ['default'], - coverage: { - reportsDirectory: '../../coverage/packages/transform-shaker', - provider: 'v8' as const, - }, - }, -})); diff --git a/packages/transform-shaker/vitest.config.mts b/packages/transform-shaker/vitest.config.mts new file mode 100644 index 000000000..05078158b --- /dev/null +++ b/packages/transform-shaker/vitest.config.mts @@ -0,0 +1,20 @@ +import { defineConfig } from 'vitest/config'; +import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; + +export default defineConfig({ + root: __dirname, + cacheDir: '../../node_modules/.vite/packages/transform-shaker', + plugins: [nxViteTsPaths()], + test: { + watch: false, + globals: true, + passWithNoTests: true, + environment: 'node', + include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + reporters: ['default'], + coverage: { + reportsDirectory: '../../coverage/packages/transform-shaker', + provider: 'v8', + }, + }, +}); diff --git a/packages/transform/package.json b/packages/transform/package.json index a5bfba035..7825c5c7a 100644 --- a/packages/transform/package.json +++ b/packages/transform/package.json @@ -8,10 +8,12 @@ "url": "https://github.com/microsoft/griffel" }, "type": "module", + "main": "./src/index.mjs", + "types": "./src/index.d.mts", "exports": { ".": { - "node": "./transform.js", - "types": "./index.d.mts" + "types": "./src/index.d.mts", + "default": "./src/index.mjs" }, "./package.json": "./package.json" }, diff --git a/packages/transform/project.json b/packages/transform/project.json index b945f9777..8ed24e6f5 100644 --- a/packages/transform/project.json +++ b/packages/transform/project.json @@ -17,12 +17,22 @@ } }, "build": { - "executor": "@nx/vite:build", + "executor": "@nx/js:tsc", "outputs": ["{options.outputPath}"], "options": { "outputPath": "dist/packages/transform", - "compiler": "swc", - "format": ["esm"] + "tsConfig": "packages/transform/tsconfig.lib.json", + "skipTypeField": true, + "packageJson": "packages/transform/package.json", + "main": "packages/transform/src/index.mts", + "assets": [ + "packages/transform/README.md", + { + "glob": "LICENSE.md", + "input": ".", + "output": "." + } + ] } }, "type-check": { diff --git a/packages/transform/tsconfig.lib.json b/packages/transform/tsconfig.lib.json index a99a4ea5c..6d2b82de4 100644 --- a/packages/transform/tsconfig.lib.json +++ b/packages/transform/tsconfig.lib.json @@ -1,6 +1,8 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "module": "ESNext", + "moduleResolution": "bundler", "outDir": "../../dist/out-tsc", "declaration": true, "types": ["node", "environment"] diff --git a/packages/transform/vite.config.ts b/packages/transform/vite.config.ts deleted file mode 100644 index b965b0f6c..000000000 --- a/packages/transform/vite.config.ts +++ /dev/null @@ -1,49 +0,0 @@ -/// -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; -import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; -import { readFileSync } from 'node:fs'; -import { join, resolve } from 'node:path'; - -const packageJson = JSON.parse(readFileSync(join(__dirname, 'package.json'), 'utf-8')); - -const dependencies: string[] = Object.keys(packageJson.dependencies || {}); -const external = ([/node:/] as (string | RegExp)[]).concat(dependencies); - -export default defineConfig(() => ({ - root: __dirname, - cacheDir: '../../node_modules/.vite/packages/transform', - plugins: [ - nxViteTsPaths(), - nxCopyAssetsPlugin(['*.md']), - dts({ entryRoot: 'src', tsconfigPath: join(__dirname, 'tsconfig.lib.json'), pathsToAliases: false }), - ], - // Uncomment this if you are using workers. - // worker: { - // plugins: [ nxViteTsPaths() ], - // }, - build: { - emptyOutDir: true, - lib: { - entry: resolve(__dirname, 'src/index.mts'), - formats: ['es' as const], - target: 'node20' as const, - }, - rollupOptions: { - external, - }, - minify: false, - }, - test: { - watch: false, - globals: true, - environment: 'node', - include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - reporters: ['default'], - coverage: { - reportsDirectory: '../../coverage/packages/transform', - provider: 'v8' as const, - }, - }, -})); diff --git a/packages/transform/vitest.config.mts b/packages/transform/vitest.config.mts new file mode 100644 index 000000000..b0432da6c --- /dev/null +++ b/packages/transform/vitest.config.mts @@ -0,0 +1,19 @@ +import { defineConfig } from 'vitest/config'; +import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; + +export default defineConfig({ + root: __dirname, + cacheDir: '../../node_modules/.vite/packages/transform', + plugins: [nxViteTsPaths()], + test: { + watch: false, + globals: true, + environment: 'node', + include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + reporters: ['default'], + coverage: { + reportsDirectory: '../../coverage/packages/transform', + provider: 'v8', + }, + }, +}); diff --git a/packages/webpack-plugin/package.json b/packages/webpack-plugin/package.json index 530daa8ca..fd9f32599 100644 --- a/packages/webpack-plugin/package.json +++ b/packages/webpack-plugin/package.json @@ -8,14 +8,16 @@ "url": "https://github.com/microsoft/griffel" }, "type": "module", + "main": "./src/index.mjs", + "types": "./src/index.d.mts", "exports": { ".": { - "node": "./webpack-plugin.js", - "types": "./index.d.mts" + "types": "./src/index.d.mts", + "default": "./src/index.mjs" }, "./loader": { - "node": "./webpack-loader.js", - "types": "./webpackLoader.d.mts" + "types": "./src/webpackLoader.d.mts", + "default": "./src/webpackLoader.mjs" }, "./package.json": "./package.json" }, diff --git a/packages/webpack-plugin/project.json b/packages/webpack-plugin/project.json index 74428db48..ecfdf61c3 100644 --- a/packages/webpack-plugin/project.json +++ b/packages/webpack-plugin/project.json @@ -10,12 +10,27 @@ "outputs": ["{options.outputFile}"] }, "build": { - "executor": "@nx/vite:build", + "executor": "@nx/js:tsc", "outputs": ["{options.outputPath}"], "options": { "outputPath": "dist/packages/webpack-plugin", - "compiler": "swc", - "format": ["esm"] + "tsConfig": "packages/webpack-plugin/tsconfig.lib.json", + "skipTypeField": true, + "packageJson": "packages/webpack-plugin/package.json", + "main": "packages/webpack-plugin/src/index.mts", + "assets": [ + "packages/webpack-plugin/README.md", + { + "glob": "LICENSE.md", + "input": ".", + "output": "." + }, + { + "glob": "*", + "input": "packages/webpack-plugin/src/virtual-loader", + "output": "src/virtual-loader" + } + ] } }, "type-check": { diff --git a/packages/webpack-plugin/src/GriffelPlugin.mts b/packages/webpack-plugin/src/GriffelPlugin.mts index 2066e7fbe..920f54ed8 100644 --- a/packages/webpack-plugin/src/GriffelPlugin.mts +++ b/packages/webpack-plugin/src/GriffelPlugin.mts @@ -121,7 +121,10 @@ export class GriffelPlugin { evaluationMode: 'ast' | 'vm'; } > = {}; - readonly #perfIssues: Map }> = new Map(); + readonly #perfIssues: Map< + string, + { type: 'cjs-module' | 'barrel-export-star'; dependencyFilename: string; sourceFilenames: Set } + > = new Map(); constructor(options: GriffelCSSExtractionPluginOptions = {}) { this.#attachToEntryPoint = options.unstable_attachToEntryPoint; @@ -144,8 +147,7 @@ export class GriffelPlugin { // Webpack to shake out generated CSS. // @ Rspack compat: - // "createModule" in "normalModuleFactory" is not supported by Rspack - // https://github.com/web-infra-dev/rspack/blob/e52601e059fff1f0cdc4e9328746fb3ae6c3ecb2/packages/rspack/src/NormalModuleFactory.ts#L53 + // "createModule" in "normalModuleFactory" is supported by Rspack, but updates of `settings` are ignored if (!IS_RSPACK) { compiler.hooks.normalModuleFactory.tap(PLUGIN_NAME, nmf => { nmf.hooks.createModule.tap( @@ -181,70 +183,65 @@ export class GriffelPlugin { compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => { const resolveModule = this.#resolverFactory(compilation); - // @ Rspack compat - // As Rspack does not support functions in "splitChunks.cacheGroups" we have to emit modules differently - // and can't rely on this approach due - if (!IS_RSPACK) { - // WHAT? - // Adds a callback to the loader context - // WHY? - // Allows us to register the CSS extracted from Griffel calls to then process in a CSS module - const cssByModuleMap = new Map(); - - NormalModule.getCompilationHooks(compilation).loader.tap(PLUGIN_NAME, (loaderContext, module) => { - const resourcePath = module.resource; - - (loaderContext as SupplementedLoaderContext)[GriffelCssLoaderContextKey] = { - collectPerfIssues: this.#collectPerfIssues, - resolveModule, - registerExtractedCss(css: string) { - cssByModuleMap.set(resourcePath, css); - }, - getExtractedCss() { - const css = cssByModuleMap.get(resourcePath) ?? ''; - cssByModuleMap.delete(resourcePath); - - return css; - }, - runWithTimer: cb => { - if (!this.#collectStats && !this.#collectPerfIssues) { - return cb().result; - } + // WHAT? + // Adds a callback to the loader context + // WHY? + // Allows us to register the CSS extracted from Griffel calls to then process in a CSS module + const cssByModuleMap = new Map(); - const start = this.#collectStats ? process.hrtime.bigint() : 0n; - const { meta, result } = cb(); + NormalModule.getCompilationHooks(compilation).loader.tap(PLUGIN_NAME, (loaderContext, module) => { + const resourcePath = module.resource; - if (this.#collectStats) { - const end = process.hrtime.bigint(); + (loaderContext as SupplementedLoaderContext)[GriffelCssLoaderContextKey] = { + collectPerfIssues: this.#collectPerfIssues, + resolveModule, + registerExtractedCss(css: string) { + cssByModuleMap.set(resourcePath, css); + }, + getExtractedCss() { + const css = cssByModuleMap.get(resourcePath) ?? ''; + cssByModuleMap.delete(resourcePath); - this.#stats[meta.filename] = { - time: end - start, - evaluationMode: meta.evaluationMode, - }; - } + return css; + }, + runWithTimer: cb => { + if (!this.#collectStats && !this.#collectPerfIssues) { + return cb().result; + } + + const start = this.#collectStats ? process.hrtime.bigint() : 0n; + const { meta, result } = cb(); + + if (this.#collectStats) { + const end = process.hrtime.bigint(); + + this.#stats[meta.filename] = { + time: end - start, + evaluationMode: meta.evaluationMode, + }; + } - if (this.#collectPerfIssues && meta.perfIssues) { - for (const issue of meta.perfIssues) { - const key = `${issue.type}:${issue.dependencyFilename}`; - const existing = this.#perfIssues.get(key); - - if (existing) { - existing.sourceFilenames.add(meta.filename); - } else { - this.#perfIssues.set(key, { - type: issue.type, - dependencyFilename: issue.dependencyFilename, - sourceFilenames: new Set([meta.filename]), - }); - } + if (this.#collectPerfIssues && meta.perfIssues) { + for (const issue of meta.perfIssues) { + const key = `${issue.type}:${issue.dependencyFilename}`; + const existing = this.#perfIssues.get(key); + + if (existing) { + existing.sourceFilenames.add(meta.filename); + } else { + this.#perfIssues.set(key, { + type: issue.type, + dependencyFilename: issue.dependencyFilename, + sourceFilenames: new Set([meta.filename]), + }); } } + } - return result; - }, - }; - }); - } + return result; + }, + }; + }); // WHAT? // Performs module movements between chunks if SplitChunksPlugin is not enabled. @@ -297,24 +294,14 @@ export class GriffelPlugin { stage: Compilation.PROCESS_ASSETS_STAGE_PRE_PROCESS, }, assets => { - let cssAssetDetails; - - // @ Rspack compat - // "compilation.namedChunks.get()" explodes with Rspack - if (IS_RSPACK) { - cssAssetDetails = Object.entries(assets).find( - ([assetName]) => assetName.endsWith('.css') && assetName.includes('griffel'), - ); - } else { - const griffelChunk = compilation.namedChunks.get('griffel'); - - if (typeof griffelChunk === 'undefined') { - return; - } + const griffelChunk = compilation.namedChunks.get('griffel'); - cssAssetDetails = Object.entries(assets).find(([assetName]) => griffelChunk.files.has(assetName)); + if (typeof griffelChunk === 'undefined') { + return; } + const cssAssetDetails = Object.entries(assets).find(([assetName]) => griffelChunk.files.has(assetName)); + if (typeof cssAssetDetails === 'undefined') { return; } diff --git a/packages/webpack-plugin/src/webpackLoader.mts b/packages/webpack-plugin/src/webpackLoader.mts index 8061c1983..510a1cb9b 100644 --- a/packages/webpack-plugin/src/webpackLoader.mts +++ b/packages/webpack-plugin/src/webpackLoader.mts @@ -30,19 +30,17 @@ function webpackLoader( this.cacheable(); // Early return to handle cases when there is no Griffel usage in the file - if (sourceCode.indexOf('makeStyles') === -1 && sourceCode.indexOf('makeResetStyles') === -1 && sourceCode.indexOf('makeStaticStyles') === -1) { + if ( + sourceCode.indexOf('makeStyles') === -1 && + sourceCode.indexOf('makeResetStyles') === -1 && + sourceCode.indexOf('makeStaticStyles') === -1 + ) { this.callback(null, sourceCode, inputSourceMap); return; } - const IS_RSPACK = !this.webpack; - - // @ Rspack compat: - // We don't use the trick with loader context as assets are generated differently - if (!IS_RSPACK) { - if (!this[GriffelCssLoaderContextKey]) { - throw new Error('GriffelCSSExtractionPlugin is not configured, please check your webpack config'); - } + if (!this[GriffelCssLoaderContextKey]) { + throw new Error('GriffelCSSExtractionPlugin is not configured, please check your webpack config'); } const { classNameHashSalt, modules, evaluationRules } = this.getOptions(); @@ -92,7 +90,9 @@ function webpackLoader( return { result: undefined, meta }; } - if (IS_RSPACK) { + // Rspack compat: + // Support of CSS extraction is weird in Rspack, revisit later. + if (!this.webpack) { const request = `griffel.css!=!${virtualLoaderPath}!${virtualCSSFilePath}?style=${toURIComponent(css)}`; const stringifiedRequest = JSON.stringify(this.utils.contextify(this.context || this.rootContext, request)); diff --git a/packages/webpack-plugin/tsconfig.lib.json b/packages/webpack-plugin/tsconfig.lib.json index a99a4ea5c..6d2b82de4 100644 --- a/packages/webpack-plugin/tsconfig.lib.json +++ b/packages/webpack-plugin/tsconfig.lib.json @@ -1,6 +1,8 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "module": "ESNext", + "moduleResolution": "bundler", "outDir": "../../dist/out-tsc", "declaration": true, "types": ["node", "environment"] diff --git a/packages/webpack-plugin/vite.config.ts b/packages/webpack-plugin/vite.config.ts deleted file mode 100644 index b13732a7b..000000000 --- a/packages/webpack-plugin/vite.config.ts +++ /dev/null @@ -1,64 +0,0 @@ -/// -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; -import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; -import { readFileSync } from 'node:fs'; -import { join, resolve } from 'node:path'; - -const packageJson = JSON.parse(readFileSync(join(__dirname, 'package.json'), 'utf-8')); - -const dependencies: string[] = Object.keys({ - ...(packageJson.dependencies || {}), - ...(packageJson.peerDependencies || {}), -}); -const external = ([/node:/] as (string | RegExp)[]).concat(dependencies); - -export default defineConfig(() => ({ - root: __dirname, - cacheDir: '../../node_modules/.vite/packages/webpack-plugin', - plugins: [ - nxViteTsPaths(), - nxCopyAssetsPlugin([ - '*.md', - { - glob: '*', - input: 'src/virtual-loader', - output: 'virtual-loader', - }, - ]), - dts({ entryRoot: 'src', tsconfigPath: join(__dirname, 'tsconfig.lib.json'), pathsToAliases: false }), - ], - - // Uncomment this if you are using workers. - // worker: { - // plugins: [ nxViteTsPaths() ], - // }, - - build: { - emptyOutDir: true, - lib: { - entry: { - 'webpack-plugin': resolve(__dirname, 'src/index.mts'), - 'webpack-loader': resolve(__dirname, 'src/webpackLoader.mts'), - }, - formats: ['es' as const], - target: 'node20' as const, - }, - rollupOptions: { - external, - }, - minify: false, - }, - test: { - watch: false, - globals: true, - environment: 'node', - include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - reporters: ['default'], - coverage: { - reportsDirectory: '../../coverage/packages/webpack-plugin', - provider: 'v8' as const, - }, - }, -})); diff --git a/packages/webpack-plugin/vitest.config.mts b/packages/webpack-plugin/vitest.config.mts new file mode 100644 index 000000000..787a10138 --- /dev/null +++ b/packages/webpack-plugin/vitest.config.mts @@ -0,0 +1,19 @@ +import { defineConfig } from 'vitest/config'; +import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; + +export default defineConfig({ + root: __dirname, + cacheDir: '../../node_modules/.vite/packages/webpack-plugin', + plugins: [nxViteTsPaths()], + test: { + watch: false, + globals: true, + environment: 'node', + include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + reporters: ['default'], + coverage: { + reportsDirectory: '../../coverage/packages/webpack-plugin', + provider: 'v8', + }, + }, +}); diff --git a/tsconfig.base.json b/tsconfig.base.json index 7d1b4649a..e0f002819 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -27,7 +27,6 @@ "@griffel/e2e-utils": ["e2e/utils/src/index.ts"], "@griffel/eslint-plugin": ["packages/eslint-plugin/src/index.ts"], "@griffel/jest-serializer": ["packages/jest-serializer/src/index.ts"], - "@griffel/next-extraction-plugin": ["packages/next-extraction-plugin/src/index.ts"], "@griffel/postcss-syntax": ["packages/postcss-syntax/src/index.ts"], "@griffel/react": ["packages/react/src/index.ts"], "@griffel/style-types": ["packages/style-types/src/index.ts"],