@rsbuild/core 0.0.0-next-20231103091827

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 (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +19 -0
  3. package/bin/rsbuild.js +24 -0
  4. package/dist/cli/commands.d.ts +7 -0
  5. package/dist/cli/commands.js +53 -0
  6. package/dist/cli/config.d.ts +12 -0
  7. package/dist/cli/config.js +90 -0
  8. package/dist/cli/index.d.ts +6 -0
  9. package/dist/cli/index.js +48 -0
  10. package/dist/createRsbuild.d.ts +11 -0
  11. package/dist/createRsbuild.js +103 -0
  12. package/dist/index.d.ts +5 -0
  13. package/dist/index.js +36 -0
  14. package/dist/plugins/asset.d.ts +3 -0
  15. package/dist/plugins/asset.js +67 -0
  16. package/dist/plugins/assetsRetry.d.ts +2 -0
  17. package/dist/plugins/assetsRetry.js +66 -0
  18. package/dist/plugins/bundleAnalyzer.d.ts +2 -0
  19. package/dist/plugins/bundleAnalyzer.js +59 -0
  20. package/dist/plugins/cache.d.ts +2 -0
  21. package/dist/plugins/cache.js +115 -0
  22. package/dist/plugins/cleanOutput.d.ts +2 -0
  23. package/dist/plugins/cleanOutput.js +47 -0
  24. package/dist/plugins/define.d.ts +2 -0
  25. package/dist/plugins/define.js +59 -0
  26. package/dist/plugins/devtool.d.ts +2 -0
  27. package/dist/plugins/devtool.js +46 -0
  28. package/dist/plugins/entry.d.ts +2 -0
  29. package/dist/plugins/entry.js +42 -0
  30. package/dist/plugins/externals.d.ts +2 -0
  31. package/dist/plugins/externals.js +48 -0
  32. package/dist/plugins/fileSize.d.ts +4 -0
  33. package/dist/plugins/fileSize.js +160 -0
  34. package/dist/plugins/html.d.ts +7 -0
  35. package/dist/plugins/html.js +242 -0
  36. package/dist/plugins/index.d.ts +2 -0
  37. package/dist/plugins/index.js +67 -0
  38. package/dist/plugins/inlineChunk.d.ts +2 -0
  39. package/dist/plugins/inlineChunk.js +85 -0
  40. package/dist/plugins/moment.d.ts +2 -0
  41. package/dist/plugins/moment.js +43 -0
  42. package/dist/plugins/networkPerformance.d.ts +2 -0
  43. package/dist/plugins/networkPerformance.js +58 -0
  44. package/dist/plugins/nodeAddons.d.ts +2 -0
  45. package/dist/plugins/nodeAddons.js +78 -0
  46. package/dist/plugins/performance.d.ts +5 -0
  47. package/dist/plugins/performance.js +63 -0
  48. package/dist/plugins/preloadOrPrefetch.d.ts +2 -0
  49. package/dist/plugins/preloadOrPrefetch.js +61 -0
  50. package/dist/plugins/rem.d.ts +2 -0
  51. package/dist/plugins/rem.js +103 -0
  52. package/dist/plugins/splitChunks.d.ts +4 -0
  53. package/dist/plugins/splitChunks.js +251 -0
  54. package/dist/plugins/startUrl.d.ts +12 -0
  55. package/dist/plugins/startUrl.js +146 -0
  56. package/dist/plugins/target.d.ts +2 -0
  57. package/dist/plugins/target.js +53 -0
  58. package/dist/plugins/toml.d.ts +2 -0
  59. package/dist/plugins/toml.js +36 -0
  60. package/dist/plugins/wasm.d.ts +2 -0
  61. package/dist/plugins/wasm.js +51 -0
  62. package/dist/plugins/yaml.d.ts +2 -0
  63. package/dist/plugins/yaml.js +36 -0
  64. package/dist/rspack-provider/config/defaults.d.ts +3 -0
  65. package/dist/rspack-provider/config/defaults.js +40 -0
  66. package/dist/rspack-provider/config/normalize.d.ts +7 -0
  67. package/dist/rspack-provider/config/normalize.js +33 -0
  68. package/dist/rspack-provider/core/build.d.ts +19 -0
  69. package/dist/rspack-provider/core/build.js +79 -0
  70. package/dist/rspack-provider/core/createCompiler.d.ts +9 -0
  71. package/dist/rspack-provider/core/createCompiler.js +83 -0
  72. package/dist/rspack-provider/core/createContext.d.ts +7 -0
  73. package/dist/rspack-provider/core/createContext.js +47 -0
  74. package/dist/rspack-provider/core/devMiddleware.d.ts +5 -0
  75. package/dist/rspack-provider/core/devMiddleware.js +65 -0
  76. package/dist/rspack-provider/core/initConfigs.d.ts +14 -0
  77. package/dist/rspack-provider/core/initConfigs.js +76 -0
  78. package/dist/rspack-provider/core/initHooks.d.ts +18 -0
  79. package/dist/rspack-provider/core/initHooks.js +45 -0
  80. package/dist/rspack-provider/core/initPlugins.d.ts +9 -0
  81. package/dist/rspack-provider/core/initPlugins.js +82 -0
  82. package/dist/rspack-provider/core/inspectConfig.d.ts +19 -0
  83. package/dist/rspack-provider/core/inspectConfig.js +81 -0
  84. package/dist/rspack-provider/core/rspackConfig.d.ts +9 -0
  85. package/dist/rspack-provider/core/rspackConfig.js +137 -0
  86. package/dist/rspack-provider/core/startDevServer.d.ts +6 -0
  87. package/dist/rspack-provider/core/startDevServer.js +84 -0
  88. package/dist/rspack-provider/index.d.ts +5 -0
  89. package/dist/rspack-provider/index.js +31 -0
  90. package/dist/rspack-provider/plugins/basic.d.ts +5 -0
  91. package/dist/rspack-provider/plugins/basic.js +34 -0
  92. package/dist/rspack-provider/plugins/css.d.ts +29 -0
  93. package/dist/rspack-provider/plugins/css.js +214 -0
  94. package/dist/rspack-provider/plugins/fallback.d.ts +2 -0
  95. package/dist/rspack-provider/plugins/fallback.js +54 -0
  96. package/dist/rspack-provider/plugins/hmr.d.ts +2 -0
  97. package/dist/rspack-provider/plugins/hmr.js +38 -0
  98. package/dist/rspack-provider/plugins/less.d.ts +2 -0
  99. package/dist/rspack-provider/plugins/less.js +78 -0
  100. package/dist/rspack-provider/plugins/manifest.d.ts +2 -0
  101. package/dist/rspack-provider/plugins/manifest.js +58 -0
  102. package/dist/rspack-provider/plugins/minimize.d.ts +5 -0
  103. package/dist/rspack-provider/plugins/minimize.js +77 -0
  104. package/dist/rspack-provider/plugins/output.d.ts +2 -0
  105. package/dist/rspack-provider/plugins/output.js +65 -0
  106. package/dist/rspack-provider/plugins/progress.d.ts +2 -0
  107. package/dist/rspack-provider/plugins/progress.js +57 -0
  108. package/dist/rspack-provider/plugins/resolve.d.ts +2 -0
  109. package/dist/rspack-provider/plugins/resolve.js +55 -0
  110. package/dist/rspack-provider/plugins/rspack-profile.d.ts +4 -0
  111. package/dist/rspack-provider/plugins/rspack-profile.js +107 -0
  112. package/dist/rspack-provider/plugins/sass.d.ts +2 -0
  113. package/dist/rspack-provider/plugins/sass.js +83 -0
  114. package/dist/rspack-provider/plugins/swc.d.ts +7 -0
  115. package/dist/rspack-provider/plugins/swc.js +151 -0
  116. package/dist/rspack-provider/plugins/transition.d.ts +5 -0
  117. package/dist/rspack-provider/plugins/transition.js +42 -0
  118. package/dist/rspack-provider/provider.d.ts +8 -0
  119. package/dist/rspack-provider/provider.js +116 -0
  120. package/dist/rspack-provider/rspackLoader/css-modules-typescript-pre-loader/index.d.ts +6 -0
  121. package/dist/rspack-provider/rspackLoader/css-modules-typescript-pre-loader/index.js +84 -0
  122. package/dist/rspack-provider/rspackLoader/css-modules-typescript-pre-loader/postcss-icss-extract-plugin.d.ts +11 -0
  123. package/dist/rspack-provider/rspackLoader/css-modules-typescript-pre-loader/postcss-icss-extract-plugin.js +67 -0
  124. package/dist/rspack-provider/rspackPlugin/removeCssSourcemapPlugin.d.ts +8 -0
  125. package/dist/rspack-provider/rspackPlugin/removeCssSourcemapPlugin.js +51 -0
  126. package/dist/rspack-provider/shared/constants.d.ts +1 -0
  127. package/dist/rspack-provider/shared/constants.js +28 -0
  128. package/dist/rspack-provider/shared/fs.d.ts +1 -0
  129. package/dist/rspack-provider/shared/fs.js +38 -0
  130. package/dist/rspack-provider/shared/index.d.ts +3 -0
  131. package/dist/rspack-provider/shared/index.js +26 -0
  132. package/dist/rspack-provider/shared/plugin.d.ts +3 -0
  133. package/dist/rspack-provider/shared/plugin.js +83 -0
  134. package/dist/rspack-provider/shared/rspackVersion.d.ts +3 -0
  135. package/dist/rspack-provider/shared/rspackVersion.js +61 -0
  136. package/dist/rspack-provider/types/context.d.ts +16 -0
  137. package/dist/rspack-provider/types/context.js +16 -0
  138. package/dist/rspack-provider/types/hooks.d.ts +3 -0
  139. package/dist/rspack-provider/types/hooks.js +16 -0
  140. package/dist/rspack-provider/types/index.d.ts +4 -0
  141. package/dist/rspack-provider/types/index.js +26 -0
  142. package/dist/rspack-provider/types/plugin.d.ts +7 -0
  143. package/dist/rspack-provider/types/plugin.js +16 -0
  144. package/dist/utils/generateMetaTags.d.ts +12 -0
  145. package/dist/utils/generateMetaTags.js +50 -0
  146. package/package.json +98 -0
  147. package/static/openChrome.applescript +95 -0
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var resolve_exports = {};
20
+ __export(resolve_exports, {
21
+ pluginResolve: () => pluginResolve
22
+ });
23
+ module.exports = __toCommonJS(resolve_exports);
24
+ var import_shared = require("@rsbuild/shared");
25
+ const pluginResolve = () => ({
26
+ name: "plugin-resolve",
27
+ setup(api) {
28
+ (0, import_shared.applyResolvePlugin)(api);
29
+ api.modifyBundlerChain(async (chain, { CHAIN_ID }) => {
30
+ const config = api.getNormalizedConfig();
31
+ if (chain.module.rules.get(CHAIN_ID.RULE.JS_DATA_URI) && config.source.compileJsDataURI) {
32
+ chain.module.rule(CHAIN_ID.RULE.JS_DATA_URI).resolve.set("fullySpecified", false);
33
+ }
34
+ });
35
+ api.modifyRspackConfig(async (rspackConfig, { isServer }) => {
36
+ const isTsProject = Boolean(api.context.tsconfigPath);
37
+ const config = api.getNormalizedConfig();
38
+ if (isTsProject && config.source.aliasStrategy === "prefer-tsconfig") {
39
+ (0, import_shared.setConfig)(
40
+ rspackConfig,
41
+ "resolve.tsConfigPath",
42
+ api.context.tsconfigPath
43
+ );
44
+ }
45
+ if (isServer) {
46
+ const nodeConditionNames = ["require", "node"];
47
+ (0, import_shared.setConfig)(rspackConfig, "resolve.conditionNames", nodeConditionNames);
48
+ }
49
+ });
50
+ }
51
+ });
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ pluginResolve
55
+ });
@@ -0,0 +1,4 @@
1
+ import type { RsbuildPlugin } from '../types';
2
+ import inspector from 'inspector';
3
+ export declare const stopProfiler: (output: string, profileSession?: inspector.Session) => void;
4
+ export declare const pluginRspackProfile: () => RsbuildPlugin;
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var rspack_profile_exports = {};
30
+ __export(rspack_profile_exports, {
31
+ pluginRspackProfile: () => pluginRspackProfile,
32
+ stopProfiler: () => stopProfiler
33
+ });
34
+ module.exports = __toCommonJS(rspack_profile_exports);
35
+ var import_path = __toESM(require("path"));
36
+ var import_core = require("@rspack/core");
37
+ var import_inspector = __toESM(require("inspector"));
38
+ var import_fs_extra = require("@rsbuild/shared/fs-extra");
39
+ var import_shared = require("@rsbuild/shared");
40
+ const stopProfiler = (output, profileSession) => {
41
+ if (!profileSession) {
42
+ return;
43
+ }
44
+ profileSession.post("Profiler.stop", (error, param) => {
45
+ if (error) {
46
+ import_shared.logger.error("Failed to generate JS CPU profile:", error);
47
+ return;
48
+ }
49
+ import_fs_extra.fs.writeFileSync(output, JSON.stringify(param.profile));
50
+ });
51
+ };
52
+ const pluginRspackProfile = () => ({
53
+ name: "plugin-rspack-profile",
54
+ setup(api) {
55
+ var _a;
56
+ const RSPACK_PROFILE = (_a = process.env.RSPACK_PROFILE) == null ? void 0 : _a.toUpperCase();
57
+ if (!RSPACK_PROFILE) {
58
+ return;
59
+ }
60
+ const timestamp = Date.now();
61
+ const profileDir = import_path.default.join(
62
+ api.context.distPath,
63
+ `rspack-profile-${timestamp}`
64
+ );
65
+ let profileSession;
66
+ const enableProfileTrace = RSPACK_PROFILE === "ALL" || RSPACK_PROFILE.includes("TRACE");
67
+ const enableCPUProfile = RSPACK_PROFILE === "ALL" || RSPACK_PROFILE.includes("CPU");
68
+ const enableLogging = RSPACK_PROFILE === "ALL" || RSPACK_PROFILE.includes("LOGGING");
69
+ const traceFilePath = import_path.default.join(profileDir, "trace.json");
70
+ const cpuProfilePath = import_path.default.join(profileDir, "jscpuprofile.json");
71
+ const loggingFilePath = import_path.default.join(profileDir, "logging.json");
72
+ const onStart = () => {
73
+ import_fs_extra.fs.ensureDirSync(profileDir);
74
+ if (enableProfileTrace) {
75
+ (0, import_core.experimental_registerGlobalTrace)("trace", "chrome", traceFilePath);
76
+ }
77
+ if (enableCPUProfile) {
78
+ profileSession = new import_inspector.default.Session();
79
+ profileSession.connect();
80
+ profileSession.post("Profiler.enable");
81
+ profileSession.post("Profiler.start");
82
+ }
83
+ };
84
+ api.onBeforeBuild(onStart);
85
+ api.onBeforeStartDevServer(onStart);
86
+ api.onAfterBuild(async ({ stats }) => {
87
+ if (enableLogging && stats) {
88
+ const logging = stats.toJson({
89
+ all: false,
90
+ logging: "verbose",
91
+ loggingTrace: true
92
+ });
93
+ import_fs_extra.fs.writeFileSync(loggingFilePath, JSON.stringify(logging));
94
+ }
95
+ });
96
+ api.onExit(() => {
97
+ enableProfileTrace && (0, import_core.experimental_cleanupGlobalTrace)();
98
+ stopProfiler(cpuProfilePath, profileSession);
99
+ import_shared.logger.info(`Saved Rspack profile file to ${profileDir}`);
100
+ });
101
+ }
102
+ });
103
+ // Annotate the CommonJS export names for ESM import in node:
104
+ 0 && (module.exports = {
105
+ pluginRspackProfile,
106
+ stopProfiler
107
+ });
@@ -0,0 +1,2 @@
1
+ import type { RsbuildPlugin } from '../types';
2
+ export declare function pluginSass(): RsbuildPlugin;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var sass_exports = {};
30
+ __export(sass_exports, {
31
+ pluginSass: () => pluginSass
32
+ });
33
+ module.exports = __toCommonJS(sass_exports);
34
+ var import_shared = require("@rsbuild/shared");
35
+ function pluginSass() {
36
+ return {
37
+ name: "plugin-sass",
38
+ async setup(api) {
39
+ api.onAfterCreateCompiler(({ compiler }) => {
40
+ (0, import_shared.patchCompilerGlobalLocation)(compiler);
41
+ });
42
+ api.modifyBundlerChain(async (chain, utils) => {
43
+ const config = api.getNormalizedConfig();
44
+ const { applyBaseCSSRule } = await Promise.resolve().then(() => __toESM(require("./css")));
45
+ const { excludes, options } = await (0, import_shared.getSassLoaderOptions)(
46
+ config.tools.sass,
47
+ // source-maps required for loaders preceding resolve-url-loader
48
+ true
49
+ );
50
+ const rule = chain.module.rule(utils.CHAIN_ID.RULE.SASS).test(import_shared.SASS_REGEX);
51
+ excludes.forEach((item) => {
52
+ rule.exclude.add(item);
53
+ });
54
+ await applyBaseCSSRule({
55
+ rule,
56
+ utils,
57
+ config,
58
+ context: api.context,
59
+ // postcss-loader, resolve-url-loader, sass-loader
60
+ importLoaders: 3
61
+ });
62
+ rule.use(utils.CHAIN_ID.USE.RESOLVE_URL_LOADER_FOR_SASS).loader(utils.getCompiledPath("resolve-url-loader")).options({
63
+ join: await (0, import_shared.getResolveUrlJoinFn)(),
64
+ // 'resolve-url-loader' relies on 'adjust-sourcemap-loader',
65
+ // it has performance regression issues in some scenarios,
66
+ // so we need to disable the sourceMap option.
67
+ sourceMap: false
68
+ }).end().use(utils.CHAIN_ID.USE.SASS).loader(utils.getCompiledPath("sass-loader")).options(options);
69
+ });
70
+ api.modifyRspackConfig(async (rspackConfig) => {
71
+ var _a;
72
+ const { applyCSSModuleRule } = await Promise.resolve().then(() => __toESM(require("./css")));
73
+ const config = api.getNormalizedConfig();
74
+ const rules = (_a = rspackConfig.module) == null ? void 0 : _a.rules;
75
+ applyCSSModuleRule(rules, import_shared.SASS_REGEX, config);
76
+ });
77
+ }
78
+ };
79
+ }
80
+ // Annotate the CommonJS export names for ESM import in node:
81
+ 0 && (module.exports = {
82
+ pluginSass
83
+ });
@@ -0,0 +1,7 @@
1
+ import { type RsbuildTarget, type BuiltinSwcLoaderOptions } from '@rsbuild/shared';
2
+ import type { RsbuildPlugin, NormalizedConfig } from '../types';
3
+ export declare function getDefaultSwcConfig(config: NormalizedConfig, rootPath: string, target: RsbuildTarget): Promise<BuiltinSwcLoaderOptions>;
4
+ /**
5
+ * Provide some swc configs of rspack
6
+ */
7
+ export declare const pluginSwc: () => RsbuildPlugin;
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var swc_exports = {};
30
+ __export(swc_exports, {
31
+ getDefaultSwcConfig: () => getDefaultSwcConfig,
32
+ pluginSwc: () => pluginSwc
33
+ });
34
+ module.exports = __toCommonJS(swc_exports);
35
+ var import_shared = require("@rsbuild/shared");
36
+ var import_lodash = require("lodash");
37
+ var path = __toESM(require("path"));
38
+ const builtinSwcLoaderName = "builtin:swc-loader";
39
+ async function getDefaultSwcConfig(config, rootPath, target) {
40
+ return {
41
+ jsc: {
42
+ externalHelpers: true,
43
+ parser: {
44
+ tsx: true,
45
+ syntax: "typescript",
46
+ decorators: true
47
+ }
48
+ // TODO: Enabling it will cause performance degradation
49
+ // Avoid the webpack magic comment to be removed
50
+ // https://github.com/swc-project/swc/issues/6403
51
+ // preserveAllComments: true,
52
+ },
53
+ isModule: "unknown",
54
+ minify: false,
55
+ // for loader, we don't need to minify, we do minification using plugin
56
+ env: {
57
+ targets: await (0, import_shared.getBrowserslistWithDefault)(rootPath, config, target)
58
+ },
59
+ sourceMaps: (0, import_shared.isUseJsSourceMap)(config),
60
+ exclude: [],
61
+ inlineSourcesContent: true
62
+ };
63
+ }
64
+ const pluginSwc = () => ({
65
+ name: "plugin-swc",
66
+ setup(api) {
67
+ api.modifyBundlerChain(
68
+ async (chain, { CHAIN_ID, target, isServer, isServiceWorker }) => {
69
+ const config = api.getNormalizedConfig();
70
+ (0, import_shared.addCoreJsEntry)({
71
+ chain,
72
+ config,
73
+ isServer,
74
+ isServiceWorker
75
+ });
76
+ const rule = chain.module.rule(CHAIN_ID.RULE.JS).test((0, import_shared.mergeRegex)(import_shared.JS_REGEX, import_shared.TS_REGEX)).type("javascript/auto");
77
+ (0, import_shared.applyScriptCondition)({
78
+ rule,
79
+ config,
80
+ context: api.context,
81
+ includes: [],
82
+ excludes: []
83
+ });
84
+ const swcConfig = await getDefaultSwcConfig(
85
+ config,
86
+ api.context.rootPath,
87
+ target
88
+ );
89
+ applyTransformImport(swcConfig, config.source.transformImport);
90
+ applyDecorator(swcConfig, config.output.enableLatestDecorators);
91
+ if ((0, import_shared.isWebTarget)(target)) {
92
+ const polyfillMode = config.output.polyfill;
93
+ if (polyfillMode === "off" || polyfillMode === "ua") {
94
+ swcConfig.env.mode = void 0;
95
+ } else {
96
+ swcConfig.env.mode = polyfillMode;
97
+ await applyCoreJs(swcConfig, chain, rule, polyfillMode);
98
+ }
99
+ }
100
+ rule.use(CHAIN_ID.USE.SWC).loader(builtinSwcLoaderName).options(swcConfig);
101
+ if (config.source.compileJsDataURI) {
102
+ chain.module.rule(CHAIN_ID.RULE.JS_DATA_URI).mimetype({
103
+ or: ["text/javascript", "application/javascript"]
104
+ }).use(CHAIN_ID.USE.SWC).loader(builtinSwcLoaderName).options((0, import_lodash.cloneDeep)(swcConfig));
105
+ }
106
+ }
107
+ );
108
+ api.modifyRspackConfig(async (config) => {
109
+ (0, import_shared.setConfig)(
110
+ config,
111
+ "experiments.rspackFuture.disableTransformByDefault",
112
+ true
113
+ );
114
+ });
115
+ }
116
+ });
117
+ async function applyCoreJs(swcConfig, chain, rule, polyfillMode) {
118
+ const coreJsPath = require.resolve("core-js/package.json");
119
+ const version = (0, import_shared.getCoreJsVersion)(coreJsPath);
120
+ const coreJsDir = path.dirname(coreJsPath);
121
+ swcConfig.env.coreJs = version;
122
+ if (polyfillMode === "usage") {
123
+ swcConfig.env.shippedProposals = true;
124
+ }
125
+ chain.resolve.alias.merge({
126
+ "core-js": coreJsDir
127
+ });
128
+ rule.exclude.add(coreJsDir);
129
+ }
130
+ function applyTransformImport(swcConfig, pluginImport) {
131
+ var _a, _b, _c;
132
+ if (pluginImport !== false && pluginImport) {
133
+ (_a = swcConfig.rspackExperiments) != null ? _a : swcConfig.rspackExperiments = {};
134
+ (_c = (_b = swcConfig.rspackExperiments).import) != null ? _c : _b.import = [];
135
+ swcConfig.rspackExperiments.import.push(...pluginImport);
136
+ }
137
+ }
138
+ function applyDecorator(swcConfig, enableLatestDecorators) {
139
+ var _a, _b;
140
+ if (enableLatestDecorators) {
141
+ import_shared.logger.warn("Cannot use latestDecorator in Rspack mode.");
142
+ }
143
+ (_b = (_a = swcConfig.jsc).transform) != null ? _b : _a.transform = {};
144
+ swcConfig.jsc.transform.legacyDecorator = true;
145
+ swcConfig.jsc.transform.decoratorMetadata = true;
146
+ }
147
+ // Annotate the CommonJS export names for ESM import in node:
148
+ 0 && (module.exports = {
149
+ getDefaultSwcConfig,
150
+ pluginSwc
151
+ });
@@ -0,0 +1,5 @@
1
+ import type { RsbuildPlugin } from '../types';
2
+ /**
3
+ * Provide some temporary configurations for Rspack early transition
4
+ */
5
+ export declare const pluginTransition: () => RsbuildPlugin;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var transition_exports = {};
20
+ __export(transition_exports, {
21
+ pluginTransition: () => pluginTransition
22
+ });
23
+ module.exports = __toCommonJS(transition_exports);
24
+ var import_shared = require("@rsbuild/shared");
25
+ const pluginTransition = () => ({
26
+ name: "plugin-transition",
27
+ setup(api) {
28
+ process.env.RSPACK_CONFIG_VALIDATE = "loose-silent";
29
+ api.modifyBundlerChain(async (chain, { isProd }) => {
30
+ if (isProd) {
31
+ chain.optimization.chunkIds("deterministic");
32
+ }
33
+ });
34
+ api.modifyRspackConfig((config) => {
35
+ (0, import_shared.setConfig)(config, "experiments.rspackFuture.newResolver", true);
36
+ });
37
+ }
38
+ });
39
+ // Annotate the CommonJS export names for ESM import in node:
40
+ 0 && (module.exports = {
41
+ pluginTransition
42
+ });
@@ -0,0 +1,8 @@
1
+ import { type RsbuildProvider, type RspackConfig, type RspackCompiler, type RspackMultiCompiler } from '@rsbuild/shared';
2
+ import type { RsbuildConfig, NormalizedConfig } from './types';
3
+ export type RspackProvider = RsbuildProvider<RsbuildConfig, RspackConfig, NormalizedConfig, RspackCompiler | RspackMultiCompiler>;
4
+ export declare function rspackProvider({
5
+ rsbuildConfig: originalRsbuildConfig
6
+ }: {
7
+ rsbuildConfig: RsbuildConfig;
8
+ }): RspackProvider;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var provider_exports = {};
30
+ __export(provider_exports, {
31
+ rspackProvider: () => rspackProvider
32
+ });
33
+ module.exports = __toCommonJS(provider_exports);
34
+ var import_shared = require("@rsbuild/shared");
35
+ var import_chalk = require("@rsbuild/shared/chalk");
36
+ var import_createContext = require("./core/createContext");
37
+ var import_initConfigs = require("./core/initConfigs");
38
+ var import_initPlugins = require("./core/initPlugins");
39
+ var import_plugin = require("./shared/plugin");
40
+ var import_rspackVersion = require("./shared/rspackVersion");
41
+ function rspackProvider({
42
+ rsbuildConfig: originalRsbuildConfig
43
+ }) {
44
+ const rsbuildConfig = (0, import_shared.pickRsbuildConfig)(originalRsbuildConfig);
45
+ return async ({ pluginStore, rsbuildOptions, plugins }) => {
46
+ if (!await (0, import_rspackVersion.isSatisfyRspackMinimumVersion)()) {
47
+ throw new Error(
48
+ `The current Rspack version does not meet the requirements, the minimum supported version of Rspack is ${import_chalk.chalk.green(
49
+ import_rspackVersion.supportedRspackMinimumVersion
50
+ )}`
51
+ );
52
+ }
53
+ const context = await (0, import_createContext.createContext)(rsbuildOptions, rsbuildConfig);
54
+ const pluginAPI = (0, import_initPlugins.getPluginAPI)({ context, pluginStore });
55
+ context.pluginAPI = pluginAPI;
56
+ return {
57
+ bundler: "rspack",
58
+ pluginAPI,
59
+ publicContext: (0, import_shared.createPublicContext)(context),
60
+ async applyDefaultPlugins() {
61
+ pluginStore.addPlugins(await (0, import_plugin.applyDefaultPlugins)(plugins));
62
+ },
63
+ async createCompiler() {
64
+ const { createCompiler } = await Promise.resolve().then(() => __toESM(require("./core/createCompiler")));
65
+ const { rspackConfigs } = await (0, import_initConfigs.initConfigs)({
66
+ context,
67
+ pluginStore,
68
+ rsbuildOptions
69
+ });
70
+ return createCompiler({
71
+ context,
72
+ rspackConfigs
73
+ });
74
+ },
75
+ async startDevServer(options) {
76
+ const { startDevServer } = await Promise.resolve().then(() => __toESM(require("./core/startDevServer")));
77
+ return startDevServer(
78
+ { context, pluginStore, rsbuildOptions },
79
+ options
80
+ );
81
+ },
82
+ async preview() {
83
+ return (0, import_shared.startProdServer)(context, context.config);
84
+ },
85
+ async build(options) {
86
+ const { build: buildImpl, rspackBuild } = await Promise.resolve().then(() => __toESM(require("./core/build")));
87
+ return buildImpl(
88
+ { context, pluginStore, rsbuildOptions },
89
+ options,
90
+ rspackBuild
91
+ );
92
+ },
93
+ async initConfigs() {
94
+ const { rspackConfigs } = await (0, import_initConfigs.initConfigs)({
95
+ context,
96
+ pluginStore,
97
+ rsbuildOptions
98
+ });
99
+ return rspackConfigs;
100
+ },
101
+ async inspectConfig(inspectOptions) {
102
+ const { inspectConfig } = await Promise.resolve().then(() => __toESM(require("./core/inspectConfig")));
103
+ return inspectConfig({
104
+ context,
105
+ pluginStore,
106
+ rsbuildOptions,
107
+ inspectOptions
108
+ });
109
+ }
110
+ };
111
+ };
112
+ }
113
+ // Annotate the CommonJS export names for ESM import in node:
114
+ 0 && (module.exports = {
115
+ rspackProvider
116
+ });
@@ -0,0 +1,6 @@
1
+ import { CssModules } from '@rsbuild/shared';
2
+ import type { LoaderContext } from '@rspack/core';
3
+ export default function (this: LoaderContext<{
4
+ modules: Required<CssModules>;
5
+ mode: string;
6
+ }>, content: string, ...input: any[]): Promise<any>;