@elliemae/pui-cli 6.5.3 → 6.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli-commands/lint.js +2 -4
- package/lib/cli-commands/version.js +50 -0
- package/lib/lint/eslint/common.js +10 -0
- package/lib/lint/stylelint.config.js +11 -0
- package/lib/monorepo/delete-merged-tags.js +48 -0
- package/lib/monorepo/update-root-package-version.js +22 -0
- package/lib/monorepo/use-registry-version.js +22 -0
- package/lib/monorepo/use-workspace-version.js +29 -0
- package/lib/monorepo/utils.js +1 -1
- package/lib/testing/jest.config.js +30 -32
- package/lib/webpack/helpers.js +2 -2
- package/package.json +24 -22
package/lib/cli-commands/lint.js
CHANGED
|
@@ -5,15 +5,13 @@ const { isTypeScriptEnabled } = require('../typescript/util');
|
|
|
5
5
|
async function lintCSS(fix = false) {
|
|
6
6
|
const fixIssues = fix ? '--fix' : '';
|
|
7
7
|
await exec(
|
|
8
|
-
`stylelint ./{lib,app}/**/*.{js,jsx,ts,tsx} ${fixIssues} --color --allowEmptyInput
|
|
8
|
+
`stylelint ./{lib,app}/**/*.{js,jsx,ts,tsx} ${fixIssues} --color --allowEmptyInput`,
|
|
9
9
|
);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
async function lintJS(fix = false) {
|
|
13
13
|
const fixIssues = fix ? '--fix' : '';
|
|
14
|
-
await exec(
|
|
15
|
-
`eslint --color ${fixIssues} --ignore-pattern '/dist/**/*' --ignore-pattern '/build/**/*' .`,
|
|
16
|
-
);
|
|
14
|
+
await exec(`eslint --color ${fixIssues} .`);
|
|
17
15
|
}
|
|
18
16
|
|
|
19
17
|
async function handler(argv) {
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const { exit } = require('yargs');
|
|
2
|
+
const { logError } = require('./utils');
|
|
3
|
+
const { useWorkspaceVersion } = require('../monorepo/use-workspace-version');
|
|
4
|
+
const { useRegistryVersion } = require('../monorepo/use-registry-version');
|
|
5
|
+
const { deleteMergedTags } = require('../monorepo/delete-merged-tags');
|
|
6
|
+
const {
|
|
7
|
+
updateRootPackageVersion,
|
|
8
|
+
} = require('../monorepo/update-root-package-version');
|
|
9
|
+
|
|
10
|
+
async function handler(argv) {
|
|
11
|
+
try {
|
|
12
|
+
if (argv.deleteTags) {
|
|
13
|
+
await deleteMergedTags();
|
|
14
|
+
} else if (argv.updateRoot) {
|
|
15
|
+
await updateRootPackageVersion();
|
|
16
|
+
} else if (argv.useRegistry) {
|
|
17
|
+
await useRegistryVersion();
|
|
18
|
+
} else if (argv.useWorkspace) {
|
|
19
|
+
await useWorkspaceVersion();
|
|
20
|
+
}
|
|
21
|
+
} catch (err) {
|
|
22
|
+
logError('Monorepo versioning failed', err);
|
|
23
|
+
exit(-1, err);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
exports.command = 'version [options]';
|
|
28
|
+
|
|
29
|
+
exports.describe = 'version monorepo';
|
|
30
|
+
|
|
31
|
+
exports.builder = {
|
|
32
|
+
deleteTags: {
|
|
33
|
+
type: 'boolean',
|
|
34
|
+
default: false,
|
|
35
|
+
},
|
|
36
|
+
updateRoot: {
|
|
37
|
+
type: 'boolean',
|
|
38
|
+
default: false,
|
|
39
|
+
},
|
|
40
|
+
useRegistry: {
|
|
41
|
+
type: 'boolean',
|
|
42
|
+
default: false,
|
|
43
|
+
},
|
|
44
|
+
useWorkspace: {
|
|
45
|
+
type: 'boolean',
|
|
46
|
+
default: false,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
exports.handler = handler;
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
+
ignoreFiles: [
|
|
3
|
+
'/dist/**/*',
|
|
4
|
+
'/coverage/**/*',
|
|
5
|
+
'/build/**/*',
|
|
6
|
+
'/reports/**/*',
|
|
7
|
+
'/temp/**/*',
|
|
8
|
+
'/docs/**/*',
|
|
9
|
+
'/demo/**/*',
|
|
10
|
+
'/node_modules/**/*',
|
|
11
|
+
'/vendor/**/*',
|
|
12
|
+
],
|
|
2
13
|
customSyntax: '@stylelint/postcss-css-in-js',
|
|
3
14
|
extends: [
|
|
4
15
|
'stylelint-config-recommended',
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const { execSync } = require('child_process');
|
|
2
|
+
const cwd = process.cwd();
|
|
3
|
+
const execaOptions = { cwd, stdio: 'inherit' };
|
|
4
|
+
|
|
5
|
+
const semVerRegEx =
|
|
6
|
+
/^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
|
|
7
|
+
|
|
8
|
+
const isSemVersion = (tagName) => semVerRegEx.test(tagName);
|
|
9
|
+
const branchName = (process.env.BRANCH_NAME || 'master').toLowerCase();
|
|
10
|
+
|
|
11
|
+
const branchTags = {
|
|
12
|
+
master: /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/,
|
|
13
|
+
next: /^v.*-next\.(0|[1-9]\d*)/,
|
|
14
|
+
alpha: /^v.*-alpha\.(0|[1-9]\d*)/,
|
|
15
|
+
beta: /^v.*-beta\.(0|[1-9]\d*)/,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const deleteTags = (cmd, filter) => {
|
|
19
|
+
const result = execSync(cmd, { cwd });
|
|
20
|
+
if (!result) return;
|
|
21
|
+
const tags = result.toString().split('\n').join(' ');
|
|
22
|
+
execSync(`git tag -d ${filter ? filter(tags) : tags}`, { cwd });
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const tagsFromOtherBranches = (tags = []) => {
|
|
26
|
+
const regex = branchTags[branchName] || branchTags.master;
|
|
27
|
+
return tags
|
|
28
|
+
.split(' ')
|
|
29
|
+
.filter((tagName) => isSemVersion(tagName) && !regex.test(tagName))
|
|
30
|
+
.join(' ');
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
exports.deleteMergedTags = () => {
|
|
34
|
+
try {
|
|
35
|
+
// get tag names
|
|
36
|
+
if (branchName) {
|
|
37
|
+
// delete all tags that are not reachable from the current branch
|
|
38
|
+
deleteTags(`git tag -l --no-merged ${branchName}`);
|
|
39
|
+
// delete all tags that were not created in current branch
|
|
40
|
+
deleteTags(`git tag -l --merged ${branchName}`, tagsFromOtherBranches);
|
|
41
|
+
console.log('Last two tags: ');
|
|
42
|
+
execSync('git tag --sort=-creatordate | head -n 2', execaOptions);
|
|
43
|
+
}
|
|
44
|
+
} catch (error) {
|
|
45
|
+
// eslint-disable-next-line no-console
|
|
46
|
+
console.error(error);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const path = require('path');
|
|
2
|
+
const { readFile, writeFile } = require('fs/promises');
|
|
3
|
+
const { findMonoRepoRoot } = require('./utils');
|
|
4
|
+
|
|
5
|
+
const monorepoRoot = findMonoRepoRoot();
|
|
6
|
+
|
|
7
|
+
const getLernaVersion = async () => {
|
|
8
|
+
const lernaConfig = JSON.parse(
|
|
9
|
+
await readFile(path.join(monorepoRoot, 'lerna.json'), 'utf8'),
|
|
10
|
+
);
|
|
11
|
+
return lernaConfig?.version;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.updateRootPackageVersion = async () => {
|
|
15
|
+
const newVersion = await getLernaVersion();
|
|
16
|
+
const pkgJSON = JSON.parse(await readFile('./package.json', 'utf8'));
|
|
17
|
+
pkgJSON.version = newVersion;
|
|
18
|
+
await writeFile(
|
|
19
|
+
path.join(monorepoRoot, 'package.json'),
|
|
20
|
+
JSON.stringify(pkgJSON, null, 2),
|
|
21
|
+
);
|
|
22
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const fg = require('fast-glob');
|
|
2
|
+
const { readFile, writeFile } = require('fs/promises');
|
|
3
|
+
const normalizePath = require('normalize-path');
|
|
4
|
+
const { findMonoRepoRoot } = require('./utils');
|
|
5
|
+
|
|
6
|
+
const monorepoRoot = normalizePath(findMonoRepoRoot());
|
|
7
|
+
|
|
8
|
+
exports.useRegistryVersion = async () => {
|
|
9
|
+
const files = await fg([
|
|
10
|
+
`${monorepoRoot}/libs/*/package.json`,
|
|
11
|
+
`${monorepoRoot}/apps/*/package.json`,
|
|
12
|
+
`${monorepoRoot}/package.json`,
|
|
13
|
+
]);
|
|
14
|
+
Promise.all(
|
|
15
|
+
files.map(async (file) => {
|
|
16
|
+
let pkgJSONData = await readFile(file, 'utf8');
|
|
17
|
+
const pkgVersion = JSON.parse(pkgJSONData).version;
|
|
18
|
+
pkgJSONData = pkgJSONData.replace(/workspace:\*/g, pkgVersion);
|
|
19
|
+
await writeFile(file, pkgJSONData);
|
|
20
|
+
}),
|
|
21
|
+
);
|
|
22
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const fg = require('fast-glob');
|
|
2
|
+
const { readFile, writeFile } = require('fs/promises');
|
|
3
|
+
const normalizePath = require('normalize-path');
|
|
4
|
+
const { findMonoRepoRoot } = require('./utils');
|
|
5
|
+
|
|
6
|
+
const monorepoRoot = normalizePath(findMonoRepoRoot());
|
|
7
|
+
|
|
8
|
+
exports.useWorspaceVersion = async () => {
|
|
9
|
+
const files = await fg([
|
|
10
|
+
`${monorepoRoot}/libs/*/package.json`,
|
|
11
|
+
`${monorepoRoot}/apps/*/package.json`,
|
|
12
|
+
`${monorepoRoot}/package.json`,
|
|
13
|
+
]);
|
|
14
|
+
Promise.all(
|
|
15
|
+
files.map(async (file) => {
|
|
16
|
+
let pkgJSONData = await readFile(file, 'utf8');
|
|
17
|
+
const pkgVersion = JSON.parse(pkgJSONData).version;
|
|
18
|
+
pkgJSONData = pkgJSONData.replace(
|
|
19
|
+
new RegExp(pkgVersion, 'g'),
|
|
20
|
+
'workspace:*',
|
|
21
|
+
);
|
|
22
|
+
pkgJSONData = pkgJSONData.replace(
|
|
23
|
+
/"version": "workspace:\*"/g,
|
|
24
|
+
`"version": "${pkgVersion}"`,
|
|
25
|
+
);
|
|
26
|
+
await writeFile(file, pkgJSONData);
|
|
27
|
+
}),
|
|
28
|
+
);
|
|
29
|
+
};
|
package/lib/monorepo/utils.js
CHANGED
|
@@ -4,7 +4,7 @@ const { sync: findUp } = require('find-up');
|
|
|
4
4
|
const WORKSPACE_DIR_ENV_VAR = 'NPM_CONFIG_WORKSPACE_DIR';
|
|
5
5
|
const WORKSPACE_MANIFEST_FILENAME = 'pnpm-workspace.yaml';
|
|
6
6
|
|
|
7
|
-
exports.
|
|
7
|
+
exports.findMonoRepoRoot = (cwd = process.cwd()) => {
|
|
8
8
|
const workspaceManifestDirEnvVar =
|
|
9
9
|
process.env[WORKSPACE_DIR_ENV_VAR] ??
|
|
10
10
|
process.env[WORKSPACE_DIR_ENV_VAR.toLowerCase()];
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
const path = require('path');
|
|
2
|
+
const normalizePath = require('normalize-path');
|
|
2
3
|
const { getAppConfig, getAssetPath } = require('../webpack/helpers');
|
|
3
4
|
const swcrcConfig = require('../transpile/swcrc.config.js');
|
|
4
|
-
|
|
5
|
-
const name = '@elliemae/pui-cli';
|
|
6
|
-
const rootDir = path.join('<rootDir>', 'node_modules', name);
|
|
5
|
+
const { findMonoRepoRoot } = require('../monorepo/utils');
|
|
7
6
|
|
|
8
7
|
let isReactModule = true;
|
|
9
8
|
try {
|
|
@@ -15,19 +14,16 @@ try {
|
|
|
15
14
|
isReactModule = false;
|
|
16
15
|
}
|
|
17
16
|
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
console.log(ex);
|
|
29
|
-
return '<rootDir>';
|
|
30
|
-
}
|
|
17
|
+
const getMockFilePath = (fileName) =>
|
|
18
|
+
normalizePath(path.resolve(__dirname, './mocks', fileName));
|
|
19
|
+
|
|
20
|
+
const getNodeModulesPath = (fileName) => {
|
|
21
|
+
const monorepoRoot = findMonoRepoRoot(process.cwd());
|
|
22
|
+
return normalizePath(
|
|
23
|
+
monorepoRoot
|
|
24
|
+
? path.join(monorepoRoot, 'node_modules', fileName)
|
|
25
|
+
: `<rootDir>/node_modules/${fileName}`,
|
|
26
|
+
);
|
|
31
27
|
};
|
|
32
28
|
|
|
33
29
|
const jestConfig = {
|
|
@@ -59,23 +55,25 @@ const jestConfig = {
|
|
|
59
55
|
coverageReporters: ['lcov', 'html', 'text-summary'],
|
|
60
56
|
moduleDirectories: ['node_modules', 'app', 'lib'],
|
|
61
57
|
moduleNameMapper: {
|
|
62
|
-
'.*\\webpack-hmr(.[t|j]s)?$':
|
|
63
|
-
'.*\\.(css|scss)$':
|
|
64
|
-
'.*\\.(jpg|jpeg|png|gif|eot|otf|webp|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|ico)$':
|
|
65
|
-
|
|
66
|
-
'.*\\.
|
|
67
|
-
'
|
|
68
|
-
'@elliemae/pui-user-monitoring':
|
|
69
|
-
'@elliemae/pui-app-loader':
|
|
70
|
-
'@elliemae/pui-diagnostics':
|
|
71
|
-
'react-spring/web': '
|
|
72
|
-
'react-spring/renderprops':
|
|
73
|
-
'
|
|
74
|
-
|
|
75
|
-
|
|
58
|
+
'.*\\webpack-hmr(.[t|j]s)?$': getMockFilePath('webpack-hmr.js'),
|
|
59
|
+
'.*\\.(css|scss)$': getMockFilePath('cssModule.js'),
|
|
60
|
+
'.*\\.(jpg|jpeg|png|gif|eot|otf|webp|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|ico)$':
|
|
61
|
+
getMockFilePath('image.js'),
|
|
62
|
+
'.*\\.svg$': getMockFilePath('svg.js'),
|
|
63
|
+
'.*\\.(html)$': getMockFilePath('html.js'),
|
|
64
|
+
'@elliemae/pui-user-monitoring': getMockFilePath('pui-user-monitoring.js'),
|
|
65
|
+
'@elliemae/pui-app-loader': getMockFilePath('webpack-hmr.js'),
|
|
66
|
+
'@elliemae/pui-diagnostics': getMockFilePath('pui-app-loader.js'),
|
|
67
|
+
'react-spring/web': getNodeModulesPath('react-spring/web.cjs.js'),
|
|
68
|
+
'react-spring/renderprops': getNodeModulesPath(
|
|
69
|
+
'react-spring/renderprops.cjs.js',
|
|
70
|
+
),
|
|
71
|
+
'styled-components': getNodeModulesPath(
|
|
72
|
+
'styled-components/dist/styled-components.cjs.js',
|
|
73
|
+
),
|
|
76
74
|
},
|
|
77
75
|
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
|
|
78
|
-
setupFilesAfterEnv: [
|
|
76
|
+
setupFilesAfterEnv: [path.resolve(__dirname, './setup-tests.js')],
|
|
79
77
|
setupFiles: ['raf/polyfill', 'whatwg-fetch'],
|
|
80
78
|
testRegex: '(app|lib).*/tests/.*\\.test\\.[jt]sx?$',
|
|
81
79
|
snapshotSerializers: [],
|
|
@@ -97,7 +95,7 @@ const jestConfig = {
|
|
|
97
95
|
|
|
98
96
|
if (isReactModule && jestConfig.setupFilesAfterEnv)
|
|
99
97
|
jestConfig.setupFilesAfterEnv.push(
|
|
100
|
-
|
|
98
|
+
path.resolve(__dirname, './setup-react-env.js'),
|
|
101
99
|
);
|
|
102
100
|
|
|
103
101
|
exports.jestConfig = jestConfig;
|
package/lib/webpack/helpers.js
CHANGED
|
@@ -4,7 +4,7 @@ const fs = require('fs');
|
|
|
4
4
|
const _ = require('lodash');
|
|
5
5
|
const CompressionPlugin = require('compression-webpack-plugin');
|
|
6
6
|
const zlib = require('zlib');
|
|
7
|
-
const {
|
|
7
|
+
const { findMonoRepoRoot } = require('../monorepo/utils');
|
|
8
8
|
|
|
9
9
|
let pathSep = path.sep;
|
|
10
10
|
if (pathSep === '\\')
|
|
@@ -68,7 +68,7 @@ const mapToFolder = (dependencies, folder) =>
|
|
|
68
68
|
);
|
|
69
69
|
|
|
70
70
|
const getAlias = () => {
|
|
71
|
-
const monorepoRoot =
|
|
71
|
+
const monorepoRoot = findMonoRepoRoot(process.cwd()) || '';
|
|
72
72
|
return mapToFolder(
|
|
73
73
|
[
|
|
74
74
|
'@babel/runtime',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/pui-cli",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.6.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "ICE MT UI Platform CLI",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -63,38 +63,38 @@
|
|
|
63
63
|
"@babel/preset-react": "~7.16.7",
|
|
64
64
|
"@babel/preset-typescript": "~7.16.7",
|
|
65
65
|
"@babel/runtime": "~7.17.2",
|
|
66
|
-
"@commitlint/cli": "~16.1
|
|
67
|
-
"@commitlint/config-conventional": "~16.
|
|
66
|
+
"@commitlint/cli": "~16.2.1",
|
|
67
|
+
"@commitlint/config-conventional": "~16.2.1",
|
|
68
68
|
"@elliemae/browserslist-config-elliemae-latest-browsers": "~1.3.0",
|
|
69
69
|
"@faker-js/faker": "6.0.0-alpha.6",
|
|
70
70
|
"@pmmmwh/react-refresh-webpack-plugin": "~0.5.4",
|
|
71
71
|
"@semantic-release/changelog": "~6.0.1",
|
|
72
72
|
"@semantic-release/exec": "~6.0.3",
|
|
73
73
|
"@semantic-release/git": "~10.0.1",
|
|
74
|
-
"@storybook/addon-a11y": "~6.4.
|
|
75
|
-
"@storybook/addon-essentials": "~6.4.
|
|
74
|
+
"@storybook/addon-a11y": "~6.4.19",
|
|
75
|
+
"@storybook/addon-essentials": "~6.4.19",
|
|
76
76
|
"@storybook/addon-events": "~6.2.9",
|
|
77
|
-
"@storybook/addon-interactions": "~6.4.
|
|
78
|
-
"@storybook/addon-links": "~6.4.
|
|
79
|
-
"@storybook/addon-storysource": "~6.4.
|
|
80
|
-
"@storybook/builder-webpack5": "~6.4.
|
|
81
|
-
"@storybook/manager-webpack5": "~6.4.
|
|
82
|
-
"@storybook/react": "~6.4.
|
|
83
|
-
"@storybook/theming": "~6.4.
|
|
77
|
+
"@storybook/addon-interactions": "~6.4.19",
|
|
78
|
+
"@storybook/addon-links": "~6.4.19",
|
|
79
|
+
"@storybook/addon-storysource": "~6.4.19",
|
|
80
|
+
"@storybook/builder-webpack5": "~6.4.19",
|
|
81
|
+
"@storybook/manager-webpack5": "~6.4.19",
|
|
82
|
+
"@storybook/react": "~6.4.19",
|
|
83
|
+
"@storybook/theming": "~6.4.19",
|
|
84
84
|
"@stylelint/postcss-css-in-js": "~0.37.2",
|
|
85
85
|
"@svgr/webpack": "~6.2.1",
|
|
86
86
|
"@swc/cli": "~0.1.55",
|
|
87
|
-
"@swc/core": "~1.2.
|
|
87
|
+
"@swc/core": "~1.2.139",
|
|
88
88
|
"@swc/jest": "~0.2.17",
|
|
89
89
|
"@testing-library/jest-dom": "~5.16.2",
|
|
90
90
|
"@testing-library/react": "~12.1.2",
|
|
91
91
|
"@testing-library/react-hooks": "~7.0.2",
|
|
92
92
|
"@types/jest": "~27.4.0",
|
|
93
|
-
"@types/node": "~17.0.
|
|
93
|
+
"@types/node": "~17.0.18",
|
|
94
94
|
"@types/rimraf": "~3.0.2",
|
|
95
95
|
"@types/testing-library__jest-dom": "~5.14.2",
|
|
96
|
-
"@typescript-eslint/eslint-plugin": "~5.
|
|
97
|
-
"@typescript-eslint/parser": "~5.
|
|
96
|
+
"@typescript-eslint/eslint-plugin": "~5.12.0",
|
|
97
|
+
"@typescript-eslint/parser": "~5.12.0",
|
|
98
98
|
"autoprefixer": "~10.4.2",
|
|
99
99
|
"axe-core": "~4.4.1",
|
|
100
100
|
"babel-loader": "~8.2.3",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"esbuild": "~0.14.21",
|
|
133
133
|
"esbuild-loader": "~2.18.0",
|
|
134
134
|
"esbuild-plugin-svgr": "~1.0.0",
|
|
135
|
-
"eslint": "~8.
|
|
135
|
+
"eslint": "~8.9.0",
|
|
136
136
|
"eslint-config-airbnb": "~19.0.4",
|
|
137
137
|
"eslint-config-airbnb-base": "~15.0.0",
|
|
138
138
|
"eslint-config-airbnb-typescript": "~16.1.0",
|
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
"eslint-plugin-eslint-comments": "~3.2.0",
|
|
146
146
|
"eslint-plugin-import": "~2.25.4",
|
|
147
147
|
"eslint-plugin-jest": "~26.1.0",
|
|
148
|
-
"eslint-plugin-jsdoc": "~37.9.
|
|
148
|
+
"eslint-plugin-jsdoc": "~37.9.1",
|
|
149
149
|
"eslint-plugin-jsx-a11y": "~6.5.1",
|
|
150
150
|
"eslint-plugin-mdx": "~1.16.0",
|
|
151
151
|
"eslint-plugin-prettier": "~4.0.0",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"express-static-gzip": "~2.1.4",
|
|
162
162
|
"favicons": "~6.2.2",
|
|
163
163
|
"favicons-webpack-plugin": "~5.0.2",
|
|
164
|
+
"fast-glob": "~3.2.11",
|
|
164
165
|
"find-up": "~5.0.0",
|
|
165
166
|
"happy-dom": "~2.31.1",
|
|
166
167
|
"helmet-csp": "~3.4.0",
|
|
@@ -176,7 +177,7 @@
|
|
|
176
177
|
"jest-styled-components": "~7.0.8",
|
|
177
178
|
"jscodeshift": "~0.13.1",
|
|
178
179
|
"jsdoc": "~3.6.10",
|
|
179
|
-
"lint-staged": "~12.3.
|
|
180
|
+
"lint-staged": "~12.3.4",
|
|
180
181
|
"mini-css-extract-plugin": "~2.5.3",
|
|
181
182
|
"minimist": "~1.2.5",
|
|
182
183
|
"moment": "~2.29.1",
|
|
@@ -185,6 +186,7 @@
|
|
|
185
186
|
"node-gyp": "~8.4.1",
|
|
186
187
|
"node-plop": "~0.30.0",
|
|
187
188
|
"nodemon": "~2.0.15",
|
|
189
|
+
"normalize-path": "~3.0.0",
|
|
188
190
|
"npm-check-updates": "12.3.0",
|
|
189
191
|
"null-loader": "~4.0.1",
|
|
190
192
|
"pino": "~7.6.5",
|
|
@@ -196,7 +198,7 @@
|
|
|
196
198
|
"postcss-jsx": "~0.36.4",
|
|
197
199
|
"postcss-loader": "~6.2.1",
|
|
198
200
|
"postcss-markdown": "~1.2.0",
|
|
199
|
-
"postcss-preset-env": "~7.3.
|
|
201
|
+
"postcss-preset-env": "~7.3.3",
|
|
200
202
|
"postcss-syntax": "~0.36.2",
|
|
201
203
|
"prettier": "~2.5.1",
|
|
202
204
|
"pug": "~3.0.2",
|
|
@@ -227,8 +229,8 @@
|
|
|
227
229
|
"update-notifier": "~5.1.0",
|
|
228
230
|
"url-loader": "~4.1.1",
|
|
229
231
|
"uuid": "~8.3.2",
|
|
230
|
-
"vite": "~2.8.
|
|
231
|
-
"vitest": "~0.3.
|
|
232
|
+
"vite": "~2.8.2",
|
|
233
|
+
"vitest": "~0.3.5",
|
|
232
234
|
"webpack": "~5.65.0",
|
|
233
235
|
"webpack-bundle-analyzer": "~4.5.0",
|
|
234
236
|
"webpack-cli": "~4.9.2",
|