diff --git a/crates/rspack_core/src/compiler/compilation.rs b/crates/rspack_core/src/compiler/compilation.rs index e3c4d569e8e..b76fc2e9135 100644 --- a/crates/rspack_core/src/compiler/compilation.rs +++ b/crates/rspack_core/src/compiler/compilation.rs @@ -39,12 +39,12 @@ use crate::{ CleanTask, CleanTaskResult, CodeGenerationResult, CodeGenerationResults, CompilationLogger, CompilationLogging, CompilerOptions, ContentHashArgs, ContextDependency, DependencyId, DependencyParents, DependencyType, Entry, EntryData, EntryOptions, Entrypoint, ErrorSpan, - FactorizeQueue, FactorizeTask, FactorizeTaskResult, Filename, Logger, Module, ModuleFactory, - ModuleGraph, ModuleGraphModule, ModuleIdentifier, ModuleProfile, NormalModuleSource, PathData, - ProcessAssetsArgs, ProcessDependenciesQueue, ProcessDependenciesResult, ProcessDependenciesTask, - RenderManifestArgs, Resolve, ResolverFactory, RuntimeGlobals, RuntimeModule, - RuntimeRequirementsInTreeArgs, RuntimeSpec, SharedPluginDriver, SourceType, Stats, TaskResult, - WorkerTask, + FactorizeQueue, FactorizeTask, FactorizeTaskResult, Filename, Logger, Module, + ModuleCreationCallback, ModuleFactory, ModuleGraph, ModuleGraphModule, ModuleIdentifier, + ModuleProfile, NormalModuleSource, PathData, ProcessAssetsArgs, ProcessDependenciesQueue, + ProcessDependenciesResult, ProcessDependenciesTask, RenderManifestArgs, Resolve, ResolverFactory, + RuntimeGlobals, RuntimeModule, RuntimeRequirementsInTreeArgs, RuntimeSpec, SharedPluginDriver, + SourceType, Stats, TaskResult, WorkerTask, }; use crate::{tree_shaking::visitor::OptimizeAnalyzeResult, Context}; @@ -568,6 +568,7 @@ impl Compilation { parent_module .and_then(|m| m.as_normal_module()) .and_then(|module| module.name_for_condition()), + None, ); }); @@ -681,7 +682,10 @@ impl Compilation { .module_by_identifier(original_module_identifier) .expect("Module expected"); + let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel(); + let mut remaining = sorted_dependencies.len(); for dependencies in sorted_dependencies.into_values() { + let tx = tx.clone(); self.handle_module_creation( &mut factorize_queue, Some(module.identifier()), @@ -693,16 +697,33 @@ impl Compilation { module .as_normal_module() .and_then(|module| module.name_for_condition()), + Some(Box::new(move |_| { + tx.send(()) + .expect("Failed to send callback to process_dependencies"); + })), ); } + drop(tx); - result_tx - .send(Ok(TaskResult::ProcessDependencies(Box::new( + let tx = result_tx.clone(); + + tokio::spawn(async move { + loop { + if remaining == 0 { + break; + } + + rx.recv().await; + remaining -= 1; + } + + tx.send(Ok(TaskResult::ProcessDependencies(Box::new( ProcessDependenciesResult { module_identifier: task.original_module_identifier, }, )))) .expect("Failed to send process dependencies result"); + }); } process_deps_time.end(start); @@ -721,6 +742,7 @@ impl Compilation { context_dependencies, missing_dependencies, diagnostics, + callback, } = task_result; if !diagnostics.is_empty() { if let Some(id) = original_module_identifier { @@ -780,6 +802,7 @@ impl Compilation { dependencies, is_entry, current_profile, + callback, }); tracing::trace!("Module created: {}", &module_identifier); } else { @@ -1119,6 +1142,7 @@ impl Compilation { resolve_options: Option>, lazy_visit_modules: std::collections::HashSet, issuer: Option>, + callback: Option, ) { let current_profile = self.options.profile.then(Box::::default); let dependency = dependencies[0].get_dependency(&self.module_graph).clone(); @@ -1149,6 +1173,7 @@ impl Compilation { plugin_driver: self.plugin_driver.clone(), cache: self.cache.clone(), current_profile, + callback, }); } diff --git a/crates/rspack_core/src/compiler/queue.rs b/crates/rspack_core/src/compiler/queue.rs index e658eb4b01b..0866531e211 100644 --- a/crates/rspack_core/src/compiler/queue.rs +++ b/crates/rspack_core/src/compiler/queue.rs @@ -11,7 +11,7 @@ use crate::{ ModuleGraph, ModuleGraphModule, ModuleIdentifier, ModuleProfile, Resolve, ResolverFactory, SharedPluginDriver, WorkerQueue, }; -use crate::{DependencyId, ExportInfo, ExportsInfo, UsageState}; +use crate::{BoxModule, DependencyId, ExportInfo, ExportsInfo, UsageState}; #[derive(Debug)] pub enum TaskResult { @@ -43,6 +43,7 @@ pub struct FactorizeTask { pub plugin_driver: SharedPluginDriver, pub cache: Arc, pub current_profile: Option>, + pub callback: Option, } /// a struct temporarily used creating ExportsInfo @@ -52,7 +53,7 @@ pub struct ExportsInfoRelated { pub other_exports_info: ExportInfo, pub side_effects_info: ExportInfo, } -#[derive(Debug)] + pub struct FactorizeTaskResult { pub original_module_identifier: Option, /// Result will be available if [crate::ModuleFactory::create] returns `Ok`. @@ -66,6 +67,28 @@ pub struct FactorizeTaskResult { pub context_dependencies: HashSet, pub missing_dependencies: HashSet, pub diagnostics: Vec, + pub callback: Option, +} + +impl std::fmt::Debug for FactorizeTaskResult { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("FactorizeTaskResult") + .field( + "original_module_identifier", + &self.original_module_identifier, + ) + .field("factory_result", &self.factory_result) + .field("dependencies", &self.dependencies) + .field("diagnostics", &self.diagnostics) + .field("is_entry", &self.is_entry) + .field("current_profile", &self.current_profile) + .field("exports_info_related", &self.exports_info_related) + .field("file_dependencies", &self.file_dependencies) + .field("context_dependencies", &self.context_dependencies) + .field("missing_dependencies", &self.missing_dependencies) + .field("diagnostics", &self.diagnostics) + .finish() + } } impl FactorizeTaskResult { @@ -134,6 +157,7 @@ impl WorkerTask for FactorizeTask { context_dependencies: Default::default(), missing_dependencies: Default::default(), diagnostics: Default::default(), + callback: self.callback, }; // Error and result are not mutually exclusive in webpack module factorization. @@ -204,6 +228,7 @@ pub struct AddTask { pub dependencies: Vec, pub is_entry: bool, pub current_profile: Option>, + pub callback: Option, } #[derive(Debug)] @@ -256,6 +281,10 @@ impl AddTask { module_identifier, )?; + if let Some(callback) = self.callback { + callback(&self.module); + } + return Ok(TaskResult::Add(Box::new(AddTaskResult::ModuleReused { module: self.module, }))); @@ -282,6 +311,10 @@ impl AddTask { current_profile.mark_integration_end(); } + if let Some(callback) = self.callback { + callback(&self.module); + } + Ok(TaskResult::Add(Box::new(AddTaskResult::ModuleAdded { module: self.module, current_profile: self.current_profile, @@ -463,3 +496,5 @@ impl CleanTask { } pub type CleanQueue = WorkerQueue; + +pub type ModuleCreationCallback = Box; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b249acc445..ddcf9b583d3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1120,7 +1120,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.17 /@antv/adjust@0.2.5: resolution: {integrity: sha512-MfWZOkD9CqXRES6MBGRNe27Q577a72EIwyMnE29wIlPliFvJfWwsrONddpGU7lilMpVKecS3WAzOoip3RfPTRQ==} @@ -1391,7 +1391,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.17 commander: 4.1.1 convert-source-map: 2.0.0 fs-readdir-recursive: 1.1.0 @@ -1504,7 +1504,7 @@ packages: dependencies: '@babel/types': 7.23.0 '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.17 jsesc: 2.5.2 dev: true @@ -4481,11 +4481,11 @@ packages: resolution: {integrity: sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 20.9.4 chalk: 4.1.2 - jest-message-util: 29.5.0 - jest-util: 29.5.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 slash: 3.0.0 dev: true @@ -4502,7 +4502,7 @@ packages: '@jest/reporters': 29.5.0 '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 20.9.4 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -4512,14 +4512,14 @@ packages: jest-changed-files: 29.5.0 jest-config: 29.5.0(@types/node@20.9.4) jest-haste-map: 29.5.0 - jest-message-util: 29.5.0 + jest-message-util: 29.7.0 jest-regex-util: 29.4.3 jest-resolve: 29.5.0 jest-resolve-dependencies: 29.5.0 jest-runner: 29.5.0 jest-runtime: 29.5.0 jest-snapshot: 29.7.0 - jest-util: 29.5.0 + jest-util: 29.7.0 jest-validate: 29.5.0 jest-watcher: 29.5.0 micromatch: 4.0.5 @@ -4543,7 +4543,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/fake-timers': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 20.9.4 jest-mock: 29.5.0 dev: true @@ -4576,12 +4576,12 @@ packages: resolution: {integrity: sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.0.2 '@types/node': 20.9.4 - jest-message-util: 29.5.0 + jest-message-util: 29.7.0 jest-mock: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 dev: true /@jest/globals@29.5.0: @@ -4590,7 +4590,7 @@ packages: dependencies: '@jest/environment': 29.5.0 '@jest/expect': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 jest-mock: 29.5.0 transitivePeerDependencies: - supports-color @@ -4609,7 +4609,7 @@ packages: '@jest/console': 29.5.0 '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 '@types/node': 20.9.4 chalk: 4.1.2 @@ -4622,8 +4622,8 @@ packages: istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.5.0 - jest-util: 29.5.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 jest-worker: 29.7.0 slash: 3.0.0 string-length: 4.0.2 @@ -4653,7 +4653,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true @@ -4673,7 +4673,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.23.2 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -4682,7 +4682,7 @@ packages: graceful-fs: 4.2.10 jest-haste-map: 29.5.0 jest-regex-util: 29.4.3 - jest-util: 29.5.0 + jest-util: 29.7.0 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -4735,6 +4735,7 @@ packages: '@types/node': 20.9.4 '@types/yargs': 17.0.12 chalk: 4.1.2 + dev: true /@jest/types@29.6.3: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} @@ -4746,7 +4747,6 @@ packages: '@types/node': 20.9.4 '@types/yargs': 17.0.12 chalk: 4.1.2 - dev: true /@jridgewell/gen-mapping@0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} @@ -4754,7 +4754,7 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.17 /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} @@ -4768,7 +4768,7 @@ packages: resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} dependencies: '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.17 /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} @@ -4786,7 +4786,7 @@ packages: resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} dependencies: '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.4.14 /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -8058,6 +8058,14 @@ packages: dependencies: acorn: 8.11.2 + /acorn-import-assertions@1.9.0(acorn@8.8.2): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.8.2 + dev: true + /acorn-node@1.8.2: resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} dependencies: @@ -10719,8 +10727,8 @@ packages: '@jest/expect-utils': 29.5.0 jest-get-type: 29.6.3 jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 - jest-util: 29.5.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 dev: true /expect@29.7.0: @@ -11146,6 +11154,9 @@ packages: /fs-monkey@1.0.3: resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + /fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + /fs-readdir-recursive@1.1.0: resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} dev: true @@ -11559,7 +11570,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.89.0(@swc/core@1.3.99)(webpack-cli@4.10.0) + webpack: 5.89.0(@swc/core@1.3.23)(webpack-cli@4.10.0) dev: true /htmlescape@1.1.1: @@ -12268,7 +12279,7 @@ packages: '@jest/environment': 29.5.0 '@jest/expect': 29.5.0 '@jest/test-result': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 20.9.4 chalk: 4.1.2 co: 4.6.0 @@ -12276,10 +12287,10 @@ packages: is-generator-fn: 2.1.0 jest-each: 29.5.0 jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 + jest-message-util: 29.7.0 jest-runtime: 29.5.0 jest-snapshot: 29.7.0 - jest-util: 29.5.0 + jest-util: 29.7.0 p-limit: 3.1.0 pretty-format: 29.7.0 pure-rand: 6.0.2 @@ -12301,13 +12312,13 @@ packages: dependencies: '@jest/core': 29.5.0 '@jest/test-result': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 jest-config: 29.5.0(@types/node@20.9.4) - jest-util: 29.5.0 + jest-util: 29.7.0 jest-validate: 29.5.0 prompts: 2.4.2 yargs: 17.6.2 @@ -12331,7 +12342,7 @@ packages: dependencies: '@babel/core': 7.23.2 '@jest/test-sequencer': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 20.9.4 babel-jest: 29.5.0(@babel/core@7.23.2) chalk: 4.1.2 @@ -12345,7 +12356,7 @@ packages: jest-regex-util: 29.4.3 jest-resolve: 29.5.0 jest-runner: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 jest-validate: 29.5.0 micromatch: 4.0.5 parse-json: 5.2.0 @@ -12376,7 +12387,7 @@ packages: resolution: {integrity: sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 jest-util: 29.7.0 @@ -12403,14 +12414,14 @@ packages: resolution: {integrity: sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.5 '@types/node': 20.9.4 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 jest-regex-util: 29.4.3 - jest-util: 29.5.0 + jest-util: 29.7.0 jest-worker: 29.7.0 micromatch: 4.0.5 walker: 1.0.8 @@ -12465,21 +12476,6 @@ packages: pretty-format: 29.7.0 dev: true - /jest-message-util@29.5.0: - resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/code-frame': 7.22.13 - '@jest/types': 29.5.0 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - /jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -12499,9 +12495,9 @@ packages: resolution: {integrity: sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 20.9.4 - jest-util: 29.5.0 + jest-util: 29.7.0 dev: true /jest-pnp-resolver@1.2.2(jest-resolve@29.5.0): @@ -12544,7 +12540,7 @@ packages: graceful-fs: 4.2.10 jest-haste-map: 29.5.0 jest-pnp-resolver: 1.2.2(jest-resolve@29.5.0) - jest-util: 29.5.0 + jest-util: 29.7.0 jest-validate: 29.5.0 resolve: 1.22.2 resolve.exports: 2.0.2 @@ -12559,7 +12555,7 @@ packages: '@jest/environment': 29.5.0 '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 20.9.4 chalk: 4.1.2 emittery: 0.13.1 @@ -12568,10 +12564,10 @@ packages: jest-environment-node: 29.5.0 jest-haste-map: 29.5.0 jest-leak-detector: 29.5.0 - jest-message-util: 29.5.0 + jest-message-util: 29.7.0 jest-resolve: 29.5.0 jest-runtime: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 jest-watcher: 29.5.0 jest-worker: 29.7.0 p-limit: 3.1.0 @@ -12590,7 +12586,7 @@ packages: '@jest/source-map': 29.4.3 '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 20.9.4 chalk: 4.1.2 cjs-module-lexer: 1.2.2 @@ -12598,12 +12594,12 @@ packages: glob: 7.2.3 graceful-fs: 4.2.10 jest-haste-map: 29.5.0 - jest-message-util: 29.5.0 + jest-message-util: 29.7.0 jest-mock: 29.5.0 jest-regex-util: 29.4.3 jest-resolve: 29.5.0 jest-snapshot: 29.7.0 - jest-util: 29.5.0 + jest-util: 29.7.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: @@ -12651,7 +12647,7 @@ packages: resolution: {integrity: sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 20.9.4 chalk: 4.1.2 ci-info: 3.3.2 @@ -12663,7 +12659,7 @@ packages: resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 20.9.4 chalk: 4.1.2 ci-info: 3.3.2 @@ -12687,7 +12683,7 @@ packages: resolution: {integrity: sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 camelcase: 6.3.0 chalk: 4.1.2 jest-get-type: 29.6.3 @@ -12700,12 +12696,12 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 20.9.4 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.5.0 + jest-util: 29.7.0 string-length: 4.0.2 dev: true @@ -12928,7 +12924,7 @@ packages: dependencies: klona: 2.0.6 less: 4.1.3 - webpack: 5.89.0(@swc/core@1.3.99)(webpack-cli@4.10.0) + webpack: 5.89.0(@swc/core@1.3.23)(webpack-cli@4.10.0) dev: true /less@4.1.3: @@ -13367,6 +13363,13 @@ packages: dependencies: fs-monkey: 1.0.3 + /memfs@3.6.0: + resolution: {integrity: sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ==} + engines: {node: '>= 4.0.0'} + deprecated: this will be v4 + dependencies: + fs-monkey: 1.0.5 + /memorystream@0.3.1: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} @@ -14335,7 +14338,7 @@ packages: klona: 2.0.5 postcss: 8.4.31 semver: 7.3.8 - webpack: 5.89.0(@swc/core@1.3.99)(webpack-cli@4.10.0) + webpack: 5.89.0(@swc/core@1.3.23)(webpack-cli@4.10.0) dev: true /postcss-loader@7.3.3(postcss@8.4.21)(webpack@5.89.0): @@ -17649,7 +17652,7 @@ packages: webpack: ^4.0.0 || ^5.0.0 dependencies: colorette: 2.0.19 - memfs: 3.4.12 + memfs: 3.6.0 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.0.1 @@ -17663,7 +17666,7 @@ packages: webpack: ^4.0.0 || ^5.0.0 dependencies: colorette: 2.0.19 - memfs: 3.4.12 + memfs: 3.6.0 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.0.1 @@ -17840,8 +17843,8 @@ packages: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/wasm-edit': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 - acorn: 8.11.2 - acorn-import-assertions: 1.9.0(acorn@8.11.2) + acorn: 8.8.2 + acorn-import-assertions: 1.9.0(acorn@8.8.2) browserslist: 4.21.10 chrome-trace-event: 1.0.3 enhanced-resolve: 5.12.0