@rspack/cli 1.3.4 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,5 @@
1
1
  <picture>
2
- <source media="(prefers-color-scheme: dark)" srcset="https://assets.rspack.dev/rspack/rspack-banner-plain-dark.png">
3
- <img alt="Rspack Banner" src="https://assets.rspack.dev/rspack/rspack-banner-plain-light.png">
2
+ <img alt="Rspack Banner" src="https://assets.rspack.dev/rspack/rspack-banner.png">
4
3
  </picture>
5
4
 
6
5
  # @rspack/cli
package/dist/556.js ADDED
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ exports.ids = [
3
+ '556'
4
+ ];
5
+ exports.modules = {
6
+ "./src/utils/profile.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7
+ __webpack_require__.d(__webpack_exports__, {
8
+ applyProfile: ()=>applyProfile
9
+ });
10
+ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("node:fs");
11
+ var node_fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(node_fs__WEBPACK_IMPORTED_MODULE_0__);
12
+ var node_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("node:path");
13
+ var node_path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(node_path__WEBPACK_IMPORTED_MODULE_1__);
14
+ var _rspack_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("@rspack/core");
15
+ const timestamp = Date.now();
16
+ const defaultOutputDirname = node_path__WEBPACK_IMPORTED_MODULE_1___default().resolve(`.rspack-profile-${timestamp}-${process.pid}`);
17
+ const defaultRustTraceChromeOutput = node_path__WEBPACK_IMPORTED_MODULE_1___default().join(defaultOutputDirname, "./trace.json");
18
+ const defaultRustTraceLoggerOutput = "stdout";
19
+ const overviewTraceFilter = "info";
20
+ const allTraceFilter = "trace";
21
+ const defaultRustTraceLayer = "chrome";
22
+ function resolveLayer(value) {
23
+ if ("OVERVIEW" === value) return overviewTraceFilter;
24
+ if ("ALL" === value) return allTraceFilter;
25
+ return value;
26
+ }
27
+ async function applyProfile(filterValue, traceLayer = defaultRustTraceLayer, traceOutput) {
28
+ const { asyncExitHook } = await Promise.resolve().then(__webpack_require__.bind(__webpack_require__, "exit-hook"));
29
+ if ("chrome" !== traceLayer && "logger" !== traceLayer) throw new Error(`unsupported trace layer: ${traceLayer}`);
30
+ let defaultTraceOutput;
31
+ defaultTraceOutput = "chrome" === traceLayer ? defaultRustTraceChromeOutput : defaultRustTraceLoggerOutput;
32
+ if (!traceOutput) traceOutput = defaultTraceOutput;
33
+ const filter = resolveLayer(filterValue);
34
+ const entries = Object.entries(resolveLayer(filterValue));
35
+ if (entries.length <= 0) return;
36
+ await node_fs__WEBPACK_IMPORTED_MODULE_0___default().promises.mkdir(defaultOutputDirname);
37
+ await ensureFileDir(traceOutput);
38
+ await _rspack_core__WEBPACK_IMPORTED_MODULE_2__.rspack.experiments.globalTrace.register(filter, traceLayer, traceOutput);
39
+ asyncExitHook(_rspack_core__WEBPACK_IMPORTED_MODULE_2__.rspack.experiments.globalTrace.cleanup, {
40
+ wait: 500
41
+ });
42
+ }
43
+ async function ensureFileDir(outputFilePath) {
44
+ const dir = node_path__WEBPACK_IMPORTED_MODULE_1___default().dirname(outputFilePath);
45
+ await node_fs__WEBPACK_IMPORTED_MODULE_0___default().promises.mkdir(dir, {
46
+ recursive: true
47
+ });
48
+ return dir;
49
+ }
50
+ }
51
+ };
package/dist/556.mjs ADDED
@@ -0,0 +1,48 @@
1
+ export const __webpack_ids__ = [
2
+ '556'
3
+ ];
4
+ export const __webpack_modules__ = {
5
+ "./src/utils/profile.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6
+ __webpack_require__.d(__webpack_exports__, {
7
+ applyProfile: ()=>applyProfile
8
+ });
9
+ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("node:fs");
10
+ var node_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("node:path");
11
+ var _rspack_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("@rspack/core");
12
+ const timestamp = Date.now();
13
+ const defaultOutputDirname = node_path__WEBPACK_IMPORTED_MODULE_1__["default"].resolve(`.rspack-profile-${timestamp}-${process.pid}`);
14
+ const defaultRustTraceChromeOutput = node_path__WEBPACK_IMPORTED_MODULE_1__["default"].join(defaultOutputDirname, "./trace.json");
15
+ const defaultRustTraceLoggerOutput = "stdout";
16
+ const overviewTraceFilter = "info";
17
+ const allTraceFilter = "trace";
18
+ const defaultRustTraceLayer = "chrome";
19
+ function resolveLayer(value) {
20
+ if ("OVERVIEW" === value) return overviewTraceFilter;
21
+ if ("ALL" === value) return allTraceFilter;
22
+ return value;
23
+ }
24
+ async function applyProfile(filterValue, traceLayer = defaultRustTraceLayer, traceOutput) {
25
+ const { asyncExitHook } = await import("exit-hook");
26
+ if ("chrome" !== traceLayer && "logger" !== traceLayer) throw new Error(`unsupported trace layer: ${traceLayer}`);
27
+ let defaultTraceOutput;
28
+ defaultTraceOutput = "chrome" === traceLayer ? defaultRustTraceChromeOutput : defaultRustTraceLoggerOutput;
29
+ if (!traceOutput) traceOutput = defaultTraceOutput;
30
+ const filter = resolveLayer(filterValue);
31
+ const entries = Object.entries(resolveLayer(filterValue));
32
+ if (entries.length <= 0) return;
33
+ await node_fs__WEBPACK_IMPORTED_MODULE_0__["default"].promises.mkdir(defaultOutputDirname);
34
+ await ensureFileDir(traceOutput);
35
+ await _rspack_core__WEBPACK_IMPORTED_MODULE_2__.rspack.experiments.globalTrace.register(filter, traceLayer, traceOutput);
36
+ asyncExitHook(_rspack_core__WEBPACK_IMPORTED_MODULE_2__.rspack.experiments.globalTrace.cleanup, {
37
+ wait: 500
38
+ });
39
+ }
40
+ async function ensureFileDir(outputFilePath) {
41
+ const dir = node_path__WEBPACK_IMPORTED_MODULE_1__["default"].dirname(outputFilePath);
42
+ await node_fs__WEBPACK_IMPORTED_MODULE_0__["default"].promises.mkdir(dir, {
43
+ recursive: true
44
+ });
45
+ return dir;
46
+ }
47
+ }
48
+ };
package/dist/index.js CHANGED
@@ -6,32 +6,38 @@ var __webpack_modules__ = {
6
6
  "node:fs": function(module) {
7
7
  module.exports = require("node:fs");
8
8
  },
9
- "node:inspector": function(module) {
10
- module.exports = require("node:inspector");
11
- },
12
9
  "node:path": function(module) {
13
10
  module.exports = require("node:path");
14
11
  },
15
- "node:url": function(module) {
16
- module.exports = require("node:url");
17
- },
18
12
  "@discoveryjs/json-ext": function(module) {
19
- module.exports = import("@discoveryjs/json-ext");
13
+ module.exports = import("@discoveryjs/json-ext").then(function(module) {
14
+ return module;
15
+ });
20
16
  },
21
17
  "@rspack/dev-server": function(module) {
22
- module.exports = import("@rspack/dev-server");
18
+ module.exports = import("@rspack/dev-server").then(function(module) {
19
+ return module;
20
+ });
23
21
  },
24
22
  "exit-hook": function(module) {
25
- module.exports = import("exit-hook");
23
+ module.exports = import("exit-hook").then(function(module) {
24
+ return module;
25
+ });
26
26
  },
27
27
  interpret: function(module) {
28
- module.exports = import("interpret");
28
+ module.exports = import("interpret").then(function(module) {
29
+ return module;
30
+ });
29
31
  },
30
32
  rechoir: function(module) {
31
- module.exports = import("rechoir");
33
+ module.exports = import("rechoir").then(function(module) {
34
+ return module;
35
+ });
32
36
  },
33
37
  "webpack-bundle-analyzer": function(module) {
34
- module.exports = import("webpack-bundle-analyzer");
38
+ module.exports = import("webpack-bundle-analyzer").then(function(module) {
39
+ return module;
40
+ });
35
41
  }
36
42
  };
37
43
  var __webpack_module_cache__ = {};
@@ -364,15 +370,15 @@ var __webpack_exports__ = {};
364
370
  var _item_output, _item_devServer, _item_devServer1, _item_devServer2, _item_devServer3, _item_devServer4;
365
371
  item.devServer = {
366
372
  static: {
367
- directory: options.dir ? external_node_path_default().join(item.context ?? process.cwd(), options.dir) : (null === (_item_output = item.output) || void 0 === _item_output ? void 0 : _item_output.path) ?? external_node_path_default().join(item.context ?? process.cwd(), defaultRoot),
373
+ directory: options.dir ? external_node_path_default().join(item.context ?? process.cwd(), options.dir) : (null == (_item_output = item.output) ? void 0 : _item_output.path) ?? external_node_path_default().join(item.context ?? process.cwd(), defaultRoot),
368
374
  publicPath: options.publicPath ?? "/"
369
375
  },
370
376
  port: options.port ?? 8080,
371
- proxy: null === (_item_devServer = item.devServer) || void 0 === _item_devServer ? void 0 : _item_devServer.proxy,
372
- host: options.host ?? (null === (_item_devServer1 = item.devServer) || void 0 === _item_devServer1 ? void 0 : _item_devServer1.host),
373
- open: options.open ?? (null === (_item_devServer2 = item.devServer) || void 0 === _item_devServer2 ? void 0 : _item_devServer2.open),
374
- server: options.server ?? (null === (_item_devServer3 = item.devServer) || void 0 === _item_devServer3 ? void 0 : _item_devServer3.server),
375
- historyApiFallback: null === (_item_devServer4 = item.devServer) || void 0 === _item_devServer4 ? void 0 : _item_devServer4.historyApiFallback
377
+ proxy: null == (_item_devServer = item.devServer) ? void 0 : _item_devServer.proxy,
378
+ host: options.host ?? (null == (_item_devServer1 = item.devServer) ? void 0 : _item_devServer1.host),
379
+ open: options.open ?? (null == (_item_devServer2 = item.devServer) ? void 0 : _item_devServer2.open),
380
+ server: options.server ?? (null == (_item_devServer3 = item.devServer) ? void 0 : _item_devServer3.server),
381
+ historyApiFallback: null == (_item_devServer4 = item.devServer) ? void 0 : _item_devServer4.historyApiFallback
376
382
  };
377
383
  return item;
378
384
  };
@@ -484,7 +490,7 @@ var __webpack_exports__ = {};
484
490
  });
485
491
  }
486
492
  }
487
- var external_node_url_ = __webpack_require__("node:url");
493
+ const external_node_url_namespaceObject = require("node:url");
488
494
  const readPackageUp_readPackageUp = (cwd = process.cwd())=>{
489
495
  let currentDir = external_node_path_default().resolve(cwd);
490
496
  let packageJsonPath = external_node_path_default().join(currentDir, "package.json");
@@ -511,7 +517,7 @@ var __webpack_exports__ = {};
511
517
  const utils_isEsmFile = isEsmFile;
512
518
  const crossImport = async (path, cwd = process.cwd())=>{
513
519
  if (utils_isEsmFile(path, cwd)) {
514
- const url = (0, external_node_url_.pathToFileURL)(path).href;
520
+ const url = (0, external_node_url_namespaceObject.pathToFileURL)(path).href;
515
521
  const { default: config } = await import(url);
516
522
  return config;
517
523
  }
@@ -585,7 +591,7 @@ var __webpack_exports__ = {};
585
591
  let extendedConfig = await crossImport(resolvedPath, cwd);
586
592
  if ("function" == typeof extendedConfig) {
587
593
  var _options_argv;
588
- extendedConfig = extendedConfig(null === (_options_argv = options.argv) || void 0 === _options_argv ? void 0 : _options_argv.env, options.argv);
594
+ extendedConfig = extendedConfig(null == (_options_argv = options.argv) ? void 0 : _options_argv.env, options.argv);
589
595
  if ("function" == typeof extendedConfig.then) extendedConfig = await extendedConfig;
590
596
  }
591
597
  extendedConfig = await loadExtendedConfig(extendedConfig, resolvedPath, cwd, options);
@@ -702,8 +708,8 @@ var __webpack_exports__ = {};
702
708
  }
703
709
  if (options.profile) item.profile = true;
704
710
  if (process.env.RSPACK_PROFILE) {
705
- const { applyProfile } = await __webpack_require__.e("977").then(__webpack_require__.bind(__webpack_require__, "./src/utils/profile.ts"));
706
- await applyProfile(process.env.RSPACK_PROFILE, item);
711
+ const { applyProfile } = await __webpack_require__.e("556").then(__webpack_require__.bind(__webpack_require__, "./src/utils/profile.ts"));
712
+ await applyProfile(process.env.RSPACK_PROFILE, process.env.RSPACK_TRACE_LAYER, process.env.RSPACK_TRACE_OUTPUT);
707
713
  }
708
714
  if (options.watch) item.watch = options.watch;
709
715
  if (!item.mode) item.mode = isBuild ? "production" : "development";
@@ -735,7 +741,7 @@ var __webpack_exports__ = {};
735
741
  let loadedConfig = await loadRspackConfig(options);
736
742
  if ("function" == typeof loadedConfig) {
737
743
  var _options_argv;
738
- let functionResult = loadedConfig(null === (_options_argv = options.argv) || void 0 === _options_argv ? void 0 : _options_argv.env, options.argv);
744
+ let functionResult = loadedConfig(null == (_options_argv = options.argv) ? void 0 : _options_argv.env, options.argv);
739
745
  if ("function" == typeof functionResult.then) functionResult = await functionResult;
740
746
  loadedConfig = functionResult;
741
747
  if ("extends" in loadedConfig && loadedConfig.extends) {
package/dist/index.mjs CHANGED
@@ -1,12 +1,11 @@
1
1
  import * as __WEBPACK_EXTERNAL_MODULE__rspack_core_e0096ff7__ from "@rspack/core";
2
2
  import * as __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__ from "node:fs";
3
- import * as __WEBPACK_EXTERNAL_MODULE_node_inspector_dd9822d6__ from "node:inspector";
4
3
  import * as __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__ from "node:path";
5
- import * as __WEBPACK_EXTERNAL_MODULE_node_url_e96de089__ from "node:url";
6
4
  import * as __WEBPACK_EXTERNAL_MODULE_node_util_1b29d436__ from "node:util";
7
5
  import * as __WEBPACK_EXTERNAL_MODULE_colorette__ from "colorette";
8
6
  import * as __WEBPACK_EXTERNAL_MODULE_yargs__ from "yargs";
9
7
  import * as __WEBPACK_EXTERNAL_MODULE_yargs_helpers_525217b7__ from "yargs/helpers";
8
+ import * as __WEBPACK_EXTERNAL_MODULE_node_url_e96de089__ from "node:url";
10
9
  var __webpack_modules__ = {
11
10
  "@rspack/core": function(module) {
12
11
  module.exports = __WEBPACK_EXTERNAL_MODULE__rspack_core_e0096ff7__;
@@ -14,14 +13,8 @@ var __webpack_modules__ = {
14
13
  "node:fs": function(module) {
15
14
  module.exports = __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__;
16
15
  },
17
- "node:inspector": function(module) {
18
- module.exports = __WEBPACK_EXTERNAL_MODULE_node_inspector_dd9822d6__;
19
- },
20
16
  "node:path": function(module) {
21
17
  module.exports = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__;
22
- },
23
- "node:url": function(module) {
24
- module.exports = __WEBPACK_EXTERNAL_MODULE_node_url_e96de089__;
25
18
  }
26
19
  };
27
20
  var __webpack_module_cache__ = {};
@@ -342,15 +335,15 @@ async function getPreviewConfig(item, options) {
342
335
  var _item_output, _item_devServer, _item_devServer1, _item_devServer2, _item_devServer3, _item_devServer4;
343
336
  item.devServer = {
344
337
  static: {
345
- directory: options.dir ? external_node_path_["default"].join(item.context ?? process.cwd(), options.dir) : (null === (_item_output = item.output) || void 0 === _item_output ? void 0 : _item_output.path) ?? external_node_path_["default"].join(item.context ?? process.cwd(), defaultRoot),
338
+ directory: options.dir ? external_node_path_["default"].join(item.context ?? process.cwd(), options.dir) : (null == (_item_output = item.output) ? void 0 : _item_output.path) ?? external_node_path_["default"].join(item.context ?? process.cwd(), defaultRoot),
346
339
  publicPath: options.publicPath ?? "/"
347
340
  },
348
341
  port: options.port ?? 8080,
349
- proxy: null === (_item_devServer = item.devServer) || void 0 === _item_devServer ? void 0 : _item_devServer.proxy,
350
- host: options.host ?? (null === (_item_devServer1 = item.devServer) || void 0 === _item_devServer1 ? void 0 : _item_devServer1.host),
351
- open: options.open ?? (null === (_item_devServer2 = item.devServer) || void 0 === _item_devServer2 ? void 0 : _item_devServer2.open),
352
- server: options.server ?? (null === (_item_devServer3 = item.devServer) || void 0 === _item_devServer3 ? void 0 : _item_devServer3.server),
353
- historyApiFallback: null === (_item_devServer4 = item.devServer) || void 0 === _item_devServer4 ? void 0 : _item_devServer4.historyApiFallback
342
+ proxy: null == (_item_devServer = item.devServer) ? void 0 : _item_devServer.proxy,
343
+ host: options.host ?? (null == (_item_devServer1 = item.devServer) ? void 0 : _item_devServer1.host),
344
+ open: options.open ?? (null == (_item_devServer2 = item.devServer) ? void 0 : _item_devServer2.open),
345
+ server: options.server ?? (null == (_item_devServer3 = item.devServer) ? void 0 : _item_devServer3.server),
346
+ historyApiFallback: null == (_item_devServer4 = item.devServer) ? void 0 : _item_devServer4.historyApiFallback
354
347
  };
355
348
  return item;
356
349
  };
@@ -462,7 +455,6 @@ class ServeCommand {
462
455
  });
463
456
  }
464
457
  }
465
- var external_node_url_ = __webpack_require__("node:url");
466
458
  const readPackageUp_readPackageUp = (cwd = process.cwd())=>{
467
459
  let currentDir = external_node_path_["default"].resolve(cwd);
468
460
  let packageJsonPath = external_node_path_["default"].join(currentDir, "package.json");
@@ -489,7 +481,7 @@ const isEsmFile = (filePath, cwd = process.cwd())=>{
489
481
  const utils_isEsmFile = isEsmFile;
490
482
  const crossImport = async (path, cwd = process.cwd())=>{
491
483
  if (utils_isEsmFile(path, cwd)) {
492
- const url = (0, external_node_url_.pathToFileURL)(path).href;
484
+ const url = (0, __WEBPACK_EXTERNAL_MODULE_node_url_e96de089__.pathToFileURL)(path).href;
493
485
  const { default: config } = await import(url);
494
486
  return config;
495
487
  }
@@ -563,7 +555,7 @@ async function loadExtendedConfig(config, configPath, cwd, options) {
563
555
  let extendedConfig = await crossImport(resolvedPath, cwd);
564
556
  if ("function" == typeof extendedConfig) {
565
557
  var _options_argv;
566
- extendedConfig = extendedConfig(null === (_options_argv = options.argv) || void 0 === _options_argv ? void 0 : _options_argv.env, options.argv);
558
+ extendedConfig = extendedConfig(null == (_options_argv = options.argv) ? void 0 : _options_argv.env, options.argv);
567
559
  if ("function" == typeof extendedConfig.then) extendedConfig = await extendedConfig;
568
560
  }
569
561
  extendedConfig = await loadExtendedConfig(extendedConfig, resolvedPath, cwd, options);
@@ -680,8 +672,8 @@ class RspackCLI {
680
672
  }
681
673
  if (options.profile) item.profile = true;
682
674
  if (process.env.RSPACK_PROFILE) {
683
- const { applyProfile } = await __webpack_require__.e("977").then(__webpack_require__.bind(__webpack_require__, "./src/utils/profile.ts"));
684
- await applyProfile(process.env.RSPACK_PROFILE, item);
675
+ const { applyProfile } = await __webpack_require__.e("556").then(__webpack_require__.bind(__webpack_require__, "./src/utils/profile.ts"));
676
+ await applyProfile(process.env.RSPACK_PROFILE, process.env.RSPACK_TRACE_LAYER, process.env.RSPACK_TRACE_OUTPUT);
685
677
  }
686
678
  if (options.watch) item.watch = options.watch;
687
679
  if (!item.mode) item.mode = isBuild ? "production" : "development";
@@ -713,7 +705,7 @@ class RspackCLI {
713
705
  let loadedConfig = await loadRspackConfig(options);
714
706
  if ("function" == typeof loadedConfig) {
715
707
  var _options_argv;
716
- let functionResult = loadedConfig(null === (_options_argv = options.argv) || void 0 === _options_argv ? void 0 : _options_argv.env, options.argv);
708
+ let functionResult = loadedConfig(null == (_options_argv = options.argv) ? void 0 : _options_argv.env, options.argv);
717
709
  if ("function" == typeof functionResult.then) functionResult = await functionResult;
718
710
  loadedConfig = functionResult;
719
711
  if ("extends" in loadedConfig && loadedConfig.extends) {
@@ -1,2 +1 @@
1
- import { type RspackOptions } from "@rspack/core";
2
- export declare function applyProfile(profileValue: string, item: RspackOptions): Promise<void>;
1
+ export declare function applyProfile(filterValue: string, traceLayer?: string, traceOutput?: string): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rspack/cli",
3
- "version": "1.3.4",
3
+ "version": "1.3.6",
4
4
  "description": "CLI for rspack",
5
5
  "homepage": "https://rspack.dev",
6
6
  "bugs": "https://github.com/web-infra-dev/rspack/issues",
@@ -38,7 +38,7 @@
38
38
  "yargs": "17.7.2"
39
39
  },
40
40
  "devDependencies": {
41
- "@rslib/core": "0.6.1",
41
+ "@rslib/core": "0.6.7",
42
42
  "@types/interpret": "^1.1.3",
43
43
  "@types/rechoir": "^0.6.4",
44
44
  "@types/webpack-bundle-analyzer": "^4.7.0",
@@ -48,17 +48,10 @@
48
48
  "execa": "^5.1.1",
49
49
  "ts-node": "^10.9.2",
50
50
  "typescript": "^5.7.3",
51
- "@rspack/core": "1.3.4",
52
- "@rspack/tracing": "1.3.4"
51
+ "@rspack/core": "1.3.6"
53
52
  },
54
53
  "peerDependencies": {
55
- "@rspack/core": "^1.0.0-alpha || ^1.x",
56
- "@rspack/tracing": "^1.x"
57
- },
58
- "peerDependenciesMeta": {
59
- "@rspack/tracing": {
60
- "optional": true
61
- }
54
+ "@rspack/core": "^1.0.0-alpha || ^1.x"
62
55
  },
63
56
  "publishConfig": {
64
57
  "access": "public",
@@ -67,6 +60,6 @@
67
60
  "scripts": {
68
61
  "build": "rslib build",
69
62
  "dev": "rslib build -w",
70
- "test": "cross-env jest --colors"
63
+ "test": "cross-env RUST_BACKTRACE=full jest --colors"
71
64
  }
72
65
  }
package/dist/977.js DELETED
@@ -1,181 +0,0 @@
1
- "use strict";
2
- exports.ids = [
3
- '977'
4
- ];
5
- exports.modules = {
6
- "./src/utils/profile.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7
- __webpack_require__.d(__webpack_exports__, {
8
- applyProfile: ()=>applyProfile
9
- });
10
- var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("node:fs");
11
- var node_fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(node_fs__WEBPACK_IMPORTED_MODULE_0__);
12
- var node_inspector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("node:inspector");
13
- var node_inspector__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(node_inspector__WEBPACK_IMPORTED_MODULE_1__);
14
- var node_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("node:path");
15
- var node_path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/ __webpack_require__.n(node_path__WEBPACK_IMPORTED_MODULE_2__);
16
- var node_url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("node:url");
17
- var _rspack_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("@rspack/core");
18
- function _define_property(obj, key, value) {
19
- if (key in obj) Object.defineProperty(obj, key, {
20
- value: value,
21
- enumerable: true,
22
- configurable: true,
23
- writable: true
24
- });
25
- else obj[key] = value;
26
- return obj;
27
- }
28
- const timestamp = Date.now();
29
- const defaultOutputDirname = node_path__WEBPACK_IMPORTED_MODULE_2___default().resolve(`.rspack-profile-${timestamp}-${process.pid}`);
30
- const defaultJSCPUProfileOutput = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(defaultOutputDirname, "./jscpuprofile.json");
31
- const defaultRustTraceChromeOutput = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(defaultOutputDirname, "./trace.json");
32
- const defaultRustTraceLoggerOutput = "stdout";
33
- const defaultRustTraceFilter = "info";
34
- const defaultRustTraceLayer = "chrome";
35
- const defaultLoggingOutput = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(defaultOutputDirname, "./logging.json");
36
- function resolveProfile(value) {
37
- if ("ALL" === value.toUpperCase()) return {
38
- TRACE: {
39
- filter: defaultRustTraceFilter,
40
- layer: defaultRustTraceLayer,
41
- output: defaultRustTraceChromeOutput
42
- },
43
- JSCPU: {
44
- output: defaultJSCPUProfileOutput
45
- },
46
- LOGGING: {
47
- output: defaultLoggingOutput
48
- }
49
- };
50
- if (value.startsWith("[") && value.endsWith("]")) return {
51
- TRACE: resolveRustTraceOptions(value.slice(1, value.length - 1)),
52
- JSCPU: {
53
- output: defaultJSCPUProfileOutput
54
- },
55
- LOGGING: {
56
- output: defaultLoggingOutput
57
- }
58
- };
59
- return value.split("|").reduce((acc, cur)=>{
60
- const upperCur = cur.toUpperCase();
61
- if (upperCur.startsWith("TRACE")) acc.TRACE = resolveRustTraceOptions(cur.slice(6));
62
- else if (upperCur.startsWith("JSCPU")) acc.JSCPU = resolveJSCPUProfileOptions(cur.slice(6));
63
- else if (upperCur.startsWith("LOGGING")) acc.LOGGING = resolveLoggingOptions(cur.slice(8));
64
- return acc;
65
- }, {});
66
- }
67
- function resolveJSCPUProfileOptions(value) {
68
- if (value.includes("=")) {
69
- const parsed = new node_url__WEBPACK_IMPORTED_MODULE_3__.URLSearchParams(value);
70
- return {
71
- output: parsed.get("output") || defaultJSCPUProfileOutput
72
- };
73
- }
74
- return {
75
- output: value || defaultJSCPUProfileOutput
76
- };
77
- }
78
- function isSupportedLayer(layer) {
79
- const SUPPORTED_LAYERS = [
80
- "chrome",
81
- "logger",
82
- "otel"
83
- ];
84
- return SUPPORTED_LAYERS.includes(layer);
85
- }
86
- function resolveRustTraceOptions(value) {
87
- if (value.includes("=")) {
88
- const parsed = new node_url__WEBPACK_IMPORTED_MODULE_3__.URLSearchParams(value);
89
- const filter = parsed.get("filter") || defaultRustTraceFilter;
90
- const layer = parsed.get("layer") || defaultRustTraceLayer;
91
- const output = "chrome" === layer ? parsed.get("output") || defaultRustTraceChromeOutput : parsed.get("output") || defaultRustTraceLoggerOutput;
92
- if (!isSupportedLayer(layer)) throw new Error(`${layer} is not a valid layer, should be chrome or logger`);
93
- return {
94
- filter,
95
- layer,
96
- output
97
- };
98
- }
99
- return {
100
- filter: value || defaultRustTraceFilter,
101
- layer: defaultRustTraceLayer,
102
- output: defaultRustTraceChromeOutput
103
- };
104
- }
105
- function resolveLoggingOptions(value) {
106
- if (value.includes("=")) {
107
- const parsed = new node_url__WEBPACK_IMPORTED_MODULE_3__.URLSearchParams(value);
108
- return {
109
- output: parsed.get("output") || defaultLoggingOutput
110
- };
111
- }
112
- return {
113
- output: value || defaultLoggingOutput
114
- };
115
- }
116
- class RspackProfileJSCPUProfilePlugin {
117
- apply(compiler) {
118
- const session = new (node_inspector__WEBPACK_IMPORTED_MODULE_1___default()).Session();
119
- session.connect();
120
- session.post("Profiler.enable");
121
- session.post("Profiler.start");
122
- compiler.hooks.done.tapAsync(RspackProfileJSCPUProfilePlugin.name, (_stats, callback)=>{
123
- if (compiler.watchMode) return callback();
124
- session.post("Profiler.stop", (error, param)=>{
125
- if (error) {
126
- console.error("Failed to generate JS CPU profile:", error);
127
- return;
128
- }
129
- node_fs__WEBPACK_IMPORTED_MODULE_0___default().writeFileSync(this.output, JSON.stringify(param.profile));
130
- });
131
- return callback();
132
- });
133
- }
134
- constructor(output){
135
- _define_property(this, "output", void 0);
136
- this.output = output;
137
- }
138
- }
139
- class RspackProfileLoggingPlugin {
140
- apply(compiler) {
141
- compiler.hooks.done.tapAsync(RspackProfileLoggingPlugin.name, (stats, callback)=>{
142
- if (compiler.watchMode) return callback();
143
- const logging = stats.toJson({
144
- all: false,
145
- logging: "verbose",
146
- loggingTrace: true
147
- });
148
- node_fs__WEBPACK_IMPORTED_MODULE_0___default().writeFileSync(this.output, JSON.stringify(logging));
149
- return callback();
150
- });
151
- }
152
- constructor(output){
153
- _define_property(this, "output", void 0);
154
- this.output = output;
155
- }
156
- }
157
- async function applyProfile(profileValue, item) {
158
- const { asyncExitHook } = await Promise.resolve().then(__webpack_require__.bind(__webpack_require__, "exit-hook"));
159
- const entries = Object.entries(resolveProfile(profileValue));
160
- if (entries.length <= 0) return;
161
- await node_fs__WEBPACK_IMPORTED_MODULE_0___default().promises.mkdir(defaultOutputDirname);
162
- for (const [kind, value] of entries){
163
- await ensureFileDir(value.output);
164
- if ("TRACE" === kind && "filter" in value) {
165
- await _rspack_core__WEBPACK_IMPORTED_MODULE_4__.rspack.experiments.globalTrace.register(value.filter, value.layer, value.output);
166
- asyncExitHook(_rspack_core__WEBPACK_IMPORTED_MODULE_4__.rspack.experiments.globalTrace.cleanup, {
167
- wait: 500
168
- });
169
- } else if ("JSCPU" === kind) (item.plugins ??= []).push(new RspackProfileJSCPUProfilePlugin(value.output));
170
- else if ("LOGGING" === kind) (item.plugins ??= []).push(new RspackProfileLoggingPlugin(value.output));
171
- }
172
- }
173
- async function ensureFileDir(outputFilePath) {
174
- const dir = node_path__WEBPACK_IMPORTED_MODULE_2___default().dirname(outputFilePath);
175
- await node_fs__WEBPACK_IMPORTED_MODULE_0___default().promises.mkdir(dir, {
176
- recursive: true
177
- });
178
- return dir;
179
- }
180
- }
181
- };
package/dist/977.mjs DELETED
@@ -1,177 +0,0 @@
1
- export const __webpack_ids__ = [
2
- '977'
3
- ];
4
- export const __webpack_modules__ = {
5
- "./src/utils/profile.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6
- __webpack_require__.d(__webpack_exports__, {
7
- applyProfile: ()=>applyProfile
8
- });
9
- var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("node:fs");
10
- var node_inspector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("node:inspector");
11
- var node_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("node:path");
12
- var node_url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("node:url");
13
- var _rspack_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("@rspack/core");
14
- function _define_property(obj, key, value) {
15
- if (key in obj) Object.defineProperty(obj, key, {
16
- value: value,
17
- enumerable: true,
18
- configurable: true,
19
- writable: true
20
- });
21
- else obj[key] = value;
22
- return obj;
23
- }
24
- const timestamp = Date.now();
25
- const defaultOutputDirname = node_path__WEBPACK_IMPORTED_MODULE_2__["default"].resolve(`.rspack-profile-${timestamp}-${process.pid}`);
26
- const defaultJSCPUProfileOutput = node_path__WEBPACK_IMPORTED_MODULE_2__["default"].join(defaultOutputDirname, "./jscpuprofile.json");
27
- const defaultRustTraceChromeOutput = node_path__WEBPACK_IMPORTED_MODULE_2__["default"].join(defaultOutputDirname, "./trace.json");
28
- const defaultRustTraceLoggerOutput = "stdout";
29
- const defaultRustTraceFilter = "info";
30
- const defaultRustTraceLayer = "chrome";
31
- const defaultLoggingOutput = node_path__WEBPACK_IMPORTED_MODULE_2__["default"].join(defaultOutputDirname, "./logging.json");
32
- function resolveProfile(value) {
33
- if ("ALL" === value.toUpperCase()) return {
34
- TRACE: {
35
- filter: defaultRustTraceFilter,
36
- layer: defaultRustTraceLayer,
37
- output: defaultRustTraceChromeOutput
38
- },
39
- JSCPU: {
40
- output: defaultJSCPUProfileOutput
41
- },
42
- LOGGING: {
43
- output: defaultLoggingOutput
44
- }
45
- };
46
- if (value.startsWith("[") && value.endsWith("]")) return {
47
- TRACE: resolveRustTraceOptions(value.slice(1, value.length - 1)),
48
- JSCPU: {
49
- output: defaultJSCPUProfileOutput
50
- },
51
- LOGGING: {
52
- output: defaultLoggingOutput
53
- }
54
- };
55
- return value.split("|").reduce((acc, cur)=>{
56
- const upperCur = cur.toUpperCase();
57
- if (upperCur.startsWith("TRACE")) acc.TRACE = resolveRustTraceOptions(cur.slice(6));
58
- else if (upperCur.startsWith("JSCPU")) acc.JSCPU = resolveJSCPUProfileOptions(cur.slice(6));
59
- else if (upperCur.startsWith("LOGGING")) acc.LOGGING = resolveLoggingOptions(cur.slice(8));
60
- return acc;
61
- }, {});
62
- }
63
- function resolveJSCPUProfileOptions(value) {
64
- if (value.includes("=")) {
65
- const parsed = new node_url__WEBPACK_IMPORTED_MODULE_3__.URLSearchParams(value);
66
- return {
67
- output: parsed.get("output") || defaultJSCPUProfileOutput
68
- };
69
- }
70
- return {
71
- output: value || defaultJSCPUProfileOutput
72
- };
73
- }
74
- function isSupportedLayer(layer) {
75
- const SUPPORTED_LAYERS = [
76
- "chrome",
77
- "logger",
78
- "otel"
79
- ];
80
- return SUPPORTED_LAYERS.includes(layer);
81
- }
82
- function resolveRustTraceOptions(value) {
83
- if (value.includes("=")) {
84
- const parsed = new node_url__WEBPACK_IMPORTED_MODULE_3__.URLSearchParams(value);
85
- const filter = parsed.get("filter") || defaultRustTraceFilter;
86
- const layer = parsed.get("layer") || defaultRustTraceLayer;
87
- const output = "chrome" === layer ? parsed.get("output") || defaultRustTraceChromeOutput : parsed.get("output") || defaultRustTraceLoggerOutput;
88
- if (!isSupportedLayer(layer)) throw new Error(`${layer} is not a valid layer, should be chrome or logger`);
89
- return {
90
- filter,
91
- layer,
92
- output
93
- };
94
- }
95
- return {
96
- filter: value || defaultRustTraceFilter,
97
- layer: defaultRustTraceLayer,
98
- output: defaultRustTraceChromeOutput
99
- };
100
- }
101
- function resolveLoggingOptions(value) {
102
- if (value.includes("=")) {
103
- const parsed = new node_url__WEBPACK_IMPORTED_MODULE_3__.URLSearchParams(value);
104
- return {
105
- output: parsed.get("output") || defaultLoggingOutput
106
- };
107
- }
108
- return {
109
- output: value || defaultLoggingOutput
110
- };
111
- }
112
- class RspackProfileJSCPUProfilePlugin {
113
- apply(compiler) {
114
- const session = new node_inspector__WEBPACK_IMPORTED_MODULE_1__["default"].Session();
115
- session.connect();
116
- session.post("Profiler.enable");
117
- session.post("Profiler.start");
118
- compiler.hooks.done.tapAsync(RspackProfileJSCPUProfilePlugin.name, (_stats, callback)=>{
119
- if (compiler.watchMode) return callback();
120
- session.post("Profiler.stop", (error, param)=>{
121
- if (error) {
122
- console.error("Failed to generate JS CPU profile:", error);
123
- return;
124
- }
125
- node_fs__WEBPACK_IMPORTED_MODULE_0__["default"].writeFileSync(this.output, JSON.stringify(param.profile));
126
- });
127
- return callback();
128
- });
129
- }
130
- constructor(output){
131
- _define_property(this, "output", void 0);
132
- this.output = output;
133
- }
134
- }
135
- class RspackProfileLoggingPlugin {
136
- apply(compiler) {
137
- compiler.hooks.done.tapAsync(RspackProfileLoggingPlugin.name, (stats, callback)=>{
138
- if (compiler.watchMode) return callback();
139
- const logging = stats.toJson({
140
- all: false,
141
- logging: "verbose",
142
- loggingTrace: true
143
- });
144
- node_fs__WEBPACK_IMPORTED_MODULE_0__["default"].writeFileSync(this.output, JSON.stringify(logging));
145
- return callback();
146
- });
147
- }
148
- constructor(output){
149
- _define_property(this, "output", void 0);
150
- this.output = output;
151
- }
152
- }
153
- async function applyProfile(profileValue, item) {
154
- const { asyncExitHook } = await import("exit-hook");
155
- const entries = Object.entries(resolveProfile(profileValue));
156
- if (entries.length <= 0) return;
157
- await node_fs__WEBPACK_IMPORTED_MODULE_0__["default"].promises.mkdir(defaultOutputDirname);
158
- for (const [kind, value] of entries){
159
- await ensureFileDir(value.output);
160
- if ("TRACE" === kind && "filter" in value) {
161
- await _rspack_core__WEBPACK_IMPORTED_MODULE_4__.rspack.experiments.globalTrace.register(value.filter, value.layer, value.output);
162
- asyncExitHook(_rspack_core__WEBPACK_IMPORTED_MODULE_4__.rspack.experiments.globalTrace.cleanup, {
163
- wait: 500
164
- });
165
- } else if ("JSCPU" === kind) (item.plugins ??= []).push(new RspackProfileJSCPUProfilePlugin(value.output));
166
- else if ("LOGGING" === kind) (item.plugins ??= []).push(new RspackProfileLoggingPlugin(value.output));
167
- }
168
- }
169
- async function ensureFileDir(outputFilePath) {
170
- const dir = node_path__WEBPACK_IMPORTED_MODULE_2__["default"].dirname(outputFilePath);
171
- await node_fs__WEBPACK_IMPORTED_MODULE_0__["default"].promises.mkdir(dir, {
172
- recursive: true
173
- });
174
- return dir;
175
- }
176
- }
177
- };