@rsbuild/core 0.3.10 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/compiled/dotenv/index.js +1 -1
  2. package/compiled/dotenv/lib/main.d.ts +1 -6
  3. package/compiled/dotenv/package.json +1 -1
  4. package/dist/cli/commands.js +2 -2
  5. package/dist/cli/config.d.ts +1 -6
  6. package/dist/cli/config.js +20 -34
  7. package/dist/cli/prepare.js +1 -1
  8. package/dist/constants.d.ts +0 -1
  9. package/dist/constants.js +0 -3
  10. package/dist/createRsbuild.js +6 -4
  11. package/dist/index.d.ts +2 -2
  12. package/dist/index.js +1 -3
  13. package/dist/pluginManager.d.ts +7 -0
  14. package/dist/pluginManager.js +176 -0
  15. package/dist/plugins/index.js +2 -1
  16. package/dist/plugins/moduleFederation.d.ts +2 -0
  17. package/dist/plugins/moduleFederation.js +123 -0
  18. package/dist/provider/config.d.ts +1 -1
  19. package/dist/provider/config.js +108 -8
  20. package/dist/provider/{core/createCompiler.d.ts → createCompiler.d.ts} +1 -1
  21. package/dist/provider/{core/createCompiler.js → createCompiler.js} +1 -1
  22. package/dist/provider/{core/createContext.d.ts → createContext.d.ts} +1 -1
  23. package/dist/provider/{core/createContext.js → createContext.js} +2 -2
  24. package/dist/provider/index.d.ts +7 -6
  25. package/dist/provider/index.js +14 -9
  26. package/dist/provider/initConfigs.d.ts +11 -0
  27. package/dist/provider/{core/initConfigs.js → initConfigs.js} +8 -7
  28. package/dist/provider/{core/initHooks.d.ts → initHooks.d.ts} +2 -1
  29. package/dist/provider/{core/initHooks.js → initHooks.js} +1 -0
  30. package/dist/provider/initPlugins.d.ts +7 -0
  31. package/dist/provider/{core/initPlugins.js → initPlugins.js} +3 -2
  32. package/dist/provider/{core/inspectConfig.d.ts → inspectConfig.d.ts} +1 -1
  33. package/dist/provider/{core/inspectConfig.js → inspectConfig.js} +3 -3
  34. package/dist/provider/plugins/less.js +2 -1
  35. package/dist/provider/plugins/swc.d.ts +1 -0
  36. package/dist/provider/plugins/swc.js +53 -39
  37. package/dist/provider/provider.js +20 -20
  38. package/dist/provider/{core/rspackConfig.d.ts → rspackConfig.d.ts} +1 -1
  39. package/dist/provider/{core/rspackConfig.js → rspackConfig.js} +2 -2
  40. package/dist/provider/shared.d.ts +1 -1
  41. package/dist/provider/shared.js +79 -14
  42. package/dist/server/devServer.js +1 -0
  43. package/dist/server/helper.d.ts +14 -0
  44. package/dist/server/helper.js +64 -1
  45. package/dist/types.d.ts +1 -1
  46. package/package.json +2 -2
  47. package/dist/provider/core/initConfigs.d.ts +0 -11
  48. package/dist/provider/core/initPlugins.d.ts +0 -7
  49. /package/dist/provider/{core/build.d.ts → build.d.ts} +0 -0
  50. /package/dist/provider/{core/build.js → build.js} +0 -0
  51. /package/dist/provider/{core/devMiddleware.d.ts → devMiddleware.d.ts} +0 -0
  52. /package/dist/provider/{core/devMiddleware.js → devMiddleware.js} +0 -0
@@ -24,15 +24,115 @@ __export(config_exports, {
24
24
  module.exports = __toCommonJS(config_exports);
25
25
  var import_node_path = require("node:path");
26
26
  var import_shared = require("@rsbuild/shared");
27
+ const getDefaultDevConfig = () => ({
28
+ hmr: true,
29
+ liveReload: true,
30
+ assetPrefix: import_shared.DEFAULT_ASSET_PREFIX,
31
+ startUrl: false
32
+ });
33
+ const getDefaultServerConfig = () => ({
34
+ port: import_shared.DEFAULT_PORT,
35
+ host: import_shared.DEFAULT_DEV_HOST,
36
+ htmlFallback: "index",
37
+ compress: true,
38
+ printUrls: true,
39
+ strictPort: false,
40
+ publicDir: {
41
+ name: "public",
42
+ copyOnBuild: true
43
+ }
44
+ });
45
+ const getDefaultSourceConfig = () => ({
46
+ alias: {},
47
+ define: {},
48
+ aliasStrategy: "prefer-tsconfig",
49
+ preEntry: [],
50
+ decorators: {
51
+ version: "legacy"
52
+ }
53
+ });
54
+ const getDefaultHtmlConfig = () => ({
55
+ meta: {
56
+ charset: { charset: "UTF-8" },
57
+ viewport: "width=device-width, initial-scale=1.0"
58
+ },
59
+ title: "Rsbuild App",
60
+ inject: "head",
61
+ mountId: import_shared.DEFAULT_MOUNT_ID,
62
+ crossorigin: false,
63
+ outputStructure: "flat",
64
+ scriptLoading: "defer"
65
+ });
66
+ const getDefaultSecurityConfig = () => ({
67
+ nonce: ""
68
+ });
69
+ const getDefaultToolsConfig = () => ({
70
+ cssExtract: {
71
+ loaderOptions: {},
72
+ pluginOptions: {}
73
+ }
74
+ });
75
+ const getDefaultPerformanceConfig = () => ({
76
+ profile: false,
77
+ buildCache: true,
78
+ printFileSize: true,
79
+ removeConsole: false,
80
+ transformLodash: true,
81
+ removeMomentLocale: false,
82
+ chunkSplit: {
83
+ strategy: "split-by-experience"
84
+ }
85
+ });
86
+ const getDefaultOutputConfig = () => ({
87
+ targets: ["web"],
88
+ distPath: {
89
+ root: import_shared.ROOT_DIST_DIR,
90
+ js: import_shared.JS_DIST_DIR,
91
+ css: import_shared.CSS_DIST_DIR,
92
+ svg: import_shared.SVG_DIST_DIR,
93
+ font: import_shared.FONT_DIST_DIR,
94
+ html: import_shared.HTML_DIST_DIR,
95
+ wasm: import_shared.WASM_DIST_DIR,
96
+ image: import_shared.IMAGE_DIST_DIR,
97
+ media: import_shared.MEDIA_DIST_DIR,
98
+ server: import_shared.SERVER_DIST_DIR,
99
+ worker: import_shared.SERVICE_WORKER_DIST_DIR
100
+ },
101
+ assetPrefix: import_shared.DEFAULT_ASSET_PREFIX,
102
+ filename: {},
103
+ charset: "ascii",
104
+ polyfill: "usage",
105
+ dataUriLimit: {
106
+ svg: import_shared.DEFAULT_DATA_URL_SIZE,
107
+ font: import_shared.DEFAULT_DATA_URL_SIZE,
108
+ image: import_shared.DEFAULT_DATA_URL_SIZE,
109
+ media: import_shared.DEFAULT_DATA_URL_SIZE
110
+ },
111
+ legalComments: "linked",
112
+ injectStyles: false,
113
+ disableMinimize: false,
114
+ sourceMap: {
115
+ js: void 0,
116
+ css: false
117
+ },
118
+ filenameHash: true,
119
+ enableCssModuleTSDeclaration: false,
120
+ inlineScripts: false,
121
+ inlineStyles: false,
122
+ cssModules: {
123
+ auto: true,
124
+ exportLocalsConvention: "camelCase"
125
+ }
126
+ });
27
127
  const createDefaultConfig = () => ({
28
- dev: (0, import_shared.getDefaultDevConfig)(),
29
- server: (0, import_shared.getDefaultServerConfig)(),
30
- html: (0, import_shared.getDefaultHtmlConfig)(),
31
- source: (0, import_shared.getDefaultSourceConfig)(),
32
- output: (0, import_shared.getDefaultOutputConfig)(),
33
- tools: (0, import_shared.getDefaultToolsConfig)(),
34
- security: (0, import_shared.getDefaultSecurityConfig)(),
35
- performance: (0, import_shared.getDefaultPerformanceConfig)()
128
+ dev: getDefaultDevConfig(),
129
+ server: getDefaultServerConfig(),
130
+ html: getDefaultHtmlConfig(),
131
+ source: getDefaultSourceConfig(),
132
+ output: getDefaultOutputConfig(),
133
+ tools: getDefaultToolsConfig(),
134
+ security: getDefaultSecurityConfig(),
135
+ performance: getDefaultPerformanceConfig()
36
136
  });
37
137
  function getDefaultEntry(root) {
38
138
  const files = [
@@ -1,6 +1,6 @@
1
1
  import { type RspackConfig, type RspackCompiler, type RspackMultiCompiler, type CreateDevMiddlewareReturns } from '@rsbuild/shared';
2
2
  import { type InitConfigsOptions } from './initConfigs';
3
- import type { InternalContext } from '../../types';
3
+ import type { InternalContext } from '../types';
4
4
  export declare function createCompiler({ context, rspackConfigs, }: {
5
5
  context: InternalContext;
6
6
  rspackConfigs: RspackConfig[];
@@ -34,7 +34,7 @@ __export(createCompiler_exports, {
34
34
  module.exports = __toCommonJS(createCompiler_exports);
35
35
  var import_shared = require("@rsbuild/shared");
36
36
  var import_initConfigs = require("./initConfigs");
37
- var import_shared2 = require("../shared");
37
+ var import_shared2 = require("./shared");
38
38
  async function createCompiler({
39
39
  context,
40
40
  rspackConfigs
@@ -1,5 +1,5 @@
1
1
  import { type BundlerType, type RsbuildConfig, type RsbuildContext, type NormalizedConfig, type CreateRsbuildOptions } from '@rsbuild/shared';
2
- import type { InternalContext } from '../../types';
2
+ import type { InternalContext } from '../types';
3
3
  export declare function updateContextByNormalizedConfig(context: RsbuildContext, config: NormalizedConfig): void;
4
4
  export declare function createPublicContext(context: RsbuildContext): Readonly<RsbuildContext>;
5
5
  /**
@@ -26,7 +26,7 @@ module.exports = __toCommonJS(createContext_exports);
26
26
  var import_node_path = require("node:path");
27
27
  var import_shared = require("@rsbuild/shared");
28
28
  var import_initHooks = require("./initHooks");
29
- var import_config = require("../config");
29
+ var import_config = require("./config");
30
30
  function getAbsolutePath(root, filepath) {
31
31
  return (0, import_node_path.isAbsolute)(filepath) ? filepath : (0, import_node_path.join)(root, filepath);
32
32
  }
@@ -43,7 +43,7 @@ async function createContextByConfig(options, bundlerType, config = {}) {
43
43
  const context = {
44
44
  entry: config.source?.entry || {},
45
45
  targets: config.output?.targets || [],
46
- version: "0.3.10",
46
+ version: "0.4.0",
47
47
  rootPath,
48
48
  distPath,
49
49
  cachePath,
@@ -1,12 +1,13 @@
1
1
  export { rspackProvider } from './provider';
2
2
  export type { Rspack, RspackConfig } from '@rsbuild/shared';
3
- export { createContext, createPublicContext } from './core/createContext';
4
- export { initPlugins } from '@rsbuild/shared';
5
- export { initHooks, type Hooks } from './core/initHooks';
6
- export { initRsbuildConfig } from './core/initConfigs';
7
- export { getPluginAPI } from './core/initPlugins';
3
+ export { createContext, createPublicContext } from './createContext';
4
+ export { initPlugins, createPluginManager } from '../pluginManager';
5
+ export { initHooks, type Hooks } from './initHooks';
6
+ export { initRsbuildConfig } from './initConfigs';
7
+ export { getPluginAPI } from './initPlugins';
8
8
  export { applyBaseCSSRule, applyCSSModuleRule } from './plugins/css';
9
9
  export type { InternalContext } from '../types';
10
10
  export { setHTMLPlugin, getHTMLPlugin } from './htmlPluginUtil';
11
11
  export { formatStats } from './shared';
12
- export { getChainUtils } from './core/rspackConfig';
12
+ export { getChainUtils } from './rspackConfig';
13
+ export { applySwcDecoratorConfig } from './plugins/swc';
@@ -20,34 +20,39 @@ var provider_exports = {};
20
20
  __export(provider_exports, {
21
21
  applyBaseCSSRule: () => import_css.applyBaseCSSRule,
22
22
  applyCSSModuleRule: () => import_css.applyCSSModuleRule,
23
+ applySwcDecoratorConfig: () => import_swc.applySwcDecoratorConfig,
23
24
  createContext: () => import_createContext.createContext,
25
+ createPluginManager: () => import_pluginManager.createPluginManager,
24
26
  createPublicContext: () => import_createContext.createPublicContext,
25
- formatStats: () => import_shared2.formatStats,
27
+ formatStats: () => import_shared.formatStats,
26
28
  getChainUtils: () => import_rspackConfig.getChainUtils,
27
29
  getHTMLPlugin: () => import_htmlPluginUtil.getHTMLPlugin,
28
30
  getPluginAPI: () => import_initPlugins.getPluginAPI,
29
31
  initHooks: () => import_initHooks.initHooks,
30
- initPlugins: () => import_shared.initPlugins,
32
+ initPlugins: () => import_pluginManager.initPlugins,
31
33
  initRsbuildConfig: () => import_initConfigs.initRsbuildConfig,
32
34
  rspackProvider: () => import_provider.rspackProvider,
33
35
  setHTMLPlugin: () => import_htmlPluginUtil.setHTMLPlugin
34
36
  });
35
37
  module.exports = __toCommonJS(provider_exports);
36
38
  var import_provider = require("./provider");
37
- var import_createContext = require("./core/createContext");
38
- var import_shared = require("@rsbuild/shared");
39
- var import_initHooks = require("./core/initHooks");
40
- var import_initConfigs = require("./core/initConfigs");
41
- var import_initPlugins = require("./core/initPlugins");
39
+ var import_createContext = require("./createContext");
40
+ var import_pluginManager = require("../pluginManager");
41
+ var import_initHooks = require("./initHooks");
42
+ var import_initConfigs = require("./initConfigs");
43
+ var import_initPlugins = require("./initPlugins");
42
44
  var import_css = require("./plugins/css");
43
45
  var import_htmlPluginUtil = require("./htmlPluginUtil");
44
- var import_shared2 = require("./shared");
45
- var import_rspackConfig = require("./core/rspackConfig");
46
+ var import_shared = require("./shared");
47
+ var import_rspackConfig = require("./rspackConfig");
48
+ var import_swc = require("./plugins/swc");
46
49
  // Annotate the CommonJS export names for ESM import in node:
47
50
  0 && (module.exports = {
48
51
  applyBaseCSSRule,
49
52
  applyCSSModuleRule,
53
+ applySwcDecoratorConfig,
50
54
  createContext,
55
+ createPluginManager,
51
56
  createPublicContext,
52
57
  formatStats,
53
58
  getChainUtils,
@@ -0,0 +1,11 @@
1
+ import { type PluginManager, type RspackConfig, type CreateRsbuildOptions } from '@rsbuild/shared';
2
+ import type { InternalContext, NormalizedConfig } from '../types';
3
+ export type InitConfigsOptions = {
4
+ context: InternalContext;
5
+ pluginManager: PluginManager;
6
+ rsbuildOptions: Required<CreateRsbuildOptions>;
7
+ };
8
+ export declare function initRsbuildConfig({ context, pluginManager, }: Pick<InitConfigsOptions, 'context' | 'pluginManager'>): Promise<NormalizedConfig>;
9
+ export declare function initConfigs({ context, pluginManager, rsbuildOptions, }: InitConfigsOptions): Promise<{
10
+ rspackConfigs: RspackConfig[];
11
+ }>;
@@ -26,7 +26,8 @@ var import_shared = require("@rsbuild/shared");
26
26
  var import_createContext = require("./createContext");
27
27
  var import_inspectConfig = require("./inspectConfig");
28
28
  var import_rspackConfig = require("./rspackConfig");
29
- var import_config = require("../config");
29
+ var import_config = require("./config");
30
+ var import_pluginManager = require("../pluginManager");
30
31
  async function modifyRsbuildConfig(context) {
31
32
  (0, import_shared.debug)("modify Rsbuild config");
32
33
  const [modified] = await context.hooks.modifyRsbuildConfig.call(
@@ -38,14 +39,14 @@ async function modifyRsbuildConfig(context) {
38
39
  }
39
40
  async function initRsbuildConfig({
40
41
  context,
41
- pluginStore
42
+ pluginManager
42
43
  }) {
43
44
  if (context.normalizedConfig) {
44
45
  return context.normalizedConfig;
45
46
  }
46
- await (0, import_shared.initPlugins)({
47
+ await (0, import_pluginManager.initPlugins)({
47
48
  pluginAPI: context.pluginAPI,
48
- pluginStore
49
+ pluginManager
49
50
  });
50
51
  await modifyRsbuildConfig(context);
51
52
  context.normalizedConfig = (0, import_config.normalizeConfig)(context.config);
@@ -54,10 +55,10 @@ async function initRsbuildConfig({
54
55
  }
55
56
  async function initConfigs({
56
57
  context,
57
- pluginStore,
58
+ pluginManager,
58
59
  rsbuildOptions
59
60
  }) {
60
- const normalizedConfig = await initRsbuildConfig({ context, pluginStore });
61
+ const normalizedConfig = await initRsbuildConfig({ context, pluginManager });
61
62
  const { targets } = normalizedConfig.output;
62
63
  const rspackConfigs = await Promise.all(
63
64
  targets.map((target) => (0, import_rspackConfig.generateRspackConfig)({ target, context }))
@@ -70,7 +71,7 @@ async function initConfigs({
70
71
  };
71
72
  (0, import_inspectConfig.inspectConfig)({
72
73
  context,
73
- pluginStore,
74
+ pluginManager,
74
75
  inspectOptions,
75
76
  rsbuildOptions,
76
77
  bundlerConfigs: rspackConfigs
@@ -1,8 +1,9 @@
1
- import type { OnExitFn, OnAfterBuildFn, OnBeforeBuildFn, OnDevCompileDoneFn, ModifyBundlerChainFn, ModifyRspackConfigFn, ModifyWebpackChainFn, ModifyWebpackConfigFn, ModifyRsbuildConfigFn, OnAfterStartDevServerFn, OnBeforeStartDevServerFn, OnAfterStartProdServerFn, OnBeforeStartProdServerFn, OnAfterCreateCompilerFn, OnBeforeCreateCompilerFn } from '@rsbuild/shared';
1
+ import type { OnExitFn, OnAfterBuildFn, OnBeforeBuildFn, OnCloseDevServerFn, OnDevCompileDoneFn, ModifyBundlerChainFn, ModifyRspackConfigFn, ModifyWebpackChainFn, ModifyWebpackConfigFn, ModifyRsbuildConfigFn, OnAfterStartDevServerFn, OnBeforeStartDevServerFn, OnAfterStartProdServerFn, OnBeforeStartProdServerFn, OnAfterCreateCompilerFn, OnBeforeCreateCompilerFn } from '@rsbuild/shared';
2
2
  export declare function initHooks(): {
3
3
  /** parameters are not bundler-related */
4
4
  onExit: import("@rsbuild/shared").AsyncHook<OnExitFn>;
5
5
  onDevCompileDone: import("@rsbuild/shared").AsyncHook<OnDevCompileDoneFn>;
6
+ onCloseDevServer: import("@rsbuild/shared").AsyncHook<OnCloseDevServerFn>;
6
7
  onAfterStartDevServer: import("@rsbuild/shared").AsyncHook<OnAfterStartDevServerFn>;
7
8
  onBeforeStartDevServer: import("@rsbuild/shared").AsyncHook<OnBeforeStartDevServerFn>;
8
9
  onAfterStartProdServer: import("@rsbuild/shared").AsyncHook<OnAfterStartProdServerFn>;
@@ -27,6 +27,7 @@ function initHooks() {
27
27
  /** parameters are not bundler-related */
28
28
  onExit: (0, import_shared.createAsyncHook)(),
29
29
  onDevCompileDone: (0, import_shared.createAsyncHook)(),
30
+ onCloseDevServer: (0, import_shared.createAsyncHook)(),
30
31
  onAfterStartDevServer: (0, import_shared.createAsyncHook)(),
31
32
  onBeforeStartDevServer: (0, import_shared.createAsyncHook)(),
32
33
  onAfterStartProdServer: (0, import_shared.createAsyncHook)(),
@@ -0,0 +1,7 @@
1
+ import { type PluginManager, type RsbuildPluginAPI } from '@rsbuild/shared';
2
+ import type { InternalContext, NormalizedConfig } from '../types';
3
+ export declare function getHTMLPathByEntry(entryName: string, config: NormalizedConfig): string;
4
+ export declare function getPluginAPI({ context, pluginManager, }: {
5
+ context: InternalContext;
6
+ pluginManager: PluginManager;
7
+ }): RsbuildPluginAPI;
@@ -31,7 +31,7 @@ function getHTMLPathByEntry(entryName, config) {
31
31
  }
32
32
  function getPluginAPI({
33
33
  context,
34
- pluginStore
34
+ pluginManager
35
35
  }) {
36
36
  const { hooks } = context;
37
37
  const publicContext = (0, import_createContext.createPublicContext)(context);
@@ -71,11 +71,12 @@ function getPluginAPI({
71
71
  getHTMLPaths,
72
72
  getRsbuildConfig,
73
73
  getNormalizedConfig,
74
- isPluginExists: pluginStore.isPluginExists,
74
+ isPluginExists: pluginManager.isPluginExists,
75
75
  // Hooks
76
76
  onExit: hooks.onExit.tap,
77
77
  onAfterBuild: hooks.onAfterBuild.tap,
78
78
  onBeforeBuild: hooks.onBeforeBuild.tap,
79
+ onCloseDevServer: hooks.onCloseDevServer.tap,
79
80
  onDevCompileDone: hooks.onDevCompileDone.tap,
80
81
  modifyBundlerChain: hooks.modifyBundlerChain.tap,
81
82
  modifyRspackConfig: hooks.modifyRspackConfig.tap,
@@ -1,6 +1,6 @@
1
1
  import { type InitConfigsOptions } from './initConfigs';
2
2
  import { type RspackConfig, type InspectConfigResult, type InspectConfigOptions } from '@rsbuild/shared';
3
- export declare function inspectConfig({ context, pluginStore, rsbuildOptions, bundlerConfigs, inspectOptions, }: InitConfigsOptions & {
3
+ export declare function inspectConfig({ context, pluginManager, rsbuildOptions, bundlerConfigs, inspectOptions, }: InitConfigsOptions & {
4
4
  inspectOptions?: InspectConfigOptions;
5
5
  bundlerConfigs?: RspackConfig[];
6
6
  }): Promise<InspectConfigResult<'rspack'>>;
@@ -26,7 +26,7 @@ var import_initConfigs = require("./initConfigs");
26
26
  var import_shared = require("@rsbuild/shared");
27
27
  async function inspectConfig({
28
28
  context,
29
- pluginStore,
29
+ pluginManager,
30
30
  rsbuildOptions,
31
31
  bundlerConfigs,
32
32
  inspectOptions = {}
@@ -38,12 +38,12 @@ async function inspectConfig({
38
38
  }
39
39
  const rspackConfigs = bundlerConfigs || (await (0, import_initConfigs.initConfigs)({
40
40
  context,
41
- pluginStore,
41
+ pluginManager,
42
42
  rsbuildOptions
43
43
  })).rspackConfigs;
44
44
  const rsbuildDebugConfig = {
45
45
  ...context.normalizedConfig,
46
- pluginNames: pluginStore.plugins.map((p) => p.name)
46
+ pluginNames: pluginManager.plugins.map((p) => p.name)
47
47
  };
48
48
  const rawRsbuildConfig = await (0, import_shared.stringifyConfig)(
49
49
  rsbuildDebugConfig,
@@ -42,7 +42,8 @@ function pluginLess() {
42
42
  const rule = chain.module.rule(utils.CHAIN_ID.RULE.LESS).test(import_shared.LESS_REGEX);
43
43
  const { excludes, options } = (0, import_shared.getLessLoaderOptions)(
44
44
  config.tools.less,
45
- config.output.sourceMap.css
45
+ config.output.sourceMap.css,
46
+ api.context.rootPath
46
47
  );
47
48
  excludes.forEach((item) => {
48
49
  rule.exclude.add(item);
@@ -5,3 +5,4 @@ export declare function getDefaultSwcConfig(config: NormalizedConfig, rootPath:
5
5
  * Provide some swc configs of rspack
6
6
  */
7
7
  export declare const pluginSwc: () => RsbuildPlugin;
8
+ export declare function applySwcDecoratorConfig(swcConfig: BuiltinSwcLoaderOptions, config: NormalizedConfig): void;
@@ -28,6 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var swc_exports = {};
30
30
  __export(swc_exports, {
31
+ applySwcDecoratorConfig: () => applySwcDecoratorConfig,
31
32
  getDefaultSwcConfig: () => getDefaultSwcConfig,
32
33
  pluginSwc: () => pluginSwc
33
34
  });
@@ -59,42 +60,45 @@ async function getDefaultSwcConfig(config, rootPath, target) {
59
60
  const pluginSwc = () => ({
60
61
  name: import_constants.PLUGIN_SWC_NAME,
61
62
  setup(api) {
62
- api.modifyBundlerChain(async (chain, { CHAIN_ID, target }) => {
63
- const config = api.getNormalizedConfig();
64
- const rule = chain.module.rule(CHAIN_ID.RULE.JS).test(import_shared.SCRIPT_REGEX).type("javascript/auto");
65
- (0, import_shared.applyScriptCondition)({
66
- rule,
67
- config,
68
- context: api.context,
69
- includes: [],
70
- excludes: []
71
- });
72
- const swcConfig = await getDefaultSwcConfig(
73
- config,
74
- api.context.rootPath,
75
- target
76
- );
77
- applyTransformImport(swcConfig, config.source.transformImport);
78
- applyDecorator(swcConfig, config.output.enableLatestDecorators);
79
- if (swcConfig.jsc?.externalHelpers) {
80
- chain.resolve.alias.set(
81
- "@swc/helpers",
82
- import_node_path.default.dirname(require.resolve("@swc/helpers/package.json"))
63
+ api.modifyBundlerChain({
64
+ order: "pre",
65
+ handler: async (chain, { CHAIN_ID, target }) => {
66
+ const config = api.getNormalizedConfig();
67
+ const rule = chain.module.rule(CHAIN_ID.RULE.JS).test(import_shared.SCRIPT_REGEX).type("javascript/auto");
68
+ (0, import_shared.applyScriptCondition)({
69
+ rule,
70
+ config,
71
+ context: api.context,
72
+ includes: [],
73
+ excludes: []
74
+ });
75
+ const swcConfig = await getDefaultSwcConfig(
76
+ config,
77
+ api.context.rootPath,
78
+ target
83
79
  );
84
- }
85
- if ((0, import_shared.isWebTarget)(target)) {
86
- const polyfillMode = config.output.polyfill;
87
- if (polyfillMode === "off" || polyfillMode === "ua") {
88
- swcConfig.env.mode = void 0;
89
- } else {
90
- swcConfig.env.mode = polyfillMode;
91
- await applyCoreJs(swcConfig, chain, polyfillMode);
80
+ applyTransformImport(swcConfig, config.source.transformImport);
81
+ applySwcDecoratorConfig(swcConfig, config);
82
+ if (swcConfig.jsc?.externalHelpers) {
83
+ chain.resolve.alias.set(
84
+ "@swc/helpers",
85
+ import_node_path.default.dirname(require.resolve("@swc/helpers/package.json"))
86
+ );
87
+ }
88
+ if ((0, import_shared.isWebTarget)(target)) {
89
+ const polyfillMode = config.output.polyfill;
90
+ if (polyfillMode === "off" || polyfillMode === "ua") {
91
+ swcConfig.env.mode = void 0;
92
+ } else {
93
+ swcConfig.env.mode = polyfillMode;
94
+ await applyCoreJs(swcConfig, chain, polyfillMode);
95
+ }
92
96
  }
97
+ rule.use(CHAIN_ID.USE.SWC).loader(builtinSwcLoaderName).options(swcConfig);
98
+ chain.module.rule(CHAIN_ID.RULE.JS_DATA_URI).mimetype({
99
+ or: ["text/javascript", "application/javascript"]
100
+ }).resolve.set("fullySpecified", false).end().use(CHAIN_ID.USE.SWC).loader(builtinSwcLoaderName).options((0, import_shared.cloneDeep)(swcConfig));
93
101
  }
94
- rule.use(CHAIN_ID.USE.SWC).loader(builtinSwcLoaderName).options(swcConfig);
95
- chain.module.rule(CHAIN_ID.RULE.JS_DATA_URI).mimetype({
96
- or: ["text/javascript", "application/javascript"]
97
- }).use(CHAIN_ID.USE.SWC).loader(builtinSwcLoaderName).options((0, import_shared.cloneDeep)(swcConfig));
98
102
  });
99
103
  }
100
104
  });
@@ -118,17 +122,27 @@ function applyTransformImport(swcConfig, pluginImport) {
118
122
  swcConfig.rspackExperiments.import.push(...pluginImport);
119
123
  }
120
124
  }
121
- function applyDecorator(swcConfig, enableLatestDecorators) {
125
+ function applySwcDecoratorConfig(swcConfig, config) {
122
126
  var _a;
123
- if (enableLatestDecorators) {
124
- import_shared.logger.warn("Cannot use latestDecorator in Rspack mode.");
127
+ swcConfig.jsc || (swcConfig.jsc = {});
128
+ (_a = swcConfig.jsc).transform || (_a.transform = {});
129
+ const { version } = config.source.decorators;
130
+ switch (version) {
131
+ case "legacy":
132
+ swcConfig.jsc.transform.legacyDecorator = true;
133
+ swcConfig.jsc.transform.decoratorMetadata = true;
134
+ break;
135
+ case "2022-03":
136
+ swcConfig.jsc.transform.legacyDecorator = false;
137
+ swcConfig.jsc.transform.decoratorVersion = "2022-03";
138
+ break;
139
+ default:
140
+ throw new Error("Unknown decorators version: ${version}");
125
141
  }
126
- (_a = swcConfig.jsc).transform ?? (_a.transform = {});
127
- swcConfig.jsc.transform.legacyDecorator = true;
128
- swcConfig.jsc.transform.decoratorMetadata = true;
129
142
  }
130
143
  // Annotate the CommonJS export names for ESM import in node:
131
144
  0 && (module.exports = {
145
+ applySwcDecoratorConfig,
132
146
  getDefaultSwcConfig,
133
147
  pluginSwc
134
148
  });
@@ -32,24 +32,24 @@ __export(provider_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(provider_exports);
34
34
  var import_shared = require("@rsbuild/shared");
35
- var import_createContext = require("./core/createContext");
36
- var import_initConfigs = require("./core/initConfigs");
37
- var import_initPlugins = require("./core/initPlugins");
35
+ var import_createContext = require("./createContext");
36
+ var import_initConfigs = require("./initConfigs");
37
+ var import_initPlugins = require("./initPlugins");
38
38
  var import_shared2 = require("./shared");
39
39
  const rspackProvider = async ({
40
- pluginStore,
40
+ pluginManager,
41
41
  rsbuildOptions,
42
42
  plugins
43
43
  }) => {
44
44
  const rsbuildConfig = (0, import_shared.pickRsbuildConfig)(rsbuildOptions.rsbuildConfig);
45
45
  const context = await (0, import_createContext.createContext)(rsbuildOptions, rsbuildConfig, "rspack");
46
- const pluginAPI = (0, import_initPlugins.getPluginAPI)({ context, pluginStore });
46
+ const pluginAPI = (0, import_initPlugins.getPluginAPI)({ context, pluginManager });
47
47
  context.pluginAPI = pluginAPI;
48
48
  const createCompiler = async () => {
49
- const { createCompiler: createCompiler2 } = await Promise.resolve().then(() => __toESM(require("./core/createCompiler")));
49
+ const { createCompiler: createCompiler2 } = await Promise.resolve().then(() => __toESM(require("./createCompiler")));
50
50
  const { rspackConfigs } = await (0, import_initConfigs.initConfigs)({
51
51
  context,
52
- pluginStore,
52
+ pluginManager,
53
53
  rsbuildOptions
54
54
  });
55
55
  return createCompiler2({
@@ -63,50 +63,50 @@ const rspackProvider = async ({
63
63
  createCompiler,
64
64
  publicContext: (0, import_createContext.createPublicContext)(context),
65
65
  async applyDefaultPlugins() {
66
- pluginStore.addPlugins(await (0, import_shared2.applyDefaultPlugins)(plugins));
66
+ pluginManager.addPlugins(await (0, import_shared2.applyDefaultPlugins)(plugins));
67
67
  },
68
68
  async getServerAPIs(options) {
69
69
  const { getServerAPIs } = await Promise.resolve().then(() => __toESM(require("../server/devServer")));
70
- const { createDevMiddleware } = await Promise.resolve().then(() => __toESM(require("./core/createCompiler")));
71
- await (0, import_initConfigs.initRsbuildConfig)({ context, pluginStore });
70
+ const { createDevMiddleware } = await Promise.resolve().then(() => __toESM(require("./createCompiler")));
71
+ await (0, import_initConfigs.initRsbuildConfig)({ context, pluginManager });
72
72
  return getServerAPIs(
73
- { context, pluginStore, rsbuildOptions },
73
+ { context, pluginManager, rsbuildOptions },
74
74
  createDevMiddleware,
75
75
  options
76
76
  );
77
77
  },
78
78
  async startDevServer(options) {
79
79
  const { startDevServer } = await Promise.resolve().then(() => __toESM(require("../server/devServer")));
80
- const { createDevMiddleware } = await Promise.resolve().then(() => __toESM(require("./core/createCompiler")));
81
- await (0, import_initConfigs.initRsbuildConfig)({ context, pluginStore });
80
+ const { createDevMiddleware } = await Promise.resolve().then(() => __toESM(require("./createCompiler")));
81
+ await (0, import_initConfigs.initRsbuildConfig)({ context, pluginManager });
82
82
  return startDevServer(
83
- { context, pluginStore, rsbuildOptions },
83
+ { context, pluginManager, rsbuildOptions },
84
84
  createDevMiddleware,
85
85
  options
86
86
  );
87
87
  },
88
88
  async preview(options) {
89
89
  const { startProdServer } = await Promise.resolve().then(() => __toESM(require("../server/prodServer")));
90
- await (0, import_initConfigs.initRsbuildConfig)({ context, pluginStore });
90
+ await (0, import_initConfigs.initRsbuildConfig)({ context, pluginManager });
91
91
  return startProdServer(context, context.config, options);
92
92
  },
93
93
  async build(options) {
94
- const { build } = await Promise.resolve().then(() => __toESM(require("./core/build")));
95
- return build({ context, pluginStore, rsbuildOptions }, options);
94
+ const { build } = await Promise.resolve().then(() => __toESM(require("./build")));
95
+ return build({ context, pluginManager, rsbuildOptions }, options);
96
96
  },
97
97
  async initConfigs() {
98
98
  const { rspackConfigs } = await (0, import_initConfigs.initConfigs)({
99
99
  context,
100
- pluginStore,
100
+ pluginManager,
101
101
  rsbuildOptions
102
102
  });
103
103
  return rspackConfigs;
104
104
  },
105
105
  async inspectConfig(inspectOptions) {
106
- const { inspectConfig } = await Promise.resolve().then(() => __toESM(require("./core/inspectConfig")));
106
+ const { inspectConfig } = await Promise.resolve().then(() => __toESM(require("./inspectConfig")));
107
107
  return inspectConfig({
108
108
  context,
109
- pluginStore,
109
+ pluginManager,
110
110
  rsbuildOptions,
111
111
  inspectOptions
112
112
  });
@@ -1,5 +1,5 @@
1
1
  import { type RspackConfig, type RsbuildTarget, type ModifyChainUtils } from '@rsbuild/shared';
2
- import type { InternalContext } from '../../types';
2
+ import type { InternalContext } from '../types';
3
3
  export declare function getChainUtils(target: RsbuildTarget): ModifyChainUtils;
4
4
  export declare function generateRspackConfig({ target, context, }: {
5
5
  target: RsbuildTarget;
@@ -33,8 +33,8 @@ __export(rspackConfig_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(rspackConfig_exports);
35
35
  var import_shared = require("@rsbuild/shared");
36
- var import_shared2 = require("../shared");
37
- var import_htmlPluginUtil = require("../htmlPluginUtil");
36
+ var import_shared2 = require("./shared");
37
+ var import_htmlPluginUtil = require("./htmlPluginUtil");
38
38
  async function modifyRspackConfig(context, rspackConfig, utils) {
39
39
  (0, import_shared.debug)("modify Rspack config");
40
40
  let [modifiedConfig] = await context.hooks.modifyRspackConfig.call(