fix(cli): various fixes for adding custom modes and extensions (#3683)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
This commit is contained in:
parent
52da92fed4
commit
dc73b18748
@ -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 <ExampleContext.Provider value={{ example: 'value' }}>{children}</ExampleContext.Provider>;
|
|
||||||
}
|
|
||||||
|
|
||||||
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 (
|
|
||||||
<ExampleViewport
|
|
||||||
{...props}
|
|
||||||
onEvent={data => {
|
|
||||||
commandsManager.runCommand('commandName', data);
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
return [{ name: 'example', component: wrappedViewport }];
|
|
||||||
};
|
|
||||||
@ -68,13 +68,13 @@
|
|||||||
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
||||||
"@babel/plugin-proposal-object-rest-spread": "^7.17.3",
|
"@babel/plugin-proposal-object-rest-spread": "^7.17.3",
|
||||||
"@babel/plugin-proposal-private-methods": "^7.18.6",
|
"@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-syntax-dynamic-import": "^7.8.3",
|
||||||
"@babel/plugin-transform-arrow-functions": "^7.16.7",
|
"@babel/plugin-transform-arrow-functions": "^7.16.7",
|
||||||
"@babel/plugin-transform-regenerator": "^7.16.7",
|
"@babel/plugin-transform-regenerator": "^7.16.7",
|
||||||
"@babel/plugin-transform-runtime": "^7.17.0",
|
"@babel/plugin-transform-runtime": "^7.17.0",
|
||||||
"@babel/plugin-transform-typescript": "^7.13.0",
|
"@babel/plugin-transform-typescript": "^7.13.0",
|
||||||
"@babel/preset-env": "^7.16.11",
|
"@babel/preset-env": "^7.16.11",
|
||||||
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
|
|
||||||
"@babel/preset-react": "^7.16.7",
|
"@babel/preset-react": "^7.16.7",
|
||||||
"@babel/preset-typescript": "^7.13.0",
|
"@babel/preset-typescript": "^7.13.0",
|
||||||
"@types/jest": "^27.5.0",
|
"@types/jest": "^27.5.0",
|
||||||
@ -88,13 +88,13 @@
|
|||||||
"clean-webpack-plugin": "^3.0.0",
|
"clean-webpack-plugin": "^3.0.0",
|
||||||
"copy-webpack-plugin": "^9.0.1",
|
"copy-webpack-plugin": "^9.0.1",
|
||||||
"cross-env": "^5.2.0",
|
"cross-env": "^5.2.0",
|
||||||
"css-loader": "^3.2.0",
|
"css-loader": "^6.8.1",
|
||||||
"dotenv": "^8.1.0",
|
"dotenv": "^8.1.0",
|
||||||
"eslint": "^7.32.0",
|
"eslint": "^7.32.0",
|
||||||
"eslint-config-prettier": "^7.2.0",
|
"eslint-config-prettier": "^7.2.0",
|
||||||
"eslint-config-react-app": "^6.0.0",
|
"eslint-config-react-app": "^6.0.0",
|
||||||
"eslint-plugin-flowtype": "^7.0.0",
|
|
||||||
"eslint-plugin-cypress": "^2.12.1",
|
"eslint-plugin-cypress": "^2.12.1",
|
||||||
|
"eslint-plugin-flowtype": "^7.0.0",
|
||||||
"eslint-plugin-import": "^2.26.0",
|
"eslint-plugin-import": "^2.26.0",
|
||||||
"eslint-plugin-jsx-a11y": "^6.5.1",
|
"eslint-plugin-jsx-a11y": "^6.5.1",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
@ -109,8 +109,8 @@
|
|||||||
"html-webpack-plugin": "^5.3.2",
|
"html-webpack-plugin": "^5.3.2",
|
||||||
"husky": "^3.0.0",
|
"husky": "^3.0.0",
|
||||||
"jest": "^29.5.0",
|
"jest": "^29.5.0",
|
||||||
"jest-environment-jsdom": "^29.5.0",
|
|
||||||
"jest-canvas-mock": "^2.1.0",
|
"jest-canvas-mock": "^2.1.0",
|
||||||
|
"jest-environment-jsdom": "^29.5.0",
|
||||||
"jest-junit": "^6.4.0",
|
"jest-junit": "^6.4.0",
|
||||||
"lerna": "^7.2.0",
|
"lerna": "^7.2.0",
|
||||||
"lint-staged": "^9.0.2",
|
"lint-staged": "^9.0.2",
|
||||||
|
|||||||
@ -48,7 +48,7 @@ async function linkPackage(packageDir, options, addToConfig, keyword) {
|
|||||||
const newLine = `path.resolve(__dirname, '${packageNodeModules}'),`;
|
const newLine = `path.resolve(__dirname, '${packageNodeModules}'),`;
|
||||||
const modifiedFileContent = fileContent.replace(
|
const modifiedFileContent = fileContent.replace(
|
||||||
/(modules:\s*\[)([\s\S]*?)(\])/,
|
/(modules:\s*\[)([\s\S]*?)(\])/,
|
||||||
`$1$2 ${newLine}$3`
|
`$1$2 ${newLine.replace(/\\/g, '/')}$3`
|
||||||
);
|
);
|
||||||
|
|
||||||
await fs.promises.writeFile(webpackConfigPath, modifiedFileContent);
|
await fs.promises.writeFile(webpackConfigPath, modifiedFileContent);
|
||||||
|
|||||||
@ -4,10 +4,14 @@ import path from 'path';
|
|||||||
async function editPackageJson(options) {
|
async function editPackageJson(options) {
|
||||||
const { name, version, description, author, license, targetDir } = options;
|
const { name, version, description, author, license, targetDir } = options;
|
||||||
|
|
||||||
|
const ohifVersion = fs.readFileSync('./version.txt', 'utf8');
|
||||||
|
|
||||||
// read package.json from targetDir
|
// read package.json from targetDir
|
||||||
const dependenciesPath = path.join(targetDir, 'dependencies.json');
|
const dependenciesPath = path.join(targetDir, 'dependencies.json');
|
||||||
const rawData = fs.readFileSync(dependenciesPath, 'utf8');
|
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
|
// edit package.json
|
||||||
const mergedObj = Object.assign(
|
const mergedObj = Object.assign(
|
||||||
|
|||||||
@ -44,6 +44,7 @@
|
|||||||
"@babel/preset-env": "^7.16.11",
|
"@babel/preset-env": "^7.16.11",
|
||||||
"@babel/preset-react": "^7.16.7",
|
"@babel/preset-react": "^7.16.7",
|
||||||
"@babel/preset-typescript": "^7.13.0",
|
"@babel/preset-typescript": "^7.13.0",
|
||||||
|
"@babel/plugin-proposal-private-property-in-object":"7.21.11",
|
||||||
"babel-eslint": "9.x",
|
"babel-eslint": "9.x",
|
||||||
"babel-loader": "^8.2.4",
|
"babel-loader": "^8.2.4",
|
||||||
"babel-plugin-inline-react-svg": "^2.0.2",
|
"babel-plugin-inline-react-svg": "^2.0.2",
|
||||||
|
|||||||
@ -17,10 +17,11 @@
|
|||||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@ohif/core": "^3.0.0"
|
"@ohif/core": "^{LATEST_OHIF_VERSION}"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13"
|
"@babel/runtime": "^7.20.13",
|
||||||
|
"@ohif/mode-longitudinal": "^{LATEST_OHIF_VERSION}"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.21.4",
|
"@babel/core": "^7.21.4",
|
||||||
|
|||||||
@ -24,16 +24,17 @@ you'll see the following:
|
|||||||
```bash
|
```bash
|
||||||
│
|
│
|
||||||
├── extensions
|
├── extensions
|
||||||
│ ├── _example # Skeleton of example extension
|
|
||||||
│ ├── default # default functionalities
|
│ ├── default # default functionalities
|
||||||
│ ├── cornerstone # 2D/3D images w/ Cornerstonejs
|
│ ├── cornerstone # 2D/3D images w/ Cornerstonejs
|
||||||
│ ├── cornerstone-dicom-sr # Structured reports
|
│ ├── cornerstone-dicom-sr # Structured reports
|
||||||
│ ├── measurement-tracking # measurement tracking
|
│ ├── measurement-tracking # measurement tracking
|
||||||
│ └── dicom-pdf # View DICOM wrapped PDFs in viewport
|
│ └── dicom-pdf # View DICOM wrapped PDFs in viewport
|
||||||
|
| # and many more ...
|
||||||
│
|
│
|
||||||
├── modes
|
├── modes
|
||||||
│ └── longitudinal # longitudinal measurement tracking mode
|
│ └── longitudinal # longitudinal measurement tracking mode
|
||||||
| └── basic-dev-mode # basic viewer with Cornerstone (a developer focused mode)
|
| └── basic-dev-mode # basic viewer with Cornerstone (a developer focused mode)
|
||||||
|
| # and many more
|
||||||
│
|
│
|
||||||
├── platform
|
├── platform
|
||||||
│ ├── core # Business Logic
|
│ ├── core # Business Logic
|
||||||
|
|||||||
@ -16,15 +16,15 @@ async function run() {
|
|||||||
const rootDir = process.cwd();
|
const rootDir = process.cwd();
|
||||||
|
|
||||||
for (const packagePathPattern of packages) {
|
for (const packagePathPattern of packages) {
|
||||||
const matchingDirectories = glob.sync(packagePathPattern);
|
const matchingDirectories = glob.sync(packagePathPattern, { cwd: rootDir });
|
||||||
|
|
||||||
for (const packageDirectory of matchingDirectories) {
|
for (const packageDirectory of matchingDirectories) {
|
||||||
// change back to the root directory
|
|
||||||
process.chdir(rootDir);
|
|
||||||
|
|
||||||
const packageJsonPath = path.join(packageDirectory, 'package.json');
|
|
||||||
|
|
||||||
try {
|
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'));
|
const packageJsonContent = JSON.parse(await fs.readFile(packageJsonPath, 'utf8'));
|
||||||
|
|
||||||
if (packageJsonContent.private) {
|
if (packageJsonContent.private) {
|
||||||
@ -32,11 +32,13 @@ async function run() {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// move to package directory
|
||||||
process.chdir(packageDirectory);
|
process.chdir(packageDirectory);
|
||||||
|
|
||||||
let retries = 0;
|
let retries = 0;
|
||||||
while (retries < MAX_RETRIES) {
|
while (retries < MAX_RETRIES) {
|
||||||
try {
|
try {
|
||||||
|
console.log(`Tying to publishing package at ${packageDirectory}`);
|
||||||
const publishArgs = ['publish'];
|
const publishArgs = ['publish'];
|
||||||
|
|
||||||
if (branchName === 'master') {
|
if (branchName === 'master') {
|
||||||
@ -56,6 +58,8 @@ async function run() {
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`An error occurred while processing ${packageDirectory}: ${error}`);
|
console.error(`An error occurred while processing ${packageDirectory}: ${error}`);
|
||||||
|
} finally {
|
||||||
|
process.chdir(rootDir); // Ensure we always move back to the root directory
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,18 +32,11 @@ async function run() {
|
|||||||
try {
|
try {
|
||||||
const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));
|
const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));
|
||||||
|
|
||||||
if (!packageJson.peerDependencies) {
|
// lerna will take care of updating the dependencies, but it does not
|
||||||
continue;
|
// update the peerDependencies, so we need to do that manually
|
||||||
}
|
|
||||||
|
|
||||||
for (const peerDependency of Object.keys(packageJson.peerDependencies)) {
|
for (const peerDependency of Object.keys(packageJson.peerDependencies)) {
|
||||||
if (peerDependency.startsWith('@ohif/')) {
|
if (peerDependency.startsWith('@ohif/')) {
|
||||||
packageJson.peerDependencies[peerDependency] = nextVersion;
|
packageJson.peerDependencies[peerDependency] = nextVersion;
|
||||||
|
|
||||||
console.log(
|
|
||||||
'updating peerdependency to ',
|
|
||||||
packageJson.peerDependencies[peerDependency]
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,7 +44,7 @@ async function run() {
|
|||||||
|
|
||||||
console.log(`Updated ${packageJsonPath}`);
|
console.log(`Updated ${packageJsonPath}`);
|
||||||
} catch (err) {
|
} 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;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
35
version.mjs
35
version.mjs
@ -23,20 +23,37 @@ async function run() {
|
|||||||
console.log('Branch: release');
|
console.log('Branch: release');
|
||||||
nextVersion = semver.inc(currentVersion, 'minor');
|
nextVersion = semver.inc(currentVersion, 'minor');
|
||||||
} else {
|
} else {
|
||||||
console.log('Branch: master/main');
|
console.log('Branch: master');
|
||||||
const prereleaseComponents = semver.prerelease(currentVersion);
|
const prereleaseComponents = semver.prerelease(currentVersion);
|
||||||
const isBumpBeta = lastCommitMessage.trim().endsWith('[BUMP BETA]');
|
const isBumpBeta = lastCommitMessage.trim().endsWith('[BUMP BETA]');
|
||||||
console.log('isBumpBeta', isBumpBeta);
|
console.log('isBumpBeta', isBumpBeta);
|
||||||
|
|
||||||
if (prereleaseComponents && prereleaseComponents.includes('beta') && !isBumpBeta) {
|
if (prereleaseComponents?.includes('beta')) {
|
||||||
nextVersion = semver.inc(currentVersion, 'prerelease', 'beta');
|
// if the version includes beta
|
||||||
} else if (isBumpBeta && prereleaseComponents.includes('beta')) {
|
if (isBumpBeta) {
|
||||||
console.log('Bumping beta version to be fresh beta');
|
// if the commit message includes [BUMP BETA]
|
||||||
nextVersion = `${semver.major(currentVersion)}.${semver.minor(currentVersion) + 1}.0-beta.0`;
|
// 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 {
|
} else {
|
||||||
console.log('Bumping minor version for beta release');
|
// if the version does not include the beta, might be that a recent merge into the release branch
|
||||||
const nextMinorVersion = semver.inc(currentVersion, 'minor');
|
// that later has been pulled into this PR
|
||||||
nextVersion = `${semver.major(nextMinorVersion)}.${semver.minor(nextMinorVersion)}.0-beta.0`;
|
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`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
84
yarn.lock
84
yarn.lock
@ -5110,9 +5110,9 @@
|
|||||||
integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==
|
integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==
|
||||||
|
|
||||||
"@types/http-cache-semantics@^4.0.1":
|
"@types/http-cache-semantics@^4.0.1":
|
||||||
version "4.0.1"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812"
|
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz#abe102d06ccda1efdf0ed98c10ccf7f36a785a41"
|
||||||
integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==
|
integrity sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==
|
||||||
|
|
||||||
"@types/http-errors@*":
|
"@types/http-errors@*":
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
@ -8086,26 +8086,7 @@ css-line-break@^2.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
utrie "^1.0.2"
|
utrie "^1.0.2"
|
||||||
|
|
||||||
css-loader@^3.2.0:
|
css-loader@^6.7.1, css-loader@^6.8.1:
|
||||||
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:
|
|
||||||
version "6.8.1"
|
version "6.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88"
|
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88"
|
||||||
integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==
|
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:
|
dependencies:
|
||||||
safer-buffer ">= 2.1.2 < 3.0.0"
|
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:
|
icss-utils@^5.0.0, icss-utils@^5.1.0:
|
||||||
version "5.1.0"
|
version "5.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
|
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"
|
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1"
|
||||||
integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==
|
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"
|
version "1.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
|
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
|
||||||
integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
|
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"
|
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
||||||
integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
|
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:
|
picocolors@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||||
@ -16402,28 +16371,11 @@ postcss-minify-selectors@^5.2.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
postcss-selector-parser "^6.0.5"
|
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:
|
postcss-modules-extract-imports@^3.0.0:
|
||||||
version "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"
|
resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
|
||||||
integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==
|
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:
|
postcss-modules-local-by-default@^4.0.3:
|
||||||
version "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"
|
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-selector-parser "^6.0.2"
|
||||||
postcss-value-parser "^4.1.0"
|
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:
|
postcss-modules-scope@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06"
|
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:
|
dependencies:
|
||||||
postcss-selector-parser "^6.0.4"
|
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:
|
postcss-modules-values@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c"
|
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:
|
dependencies:
|
||||||
postcss-selector-parser "^6.0.10"
|
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"
|
version "6.0.13"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
|
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
|
||||||
integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
|
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"
|
resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-5.1.0.tgz#4a5c7e5ff1050bd4c01d95b1847dfdcc58a496ff"
|
||||||
integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==
|
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:
|
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"
|
version "8.4.27"
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057"
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user