Move plugin build modules to external repositories (#1462)

This pull request moves plugin build dependencies to separate repositories:

babel-preset -> https://github.com/scm-manager/babel-preset
eslint-config -> https://github.com/scm-manager/eslint-config
jest-preset -> https://github.com/scm-manager/jest-preset
prettier-config -> https://github.com/scm-manager/prettier-config
tsconfig -> https://github.com/scm-manager/tsconfig
This should speed up the build (a little bit) and prepare for gradle plugins.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
This commit is contained in:
Sebastian Sdorra
2020-12-09 11:35:40 +01:00
committed by GitHub
parent 211afc24c9
commit 1ef0b42eb5
30 changed files with 83 additions and 1279 deletions

View File

@@ -8,7 +8,7 @@
"scripts": {
"build": "webpack --mode=production --config=scm-ui/ui-scripts/src/webpack.config.js",
"build:dev": "webpack --mode=development --config=scm-ui/ui-scripts/src/webpack.config.js",
"test": "lerna run --scope '@scm-manager/ui-*' --scope '@scm-manager/eslint-config' test",
"test": "lerna run --scope '@scm-manager/ui-*' test",
"e2e-tests": "lerna run --scope '@scm-manager/e2e-tests' ci",
"typecheck": "lerna run --scope '@scm-manager/ui-*' typecheck",
"serve": "NODE_ENV=development webpack-dev-server --hot --mode=development --config=scm-ui/ui-scripts/src/webpack.config.js",

View File

@@ -1,39 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
module.exports = api => {
api.cache.using(() => process.env.NODE_ENV || "production");
return {
presets: [
require("@babel/preset-env"),
require("@babel/preset-flow"),
require("@babel/preset-react"),
require("@babel/preset-typescript")
],
plugins: [
require("babel-plugin-styled-components"),
require("@babel/plugin-proposal-class-properties"),
require("@babel/plugin-proposal-optional-chaining")
]
};
};

View File

@@ -1,23 +0,0 @@
{
"name": "@scm-manager/babel-preset",
"version": "2.12.0-SNAPSHOT",
"license": "MIT",
"description": "Babel configuration for scm-manager and its plugins",
"main": "index.js",
"author": "Sebastian Sdorra <s.sdorra@cloudogu.com>",
"private": false,
"prettier": "@scm-manager/prettier-config",
"dependencies": {
"@babel/core": "^7.6.3",
"@babel/plugin-proposal-class-properties": "^7.5.5",
"@babel/plugin-proposal-optional-chaining": "^7.6.0",
"@babel/preset-env": "^7.6.3",
"@babel/preset-flow": "^7.0.0",
"@babel/preset-react": "^7.6.3",
"@babel/preset-typescript": "^7.6.0",
"babel-plugin-styled-components": "^1.10.7"
},
"publishConfig": {
"access": "public"
}
}

View File

@@ -1,34 +0,0 @@
{
"name": "@scm-manager/eslint-config",
"version": "2.12.0-SNAPSHOT",
"description": "ESLint configuration for scm-manager and its plugins",
"main": "src/index.js",
"author": "Sebastian Sdorra <s.sdorra@gmail.com>",
"license": "MIT",
"private": false,
"scripts": {
"test": "jest"
},
"prettier": "@scm-manager/prettier-config",
"dependencies": {
"@typescript-eslint/eslint-plugin": "^2.12.0",
"@typescript-eslint/parser": "^2.12.0",
"babel-eslint": "^10.0.3",
"eslint": "^7.2.0",
"eslint-config-airbnb-base": "^14.2.0",
"eslint-config-prettier": "^6.4.0",
"eslint-config-react-app": "^5.0.2",
"eslint-plugin-flowtype": "^4.3.0",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-react": "^7.16.0",
"eslint-plugin-react-hooks": "^2.1.2"
},
"devDependencies": {
"jest": "^26.0.1"
},
"publishConfig": {
"access": "public"
}
}

View File

@@ -1,30 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
import React, { FC } from "react";
import { Button } from "@scm-manager/ui-components";
const SpecialButton: FC = () => <Button color="primary">Special</Button>;
export default SpecialButton;

View File

@@ -1,30 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
import React, { FC } from "react";
import Button from "@scm-manager/ui-components/src/buttons/Button";
const SpecialButton: FC = () => <Button color="primary">Special</Button>;
export default SpecialButton;

View File

@@ -1,26 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
var path = require('path')
console.log('we do not use path')

View File

@@ -1,26 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
const path = require('path');
console.log("from typscript");

View File

@@ -1,25 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
console.log('from Sample.tsx')

View File

@@ -1,94 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
const rules = {
"prettier/prettier": "warn",
semi: ["error", "always"],
quotes: ["error", "double", "avoid-escape"],
"no-var": "error"
};
const nodeConfiguration = {
extends: ["airbnb-base", "plugin:prettier/recommended"],
rules: {
"no-console": "off",
...rules
}
};
const restrictImportConfig = {
patterns: ["@scm-manager/*/*"]
};
const typescriptConfiguration = {
parser: "@typescript-eslint/parser",
extends: ["react-app", "plugin:@typescript-eslint/recommended"],
rules: {
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/ban-ts-ignore": "warn",
"no-console": "error",
"jsx-a11y/href-no-hash": "off",
"no-restricted-imports": ["error", restrictImportConfig],
...rules
}
};
module.exports = {
overrides: [
{
files: ["*.test.js"],
env: {
node: true,
jest: true,
browser: false
},
...nodeConfiguration
},
{
files: ["*.js"],
env: {
node: true,
browser: false
},
...nodeConfiguration
},
{
files: ["*.test.ts", "*.test.tsx"],
env: {
node: true,
jest: true,
browser: false
},
...typescriptConfiguration
},
{
files: ["*.ts", "*.tsx"],
env: {
node: false,
browser: true
},
...typescriptConfiguration
}
]
};

View File

@@ -1,79 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
const { ESLint } = require("eslint");
const path = require("path");
const eslint = new ESLint();
const resource = path.join(__dirname, "__resources__");
const lint = async file => {
const results = await eslint.lintFiles([path.join(resource, file)]);
const { messages } = results[0];
const warnings = messages.filter(m => m.severity === 1).map(m => m.ruleId);
const errors = messages.filter(m => m.severity === 2).map(m => m.ruleId);
return {
errors,
warnings
};
};
const expectContains = (results, ...ids) => {
ids.forEach(id => expect(results).toContain(id));
};
describe("should lint different file types", () => {
it("should lint tsx files", async () => {
const { errors, warnings } = await lint("TypescriptWithJsx.tsx");
expectContains(errors, "no-console", "quotes", "semi");
expectContains(warnings, "prettier/prettier");
});
it("should lint js files", async () => {
const { errors, warnings } = await lint("Node.js");
expectContains(errors, "no-var", "quotes", "semi");
expectContains(warnings, "prettier/prettier");
});
it("should lint ts files", async () => {
const { errors, warnings } = await lint("Typescript.ts");
expectContains(errors, "no-console", "quotes");
expectContains(warnings, "prettier/prettier");
});
});
describe("lint @scm-manager imports", () => {
it("should return an error for source imports", async () => {
const { errors } = await lint("AvoidSourceImport.tsx");
expectContains(errors, "no-restricted-imports");
});
it("should return no error for package imports", async () => {
const { errors, warnings } = await lint("AllowRootImport.tsx");
expect(errors).toEqual([]);
expect(warnings).toEqual([]);
});
});

View File

@@ -1,69 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
const path = require("path");
const mockDirectory = path.resolve(__dirname, "src", "__mocks__");
const findName = require("./src/findName");
const findTarget = require("./src/findTarget");
// Set timezone for tests, this is required to get same date values
// accross diferent machines such ci-server and dev box.
// We have to set the timezone as soon as possible, because Date will
// cache the value.
// @see https://stackoverflow.com/questions/56261381/how-do-i-set-a-timezone-in-my-jest-config
process.env.TZ = "Europe/Berlin";
const root = process.cwd();
const name = findName(root);
const target = findTarget(root);
const reportDirectory = path.join(target, "jest-reports");
module.exports = {
rootDir: root,
roots: [root],
testPathDirs: [path.join(root, "src")],
transform: {
"^.+\\.(ts|tsx|js)$": "@scm-manager/jest-preset"
},
transformIgnorePatterns: ["node_modules/(?!(@scm-manager)/)"],
moduleNameMapper: {
"\\.(png|svg|jpg|gif|woff2?|eot|ttf)$": path.join(mockDirectory, "fileMock.js"),
"\\.(css|scss|sass)$": path.join(mockDirectory, "styleMock.js")
},
setupFiles: [path.resolve(__dirname, "src", "setup.js")],
collectCoverage: true,
collectCoverageFrom: ["src/**/*.{ts,tsx,js,jsx}"],
coverageDirectory: path.join(reportDirectory, "coverage-" + name),
coveragePathIgnorePatterns: ["src/tests/.*", "src/testing/.*"],
reporters: [
"default",
[
"jest-junit",
{
suiteName: name + " tests",
outputDirectory: reportDirectory,
outputName: "TEST-" + name + ".xml"
}
]
]
};

View File

@@ -1,19 +0,0 @@
{
"name": "@scm-manager/jest-preset",
"version": "2.12.0-SNAPSHOT",
"description": "Jest presets for SCM-Manager and its plugins",
"main": "src/index.js",
"author": "Sebastian Sdorra <sebastian.sdorra@cloudogu.com>",
"license": "MIT",
"private": false,
"prettier": "@scm-manager/prettier-config",
"dependencies": {
"babel-jest": "^24.9.0",
"babel-plugin-require-context-hook": "^1.0.0",
"jest": "^26.0.0",
"jest-junit": "^8.0.0"
},
"publishConfig": {
"access": "public"
}
}

View File

@@ -1,24 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
module.exports = "test-file-stub";

View File

@@ -1,24 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
module.exports = {};

View File

@@ -1,30 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
function WorkerMock() {}
WorkerMock.prototype.addEventListener = function() {};
WorkerMock.prototype.removeEventListener = function() {};
WorkerMock.prototype.postMessage = function() {};
module.exports = WorkerMock;

View File

@@ -1,38 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
const path = require("path");
const fs = require("fs");
function findName(directory) {
const packageJSON = JSON.parse(fs.readFileSync(path.join(directory, "package.json"), {encoding: "UTF-8"}));
let name = packageJSON.name;
const orgaIndex = name.indexOf("/");
if (orgaIndex > 0) {
return name.substring(orgaIndex + 1);
}
return name;
}
module.exports = findName;

View File

@@ -1,39 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
const fs = require("fs");
const path = require("path");
function findMavenModuleRoot(directory) {
if (fs.existsSync(path.join(directory, "pom.xml"))) {
return directory;
}
return findMavenModuleRoot(path.resolve(directory, ".."));
}
function findTarget(directory) {
const moduleRoot = findMavenModuleRoot(directory);
return path.join(moduleRoot, "target");
}
module.exports = findTarget;

View File

@@ -1,43 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
const babelJest = require("babel-jest");
const transformer = babelJest.createTransformer({
presets: ["@scm-manager/babel-preset"],
plugins: ["require-context-hook"],
babelrc: false,
configFile: false
});
module.exports = {
...transformer,
process(src, filename) {
if (
!filename.includes("node_modules") ||
filename.includes("@scm-manager")
) {
return transformer.process(...arguments);
}
return src;
}
};

View File

@@ -1,27 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
import registerRequireContextHook from "babel-plugin-require-context-hook/register";
import Worker from "./__mocks__/workerMock";
registerRequireContextHook();
window.Worker = Worker;

View File

@@ -1,26 +0,0 @@
/*
* MIT License
*
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
module.exports = {
printWidth: 120
};

View File

@@ -1,15 +0,0 @@
{
"name": "@scm-manager/prettier-config",
"version": "2.12.0-SNAPSHOT",
"license": "MIT",
"description": "Prettier configuration",
"author": "Sebastian Sdorra <sebastian.sdorra@cloudogu.com>",
"private": false,
"main": "index.js",
"dependencies": {
"prettier": "^1.19.1"
},
"publishConfig": {
"access": "public"
}
}

View File

@@ -1,15 +0,0 @@
{
"name": "@scm-manager/tsconfig",
"version": "2.12.0-SNAPSHOT",
"license": "MIT",
"description": "TypeScript configuration",
"author": "Sebastian Sdorra <sebastian.sdorra@cloudogu.com>",
"private": false,
"main": "tsconfig.json",
"dependencies": {
"typescript": "^3.7.2"
},
"publishConfig": {
"access": "public"
}
}

View File

@@ -1,68 +0,0 @@
{
"compilerOptions": {
/* Basic Options */
// "incremental": true, /* Enable incremental compilation */
"target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
// "lib": [], /* Specify library files to be included in the compilation. */
"allowJs": true, /* Allow javascript files to be compiled. */
"checkJs": true, /* Report errors in .js files. */
"jsx": "react", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
// "declaration": true, /* Generates corresponding '.d.ts' file. */
// "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
// "sourceMap": true, /* Generates corresponding '.map' file. */
// "outFile": "./", /* Concatenate and emit output to single file. */
// "outDir": "./", /* Redirect output structure to the directory. */
// "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
// "composite": true, /* Enable project compilation */
// "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */
// "removeComments": true, /* Do not emit comments to output. */
"noEmit": true, /* Do not emit outputs. */
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
// "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
/* Strict Type-Checking Options */
"strict": true, /* Enable all strict type-checking options. */
"noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
"strictNullChecks": true, /* Enable strict null checks. */
// "strictFunctionTypes": true, /* Enable strict checking of function types. */
// "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
// "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
// "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
// "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
/* Additional Checks */
// "noUnusedLocals": true, /* Report errors on unused locals. */
// "noUnusedParameters": true, /* Report errors on unused parameters. */
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
/* Module Resolution Options */
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
// "typeRoots": [], /* List of folders to include type definitions from. */
// "types": [], /* Type declaration files to be included in compilation. */
// "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
"esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
/* Source Map Options */
// "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
/* Experimental Options */
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
"skipLibCheck": true,
"lib": [
"dom",
"es2019"
]
}
}

View File

@@ -18,6 +18,11 @@
"update-storyshots": "jest --testPathPattern=\"storyshots.test.ts\" --collectCoverage=false -u"
},
"devDependencies": {
"@scm-manager/babel-preset": "^2.10.1",
"@scm-manager/eslint-config": "^2.10.1",
"@scm-manager/jest-preset": "^2.10.1",
"@scm-manager/prettier-config": "^2.10.1",
"@scm-manager/tsconfig": "^2.10.1",
"@scm-manager/ui-tests": "^2.12.0-SNAPSHOT",
"@storybook/addon-actions": "^6.0.28",
"@storybook/addon-storyshots": "^6.0.28",

View File

@@ -13,6 +13,11 @@
"react": "^16.10.2"
},
"devDependencies": {
"@scm-manager/babel-preset": "^2.10.1",
"@scm-manager/eslint-config": "^2.10.1",
"@scm-manager/jest-preset": "^2.10.1",
"@scm-manager/prettier-config": "^2.10.1",
"@scm-manager/tsconfig": "^2.10.1",
"@types/enzyme": "^3.10.3",
"@types/jest": "^24.0.19",
"@types/react": "^16.9.9",

View File

@@ -18,11 +18,11 @@
"styled-components": "^5.1.0"
},
"devDependencies": {
"@scm-manager/babel-preset": "^2.12.0-SNAPSHOT",
"@scm-manager/eslint-config": "^2.12.0-SNAPSHOT",
"@scm-manager/jest-preset": "^2.12.0-SNAPSHOT",
"@scm-manager/prettier-config": "^2.12.0-SNAPSHOT",
"@scm-manager/tsconfig": "^2.12.0-SNAPSHOT",
"@scm-manager/babel-preset": "^2.10.1",
"@scm-manager/eslint-config": "^2.10.1",
"@scm-manager/jest-preset": "^2.10.1",
"@scm-manager/prettier-config": "^2.10.1",
"@scm-manager/tsconfig": "^2.10.1",
"@scm-manager/ui-scripts": "^2.12.0-SNAPSHOT",
"@scm-manager/ui-tests": "^2.12.0-SNAPSHOT",
"@scm-manager/ui-types": "^2.12.0-SNAPSHOT",

View File

@@ -27,6 +27,10 @@
"webpack-dev-server": "^3.10.1",
"worker-plugin": "^3.2.0"
},
"devDependencies": {
"@scm-manager/eslint-config": "^2.10.1",
"@scm-manager/prettier-config": "^2.10.1"
},
"eslintConfig": {
"extends": "@scm-manager/eslint-config",
"rules": {

View File

@@ -16,6 +16,8 @@
"react-diff-view": "^2.4.1"
},
"devDependencies": {
"@scm-manager/eslint-config": "^2.10.1",
"@scm-manager/prettier-config": "^2.10.1",
"css-loader": "^3.2.0",
"prettier": "^2.1.2",
"sass": "^1.26.3",

491
yarn.lock
View File

@@ -2118,18 +2118,6 @@
chalk "^2.0.1"
slash "^2.0.0"
"@jest/console@^26.3.0":
version "26.3.0"
resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.3.0.tgz#ed04063efb280c88ba87388b6f16427c0a85c856"
integrity sha512-/5Pn6sJev0nPUcAdpJHMVIsA8sKizL2ZkcKPE5+dJrCccks7tcM7c9wbgHudBJbxXLoTbqsHkG1Dofoem4F09w==
dependencies:
"@jest/types" "^26.3.0"
"@types/node" "*"
chalk "^4.0.0"
jest-message-util "^26.3.0"
jest-util "^26.3.0"
slash "^3.0.0"
"@jest/console@^26.6.2":
version "26.6.2"
resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2"
@@ -2176,40 +2164,6 @@
slash "^2.0.0"
strip-ansi "^5.0.0"
"@jest/core@^26.4.2":
version "26.4.2"
resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.4.2.tgz#85d0894f31ac29b5bab07aa86806d03dd3d33edc"
integrity sha512-sDva7YkeNprxJfepOctzS8cAk9TOekldh+5FhVuXS40+94SHbiicRO1VV2tSoRtgIo+POs/Cdyf8p76vPTd6dg==
dependencies:
"@jest/console" "^26.3.0"
"@jest/reporters" "^26.4.1"
"@jest/test-result" "^26.3.0"
"@jest/transform" "^26.3.0"
"@jest/types" "^26.3.0"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.4"
jest-changed-files "^26.3.0"
jest-config "^26.4.2"
jest-haste-map "^26.3.0"
jest-message-util "^26.3.0"
jest-regex-util "^26.0.0"
jest-resolve "^26.4.0"
jest-resolve-dependencies "^26.4.2"
jest-runner "^26.4.2"
jest-runtime "^26.4.2"
jest-snapshot "^26.4.2"
jest-util "^26.3.0"
jest-validate "^26.4.2"
jest-watcher "^26.3.0"
micromatch "^4.0.2"
p-each-series "^2.1.0"
rimraf "^3.0.0"
slash "^3.0.0"
strip-ansi "^6.0.0"
"@jest/core@^26.6.3":
version "26.6.3"
resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad"
@@ -2254,16 +2208,6 @@
"@jest/types" "^24.9.0"
jest-mock "^24.9.0"
"@jest/environment@^26.3.0":
version "26.3.0"
resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.3.0.tgz#e6953ab711ae3e44754a025f838bde1a7fd236a0"
integrity sha512-EW+MFEo0DGHahf83RAaiqQx688qpXgl99wdb8Fy67ybyzHwR1a58LHcO376xQJHfmoXTu89M09dH3J509cx2AA==
dependencies:
"@jest/fake-timers" "^26.3.0"
"@jest/types" "^26.3.0"
"@types/node" "*"
jest-mock "^26.3.0"
"@jest/environment@^26.6.2":
version "26.6.2"
resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c"
@@ -2283,18 +2227,6 @@
jest-message-util "^24.9.0"
jest-mock "^24.9.0"
"@jest/fake-timers@^26.3.0":
version "26.3.0"
resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.3.0.tgz#f515d4667a6770f60ae06ae050f4e001126c666a"
integrity sha512-ZL9ytUiRwVP8ujfRepffokBvD2KbxbqMhrXSBhSdAhISCw3gOkuntisiSFv+A6HN0n0fF4cxzICEKZENLmW+1A==
dependencies:
"@jest/types" "^26.3.0"
"@sinonjs/fake-timers" "^6.0.1"
"@types/node" "*"
jest-message-util "^26.3.0"
jest-mock "^26.3.0"
jest-util "^26.3.0"
"@jest/fake-timers@^26.6.2":
version "26.6.2"
resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad"
@@ -2307,15 +2239,6 @@
jest-mock "^26.6.2"
jest-util "^26.6.2"
"@jest/globals@^26.4.2":
version "26.4.2"
resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.4.2.tgz#73c2a862ac691d998889a241beb3dc9cada40d4a"
integrity sha512-Ot5ouAlehhHLRhc+sDz2/9bmNv9p5ZWZ9LE1pXGGTCXBasmi5jnYjlgYcYt03FBwLmZXCZ7GrL29c33/XRQiow==
dependencies:
"@jest/environment" "^26.3.0"
"@jest/types" "^26.3.0"
expect "^26.4.2"
"@jest/globals@^26.6.2":
version "26.6.2"
resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a"
@@ -2352,38 +2275,6 @@
source-map "^0.6.0"
string-length "^2.0.0"
"@jest/reporters@^26.4.1":
version "26.4.1"
resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.4.1.tgz#3b4d6faf28650f3965f8b97bc3d114077fb71795"
integrity sha512-aROTkCLU8++yiRGVxLsuDmZsQEKO6LprlrxtAuzvtpbIFl3eIjgIf3EUxDKgomkS25R9ZzwGEdB5weCcBZlrpQ==
dependencies:
"@bcoe/v8-coverage" "^0.2.3"
"@jest/console" "^26.3.0"
"@jest/test-result" "^26.3.0"
"@jest/transform" "^26.3.0"
"@jest/types" "^26.3.0"
chalk "^4.0.0"
collect-v8-coverage "^1.0.0"
exit "^0.1.2"
glob "^7.1.2"
graceful-fs "^4.2.4"
istanbul-lib-coverage "^3.0.0"
istanbul-lib-instrument "^4.0.3"
istanbul-lib-report "^3.0.0"
istanbul-lib-source-maps "^4.0.0"
istanbul-reports "^3.0.2"
jest-haste-map "^26.3.0"
jest-resolve "^26.4.0"
jest-util "^26.3.0"
jest-worker "^26.3.0"
slash "^3.0.0"
source-map "^0.6.0"
string-length "^4.0.1"
terminal-link "^2.0.0"
v8-to-istanbul "^5.0.1"
optionalDependencies:
node-notifier "^8.0.0"
"@jest/reporters@^26.6.2":
version "26.6.2"
resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6"
@@ -2425,15 +2316,6 @@
graceful-fs "^4.1.15"
source-map "^0.6.0"
"@jest/source-map@^26.3.0":
version "26.3.0"
resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.3.0.tgz#0e646e519883c14c551f7b5ae4ff5f1bfe4fc3d9"
integrity sha512-hWX5IHmMDWe1kyrKl7IhFwqOuAreIwHhbe44+XH2ZRHjrKIh0LO5eLQ/vxHFeAfRwJapmxuqlGAEYLadDq6ZGQ==
dependencies:
callsites "^3.0.0"
graceful-fs "^4.2.4"
source-map "^0.6.0"
"@jest/source-map@^26.6.2":
version "26.6.2"
resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535"
@@ -2452,16 +2334,6 @@
"@jest/types" "^24.9.0"
"@types/istanbul-lib-coverage" "^2.0.0"
"@jest/test-result@^26.3.0":
version "26.3.0"
resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.3.0.tgz#46cde01fa10c0aaeb7431bf71e4a20d885bc7fdb"
integrity sha512-a8rbLqzW/q7HWheFVMtghXV79Xk+GWwOK1FrtimpI5n1la2SY0qHri3/b0/1F0Ve0/yJmV8pEhxDfVwiUBGtgg==
dependencies:
"@jest/console" "^26.3.0"
"@jest/types" "^26.3.0"
"@types/istanbul-lib-coverage" "^2.0.0"
collect-v8-coverage "^1.0.0"
"@jest/test-result@^26.6.2":
version "26.6.2"
resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18"
@@ -2482,17 +2354,6 @@
jest-runner "^24.9.0"
jest-runtime "^24.9.0"
"@jest/test-sequencer@^26.4.2":
version "26.4.2"
resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.4.2.tgz#58a3760a61eec758a2ce6080201424580d97cbba"
integrity sha512-83DRD8N3M0tOhz9h0bn6Kl6dSp+US6DazuVF8J9m21WAp5x7CqSMaNycMP0aemC/SH/pDQQddbsfHRTBXVUgog==
dependencies:
"@jest/test-result" "^26.3.0"
graceful-fs "^4.2.4"
jest-haste-map "^26.3.0"
jest-runner "^26.4.2"
jest-runtime "^26.4.2"
"@jest/test-sequencer@^26.6.3":
version "26.6.3"
resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17"
@@ -2526,7 +2387,7 @@
source-map "^0.6.1"
write-file-atomic "2.4.1"
"@jest/transform@^26.0.0", "@jest/transform@^26.3.0":
"@jest/transform@^26.0.0":
version "26.3.0"
resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.3.0.tgz#c393e0e01459da8a8bfc6d2a7c2ece1a13e8ba55"
integrity sha512-Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A==
@@ -3452,6 +3313,63 @@
dependencies:
any-observable "^0.3.0"
"@scm-manager/babel-preset@^2.10.1":
version "2.10.1"
resolved "https://registry.yarnpkg.com/@scm-manager/babel-preset/-/babel-preset-2.10.1.tgz#c106e6aba58d4f55f6e65ccaae40ac22f999c351"
integrity sha512-sxReuu5pFbcj/s2VmexzoUWtrFyLS4jrZByvOFCPF9LBhMqmxawpQV+Kc789EsDElUVP+aQfGPonkeT0bGnnYg==
dependencies:
"@babel/core" "^7.6.3"
"@babel/plugin-proposal-class-properties" "^7.5.5"
"@babel/plugin-proposal-optional-chaining" "^7.6.0"
"@babel/preset-env" "^7.6.3"
"@babel/preset-flow" "^7.0.0"
"@babel/preset-react" "^7.6.3"
"@babel/preset-typescript" "^7.6.0"
babel-plugin-styled-components "^1.10.7"
"@scm-manager/eslint-config@^2.10.1":
version "2.10.1"
resolved "https://registry.yarnpkg.com/@scm-manager/eslint-config/-/eslint-config-2.10.1.tgz#a7d2d429588efc11120cce37ee97440f37e70eba"
integrity sha512-J2kL2lB+uh3TiRBRgZPx2ddW/U35ium/NW5HUKZus/H5u8aDqR+5eVzjiiX8kgqYx4hyVdxUUeE8+H/bVNH6yQ==
dependencies:
"@typescript-eslint/eslint-plugin" "^2.12.0"
"@typescript-eslint/parser" "^2.12.0"
babel-eslint "^10.0.3"
eslint "^7.2.0"
eslint-config-airbnb-base "^14.2.0"
eslint-config-prettier "^6.4.0"
eslint-config-react-app "^5.0.2"
eslint-plugin-flowtype "^4.3.0"
eslint-plugin-import "^2.18.2"
eslint-plugin-jsx-a11y "^6.2.3"
eslint-plugin-prettier "^3.1.1"
eslint-plugin-react "^7.16.0"
eslint-plugin-react-hooks "^2.1.2"
"@scm-manager/jest-preset@^2.10.1":
version "2.10.1"
resolved "https://registry.yarnpkg.com/@scm-manager/jest-preset/-/jest-preset-2.10.1.tgz#94cf4463d944f9ae51f0d831813cc3eb3e4c43d3"
integrity sha512-VrKoPD4RomMx2okHtN6/MPwTyjztAA46+Oq1ZnzXZqcki9KpsDn8/M4igXl4gpcn11GKJjGfryPZ2seWEdenuQ==
dependencies:
babel-jest "^24.9.0"
babel-plugin-require-context-hook "^1.0.0"
jest "^26.0.0"
jest-junit "^8.0.0"
"@scm-manager/prettier-config@^2.10.1":
version "2.10.1"
resolved "https://registry.yarnpkg.com/@scm-manager/prettier-config/-/prettier-config-2.10.1.tgz#7b899d706654d83cc3d91fd053ea70afd619bc86"
integrity sha512-JBZzWYLI8MAK5jq++rSsyaE/Pdtba2HtDKUyi1o+pJ9FyKgfUPXYA1UuiVcpTi1HBqnT2vlD6NUEWzj1zm5jjQ==
dependencies:
prettier "^1.19.1"
"@scm-manager/tsconfig@^2.10.1":
version "2.10.1"
resolved "https://registry.yarnpkg.com/@scm-manager/tsconfig/-/tsconfig-2.10.1.tgz#2c09e5afee22231137a8a35fd7b9cd1f6774a93a"
integrity sha512-sJKGkhCcbgAoTaIe/Cbza+yPwoiXOVmIPVDE7j6Y9ZDioLUqi7QmTJvuvqENQqz9MzljY0splXqOGd/XARYaCA==
dependencies:
typescript "^3.7.2"
"@sinonjs/commons@^1.7.0":
version "1.8.1"
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217"
@@ -5524,20 +5442,6 @@ babel-jest@^24.9.0:
chalk "^2.4.2"
slash "^2.0.0"
babel-jest@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.3.0.tgz#10d0ca4b529ca3e7d1417855ef7d7bd6fc0c3463"
integrity sha512-sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g==
dependencies:
"@jest/transform" "^26.3.0"
"@jest/types" "^26.3.0"
"@types/babel__core" "^7.1.7"
babel-plugin-istanbul "^6.0.0"
babel-preset-jest "^26.3.0"
chalk "^4.0.0"
graceful-fs "^4.2.4"
slash "^3.0.0"
babel-jest@^26.6.3:
version "26.6.3"
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056"
@@ -5637,16 +5541,6 @@ babel-plugin-jest-hoist@^24.9.0:
dependencies:
"@types/babel__traverse" "^7.0.6"
babel-plugin-jest-hoist@^26.2.0:
version "26.2.0"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz#bdd0011df0d3d513e5e95f76bd53b51147aca2dd"
integrity sha512-B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA==
dependencies:
"@babel/template" "^7.3.3"
"@babel/types" "^7.3.3"
"@types/babel__core" "^7.0.0"
"@types/babel__traverse" "^7.0.6"
babel-plugin-jest-hoist@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d"
@@ -5868,23 +5762,6 @@ babel-polyfill@^6.26.0:
core-js "^2.5.0"
regenerator-runtime "^0.10.5"
babel-preset-current-node-syntax@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz#b4b547acddbf963cba555ba9f9cbbb70bfd044da"
integrity sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==
dependencies:
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-syntax-bigint" "^7.8.3"
"@babel/plugin-syntax-class-properties" "^7.8.3"
"@babel/plugin-syntax-import-meta" "^7.8.3"
"@babel/plugin-syntax-json-strings" "^7.8.3"
"@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
"@babel/plugin-syntax-numeric-separator" "^7.8.3"
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
babel-preset-current-node-syntax@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz#cf5feef29551253471cfa82fc8e0f5063df07a77"
@@ -5911,14 +5788,6 @@ babel-preset-jest@^24.9.0:
"@babel/plugin-syntax-object-rest-spread" "^7.0.0"
babel-plugin-jest-hoist "^24.9.0"
babel-preset-jest@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz#ed6344506225c065fd8a0b53e191986f74890776"
integrity sha512-5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw==
dependencies:
babel-plugin-jest-hoist "^26.2.0"
babel-preset-current-node-syntax "^0.1.3"
babel-preset-jest@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee"
@@ -11334,15 +11203,6 @@ jest-changed-files@^24.9.0:
execa "^1.0.0"
throat "^4.0.0"
jest-changed-files@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.3.0.tgz#68fb2a7eb125f50839dab1f5a17db3607fe195b1"
integrity sha512-1C4R4nijgPltX6fugKxM4oQ18zimS7LqQ+zTTY8lMCMFPrxqBFb7KJH0Z2fRQJvw2Slbaipsqq7s1mgX5Iot+g==
dependencies:
"@jest/types" "^26.3.0"
execa "^4.0.0"
throat "^5.0.0"
jest-changed-files@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0"
@@ -11371,25 +11231,6 @@ jest-cli@^24.9.0:
realpath-native "^1.1.0"
yargs "^13.3.0"
jest-cli@^26.4.2:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.4.2.tgz#24afc6e4dfc25cde4c7ec4226fb7db5f157c21da"
integrity sha512-zb+lGd/SfrPvoRSC/0LWdaWCnscXc1mGYW//NP4/tmBvRPT3VntZ2jtKUONsRi59zc5JqmsSajA9ewJKFYp8Cw==
dependencies:
"@jest/core" "^26.4.2"
"@jest/test-result" "^26.3.0"
"@jest/types" "^26.3.0"
chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.4"
import-local "^3.0.2"
is-ci "^2.0.0"
jest-config "^26.4.2"
jest-util "^26.3.0"
jest-validate "^26.4.2"
prompts "^2.0.1"
yargs "^15.3.1"
jest-cli@^26.6.3:
version "26.6.3"
resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a"
@@ -11432,30 +11273,6 @@ jest-config@^24.9.0:
pretty-format "^24.9.0"
realpath-native "^1.1.0"
jest-config@^26.4.2:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.4.2.tgz#da0cbb7dc2c131ffe831f0f7f2a36256e6086558"
integrity sha512-QBf7YGLuToiM8PmTnJEdRxyYy3mHWLh24LJZKVdXZ2PNdizSe1B/E8bVm+HYcjbEzGuVXDv/di+EzdO/6Gq80A==
dependencies:
"@babel/core" "^7.1.0"
"@jest/test-sequencer" "^26.4.2"
"@jest/types" "^26.3.0"
babel-jest "^26.3.0"
chalk "^4.0.0"
deepmerge "^4.2.2"
glob "^7.1.1"
graceful-fs "^4.2.4"
jest-environment-jsdom "^26.3.0"
jest-environment-node "^26.3.0"
jest-get-type "^26.3.0"
jest-jasmine2 "^26.4.2"
jest-regex-util "^26.0.0"
jest-resolve "^26.4.0"
jest-util "^26.3.0"
jest-validate "^26.4.2"
micromatch "^4.0.2"
pretty-format "^26.4.2"
jest-config@^26.6.3:
version "26.6.3"
resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349"
@@ -11545,17 +11362,6 @@ jest-each@^24.9.0:
jest-util "^24.9.0"
pretty-format "^24.9.0"
jest-each@^26.4.2:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.4.2.tgz#bb14f7f4304f2bb2e2b81f783f989449b8b6ffae"
integrity sha512-p15rt8r8cUcRY0Mvo1fpkOGYm7iI8S6ySxgIdfh3oOIv+gHwrHTy5VWCGOecWUhDsit4Nz8avJWdT07WLpbwDA==
dependencies:
"@jest/types" "^26.3.0"
chalk "^4.0.0"
jest-get-type "^26.3.0"
jest-util "^26.3.0"
pretty-format "^26.4.2"
jest-each@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb"
@@ -11579,19 +11385,6 @@ jest-environment-jsdom@^24.9.0:
jest-util "^24.9.0"
jsdom "^11.5.1"
jest-environment-jsdom@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.3.0.tgz#3b749ba0f3a78e92ba2c9ce519e16e5dd515220c"
integrity sha512-zra8He2btIMJkAzvLaiZ9QwEPGEetbxqmjEBQwhH3CA+Hhhu0jSiEJxnJMbX28TGUvPLxBt/zyaTLrOPF4yMJA==
dependencies:
"@jest/environment" "^26.3.0"
"@jest/fake-timers" "^26.3.0"
"@jest/types" "^26.3.0"
"@types/node" "*"
jest-mock "^26.3.0"
jest-util "^26.3.0"
jsdom "^16.2.2"
jest-environment-jsdom@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e"
@@ -11616,18 +11409,6 @@ jest-environment-node@^24.9.0:
jest-mock "^24.9.0"
jest-util "^24.9.0"
jest-environment-node@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.3.0.tgz#56c6cfb506d1597f94ee8d717072bda7228df849"
integrity sha512-c9BvYoo+FGcMj5FunbBgtBnbR5qk3uky8PKyRVpSfe2/8+LrNQMiXX53z6q2kY+j15SkjQCOSL/6LHnCPLVHNw==
dependencies:
"@jest/environment" "^26.3.0"
"@jest/fake-timers" "^26.3.0"
"@jest/types" "^26.3.0"
"@types/node" "*"
jest-mock "^26.3.0"
jest-util "^26.3.0"
jest-environment-node@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c"
@@ -11738,30 +11519,6 @@ jest-jasmine2@^24.9.0:
pretty-format "^24.9.0"
throat "^4.0.0"
jest-jasmine2@^26.4.2:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.4.2.tgz#18a9d5bec30904267ac5e9797570932aec1e2257"
integrity sha512-z7H4EpCldHN1J8fNgsja58QftxBSL+JcwZmaXIvV9WKIM+x49F4GLHu/+BQh2kzRKHAgaN/E82od+8rTOBPyPA==
dependencies:
"@babel/traverse" "^7.1.0"
"@jest/environment" "^26.3.0"
"@jest/source-map" "^26.3.0"
"@jest/test-result" "^26.3.0"
"@jest/types" "^26.3.0"
"@types/node" "*"
chalk "^4.0.0"
co "^4.6.0"
expect "^26.4.2"
is-generator-fn "^2.0.0"
jest-each "^26.4.2"
jest-matcher-utils "^26.4.2"
jest-message-util "^26.3.0"
jest-runtime "^26.4.2"
jest-snapshot "^26.4.2"
jest-util "^26.3.0"
pretty-format "^26.4.2"
throat "^5.0.0"
jest-jasmine2@^26.6.3:
version "26.6.3"
resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd"
@@ -11804,14 +11561,6 @@ jest-leak-detector@^24.9.0:
jest-get-type "^24.9.0"
pretty-format "^24.9.0"
jest-leak-detector@^26.4.2:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.4.2.tgz#c73e2fa8757bf905f6f66fb9e0070b70fa0f573f"
integrity sha512-akzGcxwxtE+9ZJZRW+M2o+nTNnmQZxrHJxX/HjgDaU5+PLmY1qnQPnMjgADPGCRPhB+Yawe1iij0REe+k/aHoA==
dependencies:
jest-get-type "^26.3.0"
pretty-format "^26.4.2"
jest-leak-detector@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af"
@@ -11900,14 +11649,6 @@ jest-mock@^24.9.0:
dependencies:
"@jest/types" "^24.9.0"
jest-mock@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.3.0.tgz#ee62207c3c5ebe5f35b760e1267fee19a1cfdeba"
integrity sha512-PeaRrg8Dc6mnS35gOo/CbZovoDPKAeB1FICZiuagAgGvbWdNNyjQjkOaGUa/3N3JtpQ/Mh9P4A2D4Fv51NnP8Q==
dependencies:
"@jest/types" "^26.3.0"
"@types/node" "*"
jest-mock@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302"
@@ -11940,15 +11681,6 @@ jest-resolve-dependencies@^24.9.0:
jest-regex-util "^24.3.0"
jest-snapshot "^24.9.0"
jest-resolve-dependencies@^26.4.2:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.4.2.tgz#739bdb027c14befb2fe5aabbd03f7bab355f1dc5"
integrity sha512-ADHaOwqEcVc71uTfySzSowA/RdxUpCxhxa2FNLiin9vWLB1uLPad3we+JSSROq5+SrL9iYPdZZF8bdKM7XABTQ==
dependencies:
"@jest/types" "^26.3.0"
jest-regex-util "^26.0.0"
jest-snapshot "^26.4.2"
jest-resolve-dependencies@^26.6.3:
version "26.6.3"
resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6"
@@ -12022,32 +11754,6 @@ jest-runner@^24.9.0:
source-map-support "^0.5.6"
throat "^4.0.0"
jest-runner@^26.4.2:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.4.2.tgz#c3ec5482c8edd31973bd3935df5a449a45b5b853"
integrity sha512-FgjDHeVknDjw1gRAYaoUoShe1K3XUuFMkIaXbdhEys+1O4bEJS8Avmn4lBwoMfL8O5oFTdWYKcf3tEJyyYyk8g==
dependencies:
"@jest/console" "^26.3.0"
"@jest/environment" "^26.3.0"
"@jest/test-result" "^26.3.0"
"@jest/types" "^26.3.0"
"@types/node" "*"
chalk "^4.0.0"
emittery "^0.7.1"
exit "^0.1.2"
graceful-fs "^4.2.4"
jest-config "^26.4.2"
jest-docblock "^26.0.0"
jest-haste-map "^26.3.0"
jest-leak-detector "^26.4.2"
jest-message-util "^26.3.0"
jest-resolve "^26.4.0"
jest-runtime "^26.4.2"
jest-util "^26.3.0"
jest-worker "^26.3.0"
source-map-support "^0.5.6"
throat "^5.0.0"
jest-runner@^26.6.3:
version "26.6.3"
resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159"
@@ -12103,38 +11809,6 @@ jest-runtime@^24.9.0:
strip-bom "^3.0.0"
yargs "^13.3.0"
jest-runtime@^26.4.2:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.4.2.tgz#94ce17890353c92e4206580c73a8f0c024c33c42"
integrity sha512-4Pe7Uk5a80FnbHwSOk7ojNCJvz3Ks2CNQWT5Z7MJo4tX0jb3V/LThKvD9tKPNVNyeMH98J/nzGlcwc00R2dSHQ==
dependencies:
"@jest/console" "^26.3.0"
"@jest/environment" "^26.3.0"
"@jest/fake-timers" "^26.3.0"
"@jest/globals" "^26.4.2"
"@jest/source-map" "^26.3.0"
"@jest/test-result" "^26.3.0"
"@jest/transform" "^26.3.0"
"@jest/types" "^26.3.0"
"@types/yargs" "^15.0.0"
chalk "^4.0.0"
collect-v8-coverage "^1.0.0"
exit "^0.1.2"
glob "^7.1.3"
graceful-fs "^4.2.4"
jest-config "^26.4.2"
jest-haste-map "^26.3.0"
jest-message-util "^26.3.0"
jest-mock "^26.3.0"
jest-regex-util "^26.0.0"
jest-resolve "^26.4.0"
jest-snapshot "^26.4.2"
jest-util "^26.3.0"
jest-validate "^26.4.2"
slash "^3.0.0"
strip-bom "^4.0.0"
yargs "^15.3.1"
jest-runtime@^26.6.3:
version "26.6.3"
resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b"
@@ -12208,7 +11882,7 @@ jest-snapshot@^24.9.0:
pretty-format "^24.9.0"
semver "^6.2.0"
jest-snapshot@^26.3.0, jest-snapshot@^26.4.2:
jest-snapshot@^26.3.0:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.4.2.tgz#87d3ac2f2bd87ea8003602fbebd8fcb9e94104f6"
integrity sha512-N6Uub8FccKlf5SBFnL2Ri/xofbaA68Cc3MGjP/NuwgnsvWh+9hLIR/DhrxbSiKXMY9vUW5dI6EW1eHaDHqe9sg==
@@ -12312,18 +11986,6 @@ jest-validate@^24.0.0, jest-validate@^24.9.0:
leven "^3.1.0"
pretty-format "^24.9.0"
jest-validate@^26.4.2:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.4.2.tgz#e871b0dfe97747133014dcf6445ee8018398f39c"
integrity sha512-blft+xDX7XXghfhY0mrsBCYhX365n8K5wNDC4XAcNKqqjEzsRUSXP44m6PL0QJEW2crxQFLLztVnJ4j7oPlQrQ==
dependencies:
"@jest/types" "^26.3.0"
camelcase "^6.0.0"
chalk "^4.0.0"
jest-get-type "^26.3.0"
leven "^3.1.0"
pretty-format "^26.4.2"
jest-validate@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec"
@@ -12349,19 +12011,6 @@ jest-watcher@^24.9.0:
jest-util "^24.9.0"
string-length "^2.0.0"
jest-watcher@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.3.0.tgz#f8ef3068ddb8af160ef868400318dc4a898eed08"
integrity sha512-XnLdKmyCGJ3VoF6G/p5ohbJ04q/vv5aH9ENI+i6BL0uu9WWB6Z7Z2lhQQk0d2AVZcRGp1yW+/TsoToMhBFPRdQ==
dependencies:
"@jest/test-result" "^26.3.0"
"@jest/types" "^26.3.0"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
jest-util "^26.3.0"
string-length "^4.0.1"
jest-watcher@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975"
@@ -12418,15 +12067,6 @@ jest@^26.0.0:
import-local "^3.0.2"
jest-cli "^26.6.3"
jest@^26.0.1:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest/-/jest-26.4.2.tgz#7e8bfb348ec33f5459adeaffc1a25d5752d9d312"
integrity sha512-LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw==
dependencies:
"@jest/core" "^26.4.2"
import-local "^3.0.2"
jest-cli "^26.4.2"
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -12482,7 +12122,7 @@ jsdom@^11.5.1:
ws "^5.2.0"
xml-name-validator "^3.0.0"
jsdom@^16.2.2, jsdom@^16.4.0:
jsdom@^16.4.0:
version "16.4.0"
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb"
integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==
@@ -18627,15 +18267,6 @@ v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1:
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745"
integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==
v8-to-istanbul@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz#0608f5b49a481458625edb058488607f25498ba5"
integrity sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.1"
convert-source-map "^1.6.0"
source-map "^0.7.3"
v8-to-istanbul@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz#b4fe00e35649ef7785a9b7fcebcea05f37c332fc"
@@ -19290,7 +18921,7 @@ yargs@^14.2.2:
y18n "^4.0.0"
yargs-parser "^15.0.1"
yargs@^15.3.1, yargs@^15.4.1:
yargs@^15.4.1:
version "15.4.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==