@unpackjs/core 3.2.5 → 3.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -6,6 +6,11 @@ var __webpack_modules__ = {
6
6
  },
7
7
  "compiled/webpack-merge": function(module) {
8
8
  module.exports = require("../compiled/webpack-merge/index.js");
9
+ },
10
+ "oxc-minify": function(module) {
11
+ module.exports = import("oxc-minify").then(function(module) {
12
+ return module;
13
+ });
9
14
  }
10
15
  }, __webpack_module_cache__ = {};
11
16
  function __webpack_require__(moduleId) {
@@ -44,16 +49,15 @@ for(var __webpack_i__ in (()=>{
44
49
  restartCleaners: ()=>restartCleaners,
45
50
  isFileExists: ()=>isFileExists,
46
51
  getNodeEnv: ()=>getNodeEnv,
52
+ isWatch: ()=>isWatch,
47
53
  isFunction: ()=>isFunction,
48
54
  THREAD_OPTIONS: ()=>THREAD_OPTIONS,
49
55
  debounce: ()=>debounce,
50
56
  isDev: ()=>isDev,
51
- isWatch: ()=>isWatch,
52
57
  isNodeVersionAtLeast: ()=>isNodeVersionAtLeast,
53
58
  setNodeEnv: ()=>setNodeEnv,
54
59
  getCompiledPkgPath: ()=>getCompiledPkgPath,
55
60
  LogColor: ()=>logger_LogColor,
56
- isDebug: ()=>isDebug,
57
61
  CSS_MODULES_REGEX: ()=>CSS_MODULES_REGEX,
58
62
  loadConfig: ()=>loadConfig,
59
63
  PROD_DEFAULT_FILENAME: ()=>PROD_DEFAULT_FILENAME,
@@ -74,7 +78,7 @@ for(var __webpack_i__ in (()=>{
74
78
  findExists: ()=>findExists,
75
79
  getUserDepVersion: ()=>getUserDepVersion,
76
80
  NODE_MODULES_REGEX: ()=>NODE_MODULES_REGEX,
77
- getTime: ()=>getTime,
81
+ getPort: ()=>getPort,
78
82
  getValueByPath: ()=>getValueByPath,
79
83
  getIpv4Interfaces: ()=>getIpv4Interfaces,
80
84
  isCI: ()=>isCI,
@@ -95,9 +99,10 @@ for(var __webpack_i__ in (()=>{
95
99
  isObject: ()=>isObject,
96
100
  trackPerformance: ()=>trackPerformance,
97
101
  createUnpack: ()=>createUnpack,
98
- getPort: ()=>getPort,
102
+ getTime: ()=>getTime,
99
103
  getUserDepPath: ()=>getUserDepPath,
100
104
  isCSSModules: ()=>isCSSModules,
105
+ isDebug: ()=>isDebug,
101
106
  rspack: ()=>core_namespaceObject.rspack
102
107
  });
103
108
  let core_namespaceObject = require("@rspack/core"), external_picocolors_namespaceObject = require("picocolors"), colors = {
@@ -339,7 +344,7 @@ for(var __webpack_i__ in (()=>{
339
344
  'build' === command ? setNodeEnv((null == cliOptions ? void 0 : cliOptions.watch) ? 'development' : 'production') : (setNodeEnv('development'), setDevServer(!0));
340
345
  let root = (null == cliOptions ? void 0 : cliOptions.root) ? external_node_path_default().resolve(cliOptions.root) : process.cwd(), configFilePath = resolveConfigPath(root, null == cliOptions ? void 0 : cliOptions.config), configExport = {};
341
346
  if (configFilePath) {
342
- if (isNodeVersionAtLeast(23, 6) || /\.(?:js|mjs|cjs)$/.test(configFilePath)) {
347
+ if (isNodeVersionAtLeast(22, 18) || /\.(?:js|mjs|cjs)$/.test(configFilePath)) {
343
348
  logger_logger.debug('loading config file with native loader:', colors.dim(configFilePath));
344
349
  try {
345
350
  let configFileURL = (0, external_node_url_namespaceObject.pathToFileURL)(configFilePath).href, exportModule = await import(`${configFileURL}?t=${Date.now()}`);
@@ -408,12 +413,6 @@ for(var __webpack_i__ in (()=>{
408
413
  }
409
414
  return null;
410
415
  }
411
- function getNormalizedPluginsByHook(hook, plugins) {
412
- let pluginMap = new Map();
413
- return null == plugins || plugins.forEach((plugin)=>{
414
- plugin[hook] && pluginMap.set(plugin.name, plugin);
415
- }), Array.from(pluginMap.values());
416
- }
417
416
  let external_dotenv_expand_namespaceObject = require("dotenv-expand"), isFileSync = (filePath)=>{
418
417
  try {
419
418
  var _fs_statSync;
@@ -443,7 +442,14 @@ for(var __webpack_i__ in (()=>{
443
442
  recursive: !0,
444
443
  force: !0
445
444
  });
446
- }, DOTENV_LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm, external_ts_checker_rspack_plugin_namespaceObject = require("ts-checker-rspack-plugin");
445
+ }, DOTENV_LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
446
+ function getNormalizedPluginsByHook(hook, plugins) {
447
+ let pluginMap = new Map();
448
+ return null == plugins || plugins.forEach((plugin)=>{
449
+ plugin[hook] && pluginMap.set(plugin.name, plugin);
450
+ }), Array.from(pluginMap.values());
451
+ }
452
+ let external_ts_checker_rspack_plugin_namespaceObject = require("ts-checker-rspack-plugin");
447
453
  async function getBuildDependencies(root, userBuildDependencies, envFilePaths) {
448
454
  let rootPackageJson = external_node_path_default().join(root, 'package.json'), browserslistConfig = external_node_path_default().join(root, '.browserslistrc'), tsconfigPath = external_node_path_default().join(root, 'tsconfig.json'), buildDependencies = {};
449
455
  await isFileExists(rootPackageJson) && (buildDependencies.packageJson = [
@@ -644,7 +650,6 @@ for(var __webpack_i__ in (()=>{
644
650
  });
645
651
  }
646
652
  }
647
- let external_oxc_minify_namespaceObject = require("oxc-minify");
648
653
  function jsMinify_define_property(obj, key, value) {
649
654
  return key in obj ? Object.defineProperty(obj, key, {
650
655
  value: value,
@@ -658,11 +663,11 @@ for(var __webpack_i__ in (()=>{
658
663
  apply(compiler) {
659
664
  let meta = JSON.stringify({
660
665
  name: jsMinify_PLUGIN_NAME,
661
- version: "3.2.5",
666
+ version: "3.2.7",
662
667
  options: this.minifyOptions
663
668
  });
664
669
  compiler.hooks.compilation.tap(jsMinify_PLUGIN_NAME, (compilation)=>{
665
- compilation.hooks.chunkHash.tap(jsMinify_PLUGIN_NAME, (_, hash)=>hash.update(Buffer.from(meta))), compilation.hooks.processAssets.tap({
670
+ compilation.hooks.chunkHash.tap(jsMinify_PLUGIN_NAME, (_, hash)=>hash.update(Buffer.from(meta))), compilation.hooks.processAssets.tapPromise({
666
671
  name: jsMinify_PLUGIN_NAME,
667
672
  stage: compiler.rspack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE
668
673
  }, ()=>this.transformAssets(compilation)), compilation.hooks.statsPrinter.tap(jsMinify_PLUGIN_NAME, (stats)=>{
@@ -670,10 +675,10 @@ for(var __webpack_i__ in (()=>{
670
675
  });
671
676
  });
672
677
  }
673
- transformAssets(compilation) {
674
- let { options: { devtool } } = compilation.compiler, sourceMap = 'string' == typeof devtool && devtool.includes('source-map');
675
- compilation.getAssets().filter((asset)=>!asset.info.minimized && isJsFile.test(asset.name)).map((asset)=>{
676
- let { source, map } = asset.source.sourceAndMap(), { name } = asset, output = this.minify(name, Buffer.isBuffer(source) ? source.toString() : source, {
678
+ async transformAssets(compilation) {
679
+ let { options: { devtool } } = compilation.compiler, sourceMap = 'string' == typeof devtool && devtool.includes('source-map'), assets = compilation.getAssets().filter((asset)=>!asset.info.minimized && isJsFile.test(asset.name)), minifyFn = this.customMinify ?? (await Promise.resolve().then(__webpack_require__.bind(__webpack_require__, "oxc-minify"))).minify;
680
+ assets.forEach((asset)=>{
681
+ let { source, map } = asset.source.sourceAndMap(), { name } = asset, output = minifyFn(name, Buffer.isBuffer(source) ? source.toString() : source, {
677
682
  sourcemap: sourceMap,
678
683
  ...this.minifyOptions
679
684
  }), newMap = null;
@@ -688,9 +693,9 @@ for(var __webpack_i__ in (()=>{
688
693
  });
689
694
  }
690
695
  constructor(options = {}){
691
- jsMinify_define_property(this, "minify", void 0), jsMinify_define_property(this, "minifyOptions", void 0);
696
+ jsMinify_define_property(this, "minifyOptions", void 0), jsMinify_define_property(this, "customMinify", void 0);
692
697
  let { implementation, ...minifyOptions } = options;
693
- this.minify = (null == implementation ? void 0 : implementation.minify) ?? external_oxc_minify_namespaceObject.minify, this.minifyOptions = minifyOptions;
698
+ this.customMinify = null == implementation ? void 0 : implementation.minify, this.minifyOptions = minifyOptions;
694
699
  }
695
700
  }
696
701
  let external_node_child_process_namespaceObject = require("node:child_process");
@@ -799,7 +804,7 @@ for(var __webpack_i__ in (()=>{
799
804
  "\u2827",
800
805
  "\u2807",
801
806
  "\u280F"
802
- ]), loadingAnimation_define_property(this, "currentIndex", 0), loadingAnimation_define_property(this, "lastUpdateTime", 0), loadingAnimation_define_property(this, "interval", 150);
807
+ ]), loadingAnimation_define_property(this, "currentIndex", 0), loadingAnimation_define_property(this, "lastUpdateTime", 0), loadingAnimation_define_property(this, "interval", 100);
803
808
  }
804
809
  }
805
810
  function progressBar_define_property(obj, key, value) {
@@ -991,9 +996,18 @@ for(var __webpack_i__ in (()=>{
991
996
  }
992
997
  }
993
998
  let BundleAnalyzerPlugin = __webpack_require__("compiled/webpack-bundle-analyzer").BundleAnalyzerPlugin;
994
- async function getBundlerConfig(unpackConfig) {
999
+ async function getBundlerConfig(originalUnpackConfig) {
995
1000
  var _unpackConfig_build, _unpackConfig_build1, _unpackConfig_build2, _unpackConfig_build3, _unpackConfig_build4, _unpackConfig_build5, _unpackConfig_build6, _unpackConfig_html, _unpackConfig_html1, _unpackConfig_html2, _unpackConfig_html3, _unpackConfig_html4, _unpackConfig_html5, _unpackConfig_html6, _unpackConfig_html7, _unpackConfig_performance, _unpackConfig_performance1, _unpackConfig_build7, _unpackConfig_resolve, _unpackConfig_resolve1, _unpackConfig_dev, _unpackConfig_build8, _unpackConfig_experiments, _unpackConfig_build9, _unpackConfig_dev1;
996
- let circularCount, tsconfigPath = external_node_path_default().resolve(unpackConfig.root, 'tsconfig.json'), isTs = external_node_fs_default().existsSync(tsconfigPath), minifyOptions = isPlainObject(null == (_unpackConfig_build = unpackConfig.build) ? void 0 : _unpackConfig_build.minify) ? null == (_unpackConfig_build1 = unpackConfig.build) ? void 0 : _unpackConfig_build1.minify : {}, ProgressPlugin = (null == (_unpackConfig_build2 = unpackConfig.build) ? void 0 : _unpackConfig_build2.progressBar) ? ProgressRspackPlugin : ProgressLiteRspackPlugin, { publicVars, filePaths: envFilePaths } = function({ cwd = process.cwd(), mode = getNodeEnv(), prefixes = [
1001
+ let circularCount, { plugins, bundlerConfig, ...rest } = originalUnpackConfig;
1002
+ for (let plugin of getNormalizedPluginsByHook('config', plugins))rest = await plugin.config(rest, {
1003
+ ...originalUnpackConfig._context,
1004
+ mergeConfig: mergeConfig
1005
+ });
1006
+ let unpackConfig = {
1007
+ ...rest,
1008
+ plugins,
1009
+ bundlerConfig
1010
+ }, tsconfigPath = external_node_path_default().resolve(unpackConfig.root, 'tsconfig.json'), isTs = external_node_fs_default().existsSync(tsconfigPath), minifyOptions = isPlainObject(null == (_unpackConfig_build = unpackConfig.build) ? void 0 : _unpackConfig_build.minify) ? null == (_unpackConfig_build1 = unpackConfig.build) ? void 0 : _unpackConfig_build1.minify : {}, ProgressPlugin = (null == (_unpackConfig_build2 = unpackConfig.build) ? void 0 : _unpackConfig_build2.progressBar) ? ProgressRspackPlugin : ProgressLiteRspackPlugin, { publicVars, filePaths: envFilePaths } = function({ cwd = process.cwd(), mode = getNodeEnv(), prefixes = [
997
1011
  'PUBLIC_'
998
1012
  ], processEnv = process.env } = {}) {
999
1013
  if ('local' === mode) throw Error(`${colors.yellow('local')} cannot be used as a value for env mode, because ${colors.yellow('.env.local')} represents a temporary local file. Please use another value.`);
@@ -1220,13 +1234,16 @@ for(var __webpack_i__ in (()=>{
1220
1234
  ...(null == (_unpackConfig_resolve1 = unpackConfig.resolve) ? void 0 : _unpackConfig_resolve1.extensions) || []
1221
1235
  ]
1222
1236
  },
1237
+ lazyCompilation: (null == (_unpackConfig_dev = unpackConfig.dev) ? void 0 : _unpackConfig_dev.lazyCompilation) && utils_isDevServer() && {
1238
+ imports: !0,
1239
+ entries: !!unpackConfig.mpa
1240
+ },
1223
1241
  experiments: {
1224
- lazyCompilation: (null == (_unpackConfig_dev = unpackConfig.dev) ? void 0 : _unpackConfig_dev.lazyCompilation) && utils_isDevServer() && {
1225
- imports: !0,
1226
- entries: !!unpackConfig.mpa
1227
- },
1228
1242
  css: !1,
1229
- asyncWebAssembly: !0
1243
+ asyncWebAssembly: !0,
1244
+ lazyBarrel: !0,
1245
+ inlineEnum: !0,
1246
+ typeReexportsPresence: !0
1230
1247
  },
1231
1248
  optimization: {
1232
1249
  moduleIds: isDev() ? 'named' : 'deterministic',
@@ -1835,15 +1852,20 @@ for(var __webpack_i__ in (()=>{
1835
1852
  ...unpackConfig.externals
1836
1853
  }, unpackConfig.plugins.push({
1837
1854
  name: 'unpack:prebundle',
1855
+ config: (config)=>{
1856
+ var _config_html;
1857
+ let originalHeadTag = (null == (_config_html = config.html) ? void 0 : _config_html.headTag) || '', sortedPreTags = preJsAssets.sort((a, b)=>a.order - b.order).map((item)=>item.path).map((item)=>`<script defer src="${item}"></script>`);
1858
+ return setValueByPath(config, [
1859
+ 'html',
1860
+ 'headTag'
1861
+ ], `${sortedPreTags.join('')}${originalHeadTag}`), config;
1862
+ },
1838
1863
  bundlerConfig: (config)=>{
1839
1864
  let PLUGIN_NAME = 'PluginInjectAssets';
1840
1865
  return config.plugins.push({
1841
1866
  apply: (compiler)=>{
1842
1867
  compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation)=>{
1843
- core_namespaceObject.rspack.HtmlRspackPlugin.getCompilationHooks(compilation).beforeAssetTagGeneration.tapPromise(PLUGIN_NAME, async (args)=>{
1844
- let sortedPreJsAssets = preJsAssets.sort((a, b)=>a.order - b.order).map((item)=>item.path);
1845
- return args.assets.js.unshift(...sortedPreJsAssets, ...jsAssets), args.assets.css.unshift(...cssAssets), args;
1846
- });
1868
+ core_namespaceObject.rspack.HtmlRspackPlugin.getCompilationHooks(compilation).beforeAssetTagGeneration.tapPromise(PLUGIN_NAME, async (args)=>(args.assets.js.unshift(...jsAssets), args.assets.css.unshift(...cssAssets), args));
1847
1869
  });
1848
1870
  }
1849
1871
  }), config;
@@ -1858,11 +1880,19 @@ for(var __webpack_i__ in (()=>{
1858
1880
  unpackConfig
1859
1881
  }));
1860
1882
  let config = await getBundlerConfig(unpackConfig), compiler = (0, core_namespaceObject.rspack)(config), port = await getPort(null == (_unpackConfig_server = unpackConfig.server) ? void 0 : _unpackConfig_server.port), proxyConfig = null == (_unpackConfig_server1 = unpackConfig.server) ? void 0 : _unpackConfig_server1.proxy;
1861
- isPlainObject(proxyConfig) && (proxyConfig = Object.entries(proxyConfig).map(([contextStr, target])=>({
1883
+ isPlainObject(proxyConfig) && (proxyConfig = Object.entries(proxyConfig).map(([contextStr, target])=>{
1884
+ let baseConfig = {
1862
1885
  context: contextStr.split(','),
1863
- target,
1864
1886
  changeOrigin: !0
1865
- })));
1887
+ };
1888
+ return isPlainObject(target) ? {
1889
+ ...baseConfig,
1890
+ ...target
1891
+ } : {
1892
+ ...baseConfig,
1893
+ target
1894
+ };
1895
+ }));
1866
1896
  let devServerOptions = {
1867
1897
  hot: !0,
1868
1898
  port,
@@ -1880,7 +1910,7 @@ for(var __webpack_i__ in (()=>{
1880
1910
  (null == (_req_headers_accept = req.headers.accept) ? void 0 : _req_headers_accept.includes('html')) && (req.url = '/index.html'), next();
1881
1911
  }), middlewares.unshift(core_namespaceObject.experiments.lazyCompilationMiddleware(compiler)), middlewares);
1882
1912
  let server = new (external_webpack_dev_server_default())(devServerOptions, compiler);
1883
- await server.start(), logger_logger.greet(` ${colors.green(`${colors.bold(unpackConfig._context.callerName.toUpperCase())} v3.2.5`)} ${colors.dim(`ready in ${colors.reset(Math.ceil(performance.now() - global.__unpack_start_time))}ms`)}\n`), function(port) {
1913
+ await server.start(), logger_logger.greet(` ${colors.green(`${colors.bold(unpackConfig._context.callerName.toUpperCase())} v3.2.7`)} ${colors.dim(`ready in ${colors.reset(Math.ceil(performance.now() - global.__unpack_start_time))}ms`)}\n`), function(port) {
1884
1914
  let addressUrls = getAddressUrls({
1885
1915
  port
1886
1916
  });
@@ -1898,7 +1928,7 @@ for(var __webpack_i__ in (()=>{
1898
1928
  }
1899
1929
  }
1900
1930
  function createUnpack({ cwd = process.cwd(), config, callerName = 'unpack' }) {
1901
- let resolveConfig = async ()=>{
1931
+ let resolveConfig = ()=>{
1902
1932
  let defaultConfig = {
1903
1933
  root: cwd,
1904
1934
  build: {
@@ -1932,29 +1962,25 @@ for(var __webpack_i__ in (()=>{
1932
1962
  envPrefix: [
1933
1963
  'PUBLIC_'
1934
1964
  ]
1935
- }, _context = {
1936
- callerName,
1937
- version: "3.2.5"
1938
- }, { plugins, bundlerConfig, ...rest } = mergeConfig(defaultConfig, config);
1939
- for (let plugin of getNormalizedPluginsByHook('config', plugins))rest = await plugin.config(rest, {
1940
- ..._context,
1941
- mergeConfig: mergeConfig
1942
- });
1965
+ };
1943
1966
  return {
1944
- ...rest,
1945
- plugins,
1946
- bundlerConfig,
1947
- _context
1967
+ ...mergeConfig(defaultConfig, config),
1968
+ _context: {
1969
+ callerName,
1970
+ version: "3.2.7"
1971
+ }
1948
1972
  };
1949
1973
  };
1950
1974
  return {
1951
1975
  build: async ({ watch } = {})=>{
1952
1976
  setNodeEnv(watch ? 'development' : 'production');
1953
- let config = await resolveConfig();
1954
- console.log(colors.rainbow(`${callerName} v3.2.5`), colors.green(`building for ${getNodeEnv()}...`)), unpackBuild(config);
1977
+ let config = resolveConfig();
1978
+ console.log(colors.rainbow(`${callerName} v3.2.7`), colors.green(`building for ${getNodeEnv()}...`)), await unpackBuild(config);
1955
1979
  },
1956
1980
  dev: async ()=>{
1957
- global.__unpack_start_time = performance.now(), setNodeEnv('development'), setDevServer(!0), unpackDev(await resolveConfig());
1981
+ global.__unpack_start_time = performance.now(), setNodeEnv('development'), setDevServer(!0);
1982
+ let config = resolveConfig();
1983
+ await unpackDev(config);
1958
1984
  }
1959
1985
  };
1960
1986
  }
package/dist/index.js CHANGED
@@ -19,7 +19,6 @@ import { TsCheckerRspackPlugin } from "ts-checker-rspack-plugin";
19
19
  import node_assert from "node:assert";
20
20
  import { glob, globSync } from "tinyglobby";
21
21
  import typed_css_modules from "typed-css-modules";
22
- import { minify } from "oxc-minify";
23
22
  import { exec, spawn } from "node:child_process";
24
23
  import { promisify } from "node:util";
25
24
  import node_zlib from "node:zlib";
@@ -273,7 +272,7 @@ async function loadConfig({ cliOptions, command }) {
273
272
  'build' === command ? setNodeEnv((null == cliOptions ? void 0 : cliOptions.watch) ? 'development' : 'production') : (setNodeEnv('development'), setDevServer(!0));
274
273
  let root = (null == cliOptions ? void 0 : cliOptions.root) ? node_path.resolve(cliOptions.root) : process.cwd(), configFilePath = resolveConfigPath(root, null == cliOptions ? void 0 : cliOptions.config), configExport = {};
275
274
  if (configFilePath) {
276
- if (isNodeVersionAtLeast(23, 6) || /\.(?:js|mjs|cjs)$/.test(configFilePath)) {
275
+ if (isNodeVersionAtLeast(22, 18) || /\.(?:js|mjs|cjs)$/.test(configFilePath)) {
277
276
  logger_logger.debug('loading config file with native loader:', colors.dim(configFilePath));
278
277
  try {
279
278
  let configFileURL = pathToFileURL(configFilePath).href, exportModule = await import(`${configFileURL}?t=${Date.now()}`);
@@ -342,12 +341,6 @@ function resolveConfigPath(root, customConfig) {
342
341
  }
343
342
  return null;
344
343
  }
345
- function getNormalizedPluginsByHook(hook, plugins) {
346
- let pluginMap = new Map();
347
- return null == plugins || plugins.forEach((plugin)=>{
348
- plugin[hook] && pluginMap.set(plugin.name, plugin);
349
- }), Array.from(pluginMap.values());
350
- }
351
344
  let isFileSync = (filePath)=>{
352
345
  try {
353
346
  var _fs_statSync;
@@ -378,6 +371,12 @@ let removeDir = (dir)=>{
378
371
  force: !0
379
372
  });
380
373
  }, DOTENV_LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
374
+ function getNormalizedPluginsByHook(hook, plugins) {
375
+ let pluginMap = new Map();
376
+ return null == plugins || plugins.forEach((plugin)=>{
377
+ plugin[hook] && pluginMap.set(plugin.name, plugin);
378
+ }), Array.from(pluginMap.values());
379
+ }
381
380
  async function getBuildDependencies(root, userBuildDependencies, envFilePaths) {
382
381
  let rootPackageJson = node_path.join(root, 'package.json'), browserslistConfig = node_path.join(root, '.browserslistrc'), tsconfigPath = node_path.join(root, 'tsconfig.json'), buildDependencies = {};
383
382
  await isFileExists(rootPackageJson) && (buildDependencies.packageJson = [
@@ -589,11 +588,11 @@ class JsMinifyPlugin {
589
588
  apply(compiler) {
590
589
  let meta = JSON.stringify({
591
590
  name: jsMinify_PLUGIN_NAME,
592
- version: "3.2.5",
591
+ version: "3.2.7",
593
592
  options: this.minifyOptions
594
593
  });
595
594
  compiler.hooks.compilation.tap(jsMinify_PLUGIN_NAME, (compilation)=>{
596
- compilation.hooks.chunkHash.tap(jsMinify_PLUGIN_NAME, (_, hash)=>hash.update(Buffer.from(meta))), compilation.hooks.processAssets.tap({
595
+ compilation.hooks.chunkHash.tap(jsMinify_PLUGIN_NAME, (_, hash)=>hash.update(Buffer.from(meta))), compilation.hooks.processAssets.tapPromise({
597
596
  name: jsMinify_PLUGIN_NAME,
598
597
  stage: compiler.rspack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE
599
598
  }, ()=>this.transformAssets(compilation)), compilation.hooks.statsPrinter.tap(jsMinify_PLUGIN_NAME, (stats)=>{
@@ -601,10 +600,10 @@ class JsMinifyPlugin {
601
600
  });
602
601
  });
603
602
  }
604
- transformAssets(compilation) {
605
- let { options: { devtool } } = compilation.compiler, sourceMap = 'string' == typeof devtool && devtool.includes('source-map');
606
- compilation.getAssets().filter((asset)=>!asset.info.minimized && isJsFile.test(asset.name)).map((asset)=>{
607
- let { source, map } = asset.source.sourceAndMap(), { name } = asset, output = this.minify(name, Buffer.isBuffer(source) ? source.toString() : source, {
603
+ async transformAssets(compilation) {
604
+ let { options: { devtool } } = compilation.compiler, sourceMap = 'string' == typeof devtool && devtool.includes('source-map'), assets = compilation.getAssets().filter((asset)=>!asset.info.minimized && isJsFile.test(asset.name)), minifyFn = this.customMinify ?? (await import("oxc-minify")).minify;
605
+ assets.forEach((asset)=>{
606
+ let { source, map } = asset.source.sourceAndMap(), { name } = asset, output = minifyFn(name, Buffer.isBuffer(source) ? source.toString() : source, {
608
607
  sourcemap: sourceMap,
609
608
  ...this.minifyOptions
610
609
  }), newMap = null;
@@ -619,9 +618,9 @@ class JsMinifyPlugin {
619
618
  });
620
619
  }
621
620
  constructor(options = {}){
622
- jsMinify_define_property(this, "minify", void 0), jsMinify_define_property(this, "minifyOptions", void 0);
621
+ jsMinify_define_property(this, "minifyOptions", void 0), jsMinify_define_property(this, "customMinify", void 0);
623
622
  let { implementation, ...minifyOptions } = options;
624
- this.minify = (null == implementation ? void 0 : implementation.minify) ?? minify, this.minifyOptions = minifyOptions;
623
+ this.customMinify = null == implementation ? void 0 : implementation.minify, this.minifyOptions = minifyOptions;
625
624
  }
626
625
  }
627
626
  var oxlint_dirname = __webpack_dirname__(__webpack_fileURLToPath__(import.meta.url));
@@ -730,7 +729,7 @@ class LoadingAnimation {
730
729
  "\u2827",
731
730
  "\u2807",
732
731
  "\u280F"
733
- ]), loadingAnimation_define_property(this, "currentIndex", 0), loadingAnimation_define_property(this, "lastUpdateTime", 0), loadingAnimation_define_property(this, "interval", 150);
732
+ ]), loadingAnimation_define_property(this, "currentIndex", 0), loadingAnimation_define_property(this, "lastUpdateTime", 0), loadingAnimation_define_property(this, "interval", 100);
734
733
  }
735
734
  }
736
735
  function progressBar_define_property(obj, key, value) {
@@ -919,9 +918,18 @@ class ProgressRspackPlugin extends rspack.ProgressPlugin {
919
918
  }
920
919
  }
921
920
  let BundleAnalyzerPlugin = __webpack_require__("compiled/webpack-bundle-analyzer").BundleAnalyzerPlugin;
922
- async function getBundlerConfig(unpackConfig) {
921
+ async function getBundlerConfig(originalUnpackConfig) {
923
922
  var _unpackConfig_build, _unpackConfig_build1, _unpackConfig_build2, _unpackConfig_build3, _unpackConfig_build4, _unpackConfig_build5, _unpackConfig_build6, _unpackConfig_html, _unpackConfig_html1, _unpackConfig_html2, _unpackConfig_html3, _unpackConfig_html4, _unpackConfig_html5, _unpackConfig_html6, _unpackConfig_html7, _unpackConfig_performance, _unpackConfig_performance1, _unpackConfig_build7, _unpackConfig_resolve, _unpackConfig_resolve1, _unpackConfig_dev, _unpackConfig_build8, _unpackConfig_experiments, _unpackConfig_build9, _unpackConfig_dev1;
924
- let circularCount, tsconfigPath = node_path.resolve(unpackConfig.root, 'tsconfig.json'), isTs = node_fs.existsSync(tsconfigPath), minifyOptions = isPlainObject(null == (_unpackConfig_build = unpackConfig.build) ? void 0 : _unpackConfig_build.minify) ? null == (_unpackConfig_build1 = unpackConfig.build) ? void 0 : _unpackConfig_build1.minify : {}, ProgressPlugin = (null == (_unpackConfig_build2 = unpackConfig.build) ? void 0 : _unpackConfig_build2.progressBar) ? ProgressRspackPlugin : ProgressLiteRspackPlugin, { publicVars, filePaths: envFilePaths } = function({ cwd = process.cwd(), mode = getNodeEnv(), prefixes = [
923
+ let circularCount, { plugins, bundlerConfig, ...rest } = originalUnpackConfig;
924
+ for (let plugin of getNormalizedPluginsByHook('config', plugins))rest = await plugin.config(rest, {
925
+ ...originalUnpackConfig._context,
926
+ mergeConfig: mergeConfig
927
+ });
928
+ let unpackConfig = {
929
+ ...rest,
930
+ plugins,
931
+ bundlerConfig
932
+ }, tsconfigPath = node_path.resolve(unpackConfig.root, 'tsconfig.json'), isTs = node_fs.existsSync(tsconfigPath), minifyOptions = isPlainObject(null == (_unpackConfig_build = unpackConfig.build) ? void 0 : _unpackConfig_build.minify) ? null == (_unpackConfig_build1 = unpackConfig.build) ? void 0 : _unpackConfig_build1.minify : {}, ProgressPlugin = (null == (_unpackConfig_build2 = unpackConfig.build) ? void 0 : _unpackConfig_build2.progressBar) ? ProgressRspackPlugin : ProgressLiteRspackPlugin, { publicVars, filePaths: envFilePaths } = function({ cwd = process.cwd(), mode = getNodeEnv(), prefixes = [
925
933
  'PUBLIC_'
926
934
  ], processEnv = process.env } = {}) {
927
935
  if ('local' === mode) throw Error(`${colors.yellow('local')} cannot be used as a value for env mode, because ${colors.yellow('.env.local')} represents a temporary local file. Please use another value.`);
@@ -1146,13 +1154,16 @@ async function getBundlerConfig(unpackConfig) {
1146
1154
  ...(null == (_unpackConfig_resolve1 = unpackConfig.resolve) ? void 0 : _unpackConfig_resolve1.extensions) || []
1147
1155
  ]
1148
1156
  },
1157
+ lazyCompilation: (null == (_unpackConfig_dev = unpackConfig.dev) ? void 0 : _unpackConfig_dev.lazyCompilation) && utils_isDevServer() && {
1158
+ imports: !0,
1159
+ entries: !!unpackConfig.mpa
1160
+ },
1149
1161
  experiments: {
1150
- lazyCompilation: (null == (_unpackConfig_dev = unpackConfig.dev) ? void 0 : _unpackConfig_dev.lazyCompilation) && utils_isDevServer() && {
1151
- imports: !0,
1152
- entries: !!unpackConfig.mpa
1153
- },
1154
1162
  css: !1,
1155
- asyncWebAssembly: !0
1163
+ asyncWebAssembly: !0,
1164
+ lazyBarrel: !0,
1165
+ inlineEnum: !0,
1166
+ typeReexportsPresence: !0
1156
1167
  },
1157
1168
  optimization: {
1158
1169
  moduleIds: isDev() ? 'named' : 'deterministic',
@@ -1754,15 +1765,20 @@ let getExternalLibraryName = (pkgName)=>({
1754
1765
  ...unpackConfig.externals
1755
1766
  }, unpackConfig.plugins.push({
1756
1767
  name: 'unpack:prebundle',
1768
+ config: (config)=>{
1769
+ var _config_html;
1770
+ let originalHeadTag = (null == (_config_html = config.html) ? void 0 : _config_html.headTag) || '', sortedPreTags = preJsAssets.sort((a, b)=>a.order - b.order).map((item)=>item.path).map((item)=>`<script defer src="${item}"></script>`);
1771
+ return setValueByPath(config, [
1772
+ 'html',
1773
+ 'headTag'
1774
+ ], `${sortedPreTags.join('')}${originalHeadTag}`), config;
1775
+ },
1757
1776
  bundlerConfig: (config)=>{
1758
1777
  let PLUGIN_NAME = 'PluginInjectAssets';
1759
1778
  return config.plugins.push({
1760
1779
  apply: (compiler)=>{
1761
1780
  compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation)=>{
1762
- rspack.HtmlRspackPlugin.getCompilationHooks(compilation).beforeAssetTagGeneration.tapPromise(PLUGIN_NAME, async (args)=>{
1763
- let sortedPreJsAssets = preJsAssets.sort((a, b)=>a.order - b.order).map((item)=>item.path);
1764
- return args.assets.js.unshift(...sortedPreJsAssets, ...jsAssets), args.assets.css.unshift(...cssAssets), args;
1765
- });
1781
+ rspack.HtmlRspackPlugin.getCompilationHooks(compilation).beforeAssetTagGeneration.tapPromise(PLUGIN_NAME, async (args)=>(args.assets.js.unshift(...jsAssets), args.assets.css.unshift(...cssAssets), args));
1766
1782
  });
1767
1783
  }
1768
1784
  }), config;
@@ -1776,11 +1792,19 @@ async function unpackDev(originalUnpackConfig) {
1776
1792
  unpackConfig
1777
1793
  }));
1778
1794
  let compiler = rspack(await getBundlerConfig(unpackConfig)), port = await getPort(null == (_unpackConfig_server = unpackConfig.server) ? void 0 : _unpackConfig_server.port), proxyConfig = null == (_unpackConfig_server1 = unpackConfig.server) ? void 0 : _unpackConfig_server1.proxy;
1779
- isPlainObject(proxyConfig) && (proxyConfig = Object.entries(proxyConfig).map(([contextStr, target])=>({
1795
+ isPlainObject(proxyConfig) && (proxyConfig = Object.entries(proxyConfig).map(([contextStr, target])=>{
1796
+ let baseConfig = {
1780
1797
  context: contextStr.split(','),
1781
- target,
1782
1798
  changeOrigin: !0
1783
- })));
1799
+ };
1800
+ return isPlainObject(target) ? {
1801
+ ...baseConfig,
1802
+ ...target
1803
+ } : {
1804
+ ...baseConfig,
1805
+ target
1806
+ };
1807
+ }));
1784
1808
  let devServerOptions = {
1785
1809
  hot: !0,
1786
1810
  port,
@@ -1798,7 +1822,7 @@ async function unpackDev(originalUnpackConfig) {
1798
1822
  (null == (_req_headers_accept = req.headers.accept) ? void 0 : _req_headers_accept.includes('html')) && (req.url = '/index.html'), next();
1799
1823
  }), middlewares.unshift(experiments.lazyCompilationMiddleware(compiler)), middlewares);
1800
1824
  let server = new webpack_dev_server(devServerOptions, compiler);
1801
- await server.start(), logger_logger.greet(` ${colors.green(`${colors.bold(unpackConfig._context.callerName.toUpperCase())} v3.2.5`)} ${colors.dim(`ready in ${colors.reset(Math.ceil(performance.now() - global.__unpack_start_time))}ms`)}\n`), getAddressUrls({
1825
+ await server.start(), logger_logger.greet(` ${colors.green(`${colors.bold(unpackConfig._context.callerName.toUpperCase())} v3.2.7`)} ${colors.dim(`ready in ${colors.reset(Math.ceil(performance.now() - global.__unpack_start_time))}ms`)}\n`), getAddressUrls({
1802
1826
  port: port
1803
1827
  }).forEach((addr)=>{
1804
1828
  let url;
@@ -1813,63 +1837,56 @@ async function unpackDev(originalUnpackConfig) {
1813
1837
  }
1814
1838
  }
1815
1839
  function createUnpack({ cwd = process.cwd(), config, callerName = 'unpack' }) {
1816
- let resolveConfig = async ()=>{
1817
- let defaultConfig = {
1818
- root: cwd,
1819
- build: {
1820
- outDir: 'dist',
1821
- minify: isProd(),
1822
- sourceMap: !isProd() && 'cheap-module-source-map',
1823
- parallel: !0,
1824
- filenameHash: !0,
1825
- target: 'es2022'
1826
- },
1827
- dev: {
1828
- lazyCompilation: !0
1829
- },
1830
- server: {
1831
- port: 3000
1832
- },
1833
- html: {
1834
- mountId: 'root'
1835
- },
1836
- css: {
1837
- modules: !0,
1838
- transformer: 'postcss',
1839
- sourceMap: !1
1840
- },
1841
- performance: {
1842
- chunkSplit: {
1843
- strategy: 'split-by-experience'
1844
- }
1845
- },
1846
- typeCheck: !0,
1847
- envPrefix: [
1848
- 'PUBLIC_'
1849
- ]
1850
- }, _context = {
1851
- callerName,
1852
- version: "3.2.5"
1853
- }, { plugins, bundlerConfig, ...rest } = mergeConfig(defaultConfig, config);
1854
- for (let plugin of getNormalizedPluginsByHook('config', plugins))rest = await plugin.config(rest, {
1855
- ..._context,
1856
- mergeConfig: mergeConfig
1840
+ let resolveConfig = ()=>({
1841
+ ...mergeConfig({
1842
+ root: cwd,
1843
+ build: {
1844
+ outDir: 'dist',
1845
+ minify: isProd(),
1846
+ sourceMap: !isProd() && 'cheap-module-source-map',
1847
+ parallel: !0,
1848
+ filenameHash: !0,
1849
+ target: 'es2022'
1850
+ },
1851
+ dev: {
1852
+ lazyCompilation: !0
1853
+ },
1854
+ server: {
1855
+ port: 3000
1856
+ },
1857
+ html: {
1858
+ mountId: 'root'
1859
+ },
1860
+ css: {
1861
+ modules: !0,
1862
+ transformer: 'postcss',
1863
+ sourceMap: !1
1864
+ },
1865
+ performance: {
1866
+ chunkSplit: {
1867
+ strategy: 'split-by-experience'
1868
+ }
1869
+ },
1870
+ typeCheck: !0,
1871
+ envPrefix: [
1872
+ 'PUBLIC_'
1873
+ ]
1874
+ }, config),
1875
+ _context: {
1876
+ callerName,
1877
+ version: "3.2.7"
1878
+ }
1857
1879
  });
1858
- return {
1859
- ...rest,
1860
- plugins,
1861
- bundlerConfig,
1862
- _context
1863
- };
1864
- };
1865
1880
  return {
1866
1881
  build: async ({ watch } = {})=>{
1867
1882
  setNodeEnv(watch ? 'development' : 'production');
1868
- let config = await resolveConfig();
1869
- console.log(colors.rainbow(`${callerName} v3.2.5`), colors.green(`building for ${getNodeEnv()}...`)), unpackBuild(config);
1883
+ let config = resolveConfig();
1884
+ console.log(colors.rainbow(`${callerName} v3.2.7`), colors.green(`building for ${getNodeEnv()}...`)), await unpackBuild(config);
1870
1885
  },
1871
1886
  dev: async ()=>{
1872
- global.__unpack_start_time = performance.now(), setNodeEnv('development'), setDevServer(!0), unpackDev(await resolveConfig());
1887
+ global.__unpack_start_time = performance.now(), setNodeEnv('development'), setDevServer(!0);
1888
+ let config = resolveConfig();
1889
+ await unpackDev(config);
1873
1890
  }
1874
1891
  };
1875
1892
  }
@@ -1,3 +1,3 @@
1
1
  import type { BundlerConfiguration, UnpackConfig } from '../types';
2
- export declare function getBundlerConfig(unpackConfig: UnpackConfig): Promise<BundlerConfiguration>;
2
+ export declare function getBundlerConfig(originalUnpackConfig: UnpackConfig): Promise<BundlerConfiguration>;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bundler-config/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAuBnE,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkVhG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bundler-config/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAuBnE,wBAAsB,gBAAgB,CACpC,oBAAoB,EAAE,YAAY,GACjC,OAAO,CAAC,oBAAoB,CAAC,CA8V/B"}
@@ -1,7 +1,7 @@
1
1
  import type { OxcMinifyPluginOptions, Rspack } from '../../types';
2
2
  export declare class JsMinifyPlugin {
3
- private readonly minify;
4
3
  private readonly minifyOptions;
4
+ private readonly customMinify?;
5
5
  constructor(options?: OxcMinifyPluginOptions);
6
6
  apply(compiler: Rspack.Compiler): void;
7
7
  private transformAssets;
@@ -1 +1 @@
1
- {"version":3,"file":"jsMinify.d.ts","sourceRoot":"","sources":["../../../src/bundler-config/plugins/jsMinify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAM/D,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;gBAEjC,OAAO,GAAE,sBAA2B;IAMhD,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ;IAyB/B,OAAO,CAAC,eAAe;CA8BxB"}
1
+ {"version":3,"file":"jsMinify.d.ts","sourceRoot":"","sources":["../../../src/bundler-config/plugins/jsMinify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAM/D,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAoC;gBAEtD,OAAO,GAAE,sBAA2B;IAMhD,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YAyBjB,eAAe;CAiC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"createUnpack.d.ts","sourceRoot":"","sources":["../src/createUnpack.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAG3C,wBAAgB,YAAY,CAAC,EAC3B,GAAmB,EACnB,MAAM,EACN,UAAqB,GACtB,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,YAAY,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;wBAkD4B;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;;EAiB/C"}
1
+ {"version":3,"file":"createUnpack.d.ts","sourceRoot":"","sources":["../src/createUnpack.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAG3C,wBAAgB,YAAY,CAAC,EAC3B,GAAmB,EACnB,MAAM,EACN,UAAqB,GACtB,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,YAAY,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;wBA6C4B;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;;EAiB/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"prebundleDeps.d.ts","sourceRoot":"","sources":["../src/prebundleDeps.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,SAAS,CAAA;AAyEnD,eAAO,MAAM,aAAa,GAAU,mBAEjC;IACD,YAAY,EAAE,YAAY,CAAA;CAC3B,KAAG,OAAO,CAAC,YAAY,CAwRvB,CAAA"}
1
+ {"version":3,"file":"prebundleDeps.d.ts","sourceRoot":"","sources":["../src/prebundleDeps.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,SAAS,CAAA;AA0EnD,eAAO,MAAM,aAAa,GAAU,mBAEjC;IACD,YAAY,EAAE,YAAY,CAAA;CAC3B,KAAG,OAAO,CAAC,YAAY,CA6RvB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/run/dev.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAwB,YAAY,EAAE,MAAM,WAAW,CAAA;AAKnE,wBAAsB,SAAS,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEjF"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/run/dev.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAwB,YAAY,EAAE,MAAM,WAAW,CAAA;AAKnE,wBAAsB,SAAS,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6EjF"}