@ms-cloudpack/bundler-rspack 0.5.31 → 0.5.33

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.
@@ -2,5 +2,5 @@ import type { BundleContext, BundleMode, InternalBundlerCapabilityImplementation
2
2
  import type { Configuration } from '@rspack/core';
3
3
  export declare const getRspackCapabilities: (params: {
4
4
  effectiveMode: BundleMode;
5
- }, context: Pick<BundleContext, "config">) => InternalBundlerCapabilityImplementations<Configuration>;
5
+ }, context: Pick<BundleContext, 'config'>) => InternalBundlerCapabilityImplementations<Configuration>;
6
6
  //# sourceMappingURL=getRspackCapabilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getRspackCapabilities.d.ts","sourceRoot":"","sources":["../src/getRspackCapabilities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,wCAAwC,EAAE,MAAM,4BAA4B,CAAC;AAEtH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,eAAO,MAAM,qBAAqB,GAChC,QAAQ;IAAE,aAAa,EAAE,UAAU,CAAA;CAAE,EACrC,SAAS,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,KACrC,wCAAwC,CAAC,aAAa,CAwEvD,CAAC"}
1
+ {"version":3,"file":"getRspackCapabilities.d.ts","sourceRoot":"","sources":["../src/getRspackCapabilities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,wCAAwC,EAAE,MAAM,4BAA4B,CAAC;AAEtH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,eAAO,MAAM,qBAAqB,WACxB;IAAE,aAAa,EAAE,UAAU,CAAA;CAAE,WAC5B,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,KACrC,wCAAwC,CAAC,aAAa,CAwEvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getRspackCapabilities.js","sourceRoot":"","sources":["../src/getRspackCapabilities.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSwcRelayPluginConfig, processAssetInlineExtensions } from '@ms-cloudpack/bundler-utilities';\nimport type { BundleContext, BundleMode, InternalBundlerCapabilityImplementations } from '@ms-cloudpack/common-types';\nimport { webExtensions } from '@ms-cloudpack/path-utilities';\nimport type { Configuration } from '@rspack/core';\nimport { DefinePlugin } from '@rspack/core';\nimport type { Config as SwcConfig } from '@swc/core';\n\nexport const getRspackCapabilities = (\n params: { effectiveMode: BundleMode },\n context: Pick<BundleContext, 'config'>,\n): InternalBundlerCapabilityImplementations<Configuration> => ({\n 'asset-inline': (config, options) => {\n // Process extensions based on format (array or object)\n const processedExtensions = processAssetInlineExtensions(options.extensions);\n\n // Remove the leading dot from the extensions\n const extensions = processedExtensions.map((ext) => (ext.startsWith('.') ? ext.slice(1) : ext));\n config.module ??= {};\n config.module.rules ??= [];\n config.module.rules.push({\n test: new RegExp(`\\\\.(${extensions.join('|')})$`, 'i'),\n type: 'asset/inline',\n });\n return config;\n },\n alias: (config, options) => {\n // Add aliases for externalized packages to the webpack configuration\n if (!config.externals) {\n config.externals = [];\n } else if (!Array.isArray(config.externals)) {\n config.externals = [config.externals];\n }\n // The aliased packaged must be the first element in the array,\n // so that it is resolved before all other packages are externalized.\n config.externals.unshift(options);\n return config;\n },\n 'resolve-web-extensions': (config) => {\n config.resolve ??= {};\n config.resolve.extensions ??= [];\n config.resolve.extensions.unshift(...webExtensions);\n return config;\n },\n define: (config, options) => {\n config.plugins ??= [];\n config.plugins.push(\n new DefinePlugin({\n ...(params.effectiveMode === 'production' ? context.config.define : {}),\n ...options,\n }),\n );\n return config;\n },\n relay: (config, options) => {\n config.module ??= {};\n config.module.rules ??= [];\n\n const addRelayConfig = getSwcRelayPluginConfig({ options, parentUrl: import.meta.url });\n\n // Apply relay plugin to existing SWC loaders\n for (const syntax of ['typescript', 'ecmascript'] as const) {\n // Find the existing SWC loader for the current syntax\n const swcLoader = config.module.rules.find(\n (rule) =>\n typeof rule === 'object' &&\n rule?.loader === 'builtin:swc-loader' &&\n (rule.options as SwcConfig)?.jsc?.parser?.syntax === syntax,\n );\n\n // Type guard, we shouldn't be hitting this case\n if (!swcLoader || typeof swcLoader !== 'object') {\n throw new Error(`Could not find existing SWC loader for syntax ${syntax}`);\n }\n\n addRelayConfig(swcLoader.options as SwcConfig, syntax);\n }\n\n return config;\n },\n // This is a placeholder for the density capability. It doesn't do anything in the bundler.\n // It's just a workaround for a post-bundle task. This will be replaced with 'plugins' in the future.\n density: (config) => config,\n});\n"]}
1
+ {"version":3,"file":"getRspackCapabilities.js","sourceRoot":"","sources":["../src/getRspackCapabilities.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSwcRelayPluginConfig, processAssetInlineExtensions } from '@ms-cloudpack/bundler-utilities';\nimport type { BundleContext, BundleMode, InternalBundlerCapabilityImplementations } from '@ms-cloudpack/common-types';\nimport { webExtensions } from '@ms-cloudpack/path-utilities';\nimport type { Configuration } from '@rspack/core';\nimport { DefinePlugin } from '@rspack/core';\nimport type { Config as SwcConfig } from '@swc/core';\n\nexport const getRspackCapabilities = (\n params: { effectiveMode: BundleMode },\n context: Pick<BundleContext, 'config'>,\n): InternalBundlerCapabilityImplementations<Configuration> => ({\n 'asset-inline': (config, options) => {\n // Process extensions based on format (array or object)\n const processedExtensions = processAssetInlineExtensions(options.extensions);\n\n // Remove the leading dot from the extensions\n const extensions = processedExtensions.map((ext) => (ext.startsWith('.') ? ext.slice(1) : ext));\n config.module ??= {};\n config.module.rules ??= [];\n config.module.rules.push({\n test: new RegExp(`\\\\.(${extensions.join('|')})$`, 'i'),\n type: 'asset/inline',\n });\n return config;\n },\n alias: (config, options) => {\n // Add aliases for externalized packages to the webpack configuration\n if (!config.externals) {\n config.externals = [];\n } else if (!Array.isArray(config.externals)) {\n config.externals = [config.externals];\n }\n // The aliased packaged must be the first element in the array,\n // so that it is resolved before all other packages are externalized.\n config.externals.unshift(options);\n return config;\n },\n 'resolve-web-extensions': (config) => {\n config.resolve ??= {};\n config.resolve.extensions ??= [];\n config.resolve.extensions.unshift(...webExtensions);\n return config;\n },\n define: (config, options) => {\n config.plugins ??= [];\n config.plugins.push(\n new DefinePlugin({\n ...(params.effectiveMode === 'production' ? context.config.define : {}),\n ...options,\n }),\n );\n return config;\n },\n relay: (config, options) => {\n config.module ??= {};\n config.module.rules ??= [];\n\n const addRelayConfig = getSwcRelayPluginConfig({ options, parentUrl: import.meta.url });\n\n // Apply relay plugin to existing SWC loaders\n for (const syntax of ['typescript', 'ecmascript'] as const) {\n // Find the existing SWC loader for the current syntax\n const swcLoader = config.module.rules.find(\n (rule) =>\n typeof rule === 'object' &&\n rule?.loader === 'builtin:swc-loader' &&\n (rule.options as SwcConfig)?.jsc?.parser?.syntax === syntax,\n );\n\n // Type guard, we shouldn't be hitting this case\n if (!swcLoader || typeof swcLoader !== 'object') {\n throw new Error(`Could not find existing SWC loader for syntax ${syntax}`);\n }\n\n addRelayConfig(swcLoader.options as SwcConfig, syntax);\n }\n\n return config;\n },\n // This is a placeholder for the density capability. It doesn't do anything in the bundler.\n // It's just a workaround for a post-bundle task. This will be replaced with 'plugins' in the future.\n density: (config) => config,\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getRspackConfiguration.js","sourceRoot":"","sources":["../src/getRspackConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n defaultTargetSyntax,\n getCssRule,\n getModuleSearchPaths,\n getSwcConfig,\n shouldExternalizePackage,\n} from '@ms-cloudpack/bundler-utilities';\nimport type { BundleContext, BundleMode, BundleOptions } from '@ms-cloudpack/common-types';\nimport type { WriteESMStubsResult } from '@ms-cloudpack/esm-stub-utilities';\nimport { jsxRegex, resolveModule, typescriptRegex } from '@ms-cloudpack/path-utilities';\nimport type { Configuration, ExternalItemFunctionData, ExternalItemValue } from '@rspack/core';\nimport rspack from '@rspack/core';\nimport semver from 'semver';\nimport { fileURLToPath } from 'url';\nimport { merge } from 'webpack-merge';\n\nexport function getRspackConfiguration(\n params: {\n options: Omit<BundleOptions, 'entries' | 'outputPath'>;\n outputPath: string;\n effectiveMode: BundleMode;\n } & Pick<WriteESMStubsResult, 'newEntries'>,\n context: BundleContext,\n): Configuration {\n const { options, outputPath, newEntries, effectiveMode } = params;\n const { targetEnvironment, dedupeAliases } = options;\n const { unsafeDisableInlineSvg: _, ...bundlerOptions } = options.bundlerOptions || {};\n const outputScriptExtension = targetEnvironment === 'node' ? 'mjs' : 'js';\n\n const isLibraryMode = effectiveMode === 'library';\n\n // Only get the SWC config and transform code if needed\n const swcConfig = context.requiresTranspile\n ? getSwcConfig({ packagePath: options.inputPath, sourcemap: options.sourcemap, reactRefresh: options.hmr })\n : undefined;\n\n const config: Configuration = {\n mode: options.minify ? 'production' : 'development',\n // For Rspack, it looks like this following is still needed as unit tests fail without removing the './'.\n // Webpack (at least older versions) expects entry keys without a leading `./`.\n // (The leading `./` seems to be okay with the latest version, but in older versions, it appears\n // to cause the runtime chunk runtime.js to be generated with an incorrect relative path?)\n entry: Object.fromEntries(Object.entries(newEntries).map(([key, value]) => [key.replace(/^\\.\\//, ''), value])),\n context: options.inputPath,\n resolve: {\n modules: context.config.resolve?.modules ?? ['node_modules'],\n // TODO: Align with other bundlers https://github.com/microsoft/cloudpack/issues/2687\n extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.json'],\n extensionAlias: {\n '.js': ['.ts', '.js', '.tsx', '.jsx'],\n '.mjs': ['.mts', '.mjs'],\n },\n alias: dedupeAliases,\n },\n resolveLoader: {\n modules: [\n // Resolve loaders from the package's node_modules\n 'node_modules',\n\n // Cloudpack provided loaders\n ...getModuleSearchPaths(['css-loader', 'style-loader', 'sass-loader'], import.meta.url),\n ],\n alias: {\n // https://rspack.rs/guide/features/web-workers#worker-loader\n 'worker-loader': fileURLToPath(\n resolveModule({ importSpecifier: 'worker-rspack-loader', parentUrl: import.meta.url }),\n ),\n },\n },\n externals:\n // In production mode for browser bundles, we don't externalize anything.\n // (For Node bundles, built-ins are always externalized with enableSSR feature.)\n !isLibraryMode && targetEnvironment === 'browser'\n ? [] // These types can't be inferred due to use of zod types (which may be slightly incorrect too,\n : // since they don't allow returning undefined from the async version).\n // Issue: https://github.com/web-infra-dev/rspack/issues/7979\n // There's discussion here of moving away from zod types: https://github.com/web-infra-dev/rspack/issues/4241\n // eslint-disable-next-line @typescript-eslint/require-await -- API signature uses a promise\n async (data: ExternalItemFunctionData): Promise<ExternalItemValue | undefined> => {\n const { request } = data;\n // ! is a webpack loader prefix.\n if (!request || request.includes('!')) {\n return;\n }\n\n if (\n shouldExternalizePackage({\n packageName: options.packageName,\n inputPath: options.inputPath,\n id: request,\n parent: data.context,\n inlined: options.inlined,\n external: options.external,\n shouldInlineNodeBuiltins: false,\n targetEnvironment,\n mode: effectiveMode,\n })\n ) {\n // Manually force externals to use `externalsType: 'module-import'` to ensure that\n // async import() statements are preserved (otherwise they'll be hoisted).\n return `module-import ${request}`;\n }\n },\n target: [targetEnvironment === 'node' ? 'node18' : 'web', defaultTargetSyntax],\n //plugins: [new rspack.CssExtractRspackPlugin({})],\n module: {\n rules: [\n getCssRule('css'),\n {\n test: /\\.(json|resjson)$/,\n type: 'json',\n sideEffects: false,\n },\n {\n test: /\\.ejs$/,\n loader: 'ejs-loader',\n options: {\n variable: 'data',\n esModule: true,\n },\n resolve: {\n fullySpecified: false,\n },\n },\n ...(swcConfig\n ? [\n {\n // transform jsx files\n test: jsxRegex,\n loader: 'builtin:swc-loader',\n options: swcConfig.jsx,\n type: 'javascript/auto',\n },\n {\n // transform ts files\n test: typescriptRegex,\n loader: 'builtin:swc-loader',\n options: swcConfig.tsx,\n type: 'javascript/auto',\n },\n ]\n : []),\n getCssRule('sass'),\n {\n test: /\\.worker\\.js$/,\n use: { loader: 'worker-rspack-loader' },\n },\n {\n test: /\\.wasm$/i,\n type: 'asset/resource',\n },\n {\n test: /\\.glsl$/,\n type: 'asset/source',\n },\n ],\n },\n output: {\n library: {\n type: 'module',\n },\n chunkFormat: 'module',\n chunkLoading: 'import',\n path: outputPath,\n module: true,\n filename: `[name].${outputScriptExtension}`,\n chunkFilename: `[id].chunk.${outputScriptExtension}`,\n },\n experiments: {\n outputModule: true,\n css: false,\n },\n devtool: options.sourcemap ? (isLibraryMode ? 'cheap-module-source-map' : 'source-map') : false,\n optimization: {\n // In production, always inline runtime. In development, create a separate runtime chunk only for multiple entries.\n runtimeChunk: !options.minify && Object.keys(newEntries).length > 1 ? 'single' : false,\n minimize: options.minify,\n mangleExports: false,\n splitChunks: {\n // Prevents exposing path info when creating names for parts splitted by maxSize.\n hidePathInfo: true,\n\n // Figure out which exports are used by modules to mangle export names, omit unused\n // exports and generate more efficient code.\n // This option was added in 1.0.0-beta.4\n ...(semver.gte(rspack.rspackVersion, '1.0.0-beta.4') && { usedExports: !isLibraryMode }),\n\n chunks: 'all',\n\n //name: '[id].chunk', //TODO: is this needed?\n // webpack version:\n // filename: `[id].chunk.${outputScriptExtension}`,\n\n // Production chunks should be at least 1000 bytes to prevent large numbers of file requests\n minSize: isLibraryMode ? 0 : 1000,\n\n cacheGroups: {\n defaultVendors: false,\n },\n },\n },\n };\n\n if (Object.keys(bundlerOptions).length) {\n return merge(config, bundlerOptions);\n }\n\n return config;\n}\n"]}
1
+ {"version":3,"file":"getRspackConfiguration.js","sourceRoot":"","sources":["../src/getRspackConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAExF,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,UAAU,sBAAsB,CACpC,MAI2C,EAC3C,OAAsB;IAEtB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAClE,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IACrD,MAAM,EAAE,sBAAsB,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;IACtF,MAAM,qBAAqB,GAAG,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1E,MAAM,aAAa,GAAG,aAAa,KAAK,SAAS,CAAC;IAElD,uDAAuD;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,iBAAiB;QACzC,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3G,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,MAAM,GAAkB;QAC5B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa;QACnD,yGAAyG;QACzG,+EAA+E;QAC/E,gGAAgG;QAChG,0FAA0F;QAC1F,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9G,OAAO,EAAE,OAAO,CAAC,SAAS;QAC1B,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC;YAC5D,qFAAqF;YACrF,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;YAC3D,cAAc,EAAE;gBACd,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;gBACrC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;aACzB;YACD,KAAK,EAAE,aAAa;SACrB;QACD,aAAa,EAAE;YACb,OAAO,EAAE;gBACP,kDAAkD;gBAClD,cAAc;gBAEd,6BAA6B;gBAC7B,GAAG,oBAAoB,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC;aACxF;YACD,KAAK,EAAE;gBACL,6DAA6D;gBAC7D,eAAe,EAAE,aAAa,CAC5B,aAAa,CAAC,EAAE,eAAe,EAAE,sBAAsB,EAAE,SAAS,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CACvF;aACF;SACF;QACD,SAAS;QACP,yEAAyE;QACzE,gFAAgF;QAChF,CAAC,aAAa,IAAI,iBAAiB,KAAK,SAAS;YAC/C,CAAC,CAAC,EAAE,CAAC,8FAA8F;YACnG,CAAC,CAAC,sEAAsE;gBACtE,6DAA6D;gBAC7D,6GAA6G;gBAC7G,4FAA4F;gBAC5F,KAAK,EAAE,IAA8B,EAA0C,EAAE;oBAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;oBACzB,gCAAgC;oBAChC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACtC,OAAO;oBACT,CAAC;oBAED,IACE,wBAAwB,CAAC;wBACvB,WAAW,EAAE,OAAO,CAAC,WAAW;wBAChC,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,EAAE,EAAE,OAAO;wBACX,MAAM,EAAE,IAAI,CAAC,OAAO;wBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,wBAAwB,EAAE,KAAK;wBAC/B,iBAAiB;wBACjB,IAAI,EAAE,aAAa;qBACpB,CAAC,EACF,CAAC;wBACD,kFAAkF;wBAClF,0EAA0E;wBAC1E,OAAO,iBAAiB,OAAO,EAAE,CAAC;oBACpC,CAAC;gBACH,CAAC;QACP,MAAM,EAAE,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,mBAAmB,CAAC;QAC9E,mDAAmD;QACnD,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,UAAU,CAAC,KAAK,CAAC;gBACjB;oBACE,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,KAAK;iBACnB;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE;wBACP,QAAQ,EAAE,MAAM;wBAChB,QAAQ,EAAE,IAAI;qBACf;oBACD,OAAO,EAAE;wBACP,cAAc,EAAE,KAAK;qBACtB;iBACF;gBACD,GAAG,CAAC,SAAS;oBACX,CAAC,CAAC;wBACE;4BACE,sBAAsB;4BACtB,IAAI,EAAE,QAAQ;4BACd,MAAM,EAAE,oBAAoB;4BAC5B,OAAO,EAAE,SAAS,CAAC,GAAG;4BACtB,IAAI,EAAE,iBAAiB;yBACxB;wBACD;4BACE,qBAAqB;4BACrB,IAAI,EAAE,eAAe;4BACrB,MAAM,EAAE,oBAAoB;4BAC5B,OAAO,EAAE,SAAS,CAAC,GAAG;4BACtB,IAAI,EAAE,iBAAiB;yBACxB;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,UAAU,CAAC,MAAM,CAAC;gBAClB;oBACE,IAAI,EAAE,eAAe;oBACrB,GAAG,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE;iBACxC;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,gBAAgB;iBACvB;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,cAAc;iBACrB;aACF;SACF;QACD,MAAM,EAAE;YACN,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;aACf;YACD,WAAW,EAAE,QAAQ;YACrB,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,UAAU,qBAAqB,EAAE;YAC3C,aAAa,EAAE,cAAc,qBAAqB,EAAE;SACrD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,GAAG,EAAE,KAAK;SACX;QACD,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK;QAC/F,YAAY,EAAE;YACZ,mHAAmH;YACnH,YAAY,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;YACtF,QAAQ,EAAE,OAAO,CAAC,MAAM;YACxB,aAAa,EAAE,KAAK;YACpB,WAAW,EAAE;gBACX,iFAAiF;gBACjF,YAAY,EAAE,IAAI;gBAElB,mFAAmF;gBACnF,4CAA4C;gBAC5C,wCAAwC;gBACxC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC;gBAExF,MAAM,EAAE,KAAK;gBAEb,6CAA6C;gBAC7C,mBAAmB;gBACnB,mDAAmD;gBAEnD,4FAA4F;gBAC5F,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gBAEjC,WAAW,EAAE;oBACX,cAAc,EAAE,KAAK;iBACtB;aACF;SACF;KACF,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import {\n defaultTargetSyntax,\n getCssRule,\n getModuleSearchPaths,\n getSwcConfig,\n shouldExternalizePackage,\n} from '@ms-cloudpack/bundler-utilities';\nimport type { BundleContext, BundleMode, BundleOptions } from '@ms-cloudpack/common-types';\nimport type { WriteESMStubsResult } from '@ms-cloudpack/esm-stub-utilities';\nimport { jsxRegex, resolveModule, typescriptRegex } from '@ms-cloudpack/path-utilities';\nimport type { Configuration, ExternalItemFunctionData, ExternalItemValue } from '@rspack/core';\nimport rspack from '@rspack/core';\nimport semver from 'semver';\nimport { fileURLToPath } from 'url';\nimport { merge } from 'webpack-merge';\n\nexport function getRspackConfiguration(\n params: {\n options: Omit<BundleOptions, 'entries' | 'outputPath'>;\n outputPath: string;\n effectiveMode: BundleMode;\n } & Pick<WriteESMStubsResult, 'newEntries'>,\n context: BundleContext,\n): Configuration {\n const { options, outputPath, newEntries, effectiveMode } = params;\n const { targetEnvironment, dedupeAliases } = options;\n const { unsafeDisableInlineSvg: _, ...bundlerOptions } = options.bundlerOptions || {};\n const outputScriptExtension = targetEnvironment === 'node' ? 'mjs' : 'js';\n\n const isLibraryMode = effectiveMode === 'library';\n\n // Only get the SWC config and transform code if needed\n const swcConfig = context.requiresTranspile\n ? getSwcConfig({ packagePath: options.inputPath, sourcemap: options.sourcemap, reactRefresh: options.hmr })\n : undefined;\n\n const config: Configuration = {\n mode: options.minify ? 'production' : 'development',\n // For Rspack, it looks like this following is still needed as unit tests fail without removing the './'.\n // Webpack (at least older versions) expects entry keys without a leading `./`.\n // (The leading `./` seems to be okay with the latest version, but in older versions, it appears\n // to cause the runtime chunk runtime.js to be generated with an incorrect relative path?)\n entry: Object.fromEntries(Object.entries(newEntries).map(([key, value]) => [key.replace(/^\\.\\//, ''), value])),\n context: options.inputPath,\n resolve: {\n modules: context.config.resolve?.modules ?? ['node_modules'],\n // TODO: Align with other bundlers https://github.com/microsoft/cloudpack/issues/2687\n extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.json'],\n extensionAlias: {\n '.js': ['.ts', '.js', '.tsx', '.jsx'],\n '.mjs': ['.mts', '.mjs'],\n },\n alias: dedupeAliases,\n },\n resolveLoader: {\n modules: [\n // Resolve loaders from the package's node_modules\n 'node_modules',\n\n // Cloudpack provided loaders\n ...getModuleSearchPaths(['css-loader', 'style-loader', 'sass-loader'], import.meta.url),\n ],\n alias: {\n // https://rspack.rs/guide/features/web-workers#worker-loader\n 'worker-loader': fileURLToPath(\n resolveModule({ importSpecifier: 'worker-rspack-loader', parentUrl: import.meta.url }),\n ),\n },\n },\n externals:\n // In production mode for browser bundles, we don't externalize anything.\n // (For Node bundles, built-ins are always externalized with enableSSR feature.)\n !isLibraryMode && targetEnvironment === 'browser'\n ? [] // These types can't be inferred due to use of zod types (which may be slightly incorrect too,\n : // since they don't allow returning undefined from the async version).\n // Issue: https://github.com/web-infra-dev/rspack/issues/7979\n // There's discussion here of moving away from zod types: https://github.com/web-infra-dev/rspack/issues/4241\n // eslint-disable-next-line @typescript-eslint/require-await -- API signature uses a promise\n async (data: ExternalItemFunctionData): Promise<ExternalItemValue | undefined> => {\n const { request } = data;\n // ! is a webpack loader prefix.\n if (!request || request.includes('!')) {\n return;\n }\n\n if (\n shouldExternalizePackage({\n packageName: options.packageName,\n inputPath: options.inputPath,\n id: request,\n parent: data.context,\n inlined: options.inlined,\n external: options.external,\n shouldInlineNodeBuiltins: false,\n targetEnvironment,\n mode: effectiveMode,\n })\n ) {\n // Manually force externals to use `externalsType: 'module-import'` to ensure that\n // async import() statements are preserved (otherwise they'll be hoisted).\n return `module-import ${request}`;\n }\n },\n target: [targetEnvironment === 'node' ? 'node18' : 'web', defaultTargetSyntax],\n //plugins: [new rspack.CssExtractRspackPlugin({})],\n module: {\n rules: [\n getCssRule('css'),\n {\n test: /\\.(json|resjson)$/,\n type: 'json',\n sideEffects: false,\n },\n {\n test: /\\.ejs$/,\n loader: 'ejs-loader',\n options: {\n variable: 'data',\n esModule: true,\n },\n resolve: {\n fullySpecified: false,\n },\n },\n ...(swcConfig\n ? [\n {\n // transform jsx files\n test: jsxRegex,\n loader: 'builtin:swc-loader',\n options: swcConfig.jsx,\n type: 'javascript/auto',\n },\n {\n // transform ts files\n test: typescriptRegex,\n loader: 'builtin:swc-loader',\n options: swcConfig.tsx,\n type: 'javascript/auto',\n },\n ]\n : []),\n getCssRule('sass'),\n {\n test: /\\.worker\\.js$/,\n use: { loader: 'worker-rspack-loader' },\n },\n {\n test: /\\.wasm$/i,\n type: 'asset/resource',\n },\n {\n test: /\\.glsl$/,\n type: 'asset/source',\n },\n ],\n },\n output: {\n library: {\n type: 'module',\n },\n chunkFormat: 'module',\n chunkLoading: 'import',\n path: outputPath,\n module: true,\n filename: `[name].${outputScriptExtension}`,\n chunkFilename: `[id].chunk.${outputScriptExtension}`,\n },\n experiments: {\n outputModule: true,\n css: false,\n },\n devtool: options.sourcemap ? (isLibraryMode ? 'cheap-module-source-map' : 'source-map') : false,\n optimization: {\n // In production, always inline runtime. In development, create a separate runtime chunk only for multiple entries.\n runtimeChunk: !options.minify && Object.keys(newEntries).length > 1 ? 'single' : false,\n minimize: options.minify,\n mangleExports: false,\n splitChunks: {\n // Prevents exposing path info when creating names for parts splitted by maxSize.\n hidePathInfo: true,\n\n // Figure out which exports are used by modules to mangle export names, omit unused\n // exports and generate more efficient code.\n // This option was added in 1.0.0-beta.4\n ...(semver.gte(rspack.rspackVersion, '1.0.0-beta.4') && { usedExports: !isLibraryMode }),\n\n chunks: 'all',\n\n //name: '[id].chunk', //TODO: is this needed?\n // webpack version:\n // filename: `[id].chunk.${outputScriptExtension}`,\n\n // Production chunks should be at least 1000 bytes to prevent large numbers of file requests\n minSize: isLibraryMode ? 0 : 1000,\n\n cacheGroups: {\n defaultVendors: false,\n },\n },\n },\n };\n\n if (Object.keys(bundlerOptions).length) {\n return merge(config, bundlerOptions);\n }\n\n return config;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/bundler-rspack",
3
- "version": "0.5.31",
3
+ "version": "0.5.33",
4
4
  "description": "Cloudpack's wrapper for the Rspack bundler",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -24,12 +24,12 @@
24
24
  "test": "cloudpack-scripts test"
25
25
  },
26
26
  "dependencies": {
27
- "@ms-cloudpack/bundler-capabilities": "^0.5.8",
28
- "@ms-cloudpack/bundler-utilities": "^0.9.23",
29
- "@ms-cloudpack/common-types": "^0.34.5",
30
- "@ms-cloudpack/esm-stub-utilities": "^0.16.9",
31
- "@ms-cloudpack/path-string-parsing": "^1.3.5",
32
- "@ms-cloudpack/path-utilities": "^3.2.16",
27
+ "@ms-cloudpack/bundler-capabilities": "^0.5.10",
28
+ "@ms-cloudpack/bundler-utilities": "^0.9.25",
29
+ "@ms-cloudpack/common-types": "^0.34.6",
30
+ "@ms-cloudpack/esm-stub-utilities": "^0.16.11",
31
+ "@ms-cloudpack/path-string-parsing": "^1.3.6",
32
+ "@ms-cloudpack/path-utilities": "^3.2.17",
33
33
  "@rspack/core": "^1.1.8 || ^1.1.8-beta.0",
34
34
  "@swc/core": "^1.3.0",
35
35
  "@swc/plugin-relay": ">= 6.0.0",