@bleedingdev/modern-js-builder 3.9.0-ultramodern.1 → 3.9.0-ultramodern.10

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 (53) hide show
  1. package/dist/cjs/createBuilder.js +15 -6
  2. package/dist/cjs/index.js +6 -2
  3. package/dist/cjs/shared/parseCommonConfig.js +2 -1
  4. package/dist/cjs/shared/rsc/rscClientBrowserFallback.js +68 -0
  5. package/dist/cjs/shared/tsgo.js +274 -0
  6. package/dist/esm/createBuilder.mjs +16 -7
  7. package/dist/esm/index.mjs +1 -0
  8. package/dist/esm/shared/parseCommonConfig.mjs +2 -1
  9. package/dist/esm/shared/rsc/rscClientBrowserFallback.mjs +20 -0
  10. package/dist/esm/shared/tsgo.mjs +219 -0
  11. package/dist/esm-node/createBuilder.mjs +16 -7
  12. package/dist/esm-node/index.mjs +1 -0
  13. package/dist/esm-node/shared/parseCommonConfig.mjs +2 -1
  14. package/dist/esm-node/shared/rsc/rscClientBrowserFallback.mjs +25 -0
  15. package/dist/esm-node/shared/tsgo.mjs +220 -0
  16. package/dist/types/css-minimizer/LICENSE +20 -0
  17. package/dist/types/css-minimizer/index.d.ts +154 -0
  18. package/dist/types/index.d.ts +1 -0
  19. package/dist/types/sass/LICENSE +21 -0
  20. package/dist/types/sass/index.d.ts +36 -0
  21. package/dist/types/sass/loader.d.ts +957 -0
  22. package/dist/types/shared/rsc/rscClientBrowserFallback.d.ts +2 -0
  23. package/dist/types/shared/tsgo.d.ts +27 -0
  24. package/dist/types/types.d.ts +3 -3
  25. package/package.json +15 -13
  26. package/dist/cjs/shared/rsc/rscDisabledClientBrowserRuntime.js +0 -69
  27. package/dist/cjs/shared/rsc/rscDisabledClientEdgeRuntime.js +0 -61
  28. package/dist/cjs/shared/rsc/rscDisabledClientNodeRuntime.js +0 -65
  29. package/dist/cjs/shared/rsc/rscDisabledRuntime.js +0 -140
  30. package/dist/cjs/shared/rsc/rscDisabledRuntimeError.js +0 -42
  31. package/dist/cjs/shared/rsc/rscDisabledServerEdgeRuntime.js +0 -93
  32. package/dist/cjs/shared/rsc/rscDisabledServerNodeRuntime.js +0 -101
  33. package/dist/esm/shared/rsc/rscDisabledClientBrowserRuntime.mjs +0 -10
  34. package/dist/esm/shared/rsc/rscDisabledClientEdgeRuntime.mjs +0 -8
  35. package/dist/esm/shared/rsc/rscDisabledClientNodeRuntime.mjs +0 -9
  36. package/dist/esm/shared/rsc/rscDisabledRuntime.mjs +0 -92
  37. package/dist/esm/shared/rsc/rscDisabledRuntimeError.mjs +0 -4
  38. package/dist/esm/shared/rsc/rscDisabledServerEdgeRuntime.mjs +0 -16
  39. package/dist/esm/shared/rsc/rscDisabledServerNodeRuntime.mjs +0 -18
  40. package/dist/esm-node/shared/rsc/rscDisabledClientBrowserRuntime.mjs +0 -11
  41. package/dist/esm-node/shared/rsc/rscDisabledClientEdgeRuntime.mjs +0 -9
  42. package/dist/esm-node/shared/rsc/rscDisabledClientNodeRuntime.mjs +0 -10
  43. package/dist/esm-node/shared/rsc/rscDisabledRuntime.mjs +0 -97
  44. package/dist/esm-node/shared/rsc/rscDisabledRuntimeError.mjs +0 -5
  45. package/dist/esm-node/shared/rsc/rscDisabledServerEdgeRuntime.mjs +0 -17
  46. package/dist/esm-node/shared/rsc/rscDisabledServerNodeRuntime.mjs +0 -19
  47. package/dist/types/shared/rsc/rscDisabledClientBrowserRuntime.d.ts +0 -9
  48. package/dist/types/shared/rsc/rscDisabledClientEdgeRuntime.d.ts +0 -7
  49. package/dist/types/shared/rsc/rscDisabledClientNodeRuntime.d.ts +0 -8
  50. package/dist/types/shared/rsc/rscDisabledRuntime.d.ts +0 -2
  51. package/dist/types/shared/rsc/rscDisabledRuntimeError.d.ts +0 -1
  52. package/dist/types/shared/rsc/rscDisabledServerEdgeRuntime.d.ts +0 -15
  53. package/dist/types/shared/rsc/rscDisabledServerNodeRuntime.d.ts +0 -17
@@ -34,7 +34,7 @@ __webpack_require__.d(__webpack_exports__, {
34
34
  const core_namespaceObject = require("@rsbuild/core");
35
35
  const rscConfig_js_namespaceObject = require("./plugins/rscConfig.js");
36
36
  const parseCommonConfig_js_namespaceObject = require("./shared/parseCommonConfig.js");
37
- const rscDisabledRuntime_js_namespaceObject = require("./shared/rsc/rscDisabledRuntime.js");
37
+ const rscClientBrowserFallback_js_namespaceObject = require("./shared/rsc/rscClientBrowserFallback.js");
38
38
  async function parseConfig(builderConfig, options) {
39
39
  builderConfig.performance ??= {};
40
40
  builderConfig.performance.buildCache ??= true;
@@ -62,10 +62,7 @@ async function parseConfig(builderConfig, options) {
62
62
  const rscEnvironments = 'object' == typeof rscConfig ? rscConfig.environments : void 0;
63
63
  const rscPlugins = await (0, rscConfig_js_namespaceObject.getRscPlugins)(enableRsc, options.internalDirectory, rscEnvironments);
64
64
  rsbuildPlugins.push(...rscPlugins);
65
- } else rsbuildConfig.plugins = [
66
- ...rsbuildConfig.plugins ?? [],
67
- (0, rscDisabledRuntime_js_namespaceObject.rscDisabledRuntimePlugin)()
68
- ];
65
+ } else rsbuildPlugins.push((0, rscClientBrowserFallback_js_namespaceObject.rscClientBrowserFallbackPlugin)());
69
66
  return {
70
67
  rsbuildConfig,
71
68
  rsbuildPlugins
@@ -83,7 +80,19 @@ async function createRspackBuilder(options) {
83
80
  ];
84
81
  const rsbuild = await (0, core_namespaceObject.createRsbuild)({
85
82
  cwd,
86
- rsbuildConfig
83
+ rsbuildConfig: (0, core_namespaceObject.mergeRsbuildConfig)({
84
+ tools: {
85
+ rspack: {
86
+ module: {
87
+ parser: {
88
+ javascript: {
89
+ createRequire: true
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }, rsbuildConfig)
87
96
  });
88
97
  return {
89
98
  ...rsbuild
package/dist/cjs/index.js CHANGED
@@ -35,10 +35,12 @@ __webpack_require__.d(__webpack_exports__, {
35
35
  createBuilder: ()=>external_createBuilder_js_namespaceObject.createRspackBuilder,
36
36
  isHtmlDisabled: ()=>utils_js_namespaceObject.isHtmlDisabled,
37
37
  logger: ()=>core_namespaceObject.logger,
38
- parseRspackConfig: ()=>external_createBuilder_js_namespaceObject.parseConfig
38
+ parseRspackConfig: ()=>external_createBuilder_js_namespaceObject.parseConfig,
39
+ refreshTsgoCheckerConfig: ()=>tsgo_js_namespaceObject.refreshTsgoCheckerConfig
39
40
  });
40
41
  const external_createBuilder_js_namespaceObject = require("./createBuilder.js");
41
42
  const core_namespaceObject = require("@rsbuild/core");
43
+ const tsgo_js_namespaceObject = require("./shared/tsgo.js");
42
44
  const utils_js_namespaceObject = require("./shared/utils.js");
43
45
  exports.RUNTIME_CHUNK_NAME = __webpack_exports__.RUNTIME_CHUNK_NAME;
44
46
  exports.RUNTIME_CHUNK_REGEX = __webpack_exports__.RUNTIME_CHUNK_REGEX;
@@ -48,6 +50,7 @@ exports.createBuilder = __webpack_exports__.createBuilder;
48
50
  exports.isHtmlDisabled = __webpack_exports__.isHtmlDisabled;
49
51
  exports.logger = __webpack_exports__.logger;
50
52
  exports.parseRspackConfig = __webpack_exports__.parseRspackConfig;
53
+ exports.refreshTsgoCheckerConfig = __webpack_exports__.refreshTsgoCheckerConfig;
51
54
  for(var __rspack_i in __webpack_exports__)if (-1 === [
52
55
  "RUNTIME_CHUNK_NAME",
53
56
  "RUNTIME_CHUNK_REGEX",
@@ -56,7 +59,8 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
56
59
  "createBuilder",
57
60
  "isHtmlDisabled",
58
61
  "logger",
59
- "parseRspackConfig"
62
+ "parseRspackConfig",
63
+ "refreshTsgoCheckerConfig"
60
64
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
61
65
  Object.defineProperty(exports, '__esModule', {
62
66
  value: true
@@ -43,6 +43,7 @@ const globalVars_js_namespaceObject = require("../plugins/globalVars.js");
43
43
  const htmlMinify_js_namespaceObject = require("../plugins/htmlMinify.js");
44
44
  const runtimeChunk_js_namespaceObject = require("../plugins/runtimeChunk.js");
45
45
  const external_devServer_js_namespaceObject = require("./devServer.js");
46
+ const external_tsgo_js_namespaceObject = require("./tsgo.js");
46
47
  const external_utils_js_namespaceObject = require("./utils.js");
47
48
  const CSS_MODULES_REGEX = /\.modules?\.\w+$/i;
48
49
  const GLOBAL_CSS_REGEX = /\.global\.\w+$/;
@@ -168,7 +169,7 @@ async function parseCommonConfig(builderConfig, options) {
168
169
  if (!disableTsChecker) {
169
170
  const { pluginTypeCheck } = await import("@rsbuild/plugin-type-check");
170
171
  rsbuildPlugins.push(pluginTypeCheck({
171
- tsCheckerOptions: tsChecker
172
+ tsCheckerOptions: (0, external_tsgo_js_namespaceObject.withTsgoDefaults)(tsChecker, options?.cwd ?? process.cwd())
172
173
  }));
173
174
  }
174
175
  if (convertToRem) {
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ rscClientBrowserFallbackPlugin: ()=>rscClientBrowserFallbackPlugin
41
+ });
42
+ const external_path_namespaceObject = require("path");
43
+ var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
44
+ function rscClientBrowserFallbackPlugin() {
45
+ return {
46
+ name: 'builder:rsc-client-browser-fallback',
47
+ setup (api) {
48
+ let emptyModulePath;
49
+ try {
50
+ emptyModulePath = require.resolve('./rscEmptyModule');
51
+ } catch {
52
+ emptyModulePath = external_path_default().resolve(__dirname, 'rscEmptyModule');
53
+ }
54
+ api.modifyRspackConfig((config)=>{
55
+ config.resolve ??= {};
56
+ config.resolve.fallback ??= {};
57
+ config.resolve.fallback['react-server-dom-rspack/client.browser'] = emptyModulePath;
58
+ });
59
+ }
60
+ };
61
+ }
62
+ exports.rscClientBrowserFallbackPlugin = __webpack_exports__.rscClientBrowserFallbackPlugin;
63
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
64
+ "rscClientBrowserFallbackPlugin"
65
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
66
+ Object.defineProperty(exports, '__esModule', {
67
+ value: true
68
+ });
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ const __rslib_import_meta_url__ = /*#__PURE__*/ function() {
3
+ return "u" < typeof document ? new (require('url'.replace('', ''))).URL('file:' + __filename).href : document.currentScript && document.currentScript.src || new URL('main.js', document.baseURI).href;
4
+ }();
5
+ var __webpack_require__ = {};
6
+ (()=>{
7
+ __webpack_require__.n = (module)=>{
8
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
9
+ __webpack_require__.d(getter, {
10
+ a: getter
11
+ });
12
+ return getter;
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.d = (exports1, getters, values)=>{
17
+ var define = (defs, kind)=>{
18
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
19
+ enumerable: true,
20
+ [kind]: defs[key]
21
+ });
22
+ };
23
+ define(getters, "get");
24
+ define(values, "value");
25
+ };
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
29
+ })();
30
+ (()=>{
31
+ __webpack_require__.r = (exports1)=>{
32
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
33
+ value: 'Module'
34
+ });
35
+ Object.defineProperty(exports1, '__esModule', {
36
+ value: true
37
+ });
38
+ };
39
+ })();
40
+ var __webpack_exports__ = {};
41
+ __webpack_require__.r(__webpack_exports__);
42
+ __webpack_require__.d(__webpack_exports__, {
43
+ refreshTsgoCheckerConfig: ()=>refreshTsgoCheckerConfig,
44
+ withTsgoDefaults: ()=>withTsgoDefaults
45
+ });
46
+ const external_node_crypto_namespaceObject = require("node:crypto");
47
+ const external_node_fs_namespaceObject = require("node:fs");
48
+ var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
49
+ const external_node_module_namespaceObject = require("node:module");
50
+ const external_node_path_namespaceObject = require("node:path");
51
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
52
+ const utils_namespaceObject = require("@modern-js/utils");
53
+ const builderRequire = (0, external_node_module_namespaceObject.createRequire)(__rslib_import_meta_url__);
54
+ const STABLE_TSGO_PACKAGE = "typescript/package.json";
55
+ const NATIVE_PREVIEW_TSGO_PACKAGE = "@typescript/native-preview/package.json";
56
+ const TSGO_CHECKER_DIR = external_node_path_default().join('.modern-js', 'tsgo');
57
+ const tryResolve = (request, rootPath)=>{
58
+ try {
59
+ return builderRequire.resolve(request, {
60
+ paths: [
61
+ rootPath
62
+ ]
63
+ });
64
+ } catch {
65
+ return;
66
+ }
67
+ };
68
+ const readPackageMajorVersion = (packageJsonPath)=>{
69
+ try {
70
+ const packageJson = JSON.parse(external_node_fs_default().readFileSync(packageJsonPath, 'utf8'));
71
+ const major = Number.parseInt(String(packageJson.version).split('.')[0], 10);
72
+ return Number.isFinite(major) ? major : void 0;
73
+ } catch {
74
+ return;
75
+ }
76
+ };
77
+ const resolveTsgoPackagePath = (rootPath)=>{
78
+ const stableTypeScriptPath = tryResolve(STABLE_TSGO_PACKAGE, rootPath);
79
+ if (stableTypeScriptPath && (readPackageMajorVersion(stableTypeScriptPath) ?? 0) >= 7) return stableTypeScriptPath;
80
+ const previewFromProject = tryResolve(NATIVE_PREVIEW_TSGO_PACKAGE, rootPath);
81
+ if (previewFromProject) return previewFromProject;
82
+ try {
83
+ return builderRequire.resolve(NATIVE_PREVIEW_TSGO_PACKAGE);
84
+ } catch {
85
+ return;
86
+ }
87
+ };
88
+ const toPosixPath = (input)=>input.replaceAll(external_node_path_default().sep, '/');
89
+ const asTsConfigPath = (request)=>{
90
+ if (external_node_path_default().extname(request)) return [
91
+ request
92
+ ];
93
+ return [
94
+ request,
95
+ `${request}.json`
96
+ ];
97
+ };
98
+ const resolveExtends = (request, configDirectory)=>{
99
+ const configRequire = (0, external_node_module_namespaceObject.createRequire)(external_node_path_default().join(configDirectory, 'tsconfig.json'));
100
+ for (const candidate of asTsConfigPath(request)){
101
+ if (candidate.startsWith('.') || external_node_path_default().isAbsolute(candidate)) {
102
+ const resolved = external_node_path_default().resolve(configDirectory, candidate);
103
+ if (external_node_fs_default().existsSync(resolved)) return resolved;
104
+ continue;
105
+ }
106
+ try {
107
+ return configRequire.resolve(candidate);
108
+ } catch {}
109
+ }
110
+ };
111
+ const PATH_COMPILER_OPTIONS = [
112
+ 'rootDir',
113
+ 'outDir',
114
+ 'declarationDir'
115
+ ];
116
+ const absolutiseConfigPaths = (compilerOptions, configDirectory)=>{
117
+ if (!compilerOptions) return {};
118
+ const resolved = {
119
+ ...compilerOptions
120
+ };
121
+ for (const option of PATH_COMPILER_OPTIONS){
122
+ const value = resolved[option];
123
+ if ('string' == typeof value && !external_node_path_default().isAbsolute(value)) resolved[option] = external_node_path_default().resolve(configDirectory, value);
124
+ }
125
+ return resolved;
126
+ };
127
+ const readTsConfig = (configFile, visited = new Set())=>{
128
+ if (visited.has(configFile) || !external_node_fs_default().existsSync(configFile)) return {};
129
+ visited.add(configFile);
130
+ const config = utils_namespaceObject.json5.parse(external_node_fs_default().readFileSync(configFile, 'utf8'));
131
+ const configDirectory = external_node_path_default().dirname(configFile);
132
+ const extendsList = Array.isArray(config.extends) ? config.extends : config.extends ? [
133
+ config.extends
134
+ ] : [];
135
+ const baseConfig = extendsList.reduce((merged, request)=>{
136
+ const resolved = resolveExtends(request, configDirectory);
137
+ if (!resolved) return merged;
138
+ const parentConfig = readTsConfig(resolved, visited);
139
+ return {
140
+ ...merged,
141
+ compilerOptions: {
142
+ ...merged.compilerOptions ?? {},
143
+ ...parentConfig.compilerOptions ?? {}
144
+ }
145
+ };
146
+ }, {});
147
+ return {
148
+ ...baseConfig,
149
+ compilerOptions: {
150
+ ...baseConfig.compilerOptions ?? {},
151
+ ...absolutiseConfigPaths(config.compilerOptions, configDirectory)
152
+ }
153
+ };
154
+ };
155
+ const readProjectReferences = (configFile)=>{
156
+ if (!external_node_fs_default().existsSync(configFile)) return [];
157
+ const config = utils_namespaceObject.json5.parse(external_node_fs_default().readFileSync(configFile, 'utf8'));
158
+ if (!Array.isArray(config.references)) return [];
159
+ const configDirectory = external_node_path_default().dirname(configFile);
160
+ return config.references.filter((reference)=>'string' == typeof reference?.path).map((reference)=>({
161
+ ...reference,
162
+ path: toPosixPath(external_node_path_default().resolve(configDirectory, reference.path))
163
+ }));
164
+ };
165
+ const toRelativeConfigPath = (fromDirectory, target)=>{
166
+ const relative = toPosixPath(external_node_path_default().relative(fromDirectory, target));
167
+ if (relative.startsWith('.')) return relative;
168
+ return `./${relative}`;
169
+ };
170
+ const writeFileIfChanged = (file, content)=>{
171
+ if (external_node_fs_default().existsSync(file) && external_node_fs_default().readFileSync(file, 'utf8') === content) return;
172
+ external_node_fs_default().writeFileSync(file, content);
173
+ };
174
+ const defaultTsgoCheckerConfigFile = (configFile)=>{
175
+ const hash = (0, external_node_crypto_namespaceObject.createHash)('sha1').update(configFile).digest('hex').slice(0, 10);
176
+ return external_node_path_default().join(external_node_path_default().dirname(configFile), TSGO_CHECKER_DIR, `tsconfig.${hash}.json`);
177
+ };
178
+ const createTsgoCheckerConfig = (configFile, checkerConfigFile = defaultTsgoCheckerConfigFile(configFile))=>{
179
+ const configDirectory = external_node_path_default().dirname(configFile);
180
+ const checkerConfigDirectory = external_node_path_default().dirname(checkerConfigFile);
181
+ const tsConfig = readTsConfig(configFile);
182
+ const compilerOptions = {
183
+ baseUrl: null
184
+ };
185
+ const declaredRootDir = tsConfig.compilerOptions?.rootDir;
186
+ if ('string' == typeof declaredRootDir) compilerOptions.rootDir = toPosixPath(declaredRootDir);
187
+ else if (tsConfig.compilerOptions?.composite === true) compilerOptions.rootDir = toPosixPath(configDirectory);
188
+ const moduleResolution = String(tsConfig.compilerOptions?.moduleResolution).toLowerCase();
189
+ if ([
190
+ 'node',
191
+ 'node10'
192
+ ].includes(moduleResolution)) compilerOptions.moduleResolution = null;
193
+ const references = readProjectReferences(configFile);
194
+ const checkerConfig = {
195
+ extends: toRelativeConfigPath(checkerConfigDirectory, configFile),
196
+ compilerOptions,
197
+ ...references.length > 0 ? {
198
+ references
199
+ } : {}
200
+ };
201
+ external_node_fs_default().mkdirSync(checkerConfigDirectory, {
202
+ recursive: true
203
+ });
204
+ writeFileIfChanged(checkerConfigFile, `${JSON.stringify(checkerConfig, null, 2)}\n`);
205
+ return checkerConfigFile;
206
+ };
207
+ const refreshTsgoCheckerConfig = (checkerConfigFile)=>{
208
+ const checkerConfigDirectory = external_node_path_default().dirname(checkerConfigFile);
209
+ if ('tsgo' !== external_node_path_default().basename(checkerConfigDirectory) || '.modern-js' !== external_node_path_default().basename(external_node_path_default().dirname(checkerConfigDirectory)) || !external_node_fs_default().existsSync(checkerConfigFile)) return;
210
+ let checkerConfig;
211
+ try {
212
+ checkerConfig = utils_namespaceObject.json5.parse(external_node_fs_default().readFileSync(checkerConfigFile, 'utf8'));
213
+ } catch {
214
+ return;
215
+ }
216
+ if ('string' != typeof checkerConfig.extends) return;
217
+ const projectConfigFile = external_node_path_default().resolve(checkerConfigDirectory, checkerConfig.extends);
218
+ if (external_node_fs_default().existsSync(projectConfigFile)) try {
219
+ createTsgoCheckerConfig(projectConfigFile, checkerConfigFile);
220
+ } catch {}
221
+ return projectConfigFile;
222
+ };
223
+ const normalizeTsgoConfig = (config, rootPath)=>{
224
+ const { typescript } = config;
225
+ if (typescript?.tsgo === false) return config;
226
+ const compilerOptions = {
227
+ ...typescript?.configOverwrite?.compilerOptions ?? {},
228
+ baseUrl: null
229
+ };
230
+ if ([
231
+ 'node',
232
+ 'node10'
233
+ ].includes(String(compilerOptions.moduleResolution).toLowerCase())) compilerOptions.moduleResolution = null;
234
+ config.typescript = {
235
+ ...typescript,
236
+ configOverwrite: {
237
+ ...typescript?.configOverwrite ?? {},
238
+ compilerOptions
239
+ }
240
+ };
241
+ if (typescript?.configFile) config.typescript.configFile = createTsgoCheckerConfig(external_node_path_default().resolve(rootPath, typescript.configFile));
242
+ return config;
243
+ };
244
+ const withTsgoDefaults = (userOptions, rootPath)=>{
245
+ const tsgoPath = resolveTsgoPackagePath(rootPath);
246
+ const userChain = userOptions ? Array.isArray(userOptions) ? userOptions : [
247
+ userOptions
248
+ ] : [];
249
+ return [
250
+ {
251
+ typescript: tsgoPath ? {
252
+ tsgo: true,
253
+ typescriptPath: tsgoPath
254
+ } : {
255
+ tsgo: true
256
+ }
257
+ },
258
+ ...userChain,
259
+ (config)=>{
260
+ const { typescript } = config;
261
+ if (typescript?.tsgo === false && typescript.typescriptPath === tsgoPath) typescript.typescriptPath = tryResolve("typescript", rootPath);
262
+ return normalizeTsgoConfig(config, rootPath);
263
+ }
264
+ ];
265
+ };
266
+ exports.refreshTsgoCheckerConfig = __webpack_exports__.refreshTsgoCheckerConfig;
267
+ exports.withTsgoDefaults = __webpack_exports__.withTsgoDefaults;
268
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
269
+ "refreshTsgoCheckerConfig",
270
+ "withTsgoDefaults"
271
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
272
+ Object.defineProperty(exports, '__esModule', {
273
+ value: true
274
+ });
@@ -1,7 +1,7 @@
1
- import { createRsbuild } from "@rsbuild/core";
1
+ import { createRsbuild, mergeRsbuildConfig } from "@rsbuild/core";
2
2
  import { getRscPlugins } from "./plugins/rscConfig.mjs";
3
3
  import { parseCommonConfig } from "./shared/parseCommonConfig.mjs";
4
- import { rscDisabledRuntimePlugin } from "./shared/rsc/rscDisabledRuntime.mjs";
4
+ import { rscClientBrowserFallbackPlugin } from "./shared/rsc/rscClientBrowserFallback.mjs";
5
5
  async function parseConfig(builderConfig, options) {
6
6
  builderConfig.performance ??= {};
7
7
  builderConfig.performance.buildCache ??= true;
@@ -29,10 +29,7 @@ async function parseConfig(builderConfig, options) {
29
29
  const rscEnvironments = 'object' == typeof rscConfig ? rscConfig.environments : void 0;
30
30
  const rscPlugins = await getRscPlugins(enableRsc, options.internalDirectory, rscEnvironments);
31
31
  rsbuildPlugins.push(...rscPlugins);
32
- } else rsbuildConfig.plugins = [
33
- ...rsbuildConfig.plugins ?? [],
34
- rscDisabledRuntimePlugin()
35
- ];
32
+ } else rsbuildPlugins.push(rscClientBrowserFallbackPlugin());
36
33
  return {
37
34
  rsbuildConfig,
38
35
  rsbuildPlugins
@@ -50,7 +47,19 @@ async function createRspackBuilder(options) {
50
47
  ];
51
48
  const rsbuild = await createRsbuild({
52
49
  cwd,
53
- rsbuildConfig
50
+ rsbuildConfig: mergeRsbuildConfig({
51
+ tools: {
52
+ rspack: {
53
+ module: {
54
+ parser: {
55
+ javascript: {
56
+ createRequire: true
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }, rsbuildConfig)
54
63
  });
55
64
  return {
56
65
  ...rsbuild
@@ -1,3 +1,4 @@
1
1
  export { createRspackBuilder as createBuilder, parseConfig as parseRspackConfig } from "./createBuilder.mjs";
2
2
  export { logger } from "@rsbuild/core";
3
+ export { refreshTsgoCheckerConfig } from "./shared/tsgo.mjs";
3
4
  export { RUNTIME_CHUNK_NAME, RUNTIME_CHUNK_REGEX, SERVICE_WORKER_ENVIRONMENT_NAME, castArray, isHtmlDisabled } from "./shared/utils.mjs";
@@ -10,6 +10,7 @@ import { pluginGlobalVars } from "../plugins/globalVars.mjs";
10
10
  import { pluginHtmlMinifierTerser } from "../plugins/htmlMinify.mjs";
11
11
  import { pluginRuntimeChunk } from "../plugins/runtimeChunk.mjs";
12
12
  import { transformToRsbuildServerOptions } from "./devServer.mjs";
13
+ import { withTsgoDefaults } from "./tsgo.mjs";
13
14
  import { NODE_MODULES_REGEX } from "./utils.mjs";
14
15
  const CSS_MODULES_REGEX = /\.modules?\.\w+$/i;
15
16
  const GLOBAL_CSS_REGEX = /\.global\.\w+$/;
@@ -135,7 +136,7 @@ async function parseCommonConfig(builderConfig, options) {
135
136
  if (!disableTsChecker) {
136
137
  const { pluginTypeCheck } = await import("@rsbuild/plugin-type-check");
137
138
  rsbuildPlugins.push(pluginTypeCheck({
138
- tsCheckerOptions: tsChecker
139
+ tsCheckerOptions: withTsgoDefaults(tsChecker, options?.cwd ?? process.cwd())
139
140
  }));
140
141
  }
141
142
  if (convertToRem) {
@@ -0,0 +1,20 @@
1
+ import path from "path";
2
+ function rscClientBrowserFallbackPlugin() {
3
+ return {
4
+ name: 'builder:rsc-client-browser-fallback',
5
+ setup (api) {
6
+ let emptyModulePath;
7
+ try {
8
+ emptyModulePath = require.resolve('./rscEmptyModule');
9
+ } catch {
10
+ emptyModulePath = path.resolve(__dirname, 'rscEmptyModule');
11
+ }
12
+ api.modifyRspackConfig((config)=>{
13
+ config.resolve ??= {};
14
+ config.resolve.fallback ??= {};
15
+ config.resolve.fallback['react-server-dom-rspack/client.browser'] = emptyModulePath;
16
+ });
17
+ }
18
+ };
19
+ }
20
+ export { rscClientBrowserFallbackPlugin };