@elliemae/pui-cli 5.17.3 → 6.0.0-beta.11

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.
@@ -1,8 +1,10 @@
1
+ /* eslint-disable max-lines */
1
2
  const { exit } = require('yargs');
2
3
  const path = require('path');
3
4
  const { writeFile, readFile } = require('fs/promises');
4
5
  const { exec, logInfo, logError, logSuccess } = require('./utils');
5
6
  const { isTypeScriptEnabled } = require('../typescript/util');
7
+ const { esBuild } = require('../esbuild');
6
8
 
7
9
  const { name } = require('../../package.json');
8
10
 
@@ -37,14 +39,9 @@ async function createPackageJson(file, commonJS, sideEffects) {
37
39
  await writeFile(file, packageJSON);
38
40
  }
39
41
 
40
- async function nodeBuild({ srcPath, commonJS, emitModuleType, target }) {
42
+ async function nodeBuild({ srcPath, commonJS, emitModuleType }) {
41
43
  const outDir = `./dist/${commonJS ? 'cjs' : 'es'}`;
42
- const targetEnv = target === 'node' ? 'TARGET_ENV=node' : '';
43
- const babelEnv = commonJS ? ' ES_MODULES=false' : '';
44
- await exec(
45
- `cross-env NODE_ENV=production MODULE_EXTENSIONS=true ${targetEnv}${babelEnv} babel --extensions ".ts,.tsx,.js,.jsx" ${srcPath} --out-dir ${outDir} --copy-files --no-copy-ignored --ignore **/*.test.js --ignore **/*.test.ts --ignore **/*.spec.js --ignore **/*.spec.ts --ignore **/*.test.jsx --ignore **/*.test.tsx --ignore **/*.spec.jsx --ignore **/*.spec.tsx`,
46
- { shell: true, stdio: 'inherit' },
47
- );
44
+ await esBuild({ srcPath, commonJS });
48
45
  if (emitModuleType) {
49
46
  const sideEffects = await getSideEffects();
50
47
  await createPackageJson(
@@ -79,7 +76,6 @@ async function pack({ production, target, module, srcPath, emitModuleType }) {
79
76
  srcPath,
80
77
  commonJS: false,
81
78
  emitModuleType,
82
- target,
83
79
  });
84
80
  }
85
81
  }
@@ -118,7 +114,6 @@ exports.builder = {
118
114
  },
119
115
  emitModuleType: {
120
116
  type: 'boolean',
121
- // eslint-disable-next-line max-lines
122
117
  default: true,
123
118
  description:
124
119
  'creates type attribute in the package.json and sets its value to commonjs or module based on module cli argument. default: true',
package/lib/esbuild.js ADDED
@@ -0,0 +1,44 @@
1
+ const esbuild = require('esbuild');
2
+ const fg = require('fast-glob');
3
+
4
+ const ESBUILD_TARGET = 'es2020';
5
+
6
+ const commonConfig = {
7
+ bundle: false,
8
+ target: ESBUILD_TARGET,
9
+ loader: { '.js': 'jsx' },
10
+ mainFields: ['module', 'browser', 'main'],
11
+ };
12
+
13
+ const outDir = 'dist';
14
+
15
+ const build = async ({ srcPath, commonJS }) => {
16
+ const inputFiles = [
17
+ `${srcPath}/**/*.{js,jsx,ts,tsx}`,
18
+ `!${srcPath}/**/*.test.{js,jsx,ts,tsx}`,
19
+ `!${srcPath}/**/*.stories.{js,jsx,ts,tsx}`,
20
+ `!${srcPath}/**/*.endpoint.{js,jsx,ts,tsx}`,
21
+ ];
22
+ if (!commonJS) {
23
+ const entryPoints = await fg(inputFiles);
24
+ await esbuild.build({
25
+ entryPoints,
26
+ ...commonConfig,
27
+ outdir: `${outDir}/es`,
28
+ format: 'esm',
29
+ });
30
+ } else {
31
+ const commonJSEntryPoints = await fg(
32
+ inputFiles.concat([`${srcPath}/**/*.cjs`]),
33
+ );
34
+ await esbuild.build({
35
+ entryPoints: commonJSEntryPoints,
36
+ ...commonConfig,
37
+ outdir: `${outDir}/cjs`,
38
+ format: 'cjs',
39
+ });
40
+ }
41
+ };
42
+
43
+ exports.esBuild = build;
44
+ exports.ESBUILD_TARGET = ESBUILD_TARGET;
@@ -9,6 +9,7 @@ exports.baseExtends = [
9
9
  'plugin:jsdoc/recommended',
10
10
  'plugin:wdio/recommended',
11
11
  'plugin:testing-library/dom',
12
+ 'plugin:storybook/recommended',
12
13
  ];
13
14
 
14
15
  const basePlugins = ['testing-library', 'jest', 'jsdoc', 'wdio'];
@@ -13,8 +13,11 @@ const { loadRoutes } = require('./util');
13
13
  const { getAssetPath } = require('../webpack/helpers');
14
14
 
15
15
  const pino = expressPinoLogger({
16
- prettyPrint: {
17
- levelFirst: true,
16
+ transport: {
17
+ target: 'pino-pretty',
18
+ options: {
19
+ colorize: true,
20
+ },
18
21
  },
19
22
  });
20
23
  pino.logger.level = 'warn';
@@ -1,3 +1,5 @@
1
- module.exports = {
2
- ReactComponent: 'IMAGE_MOCK',
3
- };
1
+ // eslint-disable-next-line no-unused-vars
2
+ import * as React from 'react';
3
+
4
+ export default 'SvgrURL';
5
+ export const ReactComponent = 'div';
@@ -7,7 +7,7 @@ const DuplicatePackageCheckerPlugin = require('duplicate-package-checker-webpack
7
7
  const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
8
8
  const MomentLocalesPlugin = require('moment-locales-webpack-plugin');
9
9
  const { WebpackManifestPlugin } = require('webpack-manifest-plugin');
10
- const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
10
+ const { ProvidePlugin } = require('webpack');
11
11
 
12
12
  const {
13
13
  excludeNodeModulesExcept,
@@ -15,12 +15,10 @@ const {
15
15
  modulesToTranspile,
16
16
  getAlias,
17
17
  getPaths,
18
- getMediaPath,
19
18
  } = require('./helpers');
20
- const { isTypeScriptEnabled } = require('../typescript/util');
19
+ const { ESBUILD_TARGET } = require('../esbuild');
21
20
 
22
21
  // get the application configuration
23
- const devMode = process.env.NODE_ENV !== 'production';
24
22
  const minicssLoader = {
25
23
  loader: MiniCssExtractPlugin.loader,
26
24
  options: {},
@@ -46,6 +44,10 @@ const plugins = [
46
44
  APP_CONFIG: getAppConfig(),
47
45
  }),
48
46
  new CaseSensitivePathsPlugin(),
47
+ // new ESLintPlugin(),
48
+ new ProvidePlugin({
49
+ React: 'react',
50
+ }),
49
51
  new CopyWebpackPlugin({
50
52
  patterns: [
51
53
  {
@@ -64,21 +66,29 @@ const plugins = [
64
66
  {
65
67
  from: 'node_modules/@elliemae/pui-user-monitoring/dist/public/js',
66
68
  to: 'js',
69
+ toType: 'dir',
70
+ info: { minimized: true },
67
71
  },
68
72
  {
69
- from: 'node_modules/@elliemae/pui-app-loader/dist/public/js/emuiAppLoader*.js',
70
- to: 'js/[name][ext]',
73
+ from: 'node_modules/@elliemae/pui-app-loader/dist/public/js',
74
+ to: 'js',
75
+ toType: 'dir',
71
76
  noErrorOnMissing: true,
77
+ info: { minimized: true },
72
78
  },
73
79
  {
74
- from: 'node_modules/@elliemae/encw-loader/dist/public/js/emuiEncwLoader*.js',
75
- to: 'js/[name][ext]',
80
+ from: 'node_modules/@elliemae/encw-loader/dist/public/js',
81
+ to: 'js',
82
+ toType: 'dir',
76
83
  noErrorOnMissing: true,
84
+ info: { minimized: true },
77
85
  },
78
86
  {
79
- from: 'node_modules/@elliemae/pui-diagnostics/dist/public/js/emuiDiagnostics*.js',
80
- to: 'js/[name][ext]',
87
+ from: 'node_modules/@elliemae/pui-diagnostics/dist/public/js',
88
+ to: 'js',
89
+ toType: 'dir',
81
90
  noErrorOnMissing: true,
91
+ info: { minimized: true },
82
92
  },
83
93
  {
84
94
  from: 'public',
@@ -96,17 +106,6 @@ const plugins = [
96
106
  new WebpackManifestPlugin(),
97
107
  ];
98
108
 
99
- if (isTypeScriptEnabled()) {
100
- plugins.push(
101
- new ForkTsCheckerWebpackPlugin({
102
- async: devMode,
103
- eslint: {
104
- files: './app/**/*.{ts,js,tsx,jsx}',
105
- },
106
- }),
107
- );
108
- }
109
-
110
109
  module.exports = (options) => ({
111
110
  mode: options.mode,
112
111
  entry: options.entry,
@@ -153,17 +152,30 @@ module.exports = (options) => ({
153
152
  ],
154
153
  },
155
154
  {
156
- test: /\.(js|ts|jsx|tsx)$/,
155
+ test: /\.(js|jsx)$/,
157
156
  exclude: excludeNodeModulesExcept(modulesToTranspile),
158
157
  resolve: {
159
158
  fullySpecified: false,
160
159
  },
161
160
  use: {
162
- loader: 'babel-loader',
161
+ loader: 'esbuild-loader',
163
162
  options: {
164
- cacheDirectory: true,
165
- compact: !devMode,
166
- ...(options.babelQuery || {}),
163
+ loader: 'jsx',
164
+ target: ESBUILD_TARGET,
165
+ },
166
+ },
167
+ },
168
+ {
169
+ test: /\.(ts|tsx)$/,
170
+ exclude: excludeNodeModulesExcept(modulesToTranspile),
171
+ resolve: {
172
+ fullySpecified: false,
173
+ },
174
+ use: {
175
+ loader: 'esbuild-loader',
176
+ options: {
177
+ loader: 'tsx',
178
+ target: ESBUILD_TARGET,
167
179
  },
168
180
  },
169
181
  },
@@ -178,6 +190,13 @@ module.exports = (options) => ({
178
190
  sourceMap: true,
179
191
  },
180
192
  },
193
+ {
194
+ loader: 'esbuild-loader',
195
+ options: {
196
+ loader: 'css',
197
+ minify: options.mode === 'production',
198
+ },
199
+ },
181
200
  {
182
201
  loader: 'postcss-loader',
183
202
  options: {
@@ -195,22 +214,16 @@ module.exports = (options) => ({
195
214
  type: 'asset/resource',
196
215
  },
197
216
  {
198
- test: /\.svg$/,
199
- exclude: excludeNodeModulesExcept(['@elliemae/*']),
200
- use: [
201
- {
202
- loader: '@svgr/webpack',
203
- },
204
- {
205
- loader: 'file-loader',
206
- options: {
207
- name: getMediaPath(),
208
- },
209
- },
210
- ],
217
+ type: 'asset',
218
+ resourceQuery: /url/, // *.svg?react
219
+ },
220
+ {
221
+ test: /\.svg$/i,
222
+ issuer: /\.[jt]sx?$/,
223
+ use: ['@svgr/webpack'],
211
224
  },
212
225
  {
213
- test: /\.(jpe?g|png|gif)$/i,
226
+ test: /\.(jpe?g|png|gif|ico)$/i,
214
227
  exclude: excludeNodeModulesExcept(['@elliemae/*']),
215
228
  type: 'asset',
216
229
  },
@@ -26,6 +26,14 @@ const {
26
26
  const devConfig = {
27
27
  mode: 'development',
28
28
 
29
+ cache: {
30
+ type: 'filesystem',
31
+ allowCollectingMemory: true,
32
+ buildDependencies: {
33
+ config: [__filename],
34
+ },
35
+ },
36
+
29
37
  // Add hot reloading in development
30
38
  entry: {
31
39
  app: [
@@ -10,7 +10,6 @@ const PostcssPresetEnv = require('postcss-preset-env');
10
10
  const DuplicatePackageCheckerPlugin = require('duplicate-package-checker-webpack-plugin');
11
11
  const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
12
12
  const MomentLocalesPlugin = require('moment-locales-webpack-plugin');
13
- const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
14
13
 
15
14
  const {
16
15
  excludeNodeModulesExcept,
@@ -19,11 +18,9 @@ const {
19
18
  modulesToTranspile,
20
19
  getAssetPath,
21
20
  getAlias,
22
- getMediaPath,
23
21
  } = require('./helpers');
24
- const { isTypeScriptEnabled } = require('../typescript/util');
22
+ const { ESBUILD_TARGET } = require('../esbuild');
25
23
 
26
- const devMode = process.env.NODE_ENV !== 'production';
27
24
  const minicssLoader = {
28
25
  loader: MiniCssExtractPlugin.loader,
29
26
  options: {},
@@ -62,17 +59,6 @@ const plugins = [
62
59
  new MomentLocalesPlugin(),
63
60
  ];
64
61
 
65
- if (isTypeScriptEnabled()) {
66
- plugins.push(
67
- new ForkTsCheckerWebpackPlugin({
68
- async: devMode,
69
- eslint: {
70
- files: './lib/**/*.{ts,js,tsx,jsx}',
71
- },
72
- }),
73
- );
74
- }
75
-
76
62
  module.exports = (options) => ({
77
63
  mode: options.mode,
78
64
  entry: [path.join(process.cwd(), 'lib/index')],
@@ -126,11 +112,10 @@ module.exports = (options) => ({
126
112
  fullySpecified: false,
127
113
  },
128
114
  use: {
129
- loader: 'babel-loader',
115
+ loader: 'esbuild-loader',
130
116
  options: {
131
- cacheDirectory: true,
132
- compact: !devMode,
133
- ...(options.babelQuery || {}),
117
+ loader: 'jsx',
118
+ target: ESBUILD_TARGET,
134
119
  },
135
120
  },
136
121
  },
@@ -186,22 +171,16 @@ module.exports = (options) => ({
186
171
  type: 'asset/resource',
187
172
  },
188
173
  {
189
- test: /\.svg$/,
190
- exclude: excludeNodeModulesExcept(['@elliemae/*']),
191
- use: [
192
- {
193
- loader: '@svgr/webpack',
194
- },
195
- {
196
- loader: 'file-loader',
197
- options: {
198
- name: getMediaPath(),
199
- },
200
- },
201
- ],
174
+ type: 'asset',
175
+ resourceQuery: /url/, // *.svg?react
176
+ },
177
+ {
178
+ test: /\.svg$/i,
179
+ issuer: /\.[jt]sx?$/,
180
+ use: ['@svgr/webpack'],
202
181
  },
203
182
  {
204
- test: /\.(jpe?g|png|gif)$/i,
183
+ test: /\.(jpe?g|png|gif|ico)$/i,
205
184
  exclude: excludeNodeModulesExcept(['@elliemae/*']),
206
185
  type: 'asset',
207
186
  },
@@ -1,11 +1,11 @@
1
1
  const path = require('path');
2
- const TerserPlugin = require('terser-webpack-plugin');
3
2
  const CompressionPlugin = require('compression-webpack-plugin');
4
3
  const MiniCssExtractPlugin = require('mini-css-extract-plugin');
5
4
  const HtmlWebpackPlugin = require('html-webpack-plugin');
6
- const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
7
5
  const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
6
+ const { ESBuildMinifyPlugin } = require('esbuild-loader');
8
7
  const { getLibraryName } = require('./helpers');
8
+ const { ESBUILD_TARGET } = require('../esbuild');
9
9
 
10
10
  const libraryName = getLibraryName();
11
11
 
@@ -23,17 +23,10 @@ module.exports = require('./webpack.lib.base.babel')({
23
23
  moduleIds: 'deterministic',
24
24
  minimize: true,
25
25
  minimizer: [
26
- new TerserPlugin({
27
- terserOptions: {
28
- compress: {
29
- comparisons: false,
30
- },
31
- format: {
32
- comments: false,
33
- },
34
- },
26
+ new ESBuildMinifyPlugin({
27
+ target: ESBUILD_TARGET,
28
+ css: true,
35
29
  }),
36
- new CssMinimizerPlugin(),
37
30
  ],
38
31
  nodeEnv: 'production',
39
32
  sideEffects: true,
@@ -1,11 +1,11 @@
1
+ /* eslint-disable max-lines */
1
2
  const path = require('path');
2
3
  const HtmlWebpackPlugin = require('html-webpack-plugin');
3
4
  const { GenerateSW } = require('workbox-webpack-plugin');
4
- const TerserPlugin = require('terser-webpack-plugin');
5
5
  const CompressionPlugin = require('compression-webpack-plugin');
6
6
  const MiniCssExtractPlugin = require('mini-css-extract-plugin');
7
- const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
8
7
  const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
8
+ const { ESBuildMinifyPlugin } = require('esbuild-loader');
9
9
 
10
10
  const baseConfigFactory = require('./webpack.base.babel');
11
11
  const {
@@ -16,6 +16,7 @@ const {
16
16
  getAppVersion,
17
17
  isGoogleTagManagerEnabled,
18
18
  } = require('./helpers');
19
+ const { ESBUILD_TARGET } = require('../esbuild');
19
20
 
20
21
  const getProdConfig = ({ latestVersion = true } = {}) => {
21
22
  const { buildPath, publicPath } = getPaths(latestVersion);
@@ -39,17 +40,10 @@ const getProdConfig = ({ latestVersion = true } = {}) => {
39
40
  optimization: {
40
41
  moduleIds: 'deterministic',
41
42
  minimizer: [
42
- new TerserPlugin({
43
- terserOptions: {
44
- compress: {
45
- comparisons: false,
46
- },
47
- format: {
48
- comments: false,
49
- },
50
- },
43
+ new ESBuildMinifyPlugin({
44
+ target: ESBUILD_TARGET,
45
+ css: true,
51
46
  }),
52
- new CssMinimizerPlugin(),
53
47
  ],
54
48
  runtimeChunk: true,
55
49
  splitChunks: {
@@ -78,7 +72,13 @@ const getProdConfig = ({ latestVersion = true } = {}) => {
78
72
  filename: '[path][base].gz',
79
73
  algorithm: 'gzip',
80
74
  test: /\.js$|\.css$$/,
81
- exclude: [/\/adrum-ext/, /\/emuiUserMonitoring/],
75
+ exclude: [
76
+ /\/adrum-ext/,
77
+ /\/emuiUserMonitoring/,
78
+ /\/emuiDiagnostics/,
79
+ /\/emuiAppLoader/,
80
+ /\/encwLoader/,
81
+ ],
82
82
  // we are compressing all files since in aws cloudfront edge lambda, we don't want to whitelist files that are not compressed due to below limits
83
83
  minRatio: Number.MAX_SAFE_INTEGER,
84
84
  }),
@@ -120,7 +120,6 @@ const htmlWebpackPlugin = new HtmlWebpackPlugin({
120
120
  ? 'app/index.html'
121
121
  : 'app/index-app-loader.html',
122
122
  minify: {
123
- // eslint-disable-next-line max-lines
124
123
  removeComments: true,
125
124
  collapseWhitespace: true,
126
125
  removeRedundantAttributes: true,
@@ -3,17 +3,14 @@ const webpack = require('webpack');
3
3
  const MiniCssExtractPlugin = require('mini-css-extract-plugin');
4
4
  const CopyWebpackPlugin = require('copy-webpack-plugin');
5
5
  const CompressionPlugin = require('compression-webpack-plugin');
6
- const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
7
6
  const {
8
7
  getAppConfig,
9
8
  isApp,
10
9
  getAlias,
11
10
  excludeNodeModulesExcept,
12
11
  modulesToTranspile,
13
- resolveExtensions,
14
- mainFields,
15
- getMediaPath,
16
12
  } = require('./helpers');
13
+ const { ESBUILD_TARGET } = require('../esbuild');
17
14
 
18
15
  const IS_APP = isApp();
19
16
  const CWD = process.cwd();
@@ -101,9 +98,10 @@ const getModuleRules = () => [
101
98
  fullySpecified: false,
102
99
  },
103
100
  use: {
104
- loader: 'babel-loader',
101
+ loader: 'esbuild-loader',
105
102
  options: {
106
- cacheDirectory: true,
103
+ loader: 'jsx',
104
+ target: ESBUILD_TARGET,
107
105
  },
108
106
  },
109
107
  },
@@ -113,22 +111,16 @@ const getModuleRules = () => [
113
111
  type: 'asset/resource',
114
112
  },
115
113
  {
116
- test: /\.svg$/,
117
- exclude: excludeNodeModulesExcept(['@elliemae/*']),
118
- use: [
119
- {
120
- loader: '@svgr/webpack',
121
- },
122
- {
123
- loader: 'file-loader',
124
- options: {
125
- name: getMediaPath(),
126
- },
127
- },
128
- ],
114
+ type: 'asset',
115
+ resourceQuery: /url/, // *.svg?react
116
+ },
117
+ {
118
+ test: /\.svg$/i,
119
+ issuer: /\.[jt]sx?$/,
120
+ use: ['@svgr/webpack'],
129
121
  },
130
122
  {
131
- test: /\.(jpe?g|png|gif)$/i,
123
+ test: /\.(jpe?g|png|gif|ico)$/i,
132
124
  exclude: excludeNodeModulesExcept(['@elliemae/*']),
133
125
  type: 'asset',
134
126
  },
@@ -155,9 +147,6 @@ exports.webpackFinal = async (config, { configType }) => {
155
147
 
156
148
  config.resolve.alias = { ...config.resolve.alias, ...getAlias() };
157
149
  config.resolve.fallback = { ...config.resolve.fallback, crypto: false };
158
- config.resolve.plugins = (config.resolve.plugins || []).concat([
159
- new TsconfigPathsPlugin({ extensions: resolveExtensions, mainFields }),
160
- ]);
161
150
 
162
151
  config.externals = config.externals || {};
163
152
  config.externals['@elliemae/pui-user-monitoring'] = 'emuiUserMonitoring';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/pui-cli",
3
- "version": "5.17.3",
3
+ "version": "6.0.0-beta.11",
4
4
  "private": false,
5
5
  "description": "EllieMae Platform UI CLI",
6
6
  "sideEffects": false,
@@ -66,38 +66,36 @@
66
66
  "@commitlint/cli": "~15.0.0",
67
67
  "@commitlint/config-conventional": "~15.0.0",
68
68
  "@elliemae/browserslist-config-elliemae": "~1.2.1",
69
- "@pmmmwh/react-refresh-webpack-plugin": "~0.5.2",
69
+ "@pmmmwh/react-refresh-webpack-plugin": "~0.5.3",
70
70
  "@semantic-release/changelog": "~6.0.1",
71
71
  "@semantic-release/exec": "~6.0.2",
72
72
  "@semantic-release/git": "~10.0.1",
73
- "@storybook/addon-a11y": "~6.3.12",
74
- "@storybook/addon-actions": "~6.3.12",
75
- "@storybook/addon-backgrounds": "~6.3.12",
76
- "@storybook/addon-console": "~1.2.3",
77
- "@storybook/addon-controls": "~6.3.12",
78
- "@storybook/addon-docs": "~6.3.12",
73
+ "@storybook/addon-a11y": "~6.4.1",
74
+ "@storybook/addon-actions": "~6.4.1",
75
+ "@storybook/addon-backgrounds": "~6.4.1",
76
+ "@storybook/addon-controls": "~6.4.1",
77
+ "@storybook/addon-docs": "~6.4.1",
79
78
  "@storybook/addon-events": "~6.2.9",
80
- "@storybook/addon-knobs": "~6.3.1",
81
- "@storybook/addon-links": "~6.3.12",
82
- "@storybook/addon-storysource": "~6.3.12",
83
- "@storybook/addon-toolbars": "~6.3.12",
84
- "@storybook/addon-viewport": "~6.3.12",
85
- "@storybook/addons": "~6.3.12",
86
- "@storybook/builder-webpack5": "~6.3.12",
87
- "@storybook/manager-webpack5": "~6.3.12",
88
- "@storybook/react": "~6.3.12",
89
- "@storybook/theming": "~6.3.12",
79
+ "@storybook/addon-links": "~6.4.1",
80
+ "@storybook/addon-storysource": "~6.4.1",
81
+ "@storybook/addon-toolbars": "~6.4.1",
82
+ "@storybook/addon-viewport": "~6.4.1",
83
+ "@storybook/addons": "~6.4.1",
84
+ "@storybook/builder-webpack5": "~6.4.1",
85
+ "@storybook/manager-webpack5": "~6.4.1",
86
+ "@storybook/react": "~6.4.1",
87
+ "@storybook/theming": "~6.4.1",
90
88
  "@stylelint/postcss-css-in-js": "~0.37.2",
91
- "@svgr/webpack": "~5.5.0",
89
+ "@svgr/webpack": "~6.0.0",
92
90
  "@testing-library/jest-dom": "~5.15.1",
93
91
  "@testing-library/react": "~12.1.2",
94
92
  "@testing-library/react-hooks": "~7.0.2",
95
93
  "@types/jest": "~27.0.3",
96
- "@types/node": "~16.11.10",
94
+ "@types/node": "~16.11.11",
97
95
  "@types/rimraf": "~3.0.2",
98
96
  "@types/testing-library__jest-dom": "~5.14.1",
99
- "@typescript-eslint/eslint-plugin": "~5.4.0",
100
- "@typescript-eslint/parser": "~5.4.0",
97
+ "@typescript-eslint/eslint-plugin": "~5.5.0",
98
+ "@typescript-eslint/parser": "~5.5.0",
101
99
  "autoprefixer": "~10.4.0",
102
100
  "axe-core": "~4.3.5",
103
101
  "babel-loader": "~8.2.3",
@@ -108,7 +106,7 @@
108
106
  "babel-plugin-lodash": "~3.3.4",
109
107
  "babel-plugin-module-resolver": "~4.1.0",
110
108
  "babel-plugin-source-map-support": "~2.1.3",
111
- "babel-plugin-styled-components": "~2.0.1",
109
+ "babel-plugin-styled-components": "~2.0.2",
112
110
  "babel-plugin-transform-react-remove-prop-types": "~0.4.24",
113
111
  "babel-plugin-transform-remove-console": "~6.9.4",
114
112
  "babel-plugin-transform-strip-block": "~0.0.4",
@@ -132,6 +130,9 @@
132
130
  "dotenv": "~10.0.0",
133
131
  "dotenv-webpack": "~7.0.3",
134
132
  "duplicate-package-checker-webpack-plugin": "~3.0.0",
133
+ "esbuild": "~0.14.1",
134
+ "esbuild-jest": "~0.5.0",
135
+ "esbuild-loader": "~2.16.0",
135
136
  "eslint": "~8.3.0",
136
137
  "eslint-config-airbnb": "~18.2.1",
137
138
  "eslint-config-airbnb-base": "~15.0.0",
@@ -152,13 +153,14 @@
152
153
  "eslint-plugin-react": "~7.27.1",
153
154
  "eslint-plugin-react-hooks": "~4.3.0",
154
155
  "eslint-plugin-redux-saga": "~1.2.1",
156
+ "eslint-plugin-storybook": "~0.5.1",
155
157
  "eslint-plugin-testing-library": "~5.0.0",
156
158
  "eslint-plugin-wdio": "~7.4.2",
157
159
  "execa": "~5.1.1",
158
160
  "express": "~4.17.1",
159
161
  "express-pino-logger": "~7.0.0",
160
162
  "file-loader": "~6.2.0",
161
- "fork-ts-checker-webpack-plugin": "~6.4.2",
163
+ "fork-ts-checker-webpack-plugin": "~6.5.0",
162
164
  "helmet-csp": "~3.4.0",
163
165
  "html-loader": "~3.0.1",
164
166
  "html-webpack-plugin": "~5.5.0",
@@ -169,7 +171,7 @@
169
171
  "imports-loader": "~3.1.1",
170
172
  "ip": "~1.1.5",
171
173
  "jest-axe": "~5.0.1",
172
- "jest-cli": "~27.3.1",
174
+ "jest-cli": "~27.4.2",
173
175
  "jest-sonar-reporter": "~2.0.0",
174
176
  "jest-styled-components": "~7.0.8",
175
177
  "jscodeshift": "~0.13.0",
@@ -180,22 +182,22 @@
180
182
  "moment": "~2.29.1",
181
183
  "moment-locales-webpack-plugin": "~1.2.0",
182
184
  "msw": "~0.35.0",
183
- "node-plop": "~0.26.3",
185
+ "node-plop": "~0.30.0",
184
186
  "nodemon": "~2.0.15",
185
187
  "npm-check-updates": "12.0.2",
186
188
  "null-loader": "~4.0.1",
187
- "pino": "~7.4.1",
189
+ "pino": "~7.5.0",
188
190
  "pino-pretty": "~7.2.0",
189
191
  "pinst": "~2.1.6",
190
- "plop": "~2.7.6",
191
- "postcss": "~8.4.0",
192
+ "plop": "~3.0.1",
193
+ "postcss": "~8.4.4",
192
194
  "postcss-jsx": "~0.36.4",
193
195
  "postcss-html": "~1.3.0",
194
196
  "postcss-markdown": "~1.2.0",
195
197
  "postcss-syntax": "~0.36.2",
196
- "postcss-loader": "~6.2.0",
198
+ "postcss-loader": "~6.2.1",
197
199
  "postcss-preset-env": "~7.0.1",
198
- "prettier": "~2.4.1",
200
+ "prettier": "~2.5.0",
199
201
  "pug": "~3.0.2",
200
202
  "pug-loader": "~2.4.0",
201
203
  "raf": "~3.4.1",
@@ -210,6 +212,8 @@
210
212
  "semantic-release": "~18.0.1",
211
213
  "shelljs": "~0.8.4",
212
214
  "slackify-markdown": "~4.3.0",
215
+ "storybook-builder-vite": "~0.1.10",
216
+ "storybook-addon-turbo-build": "~1.0.1",
213
217
  "storybook-react-router": "~1.0.8",
214
218
  "style-loader": "~3.3.1",
215
219
  "stylelint": "~14.1.0",
@@ -230,7 +234,8 @@
230
234
  "update-notifier": "~5.1.0",
231
235
  "url-loader": "~4.1.1",
232
236
  "uuid": "~8.3.2",
233
- "webpack": "~5.64.3",
237
+ "vite": "~2.6.14",
238
+ "webpack": "~5.64.4",
234
239
  "webpack-bundle-analyzer": "~4.5.0",
235
240
  "webpack-cli": "~4.9.1",
236
241
  "webpack-dev-middleware": "~5.2.2",