From dc73b187484da029a2664bb1302f30137c973b8c Mon Sep 17 00:00:00 2001 From: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com> Date: Fri, 29 Sep 2023 10:35:30 -0400 Subject: [PATCH] fix(cli): various fixes for adding custom modes and extensions (#3683) Co-authored-by: Alireza --- extensions/_example/src/index.js | 134 ------------------ package.json | 8 +- platform/cli/src/commands/linkPackage.js | 2 +- .../cli/src/commands/utils/editPackageJson.js | 6 +- .../cli/templates/extension/dependencies.json | 1 + platform/cli/templates/mode/dependencies.json | 5 +- .../docs/docs/development/architecture.md | 3 +- publish-package.mjs | 16 ++- publish-version.mjs | 13 +- version.mjs | 35 +++-- yarn.lock | 84 +---------- 11 files changed, 61 insertions(+), 246 deletions(-) delete mode 100644 extensions/_example/src/index.js diff --git a/extensions/_example/src/index.js b/extensions/_example/src/index.js deleted file mode 100644 index 08b3da836..000000000 --- a/extensions/_example/src/index.js +++ /dev/null @@ -1,134 +0,0 @@ -import ImageSet from '@ohif/core/src/classes/ImageSet'; -import { IWebApiDataSource } from '@ohif/core'; - -/** - * - */ -export default { - id: '@ohif/extension-*', - - /** - * LIFECYCLE HOOKS - */ - preRegistration() {}, - beforeExtInit() {}, - beforeExtDestroy() {}, - - /** - * MODULES - */ - getCommandsModule, - getContextModule, - getDataSourcesModule, - getLayoutTemplateModule, - getPanelModule, - getSopClassHandlerModule, - getToolbarModule() {}, - getViewportModule, -}; - -// appConfig, -// extensionConfig, -// dataSources, -// servicesManager, -// extensionManager, -// commandsManager, - -/** - * - */ -const getCommandsModule = () => ({ - definitions: { - exampleActionDef: { - commandFn: ({ param1 }) => { - console.log(`param1's value is: ${param1}`); - }, - // storeContexts: ['viewports'], - options: { param1: 'hello world' }, - context: 'VIEWER', // optional - }, - }, - defaultContext: 'ACTIVE_VIEWPORT::DICOMSR', -}); - -const ExampleContext = React.createContext(); - -function ExampleContextProvider({ children }) { - return {children}; -} - -const getContextModule = () => [ - { - name: 'ExampleContext', - context: ExampleContext, - provider: ExampleContextProvider, - }, -]; - -const getDataSourcesModule = () => [ - { - name: 'exampleDataSource', - type: 'webApi', // 'webApi' | 'local' | 'other' - createDataSource: dataSourceConfig => { - return IWebApiDataSource.create(/* */); - }, - }, -]; - -const getLayoutTemplateModule = (/* ... */) => [ - { - id: 'exampleLayout', - name: 'exampleLayout', - component: ExampleLayoutComponent, - }, -]; - -const getPanelModule = () => { - return [ - { - name: 'exampleSidePanel', - iconName: 'info-circle-o', - iconLabel: 'Example', - label: 'Hello World', - isDisabled: studies => {}, // optional - component: ExamplePanelContentComponent, - }, - ]; -}; - -const getSopClassHandlerModule = (/* ... */) => { - const BASIC_TEXT_SR = '1.2.840.10008.5.1.4.1.1.88.11'; - - return [ - { - name: 'ExampleSopClassHandle', - sopClassUids: [BASIC_TEXT_SR], - getDisplaySetsFromSeries: instances => { - const imageSet = new ImageSet(instances); - - imageSet.setAttributes(/** */); - imageSet.sortBy((a, b) => 0); - - return imageSet; - }, - }, - ]; -}; - -const getToolbarModule = () => {}; - -// displaySet, dataSource -const getViewportModule = () => { - const wrappedViewport = props => { - return ( - { - commandsManager.runCommand('commandName', data); - }} - /> - ); - }; - - return [{ name: 'example', component: wrappedViewport }]; -}; diff --git a/package.json b/package.json index 910a45821..97fb2c48b 100644 --- a/package.json +++ b/package.json @@ -68,13 +68,13 @@ "@babel/plugin-proposal-class-properties": "^7.16.7", "@babel/plugin-proposal-object-rest-spread": "^7.17.3", "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.16.7", "@babel/plugin-transform-regenerator": "^7.16.7", "@babel/plugin-transform-runtime": "^7.17.0", "@babel/plugin-transform-typescript": "^7.13.0", "@babel/preset-env": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.13.0", "@types/jest": "^27.5.0", @@ -88,13 +88,13 @@ "clean-webpack-plugin": "^3.0.0", "copy-webpack-plugin": "^9.0.1", "cross-env": "^5.2.0", - "css-loader": "^3.2.0", + "css-loader": "^6.8.1", "dotenv": "^8.1.0", "eslint": "^7.32.0", "eslint-config-prettier": "^7.2.0", "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^7.0.0", "eslint-plugin-cypress": "^2.12.1", + "eslint-plugin-flowtype": "^7.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-node": "^11.1.0", @@ -109,8 +109,8 @@ "html-webpack-plugin": "^5.3.2", "husky": "^3.0.0", "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", "jest-canvas-mock": "^2.1.0", + "jest-environment-jsdom": "^29.5.0", "jest-junit": "^6.4.0", "lerna": "^7.2.0", "lint-staged": "^9.0.2", diff --git a/platform/cli/src/commands/linkPackage.js b/platform/cli/src/commands/linkPackage.js index 527713e82..25aaec87f 100644 --- a/platform/cli/src/commands/linkPackage.js +++ b/platform/cli/src/commands/linkPackage.js @@ -48,7 +48,7 @@ async function linkPackage(packageDir, options, addToConfig, keyword) { const newLine = `path.resolve(__dirname, '${packageNodeModules}'),`; const modifiedFileContent = fileContent.replace( /(modules:\s*\[)([\s\S]*?)(\])/, - `$1$2 ${newLine}$3` + `$1$2 ${newLine.replace(/\\/g, '/')}$3` ); await fs.promises.writeFile(webpackConfigPath, modifiedFileContent); diff --git a/platform/cli/src/commands/utils/editPackageJson.js b/platform/cli/src/commands/utils/editPackageJson.js index 5ffd8d9a3..4caa75074 100644 --- a/platform/cli/src/commands/utils/editPackageJson.js +++ b/platform/cli/src/commands/utils/editPackageJson.js @@ -4,10 +4,14 @@ import path from 'path'; async function editPackageJson(options) { const { name, version, description, author, license, targetDir } = options; + const ohifVersion = fs.readFileSync('./version.txt', 'utf8'); + // read package.json from targetDir const dependenciesPath = path.join(targetDir, 'dependencies.json'); const rawData = fs.readFileSync(dependenciesPath, 'utf8'); - const packageJson = JSON.parse(rawData); + + const dataWithOHIFVersion = rawData.replace(/\{LATEST_OHIF_VERSION\}/g, ohifVersion); + const packageJson = JSON.parse(dataWithOHIFVersion); // edit package.json const mergedObj = Object.assign( diff --git a/platform/cli/templates/extension/dependencies.json b/platform/cli/templates/extension/dependencies.json index b9d3b9e1e..98b0d1157 100644 --- a/platform/cli/templates/extension/dependencies.json +++ b/platform/cli/templates/extension/dependencies.json @@ -44,6 +44,7 @@ "@babel/preset-env": "^7.16.11", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.13.0", + "@babel/plugin-proposal-private-property-in-object":"7.21.11", "babel-eslint": "9.x", "babel-loader": "^8.2.4", "babel-plugin-inline-react-svg": "^2.0.2", diff --git a/platform/cli/templates/mode/dependencies.json b/platform/cli/templates/mode/dependencies.json index 5bfa5f161..9df4547b5 100644 --- a/platform/cli/templates/mode/dependencies.json +++ b/platform/cli/templates/mode/dependencies.json @@ -17,10 +17,11 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "^3.0.0" + "@ohif/core": "^{LATEST_OHIF_VERSION}" }, "dependencies": { - "@babel/runtime": "^7.20.13" + "@babel/runtime": "^7.20.13", + "@ohif/mode-longitudinal": "^{LATEST_OHIF_VERSION}" }, "devDependencies": { "@babel/core": "^7.21.4", diff --git a/platform/docs/docs/development/architecture.md b/platform/docs/docs/development/architecture.md index d135fcd2b..e3760240d 100644 --- a/platform/docs/docs/development/architecture.md +++ b/platform/docs/docs/development/architecture.md @@ -24,16 +24,17 @@ you'll see the following: ```bash │ ├── extensions -│ ├── _example # Skeleton of example extension │ ├── default # default functionalities │ ├── cornerstone # 2D/3D images w/ Cornerstonejs │ ├── cornerstone-dicom-sr # Structured reports │ ├── measurement-tracking # measurement tracking │ └── dicom-pdf # View DICOM wrapped PDFs in viewport +| # and many more ... │ ├── modes │ └── longitudinal # longitudinal measurement tracking mode | └── basic-dev-mode # basic viewer with Cornerstone (a developer focused mode) +| # and many more │ ├── platform │ ├── core # Business Logic diff --git a/publish-package.mjs b/publish-package.mjs index a33da872a..1cffbc5e2 100644 --- a/publish-package.mjs +++ b/publish-package.mjs @@ -16,15 +16,15 @@ async function run() { const rootDir = process.cwd(); for (const packagePathPattern of packages) { - const matchingDirectories = glob.sync(packagePathPattern); + const matchingDirectories = glob.sync(packagePathPattern, { cwd: rootDir }); for (const packageDirectory of matchingDirectories) { - // change back to the root directory - process.chdir(rootDir); - - const packageJsonPath = path.join(packageDirectory, 'package.json'); - try { + // change back to the root directory + process.chdir(rootDir); + + const packageJsonPath = path.join(packageDirectory, 'package.json'); + const packageJsonContent = JSON.parse(await fs.readFile(packageJsonPath, 'utf8')); if (packageJsonContent.private) { @@ -32,11 +32,13 @@ async function run() { continue; } + // move to package directory process.chdir(packageDirectory); let retries = 0; while (retries < MAX_RETRIES) { try { + console.log(`Tying to publishing package at ${packageDirectory}`); const publishArgs = ['publish']; if (branchName === 'master') { @@ -56,6 +58,8 @@ async function run() { } } catch (error) { console.error(`An error occurred while processing ${packageDirectory}: ${error}`); + } finally { + process.chdir(rootDir); // Ensure we always move back to the root directory } } } diff --git a/publish-version.mjs b/publish-version.mjs index 7b076def7..dbcd592b9 100644 --- a/publish-version.mjs +++ b/publish-version.mjs @@ -32,18 +32,11 @@ async function run() { try { const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8')); - if (!packageJson.peerDependencies) { - continue; - } - + // lerna will take care of updating the dependencies, but it does not + // update the peerDependencies, so we need to do that manually for (const peerDependency of Object.keys(packageJson.peerDependencies)) { if (peerDependency.startsWith('@ohif/')) { packageJson.peerDependencies[peerDependency] = nextVersion; - - console.log( - 'updating peerdependency to ', - packageJson.peerDependencies[peerDependency] - ); } } @@ -51,7 +44,7 @@ async function run() { console.log(`Updated ${packageJsonPath}`); } catch (err) { - // This could be a directory without a package.json file. Ignore and continue. + console.log("ERROR: Couldn't find package.json in", packageDirectory); continue; } } diff --git a/version.mjs b/version.mjs index b9464f024..231d13a67 100644 --- a/version.mjs +++ b/version.mjs @@ -23,20 +23,37 @@ async function run() { console.log('Branch: release'); nextVersion = semver.inc(currentVersion, 'minor'); } else { - console.log('Branch: master/main'); + console.log('Branch: master'); const prereleaseComponents = semver.prerelease(currentVersion); const isBumpBeta = lastCommitMessage.trim().endsWith('[BUMP BETA]'); console.log('isBumpBeta', isBumpBeta); - if (prereleaseComponents && prereleaseComponents.includes('beta') && !isBumpBeta) { - nextVersion = semver.inc(currentVersion, 'prerelease', 'beta'); - } else if (isBumpBeta && prereleaseComponents.includes('beta')) { - console.log('Bumping beta version to be fresh beta'); - nextVersion = `${semver.major(currentVersion)}.${semver.minor(currentVersion) + 1}.0-beta.0`; + if (prereleaseComponents?.includes('beta')) { + // if the version includes beta + if (isBumpBeta) { + // if the commit message includes [BUMP BETA] + // which means that we should reset to beta 0 for next major version + // e.g., from 2.11.0-beta.11 to 2.12.0-beta.0 + console.log( + 'Bumping beta version to be fresh beta, e.g., from 2.11.0-beta.11 to 2.12.0-beta.0' + ); + nextVersion = `${semver.major(currentVersion)}.${ + semver.minor(currentVersion) + 1 + }.0-beta.0`; + } else { + // this means that the current version is already a beta version + // and we should bump the beta version to the next beta version + // e.g., from 2.11.0-beta.11 to 2.11.0-beta.12 + console.log( + 'Bumping beta version to be next beta, e.g., from 2.11.0-beta.11 to 2.11.0-beta.12' + ); + nextVersion = semver.inc(currentVersion, 'prerelease', 'beta'); + } } else { - console.log('Bumping minor version for beta release'); - const nextMinorVersion = semver.inc(currentVersion, 'minor'); - nextVersion = `${semver.major(nextMinorVersion)}.${semver.minor(nextMinorVersion)}.0-beta.0`; + // if the version does not include the beta, might be that a recent merge into the release branch + // that later has been pulled into this PR + console.log('Bumping beta version to be fresh beta e.g., from 2.11.0 to 2.12.0-beta.0'); + nextVersion = `${semver.major(currentVersion)}.${semver.minor(currentVersion) + 1}.0-beta.0`; } } diff --git a/yarn.lock b/yarn.lock index a4dee0835..90dfc70cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5110,9 +5110,9 @@ integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== "@types/http-cache-semantics@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz#abe102d06ccda1efdf0ed98c10ccf7f36a785a41" + integrity sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw== "@types/http-errors@*": version "2.0.1" @@ -8086,26 +8086,7 @@ css-line-break@^2.1.0: dependencies: utrie "^1.0.2" -css-loader@^3.2.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" - integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.0" - semver "^6.3.0" - -css-loader@^6.7.1: +css-loader@^6.7.1, css-loader@^6.8.1: version "6.8.1" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== @@ -11750,13 +11731,6 @@ iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" @@ -13611,7 +13585,7 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.4.2" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== @@ -15976,11 +15950,6 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -16402,28 +16371,11 @@ postcss-minify-selectors@^5.2.1: dependencies: postcss-selector-parser "^6.0.5" -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - postcss-modules-extract-imports@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== -postcss-modules-local-by-default@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - postcss-modules-local-by-default@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" @@ -16433,14 +16385,6 @@ postcss-modules-local-by-default@^4.0.3: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - postcss-modules-scope@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" @@ -16448,14 +16392,6 @@ postcss-modules-scope@^3.0.0: dependencies: postcss-selector-parser "^6.0.4" -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - postcss-modules-values@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" @@ -16669,7 +16605,7 @@ postcss-selector-not@^6.0.1: dependencies: postcss-selector-parser "^6.0.10" -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== @@ -16709,14 +16645,6 @@ postcss-zindex@^5.1.0: resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-5.1.0.tgz#4a5c7e5ff1050bd4c01d95b1847dfdcc58a496ff" integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A== -postcss@^7.0.14, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - postcss@^8.2.1, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.18, postcss@^8.4.21, postcss@^8.4.23: version "8.4.27" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057"