arui-scripts 13.3.0 → 13.4.0-feat-vite-dev-build.1

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 (64) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/build/bin/index.js +1 -0
  3. package/build/commands/archive-build/index.js +3 -3
  4. package/build/commands/build/build-wrapper.d.ts +1 -1
  5. package/build/commands/build/build-wrapper.js +2 -2
  6. package/build/commands/build/client.js +4 -4
  7. package/build/commands/build/index.js +3 -3
  8. package/build/commands/build/server.js +2 -2
  9. package/build/commands/bundle-analyze/index.js +2 -2
  10. package/build/commands/docker-build/index.js +7 -7
  11. package/build/commands/docker-build-compiled/index.js +5 -5
  12. package/build/commands/start/client.js +3 -3
  13. package/build/commands/start/index.js +3 -3
  14. package/build/commands/start/server.js +2 -2
  15. package/build/commands/start-vite/client.d.ts +1 -0
  16. package/build/commands/start-vite/client.js +62 -0
  17. package/build/commands/start-vite/index.d.ts +1 -0
  18. package/build/commands/start-vite/index.js +30 -0
  19. package/build/commands/util/client-assets-sizes.d.ts +3 -3
  20. package/build/commands/util/client-assets-sizes.js +9 -9
  21. package/build/commands/util/docker-build.d.ts +1 -1
  22. package/build/commands/util/localhost-certs.d.ts +2 -0
  23. package/build/commands/util/localhost-certs.js +50 -0
  24. package/build/commands/util/start-http2-proxy-server.d.ts +7 -0
  25. package/build/commands/util/start-http2-proxy-server.js +40 -0
  26. package/build/commands/util/vite-proxy-utils.d.ts +63 -0
  27. package/build/commands/util/vite-proxy-utils.js +94 -0
  28. package/build/commands/util/yarn.d.ts +3 -2
  29. package/build/commands/util/yarn.js +19 -1
  30. package/build/configs/app-configs/available-package-settings.d.ts +2 -2
  31. package/build/configs/app-configs/calculate-dependent-config.js +3 -3
  32. package/build/configs/app-configs/get-defaults.js +2 -1
  33. package/build/configs/app-configs/index.js +6 -6
  34. package/build/configs/app-configs/types.d.ts +2 -1
  35. package/build/configs/app-configs/update-with-config-file.js +3 -3
  36. package/build/configs/app-configs/update-with-env.js +2 -2
  37. package/build/configs/app-configs/update-with-package.js +2 -2
  38. package/build/configs/app-configs/update-with-presets.js +4 -4
  39. package/build/configs/babel-client.js +1 -1
  40. package/build/configs/babel-dependencies.js +1 -1
  41. package/build/configs/babel-server.js +1 -1
  42. package/build/configs/dev-server.js +1 -1
  43. package/build/configs/jest/file-transform.d.ts +1 -2
  44. package/build/configs/jest/index.d.ts +8 -8
  45. package/build/configs/postcss.config.d.ts +1 -1
  46. package/build/configs/postcss.js +1 -1
  47. package/build/configs/stats-options.js +1 -1
  48. package/build/configs/supporting-browsers.js +1 -1
  49. package/build/configs/util/apply-overrides.d.ts +6 -3
  50. package/build/configs/vite.config.d.ts +1 -0
  51. package/build/configs/vite.config.js +46 -0
  52. package/build/configs/vite.html-template.d.ts +1 -0
  53. package/build/configs/vite.html-template.js +16 -0
  54. package/build/configs/webpack.client.dev.js +7 -2
  55. package/build/configs/webpack.client.prod.js +5 -3
  56. package/build/configs/webpack.server.dev.js +3 -3
  57. package/build/configs/webpack.server.prod.js +3 -3
  58. package/build/index.js +1 -0
  59. package/build/templates/dockerfile-compiled.template.js +15 -6
  60. package/build/templates/dockerfile.template.js +1 -1
  61. package/build/templates/nginx.conf.template.js +1 -1
  62. package/build/templates/start.template.js +1 -1
  63. package/build/tsconfig-local.tsbuildinfo +1 -8816
  64. package/package.json +8 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ # [13.4.0-feat-vite-dev-build.1](https://git.moscow.alfaintra.net/ef/arui-scripts/compare/v13.3.1...v13.4.0-feat-vite-dev-build.1) (2023-01-20)
2
+
3
+
4
+ ### Features
5
+
6
+ * add vite as dev build server ([7a2059e](https://git.moscow.alfaintra.net/ef/arui-scripts/commit/7a2059e00c86c3cb21fb5e23bb29574c2360007f))
7
+
8
+ ## [13.3.1](https://git.moscow.alfaintra.net/ef/arui-scripts/compare/v13.3.0...v13.3.1) (2022-12-13)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **docker-build-compiled:** add yarn2 required files before build ([c252535](https://git.moscow.alfaintra.net/ef/arui-scripts/commit/c2525358e7573e599bbdb20160453cc077f5a083))
14
+ * **docker-build-compiled:** don't override existing .dockerignore ([b0c20c2](https://git.moscow.alfaintra.net/ef/arui-scripts/commit/b0c20c25792edbb5b73cd2bb36725b214cb4aadd))
15
+
1
16
  # [13.3.0](https://git.moscow.alfaintra.net/ef/arui-scripts/compare/v13.2.1...v13.3.0) (2022-12-08)
2
17
 
3
18
 
@@ -3,6 +3,7 @@
3
3
  /* eslint import/no-dynamic-require: 0 */
4
4
  const commands = {
5
5
  start: () => require('../commands/start'),
6
+ 'start-vite': () => require('../commands/start-vite'),
6
7
  build: () => require('../commands/build'),
7
8
  'docker-build': () => require('../commands/docker-build'),
8
9
  'docker-build:compiled': () => require('../commands/docker-build-compiled'),
@@ -46,11 +46,11 @@ const packageJsonPath = path_1.default.join(app_configs_1.default.cwd, packageJs
46
46
  console.timeEnd('Setting up time');
47
47
  console.time('Build application time');
48
48
  // run build script
49
- yield exec_1.default('npm run build');
49
+ yield (0, exec_1.default)('npm run build');
50
50
  console.timeEnd('Build application time');
51
51
  console.time('Remove build dependencies time');
52
- const pruneCommand = yarn_1.getPruningCommand();
53
- yield exec_1.default(pruneCommand);
52
+ const pruneCommand = (0, yarn_1.getPruningCommand)();
53
+ yield (0, exec_1.default)(pruneCommand);
54
54
  console.timeEnd('Remove build dependencies time');
55
55
  console.time('Archive build time');
56
56
  yield Promise.all([
@@ -1,5 +1,5 @@
1
1
  import webpack from 'webpack';
2
- declare type BuildResult = {
2
+ type BuildResult = {
3
3
  stats: webpack.Stats;
4
4
  warnings: string[];
5
5
  previousFileSizes: unknown;
@@ -9,13 +9,13 @@ const chalk_1 = __importDefault(require("chalk"));
9
9
  const webpack_1 = __importDefault(require("webpack"));
10
10
  const format_webpack_messages_1 = __importDefault(require("../util/format-webpack-messages"));
11
11
  function build(config, previousFileSizes) {
12
- let compiler = webpack_1.default(config);
12
+ let compiler = (0, webpack_1.default)(config);
13
13
  return new Promise((resolve, reject) => {
14
14
  compiler.run((err, stats) => {
15
15
  if (err) {
16
16
  return reject(err);
17
17
  }
18
- const messages = format_webpack_messages_1.default(stats === null || stats === void 0 ? void 0 : stats.toJson({}));
18
+ const messages = (0, format_webpack_messages_1.default)(stats === null || stats === void 0 ? void 0 : stats.toJson({}));
19
19
  if (messages.errors.length) {
20
20
  // Only keep the first error. Others are often indicative
21
21
  // of the same problem, but confuse the reader with noise.
@@ -11,7 +11,7 @@ const build_wrapper_1 = __importDefault(require("./build-wrapper"));
11
11
  const client_assets_sizes_1 = require("../util/client-assets-sizes");
12
12
  const webpack_client_prod_1 = __importDefault(require("../../configs/webpack.client.prod"));
13
13
  console.log(chalk_1.default.magenta('Building client...'));
14
- build_wrapper_1.default(webpack_client_prod_1.default)
14
+ (0, build_wrapper_1.default)(webpack_client_prod_1.default)
15
15
  .then(({ stats, warnings }) => {
16
16
  if (warnings.length) {
17
17
  console.log(chalk_1.default.yellow('Client compiled with warnings.\n'));
@@ -24,8 +24,8 @@ build_wrapper_1.default(webpack_client_prod_1.default)
24
24
  }
25
25
  function printOutputSizes(webpackConfig) {
26
26
  var _a;
27
- const sizes = client_assets_sizes_1.calculateAssetsSizes(stats, (_a = webpackConfig === null || webpackConfig === void 0 ? void 0 : webpackConfig.output) === null || _a === void 0 ? void 0 : _a.path);
28
- client_assets_sizes_1.printAssetsSizes(sizes);
27
+ const sizes = (0, client_assets_sizes_1.calculateAssetsSizes)(stats, (_a = webpackConfig === null || webpackConfig === void 0 ? void 0 : webpackConfig.output) === null || _a === void 0 ? void 0 : _a.path);
28
+ (0, client_assets_sizes_1.printAssetsSizes)(sizes);
29
29
  }
30
30
  if (Array.isArray(webpack_client_prod_1.default)) {
31
31
  webpack_client_prod_1.default.forEach(printOutputSizes);
@@ -36,6 +36,6 @@ build_wrapper_1.default(webpack_client_prod_1.default)
36
36
  })
37
37
  .catch((err) => {
38
38
  console.log(chalk_1.default.red('Failed to compile client.\n'));
39
- printBuildError_1.default(err);
39
+ (0, printBuildError_1.default)(err);
40
40
  process.exit(1);
41
41
  });
@@ -14,14 +14,14 @@ const app_configs_1 = __importDefault(require("../../configs/app-configs"));
14
14
  process.env.BABEL_ENV = 'production';
15
15
  process.env.NODE_ENV = 'production';
16
16
  process.env.BROWSERSLIST_CONFIG = process.env.BROWSERSLIST_CONFIG || require.resolve('../../../.browserslistrc');
17
- if (!check_required_files_1.default()) {
17
+ if (!(0, check_required_files_1.default)()) {
18
18
  process.exit(1);
19
19
  }
20
20
  if (fs_extra_1.default.pathExistsSync(app_configs_1.default.serverOutputPath)) {
21
21
  fs_extra_1.default.removeSync(app_configs_1.default.serverOutputPath);
22
22
  }
23
- const compileServer = child_process_1.spawn('node', [path_1.default.join(__dirname, './server')], { stdio: 'inherit' });
24
- const compileClient = child_process_1.spawn('node', [path_1.default.join(__dirname, './client')], { stdio: 'inherit' });
23
+ const compileServer = (0, child_process_1.spawn)('node', [path_1.default.join(__dirname, './server')], { stdio: 'inherit' });
24
+ const compileClient = (0, child_process_1.spawn)('node', [path_1.default.join(__dirname, './client')], { stdio: 'inherit' });
25
25
  const onProcessExit = (code) => {
26
26
  if (code !== 0) {
27
27
  compileServer.kill();
@@ -10,7 +10,7 @@ const printBuildError_1 = __importDefault(require("react-dev-utils/printBuildErr
10
10
  const build_wrapper_1 = __importDefault(require("./build-wrapper"));
11
11
  const webpack_server_prod_1 = __importDefault(require("../../configs/webpack.server.prod"));
12
12
  console.log(chalk_1.default.magenta('Building server...'));
13
- build_wrapper_1.default(webpack_server_prod_1.default)
13
+ (0, build_wrapper_1.default)(webpack_server_prod_1.default)
14
14
  .then(({ warnings }) => {
15
15
  if (warnings.length) {
16
16
  console.log(chalk_1.default.yellow('Server compiled with warnings.\n'));
@@ -24,6 +24,6 @@ build_wrapper_1.default(webpack_server_prod_1.default)
24
24
  })
25
25
  .catch((err) => {
26
26
  console.log(chalk_1.default.red('Failed to compile server.\n'));
27
- printBuildError_1.default(err);
27
+ (0, printBuildError_1.default)(err);
28
28
  process.exit(1);
29
29
  });
@@ -19,7 +19,7 @@ const webpack_client_prod_1 = __importDefault(require("../../configs/webpack.cli
19
19
  const app_configs_1 = __importDefault(require("../../configs/app-configs"));
20
20
  (() => __awaiter(void 0, void 0, void 0, function* () {
21
21
  var _a;
22
- const tmpDir = yield make_tmp_dir_1.default();
22
+ const tmpDir = yield (0, make_tmp_dir_1.default)();
23
23
  const plugin = new webpack_bundle_analyzer_1.BundleAnalyzerPlugin({
24
24
  generateStatsFile: true,
25
25
  statsFilename: app_configs_1.default.statsOutputPath,
@@ -31,5 +31,5 @@ const app_configs_1 = __importDefault(require("../../configs/app-configs"));
31
31
  }
32
32
  (_a = clientWebpackConfig.plugins) === null || _a === void 0 ? void 0 : _a.push(plugin);
33
33
  clientWebpackConfig.output.path = tmpDir;
34
- webpack_1.default(clientWebpackConfig).run(() => { });
34
+ (0, webpack_1.default)(clientWebpackConfig).run(() => { });
35
35
  }))();
@@ -21,12 +21,12 @@ const exec_1 = __importDefault(require("../util/exec"));
21
21
  const docker_build_1 = require("../util/docker-build");
22
22
  const yarn_1 = require("../util/yarn");
23
23
  (() => __awaiter(void 0, void 0, void 0, function* () {
24
- const { imageFullName, pathToTempDir, tempDirName } = docker_build_1.getBuildParamsFromArgs();
24
+ const { imageFullName, pathToTempDir, tempDirName } = (0, docker_build_1.getBuildParamsFromArgs)();
25
25
  try {
26
26
  console.log(`Build docker image ${imageFullName}`);
27
27
  console.time('Total time');
28
28
  console.time('Setting up time');
29
- yield docker_build_1.prepareFilesForDocker({
29
+ yield (0, docker_build_1.prepareFilesForDocker)({
30
30
  pathToTempDir,
31
31
  dockerfileTemplate: dockerfile_template_1.default,
32
32
  nginxConfTemplate: nginx_conf_template_1.default,
@@ -37,16 +37,16 @@ const yarn_1 = require("../util/yarn");
37
37
  console.timeEnd('Setting up time');
38
38
  console.time('Build application time');
39
39
  // run build script
40
- yield exec_1.default('npm run build');
40
+ yield (0, exec_1.default)('npm run build');
41
41
  console.timeEnd('Build application time');
42
42
  if (app_configs_1.default.removeDevDependenciesDuringDockerBuild) {
43
43
  console.time('Remove dev dependencies time');
44
- const pruneCommand = yarn_1.getPruningCommand();
45
- yield exec_1.default(pruneCommand);
44
+ const pruneCommand = (0, yarn_1.getPruningCommand)();
45
+ yield (0, exec_1.default)(pruneCommand);
46
46
  console.timeEnd('Remove dev dependencies time');
47
47
  }
48
48
  console.time('Build docker image time');
49
- yield exec_1.default(`docker build -f "./${tempDirName}/Dockerfile" \\
49
+ yield (0, exec_1.default)(`docker build -f "./${tempDirName}/Dockerfile" \\
50
50
  --build-arg START_SH_LOCATION="./${tempDirName}/start.sh" \\
51
51
  --build-arg NGINX_CONF_LOCATION="./${tempDirName}/nginx.conf" -t ${imageFullName} .`);
52
52
  console.timeEnd('Build docker image time');
@@ -55,7 +55,7 @@ const yarn_1 = require("../util/yarn");
55
55
  yield fs_extra_1.default.remove(pathToTempDir);
56
56
  // guard against pushing the image during tests
57
57
  if (!app_configs_1.default.debug) {
58
- yield exec_1.default(`docker push ${imageFullName}`);
58
+ yield (0, exec_1.default)(`docker push ${imageFullName}`);
59
59
  }
60
60
  console.timeEnd('Cleanup time');
61
61
  console.timeEnd('Total time');
@@ -20,25 +20,25 @@ const start_template_1 = __importDefault(require("../../templates/start.template
20
20
  const exec_1 = __importDefault(require("../util/exec"));
21
21
  const docker_build_1 = require("../util/docker-build");
22
22
  (() => __awaiter(void 0, void 0, void 0, function* () {
23
- const { imageFullName, pathToTempDir, tempDirName } = docker_build_1.getBuildParamsFromArgs();
23
+ const { imageFullName, pathToTempDir, tempDirName } = (0, docker_build_1.getBuildParamsFromArgs)();
24
24
  try {
25
25
  console.log(`Build docker image ${imageFullName}`);
26
26
  console.time('Total time');
27
- yield docker_build_1.prepareFilesForDocker({
27
+ yield (0, docker_build_1.prepareFilesForDocker)({
28
28
  pathToTempDir,
29
29
  dockerfileTemplate: dockerfile_compiled_template_1.default,
30
30
  nginxConfTemplate: nginx_conf_template_1.default,
31
31
  startScript: start_template_1.default,
32
32
  allowLocalDockerfile: false,
33
33
  });
34
- yield exec_1.default('echo "node_modules" > .dockerignore');
35
- yield exec_1.default(`docker build -f "./${tempDirName}/Dockerfile" \\
34
+ yield (0, exec_1.default)('echo "node_modules" >> .dockerignore');
35
+ yield (0, exec_1.default)(`docker build -f "./${tempDirName}/Dockerfile" \\
36
36
  --build-arg START_SH_LOCATION="./${tempDirName}/start.sh" \\
37
37
  --build-arg NGINX_CONF_LOCATION="./${tempDirName}/nginx.conf" -t ${imageFullName} .`);
38
38
  yield fs_extra_1.default.remove(pathToTempDir);
39
39
  // guard against pushing the image during tests
40
40
  if (!app_configs_1.default.debug) {
41
- yield exec_1.default(`docker push ${imageFullName}`);
41
+ yield (0, exec_1.default)(`docker push ${imageFullName}`);
42
42
  }
43
43
  console.timeEnd('Total time');
44
44
  }
@@ -9,16 +9,16 @@ const WebpackDevServerUtils_1 = require("react-dev-utils/WebpackDevServerUtils")
9
9
  const print_compiler_output_1 = __importDefault(require("./print-compiler-output"));
10
10
  const webpack_client_dev_1 = __importDefault(require("../../configs/webpack.client.dev"));
11
11
  const dev_server_1 = __importDefault(require("../../configs/dev-server"));
12
- const clientCompiler = webpack_1.default(webpack_client_dev_1.default);
12
+ const clientCompiler = (0, webpack_1.default)(webpack_client_dev_1.default);
13
13
  // не резолвиться constructor(config: WebpackDevServer.Configuration, webpack?: webpack.Compiler | webpack.MultiCompiler);
14
14
  // clientCompiler: webpack.Compiler
15
15
  // @ts-ignore
16
16
  const clientDevServer = new webpack_dev_server_1.default(dev_server_1.default, clientCompiler);
17
17
  clientCompiler.hooks.invalid.tap('client', () => console.log('Compiling client...'));
18
- clientCompiler.hooks.done.tap('client', (stats) => print_compiler_output_1.default('Client', stats));
18
+ clientCompiler.hooks.done.tap('client', (stats) => (0, print_compiler_output_1.default)('Client', stats));
19
19
  const DEFAULT_PORT = dev_server_1.default.port;
20
20
  const HOST = '0.0.0.0';
21
- WebpackDevServerUtils_1.choosePort(HOST, +(DEFAULT_PORT || 0))
21
+ (0, WebpackDevServerUtils_1.choosePort)(HOST, +(DEFAULT_PORT || 0))
22
22
  .then((port) => {
23
23
  if (!port) {
24
24
  // We have not found a port.
@@ -9,14 +9,14 @@ const path_1 = __importDefault(require("path"));
9
9
  const check_required_files_1 = __importDefault(require("../util/check-required-files"));
10
10
  const app_configs_1 = __importDefault(require("../../configs/app-configs"));
11
11
  process.env.BROWSERSLIST_CONFIG = process.env.BROWSERSLIST_CONFIG || require.resolve('../../../.browserslistrc');
12
- if (!check_required_files_1.default()) {
12
+ if (!(0, check_required_files_1.default)()) {
13
13
  process.exit(1);
14
14
  }
15
15
  if (fs_extra_1.default.pathExistsSync(app_configs_1.default.serverOutputPath)) {
16
16
  fs_extra_1.default.removeSync(app_configs_1.default.serverOutputPath);
17
17
  }
18
- const compileServer = child_process_1.spawn('node', [path_1.default.join(__dirname, './server')], { stdio: 'inherit' });
19
- const compileClient = child_process_1.spawn('node', [path_1.default.join(__dirname, './client')], { stdio: 'inherit' });
18
+ const compileServer = (0, child_process_1.spawn)('node', [path_1.default.join(__dirname, './server')], { stdio: 'inherit' });
19
+ const compileClient = (0, child_process_1.spawn)('node', [path_1.default.join(__dirname, './client')], { stdio: 'inherit' });
20
20
  const onProcessExit = (code) => {
21
21
  if (code !== 0) {
22
22
  compileServer.kill();
@@ -7,10 +7,10 @@ const webpack_1 = __importDefault(require("webpack"));
7
7
  const print_compiler_output_1 = __importDefault(require("./print-compiler-output"));
8
8
  const webpack_server_dev_1 = __importDefault(require("../../configs/webpack.server.dev"));
9
9
  const app_configs_1 = __importDefault(require("../../configs/app-configs"));
10
- const serverCompiler = webpack_1.default(webpack_server_dev_1.default);
10
+ const serverCompiler = (0, webpack_1.default)(webpack_server_dev_1.default);
11
11
  serverCompiler.hooks.compile.tap('server', () => console.log('Compiling server...'));
12
12
  serverCompiler.hooks.invalid.tap('server', () => console.log('Compiling server...'));
13
- serverCompiler.hooks.done.tap('server', (stats) => print_compiler_output_1.default('Server', stats));
13
+ serverCompiler.hooks.done.tap('server', (stats) => (0, print_compiler_output_1.default)('Server', stats));
14
14
  serverCompiler.watch({
15
15
  aggregateTimeout: 50,
16
16
  ignored: new RegExp(app_configs_1.default.watchIgnorePath.join('|')),
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const express_1 = __importDefault(require("express"));
16
+ const app_configs_1 = __importDefault(require("../../configs/app-configs"));
17
+ const vite_1 = require("vite");
18
+ const node_html_parser_1 = require("node-html-parser");
19
+ const vite_config_1 = require("../../configs/vite.config");
20
+ const vite_html_template_1 = require("../../configs/vite.html-template");
21
+ const start_http2_proxy_server_1 = require("../util/start-http2-proxy-server");
22
+ const vite_proxy_utils_1 = require("../util/vite-proxy-utils");
23
+ (function () {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const app = (0, express_1.default)();
26
+ const vite = yield (0, vite_1.createServer)(vite_config_1.viteConfig);
27
+ (0, vite_proxy_utils_1.generateFakeWebpackAssets)();
28
+ app.use(vite.middlewares);
29
+ const template = yield vite.transformIndexHtml('/', vite_html_template_1.viteHtmlTemplate);
30
+ const parsedTemplate = (0, node_html_parser_1.parse)(template);
31
+ const templateScripts = parsedTemplate.querySelectorAll('script');
32
+ app.use('/', (req, res) => __awaiter(this, void 0, void 0, function* () {
33
+ const isAssetsRequest = (0, vite_proxy_utils_1.checkIfIsAssetsRequest)(req);
34
+ if (isAssetsRequest) {
35
+ (0, vite_proxy_utils_1.processAssetsRequests)(req, res);
36
+ return;
37
+ }
38
+ const fetchRes = yield (0, vite_proxy_utils_1.fetchDataFromServer)(req);
39
+ const isHtmlResponse = (0, vite_proxy_utils_1.checkIfIsHtmlResponse)(fetchRes);
40
+ if (!isHtmlResponse) {
41
+ res
42
+ .status(fetchRes.status)
43
+ .set(fetchRes.headers)
44
+ .end(fetchRes.data);
45
+ return;
46
+ }
47
+ const { responseRoot, headers } = (0, vite_proxy_utils_1.updateHtmlResponse)(fetchRes, templateScripts);
48
+ res
49
+ .status(fetchRes.status)
50
+ .set(headers)
51
+ .end(responseRoot.toString());
52
+ }));
53
+ app.listen({
54
+ port: app_configs_1.default.viteDevPort,
55
+ });
56
+ });
57
+ })();
58
+ (0, start_http2_proxy_server_1.startHttp2ProxyServer)({
59
+ originalPort: app_configs_1.default.viteDevPort,
60
+ originalHost: 'localhost',
61
+ port: app_configs_1.default.clientServerPort,
62
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const child_process_1 = require("child_process");
7
+ const fs_extra_1 = __importDefault(require("fs-extra"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const check_required_files_1 = __importDefault(require("../util/check-required-files"));
10
+ const app_configs_1 = __importDefault(require("../../configs/app-configs"));
11
+ process.env.BROWSERSLIST_CONFIG = process.env.BROWSERSLIST_CONFIG || require.resolve('../../../.browserslistrc');
12
+ if (!(0, check_required_files_1.default)()) {
13
+ process.exit(1);
14
+ }
15
+ if (fs_extra_1.default.pathExistsSync(app_configs_1.default.serverOutputPath)) {
16
+ fs_extra_1.default.removeSync(app_configs_1.default.serverOutputPath);
17
+ }
18
+ const compileServer = (0, child_process_1.spawn)('node', [path_1.default.join(__dirname, '../start/server')], { stdio: 'inherit' });
19
+ const compileClient = (0, child_process_1.spawn)('node', [path_1.default.join(__dirname, './client')], { stdio: 'inherit' });
20
+ const onProcessExit = (code) => {
21
+ if (code !== 0) {
22
+ compileServer.kill();
23
+ compileClient.kill();
24
+ process.exit(code);
25
+ }
26
+ };
27
+ compileClient.on('error', onProcessExit);
28
+ compileServer.on('error', onProcessExit);
29
+ compileServer.on('close', onProcessExit);
30
+ compileClient.on('close', onProcessExit);
@@ -1,5 +1,5 @@
1
1
  import { Stats } from 'webpack';
2
- declare type AssetSize = {
2
+ type AssetSize = {
3
3
  name: string;
4
4
  fullName: string;
5
5
  gzipSize: number;
@@ -9,7 +9,7 @@ declare type AssetSize = {
9
9
  gzipLabel: string;
10
10
  brotliLabel: string;
11
11
  };
12
- declare type TotalSizes = {
12
+ type TotalSizes = {
13
13
  size: number;
14
14
  sizeLabel: string;
15
15
  gzipSize: number;
@@ -17,7 +17,7 @@ declare type TotalSizes = {
17
17
  brotliSize: number;
18
18
  brotliLabel: string;
19
19
  };
20
- declare type ClientAssetsSizes = {
20
+ type ClientAssetsSizes = {
21
21
  totalSizes: TotalSizes;
22
22
  assets: AssetSize[];
23
23
  };
@@ -34,7 +34,7 @@ function calculateAssetsSizes(webpackStats, rootDir = '') {
34
34
  .filter((asset) => canReadAsset(asset.name))
35
35
  .map((asset) => {
36
36
  const fileContents = fs_1.default.readFileSync(path_1.default.join(rootDir, asset.name));
37
- const size = gzip_size_1.sync(fileContents);
37
+ const size = (0, gzip_size_1.sync)(fileContents);
38
38
  const brSize = brotliSize(fileContents);
39
39
  const filename = path_1.default.basename(asset.name);
40
40
  return {
@@ -43,9 +43,9 @@ function calculateAssetsSizes(webpackStats, rootDir = '') {
43
43
  gzipSize: size,
44
44
  brotliSize: brSize,
45
45
  size: asset.size,
46
- sizeLabel: filesize_1.default(asset.size),
47
- gzipLabel: filesize_1.default(size),
48
- brotliLabel: brSize ? filesize_1.default(brSize) : '-'
46
+ sizeLabel: (0, filesize_1.default)(asset.size),
47
+ gzipLabel: (0, filesize_1.default)(size),
48
+ brotliLabel: brSize ? (0, filesize_1.default)(brSize) : '-'
49
49
  };
50
50
  });
51
51
  const totalSizes = (assets || []).reduce((file, total) => {
@@ -55,9 +55,9 @@ function calculateAssetsSizes(webpackStats, rootDir = '') {
55
55
  brotliSize: total.brotliSize + file.brotliSize
56
56
  };
57
57
  }, { size: 0, gzipSize: 0, brotliSize: 0 });
58
- totalSizes.sizeLabel = filesize_1.default(totalSizes.size || 0);
59
- totalSizes.gzipLabel = filesize_1.default(totalSizes.gzipSize || 0);
60
- totalSizes.brotliLabel = totalSizes.brotliSize ? filesize_1.default(totalSizes.brotliSize) : '-';
58
+ totalSizes.sizeLabel = (0, filesize_1.default)(totalSizes.size || 0);
59
+ totalSizes.gzipLabel = (0, filesize_1.default)(totalSizes.gzipSize || 0);
60
+ totalSizes.brotliLabel = totalSizes.brotliSize ? (0, filesize_1.default)(totalSizes.brotliSize) : '-';
61
61
  return {
62
62
  totalSizes: totalSizes,
63
63
  assets
@@ -66,13 +66,13 @@ function calculateAssetsSizes(webpackStats, rootDir = '') {
66
66
  exports.calculateAssetsSizes = calculateAssetsSizes;
67
67
  function printAssetsSizes(sizes) {
68
68
  const longestSizeLabelLength = Math.max.apply(null, sizes.assets.map(a => {
69
- const sizeLength = strip_ansi_1.default(a.gzipLabel).length;
69
+ const sizeLength = (0, strip_ansi_1.default)(a.gzipLabel).length;
70
70
  return sizeLength + sizeLength + 8;
71
71
  }));
72
72
  console.log(chalk_1.default.blueBright('Assets sizes:'));
73
73
  sizes.assets.forEach(asset => {
74
74
  let sizeLabel = `${asset.sizeLabel} (${asset.gzipLabel} gzip, ${asset.brotliLabel} br)`;
75
- const sizeLength = strip_ansi_1.default(sizeLabel).length;
75
+ const sizeLength = (0, strip_ansi_1.default)(sizeLabel).length;
76
76
  if (sizeLength < longestSizeLabelLength) {
77
77
  const rightPadding = ' '.repeat(longestSizeLabelLength - sizeLength);
78
78
  sizeLabel += rightPadding;
@@ -3,7 +3,7 @@ export declare function getBuildParamsFromArgs(): {
3
3
  imageFullName: string;
4
4
  tempDirName: string;
5
5
  };
6
- declare type PrepareFilesForDockerParams = {
6
+ type PrepareFilesForDockerParams = {
7
7
  dockerfileTemplate: string;
8
8
  nginxConfTemplate: string;
9
9
  startScript: string;
@@ -0,0 +1,2 @@
1
+ export declare const cert = "-----BEGIN CERTIFICATE-----\nMIICpDCCAYwCCQCPDkY1s7gG5jANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls\nb2NhbGhvc3QwHhcNMjMwMTE5MTcyMzIyWhcNMjMwMjE4MTcyMzIyWjAUMRIwEAYD\nVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ\nCoFkT5HA9OVLWq1t7vPS9yEjDK73fdR6WAF4QuIkuvxrAAvYnTGzyLf523mOH7wZ\nzXduGWyM4oM+94tmmjpSLYC9qqY94MT7oiktjLgZ+qRzTS+rJ0bHwHvxISYFezr5\n5WfQunhV95joLviFs2AWHKNzl7Lud9UlLq2z0M00ebBjMztCRZIAio/ac7RGLhAQ\nzo1+i1+g3fAXxi9m/50//qb0rEdlAo2d0Q2ePpgEbSxaIccCp8Osek4sSaA3bTl2\nUEn/71UopYreRRfPQgXkPItX42mlyu4cMkyQNHfxwiQcrXcaFZZYPEUBWa9u7zHO\nunI+TD/Fr0UgjWacQGQhAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMGyF7WvhdIB\naxdIOLuAig06VyQsIhCgRw5vLuNtM8MayU3xnZgNfK5vIf//6WT/IyEyOxmQbxx3\nP7Lfm2VqWjOPx0h/IrlQ1Z9voPCtFf4cqu807GsAa/SY9JpWMswu9NPrlJoL0/nW\nwW3+eQQD0JwbC0zmTOKEawhUiXy9kmb3YyVMAUpC5WWtXAyuA9yeYECOr1FLkHub\nPrMM9T8jkvEdZp9Tovu1K/Cbhka2tsCErZA7UtRXwf9Hs7U5rrkkPbD5eFuuDkXh\n3dD18JbAvWWlO3+agV3tVzBof9gLZ1DtM8Wd7pWIK0VSaL5V9Z3WHZBWCKrJOJnX\nK7CQHOdf/pk=\n-----END CERTIFICATE-----\n";
2
+ export declare const privateKey = "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDZCoFkT5HA9OVL\nWq1t7vPS9yEjDK73fdR6WAF4QuIkuvxrAAvYnTGzyLf523mOH7wZzXduGWyM4oM+\n94tmmjpSLYC9qqY94MT7oiktjLgZ+qRzTS+rJ0bHwHvxISYFezr55WfQunhV95jo\nLviFs2AWHKNzl7Lud9UlLq2z0M00ebBjMztCRZIAio/ac7RGLhAQzo1+i1+g3fAX\nxi9m/50//qb0rEdlAo2d0Q2ePpgEbSxaIccCp8Osek4sSaA3bTl2UEn/71UopYre\nRRfPQgXkPItX42mlyu4cMkyQNHfxwiQcrXcaFZZYPEUBWa9u7zHOunI+TD/Fr0Ug\njWacQGQhAgMBAAECggEAHLgnJv7gaof9T1tQV5um5+OLnveur1EXLJk4mJFBG1si\ny4XWC3PBf+ivb4B7NTM90Kw/gXIbywiuFUbsS0ddMEKVJoPOO6HibummSUC1m7pu\nyFMOW7d2xjfSLrYUMeV8iFSyyAvkoHuC4DZW7Fov/L0NY95O7v8sVR84HPMkNC0n\nj11O6F8s8m0MqiS5YGTjgreJvFqHVjla5BIaQ1+kM/U9HKo8lPjdRNeaDK1RG7+a\ncN217yn0vSq2RWWQIaATOVBxug/5+3l458l1mhPrBOoFeKrvUnB7ZaWV6AOgezMw\nuz1Vpyy3Ccp51u6oXeCq0ar+UKA7hHBigmVgPfnlgQKBgQD5OCMxefjR5a7uW2m1\nU8jDjbTZE4qoGMd0W8reE4YEko5A7H9prkW8rNmpnvhl3dX8yxK8/Y+RMNDKvFBG\n/rlxL+EO2KCiUv5dkA+/AHlw3OhZOP6UFMFohsq8S94+DZCQ9bF7zrwooxCp7MOe\nQ5/ADvglELeQMi/JH17NiM3BywKBgQDe8j1usTZk5iKBo133PRL/xV89v+U2kJG6\nKDuaX+90M8XblaferowZvzp+Ui+W9euMl8rS2aTVsnfRXiYOYcnWo9i0tAKI7pWS\nWIebxgAqfq2hgorbT9y2/y0gZZcn+kjWvbaGBlHskixxeWmwceRxNTI+MWb79HIN\n3vEeLC6EQwKBgQD1EwZQvjA4QJSgotY10TmJTE2+dmAQ46UoQKgjcLGGx5QKNkcp\nZo3/dz7odYKxsc+fsxcvMG3BCm8YHs0Ws6EqtDmuPsrgNZsb6PIDEvVZTnNSYiC/\nABYdswek2TqobPBwDJxHMsqHb6uQXlsTxE5RMKdG08SfkSq6rhWtKs2jtwKBgA0e\nE58/rgOhxsX55r11SnjiFAh+Ee5z8x8Q3vDmVCByK2IQHCBuBLA/ICHuk/492e4b\nwENHqvsn1QTslTCjcEzAty9qp/uGjiZeLxxrOfdGHNEz7ReaS1I5EV6mm44um7qG\nzwZzuL5Cm3rRufY3vUkr6Bjgrz6D03Ide/JahyIhAoGAVM+gYsj3kmsNeOR7TtrZ\nu48RRSbkxelNJ2WdSJXPV2BEa7rv3X/VR0j1yJywBu6k07P5E4wWnhFugIHMQLJT\nbeSRR0LZG1NyE4TxrNHUApJeoVP3GQxCXsHwRxCNEJow81KibVepTjACpYlsCYhJ\nE4LSJQR5bDVHw147zBmNtZQ=\n-----END PRIVATE KEY-----";
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ // Эти сертификаты предназначены только для локальной разработки, поэтому их безопасно разместить так
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.privateKey = exports.cert = void 0;
5
+ exports.cert = `-----BEGIN CERTIFICATE-----
6
+ MIICpDCCAYwCCQCPDkY1s7gG5jANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls
7
+ b2NhbGhvc3QwHhcNMjMwMTE5MTcyMzIyWhcNMjMwMjE4MTcyMzIyWjAUMRIwEAYD
8
+ VQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ
9
+ CoFkT5HA9OVLWq1t7vPS9yEjDK73fdR6WAF4QuIkuvxrAAvYnTGzyLf523mOH7wZ
10
+ zXduGWyM4oM+94tmmjpSLYC9qqY94MT7oiktjLgZ+qRzTS+rJ0bHwHvxISYFezr5
11
+ 5WfQunhV95joLviFs2AWHKNzl7Lud9UlLq2z0M00ebBjMztCRZIAio/ac7RGLhAQ
12
+ zo1+i1+g3fAXxi9m/50//qb0rEdlAo2d0Q2ePpgEbSxaIccCp8Osek4sSaA3bTl2
13
+ UEn/71UopYreRRfPQgXkPItX42mlyu4cMkyQNHfxwiQcrXcaFZZYPEUBWa9u7zHO
14
+ unI+TD/Fr0UgjWacQGQhAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMGyF7WvhdIB
15
+ axdIOLuAig06VyQsIhCgRw5vLuNtM8MayU3xnZgNfK5vIf//6WT/IyEyOxmQbxx3
16
+ P7Lfm2VqWjOPx0h/IrlQ1Z9voPCtFf4cqu807GsAa/SY9JpWMswu9NPrlJoL0/nW
17
+ wW3+eQQD0JwbC0zmTOKEawhUiXy9kmb3YyVMAUpC5WWtXAyuA9yeYECOr1FLkHub
18
+ PrMM9T8jkvEdZp9Tovu1K/Cbhka2tsCErZA7UtRXwf9Hs7U5rrkkPbD5eFuuDkXh
19
+ 3dD18JbAvWWlO3+agV3tVzBof9gLZ1DtM8Wd7pWIK0VSaL5V9Z3WHZBWCKrJOJnX
20
+ K7CQHOdf/pk=
21
+ -----END CERTIFICATE-----
22
+ `;
23
+ exports.privateKey = `-----BEGIN PRIVATE KEY-----
24
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDZCoFkT5HA9OVL
25
+ Wq1t7vPS9yEjDK73fdR6WAF4QuIkuvxrAAvYnTGzyLf523mOH7wZzXduGWyM4oM+
26
+ 94tmmjpSLYC9qqY94MT7oiktjLgZ+qRzTS+rJ0bHwHvxISYFezr55WfQunhV95jo
27
+ LviFs2AWHKNzl7Lud9UlLq2z0M00ebBjMztCRZIAio/ac7RGLhAQzo1+i1+g3fAX
28
+ xi9m/50//qb0rEdlAo2d0Q2ePpgEbSxaIccCp8Osek4sSaA3bTl2UEn/71UopYre
29
+ RRfPQgXkPItX42mlyu4cMkyQNHfxwiQcrXcaFZZYPEUBWa9u7zHOunI+TD/Fr0Ug
30
+ jWacQGQhAgMBAAECggEAHLgnJv7gaof9T1tQV5um5+OLnveur1EXLJk4mJFBG1si
31
+ y4XWC3PBf+ivb4B7NTM90Kw/gXIbywiuFUbsS0ddMEKVJoPOO6HibummSUC1m7pu
32
+ yFMOW7d2xjfSLrYUMeV8iFSyyAvkoHuC4DZW7Fov/L0NY95O7v8sVR84HPMkNC0n
33
+ j11O6F8s8m0MqiS5YGTjgreJvFqHVjla5BIaQ1+kM/U9HKo8lPjdRNeaDK1RG7+a
34
+ cN217yn0vSq2RWWQIaATOVBxug/5+3l458l1mhPrBOoFeKrvUnB7ZaWV6AOgezMw
35
+ uz1Vpyy3Ccp51u6oXeCq0ar+UKA7hHBigmVgPfnlgQKBgQD5OCMxefjR5a7uW2m1
36
+ U8jDjbTZE4qoGMd0W8reE4YEko5A7H9prkW8rNmpnvhl3dX8yxK8/Y+RMNDKvFBG
37
+ /rlxL+EO2KCiUv5dkA+/AHlw3OhZOP6UFMFohsq8S94+DZCQ9bF7zrwooxCp7MOe
38
+ Q5/ADvglELeQMi/JH17NiM3BywKBgQDe8j1usTZk5iKBo133PRL/xV89v+U2kJG6
39
+ KDuaX+90M8XblaferowZvzp+Ui+W9euMl8rS2aTVsnfRXiYOYcnWo9i0tAKI7pWS
40
+ WIebxgAqfq2hgorbT9y2/y0gZZcn+kjWvbaGBlHskixxeWmwceRxNTI+MWb79HIN
41
+ 3vEeLC6EQwKBgQD1EwZQvjA4QJSgotY10TmJTE2+dmAQ46UoQKgjcLGGx5QKNkcp
42
+ Zo3/dz7odYKxsc+fsxcvMG3BCm8YHs0Ws6EqtDmuPsrgNZsb6PIDEvVZTnNSYiC/
43
+ ABYdswek2TqobPBwDJxHMsqHb6uQXlsTxE5RMKdG08SfkSq6rhWtKs2jtwKBgA0e
44
+ E58/rgOhxsX55r11SnjiFAh+Ee5z8x8Q3vDmVCByK2IQHCBuBLA/ICHuk/492e4b
45
+ wENHqvsn1QTslTCjcEzAty9qp/uGjiZeLxxrOfdGHNEz7ReaS1I5EV6mm44um7qG
46
+ zwZzuL5Cm3rRufY3vUkr6Bjgrz6D03Ide/JahyIhAoGAVM+gYsj3kmsNeOR7TtrZ
47
+ u48RRSbkxelNJ2WdSJXPV2BEa7rv3X/VR0j1yJywBu6k07P5E4wWnhFugIHMQLJT
48
+ beSRR0LZG1NyE4TxrNHUApJeoVP3GQxCXsHwRxCNEJow81KibVepTjACpYlsCYhJ
49
+ E4LSJQR5bDVHw147zBmNtZQ=
50
+ -----END PRIVATE KEY-----`;
@@ -0,0 +1,7 @@
1
+ type StartHttp2ProxyServerParams = {
2
+ originalPort: number;
3
+ originalHost: string;
4
+ port: number;
5
+ };
6
+ export declare function startHttp2ProxyServer({ originalPort, originalHost, port, }: StartHttp2ProxyServerParams): void;
7
+ export {};
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.startHttp2ProxyServer = void 0;
7
+ const http2_1 = __importDefault(require("http2"));
8
+ const http2_proxy_1 = __importDefault(require("http2-proxy"));
9
+ const localhost_certs_1 = require("./localhost-certs");
10
+ function startHttp2ProxyServer({ originalPort, originalHost, port, }) {
11
+ const ht2Server = http2_1.default.createSecureServer({
12
+ key: localhost_certs_1.privateKey,
13
+ cert: localhost_certs_1.cert,
14
+ });
15
+ ht2Server.on('request', (req, res) => {
16
+ http2_proxy_1.default.web(req, res, {
17
+ hostname: originalHost,
18
+ port: originalPort,
19
+ }, (err, req, res) => {
20
+ if (err) {
21
+ console.error('proxy error', err);
22
+ res.statusCode = 502;
23
+ res.end(err.toString());
24
+ }
25
+ });
26
+ });
27
+ ht2Server.on('upgrade', (req, socket, head) => {
28
+ http2_proxy_1.default.ws(req, socket, head, {
29
+ hostname: originalHost,
30
+ port: originalPort,
31
+ }, (err, req, socket, head) => {
32
+ if (err) {
33
+ console.error('proxy error', err);
34
+ socket.destroy();
35
+ }
36
+ });
37
+ });
38
+ ht2Server.listen(port);
39
+ }
40
+ exports.startHttp2ProxyServer = startHttp2ProxyServer;