diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index 3d04bff81..c3b05dff6 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -49,4 +49,4 @@ jobs: # token: # optional # Specify whether the Codecov output should be verbose verbose: true - fail_ci_if_error: true + fail_ci_if_error: false diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 000000000..5dd217863 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,4 @@ +coverage: + status: + project: off + patch: off \ No newline at end of file diff --git a/crates/mako/src/config/output.rs b/crates/mako/src/config/output.rs index ec708a63f..3042ab885 100644 --- a/crates/mako/src/config/output.rs +++ b/crates/mako/src/config/output.rs @@ -13,6 +13,7 @@ use crate::utils::get_pkg_name; #[serde(rename_all = "camelCase")] pub struct OutputConfig { pub path: PathBuf, + pub filename: Option, pub mode: OutputMode, pub es_version: EsVersion, pub meta: bool, diff --git a/crates/mako/src/generate/chunk.rs b/crates/mako/src/generate/chunk.rs index 9cd62db05..6bd52993d 100644 --- a/crates/mako/src/generate/chunk.rs +++ b/crates/mako/src/generate/chunk.rs @@ -73,11 +73,11 @@ impl Chunk { } } - pub fn filename(&self) -> String { + pub fn name(&self) -> String { match &self.chunk_type { - ChunkType::Runtime => "runtime.js".into(), + ChunkType::Runtime => "runtime".into(), // foo/bar.tsx -> bar.js - ChunkType::Entry(_, name, _) => format!("{}.js", name), + ChunkType::Entry(_, name, _) => name.clone(), // foo/bar.tsx -> foo_bar_tsx-async.js ChunkType::Async | ChunkType::Sync | ChunkType::Worker(_) => { let (path, search, ..) = parse_path(&self.id.id).unwrap(); @@ -105,7 +105,7 @@ impl Chunk { } format!( - "{}-{}.js", + "{}-{}", name, if matches!(self.chunk_type, ChunkType::Worker(_)) { "worker" @@ -117,6 +117,10 @@ impl Chunk { } } + pub fn filename(&self) -> String { + format!("{}.js", self.name()) + } + pub fn add_module(&mut self, module_id: ModuleId) { self.modules.insert(module_id); } diff --git a/crates/mako/src/generate/chunk_pot.rs b/crates/mako/src/generate/chunk_pot.rs index be774290c..ba22fd82b 100644 --- a/crates/mako/src/generate/chunk_pot.rs +++ b/crates/mako/src/generate/chunk_pot.rs @@ -26,6 +26,7 @@ pub struct ChunkPot<'a> { pub module_map: HashMap, pub js_hash: u64, pub stylesheet: Option>, + pub chunk_name: String, } impl<'cp> ChunkPot<'cp> { @@ -41,6 +42,7 @@ impl<'cp> ChunkPot<'cp> { chunk_id: chunk.id.id.clone(), module_map: js_modules.module_map, js_hash: js_modules.raw_hash, + chunk_name: chunk.name(), stylesheet, } } diff --git a/crates/mako/src/generate/chunk_pot/ast_impl.rs b/crates/mako/src/generate/chunk_pot/ast_impl.rs index 0c187d384..793d041ad 100644 --- a/crates/mako/src/generate/chunk_pot/ast_impl.rs +++ b/crates/mako/src/generate/chunk_pot/ast_impl.rs @@ -133,6 +133,8 @@ pub(crate) fn render_css_chunk( file_name: get_css_chunk_filename(&chunk_pot.js_name), chunk_id: chunk_pot.chunk_id.clone(), file_type: ChunkFileType::Css, + chunk_name: chunk_pot.chunk_name.clone(), + file_name_template: None, }) } @@ -181,8 +183,10 @@ pub(crate) fn render_normal_js_chunk( hash, source_map, file_name: chunk_pot.js_name.clone(), + chunk_name: chunk_pot.chunk_name.clone(), chunk_id: chunk_pot.chunk_id.clone(), file_type: ChunkFileType::JS, + file_name_template: None, }) } @@ -222,6 +226,8 @@ pub(crate) fn render_entry_js_chunk( file_name: pot.js_name.clone(), chunk_id: pot.chunk_id.clone(), file_type: ChunkFileType::JS, + chunk_name: pot.chunk_name.clone(), + file_name_template: context.config.output.filename.clone(), }) } @@ -324,7 +330,7 @@ fn render_entry_chunk_js_without_full_hash( let (buf, source_map_buf) = util::render_module_js(&ast.ast, context)?; - let hash = if context.config.hash { + let hash = if context.config.hash || context.config.output.filename.is_some() { crate::mako_profile_scope!("entryHash"); Some(file_content_hash(&buf)) } else { diff --git a/crates/mako/src/generate/chunk_pot/str_impl.rs b/crates/mako/src/generate/chunk_pot/str_impl.rs index 1cfa7edeb..beebc5a2f 100644 --- a/crates/mako/src/generate/chunk_pot/str_impl.rs +++ b/crates/mako/src/generate/chunk_pot/str_impl.rs @@ -103,6 +103,8 @@ pub(super) fn render_entry_js_chunk( file_name: pot.js_name.clone(), chunk_id: pot.chunk_id.clone(), file_type: ChunkFileType::JS, + file_name_template: None, + chunk_name: pot.chunk_name.clone(), }) } @@ -152,6 +154,8 @@ pub(super) fn render_normal_js_chunk( file_name: chunk_pot.js_name.clone(), chunk_id: chunk_pot.chunk_id.clone(), file_type: ChunkFileType::JS, + file_name_template: None, + chunk_name: chunk_pot.chunk_name.clone(), }) } diff --git a/crates/mako/src/generate/generate_chunks.rs b/crates/mako/src/generate/generate_chunks.rs index e14946990..0e9646753 100644 --- a/crates/mako/src/generate/generate_chunks.rs +++ b/crates/mako/src/generate/generate_chunks.rs @@ -33,19 +33,19 @@ pub struct ChunkFile { pub content: Vec, pub source_map: Option>, pub hash: Option, + pub chunk_name: String, pub file_name: String, pub chunk_id: String, pub file_type: ChunkFileType, + pub file_name_template: Option, } impl ChunkFile { pub fn disk_name(&self) -> String { - let format_file_name = hash_too_long_file_name(&self.file_name); - - if let Some(hash) = &self.hash { - hash_file_name(&format_file_name, hash) + if let Some(tmpl) = &self.file_name_template { + self.render_tmpl(tmpl) } else { - format_file_name + self.default_disk_name() } } @@ -56,6 +56,26 @@ impl ChunkFile { pub fn source_map_name(&self) -> String { format!("{}.map", self.file_name) } + + fn default_disk_name(&self) -> String { + let format_file_name = hash_too_long_file_name(&self.file_name); + + if let Some(hash) = &self.hash { + hash_file_name(&format_file_name, hash) + } else { + format_file_name + } + } + + fn render_tmpl(&self, tpl: &str) -> String { + let hash_string = self.hash.as_deref().unwrap_or("notHashed"); + + tpl.replace("[name]", self.chunk_name.as_str()) + .replace("[id]", self.chunk_id.as_str()) + .replace("[file]", self.file_name.as_str()) + .replace("[hash]", hash_string) + .replace("[contenthash]", hash_string) + } } type ChunksHashPlaceholder = HashMap; @@ -102,26 +122,26 @@ impl Compiler { ); entry_chunk_files_with_placeholder - .par_iter_mut() - .try_for_each( - |(chunk_files, js_chunks_hash_placeholder, css_chunks_hash_placeholder)| -> Result<()>{ - replace_chunks_placeholder( - chunk_files, - js_chunks_hash_placeholder, - &js_chunks_hash_replacer, - )?; - replace_chunks_placeholder( - chunk_files, - css_chunks_hash_placeholder, - &css_chunks_hash_replacer, - )?; - chunk_files.iter_mut().for_each(|cf| { - cf.hash = Some(file_content_hash(&cf.content)); - }); - - Ok(()) - }, - )?; + .par_iter_mut() + .try_for_each( + |(chunk_files, js_chunks_hash_placeholder, css_chunks_hash_placeholder)| -> Result<()>{ + replace_chunks_placeholder( + chunk_files, + js_chunks_hash_placeholder, + &js_chunks_hash_replacer, + )?; + replace_chunks_placeholder( + chunk_files, + css_chunks_hash_placeholder, + &css_chunks_hash_replacer, + )?; + chunk_files.iter_mut().for_each(|cf| { + cf.hash = Some(file_content_hash(&cf.content)); + }); + + Ok(()) + }, + )?; } let entry_chunk_files = entry_chunk_files_with_placeholder @@ -278,48 +298,48 @@ fn replace_chunks_placeholder( chunks_hash_replacer: &ChunksHashReplacer, ) -> Result<()> { chunks_hash_placeholder.iter().try_for_each( - |(chunk_id, placeholder)| match chunks_hash_replacer.get(chunk_id) { - Some(replacer) => { - chunk_files - .iter_mut() - .filter(|cf| matches!(cf.file_type, ChunkFileType::JS)) - .try_for_each(|cf| { - if cf.content.is_empty() { - warn!("Chunk content of \"{}\" is empty.", cf.chunk_id); - } - - let position = cf - .content - .windows(placeholder.len()) - .position(|w| w == placeholder.as_bytes()); - - position.map_or( - { - Err(anyhow!( + |(chunk_id, placeholder)| match chunks_hash_replacer.get(chunk_id) { + Some(replacer) => { + chunk_files + .iter_mut() + .filter(|cf| matches!(cf.file_type, ChunkFileType::JS)) + .try_for_each(|cf| { + if cf.content.is_empty() { + warn!("Chunk content of \"{}\" is empty.", cf.chunk_id); + } + + let position = cf + .content + .windows(placeholder.len()) + .position(|w| w == placeholder.as_bytes()); + + position.map_or( + { + Err(anyhow!( "Generate \"{}\" failed, placeholder \"{}\" for \"{}\" not existed in chunk file.", cf.chunk_id, placeholder, chunk_id )) - }, - |pos| { - cf.content.splice( - pos..pos + replacer.len(), - replacer.as_bytes().to_vec(), - ); - Ok(()) - }, - ) - })?; + }, + |pos| { + cf.content.splice( + pos..pos + replacer.len(), + replacer.as_bytes().to_vec(), + ); Ok(()) - } - _ => Err(anyhow!( + }, + ) + })?; + Ok(()) + } + _ => Err(anyhow!( "Generate \"{}\" failed, replacer not found for placeholder \"{}\".", chunk_id, placeholder )), - }, - ) + }, + ) } pub fn build_props(key_str: &str, value: Box) -> PropOrSpread { @@ -414,3 +434,25 @@ fn hash_too_long_file_name(file_name: &String) -> String { format_file_name.to_string() } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_simple_template_render() { + let chunk_file = ChunkFile { + raw_hash: 0, + content: vec![], + source_map: None, + hash: Some("hash999".to_string()), + chunk_name: "chunk".to_string(), + file_name: "index.js".to_string(), + chunk_id: "c_id".to_string(), + file_type: ChunkFileType::JS, + file_name_template: Some("[name].[hash].[id].js".to_string()), + }; + + assert_eq!(chunk_file.disk_name(), "chunk.hash999.c_id.js"); + } +} diff --git a/e2e/fixtures/config.output.filename/expect.js b/e2e/fixtures/config.output.filename/expect.js new file mode 100644 index 000000000..2750f1bf0 --- /dev/null +++ b/e2e/fixtures/config.output.filename/expect.js @@ -0,0 +1,10 @@ +const { + injectSimpleJest, + parseBuildResult, +} = require("../../../scripts/test-utils"); + +injectSimpleJest(); +const {files} = parseBuildResult(__dirname); +let filename = Object.keys(files)[0] + +expect(filename).toMatch(/index\.umd\..+\.js/) diff --git a/e2e/fixtures/config.output.filename/mako.config.json b/e2e/fixtures/config.output.filename/mako.config.json new file mode 100644 index 000000000..6c2ac4f92 --- /dev/null +++ b/e2e/fixtures/config.output.filename/mako.config.json @@ -0,0 +1,5 @@ +{ + "output": { + "filename": "[name].umd.[hash].js" + } +} diff --git a/e2e/fixtures/config.output.filename/src/index.tsx b/e2e/fixtures/config.output.filename/src/index.tsx new file mode 100644 index 000000000..296d5492b --- /dev/null +++ b/e2e/fixtures/config.output.filename/src/index.tsx @@ -0,0 +1 @@ +console.log(1); diff --git a/packages/bundler-mako/package.json b/packages/bundler-mako/package.json index 4c1384db6..94b961729 100644 --- a/packages/bundler-mako/package.json +++ b/packages/bundler-mako/package.json @@ -3,7 +3,7 @@ "version": "0.9.9", "dependencies": { "@umijs/bundler-utils": "^4.0.81", - "@umijs/mako": "0.9.9", + "@umijs/mako": "0.9.10-canary.20241218.1", "chalk": "^4.1.2", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", diff --git a/packages/mako/npm/darwin-arm64/package.json b/packages/mako/npm/darwin-arm64/package.json index c6125dd24..7e2eef697 100644 --- a/packages/mako/npm/darwin-arm64/package.json +++ b/packages/mako/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/mako-darwin-arm64", - "version": "0.9.9", + "version": "0.9.10-canary.20241218.1", "os": [ "darwin" ], diff --git a/packages/mako/npm/darwin-x64/package.json b/packages/mako/npm/darwin-x64/package.json index c4595f7d5..1bc78b9c5 100644 --- a/packages/mako/npm/darwin-x64/package.json +++ b/packages/mako/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/mako-darwin-x64", - "version": "0.9.9", + "version": "0.9.10-canary.20241218.1", "os": [ "darwin" ], diff --git a/packages/mako/npm/linux-arm64-gnu/package.json b/packages/mako/npm/linux-arm64-gnu/package.json index 442f5a2a0..a901847e6 100644 --- a/packages/mako/npm/linux-arm64-gnu/package.json +++ b/packages/mako/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/mako-linux-arm64-gnu", - "version": "0.9.9", + "version": "0.9.10-canary.20241218.1", "os": [ "linux" ], diff --git a/packages/mako/npm/linux-arm64-musl/package.json b/packages/mako/npm/linux-arm64-musl/package.json index 3d669920f..ab81ed2d5 100644 --- a/packages/mako/npm/linux-arm64-musl/package.json +++ b/packages/mako/npm/linux-arm64-musl/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/mako-linux-arm64-musl", - "version": "0.9.9", + "version": "0.9.10-canary.20241218.1", "os": [ "linux" ], diff --git a/packages/mako/npm/linux-x64-gnu/package.json b/packages/mako/npm/linux-x64-gnu/package.json index 16651bea4..61ed20542 100644 --- a/packages/mako/npm/linux-x64-gnu/package.json +++ b/packages/mako/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/mako-linux-x64-gnu", - "version": "0.9.9", + "version": "0.9.10-canary.20241218.1", "os": [ "linux" ], diff --git a/packages/mako/npm/linux-x64-musl/package.json b/packages/mako/npm/linux-x64-musl/package.json index d9d14fd2f..72ff75308 100644 --- a/packages/mako/npm/linux-x64-musl/package.json +++ b/packages/mako/npm/linux-x64-musl/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/mako-linux-x64-musl", - "version": "0.9.9", + "version": "0.9.10-canary.20241218.1", "os": [ "linux" ], diff --git a/packages/mako/npm/win32-ia32-msvc/package.json b/packages/mako/npm/win32-ia32-msvc/package.json index 6660169b4..e29252000 100644 --- a/packages/mako/npm/win32-ia32-msvc/package.json +++ b/packages/mako/npm/win32-ia32-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/mako-win32-ia32-msvc", - "version": "0.9.9", + "version": "0.9.10-canary.20241218.1", "os": [ "win32" ], diff --git a/packages/mako/npm/win32-x64-msvc/package.json b/packages/mako/npm/win32-x64-msvc/package.json index 346427e9c..28195837b 100644 --- a/packages/mako/npm/win32-x64-msvc/package.json +++ b/packages/mako/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/mako-win32-x64-msvc", - "version": "0.9.9", + "version": "0.9.10-canary.20241218.1", "os": [ "win32" ], diff --git a/packages/mako/package.json b/packages/mako/package.json index b7b94579b..25863515d 100644 --- a/packages/mako/package.json +++ b/packages/mako/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/mako", - "version": "0.9.9", + "version": "0.9.10-canary.20241218.1", "main": "dist/index.js", "types": "dist/index.d.ts", "bin": { @@ -75,14 +75,14 @@ "src:build": "father build" }, "optionalDependencies": { - "@umijs/mako-darwin-arm64": "0.9.9", - "@umijs/mako-linux-arm64-gnu": "0.9.9", - "@umijs/mako-linux-arm64-musl": "0.9.9", - "@umijs/mako-win32-ia32-msvc": "0.9.9", - "@umijs/mako-darwin-x64": "0.9.9", - "@umijs/mako-win32-x64-msvc": "0.9.9", - "@umijs/mako-linux-x64-gnu": "0.9.9", - "@umijs/mako-linux-x64-musl": "0.9.9" + "@umijs/mako-darwin-arm64": "0.9.10-canary.20241218.1", + "@umijs/mako-linux-arm64-gnu": "0.9.10-canary.20241218.1", + "@umijs/mako-linux-arm64-musl": "0.9.10-canary.20241218.1", + "@umijs/mako-win32-ia32-msvc": "0.9.10-canary.20241218.1", + "@umijs/mako-darwin-x64": "0.9.10-canary.20241218.1", + "@umijs/mako-win32-x64-msvc": "0.9.10-canary.20241218.1", + "@umijs/mako-linux-x64-gnu": "0.9.10-canary.20241218.1", + "@umijs/mako-linux-x64-musl": "0.9.10-canary.20241218.1" }, "repository": "git@github.com:umijs/mako.git" } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fae06d00e..bab21ab25 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -241,6 +241,12 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) + examples/ppp-ssu-case-1: + dependencies: + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + examples/react: dependencies: react: @@ -436,7 +442,7 @@ importers: specifier: ^4.0.81 version: 4.1.6 '@umijs/mako': - specifier: 0.9.9 + specifier: 0.9.10-canary.20241218.1 version: link:../mako chalk: specifier: ^4.1.2 @@ -537,29 +543,29 @@ importers: version: 21.1.1 optionalDependencies: '@umijs/mako-darwin-arm64': - specifier: 0.9.9 - version: 0.9.9 + specifier: 0.9.10-canary.20241218.1 + version: 0.9.10-canary.20241218.1 '@umijs/mako-darwin-x64': - specifier: 0.9.9 - version: 0.9.9 + specifier: 0.9.10-canary.20241218.1 + version: 0.9.10-canary.20241218.1 '@umijs/mako-linux-arm64-gnu': - specifier: 0.9.9 - version: 0.9.9 + specifier: 0.9.10-canary.20241218.1 + version: 0.9.10-canary.20241218.1 '@umijs/mako-linux-arm64-musl': - specifier: 0.9.9 - version: 0.9.9 + specifier: 0.9.10-canary.20241218.1 + version: 0.9.10-canary.20241218.1 '@umijs/mako-linux-x64-gnu': - specifier: 0.9.9 - version: 0.9.9 + specifier: 0.9.10-canary.20241218.1 + version: 0.9.10-canary.20241218.1 '@umijs/mako-linux-x64-musl': - specifier: 0.9.9 - version: 0.9.9 + specifier: 0.9.10-canary.20241218.1 + version: 0.9.10-canary.20241218.1 '@umijs/mako-win32-ia32-msvc': - specifier: 0.9.9 - version: 0.9.9 + specifier: 0.9.10-canary.20241218.1 + version: 0.9.10-canary.20241218.1 '@umijs/mako-win32-x64-msvc': - specifier: 0.9.9 - version: 0.9.9 + specifier: 0.9.10-canary.20241218.1 + version: 0.9.10-canary.20241218.1 devDependencies: '@napi-rs/cli': specifier: ^2.18.0 @@ -6512,8 +6518,8 @@ packages: dev: true optional: true - /@umijs/mako-darwin-arm64@0.9.9: - resolution: {integrity: sha512-YUeneHvt+YVWM/XJaKVrN7yOTUnoWSm1YJ0eCF6yqYI9uaLHsOLV4ZD5V6esG5E1J2NOwit7hy2RdVSIdKsOGw==} + /@umijs/mako-darwin-arm64@0.9.10-canary.20241218.1: + resolution: {integrity: sha512-PGn7uX4RU/a0WVNxoXnL1r8f0N64VsfBTXT1wCC2Ne3JzOuPgCUYvgaZx72ggafL1NGQs0c8Lp/7ZeMpvDMGlQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -6530,8 +6536,8 @@ packages: dev: true optional: true - /@umijs/mako-darwin-x64@0.9.9: - resolution: {integrity: sha512-YsrJl+lcqEg6MbCEKJ/y1wwymu8Ndrg7PGoQI1TIrINqEonILTCo90r/jpibFwMkvYbdtDMGqZMkuLBMOsvcpg==} + /@umijs/mako-darwin-x64@0.9.10-canary.20241218.1: + resolution: {integrity: sha512-GubjZiQaqT4uHuK1p14biz/H9eHCwh0jhLfsZwFqtILPnqZKVvKTYmn/vP0pVR7WHE+BrYKmkvLFsx3CGy4ROg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -6539,8 +6545,8 @@ packages: dev: false optional: true - /@umijs/mako-linux-arm64-gnu@0.9.9: - resolution: {integrity: sha512-oXHV/Yup5BaxuPzxe02guJz4O14SSddt5KpCxf8EfhW8k0gmqmydaDmIRlnVJJIKONbCrMYO5Jr00JJ31CG1vg==} + /@umijs/mako-linux-arm64-gnu@0.9.10-canary.20241218.1: + resolution: {integrity: sha512-mMTUwx58KNz3D/HeHB4HN4YY2DjAeKFCEKkBFdF/NP6ihNH1WnHB62qDPn+IXEgUynQBBP6QdSPv7LCQqbsTxw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -6548,8 +6554,8 @@ packages: dev: false optional: true - /@umijs/mako-linux-arm64-musl@0.9.9: - resolution: {integrity: sha512-WlbCzBkVPjGc6Pq6bUQILyf6h3UBDUGy7XzMEza83TPbCv6XBSxut2ZBkJxuCA1MvqJT+TlufP8fy9PQi1GldA==} + /@umijs/mako-linux-arm64-musl@0.9.10-canary.20241218.1: + resolution: {integrity: sha512-s3pmKT5iH+hpFUueh75ht50jZf7vj9db57FqExnZQiGzc0+yX4YMztpbzmuFoX2T8ZwTJIj8yT63UN7zHfsQPw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -6566,8 +6572,8 @@ packages: dev: true optional: true - /@umijs/mako-linux-x64-gnu@0.9.9: - resolution: {integrity: sha512-D4/F4d9yl3/5v70h/CUSortLWqxmw0Y9cLpZ87XDsjQPnKOYnG5HuE2sZw5SR0epX6EKQkUPI6KcHgQKqGqiVQ==} + /@umijs/mako-linux-x64-gnu@0.9.10-canary.20241218.1: + resolution: {integrity: sha512-r+z3fO1N14/h0Un3hLbuT8UpPsVnCwtN6xb5F1wCD28WTOLVbFjzQxep+KZ64OQtpaq7pVETtmYrcbH5IXuJtQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -6584,8 +6590,8 @@ packages: dev: true optional: true - /@umijs/mako-linux-x64-musl@0.9.9: - resolution: {integrity: sha512-SIBMG6nOWygTJRDE/NpGFN5toxc1c/m+vG2vwC3DOEgNeadOmC4KqZoJxFVPvqJSKnAJ8GLeNMSuHGpSkwU1IQ==} + /@umijs/mako-linux-x64-musl@0.9.10-canary.20241218.1: + resolution: {integrity: sha512-1Pyr7+mg0xez98R5Q2mRmqWyTMe0yjEoJz3L9t7St+l+oYzAmrUVn299sqwc02k3P0fWufzsK0QCkF49dobUpA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -6593,8 +6599,8 @@ packages: dev: false optional: true - /@umijs/mako-win32-ia32-msvc@0.9.9: - resolution: {integrity: sha512-9vlcfJk7Majc/HUXLAw/el2+/blWucMFCsrELjRNaDgVQrXgMyCjQrJHutI962TWijoMVb43I5bKFs4b6C1q3g==} + /@umijs/mako-win32-ia32-msvc@0.9.10-canary.20241218.1: + resolution: {integrity: sha512-3kEKc1u6/NYPHtpb6ovxL1RWAOu7WYd3bxSw2Aa5XF7gKTkZ+SobGpSlk/dYsewD1KfLumgZpnGHB9zrhlipsA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -6602,8 +6608,8 @@ packages: dev: false optional: true - /@umijs/mako-win32-x64-msvc@0.9.9: - resolution: {integrity: sha512-prQGodCGW67i6zK9xqlRZAxdjOLThOfoMBXIe+uJzZmct4fpmHwP5OtNLs3lIDeVEhHqdca0rqE+dgAxn6YEmg==} + /@umijs/mako-win32-x64-msvc@0.9.10-canary.20241218.1: + resolution: {integrity: sha512-cMQx3FoUQb7BEPU/l0IB4VlZU2Gz1hi1p9QAjdVjctUDeOGMI31k5m1jqbpUb7wp+BeyinlvzLfslA8ndV0vqA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -12238,7 +12244,6 @@ packages: /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: true /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}