@gravity-ui/app-builder 0.2.2 → 0.3.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +226 -1
  3. package/dist/commands/build/build-lib.js +2 -5
  4. package/dist/commands/build/index.js +1 -2
  5. package/dist/commands/dev/client.js +30 -25
  6. package/dist/commands/dev/index.js +10 -8
  7. package/dist/commands/dev/server.js +3 -3
  8. package/dist/common/child-process/controllable-script.js +3 -1
  9. package/dist/common/child-process/utils.js +1 -2
  10. package/dist/common/config.d.ts +1 -1
  11. package/dist/common/config.js +34 -26
  12. package/dist/common/library/index.js +13 -13
  13. package/dist/common/links/unlink.js +2 -2
  14. package/dist/common/logger/index.js +1 -2
  15. package/dist/common/models/index.d.ts +11 -9
  16. package/dist/common/models/index.js +5 -1
  17. package/dist/common/package.js +5 -2
  18. package/dist/common/s3-upload/s3-client.d.ts +1 -0
  19. package/dist/common/s3-upload/s3-client.js +2 -14
  20. package/dist/common/s3-upload/upload.d.ts +1 -1
  21. package/dist/common/s3-upload/upload.js +1 -2
  22. package/dist/common/s3-upload/webpack-plugin.d.ts +1 -1
  23. package/dist/common/s3-upload/webpack-plugin.js +4 -2
  24. package/dist/common/tempData.js +1 -1
  25. package/dist/common/typescript/diagnostic.js +1 -1
  26. package/dist/common/typescript/transformers.js +39 -7
  27. package/dist/common/typescript/watch.js +7 -2
  28. package/dist/common/webpack/config.js +62 -55
  29. package/dist/common/webpack/storybook.js +43 -14
  30. package/dist/common/webpack/utils.js +5 -3
  31. package/dist/create-cli.d.ts +2 -2
  32. package/dist/create-cli.js +1 -1
  33. package/dist/index.d.ts +2 -1
  34. package/dist/index.js +3 -1
  35. package/package.json +40 -41
@@ -22,17 +22,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __rest = (this && this.__rest) || function (s, e) {
26
- var t = {};
27
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
- t[p] = s[p];
29
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
- t[p[i]] = s[p[i]];
33
- }
34
- return t;
35
- };
36
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
27
  };
@@ -149,10 +138,10 @@ function updateIncludesFactory() {
149
138
  // eslint-disable-next-line security/detect-non-literal-regexp
150
139
  !new RegExp(linkedPackage.name).test(pathname)));
151
140
  result = [...result, ...linkedPackagesJsIncludes];
152
- if (options === null || options === void 0 ? void 0 : options.includeRootAssets) {
141
+ if (options?.includeRootAssets) {
153
142
  result = [...result, ...linkedPackagesRootAssetsIncludes];
154
143
  }
155
- if (options === null || options === void 0 ? void 0 : options.includeRootStyles) {
144
+ if (options?.includeRootStyles) {
156
145
  result = [...result, ...linkedPackagesRootStylesIncludes];
157
146
  }
158
147
  return result;
@@ -184,7 +173,10 @@ function configureResolve({ isEnvProduction, config, tsLinkedPackages, }) {
184
173
  }
185
174
  const { aliases, modules = [] } = (0, utils_1.resolveTsconfigPathsToAlias)(path_1.default.resolve(paths_1.default.appClient, 'tsconfig.json')) || {};
186
175
  return {
187
- alias: Object.assign(Object.assign({}, aliases), alias),
176
+ alias: {
177
+ ...aliases,
178
+ ...alias,
179
+ },
188
180
  modules: ['node_modules', ...modules, ...(config.modules || [])],
189
181
  extensions: ['.mjs', '.cjs', '.js', '.jsx', '.ts', '.tsx', '.json'],
190
182
  symlinks: config.symlinks || false,
@@ -197,12 +189,15 @@ function createEntryArray(entry) {
197
189
  }
198
190
  function addEntry(entry, file) {
199
191
  const newEntry = path_1.default.resolve(paths_1.default.appEntry, file);
200
- return Object.assign(Object.assign({}, entry), { [path_1.default.parse(file).name]: createEntryArray(newEntry) });
192
+ return {
193
+ ...entry,
194
+ [path_1.default.parse(file).name]: createEntryArray(newEntry),
195
+ };
201
196
  }
202
197
  function configureEntry({ config }) {
203
198
  let entries = fs_1.default.readdirSync(paths_1.default.appEntry).filter((file) => /\.[jt]sx?$/.test(file));
204
199
  if (Array.isArray(config.entryFilter) && config.entryFilter.length) {
205
- entries = entries.filter((entry) => { var _a, _b; return (_a = config.entryFilter) === null || _a === void 0 ? void 0 : _a.includes((_b = entry.split('.')[0]) !== null && _b !== void 0 ? _b : ''); });
200
+ entries = entries.filter((entry) => config.entryFilter?.includes(entry.split('.')[0] ?? ''));
206
201
  }
207
202
  if (!entries.length) {
208
203
  throw new Error('No entries were found after applying UI_CORE_ENTRY_FILTER');
@@ -217,12 +212,14 @@ function getFileNames({ isEnvProduction }) {
217
212
  : 'js/[name].chunk.js',
218
213
  };
219
214
  }
220
- function configureOutput(_a) {
221
- var { isEnvDevelopment } = _a, rest = __rest(_a, ["isEnvDevelopment"]);
222
- return Object.assign(Object.assign({}, getFileNames(Object.assign({ isEnvDevelopment }, rest))), { path: paths_1.default.appBuild, pathinfo: isEnvDevelopment });
215
+ function configureOutput({ isEnvDevelopment, ...rest }) {
216
+ return {
217
+ ...getFileNames({ isEnvDevelopment, ...rest }),
218
+ path: paths_1.default.appBuild,
219
+ pathinfo: isEnvDevelopment,
220
+ };
223
221
  }
224
222
  function createJavaScriptLoader({ isEnvProduction, isEnvDevelopment, config, }) {
225
- var _a;
226
223
  return {
227
224
  loader: require.resolve('babel-loader'),
228
225
  options: {
@@ -233,7 +230,7 @@ function createJavaScriptLoader({ isEnvProduction, isEnvDevelopment, config, })
233
230
  isEnvDevelopment &&
234
231
  !config.disableReactRefresh && [
235
232
  require.resolve('react-refresh/babel'),
236
- ((_a = config.devServer) === null || _a === void 0 ? void 0 : _a.webSocketPath)
233
+ config.devServer?.webSocketPath
237
234
  ? {
238
235
  overlay: {
239
236
  sockPath: config.devServer.webSocketPath,
@@ -346,36 +343,44 @@ function createStylesRule({ isEnvDevelopment, isEnvProduction, config, }) {
346
343
  }
347
344
  function createIconsRule({ isEnvProduction, config }, jsLoader) {
348
345
  const iconIncludes = config.icons || [];
349
- return Object.assign({
346
+ return {
350
347
  // eslint-disable-next-line security/detect-unsafe-regex
351
- test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
348
+ test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
352
349
  // we can't use one rule with issuer: /\.[jt]sx?$/ cause of https://github.com/webpack/webpack/issues/9309
353
- issuer: jsLoader ? undefined : /\.s?css$/, include: [
350
+ issuer: jsLoader ? undefined : /\.s?css$/,
351
+ include: [
354
352
  /icons\/.*\.svg$/,
355
353
  // eslint-disable-next-line security/detect-non-literal-regexp
356
354
  ...iconIncludes.map((dir) => new RegExp(dir)),
357
- ] }, (jsLoader
358
- ? {
359
- use: [
360
- jsLoader,
361
- {
362
- loader: require.resolve('@svgr/webpack'),
363
- options: Object.assign({ babel: false, dimensions: false }, config.svgr),
355
+ ],
356
+ ...(jsLoader
357
+ ? {
358
+ use: [
359
+ jsLoader,
360
+ {
361
+ loader: require.resolve('@svgr/webpack'),
362
+ options: {
363
+ babel: false,
364
+ dimensions: false,
365
+ jsxRuntime: config.newJsxTransform ? 'automatic' : 'classic',
366
+ ...config.svgr,
367
+ },
368
+ },
369
+ ],
370
+ }
371
+ : {
372
+ type: 'asset',
373
+ parser: {
374
+ dataUrlCondition: {
375
+ maxSize: imagesSizeLimit,
376
+ },
364
377
  },
365
- ],
366
- }
367
- : {
368
- type: 'asset',
369
- parser: {
370
- dataUrlCondition: {
371
- maxSize: imagesSizeLimit,
378
+ generator: {
379
+ filename: 'assets/images/[name].[contenthash:8][ext]',
380
+ publicPath: isEnvProduction ? '../' : undefined,
372
381
  },
373
- },
374
- generator: {
375
- filename: 'assets/images/[name].[contenthash:8][ext]',
376
- publicPath: isEnvProduction ? '../' : undefined,
377
- },
378
- }));
382
+ }),
383
+ };
379
384
  }
380
385
  function createAssetsRules({ updateIncludes = lodash_1.default.identity, isEnvProduction, config, }) {
381
386
  const imagesRule = {
@@ -470,16 +475,14 @@ function createFallbackRules({ isEnvProduction }) {
470
475
  return rules;
471
476
  }
472
477
  function createMomentTimezoneDataPlugin(options = {}) {
473
- var _a, _b;
474
478
  const currentYear = new Date().getFullYear();
475
479
  // By default get data for current year only
476
480
  // https://momentjs.com/timezone/docs/#/use-it/webpack/
477
- const startYear = (_a = options.startYear) !== null && _a !== void 0 ? _a : currentYear;
478
- const endYear = (_b = options.endYear) !== null && _b !== void 0 ? _b : currentYear;
479
- return new moment_timezone_data_webpack_plugin_1.default(Object.assign(Object.assign({}, options), { startYear, endYear }));
481
+ const startYear = options.startYear ?? currentYear;
482
+ const endYear = options.endYear ?? currentYear;
483
+ return new moment_timezone_data_webpack_plugin_1.default({ ...options, startYear, endYear });
480
484
  }
481
485
  function configurePlugins(options) {
482
- var _a;
483
486
  const { isEnvDevelopment, isEnvProduction, config } = options;
484
487
  const excludeFromClean = config.excludeFromClean || [];
485
488
  const plugins = [
@@ -496,7 +499,10 @@ function configurePlugins(options) {
496
499
  publicPath: '',
497
500
  }),
498
501
  createMomentTimezoneDataPlugin(config.momentTz),
499
- new webpack.DefinePlugin(Object.assign({ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) }, config.definitions)),
502
+ new webpack.DefinePlugin({
503
+ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
504
+ ...config.definitions,
505
+ }),
500
506
  ];
501
507
  if (options.logger) {
502
508
  plugins.push(new progress_plugin_1.ProgressPlugin({ logger: options.logger }));
@@ -518,10 +524,12 @@ function configurePlugins(options) {
518
524
  }
519
525
  if (config.monaco) {
520
526
  const MonacoEditorWebpackPlugin = require('monaco-editor-webpack-plugin');
521
- plugins.push(new MonacoEditorWebpackPlugin(Object.assign(Object.assign({}, config.monaco), {
527
+ plugins.push(new MonacoEditorWebpackPlugin({
528
+ ...config.monaco,
522
529
  // currently, workers located on cdn are not working properly, so we are enforcing loading workers from
523
530
  // service instead
524
- publicPath: path_1.default.normalize(config.publicPathPrefix + '/build/') })));
531
+ publicPath: path_1.default.normalize(config.publicPathPrefix + '/build/'),
532
+ }));
525
533
  }
526
534
  if (isEnvDevelopment && !config.disableReactRefresh) {
527
535
  const { webSocketPath = path_1.default.normalize(`/${config.publicPathPrefix}/build/sockjs-node`) } = config.devServer || {};
@@ -549,7 +557,7 @@ function configurePlugins(options) {
549
557
  },
550
558
  }));
551
559
  }
552
- if ((_a = config.polyfill) === null || _a === void 0 ? void 0 : _a.process) {
560
+ if (config.polyfill?.process) {
553
561
  plugins.push(new webpack.ProvidePlugin({ process: 'process/browser.js' }));
554
562
  }
555
563
  if (isEnvProduction) {
@@ -639,8 +647,7 @@ function configurePlugins(options) {
639
647
  return plugins;
640
648
  }
641
649
  function configureOptimization({ isEnvProduction, config, }) {
642
- var _a;
643
- const configVendors = (_a = config.vendors) !== null && _a !== void 0 ? _a : [];
650
+ const configVendors = config.vendors ?? [];
644
651
  const vendorsList = [
645
652
  'react',
646
653
  'react-dom',
@@ -12,27 +12,52 @@ const config_1 = require("./config");
12
12
  const config_2 = require("../config");
13
13
  const models_1 = require("../models");
14
14
  async function configureServiceWebpackConfig(mode, storybookConfig) {
15
- var _a, _b, _c, _d, _e;
16
15
  const serviceConfig = await (0, config_2.getProjectConfig)(mode === "production" /* WebpackMode.Prod */ ? 'build' : 'dev', {});
17
- if (!(0, models_1.isServiceConfig)(serviceConfig)) {
18
- throw new Error('configureServiceWebpackConfig can be used only for services, but got the library config');
16
+ let options = {};
17
+ if ((0, models_1.isLibraryConfig)(serviceConfig)) {
18
+ options = {
19
+ includes: ['src'],
20
+ newJsxTransform: serviceConfig.lib?.newJsxTransform,
21
+ };
19
22
  }
20
- const webpackConfig = await configureWebpackConfigForStorybook(mode, serviceConfig.client);
21
- return Object.assign(Object.assign({}, storybookConfig), { plugins: [...((_a = storybookConfig.plugins) !== null && _a !== void 0 ? _a : []), ...webpackConfig.plugins], resolve: Object.assign(Object.assign(Object.assign({}, storybookConfig.resolve), webpackConfig.resolve), { alias: Object.assign(Object.assign({}, (_b = storybookConfig.resolve) === null || _b === void 0 ? void 0 : _b.alias), webpackConfig.resolve.alias), modules: [
22
- ...(((_c = storybookConfig.resolve) === null || _c === void 0 ? void 0 : _c.modules) || []),
23
+ else {
24
+ options = serviceConfig.client;
25
+ }
26
+ const webpackConfig = await configureWebpackConfigForStorybook(mode, options);
27
+ return {
28
+ ...storybookConfig,
29
+ plugins: [...(storybookConfig.plugins ?? []), ...webpackConfig.plugins],
30
+ resolve: {
31
+ ...storybookConfig.resolve,
32
+ ...webpackConfig.resolve,
33
+ alias: {
34
+ ...storybookConfig.resolve?.alias,
35
+ ...webpackConfig.resolve.alias,
36
+ },
37
+ modules: [
38
+ ...(storybookConfig.resolve?.modules || []),
23
39
  ...(webpackConfig.resolve.modules || []),
24
- ], extensions: [
25
- ...((_e = (_d = storybookConfig.resolve) === null || _d === void 0 ? void 0 : _d.extensions) !== null && _e !== void 0 ? _e : []),
40
+ ],
41
+ extensions: [
42
+ ...(storybookConfig.resolve?.extensions ?? []),
26
43
  ...(webpackConfig.resolve.extensions || []),
27
- ] }), module: Object.assign(Object.assign({}, storybookConfig.module), { rules: webpackConfig.module.rules }) });
44
+ ],
45
+ },
46
+ module: {
47
+ ...storybookConfig.module,
48
+ rules: webpackConfig.module.rules,
49
+ },
50
+ };
28
51
  }
29
52
  exports.configureServiceWebpackConfig = configureServiceWebpackConfig;
30
53
  async function configureWebpackConfigForStorybook(mode, userConfig = {}) {
31
- var _a;
32
54
  const isEnvDevelopment = mode === "development" /* WebpackMode.Dev */;
33
55
  const isEnvProduction = mode === "production" /* WebpackMode.Prod */;
34
56
  const config = await (0, config_2.normalizeConfig)({
35
- client: Object.assign(Object.assign({}, userConfig), { includes: ((_a = userConfig.includes) !== null && _a !== void 0 ? _a : []).concat(['.storybook']) }),
57
+ client: {
58
+ ...userConfig,
59
+ includes: (userConfig.includes ?? []).concat(['.storybook']),
60
+ },
36
61
  });
37
62
  const helperOptions = {
38
63
  isEnvDevelopment,
@@ -53,14 +78,18 @@ function configurePlugins({ isEnvDevelopment, isEnvProduction, config }) {
53
78
  if (config.definitions) {
54
79
  // eslint-disable-next-line security/detect-non-literal-require
55
80
  const webpack = require(path_1.default.resolve(process.cwd(), 'node_modules/webpack'));
56
- plugins.push(new webpack.DefinePlugin(Object.assign({}, config.definitions)));
81
+ plugins.push(new webpack.DefinePlugin({
82
+ ...config.definitions,
83
+ }));
57
84
  }
58
85
  if (config.monaco) {
59
86
  const MonacoEditorWebpackPlugin = require('monaco-editor-webpack-plugin');
60
- plugins.push(new MonacoEditorWebpackPlugin(Object.assign(Object.assign({}, config.monaco), {
87
+ plugins.push(new MonacoEditorWebpackPlugin({
88
+ ...config.monaco,
61
89
  // currently, workers located on cdn are not working properly, so we are enforcing loading workers from
62
90
  // service instead
63
- publicPath: '/' })));
91
+ publicPath: '/',
92
+ }));
64
93
  }
65
94
  if (isEnvDevelopment) {
66
95
  plugins.push(new react_refresh_webpack_plugin_1.default());
@@ -29,7 +29,7 @@ function webpackCompilerHandlerFactory(logger, onCompilationEnd) {
29
29
  if (onCompilationEnd) {
30
30
  await onCompilationEnd();
31
31
  }
32
- const time = (stats === null || stats === void 0 ? void 0 : stats.endTime) - (stats === null || stats === void 0 ? void 0 : stats.startTime);
32
+ const time = stats?.endTime - stats?.startTime;
33
33
  logger.success(`Client was successfully compiled in ${(0, pretty_time_1.prettyTime)(BigInt(time) * BigInt(1000000))}`);
34
34
  };
35
35
  }
@@ -63,9 +63,11 @@ exports.resolveTsconfigPathsToAlias = resolveTsconfigPathsToAlias;
63
63
  function readJsonConfig(pathname) {
64
64
  try {
65
65
  const json = fs_1.default.readFileSync(pathname, 'utf-8');
66
- return Object.assign({}, JSON.parse(json));
66
+ return {
67
+ ...JSON.parse(json),
68
+ };
67
69
  }
68
- catch (_a) {
70
+ catch {
69
71
  throw new Error(`Couldn't read config ${pathname}`);
70
72
  }
71
73
  }
@@ -2,9 +2,9 @@ export type CliArgs = Awaited<ReturnType<typeof createCli>>;
2
2
  export declare function createCli(argv: string[]): {
3
3
  [x: string]: unknown;
4
4
  verbose: boolean;
5
+ c: unknown;
5
6
  inspect: number | undefined;
6
7
  target: "client" | "server" | undefined;
7
- c: unknown;
8
8
  env: string[] | undefined;
9
9
  inspectBrk: number | undefined;
10
10
  "inspect-brk": number | undefined;
@@ -28,9 +28,9 @@ export declare function createCli(argv: string[]): {
28
28
  } | Promise<{
29
29
  [x: string]: unknown;
30
30
  verbose: boolean;
31
+ c: unknown;
31
32
  inspect: number | undefined;
32
33
  target: "client" | "server" | undefined;
33
- c: unknown;
34
34
  env: string[] | undefined;
35
35
  inspectBrk: number | undefined;
36
36
  "inspect-brk": number | undefined;
@@ -195,7 +195,7 @@ function getCommandHandler(command, handler) {
195
195
  return async (argv) => {
196
196
  logger_1.default.setVerbose(Boolean(argv.verbose));
197
197
  const config = await (0, config_1.getProjectConfig)(command, argv);
198
- const args = Object.assign(Object.assign({}, config), { logger: logger_1.default });
198
+ const args = { ...config, logger: logger_1.default };
199
199
  const localCmd = resolveLocalCommand(command);
200
200
  logger_1.default.verbose(`running command: ${command}`);
201
201
  return handler ? handler(args, localCmd) : localCmd(args);
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { configureWebpackConfigForStorybook, configureServiceWebpackConfig, } from './common/webpack/storybook';
2
2
  export { createTransformPathsToLocalModules } from './common/typescript/transformers';
3
- export type { ProjectConfig, ServiceConfig, LibraryConfig } from './common/models';
3
+ export { defineConfig } from './common/models';
4
+ export type { ProjectConfig, ServiceConfig, LibraryConfig, ProjectFileConfig } from './common/models';
package/dist/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTransformPathsToLocalModules = exports.configureServiceWebpackConfig = exports.configureWebpackConfigForStorybook = void 0;
3
+ exports.defineConfig = exports.createTransformPathsToLocalModules = exports.configureServiceWebpackConfig = exports.configureWebpackConfigForStorybook = void 0;
4
4
  var storybook_1 = require("./common/webpack/storybook");
5
5
  Object.defineProperty(exports, "configureWebpackConfigForStorybook", { enumerable: true, get: function () { return storybook_1.configureWebpackConfigForStorybook; } });
6
6
  Object.defineProperty(exports, "configureServiceWebpackConfig", { enumerable: true, get: function () { return storybook_1.configureServiceWebpackConfig; } });
7
7
  var transformers_1 = require("./common/typescript/transformers");
8
8
  Object.defineProperty(exports, "createTransformPathsToLocalModules", { enumerable: true, get: function () { return transformers_1.createTransformPathsToLocalModules; } });
9
+ var models_1 = require("./common/models");
10
+ Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return models_1.defineConfig; } });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gravity-ui/app-builder",
3
- "version": "0.2.2",
4
- "description": "",
3
+ "version": "0.3.0",
4
+ "description": "Develop and build your React client-server projects, powered by typescript and webpack",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -9,7 +9,7 @@
9
9
  "app-builder": "dist/cli.js"
10
10
  },
11
11
  "engines": {
12
- "node": ">= 14.15.0"
12
+ "node": ">= 14.18"
13
13
  },
14
14
  "files": [
15
15
  "dist"
@@ -31,28 +31,26 @@
31
31
  "typecheck": "tsc --noEmit",
32
32
  "test": "jest",
33
33
  "build": "npm run build:clean && npm run build:compile",
34
- "build:compile": "tsc",
34
+ "build:compile": "tsc --module commonjs --verbatimModuleSyntax false",
35
35
  "build:clean": "rimraf dist",
36
36
  "prepublishOnly": "npm run build"
37
37
  },
38
38
  "dependencies": {
39
- "@aws-sdk/client-s3": "^3.216.0",
40
- "@babel/core": "^7.21.0",
39
+ "@aws-sdk/client-s3": "^3.293.0",
40
+ "@babel/core": "^7.21.4",
41
41
  "@babel/plugin-proposal-decorators": "^7.21.0",
42
42
  "@babel/plugin-proposal-dynamic-import": "^7.18.6",
43
43
  "@babel/plugin-transform-modules-commonjs": "^7.21.2",
44
- "@babel/plugin-transform-runtime": "^7.21.0",
45
- "@babel/preset-env": "^7.20.2",
44
+ "@babel/plugin-transform-runtime": "^7.21.4",
45
+ "@babel/preset-env": "^7.21.4",
46
46
  "@babel/preset-react": "^7.18.6",
47
- "@babel/preset-typescript": "^7.21.0",
47
+ "@babel/preset-typescript": "^7.21.4",
48
48
  "@babel/runtime": "^7.21.0",
49
49
  "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
50
- "@statoscope/webpack-plugin": "^5.25.1",
51
- "@svgr/core": "^6.5.1",
52
- "@svgr/webpack": "^6.5.1",
50
+ "@statoscope/webpack-plugin": "^5.26.2",
51
+ "@svgr/core": "^7.0.0",
52
+ "@svgr/webpack": "^7.0.0",
53
53
  "babel-loader": "^9.1.2",
54
- "babel-plugin-dynamic-import-node": "^2.3.3",
55
- "babel-plugin-inline-react-svg": "^2.0.2",
56
54
  "babel-plugin-lodash": "^3.3.4",
57
55
  "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
58
56
  "chalk": "^4.1.2",
@@ -60,7 +58,7 @@
60
58
  "clean-webpack-plugin": "^4.0.0",
61
59
  "clear": "^0.1.0",
62
60
  "common-tags": "^1.8.2",
63
- "cosmiconfig": "^7.1.0",
61
+ "cosmiconfig": "^8.1.3",
64
62
  "cosmiconfig-typescript-loader": "^4.3.0",
65
63
  "css-loader": "^6.7.3",
66
64
  "css-minimizer-webpack-plugin": "^4.2.2",
@@ -68,57 +66,57 @@
68
66
  "execa": "^5.1.1",
69
67
  "fast-glob": "^3.2.12",
70
68
  "file-type": "^16.5.3",
71
- "fork-ts-checker-webpack-plugin": "^7.3.0",
72
- "fs-extra": "^11.1.0",
69
+ "fork-ts-checker-webpack-plugin": "^8.0.0",
70
+ "fs-extra": "^11.1.1",
73
71
  "get-port": "^5.1.1",
74
72
  "lodash": "^4.17.21",
75
73
  "mime-types": "^2.1.35",
76
- "mini-css-extract-plugin": "^2.7.2",
74
+ "mini-css-extract-plugin": "^2.7.5",
77
75
  "moment-timezone-data-webpack-plugin": "^1.5.1",
78
- "nodemon": "^2.0.20",
76
+ "nodemon": "^2.0.22",
79
77
  "p-map": "^4.0.0",
80
78
  "p-queue": "^6.6.2",
81
- "pino-pretty": "^9.4.0",
82
- "postcss": "^8.4.21",
83
- "postcss-loader": "^7.0.2",
84
- "postcss-preset-env": "^8.0.1",
79
+ "pino-pretty": "^10.0.0",
80
+ "postcss": "^8.4.23",
81
+ "postcss-loader": "^7.2.4",
82
+ "postcss-preset-env": "^8.3.2",
85
83
  "react": "^18.2.0",
86
84
  "react-dom": "^18.2.0",
87
85
  "react-refresh": "^0.14.0",
88
86
  "resolve-url-loader": "^5.0.0",
89
- "rimraf": "^4.1.2",
90
- "sass": "^1.58.3",
91
- "sass-loader": "^13.2.0",
92
- "semver": "^7.3.8",
87
+ "rimraf": "^5.0.0",
88
+ "sass": "^1.61.0",
89
+ "sass-loader": "^13.2.2",
90
+ "semver": "^7.5.0",
93
91
  "signal-exit": "^3.0.7",
94
92
  "source-map-loader": "^4.0.1",
95
93
  "strip-ansi": "^6.0.1",
96
- "style-loader": "^3.3.1",
94
+ "style-loader": "^3.3.2",
97
95
  "svgo": "^3.0.2",
98
96
  "ts-node": "10.9.1",
99
97
  "tslib": "^2.5.0",
100
- "typescript": "^4.9.5",
101
- "webpack": "^5.75.0",
98
+ "typescript": "^5.0.4",
99
+ "webpack": "^5.81.0",
102
100
  "webpack-assets-manifest": "^5.1.0",
103
101
  "webpack-bundle-analyzer": "^4.8.0",
104
- "webpack-dev-server": "^4.13.2",
102
+ "webpack-dev-server": "^4.13.3",
105
103
  "webpack-manifest-plugin": "^5.0.0",
106
104
  "worker-loader": "^3.0.8",
107
- "yargs": "^17.7.1"
105
+ "yargs": "^17.7.2"
108
106
  },
109
107
  "devDependencies": {
110
- "@commitlint/cli": "^17.4.4",
111
- "@commitlint/config-conventional": "^17.4.4",
108
+ "@commitlint/cli": "^17.6.3",
109
+ "@commitlint/config-conventional": "^17.6.3",
112
110
  "@gravity-ui/eslint-config": "^1.0.2",
113
111
  "@gravity-ui/prettier-config": "^1.0.1",
114
112
  "@gravity-ui/tsconfig": "^1.0.0",
115
113
  "@types/circular-dependency-plugin": "^5.0.5",
116
114
  "@types/common-tags": "^1.8.1",
117
115
  "@types/fs-extra": "^11.0.1",
118
- "@types/jest": "^29.4.0",
119
- "@types/lodash": "^4.14.191",
116
+ "@types/jest": "^29.5.1",
117
+ "@types/lodash": "^4.14.194",
120
118
  "@types/mime-types": "^2.1.1",
121
- "@types/node": "^14.18.37",
119
+ "@types/node": "^14.18.45",
122
120
  "@types/nodemon": "^1.19.2",
123
121
  "@types/sass": "^1.45.0",
124
122
  "@types/semver": "^7.3.13",
@@ -127,14 +125,15 @@
127
125
  "@types/webpack-assets-manifest": "^5.1.0",
128
126
  "@types/webpack-bundle-analyzer": "^4.6.0",
129
127
  "@types/webpack-manifest-plugin": "^3.0.5",
130
- "eslint": "^8.35.0",
128
+ "@types/yargs": "17.0.11",
129
+ "eslint": "^8.40.0",
131
130
  "husky": "^8.0.3",
132
- "jest": "^29.4.3",
131
+ "jest": "^29.5.0",
133
132
  "monaco-editor-webpack-plugin": "^6.0.0",
134
133
  "nano-staged": "^0.8.0",
135
134
  "npm-run-all": "^4.1.5",
136
- "prettier": "^2.8.0",
137
- "ts-jest": "^29.0.5"
135
+ "prettier": "2.8.0",
136
+ "ts-jest": "^29.1.0"
138
137
  },
139
138
  "peerDependencies": {
140
139
  "monaco-editor-webpack-plugin": "*"