@elliemae/pui-cli 9.0.0-next.1 → 9.0.0-next.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.
@@ -39,7 +39,7 @@ const import_meta = {};
39
39
  const __dirname = import_node_path.default.dirname((0, import_node_url.fileURLToPath)(import_meta.url));
40
40
  const startProdServer = async () => {
41
41
  await (0, import_utils.exec)(
42
- `cross-env NODE_ENV=production ts-node --esm ${import_node_path.default.resolve(
42
+ `cross-env NODE_ENV=production node --no-warnings=ExperimentalWarning --loader ts-node/esm ${import_node_path.default.resolve(
43
43
  __dirname,
44
44
  "../server/index.js"
45
45
  )} --color always`
@@ -36,12 +36,12 @@ var import_utils = require("./utils.js");
36
36
  const buildStoryBook = async (outputDir = "demo", isDoc = false) => {
37
37
  const additionalParams = isDoc ? `--docs -o ${outputDir}/docs` : `-o ${outputDir}`;
38
38
  await (0, import_utils.exec)(
39
- `cross-env NODE_ENV=production build-storybook --quiet ${additionalParams}`
39
+ `cross-env NODE_ENV=production storybook build --quiet ${additionalParams}`
40
40
  );
41
41
  };
42
42
  const startStoryBook = async (isDoc = false) => {
43
43
  await (0, import_utils.exec)(
44
- `cross-env NODE_ENV=development STORYBOOK_BUILD=true start-storybook ${isDoc ? "--docs" : ""} -p 11000 --quiet`
44
+ `cross-env STORYBOOK_BUILD=true storybook dev ${isDoc ? "--docs" : ""} -p 11000 --quiet`
45
45
  );
46
46
  };
47
47
  const cmdArgs = {
@@ -42,9 +42,13 @@ __export(utils_exports, {
42
42
  module.exports = __toCommonJS(utils_exports);
43
43
  var import_node_path = __toESM(require("node:path"), 1);
44
44
  var import_node_fs = __toESM(require("node:fs"), 1);
45
- var import_promises = require("fs/promises");
45
+ var import_promises = require("node:fs/promises");
46
+ var import_node_zlib = require("node:zlib");
47
+ var import_node_stream = require("node:stream");
48
+ var import_node_util = require("node:util");
46
49
  var import_execa = require("execa");
47
50
  var import_chalk = __toESM(require("chalk"), 1);
51
+ var import_fast_glob = __toESM(require("fast-glob"), 1);
48
52
  var import_helpers = require("../webpack/helpers.js");
49
53
  const browsersMapping = {
50
54
  and_chr: "Chrome for Android",
@@ -145,6 +149,37 @@ const updateManifestWithVersionInfo = async (dest) => {
145
149
  manifestData = manifestData.replace(/latest\//g, `${(0, import_helpers.getAppVersion)()}/`);
146
150
  await (0, import_promises.writeFile)(manifestFile, manifestData);
147
151
  };
152
+ const updateRuntimeFile = async (src, dest, version) => {
153
+ const latestJSFolder = "latest/js";
154
+ const pipe = (0, import_node_util.promisify)(import_node_stream.pipeline);
155
+ const results = await (0, import_fast_glob.default)([import_node_path.default.join(src, "runtime~app.*.js")]);
156
+ if (!results?.length)
157
+ throw new Error("Runtime file not found");
158
+ const runtimeFilePath = results[0];
159
+ const runtimeFileName = import_node_path.default.basename(runtimeFilePath);
160
+ const destRuntimeFilePath = import_node_path.default.join(dest, runtimeFileName);
161
+ const runtimeFileData = await (0, import_promises.readFile)(runtimeFilePath, "utf8");
162
+ if (runtimeFileData.includes(latestJSFolder)) {
163
+ await (0, import_promises.writeFile)(
164
+ destRuntimeFilePath,
165
+ runtimeFileData.replace(latestJSFolder, `${version}/js`)
166
+ );
167
+ const sourceMapFile = `${runtimeFilePath}.map`;
168
+ const sourcemap = await (0, import_promises.readFile)(sourceMapFile, "utf8");
169
+ await (0, import_promises.writeFile)(
170
+ `${destRuntimeFilePath}.map`,
171
+ sourcemap.replace(latestJSFolder, `${version}/js`)
172
+ );
173
+ const gzip = (0, import_node_zlib.createGzip)();
174
+ let source = (0, import_node_fs.createReadStream)(destRuntimeFilePath);
175
+ let destination = (0, import_node_fs.createWriteStream)(`${destRuntimeFilePath}.gz`);
176
+ await pipe(source, gzip, destination);
177
+ const brotli = (0, import_node_zlib.createBrotliCompress)();
178
+ source = (0, import_node_fs.createReadStream)(destRuntimeFilePath);
179
+ destination = (0, import_node_fs.createWriteStream)(`${destRuntimeFilePath}.br`);
180
+ await pipe(source, brotli, destination);
181
+ }
182
+ };
148
183
  const copyBuildAssetsToVersionedFolder = async () => {
149
184
  const appVersion = (0, import_helpers.getAppVersion)();
150
185
  const isVersionedApp = (0, import_helpers.isAppLoaderEnabled)() && appVersion !== import_helpers.LATEST_VERSION;
@@ -154,6 +189,11 @@ const copyBuildAssetsToVersionedFolder = async () => {
154
189
  const dest = import_node_path.default.resolve(process.cwd(), `build/public/${appVersion}`);
155
190
  await copyDir(src, dest);
156
191
  await updateManifestWithVersionInfo(dest);
192
+ await updateRuntimeFile(
193
+ import_node_path.default.join(src, "js"),
194
+ import_node_path.default.join(dest, "js"),
195
+ appVersion
196
+ );
157
197
  };
158
198
  const isPathExist = async (pathToCheck) => {
159
199
  try {
package/dist/cjs/index.js CHANGED
@@ -28,7 +28,8 @@ __export(lib_exports, {
28
28
  loadRoutes: () => import_appRoutes.loadRoutes,
29
29
  prettierConfig: () => import_prettier_config.prettierConfig,
30
30
  stylelintConfig: () => import_stylelint_config.stylelintConfig,
31
- vitestConfig: () => import_vitest_config.vitestConfig
31
+ vitestConfig: () => import_vitest_config.vitestConfig,
32
+ webpackFinal: () => import_webpack_storybook.webpackFinal
32
33
  });
33
34
  module.exports = __toCommonJS(lib_exports);
34
35
  var import_babel_config = require("./babel.config.cjs");
@@ -42,3 +43,4 @@ var import_vitest_config = require("./testing/vitest.config.js");
42
43
  var import_jest_node_config = require("./testing/jest.node.config.cjs");
43
44
  var import_lint_staged_config = require("./lint-config/lint-staged.config.js");
44
45
  var import_appRoutes = require("./server/appRoutes.js");
46
+ var import_webpack_storybook = require("./webpack/webpack.storybook.js");
@@ -33,7 +33,7 @@ __export(pui_config_exports, {
33
33
  module.exports = __toCommonJS(pui_config_exports);
34
34
  var import_node_path = __toESM(require("node:path"), 1);
35
35
  var import_node_fs = __toESM(require("node:fs"), 1);
36
- var import_lodash = require("lodash");
36
+ var import_merge = __toESM(require("lodash/merge"), 1);
37
37
  const baseConfig = {
38
38
  esBuild: {
39
39
  target: "es2020"
@@ -44,5 +44,5 @@ const getPUIConfig = () => {
44
44
  if (!import_node_fs.default.existsSync(configPath))
45
45
  return baseConfig;
46
46
  const config = JSON.parse(import_node_fs.default.readFileSync(configPath, "utf8"));
47
- return (0, import_lodash.merge)(baseConfig, config);
47
+ return (0, import_merge.default)(baseConfig, config);
48
48
  };
@@ -38,6 +38,7 @@ var import_fast_glob = __toESM(require("fast-glob"), 1);
38
38
  var import_esbuild = require("esbuild");
39
39
  var import_promises = require("node:fs/promises");
40
40
  var import_browserslist_to_esbuild = __toESM(require("browserslist-to-esbuild"), 1);
41
+ var import_esbuild_plugin_lodash = __toESM(require("esbuild-plugin-lodash"), 1);
41
42
  const import_meta = {};
42
43
  const __dirname = import_node_path.default.dirname((0, import_node_url.fileURLToPath)(import_meta.url));
43
44
  const TARGETS = {
@@ -116,7 +117,8 @@ const esBuild = async ({
116
117
  ...getCommonConfig({ injectReactShim }),
117
118
  outdir: cjsOutdir,
118
119
  format: ESBUILD_FORMAT.CJS,
119
- target
120
+ target,
121
+ plugins: [(0, import_esbuild_plugin_lodash.default)()]
120
122
  });
121
123
  await copyFiles({ srcdir, outdir: cjsOutdir });
122
124
  await createPackageJson({ outdir: cjsOutdir, type: NODE_MODULE_TYPES.CJS });
@@ -76,7 +76,7 @@ const getLibraryName = () => {
76
76
  const packageJson = JSON.parse(
77
77
  import_node_fs.default.readFileSync(import_node_path.default.join(process.cwd(), "package.json")).toString()
78
78
  );
79
- const libraryName = packageJson ? packageJson.name : process.env.LIBRARY_NAME || "mylibrary";
79
+ const libraryName = process.env.LIBRARY_NAME ?? packageJson?.name;
80
80
  const modifiedLibName = `emui-${libraryName.replace("@elliemae/", "").replace("pui-", "")}`;
81
81
  return import_lodash.default.camelCase(modifiedLibName);
82
82
  };
@@ -254,7 +254,7 @@ const baseConfig = (options) => ({
254
254
  resourceQuery: /resource/,
255
255
  type: "asset/resource",
256
256
  generator: {
257
- filename: "latest/[name].[hash][ext][query]"
257
+ filename: "latest/[name].[hash][ext]"
258
258
  },
259
259
  exclude: (0, import_helpers.excludeNodeModulesExcept)(import_helpers.modulesToTranspile)
260
260
  },
@@ -287,10 +287,32 @@ const baseConfig = (options) => ({
287
287
  ...(options.resolve || {}).alias || {}
288
288
  }
289
289
  },
290
+ externalsPresets: {
291
+ web: true
292
+ },
290
293
  externals: {
291
294
  "@elliemae/pui-user-monitoring": "emuiUserMonitoring",
292
295
  "@elliemae/pui-app-loader": "emuiAppLoader",
293
- "@elliemae/pui-diagnostics": "emuiDiagnostics"
296
+ "@elliemae/pui-diagnostics": "emuiDiagnostics",
297
+ react: "emuiAppReactDependencies.react",
298
+ "react-dom": "emuiAppReactDependencies.reactDOM",
299
+ "@reduxjs/toolkit": "emuiAppReactDependencies.rtk",
300
+ axios: "emuiAppReactDependencies.axios.default",
301
+ dompurify: "emuiAppReactDependencies.dompurify",
302
+ history: "emuiAppReactDependencies.history",
303
+ immer: "emuiAppReactDependencies.immer",
304
+ invariant: "emuiAppReactDependencies.invariant",
305
+ "pubsub-js": "emuiAppReactDependencies.pubsubjs",
306
+ "react-aria-live": "emuiAppReactDependencies.reactAriaLive",
307
+ "react-helmet": "emuiAppReactDependencies.reactHelmet",
308
+ "react-hook-form": "emuiAppReactDependencies.reactHookForm",
309
+ "react-redux": "emuiAppReactDependencies.reactRedux",
310
+ "react-router-dom": "emuiAppReactDependencies.reactRouterDOM",
311
+ reduxInjectors: "emuiAppReactDependencies.reduxInjectors",
312
+ reselect: "emuiAppReactDependencies.reselect",
313
+ // "styled-components": "emuiAppReactDependencies.styledComponents",
314
+ "styled-system": "emuiAppReactDependencies.styledSystem"
315
+ // "@xstyled/styled-components": "emuiAppReactDependencies.xstyled",
294
316
  },
295
317
  devtool: options.devtool || "eval-source-map",
296
318
  performance: options.performance || {},
@@ -98,7 +98,7 @@ const devConfig = {
98
98
  // Add development plugins
99
99
  plugins: [
100
100
  new import_html_webpack_plugin.default({
101
- inject: !(0, import_helpers.isAppLoaderEnabled)(),
101
+ inject: !(0, import_helpers.isAppLoaderEnabled)() ? "head" : false,
102
102
  // Inject all files that are generated by webpack, e.g. bundle.js
103
103
  template: !(0, import_helpers.isAppLoaderEnabled)() ? "app/index.html" : "app/index-app-loader.html",
104
104
  emui: {
@@ -110,7 +110,8 @@ const devConfig = {
110
110
  diagnosticsScriptPath,
111
111
  encwLoaderScriptPath,
112
112
  googleTagManager: (0, import_helpers.isGoogleTagManagerEnabled)()
113
- }
113
+ },
114
+ scriptLoading: "defer"
114
115
  }),
115
116
  new import_circular_dependency_plugin.default({
116
117
  exclude: /a\.(js|ts|jsx|tsx)|node_modules/,
@@ -84,14 +84,22 @@ const baseConfig = (options) => ({
84
84
  output: {
85
85
  clean: true,
86
86
  path: import_node_path.default.resolve(process.cwd(), "dist/umd"),
87
+ filename: "[name].js",
88
+ chunkFilename: "[name].[chunkhash].chunk.js",
89
+ assetModuleFilename: "assets/[name].[hash][ext][query]",
87
90
  publicPath: "auto",
88
91
  library: {
89
92
  name: (0, import_helpers.getLibraryVariableName)(),
90
- type: "umd"
93
+ type: "var"
94
+ // type: 'module',
91
95
  },
96
+ // module: true,
92
97
  ...options.output
93
98
  },
94
99
  // Merge with env dependent settings
100
+ // experiments: {
101
+ // outputModule: true,
102
+ // },
95
103
  optimization: options.optimization,
96
104
  module: {
97
105
  rules: [
@@ -47,17 +47,13 @@ const getHtmlWebpackPlugins = () => {
47
47
  (htmlTemplateFile) => new import_html_webpack_plugin.default({
48
48
  template: htmlTemplateFile,
49
49
  filename: import_node_path.default.basename(htmlTemplateFile),
50
- inject: true
50
+ inject: "head",
51
+ scriptLoading: "defer"
51
52
  })
52
53
  );
53
54
  };
54
55
  var webpack_lib_dev_babel_default = (0, import_webpack_lib_base_babel.baseConfig)({
55
56
  mode: "development",
56
- // output: {
57
- // filename: `js/${libraryName}.js`,
58
- // chunkFilename: `js/${libraryName}.chunk.js`,
59
- // assetModuleFilename: '[name][ext][query]',
60
- // },
61
57
  optimization: {
62
58
  splitChunks: {
63
59
  chunks: "all"
@@ -74,10 +70,7 @@ var webpack_lib_dev_babel_default = (0, import_webpack_lib_base_babel.baseConfig
74
70
  failOnError: false
75
71
  // show a warning when there is a circular dependency
76
72
  }),
77
- new import_mini_css_extract_plugin.default({
78
- // filename: `css/${libraryName}.css`,
79
- // chunkFilename: `css/${libraryName}.chunk.css`,
80
- }),
73
+ new import_mini_css_extract_plugin.default({}),
81
74
  new import_webpack.default.ProgressPlugin()
82
75
  ],
83
76
  devtool: "eval-source-map",
@@ -46,7 +46,8 @@ const getHtmlWebpackPlugins = () => {
46
46
  (htmlTemplateFile) => new import_html_webpack_plugin.default({
47
47
  template: htmlTemplateFile,
48
48
  filename: import_node_path.default.basename(htmlTemplateFile),
49
- inject: true,
49
+ inject: "head",
50
+ scriptLoading: "defer",
50
51
  minify: {
51
52
  removeComments: true,
52
53
  collapseWhitespace: true,
@@ -82,10 +83,7 @@ const prodConfig = {
82
83
  },
83
84
  plugins: [
84
85
  ...getHtmlWebpackPlugins(),
85
- new import_mini_css_extract_plugin.default({
86
- // filename: `css/${libraryName}.[contenthash].css`,
87
- // chunkFilename: `css/${libraryName}.[contenthash].chunk.css`,
88
- }),
86
+ new import_mini_css_extract_plugin.default({}),
89
87
  ...(0, import_helpers.getCompressionPlugins)(true),
90
88
  new import_webpack_bundle_analyzer.BundleAnalyzerPlugin({
91
89
  analyzerMode: "static",
@@ -111,7 +111,7 @@ const {
111
111
  basePath
112
112
  } = (0, import_helpers.getPaths)();
113
113
  const htmlWebpackPlugin = new import_html_webpack_plugin.default({
114
- inject: !(0, import_helpers.isAppLoaderEnabled)(),
114
+ inject: !(0, import_helpers.isAppLoaderEnabled)() ? "head" : false,
115
115
  template: !(0, import_helpers.isAppLoaderEnabled)() ? "app/index.html" : "app/index-app-loader.html",
116
116
  minify: {
117
117
  removeComments: true,
@@ -134,7 +134,8 @@ const htmlWebpackPlugin = new import_html_webpack_plugin.default({
134
134
  diagnosticsScriptPath,
135
135
  encwLoaderScriptPath,
136
136
  googleTagManager: (0, import_helpers.isGoogleTagManagerEnabled)()
137
- }
137
+ },
138
+ scriptLoading: "defer"
138
139
  });
139
140
  const config = (0, import_webpack_base_babel.baseConfig)(getProdConfig());
140
141
  if (config.plugins)
@@ -28,7 +28,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var webpack_storybook_exports = {};
30
30
  __export(webpack_storybook_exports, {
31
- managerWebpack: () => managerWebpack,
32
31
  webpackFinal: () => webpackFinal
33
32
  });
34
33
  module.exports = __toCommonJS(webpack_storybook_exports);
@@ -113,10 +112,3 @@ const webpackFinal = (config, { configType }) => {
113
112
  }
114
113
  return config;
115
114
  };
116
- const managerWebpack = (config) => {
117
- if (config.plugins)
118
- config.plugins = config.plugins.concat((0, import_helpers.getCompressionPlugins)());
119
- if (config.resolve)
120
- config.resolve.alias = { ...config.resolve.alias, ...(0, import_helpers.getAlias)() };
121
- return config;
122
- };
@@ -5,7 +5,7 @@ import { exec, logError, logSuccess, isApp } from "./utils.js";
5
5
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
6
  const startProdServer = async () => {
7
7
  await exec(
8
- `cross-env NODE_ENV=production ts-node --esm ${path.resolve(
8
+ `cross-env NODE_ENV=production node --no-warnings=ExperimentalWarning --loader ts-node/esm ${path.resolve(
9
9
  __dirname,
10
10
  "../server/index.js"
11
11
  )} --color always`
@@ -3,12 +3,12 @@ import { exec, logInfo, logError, logSuccess } from "./utils.js";
3
3
  const buildStoryBook = async (outputDir = "demo", isDoc = false) => {
4
4
  const additionalParams = isDoc ? `--docs -o ${outputDir}/docs` : `-o ${outputDir}`;
5
5
  await exec(
6
- `cross-env NODE_ENV=production build-storybook --quiet ${additionalParams}`
6
+ `cross-env NODE_ENV=production storybook build --quiet ${additionalParams}`
7
7
  );
8
8
  };
9
9
  const startStoryBook = async (isDoc = false) => {
10
10
  await exec(
11
- `cross-env NODE_ENV=development STORYBOOK_BUILD=true start-storybook ${isDoc ? "--docs" : ""} -p 11000 --quiet`
11
+ `cross-env STORYBOOK_BUILD=true storybook dev ${isDoc ? "--docs" : ""} -p 11000 --quiet`
12
12
  );
13
13
  };
14
14
  const cmdArgs = {
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- import fs, { constants } from "node:fs";
2
+ import fs, { constants, createReadStream, createWriteStream } from "node:fs";
3
3
  import {
4
4
  readFile,
5
5
  writeFile,
@@ -7,9 +7,13 @@ import {
7
7
  readdir,
8
8
  copyFile,
9
9
  access
10
- } from "fs/promises";
10
+ } from "node:fs/promises";
11
+ import { createGzip, createBrotliCompress } from "node:zlib";
12
+ import { pipeline } from "node:stream";
13
+ import { promisify } from "node:util";
11
14
  import { execaCommand } from "execa";
12
15
  import chalk from "chalk";
16
+ import fg from "fast-glob";
13
17
  import {
14
18
  getPaths,
15
19
  isAppLoaderEnabled,
@@ -115,6 +119,37 @@ const updateManifestWithVersionInfo = async (dest) => {
115
119
  manifestData = manifestData.replace(/latest\//g, `${getAppVersion()}/`);
116
120
  await writeFile(manifestFile, manifestData);
117
121
  };
122
+ const updateRuntimeFile = async (src, dest, version) => {
123
+ const latestJSFolder = "latest/js";
124
+ const pipe = promisify(pipeline);
125
+ const results = await fg([path.join(src, "runtime~app.*.js")]);
126
+ if (!results?.length)
127
+ throw new Error("Runtime file not found");
128
+ const runtimeFilePath = results[0];
129
+ const runtimeFileName = path.basename(runtimeFilePath);
130
+ const destRuntimeFilePath = path.join(dest, runtimeFileName);
131
+ const runtimeFileData = await readFile(runtimeFilePath, "utf8");
132
+ if (runtimeFileData.includes(latestJSFolder)) {
133
+ await writeFile(
134
+ destRuntimeFilePath,
135
+ runtimeFileData.replace(latestJSFolder, `${version}/js`)
136
+ );
137
+ const sourceMapFile = `${runtimeFilePath}.map`;
138
+ const sourcemap = await readFile(sourceMapFile, "utf8");
139
+ await writeFile(
140
+ `${destRuntimeFilePath}.map`,
141
+ sourcemap.replace(latestJSFolder, `${version}/js`)
142
+ );
143
+ const gzip = createGzip();
144
+ let source = createReadStream(destRuntimeFilePath);
145
+ let destination = createWriteStream(`${destRuntimeFilePath}.gz`);
146
+ await pipe(source, gzip, destination);
147
+ const brotli = createBrotliCompress();
148
+ source = createReadStream(destRuntimeFilePath);
149
+ destination = createWriteStream(`${destRuntimeFilePath}.br`);
150
+ await pipe(source, brotli, destination);
151
+ }
152
+ };
118
153
  const copyBuildAssetsToVersionedFolder = async () => {
119
154
  const appVersion = getAppVersion();
120
155
  const isVersionedApp = isAppLoaderEnabled() && appVersion !== LATEST_VERSION;
@@ -124,6 +159,11 @@ const copyBuildAssetsToVersionedFolder = async () => {
124
159
  const dest = path.resolve(process.cwd(), `build/public/${appVersion}`);
125
160
  await copyDir(src, dest);
126
161
  await updateManifestWithVersionInfo(dest);
162
+ await updateRuntimeFile(
163
+ path.join(src, "js"),
164
+ path.join(dest, "js"),
165
+ appVersion
166
+ );
127
167
  };
128
168
  const isPathExist = async (pathToCheck) => {
129
169
  try {
package/dist/esm/index.js CHANGED
@@ -9,6 +9,7 @@ import { vitestConfig } from "./testing/vitest.config.js";
9
9
  import { jestNodeConfig } from "./testing/jest.node.config.cjs";
10
10
  import { lintStagedConfig } from "./lint-config/lint-staged.config.js";
11
11
  import { loadRoutes } from "./server/appRoutes.js";
12
+ import { webpackFinal } from "./webpack/webpack.storybook.js";
12
13
  export {
13
14
  babelConfig,
14
15
  commitlintConfig,
@@ -20,5 +21,6 @@ export {
20
21
  loadRoutes,
21
22
  prettierConfig,
22
23
  stylelintConfig,
23
- vitestConfig
24
+ vitestConfig,
25
+ webpackFinal
24
26
  };
@@ -4,6 +4,7 @@ import fg from "fast-glob";
4
4
  import { build } from "esbuild";
5
5
  import { writeFile, copyFile, readFile, mkdir } from "node:fs/promises";
6
6
  import browserslistToEsbuild from "browserslist-to-esbuild";
7
+ import lodashTransformer from "esbuild-plugin-lodash";
7
8
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
9
  const TARGETS = {
9
10
  browserslist: browserslistToEsbuild(),
@@ -81,7 +82,8 @@ const esBuild = async ({
81
82
  ...getCommonConfig({ injectReactShim }),
82
83
  outdir: cjsOutdir,
83
84
  format: ESBUILD_FORMAT.CJS,
84
- target
85
+ target,
86
+ plugins: [lodashTransformer()]
85
87
  });
86
88
  await copyFiles({ srcdir, outdir: cjsOutdir });
87
89
  await createPackageJson({ outdir: cjsOutdir, type: NODE_MODULE_TYPES.CJS });
@@ -28,7 +28,7 @@ const getLibraryName = () => {
28
28
  const packageJson = JSON.parse(
29
29
  fs.readFileSync(path.join(process.cwd(), "package.json")).toString()
30
30
  );
31
- const libraryName = packageJson ? packageJson.name : process.env.LIBRARY_NAME || "mylibrary";
31
+ const libraryName = process.env.LIBRARY_NAME ?? packageJson?.name;
32
32
  const modifiedLibName = `emui-${libraryName.replace("@elliemae/", "").replace("pui-", "")}`;
33
33
  return _.camelCase(modifiedLibName);
34
34
  };
@@ -227,7 +227,7 @@ const baseConfig = (options) => ({
227
227
  resourceQuery: /resource/,
228
228
  type: "asset/resource",
229
229
  generator: {
230
- filename: "latest/[name].[hash][ext][query]"
230
+ filename: "latest/[name].[hash][ext]"
231
231
  },
232
232
  exclude: excludeNodeModulesExcept(modulesToTranspile)
233
233
  },
@@ -260,10 +260,32 @@ const baseConfig = (options) => ({
260
260
  ...(options.resolve || {}).alias || {}
261
261
  }
262
262
  },
263
+ externalsPresets: {
264
+ web: true
265
+ },
263
266
  externals: {
264
267
  "@elliemae/pui-user-monitoring": "emuiUserMonitoring",
265
268
  "@elliemae/pui-app-loader": "emuiAppLoader",
266
- "@elliemae/pui-diagnostics": "emuiDiagnostics"
269
+ "@elliemae/pui-diagnostics": "emuiDiagnostics",
270
+ react: "emuiAppReactDependencies.react",
271
+ "react-dom": "emuiAppReactDependencies.reactDOM",
272
+ "@reduxjs/toolkit": "emuiAppReactDependencies.rtk",
273
+ axios: "emuiAppReactDependencies.axios.default",
274
+ dompurify: "emuiAppReactDependencies.dompurify",
275
+ history: "emuiAppReactDependencies.history",
276
+ immer: "emuiAppReactDependencies.immer",
277
+ invariant: "emuiAppReactDependencies.invariant",
278
+ "pubsub-js": "emuiAppReactDependencies.pubsubjs",
279
+ "react-aria-live": "emuiAppReactDependencies.reactAriaLive",
280
+ "react-helmet": "emuiAppReactDependencies.reactHelmet",
281
+ "react-hook-form": "emuiAppReactDependencies.reactHookForm",
282
+ "react-redux": "emuiAppReactDependencies.reactRedux",
283
+ "react-router-dom": "emuiAppReactDependencies.reactRouterDOM",
284
+ reduxInjectors: "emuiAppReactDependencies.reduxInjectors",
285
+ reselect: "emuiAppReactDependencies.reselect",
286
+ // "styled-components": "emuiAppReactDependencies.styledComponents",
287
+ "styled-system": "emuiAppReactDependencies.styledSystem"
288
+ // "@xstyled/styled-components": "emuiAppReactDependencies.xstyled",
267
289
  },
268
290
  devtool: options.devtool || "eval-source-map",
269
291
  performance: options.performance || {},
@@ -68,7 +68,7 @@ const devConfig = {
68
68
  // Add development plugins
69
69
  plugins: [
70
70
  new HtmlWebpackPlugin({
71
- inject: !isAppLoaderEnabled(),
71
+ inject: !isAppLoaderEnabled() ? "head" : false,
72
72
  // Inject all files that are generated by webpack, e.g. bundle.js
73
73
  template: !isAppLoaderEnabled() ? "app/index.html" : "app/index-app-loader.html",
74
74
  emui: {
@@ -80,7 +80,8 @@ const devConfig = {
80
80
  diagnosticsScriptPath,
81
81
  encwLoaderScriptPath,
82
82
  googleTagManager: isGoogleTagManagerEnabled()
83
- }
83
+ },
84
+ scriptLoading: "defer"
84
85
  }),
85
86
  new CircularDependencyPlugin({
86
87
  exclude: /a\.(js|ts|jsx|tsx)|node_modules/,
@@ -57,14 +57,22 @@ const baseConfig = (options) => ({
57
57
  output: {
58
58
  clean: true,
59
59
  path: path.resolve(process.cwd(), "dist/umd"),
60
+ filename: "[name].js",
61
+ chunkFilename: "[name].[chunkhash].chunk.js",
62
+ assetModuleFilename: "assets/[name].[hash][ext][query]",
60
63
  publicPath: "auto",
61
64
  library: {
62
65
  name: getLibraryVariableName(),
63
- type: "umd"
66
+ type: "var"
67
+ // type: 'module',
64
68
  },
69
+ // module: true,
65
70
  ...options.output
66
71
  },
67
72
  // Merge with env dependent settings
73
+ // experiments: {
74
+ // outputModule: true,
75
+ // },
68
76
  optimization: options.optimization,
69
77
  module: {
70
78
  rules: [
@@ -14,17 +14,13 @@ const getHtmlWebpackPlugins = () => {
14
14
  (htmlTemplateFile) => new HtmlWebpackPlugin({
15
15
  template: htmlTemplateFile,
16
16
  filename: path.basename(htmlTemplateFile),
17
- inject: true
17
+ inject: "head",
18
+ scriptLoading: "defer"
18
19
  })
19
20
  );
20
21
  };
21
22
  var webpack_lib_dev_babel_default = baseConfig({
22
23
  mode: "development",
23
- // output: {
24
- // filename: `js/${libraryName}.js`,
25
- // chunkFilename: `js/${libraryName}.chunk.js`,
26
- // assetModuleFilename: '[name][ext][query]',
27
- // },
28
24
  optimization: {
29
25
  splitChunks: {
30
26
  chunks: "all"
@@ -41,10 +37,7 @@ var webpack_lib_dev_babel_default = baseConfig({
41
37
  failOnError: false
42
38
  // show a warning when there is a circular dependency
43
39
  }),
44
- new MiniCssExtractPlugin({
45
- // filename: `css/${libraryName}.css`,
46
- // chunkFilename: `css/${libraryName}.chunk.css`,
47
- }),
40
+ new MiniCssExtractPlugin({}),
48
41
  new webpack.ProgressPlugin()
49
42
  ],
50
43
  devtool: "eval-source-map",
@@ -13,7 +13,8 @@ const getHtmlWebpackPlugins = () => {
13
13
  (htmlTemplateFile) => new HtmlWebpackPlugin({
14
14
  template: htmlTemplateFile,
15
15
  filename: path.basename(htmlTemplateFile),
16
- inject: true,
16
+ inject: "head",
17
+ scriptLoading: "defer",
17
18
  minify: {
18
19
  removeComments: true,
19
20
  collapseWhitespace: true,
@@ -49,10 +50,7 @@ const prodConfig = {
49
50
  },
50
51
  plugins: [
51
52
  ...getHtmlWebpackPlugins(),
52
- new MiniCssExtractPlugin({
53
- // filename: `css/${libraryName}.[contenthash].css`,
54
- // chunkFilename: `css/${libraryName}.[contenthash].chunk.css`,
55
- }),
53
+ new MiniCssExtractPlugin({}),
56
54
  ...getCompressionPlugins(true),
57
55
  new BundleAnalyzerPlugin({
58
56
  analyzerMode: "static",
@@ -83,7 +83,7 @@ const {
83
83
  basePath
84
84
  } = getPaths();
85
85
  const htmlWebpackPlugin = new HtmlWebpackPlugin({
86
- inject: !isAppLoaderEnabled(),
86
+ inject: !isAppLoaderEnabled() ? "head" : false,
87
87
  template: !isAppLoaderEnabled() ? "app/index.html" : "app/index-app-loader.html",
88
88
  minify: {
89
89
  removeComments: true,
@@ -106,7 +106,8 @@ const htmlWebpackPlugin = new HtmlWebpackPlugin({
106
106
  diagnosticsScriptPath,
107
107
  encwLoaderScriptPath,
108
108
  googleTagManager: isGoogleTagManagerEnabled()
109
- }
109
+ },
110
+ scriptLoading: "defer"
110
111
  });
111
112
  const config = baseConfig(getProdConfig());
112
113
  if (config.plugins)
@@ -79,14 +79,6 @@ const webpackFinal = (config, { configType }) => {
79
79
  }
80
80
  return config;
81
81
  };
82
- const managerWebpack = (config) => {
83
- if (config.plugins)
84
- config.plugins = config.plugins.concat(getCompressionPlugins());
85
- if (config.resolve)
86
- config.resolve.alias = { ...config.resolve.alias, ...getAlias() };
87
- return config;
88
- };
89
82
  export {
90
- managerWebpack,
91
83
  webpackFinal
92
84
  };
@@ -9,3 +9,4 @@ export { vitestConfig } from './testing/vitest.config.js';
9
9
  export { jestNodeConfig } from './testing/jest.node.config.cjs';
10
10
  export { lintStagedConfig } from './lint-config/lint-staged.config.js';
11
11
  export { loadRoutes } from './server/appRoutes.js';
12
+ export { webpackFinal } from './webpack/webpack.storybook.js';
@@ -2,4 +2,3 @@ import webpack, { Configuration } from 'webpack';
2
2
  export declare const webpackFinal: (config: Configuration, { configType }: {
3
3
  configType: string;
4
4
  }) => webpack.Configuration;
5
- export declare const managerWebpack: (config: Configuration) => webpack.Configuration;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/pui-cli",
3
- "version": "9.0.0-next.1",
3
+ "version": "9.0.0-next.11",
4
4
  "description": "ICE MT UI Platform CLI",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -19,11 +19,16 @@
19
19
  "require": "./dist/cjs/release.config.cjs"
20
20
  },
21
21
  "./storybook": {
22
+ "import": "./dist/esm/webpack/webpack.storybook.js",
22
23
  "require": "./dist/cjs/webpack/webpack.storybook.js"
23
24
  },
24
25
  "./vitest": {
25
26
  "import": "./dist/esm/testing/vitest.config.js"
26
27
  },
28
+ "./server/routes": {
29
+ "import": "./dist/esm/server/appRoutes.js",
30
+ "require": "./dist/cjs/server/appRoutes.js"
31
+ },
27
32
  "./app.tsconfig.json": "./app.tsconfig.json",
28
33
  "./library.tsconfig.json": "./library.tsconfig.json"
29
34
  },
@@ -40,27 +45,27 @@
40
45
  "url": "https://git.elliemae.io/platform-ui/pui-cli.git"
41
46
  },
42
47
  "engines": {
43
- "pnpm": ">=6",
44
- "node": ">=16"
48
+ "pnpm": ">=8",
49
+ "node": ">=18"
45
50
  },
46
51
  "author": "ICE MT",
47
52
  "license": "MIT",
48
53
  "scripts": {
49
- "build": "ts-node --esm ./lib/cli.ts pack -p -t node",
50
- "build:dev": "ts-node --esm ./lib/cli.ts pack -t node",
54
+ "build": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./lib/cli.ts pack -p -t node",
55
+ "build:dev": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./lib/cli.ts pack -t node",
51
56
  "docs:start": "docusaurus start",
52
57
  "docs:build": "docusaurus build --out-dir build/docs",
53
58
  "docs:version": "docusaurus docs:version",
54
59
  "docs:serve": "docusaurus serve",
55
- "lint": "ts-node --esm ./lib/cli.ts lint",
56
- "lint:fix": "ts-node --esm ./lib/cli.ts lint --fix",
60
+ "lint": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./lib/cli.ts lint",
61
+ "lint:fix": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./lib/cli.ts lint --fix",
57
62
  "prettify": "prettier --write",
58
63
  "release": "semantic-release",
59
64
  "storybook:build": "exit 0",
60
65
  "storybook:docs:build": "exit 0",
61
- "test": "ts-node --esm ./lib/cli.ts test -p",
66
+ "test": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./lib/cli.ts test -p",
62
67
  "test:staged": "jest --coverage --passWithNoTests --bail --findRelatedTests",
63
- "tscheck": "ts-node --esm ./lib/cli.ts tscheck --files",
68
+ "tscheck": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./lib/cli.ts tscheck --files",
64
69
  "setup": "rimraf node_modules && rimraf pnpm-lock.yaml && pnpm i",
65
70
  "upgrade": "ncu -u && npm run setup",
66
71
  "prepare": "[ -n \"$CI\" ] || husky install"
@@ -72,51 +77,56 @@
72
77
  "sonar56x": true
73
78
  },
74
79
  "dependencies": {
75
- "@axe-core/react": "~4.6.0",
76
- "@babel/cli": "~7.21.0",
77
- "@babel/core": "~7.21.3",
78
- "@babel/eslint-parser": "~7.21.3",
80
+ "@axe-core/react": "~4.7.0",
81
+ "@babel/cli": "~7.21.5",
82
+ "@babel/core": "~7.21.8",
83
+ "@babel/eslint-parser": "~7.21.8",
79
84
  "@babel/node": "~7.20.7",
80
85
  "@babel/plugin-proposal-class-properties": "~7.18.6",
81
86
  "@babel/plugin-proposal-export-default-from": "~7.18.10",
82
87
  "@babel/plugin-syntax-dynamic-import": "~7.8.3",
83
88
  "@babel/plugin-syntax-import-assertions": "~7.20.0",
84
- "@babel/plugin-transform-modules-commonjs": "~7.21.2",
89
+ "@babel/plugin-transform-modules-commonjs": "~7.21.5",
85
90
  "@babel/plugin-transform-react-constant-elements": "~7.21.3",
86
91
  "@babel/plugin-transform-react-inline-elements": "~7.21.0",
87
92
  "@babel/plugin-transform-react-jsx-source": "~7.19.6",
88
- "@babel/plugin-transform-runtime": "~7.21.0",
89
- "@babel/preset-env": "~7.20.2",
93
+ "@babel/plugin-transform-runtime": "~7.21.4",
94
+ "@babel/preset-env": "~7.21.5",
90
95
  "@babel/preset-react": "~7.18.6",
91
- "@babel/preset-typescript": "~7.21.0",
92
- "@babel/runtime": "~7.21.0",
93
- "@commitlint/cli": "~17.4.4",
94
- "@commitlint/config-conventional": "~17.4.4",
95
- "@elliemae/browserslist-config-elliemae-latest-browsers": "~1.6.0",
96
- "@faker-js/faker": "7.6.0",
97
- "@nrwl/cli": "15.8.6",
98
- "@nrwl/tao": "15.8.6",
99
- "@nrwl/workspace": "15.8.6",
96
+ "@babel/preset-typescript": "~7.21.5",
97
+ "@babel/runtime": "~7.21.5",
98
+ "@commitlint/cli": "~17.6.3",
99
+ "@commitlint/config-conventional": "~17.6.3",
100
+ "@elliemae/browserslist-config-elliemae-latest-browsers": "~1.7.0",
101
+ "@faker-js/faker": "8.0.1",
102
+ "@nrwl/cli": "15.9.3",
103
+ "@nrwl/tao": "16.1.4",
104
+ "@nrwl/workspace": "16.1.4",
100
105
  "@pmmmwh/react-refresh-webpack-plugin": "~0.5.10",
101
- "@semantic-release/changelog": "~6.0.2",
106
+ "@semantic-release/changelog": "~6.0.3",
102
107
  "@semantic-release/exec": "~6.0.3",
103
108
  "@semantic-release/git": "~10.0.1",
104
- "@storybook/addon-a11y": "~6.5.16",
105
- "@storybook/addon-essentials": "~6.5.16",
109
+ "@storybook/addon-a11y": "~7.0.12",
110
+ "@storybook/addon-essentials": "~7.0.12",
106
111
  "@storybook/addon-events": "~6.2.9",
107
- "@storybook/addon-interactions": "~6.5.16",
108
- "@storybook/addon-links": "~6.5.16",
109
- "@storybook/addon-storysource": "~6.5.16",
110
- "@storybook/builder-vite": "~0.4.2",
111
- "@storybook/builder-webpack5": "~6.5.16",
112
+ "@storybook/addon-interactions": "~7.0.12",
113
+ "@storybook/addon-links": "~7.0.12",
114
+ "@storybook/addon-storysource": "~7.0.12",
115
+ "@storybook/blocks": "~7.0.12",
116
+ "@storybook/builder-vite": "~7.0.12",
117
+ "@storybook/builder-webpack5": "~7.0.12",
118
+ "@storybook/jest": "~0.1.0",
112
119
  "@storybook/manager-webpack5": "~6.5.16",
113
- "@storybook/react": "~6.5.16",
114
- "@storybook/theming": "~6.5.16",
120
+ "@storybook/react": "~7.0.12",
121
+ "@storybook/react-vite": "~7.0.12",
122
+ "@storybook/react-webpack5": "~7.0.12",
123
+ "@storybook/testing-library": "~0.1.0",
124
+ "@storybook/theming": "~7.0.12",
115
125
  "@stylelint/postcss-css-in-js": "~0.38.0",
116
- "@svgr/webpack": "~6.5.1",
126
+ "@svgr/webpack": "~8.0.1",
117
127
  "@swc/cli": "~0.1.62",
118
- "@swc/core": "~1.3.40",
119
- "@swc/jest": "~0.2.24",
128
+ "@swc/core": "~1.3.58",
129
+ "@swc/jest": "~0.2.26",
120
130
  "@testing-library/jest-dom": "~5.16.5",
121
131
  "@testing-library/react": "~14.0.0",
122
132
  "@testing-library/react-hooks": "~8.0.1",
@@ -126,31 +136,31 @@
126
136
  "@types/compression": "~1.7.2",
127
137
  "@types/duplicate-package-checker-webpack-plugin": "~2.1.2",
128
138
  "@types/ip": "~1.1.0",
129
- "@types/jest": "~29.5.0",
139
+ "@types/jest": "~29.5.1",
130
140
  "@types/jest-axe": "~3.5.5",
131
141
  "@types/moment-locales-webpack-plugin": "~1.2.3",
132
- "@types/node": "~18.15.3",
142
+ "@types/node": "~20.1.4",
133
143
  "@types/normalize-path": "~3.0.0",
134
- "@types/postcss-preset-env": "~7.7.0",
135
- "@types/rimraf": "~3.0.2",
144
+ "@types/postcss-preset-env": "~8.0.0",
145
+ "@types/rimraf": "~4.0.5",
136
146
  "@types/speed-measure-webpack-plugin": "~1.3.4",
137
147
  "@types/supertest": "~2.0.12",
138
148
  "@types/uuid": "~9.0.1",
139
149
  "@types/testing-library__jest-dom": "~5.14.5",
140
150
  "@types/webpack-bundle-analyzer": "~4.6.0",
141
- "@typescript-eslint/eslint-plugin": "~5.55.0",
142
- "@typescript-eslint/parser": "~5.55.0",
143
- "@vitejs/plugin-react": "~3.1.0",
144
- "@vitest/coverage-c8": "~0.29.3",
151
+ "@typescript-eslint/eslint-plugin": "~5.59.5",
152
+ "@typescript-eslint/parser": "~5.59.5",
153
+ "@vitejs/plugin-react": "~4.0.0",
154
+ "@vitest/coverage-c8": "~0.31.0",
145
155
  "autoprefixer": "~10.4.14",
146
- "axe-core": "~4.6.3",
156
+ "axe-core": "~4.7.1",
147
157
  "babel-plugin-date-fns": "~2.0.0",
148
158
  "babel-plugin-dynamic-import-node": "~2.3.3",
149
159
  "babel-plugin-import-remove-resource-query": "~1.0.0",
150
160
  "babel-plugin-lodash": "~3.3.4",
151
161
  "babel-plugin-module-resolver": "~5.0.0",
152
162
  "babel-plugin-source-map-support": "~2.2.0",
153
- "babel-plugin-styled-components": "~2.0.7",
163
+ "babel-plugin-styled-components": "~2.1.1",
154
164
  "babel-plugin-transform-react-remove-prop-types": "~0.4.24",
155
165
  "babel-plugin-transform-remove-console": "~6.9.4",
156
166
  "babel-plugin-transform-strip-block": "~0.0.5",
@@ -165,90 +175,91 @@
165
175
  "cors": "~2.8.5",
166
176
  "cross-env": "~7.0.3",
167
177
  "css-loader": "~6.7.3",
168
- "css-minimizer-webpack-plugin": "~4.2.2",
178
+ "css-minimizer-webpack-plugin": "~5.0.0",
169
179
  "depcheck": "~1.4.3",
170
180
  "docdash": "~2.0.1",
171
181
  "dotenv": "~16.0.3",
172
182
  "dotenv-webpack": "~8.0.1",
173
183
  "duplicate-package-checker-webpack-plugin": "~3.0.0",
174
- "enhanced-resolve": "5.12.0",
175
- "esbuild": "~0.17.11",
184
+ "enhanced-resolve": "5.14.0",
185
+ "esbuild": "~0.17.19",
176
186
  "esbuild-loader": "~3.0.1",
177
- "esbuild-plugin-svgr": "~1.0.1",
178
- "eslint": "~8.36.0",
187
+ "esbuild-plugin-lodash": "~1.2.0",
188
+ "esbuild-plugin-svgr": "~1.1.0",
189
+ "eslint": "~8.40.0",
179
190
  "eslint-config-airbnb": "~19.0.4",
180
191
  "eslint-config-airbnb-base": "~15.0.0",
181
192
  "eslint-config-airbnb-typescript": "~17.0.0",
182
- "eslint-config-prettier": "~8.7.0",
193
+ "eslint-config-prettier": "~8.8.0",
183
194
  "eslint-config-react-app": "~7.0.1",
184
195
  "eslint-import-resolver-babel-module": "~5.3.2",
185
- "eslint-import-resolver-typescript": "~3.5.3",
196
+ "eslint-import-resolver-typescript": "~3.5.5",
186
197
  "eslint-import-resolver-webpack": "~0.13.2",
187
- "eslint-plugin-compat": "~4.1.2",
198
+ "eslint-plugin-compat": "~4.1.4",
188
199
  "eslint-plugin-eslint-comments": "~3.2.0",
189
200
  "eslint-plugin-import": "~2.27.5",
190
201
  "eslint-plugin-jest": "~27.2.1",
191
- "eslint-plugin-jsdoc": "~40.0.3",
202
+ "eslint-plugin-jsdoc": "~44.2.4",
192
203
  "eslint-plugin-jsx-a11y": "~6.7.1",
193
- "eslint-plugin-mdx": "~2.0.5",
204
+ "eslint-plugin-mdx": "~2.1.0",
194
205
  "eslint-plugin-prettier": "~4.2.1",
195
206
  "eslint-plugin-react": "~7.32.2",
196
207
  "eslint-plugin-react-hooks": "~4.6.0",
197
208
  "eslint-plugin-redux-saga": "~1.3.2",
198
- "eslint-plugin-storybook": "~0.6.11",
199
- "eslint-plugin-testing-library": "~5.10.2",
200
- "eslint-plugin-wdio": "~8.0.14",
209
+ "eslint-plugin-storybook": "~0.6.12",
210
+ "eslint-plugin-testing-library": "~5.11.0",
211
+ "eslint-plugin-wdio": "~8.8.7",
201
212
  "execa": "~7.1.1",
202
213
  "express": "~4.18.2",
203
214
  "express-static-gzip": "~2.1.7",
204
- "favicons": "~7.1.1",
215
+ "favicons": "~7.1.2",
205
216
  "favicons-webpack-plugin": "~6.0.0",
206
217
  "fast-glob": "~3.2.12",
207
218
  "find-up": "~6.3.0",
208
219
  "find-up-cli": "~5.0.0",
209
- "happy-dom": "~8.9.0",
220
+ "happy-dom": "~9.18.3",
210
221
  "helmet-csp": "~3.4.0",
211
222
  "html-loader": "~4.2.0",
212
- "html-webpack-plugin": "~5.5.0",
223
+ "html-webpack-plugin": "~5.5.1",
213
224
  "http-server": "~14.1.1",
214
225
  "husky": "~8.0.3",
215
226
  "husky-init": "~8.0.0",
216
227
  "imports-loader": "~4.0.1",
217
228
  "ip": "~1.1.8",
218
- "jest-axe": "~7.0.0",
229
+ "jest-axe": "~7.0.1",
219
230
  "jest-cli": "~29.5.0",
220
231
  "jest-environment-jsdom": "~29.5.0",
221
232
  "jest-sonar-reporter": "~2.0.0",
222
233
  "jest-styled-components": "~7.1.1",
223
234
  "jest-watch-typeahead": "~2.2.2",
224
- "jscodeshift": "~0.14.0",
235
+ "jscodeshift": "~0.15.0",
225
236
  "jsdoc": "~4.0.2",
226
- "lerna": "~6.5.1",
227
- "lint-staged": "~13.2.0",
228
- "mini-css-extract-plugin": "~2.7.4",
237
+ "lerna": "~6.6.2",
238
+ "lint-staged": "~13.2.2",
239
+ "mini-css-extract-plugin": "~2.7.5",
229
240
  "minimist": "~1.2.8",
230
241
  "moment": "~2.29.4",
231
242
  "moment-locales-webpack-plugin": "~1.2.0",
232
- "msw": "~1.1.0",
243
+ "msw": "~1.2.1",
233
244
  "npm-run-all": "~4.1.5",
234
245
  "node-gyp": "~9.3.1",
235
246
  "node-plop": "~0.31.1",
236
- "nodemon": "~2.0.21",
247
+ "nodemon": "~2.0.22",
237
248
  "normalize-path": "~3.0.0",
238
- "npm-check-updates": "16.7.12",
239
- "pino": "~8.11.0",
249
+ "npm-check-updates": "16.10.12",
250
+ "pino": "~8.14.1",
240
251
  "pino-http": "~8.3.3",
241
252
  "pino-pretty": "~10.0.0",
242
253
  "plop": "~3.1.2",
243
- "postcss": "~8.4.21",
254
+ "postcss": "~8.4.23",
244
255
  "postcss-html": "~1.5.0",
245
256
  "postcss-jsx": "~0.36.4",
246
- "postcss-loader": "~7.1.0",
257
+ "postcss-loader": "~7.3.0",
247
258
  "postcss-markdown": "~1.2.0",
248
- "postcss-preset-env": "~8.0.1",
259
+ "postcss-preset-env": "~8.3.2",
249
260
  "postcss-syntax": "~0.36.2",
250
- "prettier": "~2.8.4",
251
- "prisma": "~4.11.0",
261
+ "prettier": "~2.8.8",
262
+ "prisma": "~4.14.0",
252
263
  "pug": "~3.0.2",
253
264
  "pug-loader": "~2.4.0",
254
265
  "raf": "~3.4.1",
@@ -257,44 +268,45 @@
257
268
  "react-test-renderer": "~18.2.0",
258
269
  "resize-observer-polyfill": "~1.5.1",
259
270
  "resolve-typescript-plugin": "~2.0.1",
260
- "rimraf": "~4.4.0",
261
- "semantic-release": "~20.1.1",
271
+ "rimraf": "~5.0.0",
272
+ "semantic-release": "~21.0.2",
262
273
  "slackify-markdown": "~4.3.1",
263
274
  "speed-measure-webpack-plugin": "~1.5.0",
264
- "storybook-addon-turbo-build": "~1.1.0",
275
+ "storybook": "~7.0.12",
276
+ "storybook-addon-turbo-build": "~2.0.1",
265
277
  "storybook-react-router": "~1.0.8",
266
278
  "style-loader": "~3.3.2",
267
- "stylelint": "~15.3.0",
268
- "stylelint-config-recommended": "~11.0.0",
279
+ "stylelint": "~15.6.1",
280
+ "stylelint-config-recommended": "~12.0.0",
269
281
  "stylelint-config-styled-components": "~0.1.1",
270
282
  "supertest": "~6.3.3",
271
283
  "swc-loader": "~0.2.3",
272
284
  "ts-node": "~10.9.1",
273
- "tsc-alias": "~1.8.3",
274
- "typedoc": "~0.23.27",
275
- "typescript": "~5.0.2",
285
+ "tsc-alias": "~1.8.6",
286
+ "typedoc": "~0.24.7",
287
+ "typescript": "~5.0.4",
276
288
  "update-notifier": "~6.0.2",
277
289
  "url-loader": "~4.1.1",
278
290
  "uuid": "~9.0.0",
279
- "vite": "~4.2.0",
280
- "vitest": "~0.29.3",
281
- "vite-tsconfig-paths": "~4.0.7",
282
- "webpack": "~5.76.2",
291
+ "vite": "~4.3.6",
292
+ "vitest": "~0.31.0",
293
+ "vite-tsconfig-paths": "~4.2.0",
294
+ "webpack": "~5.82.1",
283
295
  "webpack-bundle-analyzer": "~4.8.0",
284
- "webpack-cli": "~5.0.1",
285
- "webpack-dev-server": "~4.12.0",
296
+ "webpack-cli": "~5.1.1",
297
+ "webpack-dev-server": "~4.15.0",
286
298
  "webpack-manifest-plugin": "~5.0.0",
287
299
  "webpack-merge": "~5.8.0",
288
300
  "whatwg-fetch": "~3.6.2",
289
301
  "workbox-webpack-plugin": "~6.5.4",
290
- "yargs": "~17.7.1"
302
+ "yargs": "~17.7.2"
291
303
  },
292
304
  "devDependencies": {
293
305
  "@elliemae/pui-doc-gen": "~1.6.4",
294
306
  "react": "~18.2.0",
295
307
  "react-dom": "~18.2.0",
296
308
  "redux": "~4.2.1",
297
- "redux-saga": "~1.2.2",
298
- "styled-components": "~5.3.9"
309
+ "redux-saga": "~1.2.3",
310
+ "styled-components": "~5.3.10"
299
311
  }
300
312
  }