diff --git a/.eslintrc b/.eslintrc index b808fdb..7b25f5a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -6,11 +6,7 @@ // "semi": [1, "always"] }, "parserOptions": { - "ecmaFeatures": { - "modules": true - }, "ecmaVersion": 2018, - "requireConfigFile": false, "sourceType": "module" } } diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 20116e6..6cb1bbc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,14 +27,16 @@ jobs: - name: Install Dependencies run: yarn install --immutable - - name: Lint - run: yarn lint --ignore-patterns '**/*.ts' - - name: Run Tests run: yarn test --coverage - name: Run Build run: yarn build + - name: Lint + run: | + yarn lint --ignore-patterns '**/*.ts' + yarn lint --eslint-use-legacy-config --ignore-patterns '**/*.ts' + - name: Depcheck run: npx depcheck diff --git a/.markdownlint.json b/.markdownlint.json index 4a5f51a..61d4660 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,3 +1,3 @@ { - "extends": "./config/markdownlint.json" + "extends": "./lib/markdownlint.json" } diff --git a/config/all-legacy.ts b/config/all-legacy.ts index 2a52eff..60e98ba 100644 --- a/config/all-legacy.ts +++ b/config/all-legacy.ts @@ -1,3 +1,41 @@ -import buildLegacyConfig from './eslint/build-legacy-config' +import { FILE_PATHS } from './eslint/constants' +import Rules from './eslint/rules' -export default buildLegacyConfig() +export default { + env: { + 'jest/globals': true, + }, + plugins: [ + 'eslint-comments', + 'inclusive-language', + 'n', + 'promise', + 'sort-destructure-keys', + 'sort-exports', + ], + rules: { + ...Rules.ESLintComments, + ...Rules.InclusiveLanguage, + ...Rules.N, + ...Rules.Promise, + ...Rules.SortDestructureKeys, + ...Rules.SortExports, + }, + overrides: [{ + files: FILE_PATHS.TESTS, + plugins: [ + 'jest', + ], + rules: { + ...Rules.Jest, + }, + }, { + files: FILE_PATHS.TESTS_TYPESCRIPT, + plugins: [ + 'jest', + ], + rules: { + ...Rules.JestTypescript, + }, + }], +} diff --git a/config/all.ts b/config/all.ts index 3ffe8d4..9bb2d50 100644 --- a/config/all.ts +++ b/config/all.ts @@ -1,3 +1,48 @@ -import buildFlatConfig from './eslint/build-flat-config' +import { FILE_PATHS } from './eslint/constants' +import Plugins from './eslint/plugins' +import Rules from './eslint/rules' -export default buildFlatConfig() +export default [{ + plugins: { + 'eslint-comments': Plugins.EslintComments, + 'inclusive-language': Plugins.InclusiveLanguage, + 'n': Plugins.N, + 'promise': Plugins.Promise, + 'sort-destructure-keys': Plugins.SortDestructureKeys, + 'sort-exports': Plugins.SortExports, + }, + rules: { + ...Rules.ESLintComments, + ...Rules.InclusiveLanguage, + ...Rules.N, + ...Rules.Promise, + ...Rules.SortDestructureKeys, + ...Rules.SortExports, + }, +}, { + files: FILE_PATHS.TESTS, + languageOptions: { + globals: { + 'jest/globals': true, + }, + }, + plugins: { + 'jest': Plugins.Jest, + }, + rules: { + ...Rules.Jest, + }, +}, { + files: FILE_PATHS.TESTS_TYPESCRIPT, + languageOptions: { + globals: { + 'jest/globals': true, + }, + }, + plugins: { + 'jest': Plugins.Jest, + }, + rules: { + ...Rules.JestTypescript, + }, +}] diff --git a/config/eslint/build-flat-config.ts b/config/eslint/build-flat-config.ts deleted file mode 100644 index c1d7f33..0000000 --- a/config/eslint/build-flat-config.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { FILE_PATHS } from './constants' -import Plugins from './plugins' -import Rules from './rules' - -const buildFlatConfig = () => ([{ - plugins: { - 'eslint-comments': Plugins.EslintComments, - 'inclusive-language': Plugins.InclusiveLanguage, - 'n': Plugins.N, - 'promise': Plugins.Promise, - 'sort-destructure-keys': Plugins.SortDestructureKeys, - 'sort-exports': Plugins.SortExports, - }, - rules: { - ...Rules.ESLintComments, - ...Rules.InclusiveLanguage, - ...Rules.N, - ...Rules.Promise, - ...Rules.SortDestructureKeys, - ...Rules.SortExports, - }, -}, { - files: FILE_PATHS.TESTS, - languageOptions: { - globals: { - 'jest/globals': true, - }, - }, - plugins: { - 'jest': Plugins.Jest, - }, - rules: { - ...Rules.Jest, - }, -}, { - files: FILE_PATHS.TESTS_TYPESCRIPT, - languageOptions: { - globals: { - 'jest/globals': true, - }, - }, - plugins: { - 'jest': Plugins.Jest, - }, - rules: { - ...Rules.JestTypescript, - }, -}]) - -export default buildFlatConfig diff --git a/config/eslint/build-legacy-config.ts b/config/eslint/build-legacy-config.ts deleted file mode 100644 index bf6c630..0000000 --- a/config/eslint/build-legacy-config.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { FILE_PATHS } from './constants' -import Rules from './rules' - -const buildLegacyConfig = () => ({ - env: { - 'jest/globals': true, - }, - plugins: [ - 'eslint-comments', - 'inclusive-language', - 'n', - 'promise', - 'sort-destructure-keys', - 'sort-exports', - ], - rules: { - ...Rules.ESLintComments, - ...Rules.InclusiveLanguage, - ...Rules.N, - ...Rules.Promise, - ...Rules.SortDestructureKeys, - ...Rules.SortExports, - }, - overrides: [{ - files: FILE_PATHS.TESTS, - plugins: [ - 'jest', - ], - rules: { - ...Rules.Jest, - }, - }, { - files: FILE_PATHS.TESTS_TYPESCRIPT, - plugins: [ - 'jest', - ], - rules: { - ...Rules.JestTypescript, - }, - }], -}) - -export default buildLegacyConfig diff --git a/config/stylelint.config.js b/config/stylelint.config.js index bd318d4..2088a21 100644 --- a/config/stylelint.config.js +++ b/config/stylelint.config.js @@ -3,7 +3,7 @@ import postcssScss from 'postcss-scss' import Rules from './stylelint/rules' -export default () => ({ +export default { extends: [ 'stylelint-config-property-sort-order-smacss', ], @@ -49,4 +49,4 @@ export default () => ({ ...Rules.Stylelint, ...Rules.Stylistic, }, -}) +} diff --git a/eslint.config.js b/eslint.config.js index fb257b6..90cf469 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,10 +1,10 @@ -import config from './config/all.ts' +import config from './lib/all' export default [ ...config, { rules: { - // semi: [2, 'always'], + // semi: [1, 'always'], } } ] diff --git a/jest-config/testData.ts b/jest-config/testData.ts index 56a1c8e..43820df 100644 --- a/jest-config/testData.ts +++ b/jest-config/testData.ts @@ -1,16 +1,12 @@ -import { type LintError } from 'markdownlint' +import type { LintError } from 'markdownlint' -export const expectedResultThemes = { +const expectedResultThemes = { messageTheme: expect.any(Function), positionTheme: expect.any(Function), ruleTheme: expect.any(Function), } -/* - * MARKDOWNLINT - */ - -export const markdownlintError: LintError = { +const markdownlintError: LintError = { errorContext: 'test-error-context', errorDetail: 'test-error-detail', errorRange: [1, 2], @@ -23,3 +19,8 @@ export const markdownlintError: LintError = { ruleInformation: 'test-rule-information', ruleNames: ['MD000', 'test-rule-name'], } + +export { + expectedResultThemes, + markdownlintError, +} diff --git a/package.json b/package.json index d7d3a81..65a4254 100644 --- a/package.json +++ b/package.json @@ -14,9 +14,8 @@ "lint-pilot": "index.min.js" }, "scripts": { - "build": "rimraf lib && mkdir lib && rollup -c && yarn buildConfig", - "buildConfig": "tsx ./scripts/build-config.ts", - "lint": "NODE_ENV=development tsx src/index.js --ignore-dirs lib", + "build": "rimraf lib && mkdir lib && rollup -c", + "lint": "tsx src/index.js --ignore-dirs lib", "publishLib": "yarn test --coverage && yarn build && cd lib && npm publish", "test": "jest" }, @@ -52,7 +51,6 @@ "@babel/preset-env": "7.25.4", "@babel/preset-typescript": "7.24.7", "@rollup/plugin-node-resolve": "15.2.3", - "@rollup/plugin-replace": "5.0.7", "@rollup/plugin-typescript": "11.1.6", "@types/eslint": "9.6.1", "@types/jest": "29.5.12", @@ -62,6 +60,7 @@ "jest": "29.7.0", "rimraf": "5.0.10", "rollup": "4.21.2", + "rollup-plugin-copy": "3.5.0", "rollup-plugin-terser": "7.0.2", "ts-jest": "29.2.5", "ts-node": "10.9.2", diff --git a/rollup.config.js b/rollup.config.js index da430aa..f18a0d7 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -2,28 +2,52 @@ import { readFileSync } from 'node:fs' import { resolve } from 'node:path' import { nodeResolve } from '@rollup/plugin-node-resolve' -import replace from '@rollup/plugin-replace' import typescript from '@rollup/plugin-typescript' +import copy from 'rollup-plugin-copy' import { terser } from 'rollup-plugin-terser' const packageJSON = JSON.parse(readFileSync(resolve('./package.json'), 'utf-8')) -export default { +const OUTPUT_DIR = 'lib' + +const COPY_FILES = [ + 'config/markdownlint.json', + 'package.json', + 'README.md', +] + +const createConfig = (configFile, format) => ({ + external: Object.keys(packageJSON.dependencies), + input: configFile, + output: { + dir: OUTPUT_DIR, + format, + }, + plugins: [ + nodeResolve(), + typescript(), + ], +}) + +export default [{ external: Object.keys(packageJSON.dependencies), input: 'src/index.ts', output: { - file: 'lib/index.min.js', + file: `${OUTPUT_DIR}/index.min.js`, format: 'es', }, plugins: [ nodeResolve({ preferBuiltins: true, }), - replace({ - 'process.env.NODE_ENV': JSON.stringify('production'), - preventAssignment: true, - }), - terser(), typescript(), + terser(), + copy({ + targets: COPY_FILES.map(file => ({ src: file, dest: OUTPUT_DIR })), + }), ], -} +}, + createConfig('config/all-legacy.ts', 'cjs'), + createConfig('config/all.ts', 'es'), + createConfig('config/stylelint.config.js', 'cjs'), +] diff --git a/scripts/build-config.ts b/scripts/build-config.ts deleted file mode 100644 index 655a8b8..0000000 --- a/scripts/build-config.ts +++ /dev/null @@ -1,93 +0,0 @@ -import fs from 'node:fs' -import path from 'node:path' -import util from 'node:util' - -const configFolder = './config' -const outputFolder = './lib' - -/* - * Utilities - */ - -const copyFile = async (file: string, filePath: string) => { - const destinationPath = path.join(outputFolder, file) - - await fs.promises.copyFile(filePath, destinationPath) - - console.log(`Successfully copied "${file}" to output folder`) -} - -const writeFile = async (filename: string, contents: Record): Promise => { - const contentsString = util.inspect(contents, { - depth: Infinity, - maxArrayLength: Infinity, - maxStringLength: Infinity, - }) - - await fs.promises.writeFile(filename, `module.exports = ${contentsString}\n`) -} - -/* - * Compile Lint Configuration - */ - -const compileLintConfiguration = async (): Promise => { - try { - const files = await fs.promises.readdir(configFolder) - - for (const file of files) { - const filePath = path.join(configFolder, file) - - if ((await fs.promises.stat(filePath)).isFile()) { - const filename = path.parse(file).name - - if (path.extname(file) === '.json') { - await copyFile(file, filePath) - continue - } - - console.log(`Building config from "${file}"`) - - const module = await import(`../${filePath}`) - await writeFile(path.join(outputFolder, `${filename}.js`), module.default) - - console.log(`Successfully built "${filename}.js"!\n`) - } - } - } catch (error) { - console.error(`Error: ${error.message}`) - process.exit(1) - } -} - -/* - * Copy Additional Files - */ - -const copyAdditionalFiles = async () => { - try { - const files = [ - 'package.json', - 'README.md', - ] - - for (const file of files) { - const filePath = path.resolve(`./${file}`) - await copyFile(file, filePath) - } - } catch (error) { - console.error('An error occurred while copying files:', error) - process.exit(1) - } -} - -/* - * Run - */ - -const init = async () => { - await compileLintConfiguration() - await copyAdditionalFiles() -} - -init() diff --git a/test.css b/test.css new file mode 100644 index 0000000..a5be073 --- /dev/null +++ b/test.css @@ -0,0 +1,4 @@ +.test { + color: blue; + /* color: red; */ +} diff --git a/yarn.lock b/yarn.lock index c620052..47432e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1680,11 +1680,6 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/sourcemap-codec@^1.4.15": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== - "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" @@ -1739,14 +1734,6 @@ is-module "^1.0.0" resolve "^1.22.1" -"@rollup/plugin-replace@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz#150c9ee9db8031d9e4580a61a0edeaaed3d37687" - integrity sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ== - dependencies: - "@rollup/pluginutils" "^5.0.1" - magic-string "^0.30.3" - "@rollup/plugin-typescript@11.1.6": version "11.1.6" resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz#724237d5ec12609ec01429f619d2a3e7d4d1b22b" @@ -1943,6 +1930,21 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/fs-extra@^8.0.1": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.5.tgz#33aae2962d3b3ec9219b5aca2555ee00274f5927" + integrity sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ== + dependencies: + "@types/node" "*" + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + "@types/graceful-fs@^4.1.3": version "4.1.9" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" @@ -2009,6 +2011,11 @@ resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + "@types/node-notifier@8.0.5": version "8.0.5" resolved "https://registry.yarnpkg.com/@types/node-notifier/-/node-notifier-8.0.5.tgz#c5786810d16bbff10550e2d10efe5a17eaf1095e" @@ -2509,6 +2516,11 @@ colord@^2.9.3: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== +colorette@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + commander@12.1.0: version "12.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" @@ -2981,7 +2993,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.9, fast-glob@^3.3.2: +fast-glob@^3.0.3, fast-glob@^3.2.9, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -3094,6 +3106,15 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -3223,6 +3244,20 @@ globals@^15.8.0: resolved "https://registry.yarnpkg.com/globals/-/globals-15.9.0.tgz#e9de01771091ffbc37db5714dab484f9f69ff399" integrity sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA== +globby@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22" + integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" + globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -3240,7 +3275,7 @@ globjoin@^0.1.4: resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== -graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -3292,7 +3327,7 @@ ignore@^5.0.5, ignore@^5.2.0, ignore@^5.2.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== -ignore@^5.3.2: +ignore@^5.1.1, ignore@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -3409,6 +3444,11 @@ is-plain-object@5.0.0, is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== +is-plain-object@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" + integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== + is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -3930,6 +3970,13 @@ json5@^2.2.3: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" @@ -4038,13 +4085,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -magic-string@^0.30.3: - version "0.30.10" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" - integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" - make-dir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" @@ -4155,7 +4195,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -4645,6 +4685,17 @@ rimraf@5.0.10: dependencies: glob "^10.3.7" +rollup-plugin-copy@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz#7ffa2a7a8303e143876fa64fb5eed9022d304eeb" + integrity sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA== + dependencies: + "@types/fs-extra" "^8.0.1" + colorette "^1.1.0" + fs-extra "^8.1.0" + globby "10.0.1" + is-plain-object "^3.0.0" + rollup-plugin-terser@7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" @@ -5175,6 +5226,11 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + update-browserslist-db@^1.0.16: version "1.0.16" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356"