From 223c4438ab76bd7ae5b55d8b5b0f26b916ec3f28 Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Wed, 22 Feb 2023 17:05:44 +0100 Subject: [PATCH 1/9] separate app and pages structure extraction from source generation (#3912) We need to invalidate router node.js process when routes change for correctness In future we can pass the routes list to next.js instead of only invalidating @jridgewell We also need the separated structure for next build @alexkirsz --- crates/next-core/src/app_source.rs | 271 ++++----------- crates/next-core/src/app_structure.rs | 327 ++++++++++++++++++ crates/next-core/src/lib.rs | 2 + crates/next-core/src/next_config.rs | 3 +- crates/next-core/src/page_source.rs | 194 +++++------ crates/next-core/src/pages_structure.rs | 234 +++++++++++++ crates/next-core/src/router.rs | 4 +- crates/next-core/src/router_source.rs | 6 +- crates/next-dev/src/lib.rs | 30 +- crates/turbo-tasks/src/completion.rs | 10 + crates/turbopack-node/src/evaluate.rs | 4 + .../turbopack-node/src/transforms/postcss.rs | 3 +- .../turbopack-node/src/transforms/webpack.rs | 3 +- 13 files changed, 757 insertions(+), 334 deletions(-) create mode 100644 crates/next-core/src/app_structure.rs create mode 100644 crates/next-core/src/pages_structure.rs diff --git a/crates/next-core/src/app_source.rs b/crates/next-core/src/app_source.rs index a2ae2a7f0df2d..01c5600cce726 100644 --- a/crates/next-core/src/app_source.rs +++ b/crates/next-core/src/app_source.rs @@ -4,15 +4,9 @@ use std::{ }; use anyhow::{anyhow, Result}; -use turbo_tasks::{ - primitives::{StringVc, StringsVc}, - TryJoinIterExt, Value, ValueToString, -}; +use turbo_tasks::{TryJoinIterExt, Value, ValueToString}; use turbo_tasks_env::ProcessEnvVc; -use turbo_tasks_fs::{ - rope::RopeBuilder, DirectoryContent, DirectoryEntry, File, FileContent, FileContentVc, - FileSystemEntryType, FileSystemPathVc, -}; +use turbo_tasks_fs::{rebase, rope::RopeBuilder, File, FileContent, FileSystemPathVc}; use turbopack::{ ecmascript::EcmascriptInputTransform, transition::{TransitionVc, TransitionsByNameVc}, @@ -23,15 +17,12 @@ use turbopack_core::{ compile_time_info::CompileTimeInfoVc, context::{AssetContext, AssetContextVc}, environment::ServerAddrVc, - issue::{Issue, IssueSeverity, IssueSeverityVc, IssueVc}, virtual_asset::VirtualAssetVc, }; use turbopack_dev_server::{ html::DevHtmlAssetVc, source::{ - combined::{CombinedContentSource, CombinedContentSourceVc}, - specificity::SpecificityVc, - ContentSourceData, ContentSourceVc, NoContentSourceVc, + combined::CombinedContentSource, ContentSourceData, ContentSourceVc, NoContentSourceVc, }, }; use turbopack_ecmascript::{ @@ -48,6 +39,7 @@ use crate::{ app_render::{ next_layout_entry_transition::NextLayoutEntryTransition, LayoutSegment, LayoutSegmentsVc, }, + app_structure::{AppStructure, AppStructureItem, AppStructureVc, OptionAppStructureVc}, embed_js::{next_js_file, wrap_with_next_js_fs}, env::env_for_js, fallback::get_fallback_page, @@ -252,6 +244,7 @@ fn app_context( /// Next.js app folder. #[turbo_tasks::function] pub async fn create_app_source( + app_structure: OptionAppStructureVc, project_path: FileSystemPathVc, execution_context: ExecutionContextVc, output_path: FileSystemPathVc, @@ -263,21 +256,11 @@ pub async fn create_app_source( ) -> Result { let project_path = wrap_with_next_js_fs(project_path); - if !*next_config.app_dir().await? { + let Some(app_structure) = *app_structure.await? else { return Ok(NoContentSourceVc::new().into()); - } + }; + let app_dir = app_structure.directory(); - let app = project_path.join("app"); - let src_app = project_path.join("src/app"); - let app_dir = if *app.get_type().await? == FileSystemEntryType::Directory { - app - } else if *src_app.get_type().await? == FileSystemEntryType::Directory { - src_app - } else { - return Ok(NoContentSourceVc::new().into()); - } - .resolve() - .await?; let client_compile_time_info = get_client_compile_time_info(browserslist_query); let context_ssr = app_context( @@ -319,193 +302,102 @@ pub async fn create_app_source( ); Ok(create_app_source_for_directory( + app_structure, context_ssr, context, project_path, - SpecificityVc::exact(), - 0, - app_dir, - next_config.page_extensions(), server_root, EcmascriptChunkPlaceablesVc::cell(server_runtime_entries), fallback_page, - server_root, - server_root, - LayoutSegmentsVc::cell(Vec::new()), output_path, - ) - .into()) + )) } #[allow(clippy::too_many_arguments)] #[turbo_tasks::function] async fn create_app_source_for_directory( + app_structure: AppStructureVc, context_ssr: AssetContextVc, context: AssetContextVc, project_path: FileSystemPathVc, - specificity: SpecificityVc, - position: u32, - input_dir: FileSystemPathVc, - page_extensions: StringsVc, server_root: FileSystemPathVc, runtime_entries: EcmascriptChunkPlaceablesVc, fallback_page: DevHtmlAssetVc, - target: FileSystemPathVc, - url: FileSystemPathVc, - layouts: LayoutSegmentsVc, - intermediate_output_path: FileSystemPathVc, -) -> Result { - let mut layouts = layouts; + intermediate_output_path_root: FileSystemPathVc, +) -> Result { + let AppStructure { + item, + ref children, + directory, + } = *app_structure.await?; let mut sources = Vec::new(); - let mut page = None; - let mut files = HashMap::new(); - let DirectoryContent::Entries(entries) = &*input_dir.read_dir().await? else { - return Ok(CombinedContentSource { sources }.cell()); - }; - - let allowed_extensions = &*page_extensions.await?; - - for (name, entry) in entries.iter() { - if let &DirectoryEntry::File(file) = entry { - if let Some((name, ext)) = name.rsplit_once('.') { - if !allowed_extensions.iter().any(|allowed| allowed == ext) { - continue; - } - - match name { - "page" => { - page = Some(file); - } - "layout" | "error" | "loading" | "template" | "not-found" | "head" => { - files.insert(name.to_string(), file); - } - _ => { - // Any other file is ignored + if let Some(item) = item { + match *item.await? { + AppStructureItem::Page { + segment, + url, + specificity, + page, + segments: layouts, + } => { + let LayoutSegment { target, .. } = *segment.await?; + let pathname = pathname_for_path(server_root, url, false); + let params_matcher = NextParamsMatcherVc::new(pathname); + + sources.push(create_node_rendered_source( + project_path, + specificity, + server_root, + params_matcher.into(), + pathname, + AppRenderer { + context_ssr, + context, + server_root, + layout_path: layouts, + page_path: page, + target, + project_path, + intermediate_output_path: rebase( + directory, + project_path, + intermediate_output_path_root, + ), } - } + .cell() + .into(), + runtime_entries, + fallback_page, + )); } } } - let layout = files.get("layout"); - - // If a page exists but no layout exists, create a basic root layout - // in `app/layout.js` or `app/layout.tsx`. - // - // TODO: Use let Some(page_file) = page in expression below when - // https://rust-lang.github.io/rfcs/2497-if-let-chains.html lands - if let (Some(page_file), None, true) = (page, layout, target == server_root) { - // Use the extension to determine if the page file is TypeScript. - // TODO: Use the presence of a tsconfig.json instead, like Next.js - // stable does. - let is_tsx = *page_file.extension().await? == "tsx"; - - let layout = if is_tsx { - input_dir.join("layout.tsx") + if children.is_empty() { + if let Some(source) = sources.into_iter().next() { + return Ok(source); } else { - input_dir.join("layout.js") - }; - files.insert("layout".to_string(), layout); - let content = if is_tsx { - include_str!("assets/layout.tsx") - } else { - include_str!("assets/layout.js") - }; - - layout.write(FileContentVc::from(File::from(content))); - - AppSourceIssue { - severity: IssueSeverity::Warning.into(), - path: page_file, - message: StringVc::cell(format!( - "Your page {} did not have a root layout, we created {} for you.", - page_file.await?.path, - layout.await?.path, - )), + return Ok(NoContentSourceVc::new().into()); } - .cell() - .as_issue() - .emit(); - } - - let mut list = layouts.await?.clone_value(); - list.push(LayoutSegment { files, target }.cell()); - layouts = LayoutSegmentsVc::cell(list); - - if let Some(page_path) = page { - let pathname = pathname_for_path(server_root, url, false); - let params_matcher = NextParamsMatcherVc::new(pathname); - - sources.push(create_node_rendered_source( - project_path, - specificity, - server_root, - params_matcher.into(), - pathname, - AppRenderer { - context_ssr, - context, - server_root, - layout_path: layouts, - page_path, - target, - project_path, - intermediate_output_path, - } - .cell() - .into(), - runtime_entries, - fallback_page, - )); } - - for (name, entry) in entries.iter() { - let DirectoryEntry::Directory(dir) = entry else { - continue; - }; - - let intermediate_output_path = intermediate_output_path.join(name); - - let specificity = if name.starts_with("[[") || name.starts_with("[...") { - specificity.with_catch_all(position) - } else if name.starts_with('[') { - specificity.with_dynamic_segment(position) - } else { - specificity - }; - - let new_target = target.join(name); - let (new_url, position) = if name.starts_with('(') && name.ends_with(')') { - // This doesn't affect the url - (url, position) - } else { - // This adds to the url - (url.join(name), position + 1) - }; - + for child in children.iter() { sources.push( create_app_source_for_directory( + *child, context_ssr, context, project_path, - specificity, - position, - *dir, - page_extensions, server_root, runtime_entries, fallback_page, - new_target, - new_url, - layouts, - intermediate_output_path, + intermediate_output_path_root, ) .into(), ); } - Ok(CombinedContentSource { sources }.cell()) + Ok(CombinedContentSource { sources }.cell().into()) } #[turbo_tasks::value] @@ -689,40 +581,3 @@ impl NodeEntry for AppRenderer { self_vc.entry(is_rsc) } } - -#[turbo_tasks::value(shared)] -struct AppSourceIssue { - pub severity: IssueSeverityVc, - pub path: FileSystemPathVc, - pub message: StringVc, -} - -#[turbo_tasks::value_impl] -impl Issue for AppSourceIssue { - #[turbo_tasks::function] - fn severity(&self) -> IssueSeverityVc { - self.severity - } - - #[turbo_tasks::function] - async fn title(&self) -> Result { - Ok(StringVc::cell( - "An issue occurred while preparing your Next.js app".to_string(), - )) - } - - #[turbo_tasks::function] - fn category(&self) -> StringVc { - StringVc::cell("next app".to_string()) - } - - #[turbo_tasks::function] - fn context(&self) -> FileSystemPathVc { - self.path - } - - #[turbo_tasks::function] - fn description(&self) -> StringVc { - self.message - } -} diff --git a/crates/next-core/src/app_structure.rs b/crates/next-core/src/app_structure.rs new file mode 100644 index 0000000000000..008249bbc8eab --- /dev/null +++ b/crates/next-core/src/app_structure.rs @@ -0,0 +1,327 @@ +use std::collections::HashMap; + +use anyhow::{bail, Result}; +use turbo_tasks::{ + primitives::{StringVc, StringsVc}, + CompletionVc, ValueToString, +}; +use turbo_tasks_fs::{ + DirectoryContent, DirectoryEntry, File, FileContentVc, FileSystemEntryType, FileSystemPathVc, +}; +use turbopack_core::issue::{Issue, IssueSeverity, IssueSeverityVc, IssueVc}; +use turbopack_dev_server::source::specificity::SpecificityVc; + +use crate::{ + app_render::{LayoutSegment, LayoutSegmentVc, LayoutSegmentsVc}, + embed_js::wrap_with_next_js_fs, + next_config::NextConfigVc, +}; + +/// A final route in the app directory. +#[turbo_tasks::value] +pub enum AppStructureItem { + Page { + segment: LayoutSegmentVc, + segments: LayoutSegmentsVc, + url: FileSystemPathVc, + specificity: SpecificityVc, + page: FileSystemPathVc, + }, +} + +#[turbo_tasks::value_impl] +impl AppStructureItemVc { + #[turbo_tasks::function] + pub async fn routes_changed(self) -> Result { + match *self.await? { + AppStructureItem::Page { url, .. } => url.await?, + }; + Ok(CompletionVc::new()) + } +} + +/// A (sub)directory in the app directory with all analyzed routes and folders. +#[turbo_tasks::value] +pub struct AppStructure { + pub directory: FileSystemPathVc, + pub item: Option, + pub children: Vec, +} + +#[turbo_tasks::value_impl] +impl AppStructureVc { + /// Returns the directory of this structure. + #[turbo_tasks::function] + pub async fn directory(self) -> Result { + Ok(self.await?.directory) + } + + /// Returns a completion that changes when any route in the whole tree + /// changes. + #[turbo_tasks::function] + pub async fn routes_changed(self) -> Result { + if let Some(item) = self.await?.item { + item.routes_changed().await?; + } + for child in self.await?.children.iter() { + child.routes_changed().await?; + } + Ok(CompletionVc::new()) + } +} + +#[turbo_tasks::value(transparent)] +pub struct OptionAppStructure(Option); + +#[turbo_tasks::value_impl] +impl OptionAppStructureVc { + /// Returns a completion that changes when any route in the whole tree + /// changes. + #[turbo_tasks::function] + pub async fn routes_changed(self) -> Result { + if let Some(app_structure) = *self.await? { + app_structure.routes_changed().await?; + } + Ok(CompletionVc::new()) + } +} + +/// Finds and returns the [AppStructure] of the app directory if enabled and +/// existing. +#[turbo_tasks::function] +pub async fn find_app_structure( + project_path: FileSystemPathVc, + server_root: FileSystemPathVc, + next_config: NextConfigVc, +) -> Result { + let project_path = wrap_with_next_js_fs(project_path); + + if !*next_config.app_dir().await? { + return Ok(OptionAppStructureVc::cell(None)); + } + + let app = project_path.join("app"); + let src_app = project_path.join("src/app"); + let app_dir = if *app.get_type().await? == FileSystemEntryType::Directory { + app + } else if *src_app.get_type().await? == FileSystemEntryType::Directory { + src_app + } else { + return Ok(OptionAppStructureVc::cell(None)); + } + .resolve() + .await?; + + Ok(OptionAppStructureVc::cell(Some(get_app_structure( + app_dir, + server_root, + next_config.page_extensions(), + )))) +} + +/// Parses a directory as app directory and returns the [AppStructure]. +#[turbo_tasks::function] +pub fn get_app_structure( + app_dir: FileSystemPathVc, + server_root: FileSystemPathVc, + page_extensions: StringsVc, +) -> AppStructureVc { + get_app_structure_for_directory( + app_dir, + true, + SpecificityVc::exact(), + 0, + server_root, + server_root, + LayoutSegmentsVc::cell(Vec::new()), + page_extensions, + ) +} + +#[allow(clippy::too_many_arguments)] +#[turbo_tasks::function] +async fn get_app_structure_for_directory( + input_dir: FileSystemPathVc, + root: bool, + specificity: SpecificityVc, + position: u32, + target: FileSystemPathVc, + url: FileSystemPathVc, + layouts: LayoutSegmentsVc, + page_extensions: StringsVc, +) -> Result { + let mut layouts = layouts; + let mut page = None; + let mut files = HashMap::new(); + + let DirectoryContent::Entries(entries) = &*input_dir.read_dir().await? else { + bail!("{} is not a directory", input_dir.to_string().await?) + }; + + let allowed_extensions = &*page_extensions.await?; + + for (name, entry) in entries.iter() { + if let &DirectoryEntry::File(file) = entry { + if let Some((name, ext)) = name.rsplit_once('.') { + if !allowed_extensions.iter().any(|allowed| allowed == ext) { + continue; + } + + match name { + "page" => { + page = Some(file); + } + "layout" | "error" | "loading" | "template" | "not-found" | "head" => { + files.insert(name.to_string(), file); + } + _ => { + // Any other file is ignored + } + } + } + } + } + + let layout = files.get("layout"); + + // If a page exists but no layout exists, create a basic root layout + // in `app/layout.js` or `app/layout.tsx`. + // + // TODO: Use let Some(page_file) = page in expression below when + // https://rust-lang.github.io/rfcs/2497-if-let-chains.html lands + if let (Some(page_file), None, true) = (page, layout, root) { + // Use the extension to determine if the page file is TypeScript. + // TODO: Use the presence of a tsconfig.json instead, like Next.js + // stable does. + let is_tsx = *page_file.extension().await? == "tsx"; + + let layout = if is_tsx { + input_dir.join("layout.tsx") + } else { + input_dir.join("layout.js") + }; + files.insert("layout".to_string(), layout); + let content = if is_tsx { + include_str!("assets/layout.tsx") + } else { + include_str!("assets/layout.js") + }; + + layout.write(FileContentVc::from(File::from(content))); + + AppStructureIssue { + severity: IssueSeverity::Warning.into(), + path: page_file, + message: StringVc::cell(format!( + "Your page {} did not have a root layout, we created {} for you.", + page_file.await?.path, + layout.await?.path, + )), + } + .cell() + .as_issue() + .emit(); + } + + let mut list = layouts.await?.clone_value(); + let segment = LayoutSegment { files, target }.cell(); + list.push(segment); + layouts = LayoutSegmentsVc::cell(list); + + let mut children = Vec::new(); + for (name, entry) in entries.iter() { + let DirectoryEntry::Directory(dir) = entry else { + continue; + }; + + let specificity = if name.starts_with("[[") || name.starts_with("[...") { + specificity.with_catch_all(position) + } else if name.starts_with('[') { + specificity.with_dynamic_segment(position) + } else { + specificity + }; + + let new_target = target.join(name); + let (new_root, new_url, position) = if name.starts_with('(') && name.ends_with(')') { + // This doesn't affect the url + (root, url, position) + } else { + // This adds to the url + (false, url.join(name), position + 1) + }; + + children.push(( + name, + get_app_structure_for_directory( + *dir, + new_root, + specificity, + position, + new_target, + new_url, + layouts, + page_extensions, + ) + .into(), + )); + } + + let item = page.map(|page| { + AppStructureItem::Page { + page, + segment, + segments: layouts, + url, + specificity, + } + .cell() + }); + + // Ensure deterministic order since read_dir is not deterministic + children.sort_by_key(|(k, _)| *k); + + Ok(AppStructure { + item, + directory: input_dir, + children: children.into_iter().map(|(_, v)| v).collect(), + } + .cell()) +} + +#[turbo_tasks::value(shared)] +struct AppStructureIssue { + pub severity: IssueSeverityVc, + pub path: FileSystemPathVc, + pub message: StringVc, +} + +#[turbo_tasks::value_impl] +impl Issue for AppStructureIssue { + #[turbo_tasks::function] + fn severity(&self) -> IssueSeverityVc { + self.severity + } + + #[turbo_tasks::function] + async fn title(&self) -> Result { + Ok(StringVc::cell( + "An issue occurred while preparing your Next.js app".to_string(), + )) + } + + #[turbo_tasks::function] + fn category(&self) -> StringVc { + StringVc::cell("next app".to_string()) + } + + #[turbo_tasks::function] + fn context(&self) -> FileSystemPathVc { + self.path + } + + #[turbo_tasks::function] + fn description(&self) -> StringVc { + self.message + } +} diff --git a/crates/next-core/src/lib.rs b/crates/next-core/src/lib.rs index ae736e5df9a1f..999c13e5b19da 100644 --- a/crates/next-core/src/lib.rs +++ b/crates/next-core/src/lib.rs @@ -3,6 +3,7 @@ mod app_render; mod app_source; +pub mod app_structure; mod embed_js; pub mod env; mod fallback; @@ -21,6 +22,7 @@ pub mod next_server; pub mod next_shared; mod page_loader; mod page_source; +pub mod pages_structure; pub mod react_refresh; pub mod router; pub mod router_source; diff --git a/crates/next-core/src/next_config.rs b/crates/next-core/src/next_config.rs index 5cb869be7dbff..801bf833d3fbc 100644 --- a/crates/next-core/src/next_config.rs +++ b/crates/next-core/src/next_config.rs @@ -5,7 +5,7 @@ use serde_json::Value as JsonValue; use turbo_tasks::{ primitives::{BoolVc, StringsVc}, trace::TraceRawVcs, - Value, + CompletionVc, Value, }; use turbo_tasks_env::EnvMapVc; use turbo_tasks_fs::json::parse_json_rope_with_source_context; @@ -581,6 +581,7 @@ pub async fn load_next_config(execution_context: ExecutionContextVc) -> Result Result { let project_path = wrap_with_next_js_fs(project_root); - let pages = project_path.join("pages"); - let src_pages = project_path.join("src/pages"); - let pages_dir = if *pages.get_type().await? == FileSystemEntryType::Directory { - pages - } else if *src_pages.get_type().await? == FileSystemEntryType::Directory { - src_pages - } else { + let Some(pages_structure) = *pages_structure.await? else { return Ok(NoContentSourceVc::new().into()); - } - .resolve() - .await?; + }; + let pages_dir = pages_structure.directory().resolve().await?; let client_ty = Value::new(ClientContextType::Pages { pages_dir }); let server_ty = Value::new(ServerContextType::Pages { pages_dir }); @@ -264,21 +259,15 @@ pub async fn create_page_source( NextFallbackMatcherVc::new().into(), ); let page_source = create_page_source_for_directory( + pages_structure, project_path, server_context, server_data_context, client_context, pages_dir, - page_extensions, - SpecificityVc::exact(), - 0, - pages_dir, server_runtime_entries, fallback_page, server_root, - server_root, - server_root.join("api"), - output_path, output_path, ); let fallback_source = @@ -288,7 +277,7 @@ pub async fn create_page_source( sources: vec![ // Match _next/404 first to ensure rewrites work properly. force_not_found_source, - page_source.into(), + page_source, fallback_source.into(), fallback_not_found_source, ], @@ -311,7 +300,7 @@ async fn create_page_source_for_file( fallback_page: DevHtmlAssetVc, server_root: FileSystemPathVc, server_path: FileSystemPathVc, - is_api_path: BoolVc, + is_api_path: bool, intermediate_output_path: FileSystemPathVc, output_root: FileSystemPathVc, ) -> Result { @@ -362,7 +351,7 @@ async fn create_page_source_for_file( let page_config = parse_config_from_source(entry_asset); - Ok(if *is_api_path.await? { + Ok(if is_api_path { let ty = if page_config.await?.runtime == NextRuntime::Edge { SsrType::EdgeApi } else { @@ -555,110 +544,89 @@ async fn create_not_found_page_source( /// [create_page_source_for_file] method for files. #[turbo_tasks::function] async fn create_page_source_for_directory( + pages_structure: PagesStructureVc, project_path: FileSystemPathVc, server_context: AssetContextVc, server_data_context: AssetContextVc, client_context: AssetContextVc, pages_dir: FileSystemPathVc, - page_extensions: StringsVc, - specificity: SpecificityVc, - position: u32, - input_dir: FileSystemPathVc, runtime_entries: EcmascriptChunkPlaceablesVc, fallback_page: DevHtmlAssetVc, server_root: FileSystemPathVc, - server_path: FileSystemPathVc, - server_api_path: FileSystemPathVc, - intermediate_output_path: FileSystemPathVc, output_root: FileSystemPathVc, -) -> Result { - let page_extensions_raw = &*page_extensions.await?; - +) -> Result { + let PagesStructure { + ref items, + ref children, + .. + } = *pages_structure.await?; let mut sources = vec![]; - let dir_content = input_dir.read_dir().await?; - if let DirectoryContent::Entries(entries) = &*dir_content { - for (name, entry) in entries.iter() { - let specificity = if name.starts_with("[[") || name.starts_with("[...") { - specificity.with_catch_all(position) - } else if name.starts_with('[') { - specificity.with_dynamic_segment(position) - } else { - specificity - }; - match entry { - DirectoryEntry::File(file) => { - if let Some((basename, extension)) = name.rsplit_once('.') { - if page_extensions_raw - .iter() - .any(|allowed| allowed == extension) - { - let (dev_server_path, intermediate_output_path) = if basename == "index" - { - (server_path.join("index.html"), intermediate_output_path) - } else { - ( - server_path.join(basename).join("index.html"), - intermediate_output_path.join(basename), - ) - }; - sources.push(( - name, - create_page_source_for_file( - project_path, - server_context, - server_data_context, - client_context, - pages_dir, - specificity, - SourceAssetVc::new(*file).into(), - runtime_entries, - fallback_page, - server_root, - dev_server_path, - dev_server_path.is_inside(server_api_path), - intermediate_output_path, - output_root, - ), - )); - } - } - } - DirectoryEntry::Directory(dir) => { - sources.push(( - name, - create_page_source_for_directory( - project_path, - server_context, - server_data_context, - client_context, - pages_dir, - page_extensions, - specificity, - position + 1, - *dir, - runtime_entries, - fallback_page, - server_root, - server_path.join(name), - server_api_path, - intermediate_output_path.join(name), - output_root, - ) - .into(), - )); - } - _ => {} + + for item in items.iter() { + match *item.await? { + PagesStructureItem::Page { + page, + specificity, + url, + } => { + sources.push(create_page_source_for_file( + project_path, + server_context, + server_data_context, + client_context, + pages_dir, + specificity, + SourceAssetVc::new(page).into(), + runtime_entries, + fallback_page, + server_root, + url, + false, + rebase(page, project_path, output_root), + output_root, + )); + } + PagesStructureItem::Api { + api, + specificity, + url, + } => { + sources.push(create_page_source_for_file( + project_path, + server_context, + server_data_context, + client_context, + pages_dir, + specificity, + SourceAssetVc::new(api).into(), + runtime_entries, + fallback_page, + server_root, + url, + true, + rebase(api, project_path, output_root), + output_root, + )); } } } - // Ensure deterministic order since read_dir is not deterministic - sources.sort_by_key(|(k, _)| *k); - - Ok(CombinedContentSource { - sources: sources.into_iter().map(|(_, v)| v).collect(), + for child in children.iter() { + sources.push(create_page_source_for_directory( + *child, + project_path, + server_context, + server_data_context, + client_context, + pages_dir, + runtime_entries, + fallback_page, + server_root, + output_root, + )) } - .cell()) + + Ok(CombinedContentSource { sources }.cell().into()) } #[derive( diff --git a/crates/next-core/src/pages_structure.rs b/crates/next-core/src/pages_structure.rs new file mode 100644 index 0000000000000..fd8f824339f10 --- /dev/null +++ b/crates/next-core/src/pages_structure.rs @@ -0,0 +1,234 @@ +use anyhow::Result; +use turbo_tasks::{ + primitives::{BoolVc, StringsVc}, + CompletionVc, +}; +use turbo_tasks_fs::{DirectoryContent, DirectoryEntry, FileSystemEntryType, FileSystemPathVc}; +use turbopack_dev_server::source::specificity::SpecificityVc; + +use crate::{embed_js::wrap_with_next_js_fs, next_config::NextConfigVc}; + +/// A final route in the pages directory. +#[turbo_tasks::value] +pub enum PagesStructureItem { + Page { + url: FileSystemPathVc, + specificity: SpecificityVc, + page: FileSystemPathVc, + }, + Api { + url: FileSystemPathVc, + specificity: SpecificityVc, + api: FileSystemPathVc, + }, +} + +#[turbo_tasks::value_impl] +impl PagesStructureItemVc { + #[turbo_tasks::function] + async fn new( + url: FileSystemPathVc, + specificity: SpecificityVc, + file: FileSystemPathVc, + is_api: BoolVc, + ) -> Result { + if *is_api.await? { + Ok(PagesStructureItem::Api { + url, + specificity, + api: file, + } + .cell()) + } else { + Ok(PagesStructureItem::Page { + url, + specificity, + page: file, + } + .cell()) + } + } + + /// Returns a completion that changes when any route in the whole tree + /// changes. + #[turbo_tasks::function] + pub async fn routes_changed(self) -> Result { + match *self.await? { + PagesStructureItem::Page { url, .. } => url.await?, + PagesStructureItem::Api { url, .. } => url.await?, + }; + Ok(CompletionVc::new()) + } +} + +/// A (sub)directory in the pages directory with all analyzed routes and +/// folders. +#[turbo_tasks::value] +pub struct PagesStructure { + pub directory: FileSystemPathVc, + pub items: Vec, + pub children: Vec, +} + +#[turbo_tasks::value_impl] +impl PagesStructureVc { + /// Returns the directory of this structure. + #[turbo_tasks::function] + pub async fn directory(self) -> Result { + Ok(self.await?.directory) + } + + /// Returns a completion that changes when any route in the whole tree + /// changes. + #[turbo_tasks::function] + pub async fn routes_changed(self) -> Result { + for item in self.await?.items.iter() { + item.routes_changed().await?; + } + for child in self.await?.children.iter() { + child.routes_changed().await?; + } + Ok(CompletionVc::new()) + } +} + +#[turbo_tasks::value(transparent)] +pub struct OptionPagesStructure(Option); + +#[turbo_tasks::value_impl] +impl OptionPagesStructureVc { + #[turbo_tasks::function] + pub async fn routes_changed(self) -> Result { + if let Some(pages_structure) = *self.await? { + pages_structure.routes_changed().await?; + } + Ok(CompletionVc::new()) + } +} + +/// Finds and returns the [PagesStructure] of the pages directory if existing. +#[turbo_tasks::function] +pub async fn find_pages_structure( + project_path: FileSystemPathVc, + server_root: FileSystemPathVc, + next_config: NextConfigVc, +) -> Result { + let project_path = wrap_with_next_js_fs(project_path); + + let pages = project_path.join("pages"); + let src_pages = project_path.join("src/pages"); + let pages_dir = if *pages.get_type().await? == FileSystemEntryType::Directory { + pages + } else if *src_pages.get_type().await? == FileSystemEntryType::Directory { + src_pages + } else { + return Ok(OptionPagesStructureVc::cell(None)); + } + .resolve() + .await?; + + Ok(OptionPagesStructureVc::cell(Some(get_pages_structure( + pages_dir, + server_root, + next_config.page_extensions(), + )))) +} + +/// Parses a directory as pages directory and returns the [PagesStructure]. +#[turbo_tasks::function] +pub fn get_pages_structure( + pages_dir: FileSystemPathVc, + server_root: FileSystemPathVc, + page_extensions: StringsVc, +) -> PagesStructureVc { + get_pages_structure_for_directory( + pages_dir, + SpecificityVc::exact(), + 0, + server_root, + server_root.join("api"), + page_extensions, + ) +} + +/// Handles a directory in the pages directory (or the pages directory itself). +/// Calls itself recursively for sub directories or the +/// [create_page_source_for_file] method for files. +#[turbo_tasks::function] +async fn get_pages_structure_for_directory( + input_dir: FileSystemPathVc, + specificity: SpecificityVc, + position: u32, + url: FileSystemPathVc, + server_api_path: FileSystemPathVc, + page_extensions: StringsVc, +) -> Result { + let page_extensions_raw = &*page_extensions.await?; + + let mut children = vec![]; + let mut items = vec![]; + let dir_content = input_dir.read_dir().await?; + if let DirectoryContent::Entries(entries) = &*dir_content { + for (name, entry) in entries.iter() { + let specificity = if name.starts_with("[[") || name.starts_with("[...") { + specificity.with_catch_all(position) + } else if name.starts_with('[') { + specificity.with_dynamic_segment(position) + } else { + specificity + }; + match entry { + DirectoryEntry::File(file) => { + if let Some((basename, extension)) = name.rsplit_once('.') { + if page_extensions_raw + .iter() + .any(|allowed| allowed == extension) + { + let url = if basename == "index" { + url.join("index.html") + } else { + url.join(basename).join("index.html") + }; + items.push(( + name, + PagesStructureItemVc::new( + url, + specificity, + *file, + url.is_inside(server_api_path), + ), + )) + } + } + } + DirectoryEntry::Directory(dir) => { + children.push(( + name, + get_pages_structure_for_directory( + *dir, + specificity, + position + 1, + url.join(name), + server_api_path, + page_extensions, + ), + )); + } + _ => {} + } + } + } + + // Ensure deterministic order since read_dir is not deterministic + items.sort_by_key(|(k, _)| *k); + + // Ensure deterministic order since read_dir is not deterministic + children.sort_by_key(|(k, _)| *k); + + Ok(PagesStructure { + directory: input_dir, + items: items.into_iter().map(|(_, v)| v).collect(), + children: children.into_iter().map(|(_, v)| v).collect(), + } + .cell()) +} diff --git a/crates/next-core/src/router.rs b/crates/next-core/src/router.rs index 3ff856d9664c2..eadacca1d2cd5 100644 --- a/crates/next-core/src/router.rs +++ b/crates/next-core/src/router.rs @@ -4,7 +4,7 @@ use anyhow::{bail, Result}; use serde::Deserialize; use turbo_tasks::{ primitives::{JsonValueVc, StringsVc}, - Value, + CompletionVc, Value, }; use turbo_tasks_fs::{ json::parse_json_rope_with_source_context, to_sys_path, File, FileSystemPathVc, @@ -281,6 +281,7 @@ pub async fn route( request: RouterRequestVc, next_config: NextConfigVc, server_addr: ServerAddrVc, + routes_changed: CompletionVc, ) -> Result { let ExecutionContext { project_root, @@ -321,6 +322,7 @@ pub async fn route( JsonValueVc::cell(request), JsonValueVc::cell(dir.to_string_lossy().into()), ], + routes_changed, false, ) .await?; diff --git a/crates/next-core/src/router_source.rs b/crates/next-core/src/router_source.rs index 1f9eb98a1d556..66ae50c512fd6 100644 --- a/crates/next-core/src/router_source.rs +++ b/crates/next-core/src/router_source.rs @@ -1,6 +1,6 @@ use anyhow::Result; use indexmap::IndexSet; -use turbo_tasks::{primitives::StringVc, Value}; +use turbo_tasks::{primitives::StringVc, CompletionVc, Value}; use turbopack_core::{ environment::ServerAddrVc, introspect::{Introspectable, IntrospectableChildrenVc, IntrospectableVc}, @@ -23,6 +23,7 @@ pub struct NextRouterContentSource { execution_context: ExecutionContextVc, next_config: NextConfigVc, server_addr: ServerAddrVc, + routes_changed: CompletionVc, } #[turbo_tasks::value_impl] @@ -33,12 +34,14 @@ impl NextRouterContentSourceVc { execution_context: ExecutionContextVc, next_config: NextConfigVc, server_addr: ServerAddrVc, + routes_changed: CompletionVc, ) -> NextRouterContentSourceVc { NextRouterContentSource { inner, execution_context, next_config, server_addr, + routes_changed, } .cell() } @@ -93,6 +96,7 @@ impl ContentSource for NextRouterContentSource { request, this.next_config, this.server_addr, + this.routes_changed, ); let Ok(res) = res.await else { return Ok(this diff --git a/crates/next-dev/src/lib.rs b/crates/next-dev/src/lib.rs index 3ab973d769fea..7b2a49dd141a6 100644 --- a/crates/next-dev/src/lib.rs +++ b/crates/next-dev/src/lib.rs @@ -19,17 +19,18 @@ use anyhow::{anyhow, Context, Result}; use devserver_options::DevServerOptions; use dunce::canonicalize; use next_core::{ - create_app_source, create_page_source, create_web_entry_source, env::load_env, - manifest::DevManifestContentSource, next_config::load_next_config, - next_image::NextImageContentSourceVc, router_source::NextRouterContentSourceVc, + app_structure::find_app_structure, create_app_source, create_page_source, + create_web_entry_source, env::load_env, manifest::DevManifestContentSource, + next_config::load_next_config, next_image::NextImageContentSourceVc, + pages_structure::find_pages_structure, router_source::NextRouterContentSourceVc, source_map::NextSourceMapTraceContentSourceVc, }; use owo_colors::OwoColorize; use turbo_malloc::TurboMalloc; use turbo_tasks::{ util::{FormatBytes, FormatDuration}, - CollectiblesSource, RawVc, StatsType, TransientInstance, TransientValue, TurboTasks, - TurboTasksBackendApi, Value, + CollectiblesSource, CompletionsVc, RawVc, StatsType, TransientInstance, TransientValue, + TurboTasks, TurboTasksBackendApi, Value, }; use turbo_tasks_fs::{DiskFileSystemVc, FileSystem, FileSystemVc}; use turbo_tasks_memory::MemoryBackend; @@ -327,7 +328,9 @@ async fn source( &browserslist_query, next_config, ); + let pages_structure = find_pages_structure(project_path, dev_server_root, next_config); let page_source = create_page_source( + pages_structure, project_path, execution_context, output_root.join("pages"), @@ -337,7 +340,9 @@ async fn source( next_config, server_addr, ); + let app_structure = find_app_structure(project_path, dev_server_root, next_config); let app_source = create_app_source( + app_structure, project_path, execution_context, output_root.join("app"), @@ -379,9 +384,18 @@ async fn source( CombinedContentSourceVc::new(vec![static_source, page_source]).into(), ) .into(); - let router_source = - NextRouterContentSourceVc::new(main_source, execution_context, next_config, server_addr) - .into(); + let router_source = NextRouterContentSourceVc::new( + main_source, + execution_context, + next_config, + server_addr, + CompletionsVc::cell(vec![ + app_structure.routes_changed(), + pages_structure.routes_changed(), + ]) + .all(), + ) + .into(); let source = RouterContentSource { routes: vec![ ("__turbopack__/".to_string(), introspect), diff --git a/crates/turbo-tasks/src/completion.rs b/crates/turbo-tasks/src/completion.rs index 23e998324e9fa..4e62121eec944 100644 --- a/crates/turbo-tasks/src/completion.rs +++ b/crates/turbo-tasks/src/completion.rs @@ -14,9 +14,19 @@ impl Default for CompletionVc { } } +#[turbo_tasks::value_impl] +impl CompletionVc { + /// This will always be the same and never invalidates the reading task. + #[turbo_tasks::function] + pub fn immutable() -> Self { + CompletionVc::cell(Completion) + } +} + // no #[turbo_tasks::value_impl] to inline new into the caller task // this ensures it's re-created on each execution impl CompletionVc { + /// This will always be a new completion and invalidates the reading task. pub fn new() -> Self { CompletionVc::cell(Completion) } diff --git a/crates/turbopack-node/src/evaluate.rs b/crates/turbopack-node/src/evaluate.rs index 9c52b006d3fc2..ea44446514200 100644 --- a/crates/turbopack-node/src/evaluate.rs +++ b/crates/turbopack-node/src/evaluate.rs @@ -49,6 +49,7 @@ pub async fn get_evaluate_pool( context: AssetContextVc, intermediate_output_path: FileSystemPathVc, runtime_entries: Option, + additional_invalidation: CompletionVc, debug: bool, ) -> Result { let chunking_context = DevChunkingContextVc::builder( @@ -114,6 +115,7 @@ pub async fn get_evaluate_pool( available_parallelism().map_or(1, |v| v.get()), debug, ); + additional_invalidation.await?; Ok(pool.cell()) } @@ -150,6 +152,7 @@ pub async fn evaluate( intermediate_output_path: FileSystemPathVc, runtime_entries: Option, args: Vec, + additional_invalidation: CompletionVc, debug: bool, ) -> Result { let pool = get_evaluate_pool( @@ -159,6 +162,7 @@ pub async fn evaluate( context, intermediate_output_path, runtime_entries, + additional_invalidation, debug, ) .await?; diff --git a/crates/turbopack-node/src/transforms/postcss.rs b/crates/turbopack-node/src/transforms/postcss.rs index 95e016a71d41a..2ee412b64c826 100644 --- a/crates/turbopack-node/src/transforms/postcss.rs +++ b/crates/turbopack-node/src/transforms/postcss.rs @@ -4,7 +4,7 @@ use anyhow::{bail, Context, Result}; use serde::{Deserialize, Serialize}; use turbo_tasks::{ primitives::{JsonValueVc, StringsVc}, - TryJoinIterExt, Value, + CompletionVc, TryJoinIterExt, Value, }; use turbo_tasks_fs::{ json::parse_json_rope_with_source_context, File, FileContent, FileSystemEntryType, @@ -228,6 +228,7 @@ impl PostCssTransformedAssetVc { JsonValueVc::cell(content.into()), JsonValueVc::cell(css_path.into()), ], + CompletionVc::immutable(), /* debug */ false, ) .await?; diff --git a/crates/turbopack-node/src/transforms/webpack.rs b/crates/turbopack-node/src/transforms/webpack.rs index 010552e263f1b..41066c0473278 100644 --- a/crates/turbopack-node/src/transforms/webpack.rs +++ b/crates/turbopack-node/src/transforms/webpack.rs @@ -1,7 +1,7 @@ use anyhow::{bail, Context, Result}; use serde::{Deserialize, Serialize}; use serde_json::json; -use turbo_tasks::{primitives::JsonValueVc, trace::TraceRawVcs, Value}; +use turbo_tasks::{primitives::JsonValueVc, trace::TraceRawVcs, CompletionVc, Value}; use turbo_tasks_fs::{ json::parse_json_rope_with_source_context, File, FileContent, FileSystemPathVc, }; @@ -170,6 +170,7 @@ impl WebpackLoadersProcessedAssetVc { JsonValueVc::cell(resource_path.into()), JsonValueVc::cell(json!(*loaders)), ], + CompletionVc::immutable(), /* debug */ false, ) .await?; From 5d51a4843ec230245a96d98636607e54983efc76 Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Wed, 22 Feb 2023 17:19:43 +0100 Subject: [PATCH 2/9] add process.env.NODE_ENV support (#3670) define process.env.NODE_ENV to development for next-dev define and set `process.turbopack` --------- Co-authored-by: Will Binns-Smith --- Cargo.lock | 1 + crates/next-core/src/env.rs | 14 +- crates/next-core/src/next_client/context.rs | 12 +- crates/next-core/src/next_config.rs | 2 + crates/next-core/src/next_edge/context.rs | 12 +- crates/next-core/src/next_server/context.rs | 12 +- crates/next-core/src/router.rs | 2 + .../turbopack/basic/comptime/input/index.js | 12 +- .../basic/comptime/input/next.config.js | 17 + crates/next-dev/src/lib.rs | 2 +- crates/node-file-trace/src/lib.rs | 8 +- crates/turbo-tasks-env/src/filter.rs | 23 +- .../turbopack-core/src/compile_time_info.rs | 91 +- .../turbopack-ecmascript/benches/analyzer.rs | 3 +- .../turbopack-ecmascript/src/analyzer/mod.rs | 125 +- .../src/analyzer/well_known.rs | 51 +- .../src/references/mod.rs | 24 +- .../esbuild-reduced/resolved-effects.snapshot | 24 +- .../resolved-explained.snapshot | 48 +- .../graph/esbuild/resolved-effects.snapshot | 148 +- .../graph/esbuild/resolved-explained.snapshot | 44 +- .../graph/md5/resolved-effects.snapshot | 14 +- .../graph/md5_2/resolved-effects.snapshot | 3237 +++++------- .../graph/md5_2/resolved-explained.snapshot | 94 +- .../graph/peg/resolved-effects.snapshot | 130 +- .../resolved-effects.snapshot | 4652 +++++++++++------ .../resolved-explained.snapshot | 3448 ++++++++---- .../resolved-effects.snapshot | 9 +- .../resolved-explained.snapshot | 6 +- crates/turbopack-node/Cargo.toml | 1 + crates/turbopack-node/js/src/globals.ts | 2 + crates/turbopack-node/src/evaluate.rs | 31 +- .../turbopack-node/src/execution_context.rs | 10 +- .../turbopack-node/src/transforms/postcss.rs | 2 + .../turbopack-node/src/transforms/webpack.rs | 2 + crates/turbopack-tests/tests/snapshot.rs | 13 +- ...shot_comptime_define_input_index_7c0dc7.js | 18 +- ..._comptime_define_input_index_7c0dc7.js.map | 4 +- crates/turbopack/benches/node_file_trace.rs | 3 +- crates/turbopack/src/evaluate_context.rs | 23 +- 40 files changed, 7556 insertions(+), 4818 deletions(-) create mode 100644 crates/next-dev-tests/tests/integration/turbopack/basic/comptime/input/next.config.js create mode 100644 crates/turbopack-node/js/src/globals.ts diff --git a/Cargo.lock b/Cargo.lock index 11d021e9ceb7f..7d3683a58061d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7946,6 +7946,7 @@ dependencies = [ "tokio", "turbo-tasks", "turbo-tasks-build", + "turbo-tasks-env", "turbo-tasks-fs", "turbopack-core", "turbopack-dev-server", diff --git a/crates/next-core/src/env.rs b/crates/next-core/src/env.rs index 53085c63940a4..d10f7fb532330 100644 --- a/crates/next-core/src/env.rs +++ b/crates/next-core/src/env.rs @@ -18,6 +18,14 @@ pub async fn load_env(project_path: FileSystemPathVc) -> Result { let node_env = env.read("NODE_ENV").await?; let node_env = node_env.as_deref().unwrap_or("development"); + let env = CustomProcessEnvVc::new( + env, + EnvMapVc::cell(indexmap! { + "NODE_ENV".to_string() => node_env.to_string(), + }), + ) + .as_process_env(); + let files = [ Some(format!(".env.{node_env}.local")), if node_env == "test" { @@ -55,7 +63,11 @@ pub async fn env_for_js( let test_mode = test_mode.as_deref().unwrap_or(""); let env = if client { - FilterProcessEnvVc::new(env, "NEXT_PUBLIC_".to_string()).into() + FilterProcessEnvVc::new( + env, + vec!["NEXT_PUBLIC_".to_string(), "NODE_ENV".to_string()], + ) + .into() } else { env }; diff --git a/crates/next-core/src/next_client/context.rs b/crates/next-core/src/next_client/context.rs index 4c2bded99ae4a..09ff236048cd4 100644 --- a/crates/next-core/src/next_client/context.rs +++ b/crates/next-core/src/next_client/context.rs @@ -16,7 +16,8 @@ use turbopack::{ }; use turbopack_core::{ chunk::{dev::DevChunkingContextVc, ChunkingContextVc}, - compile_time_info::{CompileTimeInfo, CompileTimeInfoVc}, + compile_time_defines, + compile_time_info::{CompileTimeDefinesVc, CompileTimeInfo, CompileTimeInfoVc}, context::AssetContextVc, environment::{BrowserEnvironment, EnvironmentIntention, EnvironmentVc, ExecutionEnvironment}, resolve::{parse::RequestVc, pattern::Pattern}, @@ -39,6 +40,14 @@ use crate::{ util::foreign_code_context_condition, }; +pub fn next_client_defines() -> CompileTimeDefinesVc { + compile_time_defines!( + process.turbopack = true, + process.env.NODE_ENV = "development" + ) + .cell() +} + #[turbo_tasks::function] pub fn get_client_compile_time_info(browserslist_query: &str) -> CompileTimeInfoVc { CompileTimeInfo { @@ -54,6 +63,7 @@ pub fn get_client_compile_time_info(browserslist_query: &str) -> CompileTimeInfo )), Value::new(EnvironmentIntention::Client), ), + defines: next_client_defines(), } .cell() } diff --git a/crates/next-core/src/next_config.rs b/crates/next-core/src/next_config.rs index 801bf833d3fbc..53f2fa1517399 100644 --- a/crates/next-core/src/next_config.rs +++ b/crates/next-core/src/next_config.rs @@ -538,6 +538,7 @@ pub async fn load_next_config(execution_context: ExecutionContextVc) -> Result Result CompileTimeDefinesVc { + compile_time_defines!( + process.turbopack = true, + process.env.NODE_ENV = "development" + ) + .cell() +} + #[turbo_tasks::function] pub fn get_edge_compile_time_info( server_addr: ServerAddrVc, @@ -27,6 +36,7 @@ pub fn get_edge_compile_time_info( )), intention, ), + defines: next_edge_defines(), } .cell() } diff --git a/crates/next-core/src/next_server/context.rs b/crates/next-core/src/next_server/context.rs index 9dd3fc90d39fd..49b69c9fedc5e 100644 --- a/crates/next-core/src/next_server/context.rs +++ b/crates/next-core/src/next_server/context.rs @@ -10,7 +10,8 @@ use turbopack::{ resolve_options_context::{ResolveOptionsContext, ResolveOptionsContextVc}, }; use turbopack_core::{ - compile_time_info::{CompileTimeInfo, CompileTimeInfoVc}, + compile_time_defines, + compile_time_info::{CompileTimeDefinesVc, CompileTimeInfo, CompileTimeInfoVc}, environment::{ EnvironmentIntention, EnvironmentVc, ExecutionEnvironment, NodeJsEnvironmentVc, ServerAddrVc, @@ -137,6 +138,14 @@ pub async fn get_server_resolve_options_context( .cell()) } +pub fn next_server_defines() -> CompileTimeDefinesVc { + compile_time_defines!( + process.turbopack = true, + process.env.NODE_ENV = "development" + ) + .cell() +} + #[turbo_tasks::function] pub fn get_server_compile_time_info( ty: Value, @@ -159,6 +168,7 @@ pub fn get_server_compile_time_info( ServerContextType::Middleware => Value::new(EnvironmentIntention::Middleware), }, ), + defines: next_server_defines(), } .cell() } diff --git a/crates/next-core/src/router.rs b/crates/next-core/src/router.rs index eadacca1d2cd5..91dde53c72029 100644 --- a/crates/next-core/src/router.rs +++ b/crates/next-core/src/router.rs @@ -286,6 +286,7 @@ pub async fn route( let ExecutionContext { project_root, intermediate_output_path, + env, } = *execution_context.await?; let project_path = wrap_with_next_js_fs(project_root); let intermediate_output_path = intermediate_output_path.join("router"); @@ -314,6 +315,7 @@ pub async fn route( project_path, router_asset, project_root, + env, project_root, context, intermediate_output_path, diff --git a/crates/next-dev-tests/tests/integration/turbopack/basic/comptime/input/index.js b/crates/next-dev-tests/tests/integration/turbopack/basic/comptime/input/index.js index ca8404f7b8945..9ca2fd5f6a449 100644 --- a/crates/next-dev-tests/tests/integration/turbopack/basic/comptime/input/index.js +++ b/crates/next-dev-tests/tests/integration/turbopack/basic/comptime/input/index.js @@ -95,9 +95,9 @@ it("should evaluate !process.turbopack", () => { } }); -// it("should evaluate NODE_ENV", () => { -// if (process.env.NODE_ENV !== "development") { -// require("fail"); -// import("fail"); -// } -// }); +it("should evaluate NODE_ENV", () => { + if (process.env.NODE_ENV !== "development") { + require("fail"); + import("fail"); + } +}); diff --git a/crates/next-dev-tests/tests/integration/turbopack/basic/comptime/input/next.config.js b/crates/next-dev-tests/tests/integration/turbopack/basic/comptime/input/next.config.js new file mode 100644 index 0000000000000..70bc8091057ed --- /dev/null +++ b/crates/next-dev-tests/tests/integration/turbopack/basic/comptime/input/next.config.js @@ -0,0 +1,17 @@ +module.exports = {}; + +function f() { + if (!process.turbopack) { + throw new Error("Turbopack is not enabled"); + } + if (process.env.NODE_ENV !== "development") { + throw new Error("NODE_ENV is not development"); + } + console.log(process.env); +} + +f(); + +// if (f.toString().includes("process.turbopack")) { +// throw new Error("process.turbopack is not replaced"); +// } diff --git a/crates/next-dev/src/lib.rs b/crates/next-dev/src/lib.rs index 7b2a49dd141a6..4116b462ee126 100644 --- a/crates/next-dev/src/lib.rs +++ b/crates/next-dev/src/lib.rs @@ -299,7 +299,7 @@ async fn source( let env = load_env(project_path); let build_output_root = output_fs.root().join(".next/build"); - let execution_context = ExecutionContextVc::new(project_path, build_output_root); + let execution_context = ExecutionContextVc::new(project_path, build_output_root, env); let next_config = load_next_config(execution_context.join("next_config")); diff --git a/crates/node-file-trace/src/lib.rs b/crates/node-file-trace/src/lib.rs index dab73b1a41ab7..59c0336bdac69 100644 --- a/crates/node-file-trace/src/lib.rs +++ b/crates/node-file-trace/src/lib.rs @@ -40,7 +40,7 @@ use turbopack::{ use turbopack_cli_utils::issue::{ConsoleUiVc, IssueSeverityCliOption, LogOptions}; use turbopack_core::{ asset::{Asset, AssetVc, AssetsVc}, - compile_time_info::CompileTimeInfo, + compile_time_info::{CompileTimeDefinesVc, CompileTimeInfo}, context::{AssetContext, AssetContextVc}, environment::{EnvironmentIntention, EnvironmentVc, ExecutionEnvironment, NodeJsEnvironment}, issue::{IssueReporter, IssueSeverity, IssueVc}, @@ -256,7 +256,11 @@ async fn input_to_modules<'a>( )), Value::new(EnvironmentIntention::Api), ); - let compile_time_info = CompileTimeInfo { environment: env }.cell(); + let compile_time_info = CompileTimeInfo { + environment: env, + defines: CompileTimeDefinesVc::empty(), + } + .cell(); let glob_mappings = vec![ ( root, diff --git a/crates/turbo-tasks-env/src/filter.rs b/crates/turbo-tasks-env/src/filter.rs index add7d94676c7b..16fd71edb64fa 100644 --- a/crates/turbo-tasks-env/src/filter.rs +++ b/crates/turbo-tasks-env/src/filter.rs @@ -9,16 +9,16 @@ use crate::{EnvMapVc, ProcessEnv, ProcessEnvVc}; #[turbo_tasks::value] pub struct FilterProcessEnv { prior: ProcessEnvVc, - filter: String, + filters: Vec, } #[turbo_tasks::value_impl] impl FilterProcessEnvVc { #[turbo_tasks::function] - pub fn new(prior: ProcessEnvVc, filter: String) -> Self { + pub fn new(prior: ProcessEnvVc, filters: Vec) -> Self { FilterProcessEnv { prior, - filter: filter.to_uppercase(), + filters: filters.into_iter().map(|f| f.to_uppercase()).collect(), } .cell() } @@ -31,8 +31,12 @@ impl ProcessEnv for FilterProcessEnv { let prior = self.prior.read_all().await?; let mut filtered = IndexMap::new(); for (key, value) in &*prior { - if key.to_uppercase().starts_with(&self.filter) { - filtered.insert(key.clone(), value.clone()); + let uppercase = key.to_uppercase(); + for filter in &self.filters { + if uppercase.starts_with(filter) { + filtered.insert(key.clone(), value.clone()); + break; + } } } Ok(EnvMapVc::cell(filtered)) @@ -40,10 +44,11 @@ impl ProcessEnv for FilterProcessEnv { #[turbo_tasks::function] fn read(&self, name: &str) -> OptionStringVc { - if name.to_uppercase().starts_with(&self.filter) { - self.prior.read(name) - } else { - OptionStringVc::cell(None) + for filter in &self.filters { + if name.to_uppercase().starts_with(filter) { + return self.prior.read(name); + } } + OptionStringVc::cell(None) } } diff --git a/crates/turbopack-core/src/compile_time_info.rs b/crates/turbopack-core/src/compile_time_info.rs index 27ea3148d6dc6..c6d0a173d1cd6 100644 --- a/crates/turbopack-core/src/compile_time_info.rs +++ b/crates/turbopack-core/src/compile_time_info.rs @@ -1,17 +1,106 @@ +use std::collections::HashMap; + use anyhow::Result; +use serde::{Deserialize, Serialize}; +use turbo_tasks::trace::TraceRawVcs; use crate::environment::EnvironmentVc; +// TODO stringify split map collect could be optimized with a marco +#[macro_export] +macro_rules! compile_time_defines_internal { + ($map:ident, $($name:ident).+ = $value:expr) => { + $map.insert( + $crate::compile_time_defines_internal!($($name).+).into(), + $value.into() + ); + }; + ($map:ident, $($name:ident).+ = $value:expr,) => { + $map.insert( + $crate::compile_time_defines_internal!($($name).+).into(), + $value.into() + ); + }; + ($map:ident, $($name:ident).+ = $value:expr, $($more:tt)+) => { + $crate::compile_time_defines_internal!($map, $($name).+ = $value); + $crate::compile_time_defines_internal!($map, $($more)+); + }; + ($name:ident) => { + [stringify!($name).to_string()] + }; + ($name:ident . $($more:ident).+) => { + $crate::compile_time_defines_internal!($($more).+, [stringify!($name).to_string()]) + }; + ($name:ident, [$($array:expr),+]) => { + [$($array),+, stringify!($name).to_string()] + }; + ($name:ident . $($more:ident).+, [$($array:expr),+]) => { + $crate::compile_time_defines_internal!($($more).+, [$($array),+, stringify!($name).to_string()]) + }; +} + +// TODO stringify split map collect could be optimized with a marco +#[macro_export] +macro_rules! compile_time_defines { + ($($more:tt)+) => { + { + let mut map = std::collections::HashMap::new(); + $crate::compile_time_defines_internal!(map, $($more)+); + $crate::compile_time_info::CompileTimeDefines(map) + } + }; +} + +#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, TraceRawVcs)] +pub enum CompileTimeDefineValue { + Bool(bool), + String(String), +} + +impl From for CompileTimeDefineValue { + fn from(value: bool) -> Self { + Self::Bool(value) + } +} + +impl From for CompileTimeDefineValue { + fn from(value: String) -> Self { + Self::String(value) + } +} + +impl From<&str> for CompileTimeDefineValue { + fn from(value: &str) -> Self { + Self::String(value.to_string()) + } +} + +#[turbo_tasks::value(transparent)] +pub struct CompileTimeDefines(pub HashMap, CompileTimeDefineValue>); + +#[turbo_tasks::value_impl] +impl CompileTimeDefinesVc { + #[turbo_tasks::function] + pub fn empty() -> Self { + Self::cell(HashMap::new()) + } +} + #[turbo_tasks::value(shared)] pub struct CompileTimeInfo { pub environment: EnvironmentVc, + pub defines: CompileTimeDefinesVc, } #[turbo_tasks::value_impl] impl CompileTimeInfoVc { #[turbo_tasks::function] pub fn new(environment: EnvironmentVc) -> Self { - CompileTimeInfo { environment }.cell() + CompileTimeInfo { + environment, + defines: CompileTimeDefinesVc::empty(), + } + .cell() } #[turbo_tasks::function] diff --git a/crates/turbopack-ecmascript/benches/analyzer.rs b/crates/turbopack-ecmascript/benches/analyzer.rs index 10f0dd5821136..6d309f069ddce 100644 --- a/crates/turbopack-ecmascript/benches/analyzer.rs +++ b/crates/turbopack-ecmascript/benches/analyzer.rs @@ -13,7 +13,7 @@ use swc_core::{ use turbo_tasks::Value; use turbo_tasks_testing::VcStorage; use turbopack_core::{ - compile_time_info::CompileTimeInfo, + compile_time_info::{CompileTimeDefinesVc, CompileTimeInfo}, environment::{EnvironmentIntention, EnvironmentVc, ExecutionEnvironment, NodeJsEnvironment}, target::CompileTargetVc, }; @@ -104,6 +104,7 @@ fn bench_link(b: &mut Bencher, input: &BenchInput) { )), Value::new(EnvironmentIntention::ServerRendering), ), + defines: CompileTimeDefinesVc::empty(), } .cell(); link( diff --git a/crates/turbopack-ecmascript/src/analyzer/mod.rs b/crates/turbopack-ecmascript/src/analyzer/mod.rs index 992d30df04bdf..586c26d150f41 100644 --- a/crates/turbopack-ecmascript/src/analyzer/mod.rs +++ b/crates/turbopack-ecmascript/src/analyzer/mod.rs @@ -1,4 +1,5 @@ use std::{ + borrow::Cow, cmp::Ordering, fmt::Display, future::Future, @@ -18,6 +19,7 @@ use swc_core::{ atoms::{Atom, JsWord}, }, }; +use turbopack_core::compile_time_info::CompileTimeDefineValue; use url::Url; use self::imports::ImportAnnotations; @@ -482,6 +484,15 @@ impl From for JsValue { } } +impl From<&CompileTimeDefineValue> for JsValue { + fn from(v: &CompileTimeDefineValue) -> Self { + match v { + CompileTimeDefineValue::String(s) => JsValue::Constant(s.as_str().into()), + CompileTimeDefineValue::Bool(b) => JsValue::Constant((*b).into()), + } + } +} + impl Default for JsValue { fn default() -> Self { JsValue::Unknown(None, "") @@ -655,15 +666,15 @@ impl JsValue { JsValue::Array { .. } | JsValue::Object { .. } | JsValue::Alternatives(..) - | JsValue::Function(..) => JsValueMetaKind::Nested, + | JsValue::Function(..) + | JsValue::Member(..) => JsValueMetaKind::Nested, JsValue::Concat(..) | JsValue::Add(..) | JsValue::Not(..) | JsValue::Logical(..) | JsValue::Binary(..) | JsValue::Call(..) - | JsValue::MemberCall(..) - | JsValue::Member(..) => JsValueMetaKind::Operation, + | JsValue::MemberCall(..) => JsValueMetaKind::Operation, JsValue::Variable(..) | JsValue::Argument(..) | JsValue::FreeVar(..) @@ -1296,6 +1307,10 @@ impl JsValue { "process", "The Node.js process module: https://nodejs.org/api/process.html", ), + WellKnownObjectKind::NodeProcessEnv => ( + "process.env", + "The Node.js process.env property: https://nodejs.org/api/process.html#processenv", + ), WellKnownObjectKind::NodePreGyp => ( "@mapbox/node-pre-gyp", "The Node.js @mapbox/node-pre-gyp module: https://github.com/mapbox/node-pre-gyp", @@ -1477,6 +1492,77 @@ impl JsValue { } } +// Defineable name management +impl JsValue { + pub fn get_defineable_name_len(&self) -> Option { + match self { + JsValue::FreeVar(_) => Some(1), + JsValue::Member(_, obj, prop) if prop.as_str().is_some() => { + Some(obj.get_defineable_name_len()? + 1) + } + JsValue::WellKnownObject(obj) => obj.as_define_name().map(|d| d.len()), + JsValue::WellKnownFunction(func) => func.as_define_name().map(|d| d.len()), + JsValue::MemberCall(_, callee, prop, args) + if args.is_empty() && prop.as_str().is_some() => + { + Some(callee.get_defineable_name_len()? + 1) + } + + _ => None, + } + } + + pub fn iter_defineable_name_rev(&self) -> DefineableNameIter<'_> { + DefineableNameIter { + next: Some(self), + index: 0, + } + } +} + +pub struct DefineableNameIter<'a> { + next: Option<&'a JsValue>, + index: usize, +} + +impl<'a> Iterator for DefineableNameIter<'a> { + type Item = Cow<'a, str>; + + fn next(&mut self) -> Option { + let value = self.next.take()?; + Some(match value { + JsValue::FreeVar(kind) => kind.as_str().into(), + JsValue::Member(_, obj, prop) => { + self.next = Some(obj); + prop.as_str()?.into() + } + JsValue::WellKnownObject(obj) => { + let name = obj.as_define_name()?; + let i = self.index; + self.index += 1; + if self.index < name.len() { + self.next = Some(value); + } + name[name.len() - i - 1].into() + } + JsValue::WellKnownFunction(func) => { + let name = func.as_define_name()?; + let i = self.index; + self.index += 1; + if self.index < name.len() { + self.next = Some(value); + } + name[name.len() - i - 1].into() + } + JsValue::MemberCall(_, callee, prop, args) if args.is_empty() => { + self.next = Some(callee); + format!("{}()", prop.as_str()?).into() + } + _ => return None, + }) + } +} + // Compile-time information gathering impl JsValue { /// Returns the constant string if the value represents a constant string. @@ -2784,12 +2870,30 @@ pub enum WellKnownObjectKind { OsModule, OsModuleDefault, NodeProcess, + NodeProcessEnv, NodePreGyp, NodeExpressApp, NodeProtobufLoader, RequireCache, } +impl WellKnownObjectKind { + pub fn as_define_name(&self) -> Option<&[&str]> { + match self { + Self::GlobalObject => Some(&["global"]), + Self::PathModule => Some(&["path"]), + Self::FsModule => Some(&["fs"]), + Self::UrlModule => Some(&["url"]), + Self::ChildProcess => Some(&["child_process"]), + Self::OsModule => Some(&["os"]), + Self::NodeProcess => Some(&["process"]), + Self::NodeProcessEnv => Some(&["process", "env"]), + Self::RequireCache => Some(&["require", "cache"]), + _ => None, + } + } +} + /// A list of well-known functions that have special meaning in the analysis. #[derive(Debug, Clone, Hash, PartialEq, Eq)] pub enum WellKnownFunctionKind { @@ -2821,6 +2925,18 @@ pub enum WellKnownFunctionKind { NodeProtobufLoad, } +impl WellKnownFunctionKind { + pub fn as_define_name(&self) -> Option<&[&str]> { + match self { + Self::Import => Some(&["import"]), + Self::Require => Some(&["require"]), + Self::RequireResolve => Some(&["require", "resolve"]), + Self::Define => Some(&["define"]), + _ => None, + } + } +} + fn is_unresolved(i: &Ident, unresolved_mark: Mark) -> bool { i.span.ctxt.outer() == unresolved_mark } @@ -2906,7 +3022,7 @@ mod tests { }; use turbo_tasks::{util::FormatDuration, Value}; use turbopack_core::{ - compile_time_info::CompileTimeInfo, + compile_time_info::{CompileTimeDefinesVc, CompileTimeInfo}, environment::{ EnvironmentIntention, EnvironmentVc, ExecutionEnvironment, NodeJsEnvironment, }, @@ -3186,6 +3302,7 @@ mod tests { )), Value::new(EnvironmentIntention::ServerRendering), ), + defines: CompileTimeDefinesVc::empty(), } .cell(); link( diff --git a/crates/turbopack-ecmascript/src/analyzer/well_known.rs b/crates/turbopack-ecmascript/src/analyzer/well_known.rs index 4e831e53b2314..37bd4b056764c 100644 --- a/crates/turbopack-ecmascript/src/analyzer/well_known.rs +++ b/crates/turbopack-ecmascript/src/analyzer/well_known.rs @@ -34,12 +34,11 @@ pub async fn replace_well_known( } (JsValue::Call(usize, callee, args), false) } - JsValue::Member(_, box JsValue::WellKnownObject(kind), box prop) => ( - well_known_object_member(kind, prop, compile_time_info).await?, - true, - ), + JsValue::Member(_, box JsValue::WellKnownObject(kind), box prop) => { + well_known_object_member(kind, prop, compile_time_info).await? + } JsValue::Member(_, box JsValue::WellKnownFunction(kind), box prop) => { - (well_known_function_member(kind, prop), true) + well_known_function_member(kind, prop) } _ => (value, false), }) @@ -373,8 +372,8 @@ pub fn path_to_file_url(args: Vec) -> JsValue { } } -pub fn well_known_function_member(kind: WellKnownFunctionKind, prop: JsValue) -> JsValue { - match (&kind, prop.as_str()) { +pub fn well_known_function_member(kind: WellKnownFunctionKind, prop: JsValue) -> (JsValue, bool) { + let new_value = match (&kind, prop.as_str()) { (WellKnownFunctionKind::Require, Some("resolve")) => { JsValue::WellKnownFunction(WellKnownFunctionKind::RequireResolve) } @@ -387,22 +386,23 @@ pub fn well_known_function_member(kind: WellKnownFunctionKind, prop: JsValue) -> (WellKnownFunctionKind::NodeResolveFrom, Some("silent")) => { JsValue::WellKnownFunction(WellKnownFunctionKind::NodeResolveFrom) } - _ => JsValue::Unknown( - Some(Arc::new(JsValue::member( - box JsValue::WellKnownFunction(kind), - box prop, - ))), - "unsupported property on function", - ), - } + #[allow(unreachable_patterns)] + _ => { + return ( + JsValue::member(box JsValue::WellKnownFunction(kind), box prop), + false, + ) + } + }; + (new_value, true) } pub async fn well_known_object_member( kind: WellKnownObjectKind, prop: JsValue, compile_time_info: CompileTimeInfoVc, -) -> Result { - Ok(match kind { +) -> Result<(JsValue, bool)> { + let new_value = match kind { WellKnownObjectKind::GlobalObject => global_object(prop), WellKnownObjectKind::PathModule | WellKnownObjectKind::PathModuleDefault => { path_module_member(kind, prop) @@ -424,14 +424,14 @@ pub async fn well_known_object_member( WellKnownObjectKind::NodeExpressApp => express(prop), WellKnownObjectKind::NodeProtobufLoader => protobuf_loader(prop), #[allow(unreachable_patterns)] - _ => JsValue::Unknown( - Some(Arc::new(JsValue::member( - box JsValue::WellKnownObject(kind), - box prop, - ))), - "unsupported object kind", - ), - }) + _ => { + return Ok(( + JsValue::member(box JsValue::WellKnownObject(kind), box prop), + false, + )) + } + }; + Ok((new_value, true)) } fn global_object(prop: JsValue) -> JsValue { @@ -576,6 +576,7 @@ async fn node_process_member( .as_str() .into(), Some("cwd") => JsValue::WellKnownFunction(WellKnownFunctionKind::ProcessCwd), + Some("env") => JsValue::WellKnownObject(WellKnownObjectKind::NodeProcessEnv), _ => JsValue::Unknown( Some(Arc::new(JsValue::member( box JsValue::WellKnownObject(WellKnownObjectKind::NodeProcess), diff --git a/crates/turbopack-ecmascript/src/references/mod.rs b/crates/turbopack-ecmascript/src/references/mod.rs index 4d628e5a25527..956ac251dafcd 100644 --- a/crates/turbopack-ecmascript/src/references/mod.rs +++ b/crates/turbopack-ecmascript/src/references/mod.rs @@ -10,6 +10,7 @@ pub mod unreachable; pub mod util; use std::{ + borrow::Cow, collections::{BTreeMap, HashMap}, future::Future, mem::take, @@ -93,7 +94,7 @@ use crate::{ builtin::early_replace_builtin, graph::{ConditionalKind, EffectArg, EvalContext}, imports::Reexport, - ConstantValue, ModuleValue, + ModuleValue, }, chunk::{EcmascriptExports, EcmascriptExportsVc}, code_gen::{CodeGenerateableVc, CodeGenerateablesVc}, @@ -1595,6 +1596,20 @@ async fn value_visitor_inner( v: JsValue, compile_time_info: CompileTimeInfoVc, ) -> Result<(JsValue, bool)> { + if let Some(def_name_len) = v.get_defineable_name_len() { + let compile_time_info = compile_time_info.await?; + let defines = compile_time_info.defines.await?; + for (name, value) in defines.iter() { + if name.len() != def_name_len { + continue; + } + if v.iter_defineable_name_rev() + .eq(name.iter().map(Cow::Borrowed).rev()) + { + return Ok((value.into(), true)); + } + } + } let value = match v { JsValue::Call( _, @@ -1650,7 +1665,7 @@ async fn value_visitor_inner( FreeVarKind::Import => JsValue::WellKnownFunction(WellKnownFunctionKind::Import), FreeVarKind::NodeProcess => JsValue::WellKnownObject(WellKnownObjectKind::NodeProcess), FreeVarKind::Object => JsValue::WellKnownObject(WellKnownObjectKind::GlobalObject), - _ => JsValue::Unknown(Some(Arc::new(v)), "unknown global"), + _ => return Ok((v, false)), }, JsValue::Module(ModuleValue { module: ref name, .. @@ -1697,11 +1712,6 @@ async fn value_visitor_inner( Some(Arc::new(v)), "cross function analyzing is not yet supported", ), - JsValue::Member( - _, - box JsValue::WellKnownObject(WellKnownObjectKind::NodeProcess), - box JsValue::Constant(value), - ) if value.as_str() == Some("turbopack") => JsValue::Constant(ConstantValue::True), _ => { let (mut v, mut modified) = replace_well_known(v, compile_time_info).await?; modified = replace_builtin(&mut v) || modified; diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild-reduced/resolved-effects.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild-reduced/resolved-effects.snapshot index 516ac6de6e13a..b0e044278dfc3 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild-reduced/resolved-effects.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild-reduced/resolved-effects.snapshot @@ -8,29 +8,25 @@ 0 -> 6 member call = require*0*["resolve"]( `${( + | undefined["pkg"] | ???*1* - | ???*2* | "esbuild-windows-arm64" | "esbuild-windows-32" | "esbuild-windows-64" - | ???*3* - | ???*5* - )}/${(???*6* | ???*7* | "esbuild.exe" | ???*8*)}` + | ???*2* + | ???*4* + )}/${(undefined["subpath"] | ???*5* | "esbuild.exe" | ???*6*)}` ) - *0* require: The require method from CommonJS -- *1* undefined["pkg"] - ⚠️ nested operation -- *2* pkg +- *1* pkg ⚠️ pattern without value -- *3* {}[???*4*] +- *2* {}[???*3*] ⚠️ unknown object prototype methods or values -- *4* FreeVar(platformKey) +- *3* FreeVar(platformKey) ⚠️ unknown global -- *5* unknown mutation -- *6* undefined["subpath"] - ⚠️ nested operation -- *7* subpath +- *4* unknown mutation +- *5* subpath ⚠️ pattern without value -- *8* unknown mutation +- *6* unknown mutation 0 -> 7 call = (...) => (undefined | binPath)() diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild-reduced/resolved-explained.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild-reduced/resolved-explained.snapshot index a2ceda77798fe..51b8d23c262a2 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild-reduced/resolved-explained.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild-reduced/resolved-explained.snapshot @@ -3,31 +3,27 @@ binPath = (???*0* | ???*1*) ⚠️ pattern without value - *1* require.resolve*2*( `${( + | undefined["pkg"] | ???*3* - | ???*4* | "esbuild-windows-arm64" | "esbuild-windows-32" | "esbuild-windows-64" - | ???*5* - | ???*7* - )}/${(???*8* | ???*9* | "esbuild.exe" | ???*10*)}` + | ???*4* + | ???*6* + )}/${(undefined["subpath"] | ???*7* | "esbuild.exe" | ???*8*)}` ) ⚠️ resolve.resolve non constant - *2* require.resolve: The require.resolve method from CommonJS -- *3* undefined["pkg"] - ⚠️ nested operation -- *4* pkg +- *3* pkg ⚠️ pattern without value -- *5* {}[???*6*] +- *4* {}[???*5*] ⚠️ unknown object prototype methods or values -- *6* FreeVar(platformKey) +- *5* FreeVar(platformKey) ⚠️ unknown global -- *7* unknown mutation -- *8* undefined["subpath"] - ⚠️ nested operation -- *9* subpath +- *6* unknown mutation +- *7* subpath ⚠️ pattern without value -- *10* unknown mutation +- *8* unknown mutation e = ???*0* - *0* e @@ -88,28 +84,24 @@ x = (undefined | ???*0* | ???*1*) ⚠️ pattern without value - *1* require.resolve*2*( `${( + | undefined["pkg"] | ???*3* - | ???*4* | "esbuild-windows-arm64" | "esbuild-windows-32" | "esbuild-windows-64" - | ???*5* - | ???*7* - )}/${(???*8* | ???*9* | "esbuild.exe" | ???*10*)}` + | ???*4* + | ???*6* + )}/${(undefined["subpath"] | ???*7* | "esbuild.exe" | ???*8*)}` ) ⚠️ resolve.resolve non constant - *2* require.resolve: The require.resolve method from CommonJS -- *3* undefined["pkg"] - ⚠️ nested operation -- *4* pkg +- *3* pkg ⚠️ pattern without value -- *5* {}[???*6*] +- *4* {}[???*5*] ⚠️ unknown object prototype methods or values -- *6* FreeVar(platformKey) +- *5* FreeVar(platformKey) ⚠️ unknown global -- *7* unknown mutation -- *8* undefined["subpath"] - ⚠️ nested operation -- *9* subpath +- *6* unknown mutation +- *7* subpath ⚠️ pattern without value -- *10* unknown mutation +- *8* unknown mutation diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild/resolved-effects.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild/resolved-effects.snapshot index 146f15adc70eb..d388ad4f70992 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild/resolved-effects.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild/resolved-effects.snapshot @@ -16,21 +16,17 @@ 0 -> 11 call = (...) => (undefined | {"pkg": pkg, "subpath": subpath})() 0 -> 13 member call = require*0*["resolve"]( - `${(???*1* | ???*2* | ???*3* | ???*4* | "esbuild-linux-64")}/${(???*5* | ???*6* | "esbuild.exe" | "bin/esbuild" | ???*7*)}` + `${(undefined["pkg"] | ???*1* | ???*2* | ???*3* | "esbuild-linux-64")}/${(undefined["subpath"] | ???*4* | "esbuild.exe" | "bin/esbuild" | ???*5*)}` ) - *0* require: The require method from CommonJS -- *1* undefined["pkg"] - ⚠️ nested operation -- *2* pkg +- *1* pkg ⚠️ pattern without value -- *3* FreeVar(undefined) +- *2* FreeVar(undefined) ⚠️ unknown global -- *4* unknown mutation -- *5* undefined["subpath"] - ⚠️ nested operation -- *6* subpath +- *3* unknown mutation +- *4* subpath ⚠️ pattern without value -- *7* unknown mutation +- *5* unknown mutation 0 -> 14 call = ???*0*( (undefined["pkg"] | ???*1* | ???*2* | ???*3* | "esbuild-linux-64"), @@ -47,31 +43,27 @@ ⚠️ pattern without value - *5* unknown mutation -0 -> 16 member call = ???*0*["existsSync"]((???*1* | ???*2* | ???*11*)) +0 -> 16 member call = ???*0*["existsSync"]((???*1* | ???*2* | ???*9*)) - *0* FreeVar(fs) ⚠️ unknown global - *1* binPath ⚠️ pattern without value - *2* require.resolve*3*( - `${(???*4* | ???*5* | ???*6* | ???*7* | "esbuild-linux-64")}/${(???*8* | ???*9* | "esbuild.exe" | "bin/esbuild" | ???*10*)}` + `${(undefined["pkg"] | ???*4* | ???*5* | ???*6* | "esbuild-linux-64")}/${(undefined["subpath"] | ???*7* | "esbuild.exe" | "bin/esbuild" | ???*8*)}` ) ⚠️ resolve.resolve non constant - *3* require.resolve: The require.resolve method from CommonJS -- *4* undefined["pkg"] - ⚠️ nested operation -- *5* pkg +- *4* pkg ⚠️ pattern without value -- *6* FreeVar(undefined) +- *5* FreeVar(undefined) ⚠️ unknown global -- *7* unknown mutation -- *8* undefined["subpath"] - ⚠️ nested operation -- *9* subpath +- *6* unknown mutation +- *7* subpath ⚠️ pattern without value -- *10* unknown mutation -- *11* ???*12*(pkg, subpath) +- *8* unknown mutation +- *9* ???*10*(pkg, subpath) ⚠️ unknown callee -- *12* FreeVar(downloadedBinPath) +- *10* FreeVar(downloadedBinPath) ⚠️ unknown global 0 -> 17 conditional = !(???*0*) @@ -111,49 +103,45 @@ 21 -> 29 member call = path*0*["join"]( "\"esbuild\"/resolved/lib", - `pnpapi-${(???*1* | ???*2* | ???*3* | ???*4* | "esbuild-linux-64")}-${???*5*}` + `pnpapi-${(undefined["pkg"] | ???*1* | ???*2* | ???*3* | "esbuild-linux-64")}-${???*4*}` ) - *0* path: The Node.js path module: https://nodejs.org/api/path.html -- *1* undefined["pkg"] - ⚠️ nested operation -- *2* pkg +- *1* pkg ⚠️ pattern without value -- *3* FreeVar(undefined) +- *2* FreeVar(undefined) ⚠️ unknown global -- *4* unknown mutation -- *5* ???*6*( - (undefined["subpath"] | ???*8* | "esbuild.exe" | "bin/esbuild" | ???*9*) +- *3* unknown mutation +- *4* ???*5*( + (undefined["subpath"] | ???*7* | "esbuild.exe" | "bin/esbuild" | ???*8*) ) ⚠️ unknown callee -- *6* path*7*["basename"] +- *5* path*6*["basename"] ⚠️ unsupported property on Node.js path module -- *7* path: The Node.js path module: https://nodejs.org/api/path.html -- *8* subpath +- *6* path: The Node.js path module: https://nodejs.org/api/path.html +- *7* subpath ⚠️ pattern without value -- *9* unknown mutation +- *8* unknown mutation 21 -> 31 member call = ???*0*["existsSync"]( - `"esbuild"/resolved/lib${("/" | "")}pnpapi-${(???*1* | ???*2* | ???*3* | ???*4* | "esbuild-linux-64")}-${???*5*}` + `"esbuild"/resolved/lib${("/" | "")}pnpapi-${(undefined["pkg"] | ???*1* | ???*2* | ???*3* | "esbuild-linux-64")}-${???*4*}` ) - *0* FreeVar(fs) ⚠️ unknown global -- *1* undefined["pkg"] - ⚠️ nested operation -- *2* pkg +- *1* pkg ⚠️ pattern without value -- *3* FreeVar(undefined) +- *2* FreeVar(undefined) ⚠️ unknown global -- *4* unknown mutation -- *5* ???*6*( - (undefined["subpath"] | ???*8* | "esbuild.exe" | "bin/esbuild" | ???*9*) +- *3* unknown mutation +- *4* ???*5*( + (undefined["subpath"] | ???*7* | "esbuild.exe" | "bin/esbuild" | ???*8*) ) ⚠️ unknown callee -- *6* path*7*["basename"] +- *5* path*6*["basename"] ⚠️ unsupported property on Node.js path module -- *7* path: The Node.js path module: https://nodejs.org/api/path.html -- *8* subpath +- *6* path: The Node.js path module: https://nodejs.org/api/path.html +- *7* subpath ⚠️ pattern without value -- *9* unknown mutation +- *8* unknown mutation 21 -> 32 conditional = !(???*0*) - *0* ???*1*["existsSync"](binTargetPath) @@ -162,75 +150,67 @@ ⚠️ unknown global 32 -> 34 member call = ???*0*["copyFileSync"]( - (???*1* | ???*2* | ???*11*), - `"esbuild"/resolved/lib${("/" | "")}pnpapi-${(???*13* | ???*14* | ???*15* | ???*16* | "esbuild-linux-64")}-${???*17*}` + (???*1* | ???*2* | ???*9*), + `"esbuild"/resolved/lib${("/" | "")}pnpapi-${(undefined["pkg"] | ???*11* | ???*12* | ???*13* | "esbuild-linux-64")}-${???*14*}` ) - *0* FreeVar(fs) ⚠️ unknown global - *1* binPath ⚠️ pattern without value - *2* require.resolve*3*( - `${(???*4* | ???*5* | ???*6* | ???*7* | "esbuild-linux-64")}/${(???*8* | ???*9* | "esbuild.exe" | "bin/esbuild" | ???*10*)}` + `${(undefined["pkg"] | ???*4* | ???*5* | ???*6* | "esbuild-linux-64")}/${(undefined["subpath"] | ???*7* | "esbuild.exe" | "bin/esbuild" | ???*8*)}` ) ⚠️ resolve.resolve non constant - *3* require.resolve: The require.resolve method from CommonJS -- *4* undefined["pkg"] - ⚠️ nested operation -- *5* pkg +- *4* pkg ⚠️ pattern without value -- *6* FreeVar(undefined) +- *5* FreeVar(undefined) ⚠️ unknown global -- *7* unknown mutation -- *8* undefined["subpath"] - ⚠️ nested operation -- *9* subpath +- *6* unknown mutation +- *7* subpath ⚠️ pattern without value -- *10* unknown mutation -- *11* ???*12*(pkg, subpath) +- *8* unknown mutation +- *9* ???*10*(pkg, subpath) ⚠️ unknown callee -- *12* FreeVar(downloadedBinPath) +- *10* FreeVar(downloadedBinPath) ⚠️ unknown global -- *13* undefined["pkg"] - ⚠️ nested operation -- *14* pkg +- *11* pkg ⚠️ pattern without value -- *15* FreeVar(undefined) +- *12* FreeVar(undefined) ⚠️ unknown global -- *16* unknown mutation -- *17* ???*18*( - (undefined["subpath"] | ???*20* | "esbuild.exe" | "bin/esbuild" | ???*21*) +- *13* unknown mutation +- *14* ???*15*( + (undefined["subpath"] | ???*17* | "esbuild.exe" | "bin/esbuild" | ???*18*) ) ⚠️ unknown callee -- *18* path*19*["basename"] +- *15* path*16*["basename"] ⚠️ unsupported property on Node.js path module -- *19* path: The Node.js path module: https://nodejs.org/api/path.html -- *20* subpath +- *16* path: The Node.js path module: https://nodejs.org/api/path.html +- *17* subpath ⚠️ pattern without value -- *21* unknown mutation +- *18* unknown mutation 32 -> 36 member call = ???*0*["chmodSync"]( - `"esbuild"/resolved/lib${("/" | "")}pnpapi-${(???*1* | ???*2* | ???*3* | ???*4* | "esbuild-linux-64")}-${???*5*}`, + `"esbuild"/resolved/lib${("/" | "")}pnpapi-${(undefined["pkg"] | ???*1* | ???*2* | ???*3* | "esbuild-linux-64")}-${???*4*}`, 493 ) - *0* FreeVar(fs) ⚠️ unknown global -- *1* undefined["pkg"] - ⚠️ nested operation -- *2* pkg +- *1* pkg ⚠️ pattern without value -- *3* FreeVar(undefined) +- *2* FreeVar(undefined) ⚠️ unknown global -- *4* unknown mutation -- *5* ???*6*( - (undefined["subpath"] | ???*8* | "esbuild.exe" | "bin/esbuild" | ???*9*) +- *3* unknown mutation +- *4* ???*5*( + (undefined["subpath"] | ???*7* | "esbuild.exe" | "bin/esbuild" | ???*8*) ) ⚠️ unknown callee -- *6* path*7*["basename"] +- *5* path*6*["basename"] ⚠️ unsupported property on Node.js path module -- *7* path: The Node.js path module: https://nodejs.org/api/path.html -- *8* subpath +- *6* path: The Node.js path module: https://nodejs.org/api/path.html +- *7* subpath ⚠️ pattern without value -- *9* unknown mutation +- *8* unknown mutation 0 -> 38 member call = path*0*["basename"]("__filename") - *0* path: The Node.js path module: https://nodejs.org/api/path.html diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild/resolved-explained.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild/resolved-explained.snapshot index ab0f758789ce8..2976c0cb9bf3e 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild/resolved-explained.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/esbuild/resolved-explained.snapshot @@ -12,49 +12,43 @@ args = ???*0* - *0* max number of linking steps reached -binPath = (???*0* | ???*1* | ???*10*) +binPath = (???*0* | ???*1* | ???*8*) - *0* binPath ⚠️ pattern without value - *1* require.resolve*2*( - `${(???*3* | ???*4* | ???*5* | ???*6* | "esbuild-linux-64")}/${(???*7* | ???*8* | "esbuild.exe" | "bin/esbuild" | ???*9*)}` + `${(undefined["pkg"] | ???*3* | ???*4* | ???*5* | "esbuild-linux-64")}/${(undefined["subpath"] | ???*6* | "esbuild.exe" | "bin/esbuild" | ???*7*)}` ) ⚠️ resolve.resolve non constant - *2* require.resolve: The require.resolve method from CommonJS -- *3* undefined["pkg"] - ⚠️ nested operation -- *4* pkg +- *3* pkg ⚠️ pattern without value -- *5* FreeVar(undefined) +- *4* FreeVar(undefined) ⚠️ unknown global -- *6* unknown mutation -- *7* undefined["subpath"] - ⚠️ nested operation -- *8* subpath +- *5* unknown mutation +- *6* subpath ⚠️ pattern without value -- *9* unknown mutation -- *10* ???*11*(pkg, subpath) +- *7* unknown mutation +- *8* ???*9*(pkg, subpath) ⚠️ unknown callee -- *11* FreeVar(downloadedBinPath) +- *9* FreeVar(downloadedBinPath) ⚠️ unknown global -binTargetPath = `"esbuild"/resolved/lib${("/" | "")}pnpapi-${(???*0* | ???*1* | ???*2* | ???*3* | "esbuild-linux-64")}-${???*4*}` -- *0* undefined["pkg"] - ⚠️ nested operation -- *1* pkg +binTargetPath = `"esbuild"/resolved/lib${("/" | "")}pnpapi-${(undefined["pkg"] | ???*0* | ???*1* | ???*2* | "esbuild-linux-64")}-${???*3*}` +- *0* pkg ⚠️ pattern without value -- *2* FreeVar(undefined) +- *1* FreeVar(undefined) ⚠️ unknown global -- *3* unknown mutation -- *4* ???*5*( - (undefined["subpath"] | ???*7* | "esbuild.exe" | "bin/esbuild" | ???*8*) +- *2* unknown mutation +- *3* ???*4*( + (undefined["subpath"] | ???*6* | "esbuild.exe" | "bin/esbuild" | ???*7*) ) ⚠️ unknown callee -- *5* path*6*["basename"] +- *4* path*5*["basename"] ⚠️ unsupported property on Node.js path module -- *6* path: The Node.js path module: https://nodejs.org/api/path.html -- *7* subpath +- *5* path: The Node.js path module: https://nodejs.org/api/path.html +- *6* subpath ⚠️ pattern without value -- *8* unknown mutation +- *7* unknown mutation command = ???*0* - *0* max number of linking steps reached diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/md5/resolved-effects.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/md5/resolved-effects.snapshot index ec9d256ae4ecf..ec82181aa9b3a 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/md5/resolved-effects.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/md5/resolved-effects.snapshot @@ -39,19 +39,15 @@ 0 -> 18 member call = "0123456789abcdef"["charAt"](???*0*) - *0* unsupported expression -0 -> 19 call = ???*0*((???*1* + ???*4*), 16) +0 -> 19 call = ???*0*((???*1* + ???*3*), 16) - *0* FreeVar(parseInt) ⚠️ unknown global -- *1* ???*2*(???*3*) - ⚠️ unknown callee -- *2* "0123456789abcdef"["charAt"] +- *1* "0123456789abcdef"["charAt"](???*2*) ⚠️ nested operation -- *3* unsupported expression -- *4* ???*5*(???*6*) - ⚠️ unknown callee -- *5* "0123456789abcdef"["charAt"] +- *2* unsupported expression +- *3* "0123456789abcdef"["charAt"](???*4*) ⚠️ nested operation -- *6* unsupported expression +- *4* unsupported expression 0 -> 21 member call = []["push"]((???*0* | ???*1*)) - *0* hex diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/md5_2/resolved-effects.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/md5_2/resolved-effects.snapshot index be420ea02addf..d50c86bbed1ba 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/md5_2/resolved-effects.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/md5_2/resolved-effects.snapshot @@ -26,105 +26,116 @@ - *2* arguments[1] ⚠️ function calls are not analysed yet -10 -> 12 member call = module["bin"]["stringToBytes"]((???*0* | ???*1* | ???*5* | ???*9*())) +10 -> 12 member call = module["bin"]["stringToBytes"]( + ( + | ???*0* + | module["bin"]["stringToBytes"](???*1*) + | module["utf8"]["stringToBytes"](???*2*) + | ???*3* + | ???*7*() + ) +) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*(???*4*) - ⚠️ unknown callee -- *2* ???*3*["stringToBytes"] - ⚠️ unknown object -- *3* module["bin"] - ⚠️ nested operation -- *4* message +- *1* message + ⚠️ circular variable reference +- *2* message ⚠️ circular variable reference -- *5* ???*6*["call"](message, 0) +- *3* ???*4*["call"](message, 0) ⚠️ unknown callee object -- *6* ???*7*["slice"] +- *4* ???*5*["slice"] ⚠️ unknown object -- *7* ???*8*["prototype"] +- *5* ???*6*["prototype"] ⚠️ unknown object -- *8* FreeVar(Array) +- *6* FreeVar(Array) ⚠️ unknown global -- *9* ???*10*["toString"] +- *7* ???*8*["toString"] ⚠️ unknown object -- *10* message +- *8* message ⚠️ circular variable reference -10 -> 14 member call = module["utf8"]["stringToBytes"]((???*0* | ???*1* | ???*5* | ???*9*())) +10 -> 14 member call = module["utf8"]["stringToBytes"]( + ( + | ???*0* + | module["bin"]["stringToBytes"](???*1*) + | module["utf8"]["stringToBytes"](???*2*) + | ???*3* + | ???*7*() + ) +) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*(???*4*) - ⚠️ unknown callee -- *2* ???*3*["stringToBytes"] - ⚠️ unknown object -- *3* module["bin"] - ⚠️ nested operation -- *4* message +- *1* message + ⚠️ circular variable reference +- *2* message ⚠️ circular variable reference -- *5* ???*6*["call"](message, 0) +- *3* ???*4*["call"](message, 0) ⚠️ unknown callee object -- *6* ???*7*["slice"] +- *4* ???*5*["slice"] ⚠️ unknown object -- *7* ???*8*["prototype"] +- *5* ???*6*["prototype"] ⚠️ unknown object -- *8* FreeVar(Array) +- *6* FreeVar(Array) ⚠️ unknown global -- *9* ???*10*["toString"] +- *7* ???*8*["toString"] ⚠️ unknown object -- *10* message +- *8* message ⚠️ circular variable reference -8 -> 15 call = module((???*0* | ???*1* | ???*5* | ???*9*())) +8 -> 15 call = module( + ( + | ???*0* + | module["bin"]["stringToBytes"](???*1*) + | module["utf8"]["stringToBytes"](???*2*) + | ???*3* + | ???*7*() + ) +) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*(???*4*) - ⚠️ unknown callee -- *2* ???*3*["stringToBytes"] - ⚠️ unknown object -- *3* module["bin"] - ⚠️ nested operation -- *4* message +- *1* message + ⚠️ circular variable reference +- *2* message ⚠️ circular variable reference -- *5* ???*6*["call"](message, 0) +- *3* ???*4*["call"](message, 0) ⚠️ unknown callee object -- *6* ???*7*["slice"] +- *4* ???*5*["slice"] ⚠️ unknown object -- *7* ???*8*["prototype"] +- *5* ???*6*["prototype"] ⚠️ unknown object -- *8* FreeVar(Array) +- *6* FreeVar(Array) ⚠️ unknown global -- *9* ???*10*["toString"] +- *7* ???*8*["toString"] ⚠️ unknown object -- *10* message +- *8* message ⚠️ circular variable reference -8 -> 16 conditional = module((???*0* | ???*1* | ???*5* | ???*9*)) +8 -> 16 conditional = module((???*0* | ???*1* | ???*3*)) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*(???*4*) - ⚠️ unknown callee -- *2* ???*3*["stringToBytes"] - ⚠️ unknown object -- *3* module["bin"] +- *1* module["bin"]["stringToBytes"](???*2*) ⚠️ nested operation -- *4* message +- *2* message ⚠️ circular variable reference -- *5* ???*6*["call"](message, 0) +- *3* ???*4*["call"](message, 0) ⚠️ unknown callee object -- *6* ???*7*["slice"] +- *4* ???*5*["slice"] ⚠️ unknown object -- *7* ???*8*["prototype"] +- *5* ???*6*["prototype"] ⚠️ unknown object -- *8* FreeVar(Array) +- *6* FreeVar(Array) ⚠️ unknown global -- *9* ???*10*() - ⚠️ nested operation -- *10* ???*11*["toString"] - ⚠️ unknown object -- *11* message - ⚠️ circular variable reference -16 -> 20 member call = ???*0*["call"]((???*3* | ???*4* | ???*8* | ???*12*()), 0) +16 -> 20 member call = ???*0*["call"]( + ( + | ???*3* + | module["bin"]["stringToBytes"](???*4*) + | module["utf8"]["stringToBytes"](???*5*) + | ???*6* + | ???*10*() + ), + 0 +) - *0* ???*1*["slice"] ⚠️ unknown object - *1* ???*2*["prototype"] @@ -133,51 +144,51 @@ ⚠️ unknown global - *3* arguments[0] ⚠️ function calls are not analysed yet -- *4* ???*5*(???*7*) - ⚠️ unknown callee -- *5* ???*6*["stringToBytes"] - ⚠️ unknown object -- *6* module["bin"] - ⚠️ nested operation -- *7* message +- *4* message + ⚠️ circular variable reference +- *5* message ⚠️ circular variable reference -- *8* ???*9*["call"](message, 0) +- *6* ???*7*["call"](message, 0) ⚠️ unknown callee object -- *9* ???*10*["slice"] +- *7* ???*8*["slice"] ⚠️ unknown object -- *10* ???*11*["prototype"] +- *8* ???*9*["prototype"] ⚠️ unknown object -- *11* FreeVar(Array) +- *9* FreeVar(Array) ⚠️ unknown global -- *12* ???*13*["toString"] +- *10* ???*11*["toString"] ⚠️ unknown object -- *13* message +- *11* message ⚠️ circular variable reference -16 -> 22 member call = ???*0*["isArray"]((???*1* | ???*2* | ???*6* | ???*10*())) +16 -> 22 member call = ???*0*["isArray"]( + ( + | ???*1* + | module["bin"]["stringToBytes"](???*2*) + | module["utf8"]["stringToBytes"](???*3*) + | ???*4* + | ???*8*() + ) +) - *0* FreeVar(Array) ⚠️ unknown global - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* ???*3*(???*5*) - ⚠️ unknown callee -- *3* ???*4*["stringToBytes"] - ⚠️ unknown object -- *4* module["bin"] - ⚠️ nested operation -- *5* message +- *2* message ⚠️ circular variable reference -- *6* ???*7*["call"](message, 0) +- *3* message + ⚠️ circular variable reference +- *4* ???*5*["call"](message, 0) ⚠️ unknown callee object -- *7* ???*8*["slice"] +- *5* ???*6*["slice"] ⚠️ unknown object -- *8* ???*9*["prototype"] +- *6* ???*7*["prototype"] ⚠️ unknown object -- *9* FreeVar(Array) +- *7* FreeVar(Array) ⚠️ unknown global -- *10* ???*11*["toString"] +- *8* ???*9*["toString"] ⚠️ unknown object -- *11* message +- *9* message ⚠️ circular variable reference 16 -> 23 conditional = !(???*0*) @@ -186,2401 +197,1895 @@ - *1* FreeVar(Array) ⚠️ unknown global -23 -> 25 member call = (???*0* | ???*1* | ???*5* | ???*9*())["toString"]() +23 -> 25 member call = ( + | ???*0* + | module["bin"]["stringToBytes"](???*1*) + | module["utf8"]["stringToBytes"](???*2*) + | ???*3* + | ???*7*() +)["toString"]() - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*(???*4*) - ⚠️ unknown callee -- *2* ???*3*["stringToBytes"] - ⚠️ unknown object -- *3* module["bin"] - ⚠️ nested operation -- *4* message +- *1* message + ⚠️ circular variable reference +- *2* message ⚠️ circular variable reference -- *5* ???*6*["call"](message, 0) +- *3* ???*4*["call"](message, 0) ⚠️ unknown callee object -- *6* ???*7*["slice"] +- *4* ???*5*["slice"] ⚠️ unknown object -- *7* ???*8*["prototype"] +- *5* ???*6*["prototype"] ⚠️ unknown object -- *8* FreeVar(Array) +- *6* FreeVar(Array) ⚠️ unknown global -- *9* ???*10*["toString"] +- *7* ???*8*["toString"] ⚠️ unknown object -- *10* message +- *8* message ⚠️ circular variable reference -0 -> 27 member call = module["bytesToWords"]((???*0* | ???*1* | ???*5* | ???*9*())) +0 -> 27 member call = module["bytesToWords"]( + ( + | ???*0* + | module["bin"]["stringToBytes"](???*1*) + | module["utf8"]["stringToBytes"](???*2*) + | ???*3* + | ???*7*() + ) +) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*(???*4*) - ⚠️ unknown callee -- *2* ???*3*["stringToBytes"] - ⚠️ unknown object -- *3* module["bin"] - ⚠️ nested operation -- *4* message +- *1* message + ⚠️ circular variable reference +- *2* message ⚠️ circular variable reference -- *5* ???*6*["call"](message, 0) +- *3* ???*4*["call"](message, 0) ⚠️ unknown callee object -- *6* ???*7*["slice"] +- *4* ???*5*["slice"] ⚠️ unknown object -- *7* ???*8*["prototype"] +- *5* ???*6*["prototype"] ⚠️ unknown object -- *8* FreeVar(Array) +- *6* FreeVar(Array) ⚠️ unknown global -- *9* ???*10*["toString"] +- *7* ???*8*["toString"] ⚠️ unknown object -- *10* message +- *8* message ⚠️ circular variable reference -0 -> 43 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 7, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 43 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 0)], + 7, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 0)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 45 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 12, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 45 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 1)], + 12, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 1)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 47 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 17, 606105819) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 47 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 2)], + 17, + 606105819 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 2)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 49 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 22, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 49 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 3)], + 22, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 3)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] - ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 51 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 7, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 51 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 4)], + 7, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 4)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 53 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 12, 1200080426) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 53 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 5)], + 12, + 1200080426 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 5)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] - ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 55 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 17, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 55 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 6)], + 17, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 6)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 57 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 22, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 57 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 7)], + 22, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 7)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 59 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 7, 1770035416) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 59 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 8)], + 7, + 1770035416 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 8)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 61 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 12, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 61 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 9)], + 12, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 9)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 63 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 17, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 63 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 10)], + 17, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 10)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] - ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 65 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 22, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 65 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 11)], + 22, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 11)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 67 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 7, 1804603682) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 67 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 12)], + 7, + 1804603682 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 12)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] - ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 69 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 12, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 69 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 13)], + 12, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 13)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 71 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 17, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 71 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 14)], + 17, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 14)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 73 call = (...) => (undefined | ???*0*)["_ff"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 22, 1236535329) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 73 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 15)], + 22, + 1236535329 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 15)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 75 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 5, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 75 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 1)], + 5, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 1)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 77 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 9, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 77 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 6)], + 9, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 6)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] - ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 79 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 14, 643717713) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 79 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 11)], + 14, + 643717713 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 11)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 81 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 20, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 81 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 0)], + 20, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 0)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 83 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 5, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 83 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 5)], + 5, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 5)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 85 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 9, 38016083) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 85 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 10)], + 9, + 38016083 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 10)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 87 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 14, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 87 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 15)], + 14, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 15)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 89 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 20, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 89 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 4)], + 20, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 4)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 91 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 5, 568446438) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 91 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 9)], + 5, + 568446438 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 9)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 93 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 9, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 93 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 14)], + 9, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 14)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 95 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 14, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 95 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 3)], + 14, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 3)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 97 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 20, 1163531501) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 97 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 8)], + 20, + 1163531501 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 8)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 99 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 5, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 99 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 13)], + 5, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 13)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 101 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 9, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 101 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 2)], + 9, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 2)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 103 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 14, 1735328473) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 103 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 7)], + 14, + 1735328473 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 7)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 105 call = (...) => (undefined | ???*0*)["_gg"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 20, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 105 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 12)], + 20, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 12)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 107 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 4, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 107 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 5)], + 4, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 5)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 109 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 11, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 109 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 8)], + 11, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 8)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 111 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 16, 1839030562) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 111 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 11)], + 16, + 1839030562 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 11)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 113 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 23, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 113 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 14)], + 23, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 14)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 115 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 4, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 115 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 1)], + 4, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 1)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 117 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 11, 1272893353) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 117 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 4)], + 11, + 1272893353 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 4)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 119 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 16, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 119 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 7)], + 16, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 7)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 121 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 23, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 121 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 10)], + 23, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 10)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 123 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 4, 681279174) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 123 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 13)], + 4, + 681279174 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 13)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 125 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 11, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 125 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 0)], + 11, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 0)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 127 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 16, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 127 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 3)], + 16, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 3)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 129 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 23, 76029189) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 129 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 6)], + 23, + 76029189 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 6)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 131 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 4, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 131 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 9)], + 4, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 9)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 133 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 11, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 133 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 12)], + 11, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 12)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 135 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 16, 530742520) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 135 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 15)], + 16, + 530742520 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 15)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 137 call = (...) => (undefined | ???*0*)["_hh"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 23, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 137 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 2)], + 23, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 2)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 139 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 6, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 139 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 0)], + 6, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 0)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 141 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 10, 1126891415) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 141 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 7)], + 10, + 1126891415 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 7)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 143 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 15, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 143 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 14)], + 15, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 14)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 145 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 21, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 145 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 5)], + 21, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 5)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 147 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 6, 1700485571) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 147 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 12)], + 6, + 1700485571 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 12)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 149 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 10, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 149 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 3)], + 10, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 3)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 151 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 15, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 151 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 10)], + 15, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 10)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 153 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 21, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 153 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 1)], + 21, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 1)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 155 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 6, 1873313359) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 155 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 8)], + 6, + 1873313359 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 8)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 157 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 10, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 157 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 15)], + 10, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 15)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 159 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 15, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 159 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 6)], + 15, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 6)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 161 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 21, 1309151649) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 161 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 13)], + 21, + 1309151649 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 13)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 163 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 6, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 163 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 4)], + 6, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 4)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 165 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 10, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 165 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 11)], + 10, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 11)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] - ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression - -0 -> 167 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 15, 718787259) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression + +0 -> 167 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 2)], + 15, + 718787259 +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 2)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *15* ???["prototype"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] - ⚠️ unknown object -- *18* message - ⚠️ circular variable reference +- *10* FreeVar(Array) + ⚠️ unknown global -0 -> 169 call = (...) => (undefined | ???*0*)["_ii"](???*1*, ???*2*, ???*3*, ???*4*, ???*5*, 21, ???*19*) -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +0 -> 169 call = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"]( + ???*0*, + ???*1*, + ???*2*, + ???*3*, + module["bytesToWords"]((???*4* | ???*5* | ???*7*))[(0 + 9)], + 21, + ???*11* +) +- *0* max number of linking steps reached - *1* max number of linking steps reached - *2* max number of linking steps reached - *3* max number of linking steps reached -- *4* max number of linking steps reached -- *5* ???*6*[(i + 9)] - ⚠️ unknown object -- *6* ???*7*((???*8* | ???*9* | ???*13* | ???*16*)) - ⚠️ unknown callee -- *7* module["bytesToWords"] - ⚠️ nested operation -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(???*12*) - ⚠️ unknown callee -- *10* ???*11*["stringToBytes"] - ⚠️ unknown object -- *11* module["bin"] +- *5* module["bin"]["stringToBytes"](???*6*) ⚠️ nested operation -- *12* message +- *6* message ⚠️ circular variable reference -- *13* ???*14*["call"](message, 0) +- *7* ???*8*["call"](message, 0) ⚠️ unknown callee object -- *14* ???*15*["slice"] - ⚠️ unknown object -- *15* ???["prototype"] +- *8* ???*9*["slice"] ⚠️ unknown object -- *16* ???*17*() - ⚠️ nested operation -- *17* ???*18*["toString"] +- *9* ???*10*["prototype"] ⚠️ unknown object -- *18* message - ⚠️ circular variable reference -- *19* unsupported expression +- *10* FreeVar(Array) + ⚠️ unknown global +- *11* unsupported expression 0 -> 171 member call = module["endian"](???*0*) - *0* max number of linking steps reached diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/md5_2/resolved-explained.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/md5_2/resolved-explained.snapshot index 0aeae082edd2f..7632f8d921e7e 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/md5_2/resolved-explained.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/md5_2/resolved-explained.snapshot @@ -14,21 +14,13 @@ *anonymous function 5685* = (...) => (undefined | digestbytes | bin["bytesToString"](digestbytes) | crypt["bytesToHex"](digestbytes)) -FF = (...) => (undefined | ???*0*)["_ff"] -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +FF = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ff"] -GG = (...) => (undefined | ???*0*)["_gg"] -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +GG = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_gg"] -HH = (...) => (undefined | ???*0*)["_hh"] -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +HH = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_hh"] -II = (...) => (undefined | ???*0*)["_ii"] -- *0* crypt["endian"]([a, b, c, d]) - ⚠️ nested operation +II = (...) => (undefined | crypt["endian"]([a, b, c, d]))["_ii"] a#3 = ???*0* - *0* max number of linking steps reached @@ -132,69 +124,61 @@ isBuffer = module l = ???*0* - *0* unsupported expression -m = ???*0* -- *0* ???*1*((???*2* | ???*3* | ???*7* | ???*11*)) - ⚠️ unknown callee -- *1* module["bytesToWords"] - ⚠️ nested operation -- *2* arguments[0] +m = module["bytesToWords"]((???*0* | ???*1* | ???*3*)) +- *0* arguments[0] ⚠️ function calls are not analysed yet -- *3* ???*4*(???*6*) - ⚠️ unknown callee -- *4* ???*5*["stringToBytes"] - ⚠️ unknown object -- *5* module["bin"] +- *1* module["bin"]["stringToBytes"](???*2*) ⚠️ nested operation -- *6* message +- *2* message ⚠️ circular variable reference -- *7* ???*8*["call"](message, 0) +- *3* ???*4*["call"](message, 0) ⚠️ unknown callee object -- *8* ???*9*["slice"] +- *4* ???*5*["slice"] ⚠️ unknown object -- *9* ???*10*["prototype"] +- *5* ???*6*["prototype"] ⚠️ unknown object -- *10* FreeVar(Array) +- *6* FreeVar(Array) ⚠️ unknown global -- *11* ???*12*() - ⚠️ nested operation -- *12* ???*13*["toString"] - ⚠️ unknown object -- *13* message - ⚠️ circular variable reference md5 = (...) => (undefined | crypt["endian"]([a, b, c, d])) -message#3 = (???*0* | ???*1* | ???*15* | ???*19*()) +message#3 = ( + | ???*0* + | module["bin"]["stringToBytes"]((???*1* | ???*2* | ???*4*)) + | module["utf8"]["stringToBytes"]((???*8* | ???*9* | ???*11*)) + | ???*15* + | ???*19*() +) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*((???*4* | ???*5* | ???*9* | ???*13*())) - ⚠️ unknown callee -- *2* ???*3*["stringToBytes"] - ⚠️ unknown object -- *3* module["bin"] - ⚠️ nested operation -- *4* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet -- *5* ???*6*(???*8*) - ⚠️ unknown callee -- *6* ???*7*["stringToBytes"] - ⚠️ unknown object -- *7* module["bin"] +- *2* module["bin"]["stringToBytes"](???*3*) ⚠️ nested operation -- *8* message +- *3* message ⚠️ circular variable reference -- *9* ???*10*["call"](message, 0) +- *4* ???*5*["call"](message, 0) ⚠️ unknown callee object -- *10* ???*11*["slice"] +- *5* ???*6*["slice"] ⚠️ unknown object -- *11* ???*12*["prototype"] +- *6* ???*7*["prototype"] ⚠️ unknown object -- *12* FreeVar(Array) +- *7* FreeVar(Array) ⚠️ unknown global -- *13* ???*14*["toString"] - ⚠️ unknown object -- *14* message +- *8* arguments[0] + ⚠️ function calls are not analysed yet +- *9* module["bin"]["stringToBytes"](???*10*) + ⚠️ nested operation +- *10* message ⚠️ circular variable reference +- *11* ???*12*["call"](message, 0) + ⚠️ unknown callee object +- *12* ???*13*["slice"] + ⚠️ unknown object +- *13* ???*14*["prototype"] + ⚠️ unknown object +- *14* FreeVar(Array) + ⚠️ unknown global - *15* ???*16*["call"](message, 0) ⚠️ unknown callee object - *16* ???*17*["slice"] diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/peg/resolved-effects.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/peg/resolved-effects.snapshot index 75e62f66b44a9..08d6009f70df6 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/peg/resolved-effects.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/peg/resolved-effects.snapshot @@ -2166,14 +2166,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -620 -> 625 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[0-9]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +620 -> 625 conditional = /^[0-9]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 625 -> 627 member call = ???*0*["charAt"](???*1*) @@ -2209,14 +2205,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -630 -> 637 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[0-9]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +630 -> 637 conditional = /^[0-9]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 637 -> 639 member call = ???*0*["charAt"](???*1*) @@ -2276,14 +2268,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -648 -> 653 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[0-9]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +648 -> 653 conditional = /^[0-9]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 653 -> 655 member call = ???*0*["charAt"](???*1*) @@ -2329,14 +2317,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -658 -> 665 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[0-9]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +658 -> 665 conditional = /^[0-9]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 665 -> 667 member call = ???*0*["charAt"](???*1*) @@ -2893,14 +2877,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -0 -> 817 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[ \t\n\r]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +0 -> 817 conditional = /^[ \t\n\r]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 817 -> 819 member call = ???*0*["charAt"](???*1*) @@ -2956,14 +2936,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -827 -> 832 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[\n\r]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +827 -> 832 conditional = /^[\n\r]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 832 -> 834 member call = ???*0*["charAt"](???*1*) @@ -3001,14 +2977,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -827 -> 845 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[\n\r]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +827 -> 845 conditional = /^[\n\r]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 845 -> 847 member call = ???*0*["charAt"](???*1*) @@ -4031,14 +4003,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -0 -> 1140 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[a-zA-Z_]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +0 -> 1140 conditional = /^[a-zA-Z_]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 1140 -> 1142 member call = ???*0*["charAt"](???*1*) @@ -4088,14 +4056,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -1146 -> 1151 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[a-zA-Z0-9_]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +1146 -> 1151 conditional = /^[a-zA-Z0-9_]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 1151 -> 1153 member call = ???*0*["charAt"](???*1*) @@ -4138,14 +4102,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -1146 -> 1162 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[a-zA-Z0-9_]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +1146 -> 1162 conditional = /^[a-zA-Z0-9_]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 1162 -> 1164 member call = ???*0*["charAt"](???*1*) @@ -4866,14 +4826,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -0 -> 1349 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[0-9a-f]/i["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +0 -> 1349 conditional = /^[0-9a-f]/i["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 1349 -> 1351 member call = ???*0*["charAt"](???*1*) @@ -7562,14 +7518,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -0 -> 2144 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[0-9]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +0 -> 2144 conditional = /^[0-9]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 2144 -> 2146 member call = ???*0*["charAt"](???*1*) @@ -7619,14 +7571,10 @@ - *1* arguments[0] ⚠️ function calls are not analysed yet -2149 -> 2156 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[0-9]/["test"] - ⚠️ nested operation -- *2* ???*3*["charAt"](peg$currPos) +2149 -> 2156 conditional = /^[0-9]/["test"](???*0*) +- *0* ???*1*["charAt"](peg$currPos) ⚠️ unknown callee object -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet 2156 -> 2158 member call = ???*0*["charAt"](???*1*) diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/react-dom-production/resolved-effects.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/react-dom-production/resolved-effects.snapshot index 3f8ed164f072d..0f2a9a158887a 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/react-dom-production/resolved-effects.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/react-dom-production/resolved-effects.snapshot @@ -55,12 +55,8 @@ - *0* arguments[0] ⚠️ function calls are not analysed yet -0 -> 24 conditional = ???*0* -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/["test"] - ⚠️ nested operation -- *2* arguments[0] +0 -> 24 conditional = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/["test"](???*0*) +- *0* arguments[0] ⚠️ function calls are not analysed yet 0 -> 28 conditional = (null !== ???*0*) @@ -115,11 +111,7 @@ 0 -> 49 member call = "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style"["split"](" ") -0 -> 50 member call = ???*0*["forEach"]((...) => undefined) -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style"["split"] - ⚠️ nested operation +0 -> 50 member call = "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style"["split"](" ")["forEach"]((...) => undefined) 0 -> 53 member call = [ ["acceptCharset", "accept-charset"], @@ -138,11 +130,7 @@ 0 -> 67 member call = "allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope"["split"](" ") -0 -> 68 member call = ???*0*["forEach"]((...) => undefined) -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope"["split"] - ⚠️ nested operation +0 -> 68 member call = "allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope"["split"](" ")["forEach"]((...) => undefined) 68 -> 71 member call = ???*0*["toLowerCase"]() - *0* arguments[0] @@ -168,11 +156,7 @@ 0 -> 91 member call = "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height"["split"](" ") -0 -> 92 member call = ???*0*["forEach"]((...) => undefined) -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height"["split"] - ⚠️ nested operation +0 -> 92 member call = "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height"["split"](" ")["forEach"]((...) => undefined) 92 -> 94 member call = ???*0*["replace"](/[\-:]([a-z])/g, (...) => (undefined | a[1]["toUpperCase"]())) - *0* arguments[0] @@ -180,11 +164,7 @@ 0 -> 98 member call = "xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type"["split"](" ") -0 -> 99 member call = ???*0*["forEach"]((...) => undefined) -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type"["split"] - ⚠️ nested operation +0 -> 99 member call = "xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type"["split"](" ")["forEach"]((...) => undefined) 99 -> 101 member call = ???*0*["replace"](/[\-:]([a-z])/g, (...) => (undefined | a[1]["toUpperCase"]())) - *0* arguments[0] @@ -219,15 +199,15 @@ ⚠️ circular variable reference 0 -> 128 conditional = ( - | (0 !== (???*0* | ???*3*)) + | (0 !== (???*0* | null["type"])) + | ???*3* | ???*4* - | ???*5* | null["attributeNamespace"] - | !(???*8*) - | ("o" !== ???*9*) - | ("O" !== ???*11*) - | ("n" !== ???*13*) - | ("N" !== ???*15*) + | !(???*7*) + | ("o" !== (???*8* | null["attributeName"][0])) + | ("O" !== (???*10* | null["attributeName"][0])) + | ("n" !== (???*12* | null["attributeName"][1])) + | ("N" !== (???*14* | null["attributeName"][1])) ) - *0* ???*1*["type"] ⚠️ unknown object @@ -235,32 +215,30 @@ ⚠️ unknown object prototype methods or values - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* null["type"] - ⚠️ nested operation -- *4* arguments[3] +- *3* arguments[3] ⚠️ function calls are not analysed yet -- *5* ???*6*["attributeNamespace"] +- *4* ???*5*["attributeNamespace"] ⚠️ unknown object -- *6* {}[???*7*] +- *5* {}[???*6*] ⚠️ unknown object prototype methods or values -- *7* arguments[1] +- *6* arguments[1] ⚠️ function calls are not analysed yet -- *8* unsupported expression -- *9* ???*10*[0] +- *7* unsupported expression +- *8* ???*9*[0] ⚠️ unknown object -- *10* arguments[1] +- *9* arguments[1] ⚠️ function calls are not analysed yet -- *11* ???*12*[0] +- *10* ???*11*[0] ⚠️ unknown object -- *12* arguments[1] +- *11* arguments[1] ⚠️ function calls are not analysed yet -- *13* ???*14*[1] +- *12* ???*13*[1] ⚠️ unknown object -- *14* arguments[1] +- *13* arguments[1] ⚠️ function calls are not analysed yet -- *15* ???*16*[1] +- *14* ???*15*[1] ⚠️ unknown object -- *16* arguments[1] +- *15* arguments[1] ⚠️ function calls are not analysed yet 128 -> 129 call = (...) => (undefined | !(0) | !(1) | !(b) | (!(1) === b) | FreeVar(isNaN)(b) | (FreeVar(isNaN)(b) || ???*0*))( @@ -709,11 +687,57 @@ ${La}${a}` | undefined | ` ${La}${a}` -)((???*0* | undefined["type"] | ""["type"])) +)( + ( + | ???*0* + | undefined["type"] + | ""["type"] + | ` +${???*2*}`["type"] + | ` +${(???*7* | ???*8* | ???*13* | "")}${(???*18* | "")}`["type"] + ) +) - *0* ???*1*["type"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet +- *2* ???*3*["replace"](" at new ", " at ") + ⚠️ unknown callee object +- *3* ???*4*[g] + ⚠️ unknown object +- *4* ???*5*["split"]("\n") + ⚠️ unknown callee object +- *5* ???*6*["stack"] + ⚠️ unknown object +- *6* l + ⚠️ pattern without value +- *7* La + ⚠️ pattern without value +- *8* ???*9*(/\n( *(at )?)/) + ⚠️ unknown callee +- *9* ???*10*["match"] + ⚠️ unknown object +- *10* ???*11*() + ⚠️ nested operation +- *11* ???*12*["trim"] + ⚠️ unknown object +- *12* ???["stack"] + ⚠️ unknown object +- *13* ???*14*[1] + ⚠️ unknown object +- *14* ???*15*(/\n( *(at )?)/) + ⚠️ unknown callee +- *15* ???*16*["match"] + ⚠️ unknown object +- *16* ???*17*() + ⚠️ nested operation +- *17* ???["trim"] + ⚠️ unknown object +- *18* ???*19*["type"] + ⚠️ unknown object +- *19* a + ⚠️ circular variable reference 0 -> 253 call = (...) => ( | undefined @@ -733,25 +757,166 @@ ${La}${a}` ${La}${a}` )("SuspenseList") -0 -> 257 call = (...) => (undefined | "" | k | Ma(a))((???*0* | undefined["type"] | ""["type"]), false) +0 -> 257 call = (...) => (undefined | "" | k | Ma(a))( + ( + | ???*0* + | undefined["type"] + | ""["type"] + | ` +${???*2*}`["type"] + | ` +${(???*7* | ???*8* | ???*13* | "")}${(???*18* | "")}`["type"] + ), + false +) - *0* ???*1*["type"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet +- *2* ???*3*["replace"](" at new ", " at ") + ⚠️ unknown callee object +- *3* ???*4*[g] + ⚠️ unknown object +- *4* ???*5*["split"]("\n") + ⚠️ unknown callee object +- *5* ???*6*["stack"] + ⚠️ unknown object +- *6* l + ⚠️ pattern without value +- *7* La + ⚠️ pattern without value +- *8* ???*9*(/\n( *(at )?)/) + ⚠️ unknown callee +- *9* ???*10*["match"] + ⚠️ unknown object +- *10* ???*11*() + ⚠️ nested operation +- *11* ???*12*["trim"] + ⚠️ unknown object +- *12* ???["stack"] + ⚠️ unknown object +- *13* ???*14*[1] + ⚠️ unknown object +- *14* ???*15*(/\n( *(at )?)/) + ⚠️ unknown callee +- *15* ???*16*["match"] + ⚠️ unknown object +- *16* ???*17*() + ⚠️ nested operation +- *17* ???["trim"] + ⚠️ unknown object +- *18* ???*19*["type"] + ⚠️ unknown object +- *19* a + ⚠️ circular variable reference -0 -> 260 call = (...) => (undefined | "" | k | Ma(a))(???*0*, false) +0 -> 260 call = (...) => (undefined | "" | k | Ma(a))( + ( + | ???*0* + | undefined["type"]["render"] + | ""["type"]["render"] + | ` +${???*3*}`["type"]["render"] + | ` +${(???*8* | ???*9* | ???*14* | "")}${(???*19* | "")}`["type"]["render"] + ), + false +) - *0* ???*1*["render"] ⚠️ unknown object - *1* ???*2*["type"] ⚠️ unknown object - *2* arguments[0] ⚠️ function calls are not analysed yet +- *3* ???*4*["replace"](" at new ", " at ") + ⚠️ unknown callee object +- *4* ???*5*[g] + ⚠️ unknown object +- *5* ???*6*["split"]("\n") + ⚠️ unknown callee object +- *6* ???*7*["stack"] + ⚠️ unknown object +- *7* l + ⚠️ pattern without value +- *8* La + ⚠️ pattern without value +- *9* ???*10*(/\n( *(at )?)/) + ⚠️ unknown callee +- *10* ???*11*["match"] + ⚠️ unknown object +- *11* ???*12*() + ⚠️ nested operation +- *12* ???*13*["trim"] + ⚠️ unknown object +- *13* ...[...] + ⚠️ unknown object +- *14* ???*15*[1] + ⚠️ unknown object +- *15* ???*16*(/\n( *(at )?)/) + ⚠️ unknown callee +- *16* ???*17*["match"] + ⚠️ unknown object +- *17* ???*18*() + ⚠️ nested operation +- *18* ...[...] + ⚠️ unknown object +- *19* ???*20*["type"] + ⚠️ unknown object +- *20* a + ⚠️ circular variable reference -0 -> 262 call = (...) => (undefined | "" | k | Ma(a))((???*0* | undefined["type"] | ""["type"]), true) +0 -> 262 call = (...) => (undefined | "" | k | Ma(a))( + ( + | ???*0* + | undefined["type"] + | ""["type"] + | ` +${???*2*}`["type"] + | ` +${(???*7* | ???*8* | ???*13* | "")}${(???*18* | "")}`["type"] + ), + true +) - *0* ???*1*["type"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet +- *2* ???*3*["replace"](" at new ", " at ") + ⚠️ unknown callee object +- *3* ???*4*[g] + ⚠️ unknown object +- *4* ???*5*["split"]("\n") + ⚠️ unknown callee object +- *5* ???*6*["stack"] + ⚠️ unknown object +- *6* l + ⚠️ pattern without value +- *7* La + ⚠️ pattern without value +- *8* ???*9*(/\n( *(at )?)/) + ⚠️ unknown callee +- *9* ???*10*["match"] + ⚠️ unknown object +- *10* ???*11*() + ⚠️ nested operation +- *11* ???*12*["trim"] + ⚠️ unknown object +- *12* ???["stack"] + ⚠️ unknown object +- *13* ???*14*[1] + ⚠️ unknown object +- *14* ???*15*(/\n( *(at )?)/) + ⚠️ unknown callee +- *15* ???*16*["match"] + ⚠️ unknown object +- *16* ???*17*() + ⚠️ nested operation +- *17* ???["trim"] + ⚠️ unknown object +- *18* ???*19*["type"] + ⚠️ unknown object +- *19* a + ⚠️ circular variable reference 0 -> 263 conditional = ("function" === ???*0*) - *0* unsupported expression @@ -775,11 +940,22 @@ ${La}${a}` | b | (Qa(a["type"]) || "Memo") | Qa(a(b)) -)((???*0* | ""["type"] | "ForwardRef"["type"])) +)( + ( + | ???*0* + | null["displayName"]["type"] + | null["name"]["type"] + | ""["type"] + | `ForwardRef(${???*2*})`["type"] + | "ForwardRef"["type"] + ) +) - *0* ???*1*["type"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet +- *2* a + ⚠️ circular variable reference 266 -> 280 call = ( | ???*0* @@ -793,11 +969,14 @@ ${La}${a}` ( | ???*4* | ""["render"] + | `ForwardRef(${???*6*})`["render"] | "ForwardRef"["render"] | ""["displayName"] + | `ForwardRef(${???*7*})`["displayName"] | "ForwardRef"["displayName"] | null | ""["_payload"] + | `ForwardRef(${???*8*})`["_payload"] | "ForwardRef"["_payload"] ) ) @@ -813,6 +992,12 @@ ${La}${a}` ⚠️ unknown object - *5* arguments[0] ⚠️ function calls are not analysed yet +- *6* a + ⚠️ circular variable reference +- *7* a + ⚠️ circular variable reference +- *8* a + ⚠️ circular variable reference 266 -> 281 call = (...) => ( | undefined @@ -1212,10 +1397,10 @@ ${La}${a}` - *1* c ⚠️ circular variable reference -414 -> 433 conditional = (???*0* === (???*16* | 0 | undefined | ???*17* | "")) +414 -> 433 conditional = (???*0* === (???*15* | 0 | undefined | ???*16* | "")) - *0* ???*1*["value"] ⚠️ unknown object -- *1* ???*2*[(0 | ???*3* | ???*7* | ???*12*)] +- *1* ???*2*[(0 | ???*3* | ???*7* | null["hasOwnProperty"](???*12*))] ⚠️ unknown object - *2* arguments[0] ⚠️ function calls are not analysed yet @@ -1236,17 +1421,15 @@ ${La}${a}` ⚠️ unknown object - *11* ???[(??? | 0 | undefined | ??? | "")] ⚠️ unknown object -- *12* ???*13*(???*14*) - ⚠️ unknown callee -- *13* null["hasOwnProperty"] - ⚠️ nested operation -- *14* `$${???*15*}` +- *12* `$${???*13*}` ⚠️ nested operation -- *15* ???["value"] +- *13* ???*14*["value"] ⚠️ unknown object -- *16* arguments[2] +- *14* ???[(??? | 0 | undefined | ??? | "")] + ⚠️ unknown object +- *15* arguments[2] ⚠️ function calls are not analysed yet -- *17* c +- *16* c ⚠️ circular variable reference 0 -> 443 conditional = (null != ???*0*) @@ -1289,28 +1472,24 @@ ${La}${a}` - *7* arguments[0] ⚠️ function calls are not analysed yet -0 -> 450 conditional = (null == (???*0* | ???*2* | ???*3* | ???*4* | "")) +0 -> 450 conditional = (null == (???*0* | ""["value"] | ""["children"] | ???*2* | ???*3* | "")) - *0* ???*1*["value"] ⚠️ unknown object - *1* arguments[1] ⚠️ function calls are not analysed yet -- *2* ""["value"] - ⚠️ nested operation -- *3* arguments[1] +- *2* arguments[1] ⚠️ function calls are not analysed yet -- *4* c +- *3* c ⚠️ circular variable reference -450 -> 453 conditional = (null != (???*0* | ???*2* | ???*3* | ???*4* | "")) +450 -> 453 conditional = (null != (???*0* | ""["value"] | ""["children"] | ???*2* | ???*3* | "")) - *0* ???*1*["value"] ⚠️ unknown object - *1* arguments[1] ⚠️ function calls are not analysed yet -- *2* ""["value"] - ⚠️ nested operation -- *3* arguments[1] +- *2* arguments[1] ⚠️ function calls are not analysed yet -- *4* c +- *3* c ⚠️ circular variable reference 453 -> 454 conditional = (null != (???*0* | ???*1* | ???*3* | "")) @@ -1638,9 +1817,7 @@ ${La}${a}` ⚠️ unknown callee object - *4* c ⚠️ pattern without value -- *5* ???*6*("--") - ⚠️ unknown callee -- *6* "cssFloat"["indexOf"] +- *5* "cssFloat"["indexOf"]("--") ⚠️ nested operation 532 -> 538 member call = (???*0* | ???*1*)["setProperty"]((???*3* | "cssFloat"), (undefined | "" | ???*4*() | `${???*7*}px`)) @@ -1948,27 +2125,104 @@ ${La}${a}` 595 -> 597 call = (...) => undefined() 0 -> 599 call = (...) => (undefined | (a[Pf] || null))( - (???*0* | false["stateNode"] | undefined[???*2*] | null[???*3*]) + ( + | ???*0* + | !((undefined | ???*2* | null | ???*4*))["stateNode"] + | false["stateNode"] + | undefined[???*7*] + | null[???*8*] + | !(???*9*)[???*11*] + | !(???*12*)[???*18*] + ) ) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* arguments[1] +- *2* ???*3*[Pf] + ⚠️ unknown object +- *3* c + ⚠️ circular variable reference +- *4* !(???*5*) + ⚠️ nested operation +- *5* ???*6*["disabled"] + ⚠️ unknown object +- *6* d + ⚠️ circular variable reference +- *7* arguments[1] ⚠️ function calls are not analysed yet -- *3* arguments[1] +- *8* arguments[1] + ⚠️ function calls are not analysed yet +- *9* ???*10*["disabled"] + ⚠️ unknown object +- *10* d + ⚠️ circular variable reference +- *11* arguments[1] + ⚠️ function calls are not analysed yet +- *12* ("button" === (???*13* | ???*14* | ???*16* | false)) + ⚠️ nested operation +- *13* arguments[0] + ⚠️ function calls are not analysed yet +- *14* ???*15*["type"] + ⚠️ unknown object +- *15* a + ⚠️ circular variable reference +- *16* !(???*17*) + ⚠️ nested operation +- *17* d + ⚠️ circular variable reference +- *18* arguments[1] ⚠️ function calls are not analysed yet -0 -> 603 conditional = (???*0* | false["stateNode"] | undefined[???*2*] | null[???*3*] | ("function" !== ???*4*)) +0 -> 603 conditional = ( + | ???*0* + | !((undefined | ???*2* | null | ???*4*))["stateNode"] + | false["stateNode"] + | undefined[???*7*] + | null[???*8*] + | !(???*9*)[???*11*] + | !(???*12*)[???*18*] + | ("function" !== ???*19*) +) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* arguments[1] +- *2* ???*3*[Pf] + ⚠️ unknown object +- *3* c + ⚠️ circular variable reference +- *4* !(???*5*) + ⚠️ nested operation +- *5* ???*6*["disabled"] + ⚠️ unknown object +- *6* d + ⚠️ circular variable reference +- *7* arguments[1] ⚠️ function calls are not analysed yet -- *3* arguments[1] +- *8* arguments[1] ⚠️ function calls are not analysed yet -- *4* unsupported expression +- *9* ???*10*["disabled"] + ⚠️ unknown object +- *10* d + ⚠️ circular variable reference +- *11* arguments[1] + ⚠️ function calls are not analysed yet +- *12* ("button" === (???*13* | ???*14* | ???*16* | false)) + ⚠️ nested operation +- *13* arguments[0] + ⚠️ function calls are not analysed yet +- *14* ???*15*["type"] + ⚠️ unknown object +- *15* a + ⚠️ circular variable reference +- *16* !(???*17*) + ⚠️ nested operation +- *17* d + ⚠️ circular variable reference +- *18* arguments[1] + ⚠️ function calls are not analysed yet +- *19* unsupported expression 603 -> 604 call = (...) => ( | undefined @@ -2146,7 +2400,13 @@ ${La}${a}` - *0* FreeVar(Error) ⚠️ unknown global -0 -> 656 conditional = (null === ???*0*) +0 -> 656 conditional = (null === ( + | ???*0* + | undefined["return"]["alternate"] + | null["return"]["alternate"] + | undefined["return"]["child"] + | null["return"]["child"] +)) - *0* ???*1*["alternate"] ⚠️ unknown object - *1* ???*2*["return"] @@ -2154,7 +2414,13 @@ ${La}${a}` - *2* arguments[0] ⚠️ function calls are not analysed yet -0 -> 660 conditional = (???*0* === ???*3*) +0 -> 660 conditional = ((???*0* | undefined["return"]["child"] | null["return"]["child"]) === ( + | ???*3* + | undefined["return"]["alternate"]["child"] + | null["return"]["alternate"]["child"] + | undefined["return"]["child"]["child"] + | null["return"]["child"]["child"] +)) - *0* ???*1*["child"] ⚠️ unknown object - *1* ???*2*["return"] @@ -2170,7 +2436,13 @@ ${La}${a}` - *6* arguments[0] ⚠️ function calls are not analysed yet -660 -> 662 conditional = (???*0* === (???*3* | ???*4* | undefined | ???*6* | null)) +660 -> 662 conditional = (( + | ???*0* + | undefined["return"]["alternate"] + | null["return"]["alternate"] + | undefined["return"]["child"] + | null["return"]["child"] +) === (???*3* | ???*4* | undefined | ???*6* | null)) - *0* ???*1*["alternate"] ⚠️ unknown object - *1* ???*2*["return"] @@ -2192,7 +2464,13 @@ ${La}${a}` - *1* arguments[0] ⚠️ function calls are not analysed yet -660 -> 664 conditional = (???*0* === (???*3* | undefined | ???*5* | ???*6* | null)) +660 -> 664 conditional = (( + | ???*0* + | undefined["return"]["alternate"] + | null["return"]["alternate"] + | undefined["return"]["child"] + | null["return"]["child"] +) === (???*3* | undefined | ???*5* | ???*6* | null)) - *0* ???*1*["alternate"] ⚠️ unknown object - *1* ???*2*["return"] @@ -2228,21 +2506,17 @@ ${La}${a}` - *0* FreeVar(Error) ⚠️ unknown global -0 -> 671 conditional = ((???*0* | ???*2*) !== (???*3* | ???*6*)) +0 -> 671 conditional = ((???*0* | undefined["return"] | null["return"]) !== (???*2* | undefined["return"] | null["return"])) - *0* ???*1*["return"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* undefined["return"] - ⚠️ nested operation -- *3* ???*4*["return"] +- *2* ???*3*["return"] ⚠️ unknown object -- *4* ???*5*["alternate"] +- *3* ???*4*["alternate"] ⚠️ unknown object -- *5* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *6* undefined["return"] - ⚠️ nested operation 671 -> 674 conditional = !((false | true)) @@ -2262,20 +2536,18 @@ ${La}${a}` - *0* FreeVar(Error) ⚠️ unknown global -0 -> 681 conditional = ((???*0* | ???*2*) !== (???*3* | undefined | ???*5* | ???*6* | null)) +0 -> 681 conditional = ((???*0* | undefined["alternate"] | null["alternate"]) !== (???*2* | undefined | ???*4* | ???*5* | null)) - *0* ???*1*["alternate"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* undefined["alternate"] - ⚠️ nested operation -- *3* ???*4*["alternate"] +- *2* ???*3*["alternate"] ⚠️ unknown object -- *4* arguments[0] +- *3* arguments[0] ⚠️ function calls are not analysed yet -- *5* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *6* a +- *5* a ⚠️ circular variable reference 681 -> 682 call = (...) => ( @@ -2292,13 +2564,11 @@ ${La}${a}` - *0* FreeVar(Error) ⚠️ unknown global -0 -> 685 conditional = (3 !== (???*0* | ???*2*)) +0 -> 685 conditional = (3 !== (???*0* | undefined["tag"] | null["tag"])) - *0* ???*1*["tag"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* undefined["tag"] - ⚠️ nested operation 685 -> 686 call = (...) => ( | undefined @@ -3264,12 +3534,8 @@ ${La}${a}` - *1* arguments[3] ⚠️ function calls are not analysed yet -903 -> 908 member call = ???*0*["indexOf"](???*2*) -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit"["split"] - ⚠️ nested operation -- *2* arguments[0] +903 -> 908 member call = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit"["split"](" ")["indexOf"](???*0*) +- *0* arguments[0] ⚠️ function calls are not analysed yet 903 -> 909 conditional = ???*0* @@ -3980,34 +4246,47 @@ ${La}${a}` 0 -> 1070 conditional = (false | true) 1070 -> 1071 call = (...) => (undefined | (???*0* !== $d["indexOf"](b["keyCode"])) | (229 !== b["keyCode"]) | !(0) | !(1))( - (???*1* | undefined | null | ???*2* | ???*7* | ???*13*), - ???*14* + ( + | ???*1* + | undefined + | null + | null["value"]["slice"]((???*2* | 0), ???*3*) + | undefined["value"]["slice"]((???*4* | 0), ???*5*) + | ???*6* + | null["textContent"]["slice"]((???*12* | 0), ???*13*) + | undefined["textContent"]["slice"]((???*14* | 0), ???*15*) + | ???*16* + ), + ???*17* ) - *0* unsupported expression - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* ???*3*((???*5* | 0), ???*6*) - ⚠️ unknown callee -- *3* ???*4*["slice"] - ⚠️ unknown object -- *4* null["value"] - ⚠️ nested operation -- *5* a +- *2* a ⚠️ pattern without value -- *6* unsupported expression -- *7* ???*8*["slice"]((???*11* | 0), ???*12*) +- *3* unsupported expression +- *4* a + ⚠️ pattern without value +- *5* unsupported expression +- *6* ???*7*["slice"]((???*10* | 0), ???*11*) ⚠️ unknown callee object -- *8* ???*9*["value"] +- *7* ???*8*["value"] ⚠️ unknown object -- *9* ???*10*["parentNode"] +- *8* ???*9*["parentNode"] ⚠️ unknown object -- *10* arguments[2] +- *9* arguments[2] ⚠️ function calls are not analysed yet -- *11* a +- *10* a + ⚠️ pattern without value +- *11* unsupported expression +- *12* a ⚠️ pattern without value -- *12* unsupported expression - *13* unsupported expression -- *14* arguments[1] +- *14* a + ⚠️ pattern without value +- *15* unsupported expression +- *16* unsupported expression +- *17* arguments[1] ⚠️ function calls are not analysed yet 1070 -> 1072 call = (...) => (undefined | md | ???*0*)() @@ -4255,7 +4534,14 @@ ${La}${a}` - *7* arguments[1] ⚠️ function calls are not analysed yet -0 -> 1151 call = (...) => (undefined | a)((???*0* | 0 | ???*1* | (???*2* + ???*3*))) +0 -> 1151 call = (...) => (undefined | a)( + ( + | ???*0* + | 0 + | ???*1* + | (???*2* + (undefined["textContent"]["length"] | ???*3*)) + ) +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* d @@ -4264,22 +4550,30 @@ ${La}${a}` ⚠️ circular variable reference - *3* ???*4*["length"] ⚠️ unknown object -- *4* undefined["textContent"] - ⚠️ nested operation +- *4* ???*5*["textContent"] + ⚠️ unknown object +- *5* a + ⚠️ circular variable reference -0 -> 1153 conditional = (3 === (???*0* | ???*1*)) -- *0* undefined["nodeType"] - ⚠️ nested operation -- *1* ???*2*["nodeType"] +0 -> 1153 conditional = (3 === (undefined["nodeType"] | ???*0* | 0["nodeType"])) +- *0* ???*1*["nodeType"] ⚠️ unknown object -- *2* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet -0 -> 1157 conditional = (undefined["nextSibling"] | ???*0* | 0["nextSibling"]) +0 -> 1157 conditional = (undefined["nextSibling"] | ???*0* | 0["nextSibling"] | (???*2* + ???*3*)["nextSibling"]) - *0* ???*1*["nextSibling"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet +- *2* a + ⚠️ circular variable reference +- *3* ???*4*["length"] + ⚠️ unknown object +- *4* ???*5*["textContent"] + ⚠️ unknown object +- *5* c + ⚠️ circular variable reference 0 -> 1160 call = (...) => (undefined | a)( (undefined | ???*0* | 0 | ???*1* | (???*2* + ???*3*) | ???*6* | ???*8* | ???*9*) @@ -4330,7 +4624,9 @@ ${La}${a}` 0 -> 1175 conditional = (("string" === ???*0*) | false) - *0* unsupported expression -0 -> 1178 call = (...) => (undefined | null | (a["activeElement"] || a["body"]) | a["body"])(???*0*) +0 -> 1178 call = (...) => (undefined | null | (a["activeElement"] || a["body"]) | a["body"])( + (???*0* | undefined["contentWindow"]["document"] | null["contentWindow"]["document"]) +) - *0* ???*1*["document"] ⚠️ unknown object - *1* FreeVar(window) @@ -4521,29 +4817,25 @@ ${La}${a}` - *2* c ⚠️ pattern without value -0 -> 1324 conditional = (???*0* | ???*3* | ???*7* | ???*11*) -- *0* ???*1*(???*2*) - ⚠️ unknown callee -- *1* undefined["hasOwnProperty"] - ⚠️ nested operation -- *2* c +0 -> 1324 conditional = (undefined["hasOwnProperty"](???*0*) | ???*1* | ???*5* | ???*9*) +- *0* c ⚠️ pattern without value -- *3* (???*4* | ???*5*)(???*6*) +- *1* (???*2* | ???*3*)(???*4*) ⚠️ non-function callee -- *4* FreeVar(undefined) +- *2* FreeVar(undefined) ⚠️ unknown global -- *5* unknown mutation -- *6* c +- *3* unknown mutation +- *4* c ⚠️ pattern without value -- *7* ???*8*["hasOwnProperty"](???*10*) +- *5* ???*6*["hasOwnProperty"](???*8*) ⚠️ unknown callee object -- *8* {}[???*9*] +- *6* {}[???*7*] ⚠️ unknown object prototype methods or values -- *9* arguments[0] +- *7* arguments[0] ⚠️ function calls are not analysed yet -- *10* c +- *8* c ⚠️ pattern without value -- *11* unsupported expression +- *9* unsupported expression 0 -> 1327 call = (...) => (undefined | Xe[a] | a | ???*0*)("animationend") - *0* unsupported expression @@ -4572,58 +4864,36 @@ ${La}${a}` - *1* arguments[0] ⚠️ function calls are not analysed yet -0 -> 1339 member call = ???*0*["toLowerCase"]() -- *0* ???*1*[gf] - ⚠️ unknown object -- *1* ???*2*(" ") - ⚠️ unknown callee -- *2* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"] - ⚠️ nested operation +0 -> 1339 member call = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"](" ")[0]["toLowerCase"]() -0 -> 1342 member call = ???*0*["toUpperCase"]() -- *0* ???*1*[0] - ⚠️ unknown object -- *1* ???*2*[gf] - ⚠️ unknown object -- *2* ???*3*(" ") - ⚠️ unknown callee -- *3* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"] - ⚠️ nested operation +0 -> 1342 member call = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"](" ")[0][0]["toUpperCase"]() -0 -> 1344 member call = ???*0*["slice"](1) -- *0* ???*1*[gf] - ⚠️ unknown object -- *1* ???*2*(" ") - ⚠️ unknown callee -- *2* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"] - ⚠️ nested operation +0 -> 1344 member call = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"](" ")[0]["slice"](1) -0 -> 1345 call = (...) => undefined(???*0*(), `on${???*4*}`) +0 -> 1345 call = (...) => undefined(???*0*(), `on${???*3*}`) - *0* ???*1*["toLowerCase"] ⚠️ unknown object -- *1* ???*2*[gf] +- *1* ???*2*[0] ⚠️ unknown object -- *2* ???*3*(" ") - ⚠️ unknown callee -- *3* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"] +- *2* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"](" ") ⚠️ nested operation -- *4* (???*5* + ???*9*) +- *3* (???*4* + ???*8*) ⚠️ nested operation -- *5* ???*6*() +- *4* ???*5*() ⚠️ nested operation -- *6* ???*7*["toUpperCase"] +- *5* ???*6*["toUpperCase"] ⚠️ unknown object -- *7* ???*8*[0] +- *6* ???*7*[0] ⚠️ unknown object -- *8* ???[gf] - ⚠️ unknown object -- *9* ???*10*["slice"](1) - ⚠️ unknown callee object -- *10* ???*11*[gf] +- *7* ???[0] ⚠️ unknown object -- *11* ???*12*(" ") +- *8* ???*9*(1) ⚠️ unknown callee -- *12* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"] +- *9* ???*10*["slice"] + ⚠️ unknown object +- *10* ???*11*[0] + ⚠️ unknown object +- *11* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"](" ") ⚠️ nested operation 0 -> 1346 call = (...) => undefined( @@ -4678,19 +4948,17 @@ ${La}${a}` 0 -> 1358 member call = "change click focusin focusout input keydown keyup selectionchange"["split"](" ") -0 -> 1359 call = (...) => undefined("onChange", ???*0*) -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "change click focusin focusout input keydown keyup selectionchange"["split"] - ⚠️ nested operation +0 -> 1359 call = (...) => undefined( + "onChange", + "change click focusin focusout input keydown keyup selectionchange"["split"](" ") +) 0 -> 1361 member call = "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange"["split"](" ") -0 -> 1362 call = (...) => undefined("onSelect", ???*0*) -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange"["split"] - ⚠️ nested operation +0 -> 1362 call = (...) => undefined( + "onSelect", + "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange"["split"](" ") +) 0 -> 1363 call = (...) => undefined( "onBeforeInput", @@ -4699,41 +4967,32 @@ ${La}${a}` 0 -> 1365 member call = "compositionend focusout keydown keypress keyup mousedown"["split"](" ") -0 -> 1366 call = (...) => undefined("onCompositionEnd", ???*0*) -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "compositionend focusout keydown keypress keyup mousedown"["split"] - ⚠️ nested operation +0 -> 1366 call = (...) => undefined( + "onCompositionEnd", + "compositionend focusout keydown keypress keyup mousedown"["split"](" ") +) 0 -> 1368 member call = "compositionstart focusout keydown keypress keyup mousedown"["split"](" ") -0 -> 1369 call = (...) => undefined("onCompositionStart", ???*0*) -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "compositionstart focusout keydown keypress keyup mousedown"["split"] - ⚠️ nested operation +0 -> 1369 call = (...) => undefined( + "onCompositionStart", + "compositionstart focusout keydown keypress keyup mousedown"["split"](" ") +) 0 -> 1371 member call = "compositionupdate focusout keydown keypress keyup mousedown"["split"](" ") -0 -> 1372 call = (...) => undefined("onCompositionUpdate", ???*0*) -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "compositionupdate focusout keydown keypress keyup mousedown"["split"] - ⚠️ nested operation +0 -> 1372 call = (...) => undefined( + "onCompositionUpdate", + "compositionupdate focusout keydown keypress keyup mousedown"["split"](" ") +) 0 -> 1374 member call = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting"["split"](" ") 0 -> 1377 member call = "cancel close invalid load scroll toggle"["split"](" ") -0 -> 1378 member call = ???*0*["concat"](???*2*) -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "cancel close invalid load scroll toggle"["split"] - ⚠️ nested operation -- *2* ???*3*(" ") - ⚠️ unknown callee -- *3* "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting"["split"] - ⚠️ nested operation +0 -> 1378 member call = "cancel close invalid load scroll toggle"["split"](" ")["concat"]( + "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting"["split"](" ") +) 0 -> 1381 call = (...) => undefined((???*0* | "unknown-event"), ???*2*, ???*3*, ???*4*) - *0* ???*1*["type"] @@ -4751,7 +5010,7 @@ ${La}${a}` ⚠️ function calls are not analysed yet - *1* unsupported expression -1387 -> 1394 member call = ???*0*["isPropagationStopped"]() +1387 -> 1394 member call = (???*0* | null[0]["event"])["isPropagationStopped"]() - *0* ???*1*["event"] ⚠️ unknown object - *1* ???*2*[0] @@ -4759,7 +5018,11 @@ ${La}${a}` - *2* arguments[0] ⚠️ function calls are not analysed yet -1387 -> 1395 call = (...) => undefined(???*0*, ???*3*, ???*7*) +1387 -> 1395 call = (...) => undefined( + (???*0* | null[0]["event"]), + (???*3* | null[0][(???*7* | 0)]), + (???*8* | null[0][(???*13* | 0)]["currentTarget"]) +) - *0* ???*1*["event"] ⚠️ unknown object - *1* ???*2*[0] @@ -4773,17 +5036,19 @@ ${La}${a}` - *5* arguments[0] ⚠️ function calls are not analysed yet - *6* unsupported expression -- *7* ???*8*["currentTarget"] +- *7* unsupported expression +- *8* ???*9*["currentTarget"] ⚠️ unknown object -- *8* ???*9*[(???*11* | 0)] +- *9* ???*10*[(???*12* | 0)] ⚠️ unknown object -- *9* ???*10*[0] +- *10* ???*11*[0] ⚠️ unknown object -- *10* arguments[0] +- *11* arguments[0] ⚠️ function calls are not analysed yet -- *11* unsupported expression +- *12* unsupported expression +- *13* unsupported expression -1387 -> 1402 member call = ???*0*["isPropagationStopped"]() +1387 -> 1402 member call = (???*0* | null[0]["event"])["isPropagationStopped"]() - *0* ???*1*["event"] ⚠️ unknown object - *1* ???*2*[0] @@ -4791,7 +5056,11 @@ ${La}${a}` - *2* arguments[0] ⚠️ function calls are not analysed yet -1387 -> 1403 call = (...) => undefined(???*0*, ???*3*, ???*7*) +1387 -> 1403 call = (...) => undefined( + (???*0* | null[0]["event"]), + (???*3* | null[0][(???*7* | 0)]), + (???*8* | null[0][(???*13* | 0)]["currentTarget"]) +) - *0* ???*1*["event"] ⚠️ unknown object - *1* ???*2*[0] @@ -4805,15 +5074,17 @@ ${La}${a}` - *5* arguments[0] ⚠️ function calls are not analysed yet - *6* unsupported expression -- *7* ???*8*["currentTarget"] +- *7* unsupported expression +- *8* ???*9*["currentTarget"] ⚠️ unknown object -- *8* ???*9*[(???*11* | 0)] +- *9* ???*10*[(???*12* | 0)] ⚠️ unknown object -- *9* ???*10*[0] +- *10* ???*11*[0] ⚠️ unknown object -- *10* arguments[0] +- *11* arguments[0] ⚠️ function calls are not analysed yet -- *11* unsupported expression +- *12* unsupported expression +- *13* unsupported expression 0 -> 1407 member call = (???*0* | ???*2*)["has"](`${???*3*}__bubble`) - *0* ???*1*[of] @@ -4907,38 +5178,55 @@ ${La}${a}` - *0* arguments[1] ⚠️ function calls are not analysed yet -0 -> 1434 member call = ((...) => undefined | ???*0* | true)["bind"](null, ???*1*, (???*2* | ???*3* | ???*8*), ???*13*) +0 -> 1434 member call = ((...) => undefined | ???*0* | true)["bind"]( + null, + ???*1*, + ( + | ???*2* + | (...) => undefined["bind"](null, ???*3*, ???*4*, ???*5*) + | ???*6* + | true["bind"](null, ???*11*, ???*12*, ???*13*) + ), + ???*14* +) - *0* unsupported expression - *1* arguments[1] ⚠️ function calls are not analysed yet - *2* arguments[2] ⚠️ function calls are not analysed yet -- *3* ???*4*(null, ???*5*, ???*6*, ???*7*) - ⚠️ unknown callee -- *4* (...) => undefined["bind"] - ⚠️ nested operation -- *5* arguments[1] +- *3* arguments[1] ⚠️ function calls are not analysed yet -- *6* c +- *4* c ⚠️ circular variable reference -- *7* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *8* ???*9*["bind"](null, ???*10*, ???*11*, ???*12*) +- *6* ???*7*["bind"](null, ???*8*, ???*9*, ???*10*) ⚠️ unknown callee object -- *9* unsupported expression -- *10* arguments[1] +- *7* unsupported expression +- *8* arguments[1] ⚠️ function calls are not analysed yet -- *11* c +- *9* c ⚠️ circular variable reference -- *12* arguments[0] +- *10* arguments[0] ⚠️ function calls are not analysed yet +- *11* arguments[1] + ⚠️ function calls are not analysed yet +- *12* c + ⚠️ circular variable reference - *13* arguments[0] ⚠️ function calls are not analysed yet +- *14* arguments[0] + ⚠️ function calls are not analysed yet 0 -> 1436 member call = ???*0*["addEventListener"]( ???*1*, - (???*2* | ???*3* | ???*8*), - {"capture": true, "passive": ((...) => undefined | ???*13* | true)} + ( + | ???*2* + | (...) => undefined["bind"](null, ???*3*, ???*4*, ???*5*) + | ???*6* + | true["bind"](null, ???*11*, ???*12*, ???*13*) + ), + {"capture": true, "passive": ((...) => undefined | ???*14* | true)} ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -4946,107 +5234,142 @@ ${La}${a}` ⚠️ function calls are not analysed yet - *2* arguments[2] ⚠️ function calls are not analysed yet -- *3* ???*4*(null, ???*5*, ???*6*, ???*7*) - ⚠️ unknown callee -- *4* (...) => undefined["bind"] - ⚠️ nested operation -- *5* arguments[1] +- *3* arguments[1] ⚠️ function calls are not analysed yet -- *6* c +- *4* c ⚠️ circular variable reference -- *7* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *8* ???*9*["bind"](null, ???*10*, ???*11*, ???*12*) +- *6* ???*7*["bind"](null, ???*8*, ???*9*, ???*10*) ⚠️ unknown callee object -- *9* unsupported expression -- *10* arguments[1] +- *7* unsupported expression +- *8* arguments[1] ⚠️ function calls are not analysed yet -- *11* c +- *9* c ⚠️ circular variable reference -- *12* arguments[0] +- *10* arguments[0] ⚠️ function calls are not analysed yet -- *13* unsupported expression +- *11* arguments[1] + ⚠️ function calls are not analysed yet +- *12* c + ⚠️ circular variable reference +- *13* arguments[0] + ⚠️ function calls are not analysed yet +- *14* unsupported expression -0 -> 1438 member call = ???*0*["addEventListener"](???*1*, (???*2* | ???*3* | ???*8*), true) +0 -> 1438 member call = ???*0*["addEventListener"]( + ???*1*, + ( + | ???*2* + | (...) => undefined["bind"](null, ???*3*, ???*4*, ???*5*) + | ???*6* + | true["bind"](null, ???*11*, ???*12*, ???*13*) + ), + true +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* arguments[1] ⚠️ function calls are not analysed yet - *2* arguments[2] ⚠️ function calls are not analysed yet -- *3* ???*4*(null, ???*5*, ???*6*, ???*7*) - ⚠️ unknown callee -- *4* (...) => undefined["bind"] - ⚠️ nested operation -- *5* arguments[1] +- *3* arguments[1] ⚠️ function calls are not analysed yet -- *6* c +- *4* c ⚠️ circular variable reference -- *7* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *8* ???*9*["bind"](null, ???*10*, ???*11*, ???*12*) +- *6* ???*7*["bind"](null, ???*8*, ???*9*, ???*10*) ⚠️ unknown callee object -- *9* unsupported expression -- *10* arguments[1] +- *7* unsupported expression +- *8* arguments[1] ⚠️ function calls are not analysed yet -- *11* c +- *9* c ⚠️ circular variable reference -- *12* arguments[0] +- *10* arguments[0] + ⚠️ function calls are not analysed yet +- *11* arguments[1] + ⚠️ function calls are not analysed yet +- *12* c + ⚠️ circular variable reference +- *13* arguments[0] ⚠️ function calls are not analysed yet -0 -> 1440 member call = ???*0*["addEventListener"](???*1*, (???*2* | ???*3* | ???*8*), {"passive": ((...) => undefined | ???*13* | true)}) +0 -> 1440 member call = ???*0*["addEventListener"]( + ???*1*, + ( + | ???*2* + | (...) => undefined["bind"](null, ???*3*, ???*4*, ???*5*) + | ???*6* + | true["bind"](null, ???*11*, ???*12*, ???*13*) + ), + {"passive": ((...) => undefined | ???*14* | true)} +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* arguments[1] ⚠️ function calls are not analysed yet - *2* arguments[2] ⚠️ function calls are not analysed yet -- *3* ???*4*(null, ???*5*, ???*6*, ???*7*) - ⚠️ unknown callee -- *4* (...) => undefined["bind"] - ⚠️ nested operation -- *5* arguments[1] +- *3* arguments[1] ⚠️ function calls are not analysed yet -- *6* c +- *4* c ⚠️ circular variable reference -- *7* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *8* ???*9*["bind"](null, ???*10*, ???*11*, ???*12*) +- *6* ???*7*["bind"](null, ???*8*, ???*9*, ???*10*) ⚠️ unknown callee object -- *9* unsupported expression -- *10* arguments[1] +- *7* unsupported expression +- *8* arguments[1] ⚠️ function calls are not analysed yet -- *11* c +- *9* c ⚠️ circular variable reference -- *12* arguments[0] +- *10* arguments[0] ⚠️ function calls are not analysed yet -- *13* unsupported expression +- *11* arguments[1] + ⚠️ function calls are not analysed yet +- *12* c + ⚠️ circular variable reference +- *13* arguments[0] + ⚠️ function calls are not analysed yet +- *14* unsupported expression -0 -> 1442 member call = ???*0*["addEventListener"](???*1*, (???*2* | ???*3* | ???*8*), false) +0 -> 1442 member call = ???*0*["addEventListener"]( + ???*1*, + ( + | ???*2* + | (...) => undefined["bind"](null, ???*3*, ???*4*, ???*5*) + | ???*6* + | true["bind"](null, ???*11*, ???*12*, ???*13*) + ), + false +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* arguments[1] ⚠️ function calls are not analysed yet - *2* arguments[2] ⚠️ function calls are not analysed yet -- *3* ???*4*(null, ???*5*, ???*6*, ???*7*) - ⚠️ unknown callee -- *4* (...) => undefined["bind"] - ⚠️ nested operation -- *5* arguments[1] +- *3* arguments[1] ⚠️ function calls are not analysed yet -- *6* c +- *4* c ⚠️ circular variable reference -- *7* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *8* ???*9*["bind"](null, ???*10*, ???*11*, ???*12*) +- *6* ???*7*["bind"](null, ???*8*, ???*9*, ???*10*) ⚠️ unknown callee object -- *9* unsupported expression -- *10* arguments[1] +- *7* unsupported expression +- *8* arguments[1] ⚠️ function calls are not analysed yet -- *11* c +- *9* c ⚠️ circular variable reference -- *12* arguments[0] +- *10* arguments[0] + ⚠️ function calls are not analysed yet +- *11* arguments[1] + ⚠️ function calls are not analysed yet +- *12* c + ⚠️ circular variable reference +- *13* arguments[0] ⚠️ function calls are not analysed yet 0 -> 1443 conditional = ((0 === ???*0*) | (null !== (???*1* | ???*2* | ???*3*))) @@ -5410,8 +5733,18 @@ ${La}${a}` 0 -> 1584 call = (...) => (undefined | {"instance": a, "listener": b, "currentTarget": c})( (???*0* | ???*1*), - (???*3* | undefined | null | false["stateNode"] | undefined[???*5*] | null[???*7*]), - (???*9* | ???*10*) + ( + | ???*3* + | undefined + | null + | !((undefined | ???*5* | null | ???*7*))["stateNode"] + | false["stateNode"] + | undefined[???*10*] + | null[???*12*] + | !(???*14*)[???*16*] + | !(???*18*)[???*24*] + ), + (???*26* | ???*27*) ) - *0* arguments[2] ⚠️ function calls are not analysed yet @@ -5423,19 +5756,53 @@ ${La}${a}` ⚠️ unknown object - *4* arguments[2] ⚠️ function calls are not analysed yet -- *5* ???*6*["_reactName"] +- *5* ???*6*[Pf] ⚠️ unknown object -- *6* arguments[1] +- *6* c + ⚠️ circular variable reference +- *7* !(???*8*) + ⚠️ nested operation +- *8* ???*9*["disabled"] + ⚠️ unknown object +- *9* d + ⚠️ circular variable reference +- *10* ???*11*["_reactName"] + ⚠️ unknown object +- *11* arguments[1] ⚠️ function calls are not analysed yet -- *7* ???*8*["_reactName"] +- *12* ???*13*["_reactName"] ⚠️ unknown object -- *8* arguments[1] +- *13* arguments[1] ⚠️ function calls are not analysed yet -- *9* arguments[2] +- *14* ???*15*["disabled"] + ⚠️ unknown object +- *15* d + ⚠️ circular variable reference +- *16* ???*17*["_reactName"] + ⚠️ unknown object +- *17* arguments[1] ⚠️ function calls are not analysed yet -- *10* ???*11*["return"] +- *18* ("button" === (???*19* | ???*20* | ???*22* | false)) + ⚠️ nested operation +- *19* arguments[2] + ⚠️ function calls are not analysed yet +- *20* ???*21*["return"] ⚠️ unknown object -- *11* c +- *21* c + ⚠️ circular variable reference +- *22* !(???*23*) + ⚠️ nested operation +- *23* d + ⚠️ circular variable reference +- *24* ???*25*["_reactName"] + ⚠️ unknown object +- *25* arguments[1] + ⚠️ function calls are not analysed yet +- *26* arguments[2] + ⚠️ function calls are not analysed yet +- *27* ???*28*["return"] + ⚠️ unknown object +- *28* c ⚠️ circular variable reference 0 -> 1585 member call = []["unshift"]( @@ -5443,8 +5810,18 @@ ${La}${a}` | undefined | { "instance": (???*0* | ???*1*), - "listener": (???*3* | undefined | null | false["stateNode"] | undefined[???*5*] | null[???*7*]), - "currentTarget": (???*9* | ???*10*) + "listener": ( + | ???*3* + | undefined + | null + | !((undefined | ???*5* | null | ???*7*))["stateNode"] + | false["stateNode"] + | undefined[???*10*] + | null[???*12*] + | !(???*14*)[???*16*] + | !(???*18*)[???*24*] + ), + "currentTarget": (???*26* | ???*27*) } ) ) @@ -5458,19 +5835,53 @@ ${La}${a}` ⚠️ unknown object - *4* arguments[2] ⚠️ function calls are not analysed yet -- *5* ???*6*["_reactName"] +- *5* ???*6*[Pf] ⚠️ unknown object -- *6* arguments[1] +- *6* c + ⚠️ circular variable reference +- *7* !(???*8*) + ⚠️ nested operation +- *8* ???*9*["disabled"] + ⚠️ unknown object +- *9* d + ⚠️ circular variable reference +- *10* ???*11*["_reactName"] + ⚠️ unknown object +- *11* arguments[1] ⚠️ function calls are not analysed yet -- *7* ???*8*["_reactName"] +- *12* ???*13*["_reactName"] ⚠️ unknown object -- *8* arguments[1] +- *13* arguments[1] ⚠️ function calls are not analysed yet -- *9* arguments[2] +- *14* ???*15*["disabled"] + ⚠️ unknown object +- *15* d + ⚠️ circular variable reference +- *16* ???*17*["_reactName"] + ⚠️ unknown object +- *17* arguments[1] ⚠️ function calls are not analysed yet -- *10* ???*11*["return"] +- *18* ("button" === (???*19* | ???*20* | ???*22* | false)) + ⚠️ nested operation +- *19* arguments[2] + ⚠️ function calls are not analysed yet +- *20* ???*21*["return"] ⚠️ unknown object -- *11* c +- *21* c + ⚠️ circular variable reference +- *22* !(???*23*) + ⚠️ nested operation +- *23* d + ⚠️ circular variable reference +- *24* ???*25*["_reactName"] + ⚠️ unknown object +- *25* arguments[1] + ⚠️ function calls are not analysed yet +- *26* arguments[2] + ⚠️ function calls are not analysed yet +- *27* ???*28*["return"] + ⚠️ unknown object +- *28* c ⚠️ circular variable reference 0 -> 1586 call = (...) => (undefined | null | c)((???*0* | ???*1*), ???*3*) @@ -5487,8 +5898,18 @@ ${La}${a}` 0 -> 1588 call = (...) => (undefined | {"instance": a, "listener": b, "currentTarget": c})( (???*0* | ???*1*), - (???*3* | undefined | null | false["stateNode"] | undefined[???*5*] | null[???*7*]), - (???*9* | ???*10*) + ( + | ???*3* + | undefined + | null + | !((undefined | ???*5* | null | ???*7*))["stateNode"] + | false["stateNode"] + | undefined[???*10*] + | null[???*12*] + | !(???*14*)[???*16*] + | !(???*18*)[???*24*] + ), + (???*26* | ???*27*) ) - *0* arguments[2] ⚠️ function calls are not analysed yet @@ -5500,19 +5921,53 @@ ${La}${a}` ⚠️ unknown object - *4* arguments[2] ⚠️ function calls are not analysed yet -- *5* ???*6*["_reactName"] +- *5* ???*6*[Pf] ⚠️ unknown object -- *6* arguments[1] +- *6* c + ⚠️ circular variable reference +- *7* !(???*8*) + ⚠️ nested operation +- *8* ???*9*["disabled"] + ⚠️ unknown object +- *9* d + ⚠️ circular variable reference +- *10* ???*11*["_reactName"] + ⚠️ unknown object +- *11* arguments[1] ⚠️ function calls are not analysed yet -- *7* ???*8*["_reactName"] +- *12* ???*13*["_reactName"] ⚠️ unknown object -- *8* arguments[1] +- *13* arguments[1] ⚠️ function calls are not analysed yet -- *9* arguments[2] +- *14* ???*15*["disabled"] + ⚠️ unknown object +- *15* d + ⚠️ circular variable reference +- *16* ???*17*["_reactName"] + ⚠️ unknown object +- *17* arguments[1] + ⚠️ function calls are not analysed yet +- *18* ("button" === (???*19* | ???*20* | ???*22* | false)) + ⚠️ nested operation +- *19* arguments[2] ⚠️ function calls are not analysed yet -- *10* ???*11*["return"] +- *20* ???*21*["return"] ⚠️ unknown object -- *11* c +- *21* c + ⚠️ circular variable reference +- *22* !(???*23*) + ⚠️ nested operation +- *23* d + ⚠️ circular variable reference +- *24* ???*25*["_reactName"] + ⚠️ unknown object +- *25* arguments[1] + ⚠️ function calls are not analysed yet +- *26* arguments[2] + ⚠️ function calls are not analysed yet +- *27* ???*28*["return"] + ⚠️ unknown object +- *28* c ⚠️ circular variable reference 0 -> 1589 member call = []["push"]( @@ -5520,8 +5975,18 @@ ${La}${a}` | undefined | { "instance": (???*0* | ???*1*), - "listener": (???*3* | undefined | null | false["stateNode"] | undefined[???*5*] | null[???*7*]), - "currentTarget": (???*9* | ???*10*) + "listener": ( + | ???*3* + | undefined + | null + | !((undefined | ???*5* | null | ???*7*))["stateNode"] + | false["stateNode"] + | undefined[???*10*] + | null[???*12*] + | !(???*14*)[???*16*] + | !(???*18*)[???*24*] + ), + "currentTarget": (???*26* | ???*27*) } ) ) @@ -5535,19 +6000,53 @@ ${La}${a}` ⚠️ unknown object - *4* arguments[2] ⚠️ function calls are not analysed yet -- *5* ???*6*["_reactName"] +- *5* ???*6*[Pf] ⚠️ unknown object -- *6* arguments[1] +- *6* c + ⚠️ circular variable reference +- *7* !(???*8*) + ⚠️ nested operation +- *8* ???*9*["disabled"] + ⚠️ unknown object +- *9* d + ⚠️ circular variable reference +- *10* ???*11*["_reactName"] + ⚠️ unknown object +- *11* arguments[1] ⚠️ function calls are not analysed yet -- *7* ???*8*["_reactName"] +- *12* ???*13*["_reactName"] ⚠️ unknown object -- *8* arguments[1] +- *13* arguments[1] ⚠️ function calls are not analysed yet -- *9* arguments[2] +- *14* ???*15*["disabled"] + ⚠️ unknown object +- *15* d + ⚠️ circular variable reference +- *16* ???*17*["_reactName"] + ⚠️ unknown object +- *17* arguments[1] + ⚠️ function calls are not analysed yet +- *18* ("button" === (???*19* | ???*20* | ???*22* | false)) + ⚠️ nested operation +- *19* arguments[2] ⚠️ function calls are not analysed yet -- *10* ???*11*["return"] +- *20* ???*21*["return"] ⚠️ unknown object -- *11* c +- *21* c + ⚠️ circular variable reference +- *22* !(???*23*) + ⚠️ nested operation +- *23* d + ⚠️ circular variable reference +- *24* ???*25*["_reactName"] + ⚠️ unknown object +- *25* arguments[1] + ⚠️ function calls are not analysed yet +- *26* arguments[2] + ⚠️ function calls are not analysed yet +- *27* ???*28*["return"] + ⚠️ unknown object +- *28* c ⚠️ circular variable reference 0 -> 1593 member call = ???*0*["push"]({"event": ???*1*, "listeners": []}) @@ -5801,10 +6300,8 @@ ${La}${a}` 0 -> 1689 call = (...) => undefined((undefined | {"current": {}})) -0 -> 1691 conditional = ((???*0* | {} | ???*1*) !== {}) -- *0* undefined["current"] - ⚠️ nested operation -- *1* unknown mutation +0 -> 1691 conditional = ((undefined["current"] | {} | ???*0*) !== {}) +- *0* unknown mutation 1691 -> 1692 call = (...) => ( | undefined @@ -5909,16 +6406,14 @@ ${La}${a}` 0 -> 1711 call = (...) => undefined((undefined | {"current": false}), (undefined["current"] | false | ???*0*)) - *0* unknown mutation -0 -> 1713 conditional = !((???*0* | ???*2* | ???*3* | ???*4*)) +0 -> 1713 conditional = !((???*0* | undefined["stateNode"] | ???*2* | ???*3* | undefined["current"]["stateNode"])) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* undefined["stateNode"] - ⚠️ nested operation -- *3* FreeVar(undefined) +- *2* FreeVar(undefined) ⚠️ unknown global -- *4* unknown mutation +- *3* unknown mutation 1713 -> 1714 call = (...) => ( | undefined @@ -6255,13 +6750,11 @@ ${La}${a}` - *2* a ⚠️ circular variable reference -0 -> 1831 conditional = (13 === (???*0* | ???*2*)) +0 -> 1831 conditional = (13 === (???*0* | null["tag"])) - *0* ???*1*["tag"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* null["tag"] - ⚠️ nested operation 1831 -> 1834 conditional = !((???*0* | ???*1* | null)) - *0* arguments[0] @@ -6285,21 +6778,17 @@ ${La}${a}` - *0* FreeVar(Error) ⚠️ unknown global -1831 -> 1839 conditional = (8 === (???*0* | ???*2*)) +1831 -> 1839 conditional = (8 === (???*0* | null["nodeType"])) - *0* ???*1*["nodeType"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* null["nodeType"] - ⚠️ nested operation -1839 -> 1841 conditional = ("/$" === (???*0* | ???*2*)) +1839 -> 1841 conditional = ("/$" === (???*0* | null["data"])) - *0* ???*1*["data"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* null["data"] - ⚠️ nested operation 1841 -> 1842 conditional = ???*0* - *0* max number of linking steps reached @@ -6310,7 +6799,7 @@ ${La}${a}` - *1* arguments[0] ⚠️ function calls are not analysed yet -1831 -> 1848 call = (...) => (undefined | null | a)(???*0*) +1831 -> 1848 call = (...) => (undefined | null | a)((???*0* | null["stateNode"]["nextSibling"])) - *0* ???*1*["nextSibling"] ⚠️ unknown object - *1* ???*2*["stateNode"] @@ -6458,94 +6947,90 @@ ${La}${a}` ⚠️ function calls are not analysed yet 0 -> 1942 conditional = ( - | (null !== (???*0* | ???*2* | ???*3* | ???*4*)) + | (null !== (???*0* | null["alternate"] | ???*2* | ???*3*)) | (( - | ???*5* + | ???*4* | { - "baseState": ???*7*, - "firstBaseUpdate": (null | ???*10*), + "baseState": ???*6*, + "firstBaseUpdate": (null | ???*9*), "lastBaseUpdate": ( | null | { - "eventTime": ???*11*, - "lane": ???*13*, - "tag": ???*15*, - "payload": ???*17*, - "callback": ???*19*, + "eventTime": ???*10*, + "lane": ???*12*, + "tag": ???*14*, + "payload": ???*16*, + "callback": ???*18*, "next": null } + | ???*20* | ???*21* - | ???*22* ), - "shared": ???*23*, - "effects": ???*26* + "shared": ???*22*, + "effects": ???*25* } - ) === (???*29* | ???*31* | ???*32* | ???*33*)) + ) === (???*28* | null["alternate"] | ???*30* | ???*31*)) ) - *0* ???*1*["alternate"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* null["alternate"] - ⚠️ nested operation -- *3* FreeVar(undefined) +- *2* FreeVar(undefined) ⚠️ unknown global -- *4* unknown mutation -- *5* ???*6*["updateQueue"] +- *3* unknown mutation +- *4* ???*5*["updateQueue"] ⚠️ unknown object -- *6* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *7* ???*8*["baseState"] +- *6* ???*7*["baseState"] ⚠️ unknown object -- *8* ???*9*["alternate"] +- *7* ???*8*["alternate"] ⚠️ unknown object -- *9* arguments[0] +- *8* arguments[0] ⚠️ function calls are not analysed yet -- *10* unsupported expression -- *11* ???*12*["eventTime"] +- *9* unsupported expression +- *10* ???*11*["eventTime"] ⚠️ unknown object -- *12* c +- *11* c ⚠️ circular variable reference -- *13* ???*14*["lane"] +- *12* ???*13*["lane"] ⚠️ unknown object -- *14* c +- *13* c ⚠️ circular variable reference -- *15* ???*16*["tag"] +- *14* ???*15*["tag"] ⚠️ unknown object -- *16* c +- *15* c ⚠️ circular variable reference -- *17* ???*18*["payload"] +- *16* ???*17*["payload"] ⚠️ unknown object -- *18* c +- *17* c ⚠️ circular variable reference -- *19* ???*20*["callback"] +- *18* ???*19*["callback"] ⚠️ unknown object -- *20* c +- *19* c ⚠️ circular variable reference -- *21* unsupported expression -- *22* arguments[1] +- *20* unsupported expression +- *21* arguments[1] ⚠️ function calls are not analysed yet -- *23* ???*24*["shared"] +- *22* ???*23*["shared"] ⚠️ unknown object -- *24* ???*25*["alternate"] +- *23* ???*24*["alternate"] ⚠️ unknown object -- *25* arguments[0] +- *24* arguments[0] ⚠️ function calls are not analysed yet -- *26* ???*27*["effects"] +- *25* ???*26*["effects"] ⚠️ unknown object -- *27* ???*28*["alternate"] +- *26* ???*27*["alternate"] ⚠️ unknown object -- *28* arguments[0] +- *27* arguments[0] ⚠️ function calls are not analysed yet -- *29* ???*30*["alternate"] +- *28* ???*29*["alternate"] ⚠️ unknown object -- *30* arguments[0] +- *29* arguments[0] ⚠️ function calls are not analysed yet -- *31* null["alternate"] - ⚠️ nested operation -- *32* FreeVar(undefined) +- *30* FreeVar(undefined) ⚠️ unknown global -- *33* unknown mutation +- *31* unknown mutation 1942 -> 1944 conditional = (null !== ( | ???*0* @@ -6628,7 +7113,7 @@ ${La}${a}` 1982 -> 1989 conditional = ("function" === ???*0*) - *0* unsupported expression -1989 -> 1991 member call = (???*0* | ???*1*)["call"](???*6*, ???*7*, ???*8*) +1989 -> 1991 member call = (???*0* | ???*1* | null["next"]["payload"])["call"](???*6*, ???*7*, ???*8*) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["payload"] @@ -6645,7 +7130,7 @@ ${La}${a}` - *7* max number of linking steps reached - *8* max number of linking steps reached -1982 -> 1996 member call = (???*0* | ???*1*)["call"](???*6*, ???*7*, ???*8*) +1982 -> 1996 member call = (???*0* | ???*1* | null["next"]["payload"])["call"](???*6*, ???*7*, ???*8*) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["payload"] @@ -6692,17 +7177,15 @@ ${La}${a}` - *4* arguments[0] ⚠️ function calls are not analysed yet -0 -> 2033 conditional = (null !== (???*0* | ???*1* | ???*3*)) +0 -> 2033 conditional = (null !== (???*0* | ???*1* | 0["effects"])) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["effects"] ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* 0["effects"] - ⚠️ nested operation -2033 -> 2037 conditional = (null !== ???*0*) +2033 -> 2037 conditional = (null !== (???*0* | 0["effects"][(???*4* | 0)]["callback"])) - *0* ???*1*["callback"] ⚠️ unknown object - *1* ???*2*[(???*3* | 0)] @@ -6711,6 +7194,8 @@ ${La}${a}` ⚠️ function calls are not analysed yet - *3* arguments[1] ⚠️ function calls are not analysed yet +- *4* arguments[1] + ⚠️ function calls are not analysed yet 2037 -> 2039 conditional = ("function" !== ???*0*) - *0* unsupported expression @@ -6718,7 +7203,7 @@ ${La}${a}` 2039 -> 2040 call = (...) => ( | undefined | `Minified React error #${a}; visit ${b} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.` -)(191, ???*0*) +)(191, (???*0* | 0["effects"][(???*4* | 0)]["callback"])) - *0* ???*1*["callback"] ⚠️ unknown object - *1* ???*2*[(???*3* | 0)] @@ -6727,6 +7212,8 @@ ${La}${a}` ⚠️ function calls are not analysed yet - *3* arguments[1] ⚠️ function calls are not analysed yet +- *4* arguments[1] + ⚠️ function calls are not analysed yet 2039 -> 2041 call = ???*0*( ( @@ -6737,7 +7224,7 @@ ${La}${a}` - *0* FreeVar(Error) ⚠️ unknown global -2037 -> 2043 member call = ???*0*["call"]((???*4* | ???*7*)) +2037 -> 2043 member call = (???*0* | 0["effects"][(???*4* | 0)]["callback"])["call"]((???*5* | 0["effects"][(???*8* | 0)] | ???*9*)) - *0* ???*1*["callback"] ⚠️ unknown object - *1* ???*2*[(???*3* | 0)] @@ -6746,13 +7233,17 @@ ${La}${a}` ⚠️ function calls are not analysed yet - *3* arguments[1] ⚠️ function calls are not analysed yet -- *4* ???*5*[(???*6* | 0)] +- *4* arguments[1] + ⚠️ function calls are not analysed yet +- *5* ???*6*[(???*7* | 0)] ⚠️ unknown object -- *5* arguments[0] +- *6* arguments[0] ⚠️ function calls are not analysed yet -- *6* arguments[1] +- *7* arguments[1] ⚠️ function calls are not analysed yet -- *7* arguments[2] +- *8* arguments[1] + ⚠️ function calls are not analysed yet +- *9* arguments[2] ⚠️ function calls are not analysed yet 0 -> 2047 call = (???*0* | ???*1* | ???*3*)(???*5*, (???*6* | ???*7*)) @@ -6821,20 +7312,18 @@ ${La}${a}` | undefined | {"eventTime": a, "lane": b, "tag": 0, "payload": null, "callback": null, "next": null} )( - (undefined | ???*0*() | ???*1*), - (undefined | 1 | ???*2* | 0 | 64 | ???*3* | ???*4* | ???*6* | 4 | 16 | 536870912 | null) + (undefined | module["unstable_now"]() | ???*0*), + (undefined | 1 | ???*1* | 0 | 64 | ???*2* | ???*3* | ???*5* | 4 | 16 | 536870912 | null) ) -- *0* module["unstable_now"] - ⚠️ nested operation +- *0* unsupported expression - *1* unsupported expression -- *2* unsupported expression -- *3* arguments[0] +- *2* arguments[0] ⚠️ function calls are not analysed yet -- *4* ???*5*["_reactInternals"] +- *3* ???*4*["_reactInternals"] ⚠️ unknown object -- *5* a +- *4* a ⚠️ circular variable reference -- *6* C +- *5* C ⚠️ circular variable reference 0 -> 2061 call = (...) => (undefined | null | Zg(a, c))( @@ -6842,15 +7331,15 @@ ${La}${a}` ( | undefined | { - "eventTime": (undefined | ???*3*() | ???*4*), - "lane": (undefined | 1 | ???*5* | 0 | 64 | ???*6* | ???*7* | ???*9* | 4 | 16 | 536870912 | null), + "eventTime": (undefined | module["unstable_now"]() | ???*3*), + "lane": (undefined | 1 | ???*4* | 0 | 64 | ???*5* | ???*6* | ???*8* | 4 | 16 | 536870912 | null), "tag": 0, "payload": null, "callback": null, "next": null } ), - (undefined | 1 | ???*10* | 0 | 64 | ???*11* | ???*12* | ???*14* | 4 | 16 | 536870912 | null) + (undefined | 1 | ???*9* | 0 | 64 | ???*10* | ???*11* | ???*13* | 4 | 16 | 536870912 | null) ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -6858,33 +7347,31 @@ ${La}${a}` ⚠️ unknown object - *2* a ⚠️ circular variable reference -- *3* module["unstable_now"] - ⚠️ nested operation +- *3* unsupported expression - *4* unsupported expression -- *5* unsupported expression -- *6* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *7* ???*8*["_reactInternals"] +- *6* ???*7*["_reactInternals"] ⚠️ unknown object -- *8* a +- *7* a ⚠️ circular variable reference -- *9* C +- *8* C ⚠️ circular variable reference -- *10* unsupported expression -- *11* arguments[0] +- *9* unsupported expression +- *10* arguments[0] ⚠️ function calls are not analysed yet -- *12* ???*13*["_reactInternals"] +- *11* ???*12*["_reactInternals"] ⚠️ unknown object -- *13* a +- *12* a ⚠️ circular variable reference -- *14* C +- *13* C ⚠️ circular variable reference 0 -> 2062 call = (...) => undefined( (???*0* | undefined | null | ???*1*), (???*4* | ???*5*), (undefined | 1 | ???*7* | 0 | 64 | ???*8* | ???*9* | ???*11* | 4 | 16 | 536870912 | null), - (undefined | ???*12*() | ???*13*) + (undefined | module["unstable_now"]() | ???*12*) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -6909,9 +7396,7 @@ ${La}${a}` ⚠️ circular variable reference - *11* C ⚠️ circular variable reference -- *12* module["unstable_now"] - ⚠️ nested operation -- *13* unsupported expression +- *12* unsupported expression 0 -> 2063 call = (...) => undefined( (???*0* | undefined | null | ???*1*), @@ -6958,20 +7443,18 @@ ${La}${a}` | undefined | {"eventTime": a, "lane": b, "tag": 0, "payload": null, "callback": null, "next": null} )( - (undefined | ???*0*() | ???*1*), - (undefined | 1 | ???*2* | 0 | 64 | ???*3* | ???*4* | ???*6* | 4 | 16 | 536870912 | null) + (undefined | module["unstable_now"]() | ???*0*), + (undefined | 1 | ???*1* | 0 | 64 | ???*2* | ???*3* | ???*5* | 4 | 16 | 536870912 | null) ) -- *0* module["unstable_now"] - ⚠️ nested operation +- *0* unsupported expression - *1* unsupported expression -- *2* unsupported expression -- *3* arguments[0] +- *2* arguments[0] ⚠️ function calls are not analysed yet -- *4* ???*5*["_reactInternals"] +- *3* ???*4*["_reactInternals"] ⚠️ unknown object -- *5* a +- *4* a ⚠️ circular variable reference -- *6* C +- *5* C ⚠️ circular variable reference 0 -> 2071 call = (...) => (undefined | null | Zg(a, c))( @@ -6979,15 +7462,15 @@ ${La}${a}` ( | undefined | { - "eventTime": (undefined | ???*3*() | ???*4*), - "lane": (undefined | 1 | ???*5* | 0 | 64 | ???*6* | ???*7* | ???*9* | 4 | 16 | 536870912 | null), + "eventTime": (undefined | module["unstable_now"]() | ???*3*), + "lane": (undefined | 1 | ???*4* | 0 | 64 | ???*5* | ???*6* | ???*8* | 4 | 16 | 536870912 | null), "tag": 0, "payload": null, "callback": null, "next": null } ), - (undefined | 1 | ???*10* | 0 | 64 | ???*11* | ???*12* | ???*14* | 4 | 16 | 536870912 | null) + (undefined | 1 | ???*9* | 0 | 64 | ???*10* | ???*11* | ???*13* | 4 | 16 | 536870912 | null) ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -6995,33 +7478,31 @@ ${La}${a}` ⚠️ unknown object - *2* a ⚠️ circular variable reference -- *3* module["unstable_now"] - ⚠️ nested operation +- *3* unsupported expression - *4* unsupported expression -- *5* unsupported expression -- *6* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *7* ???*8*["_reactInternals"] +- *6* ???*7*["_reactInternals"] ⚠️ unknown object -- *8* a +- *7* a ⚠️ circular variable reference -- *9* C +- *8* C ⚠️ circular variable reference -- *10* unsupported expression -- *11* arguments[0] +- *9* unsupported expression +- *10* arguments[0] ⚠️ function calls are not analysed yet -- *12* ???*13*["_reactInternals"] +- *11* ???*12*["_reactInternals"] ⚠️ unknown object -- *13* a +- *12* a ⚠️ circular variable reference -- *14* C +- *13* C ⚠️ circular variable reference 0 -> 2072 call = (...) => undefined( (???*0* | undefined | null | ???*1*), (???*4* | ???*5*), (undefined | 1 | ???*7* | 0 | 64 | ???*8* | ???*9* | ???*11* | 4 | 16 | 536870912 | null), - (undefined | ???*12*() | ???*13*) + (undefined | module["unstable_now"]() | ???*12*) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -7046,9 +7527,7 @@ ${La}${a}` ⚠️ circular variable reference - *11* C ⚠️ circular variable reference -- *12* module["unstable_now"] - ⚠️ nested operation -- *13* unsupported expression +- *12* unsupported expression 0 -> 2073 call = (...) => undefined( (???*0* | undefined | null | ???*1*), @@ -7095,20 +7574,18 @@ ${La}${a}` | undefined | {"eventTime": a, "lane": b, "tag": 0, "payload": null, "callback": null, "next": null} )( - (undefined | ???*0*() | ???*1*), - (undefined | 1 | ???*2* | 0 | 64 | ???*3* | ???*4* | ???*6* | 4 | 16 | 536870912 | null) + (undefined | module["unstable_now"]() | ???*0*), + (undefined | 1 | ???*1* | 0 | 64 | ???*2* | ???*3* | ???*5* | 4 | 16 | 536870912 | null) ) -- *0* module["unstable_now"] - ⚠️ nested operation +- *0* unsupported expression - *1* unsupported expression -- *2* unsupported expression -- *3* arguments[0] +- *2* arguments[0] ⚠️ function calls are not analysed yet -- *4* ???*5*["_reactInternals"] +- *3* ???*4*["_reactInternals"] ⚠️ unknown object -- *5* a +- *4* a ⚠️ circular variable reference -- *6* C +- *5* C ⚠️ circular variable reference 0 -> 2080 call = (...) => (undefined | null | Zg(a, c))( @@ -7116,15 +7593,15 @@ ${La}${a}` ( | undefined | { - "eventTime": (undefined | ???*3*() | ???*4*), - "lane": (undefined | 1 | ???*5* | 0 | 64 | ???*6* | ???*7* | ???*9* | 4 | 16 | 536870912 | null), + "eventTime": (undefined | module["unstable_now"]() | ???*3*), + "lane": (undefined | 1 | ???*4* | 0 | 64 | ???*5* | ???*6* | ???*8* | 4 | 16 | 536870912 | null), "tag": 0, "payload": null, "callback": null, "next": null } ), - (undefined | 1 | ???*10* | 0 | 64 | ???*11* | ???*12* | ???*14* | 4 | 16 | 536870912 | null) + (undefined | 1 | ???*9* | 0 | 64 | ???*10* | ???*11* | ???*13* | 4 | 16 | 536870912 | null) ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -7132,33 +7609,31 @@ ${La}${a}` ⚠️ unknown object - *2* a ⚠️ circular variable reference -- *3* module["unstable_now"] - ⚠️ nested operation +- *3* unsupported expression - *4* unsupported expression -- *5* unsupported expression -- *6* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *7* ???*8*["_reactInternals"] +- *6* ???*7*["_reactInternals"] ⚠️ unknown object -- *8* a +- *7* a ⚠️ circular variable reference -- *9* C +- *8* C ⚠️ circular variable reference -- *10* unsupported expression -- *11* arguments[0] +- *9* unsupported expression +- *10* arguments[0] ⚠️ function calls are not analysed yet -- *12* ???*13*["_reactInternals"] +- *11* ???*12*["_reactInternals"] ⚠️ unknown object -- *13* a +- *12* a ⚠️ circular variable reference -- *14* C +- *13* C ⚠️ circular variable reference 0 -> 2081 call = (...) => undefined( (???*0* | undefined | null | ???*1*), (???*4* | ???*5*), (undefined | 1 | ???*7* | 0 | 64 | ???*8* | ???*9* | ???*11* | 4 | 16 | 536870912 | null), - (undefined | ???*12*() | ???*13*) + (undefined | module["unstable_now"]() | ???*12*) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -7183,9 +7658,7 @@ ${La}${a}` ⚠️ circular variable reference - *11* C ⚠️ circular variable reference -- *12* module["unstable_now"] - ⚠️ nested operation -- *13* unsupported expression +- *12* unsupported expression 0 -> 2082 call = (...) => undefined( (???*0* | undefined | null | ???*1*), @@ -7458,9 +7931,9 @@ ${La}${a}` 2161 -> 2176 conditional = ( | (null !== (???*0* | (...) => undefined)) - | (null !== (???*1* | ???*3*)) - | ("function" === ???*4*) - | (???*5* === (???*8* | ???*9*)) + | (null !== (???*1* | (...) => undefined["ref"])) + | ("function" === ???*3*) + | ((???*4* | (...) => undefined["ref"]["_stringRef"]) === (???*7* | ???*8*)) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -7468,20 +7941,18 @@ ${La}${a}` ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* (...) => undefined["ref"] - ⚠️ nested operation -- *4* unsupported expression -- *5* ???*6*["_stringRef"] +- *3* unsupported expression +- *4* ???*5*["_stringRef"] ⚠️ unknown object -- *6* ???*7*["ref"] +- *5* ???*6*["ref"] ⚠️ unknown object -- *7* arguments[1] +- *6* arguments[1] ⚠️ function calls are not analysed yet -- *8* arguments[0] +- *7* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*["ref"] +- *8* ???*9*["ref"] ⚠️ unknown object -- *10* arguments[2] +- *9* arguments[2] ⚠️ function calls are not analysed yet 2159 -> 2183 conditional = ("string" !== ???*0*) @@ -7666,7 +8137,7 @@ ${La}${a}` 0 -> 2233 conditional = ( | (null === (???*0* | undefined | ???*1* | ???*2* | ???*3*)) - | (6 !== (???*5* | ???*7*)) + | (6 !== (???*5* | undefined["tag"])) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -7681,8 +8152,6 @@ ${La}${a}` ⚠️ unknown object - *6* arguments[1] ⚠️ function calls are not analysed yet -- *7* undefined["tag"] - ⚠️ nested operation 2233 -> 2235 call = (...) => (undefined | a)(???*0*, ???*1*, ???*3*) - *0* arguments[2] @@ -7843,8 +8312,9 @@ ${La}${a}` 0 -> 2270 conditional = ( | (null === (???*0* | undefined | ???*1* | ???*3* | ???*4*)) - | (4 !== (???*5* | ???*7*)) - | (???*8* !== ???*11*) + | (4 !== (???*5* | undefined["tag"])) + | ((???*7* | undefined["stateNode"]["containerInfo"]) !== ???*10*) + | ((???*12* | undefined["stateNode"]["implementation"]) !== ???*15*) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -7859,17 +8329,25 @@ ${La}${a}` ⚠️ unknown object - *6* arguments[1] ⚠️ function calls are not analysed yet -- *7* undefined["tag"] - ⚠️ nested operation -- *8* ???*9*["containerInfo"] +- *7* ???*8*["containerInfo"] ⚠️ unknown object -- *9* ???*10*["stateNode"] +- *8* ???*9*["stateNode"] ⚠️ unknown object -- *10* arguments[1] +- *9* arguments[1] + ⚠️ function calls are not analysed yet +- *10* ???*11*["containerInfo"] + ⚠️ unknown object +- *11* arguments[2] + ⚠️ function calls are not analysed yet +- *12* ???*13*["implementation"] + ⚠️ unknown object +- *13* ???*14*["stateNode"] + ⚠️ unknown object +- *14* arguments[1] ⚠️ function calls are not analysed yet -- *11* ???*12*["containerInfo"] +- *15* ???*16*["implementation"] ⚠️ unknown object -- *12* arguments[2] +- *16* arguments[2] ⚠️ function calls are not analysed yet 2270 -> 2272 call = (...) => (undefined | b)(???*0*, ???*1*, ???*3*) @@ -7899,7 +8377,7 @@ ${La}${a}` 0 -> 2278 conditional = ( | (null === (???*0* | undefined | ???*1* | ???*2* | ???*3*)) - | (7 !== (???*5* | ???*7*)) + | (7 !== (???*5* | undefined["tag"])) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -7914,8 +8392,6 @@ ${La}${a}` ⚠️ unknown object - *6* arguments[1] ⚠️ function calls are not analysed yet -- *7* undefined["tag"] - ⚠️ nested operation 2278 -> 2280 call = (...) => (undefined | a)(???*0*, ???*1*, ???*3*, ???*4*) - *0* arguments[2] @@ -7948,7 +8424,16 @@ ${La}${a}` 2284 -> 2286 call = (...) => (undefined | a)( ???*0*, ???*1*, - (???*3* | undefined | ???*4* | ???*7* | undefined["type"] | undefined["props"] | undefined["key"]) + ( + | ???*3* + | undefined + | ???*4* + | undefined["props"]["children"] + | ???*7* + | undefined["type"] + | undefined["props"] + | undefined["key"] + ) ) - *0* max number of linking steps reached - *1* ???*2*["mode"] @@ -7974,7 +8459,16 @@ ${La}${a}` ???*2*, null, ???*3*, - (???*5* | undefined | ???*6* | ???*9* | undefined["type"] | undefined["props"] | undefined["key"]) + ( + | ???*5* + | undefined + | ???*6* + | undefined["props"]["children"] + | ???*9* + | undefined["type"] + | undefined["props"] + | undefined["key"] + ) ) - *0* max number of linking steps reached - *1* max number of linking steps reached @@ -8001,7 +8495,16 @@ ${La}${a}` 2288 -> 2299 call = (...) => (undefined | b)( ???*0*, ???*1*, - (???*3* | undefined | ???*4* | ???*7* | undefined["type"] | undefined["props"] | undefined["key"]) + ( + | ???*3* + | undefined + | ???*4* + | undefined["props"]["children"] + | ???*7* + | undefined["type"] + | undefined["props"] + | undefined["key"] + ) ) - *0* max number of linking steps reached - *1* ???*2*["mode"] @@ -8025,7 +8528,16 @@ ${La}${a}` 2288 -> 2304 call = (...) => (undefined | b | c | q(a, d(b["_payload"]), c) | null)( ???*0*, ???*1*, - (???*2* | undefined | ???*3* | ???*6* | undefined["type"] | undefined["props"] | undefined["key"]) + ( + | ???*2* + | undefined + | ???*3* + | undefined["props"]["children"] + | ???*6* + | undefined["type"] + | undefined["props"] + | undefined["key"] + ) ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -8056,7 +8568,16 @@ ${La}${a}` 2307 -> 2309 call = (...) => (undefined | a)( ???*0*, ???*1*, - (???*3* | undefined | ???*4* | ???*7* | undefined["type"] | undefined["props"] | undefined["key"]), + ( + | ???*3* + | undefined + | ???*4* + | undefined["props"]["children"] + | ???*7* + | undefined["type"] + | undefined["props"] + | undefined["key"] + ), null ) - *0* max number of linking steps reached @@ -9273,43 +9794,39 @@ ${La}${a}` | (null !== ( | null | ???*1* + | null["alternate"] | ???*2* - | ???*3* - | {"memoizedState": ???*5*, "baseState": ???*7*, "baseQueue": ???*9*, "queue": ???*11*, "next": null} + | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*13* | ???*14* | null | ???*16*)) + | (null !== (null["next"] | ???*12* | null["alternate"]["next"] | null | ???*14*)) ) - *0* arguments[1] ⚠️ function calls are not analysed yet - *1* unsupported expression -- *2* null["alternate"] - ⚠️ nested operation -- *3* ???*4*["alternate"] +- *2* ???*3*["alternate"] ⚠️ unknown object -- *4* b +- *3* b ⚠️ circular variable reference -- *5* ???*6*["memoizedState"] +- *4* ???*5*["memoizedState"] ⚠️ unknown object -- *6* O +- *5* O ⚠️ circular variable reference -- *7* ???*8*["baseState"] +- *6* ???*7*["baseState"] ⚠️ unknown object -- *8* O +- *7* O ⚠️ circular variable reference -- *9* ???*10*["baseQueue"] +- *8* ???*9*["baseQueue"] ⚠️ unknown object -- *10* O +- *9* O ⚠️ circular variable reference -- *11* ???*12*["queue"] +- *10* ???*11*["queue"] ⚠️ unknown object -- *12* O +- *11* O ⚠️ circular variable reference -- *13* null["next"] - ⚠️ nested operation -- *14* ???*15*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *15* unsupported expression -- *16* unknown mutation +- *13* unsupported expression +- *14* unknown mutation 2626 -> 2627 call = (...) => ( | undefined @@ -9328,81 +9845,76 @@ ${La}${a}` 0 -> 2631 conditional = (null === ( | null | ???*0* + | null["alternate"] | ???*1* - | ???*2* - | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} + | {"memoizedState": ???*3*, "baseState": ???*5*, "baseQueue": ???*7*, "queue": ???*9*, "next": null} )) - *0* unsupported expression -- *1* null["alternate"] - ⚠️ nested operation -- *2* ???*3*["alternate"] +- *1* ???*2*["alternate"] ⚠️ unknown object -- *3* arguments[1] +- *2* arguments[1] ⚠️ function calls are not analysed yet -- *4* ???*5*["memoizedState"] +- *3* ???*4*["memoizedState"] ⚠️ unknown object -- *5* O +- *4* O ⚠️ circular variable reference -- *6* ???*7*["baseState"] +- *5* ???*6*["baseState"] ⚠️ unknown object -- *7* O +- *6* O ⚠️ circular variable reference -- *8* ???*9*["baseQueue"] +- *7* ???*8*["baseQueue"] ⚠️ unknown object -- *9* O +- *8* O ⚠️ circular variable reference -- *10* ???*11*["queue"] +- *9* ???*10*["queue"] ⚠️ unknown object -- *11* O +- *10* O ⚠️ circular variable reference -0 -> 2637 conditional = (null !== (???*0* | ???*1* | null | ???*3*)) -- *0* null["memoizedState"] - ⚠️ nested operation -- *1* ???*2*["memoizedState"] +0 -> 2637 conditional = (null !== ( + | null["memoizedState"] + | ???*0* + | null["next"] + | null + | ???*2* + | null["alternate"]["next"] + | null["next"]["next"] +)) +- *0* ???*1*["memoizedState"] ⚠️ unknown object -- *2* arguments[1] +- *1* arguments[1] ⚠️ function calls are not analysed yet -- *3* unknown mutation +- *2* unknown mutation 2637 -> 2638 conditional = (null === ( + | null["alternate"] | ???*0* - | ???*1* | null + | null["next"] | { - "memoizedState": (???*3* | ???*4*), - "baseState": (???*6* | ???*7*), - "baseQueue": (???*9* | ???*10*), - "queue": (???*12* | ???*13*), + "memoizedState": (null["memoizedState"] | ???*2*), + "baseState": (null["baseState"] | ???*4*), + "baseQueue": (null["baseQueue"] | ???*6*), + "queue": (null["queue"] | ???*8*), "next": null } )) -- *0* null["alternate"] - ⚠️ nested operation -- *1* ???*2*["alternate"] +- *0* ???*1*["alternate"] ⚠️ unknown object -- *2* arguments[1] +- *1* arguments[1] ⚠️ function calls are not analysed yet -- *3* null["memoizedState"] - ⚠️ nested operation -- *4* ???*5*["memoizedState"] +- *2* ???*3*["memoizedState"] ⚠️ unknown object -- *5* unsupported expression -- *6* null["baseState"] - ⚠️ nested operation -- *7* ???*8*["baseState"] +- *3* unsupported expression +- *4* ???*5*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* null["baseQueue"] - ⚠️ nested operation -- *10* ???*11*["baseQueue"] +- *5* unsupported expression +- *6* ???*7*["baseQueue"] ⚠️ unknown object -- *11* unsupported expression -- *12* null["queue"] - ⚠️ nested operation -- *13* ???*14*["queue"] +- *7* unsupported expression +- *8* ???*9*["queue"] ⚠️ unknown object -- *14* unsupported expression +- *9* unsupported expression 2638 -> 2639 call = (...) => ( | undefined @@ -9426,13 +9938,8 @@ ${La}${a}` 0 -> 2648 call = (...) => (undefined | P)() -0 -> 2650 conditional = (null === (???*0* | ???*1* | null | ???*3*)) -- *0* undefined["queue"] - ⚠️ nested operation -- *1* ???*2*["queue"] - ⚠️ unknown object -- *2* unsupported expression -- *3* unknown mutation +0 -> 2650 conditional = ???*0* +- *0* max number of linking steps reached 2650 -> 2651 call = (...) => ( | undefined @@ -9460,15 +9967,10 @@ ${La}${a}` 2664 -> 2668 conditional = ???*0* - *0* max number of linking steps reached -2668 -> 2676 call = (???*0* | ???*1* | null["interleaved"])(???*3*, ???*4*) -- *0* arguments[0] - ⚠️ function calls are not analysed yet -- *1* ???*2*["interleaved"] - ⚠️ unknown object -- *2* undefined["queue"] - ⚠️ nested operation -- *3* max number of linking steps reached -- *4* max number of linking steps reached +2668 -> 2676 call = ???*0*(???*1*, ???*2*) +- *0* max number of linking steps reached +- *1* max number of linking steps reached +- *2* max number of linking steps reached 2664 -> 2685 call = ( | ???*0* @@ -9478,7 +9980,31 @@ ${La}${a}` ) )( ???*4*, - (undefined["memoizedState"] | null["memoizedState"] | ???*5* | null | ???*7*) + ( + | undefined["memoizedState"] + | null["memoizedState"] + | ???*5* + | null + | ???*7* + | null["memoizedState"]["memoizedState"] + | (null !== ( + | null + | ???*8* + | ???*9* + | { + "memoizedState": ???*11*, + "baseState": ???*13*, + "baseQueue": ???*15*, + "queue": ???*17*, + "next": null + } + ))["memoizedState"]["memoizedState"] + | (null !== (null["next"] | ???*19* | null | ???*21*))["memoizedState"]["memoizedState"] + | null["alternate"]["memoizedState"] + | (null !== (null | ???*22* | ???*23*))["alternate"]["memoizedState"] + | (null !== (null["next"] | ???*24*))["alternate"]["memoizedState"] + | null["next"]["memoizedState"] + ) ) - *0* ???*1*["is"] ⚠️ unknown object @@ -9491,26 +10017,45 @@ ${La}${a}` ⚠️ unknown object - *6* unsupported expression - *7* unknown mutation - -0 -> 2691 conditional = (null !== (???*0* | ???*1* | ???*3*)) -- *0* arguments[0] - ⚠️ function calls are not analysed yet -- *1* ???*2*["interleaved"] +- *8* unsupported expression +- *9* ???*10*["alternate"] ⚠️ unknown object -- *2* undefined["queue"] - ⚠️ nested operation -- *3* null["interleaved"] - ⚠️ nested operation +- *10* N + ⚠️ circular variable reference +- *11* ???*12*["memoizedState"] + ⚠️ unknown object +- *12* O + ⚠️ circular variable reference +- *13* ???*14*["baseState"] + ⚠️ unknown object +- *14* O + ⚠️ circular variable reference +- *15* ???*16*["baseQueue"] + ⚠️ unknown object +- *16* O + ⚠️ circular variable reference +- *17* ???*18*["queue"] + ⚠️ unknown object +- *18* O + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* unknown mutation +- *22* unsupported expression +- *23* a + ⚠️ circular variable reference +- *24* ???*25*["next"] + ⚠️ unknown object +- *25* unsupported expression + +0 -> 2691 conditional = ???*0* +- *0* max number of linking steps reached 0 -> 2698 call = (...) => (undefined | P)() -0 -> 2700 conditional = (null === (???*0* | ???*1* | null | ???*3*)) -- *0* undefined["queue"] - ⚠️ nested operation -- *1* ???*2*["queue"] - ⚠️ unknown object -- *2* unsupported expression -- *3* unknown mutation +0 -> 2700 conditional = ???*0* +- *0* max number of linking steps reached 2700 -> 2701 call = (...) => ( | undefined @@ -9526,17 +10071,31 @@ ${La}${a}` - *0* FreeVar(Error) ⚠️ unknown global -0 -> 2707 conditional = (null !== (???*0* | ???*2*)) -- *0* ???*1*["pending"] - ⚠️ unknown object -- *1* undefined["queue"] - ⚠️ nested operation -- *2* null["pending"] - ⚠️ nested operation +0 -> 2707 conditional = ???*0* +- *0* max number of linking steps reached 2707 -> 2711 call = ???*0*( - (undefined["memoizedState"] | null["memoizedState"] | ???*1* | null | ???*3* | ???*4*), - ???*6* + ( + | undefined["memoizedState"] + | null["memoizedState"] + | ???*1* + | null + | ???*3* + | null["memoizedState"]["memoizedState"] + | (null !== ( + | null + | ???*4* + | ???*5* + | {"memoizedState": ???*7*, "baseState": ???*9*, "baseQueue": ???*11*, "queue": ???*13*, "next": null} + ))["memoizedState"]["memoizedState"] + | (null !== (null["next"] | ???*15* | null | ???*17*))["memoizedState"]["memoizedState"] + | null["alternate"]["memoizedState"] + | (null !== (null | ???*18* | ???*19*))["alternate"]["memoizedState"] + | (null !== (null["next"] | ???*20*))["alternate"]["memoizedState"] + | null["next"]["memoizedState"] + | ???*22* + ), + ???*24* ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -9544,13 +10103,44 @@ ${La}${a}` ⚠️ unknown object - *2* unsupported expression - *3* unknown mutation -- *4* ???*5*(f, g["action"]) - ⚠️ unknown callee -- *5* arguments[0] +- *4* unsupported expression +- *5* ???*6*["alternate"] + ⚠️ unknown object +- *6* N + ⚠️ circular variable reference +- *7* ???*8*["memoizedState"] + ⚠️ unknown object +- *8* O + ⚠️ circular variable reference +- *9* ???*10*["baseState"] + ⚠️ unknown object +- *10* O + ⚠️ circular variable reference +- *11* ???*12*["baseQueue"] + ⚠️ unknown object +- *12* O + ⚠️ circular variable reference +- *13* ???*14*["queue"] + ⚠️ unknown object +- *14* O + ⚠️ circular variable reference +- *15* ???*16*["next"] + ⚠️ unknown object +- *16* unsupported expression +- *17* unknown mutation +- *18* unsupported expression +- *19* a + ⚠️ circular variable reference +- *20* ???*21*["next"] + ⚠️ unknown object +- *21* unsupported expression +- *22* ???*23*(f, g["action"]) + ⚠️ unknown callee +- *23* arguments[0] ⚠️ function calls are not analysed yet -- *6* ???*7*["action"] +- *24* ???*25*["action"] ⚠️ unknown object -- *7* unsupported expression +- *25* unsupported expression 2707 -> 2714 call = ( | ???*0* @@ -9559,8 +10149,57 @@ ${La}${a}` | (((a === b) && ((0 !== a) || (???*2* === ???*3*))) || ((a !== a) && (b !== b))) ) )( - (undefined["memoizedState"] | null["memoizedState"] | ???*4* | null | ???*6* | ???*7*), - (undefined["memoizedState"] | null["memoizedState"] | ???*9* | null | ???*11*) + ( + | undefined["memoizedState"] + | null["memoizedState"] + | ???*4* + | null + | ???*6* + | null["memoizedState"]["memoizedState"] + | (null !== ( + | null + | ???*7* + | ???*8* + | { + "memoizedState": ???*10*, + "baseState": ???*12*, + "baseQueue": ???*14*, + "queue": ???*16*, + "next": null + } + ))["memoizedState"]["memoizedState"] + | (null !== (null["next"] | ???*18* | null | ???*20*))["memoizedState"]["memoizedState"] + | null["alternate"]["memoizedState"] + | (null !== (null | ???*21* | ???*22*))["alternate"]["memoizedState"] + | (null !== (null["next"] | ???*23*))["alternate"]["memoizedState"] + | null["next"]["memoizedState"] + | ???*25* + ), + ( + | undefined["memoizedState"] + | null["memoizedState"] + | ???*27* + | null + | ???*29* + | null["memoizedState"]["memoizedState"] + | (null !== ( + | null + | ???*30* + | ???*31* + | { + "memoizedState": ???*33*, + "baseState": ???*35*, + "baseQueue": ???*37*, + "queue": ???*39*, + "next": null + } + ))["memoizedState"]["memoizedState"] + | (null !== (null["next"] | ???*41* | null | ???*43*))["memoizedState"]["memoizedState"] + | null["alternate"]["memoizedState"] + | (null !== (null | ???*44* | ???*45*))["alternate"]["memoizedState"] + | (null !== (null["next"] | ???*46*))["alternate"]["memoizedState"] + | null["next"]["memoizedState"] + ) ) - *0* ???*1*["is"] ⚠️ unknown object @@ -9572,14 +10211,76 @@ ${La}${a}` ⚠️ unknown object - *5* unsupported expression - *6* unknown mutation -- *7* ???*8*(f, g["action"]) +- *7* unsupported expression +- *8* ???*9*["alternate"] + ⚠️ unknown object +- *9* N + ⚠️ circular variable reference +- *10* ???*11*["memoizedState"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["baseState"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["baseQueue"] + ⚠️ unknown object +- *15* O + ⚠️ circular variable reference +- *16* ???*17*["queue"] + ⚠️ unknown object +- *17* O + ⚠️ circular variable reference +- *18* ???*19*["next"] + ⚠️ unknown object +- *19* unsupported expression +- *20* unknown mutation +- *21* unsupported expression +- *22* a + ⚠️ circular variable reference +- *23* ???*24*["next"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*(f, g["action"]) ⚠️ unknown callee -- *8* arguments[0] +- *26* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*["memoizedState"] +- *27* ???*28*["memoizedState"] ⚠️ unknown object -- *10* unsupported expression -- *11* unknown mutation +- *28* unsupported expression +- *29* unknown mutation +- *30* unsupported expression +- *31* ???*32*["alternate"] + ⚠️ unknown object +- *32* N + ⚠️ circular variable reference +- *33* ???*34*["memoizedState"] + ⚠️ unknown object +- *34* O + ⚠️ circular variable reference +- *35* ???*36*["baseState"] + ⚠️ unknown object +- *36* O + ⚠️ circular variable reference +- *37* ???*38*["baseQueue"] + ⚠️ unknown object +- *38* O + ⚠️ circular variable reference +- *39* ???*40*["queue"] + ⚠️ unknown object +- *40* O + ⚠️ circular variable reference +- *41* ???*42*["next"] + ⚠️ unknown object +- *42* unsupported expression +- *43* unknown mutation +- *44* unsupported expression +- *45* a + ⚠️ circular variable reference +- *46* ???*47*["next"] + ⚠️ unknown object +- *47* unsupported expression 0 -> 2719 call = (...) => (undefined | P)() @@ -9594,8 +10295,32 @@ ${La}${a}` | (((a === b) && ((0 !== a) || (???*2* === ???*3*))) || ((a !== a) && (b !== b))) ) )( - (undefined["memoizedState"] | null["memoizedState"] | ???*4* | null | ???*6*), - ???*7*() + ( + | undefined["memoizedState"] + | null["memoizedState"] + | ???*4* + | null + | ???*6* + | null["memoizedState"]["memoizedState"] + | (null !== ( + | null + | ???*7* + | ???*8* + | { + "memoizedState": ???*10*, + "baseState": ???*12*, + "baseQueue": ???*14*, + "queue": ???*16*, + "next": null + } + ))["memoizedState"]["memoizedState"] + | (null !== (null["next"] | ???*18* | null | ???*20*))["memoizedState"]["memoizedState"] + | null["alternate"]["memoizedState"] + | (null !== (null | ???*21* | ???*22*))["alternate"]["memoizedState"] + | (null !== (null["next"] | ???*23*))["alternate"]["memoizedState"] + | null["next"]["memoizedState"] + ), + ???*25*() ) - *0* ???*1*["is"] ⚠️ unknown object @@ -9607,7 +10332,38 @@ ${La}${a}` ⚠️ unknown object - *5* unsupported expression - *6* unknown mutation -- *7* arguments[1] +- *7* unsupported expression +- *8* ???*9*["alternate"] + ⚠️ unknown object +- *9* N + ⚠️ circular variable reference +- *10* ???*11*["memoizedState"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["baseState"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["baseQueue"] + ⚠️ unknown object +- *15* O + ⚠️ circular variable reference +- *16* ???*17*["queue"] + ⚠️ unknown object +- *17* O + ⚠️ circular variable reference +- *18* ???*19*["next"] + ⚠️ unknown object +- *19* unsupported expression +- *20* unknown mutation +- *21* unsupported expression +- *22* a + ⚠️ circular variable reference +- *23* ???*24*["next"] + ⚠️ unknown object +- *24* unsupported expression +- *25* arguments[1] ⚠️ function calls are not analysed yet 0 -> 2726 member call = (...) => (undefined | c(*anonymous function 67764*))["bind"]( @@ -9621,26 +10377,41 @@ ${La}${a}` | ???*2* | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*12* | ???*13* | null | ???*15*)) + | (null !== (null["next"] | ???*12* | null | ???*14*)) ), ( | undefined | null - | ???*16* + | ???*15* | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] - | ???*17* + | ???*16* + | (null !== ( + | null + | ???*18* + | ???*19* + | { + "memoizedState": ???*21*, + "baseState": ???*23*, + "baseQueue": ???*25*, + "queue": ???*27*, + "next": null + } + ))["memoizedState"] + | (null !== (null["next"] | ???*29* | null | ???*31*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*32* | ???*33*))["alternate"] + | (null !== (null["next"] | ???*34*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*19*), - "baseState": (null["baseState"] | ???*21*), - "baseQueue": (null["baseQueue"] | ???*23*), - "queue": (null["queue"] | ???*25*), + "memoizedState": (null["memoizedState"] | ???*36*), + "baseState": (null["baseState"] | ???*38*), + "baseQueue": (null["baseQueue"] | ???*40*), + "queue": (null["queue"] | ???*42*), "next": null } ), - ???*27* + ???*44* ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -9665,30 +10436,59 @@ ${La}${a}` ⚠️ unknown object - *11* O ⚠️ circular variable reference -- *12* null["next"] - ⚠️ nested operation -- *13* ???*14*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *14* unsupported expression -- *15* unknown mutation -- *16* unsupported expression -- *17* ???*18*["memoizedState"] +- *13* unsupported expression +- *14* unknown mutation +- *15* unsupported expression +- *16* ???*17*["memoizedState"] ⚠️ unknown object -- *18* arguments[1] +- *17* arguments[1] ⚠️ function calls are not analysed yet -- *19* ???*20*["memoizedState"] +- *18* unsupported expression +- *19* ???*20*["alternate"] ⚠️ unknown object -- *20* unsupported expression -- *21* ???*22*["baseState"] +- *20* N + ⚠️ circular variable reference +- *21* ???*22*["memoizedState"] ⚠️ unknown object -- *22* unsupported expression -- *23* ???*24*["baseQueue"] +- *22* O + ⚠️ circular variable reference +- *23* ???*24*["baseState"] ⚠️ unknown object -- *24* unsupported expression -- *25* ???*26*["queue"] +- *24* O + ⚠️ circular variable reference +- *25* ???*26*["baseQueue"] ⚠️ unknown object -- *26* unsupported expression -- *27* arguments[0] +- *26* O + ⚠️ circular variable reference +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* O + ⚠️ circular variable reference +- *29* ???*30*["next"] + ⚠️ unknown object +- *30* unsupported expression +- *31* unknown mutation +- *32* unsupported expression +- *33* a + ⚠️ circular variable reference +- *34* ???*35*["next"] + ⚠️ unknown object +- *35* unsupported expression +- *36* ???*37*["memoizedState"] + ⚠️ unknown object +- *37* unsupported expression +- *38* ???*39*["baseState"] + ⚠️ unknown object +- *39* unsupported expression +- *40* ???*41*["baseQueue"] + ⚠️ unknown object +- *41* unsupported expression +- *42* ???*43*["queue"] + ⚠️ unknown object +- *43* unsupported expression +- *44* arguments[0] ⚠️ function calls are not analysed yet 0 -> 2727 call = (...) => (undefined | ui(2048, 8, a, b))(???*0*, [???*1*]) @@ -9710,27 +10510,42 @@ ${La}${a}` | ???*2* | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*12* | ???*13* | null | ???*15*)) + | (null !== (null["next"] | ???*12* | null | ???*14*)) ), ( | undefined | null - | ???*16* + | ???*15* | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] - | ???*17* + | ???*16* + | (null !== ( + | null + | ???*18* + | ???*19* + | { + "memoizedState": ???*21*, + "baseState": ???*23*, + "baseQueue": ???*25*, + "queue": ???*27*, + "next": null + } + ))["memoizedState"] + | (null !== (null["next"] | ???*29* | null | ???*31*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*32* | ???*33*))["alternate"] + | (null !== (null["next"] | ???*34*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*19*), - "baseState": (null["baseState"] | ???*21*), - "baseQueue": (null["baseQueue"] | ???*23*), - "queue": (null["queue"] | ???*25*), + "memoizedState": (null["memoizedState"] | ???*36*), + "baseState": (null["baseState"] | ???*38*), + "baseQueue": (null["baseQueue"] | ???*40*), + "queue": (null["queue"] | ???*42*), "next": null } ), - ???*27*(), - ???*28* + ???*44*(), + ???*45* ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -9755,32 +10570,61 @@ ${La}${a}` ⚠️ unknown object - *11* O ⚠️ circular variable reference -- *12* null["next"] - ⚠️ nested operation -- *13* ???*14*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *14* unsupported expression -- *15* unknown mutation -- *16* unsupported expression -- *17* ???*18*["memoizedState"] +- *13* unsupported expression +- *14* unknown mutation +- *15* unsupported expression +- *16* ???*17*["memoizedState"] ⚠️ unknown object -- *18* arguments[1] +- *17* arguments[1] ⚠️ function calls are not analysed yet -- *19* ???*20*["memoizedState"] +- *18* unsupported expression +- *19* ???*20*["alternate"] ⚠️ unknown object -- *20* unsupported expression -- *21* ???*22*["baseState"] +- *20* N + ⚠️ circular variable reference +- *21* ???*22*["memoizedState"] ⚠️ unknown object -- *22* unsupported expression -- *23* ???*24*["baseQueue"] +- *22* O + ⚠️ circular variable reference +- *23* ???*24*["baseState"] ⚠️ unknown object -- *24* unsupported expression -- *25* ???*26*["queue"] +- *24* O + ⚠️ circular variable reference +- *25* ???*26*["baseQueue"] ⚠️ unknown object -- *26* unsupported expression -- *27* arguments[1] +- *26* O + ⚠️ circular variable reference +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* O + ⚠️ circular variable reference +- *29* ???*30*["next"] + ⚠️ unknown object +- *30* unsupported expression +- *31* unknown mutation +- *32* unsupported expression +- *33* a + ⚠️ circular variable reference +- *34* ???*35*["next"] + ⚠️ unknown object +- *35* unsupported expression +- *36* ???*37*["memoizedState"] + ⚠️ unknown object +- *37* unsupported expression +- *38* ???*39*["baseState"] + ⚠️ unknown object +- *39* unsupported expression +- *40* ???*41*["baseQueue"] + ⚠️ unknown object +- *41* unsupported expression +- *42* ???*43*["queue"] + ⚠️ unknown object +- *43* unsupported expression +- *44* arguments[1] ⚠️ function calls are not analysed yet -- *28* arguments[1] +- *45* arguments[1] ⚠️ function calls are not analysed yet 2731 -> 2735 call = (...) => (undefined | a)(9, ???*0*, ???*1*, null) @@ -9822,10 +10666,10 @@ ${La}${a}` | ???*2* | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*12* | ???*13* | null | ???*15*)) + | (null !== (null["next"] | ???*12* | null | ???*14*)) ), - ???*16*, - ???*17*() + ???*15*, + ???*16*() ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -9850,23 +10694,71 @@ ${La}${a}` ⚠️ unknown object - *11* O ⚠️ circular variable reference -- *12* null["next"] - ⚠️ nested operation -- *13* ???*14*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *14* unsupported expression -- *15* unknown mutation -- *16* arguments[1] +- *13* unsupported expression +- *14* unknown mutation +- *15* arguments[1] ⚠️ function calls are not analysed yet -- *17* arguments[1] +- *16* arguments[1] ⚠️ function calls are not analysed yet -0 -> 2747 member call = (???*0* | ???*1* | null | ???*3*)["push"]( - ( +0 -> 2747 member call = ( + | ???*0* + | ???*1* + | null["updateQueue"]["stores"] + | (null !== ( + | null + | ???*3* | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["updateQueue"]["stores"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["updateQueue"]["stores"] + | null + | ???*17* +)["push"]( + ( + | ???*18* | { - "getSnapshot": (???*5* | null["updateQueue"] | ???*6* | {"lastEffect": null, "stores": null}), - "value": (???*8* | ???*9* | null | ???*11*) + "getSnapshot": ( + | ???*19* + | null["updateQueue"] + | ???*20* + | (null !== ( + | null + | ???*22* + | ???*23* + | { + "memoizedState": ???*25*, + "baseState": ???*27*, + "baseQueue": ???*29*, + "queue": ???*31*, + "next": null + } + ))["updateQueue"] + | (null !== (null["next"] | ???*33* | null | ???*35*))["updateQueue"] + | {"lastEffect": null, "stores": null} + ), + "value": ( + | ???*36* + | ???*37* + | null["updateQueue"]["stores"] + | (null !== ( + | null + | ???*39* + | ???*40* + | { + "memoizedState": ???*42*, + "baseState": ???*44*, + "baseQueue": ???*46*, + "queue": ???*48*, + "next": null + } + ))["updateQueue"]["stores"] + | (null !== (null["next"] | ???*50* | null | ???*52*))["updateQueue"]["stores"] + | null + | ???*53* + ) } ) ) @@ -9876,22 +10768,97 @@ ${La}${a}` ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* unknown mutation -- *4* arguments[0] +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unknown mutation +- *18* arguments[0] ⚠️ function calls are not analysed yet -- *5* arguments[1] +- *19* arguments[1] ⚠️ function calls are not analysed yet -- *6* ???*7*["updateQueue"] +- *20* ???*21*["updateQueue"] ⚠️ unknown object -- *7* arguments[1] +- *21* arguments[1] ⚠️ function calls are not analysed yet -- *8* arguments[2] +- *22* unsupported expression +- *23* ???*24*["alternate"] + ⚠️ unknown object +- *24* N + ⚠️ circular variable reference +- *25* ???*26*["memoizedState"] + ⚠️ unknown object +- *26* O + ⚠️ circular variable reference +- *27* ???*28*["baseState"] + ⚠️ unknown object +- *28* O + ⚠️ circular variable reference +- *29* ???*30*["baseQueue"] + ⚠️ unknown object +- *30* O + ⚠️ circular variable reference +- *31* ???*32*["queue"] + ⚠️ unknown object +- *32* O + ⚠️ circular variable reference +- *33* ???*34*["next"] + ⚠️ unknown object +- *34* unsupported expression +- *35* unknown mutation +- *36* arguments[2] ⚠️ function calls are not analysed yet -- *9* ???*10*["stores"] +- *37* ???*38*["stores"] ⚠️ unknown object -- *10* arguments[1] +- *38* arguments[1] ⚠️ function calls are not analysed yet -- *11* unknown mutation +- *39* unsupported expression +- *40* ???*41*["alternate"] + ⚠️ unknown object +- *41* N + ⚠️ circular variable reference +- *42* ???*43*["memoizedState"] + ⚠️ unknown object +- *43* O + ⚠️ circular variable reference +- *44* ???*45*["baseState"] + ⚠️ unknown object +- *45* O + ⚠️ circular variable reference +- *46* ???*47*["baseQueue"] + ⚠️ unknown object +- *47* O + ⚠️ circular variable reference +- *48* ???*49*["queue"] + ⚠️ unknown object +- *49* O + ⚠️ circular variable reference +- *50* ???*51*["next"] + ⚠️ unknown object +- *51* unsupported expression +- *52* unknown mutation +- *53* unknown mutation 0 -> 2750 call = (...) => (undefined | !(He(a, c)) | !(0))(???*0*) - *0* arguments[1] @@ -9992,20 +10959,20 @@ ${La}${a}` | ???*2* | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*12* | ???*13* | null | ???*15*)) + | (null !== (null["next"] | ???*12* | null | ???*14*)) ), ( - | ???*16* - | ???*17*() + | ???*15* + | ???*16*() | { "pending": null, "interleaved": null, "lanes": 0, "dispatch": null, "lastRenderedReducer": (...) => (undefined | b(a) | b), - "lastRenderedState": ???*18* + "lastRenderedState": ???*17* } - | ???*19* + | ???*18* ) ) - *0* arguments[1] @@ -10031,19 +10998,17 @@ ${La}${a}` ⚠️ unknown object - *11* O ⚠️ circular variable reference -- *12* null["next"] - ⚠️ nested operation -- *13* ???*14*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *14* unsupported expression -- *15* unknown mutation -- *16* arguments[0] +- *13* unsupported expression +- *14* unknown mutation +- *15* arguments[0] ⚠️ function calls are not analysed yet -- *17* a +- *16* a ⚠️ circular variable reference -- *18* a +- *17* a ⚠️ circular variable reference -- *19* unsupported expression +- *18* unsupported expression 0 -> 2782 call = (...) => (undefined | P)() @@ -10062,43 +11027,57 @@ ${La}${a}` 0 -> 2788 conditional = (null !== ( | null | ???*0* + | null["alternate"] | ???*1* - | ???*2* - | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} + | {"memoizedState": ???*3*, "baseState": ???*5*, "baseQueue": ???*7*, "queue": ???*9*, "next": null} )) - *0* unsupported expression -- *1* null["alternate"] - ⚠️ nested operation -- *2* ???*3*["alternate"] +- *1* ???*2*["alternate"] ⚠️ unknown object -- *3* arguments[1] +- *2* arguments[1] ⚠️ function calls are not analysed yet -- *4* ???*5*["memoizedState"] +- *3* ???*4*["memoizedState"] ⚠️ unknown object -- *5* O +- *4* O ⚠️ circular variable reference -- *6* ???*7*["baseState"] +- *5* ???*6*["baseState"] ⚠️ unknown object -- *7* O +- *6* O ⚠️ circular variable reference -- *8* ???*9*["baseQueue"] +- *7* ???*8*["baseQueue"] ⚠️ unknown object -- *9* O +- *8* O ⚠️ circular variable reference -- *10* ???*11*["queue"] +- *9* ???*10*["queue"] ⚠️ unknown object -- *11* O +- *10* O ⚠️ circular variable reference -2788 -> 2792 call = (...) => (undefined | !(1) | !(0))((???*0* | null | ???*1*), ???*2*) +2788 -> 2792 call = (...) => (undefined | !(1) | !(0))( + (???*0* | null | ???*1*), + ( + | null["memoizedState"]["deps"] + | ???*2* + | null["alternate"]["memoizedState"]["deps"] + | (null !== ???*5*)["alternate"]["memoizedState"]["deps"] + | (null !== ???*6*)["alternate"]["memoizedState"]["deps"] + ) +) - *0* arguments[3] ⚠️ function calls are not analysed yet - *1* d ⚠️ circular variable reference - *2* ???*3*["deps"] ⚠️ unknown object -- *3* null["memoizedState"] - ⚠️ nested operation +- *3* ???*4*["memoizedState"] + ⚠️ unknown object +- *4* unsupported expression +- *5* O + ⚠️ circular variable reference +- *6* ???*7*["next"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference 2788 -> 2793 conditional = ((null !== (???*0* | null | ???*1*)) | undefined | false | true) - *0* arguments[3] @@ -10106,7 +11085,19 @@ ${La}${a}` - *1* d ⚠️ circular variable reference -2793 -> 2795 call = (...) => (undefined | a)(???*0*, ???*1*, (???*2* | ???*3*), (???*5* | null | ???*6*)) +2793 -> 2795 call = (...) => (undefined | a)( + ???*0*, + ???*1*, + ( + | ???*2* + | null["memoizedState"]["destroy"] + | ???*3* + | null["alternate"]["memoizedState"]["destroy"] + | (null !== ???*6*)["alternate"]["memoizedState"]["destroy"] + | (null !== ???*7*)["alternate"]["memoizedState"]["destroy"] + ), + (???*9* | null | ???*10*) +) - *0* arguments[1] ⚠️ function calls are not analysed yet - *1* arguments[2] @@ -10114,25 +11105,51 @@ ${La}${a}` - *2* unsupported expression - *3* ???*4*["destroy"] ⚠️ unknown object -- *4* null["memoizedState"] - ⚠️ nested operation -- *5* arguments[3] +- *4* ???*5*["memoizedState"] + ⚠️ unknown object +- *5* unsupported expression +- *6* O + ⚠️ circular variable reference +- *7* ???*8*["next"] + ⚠️ unknown object +- *8* O + ⚠️ circular variable reference +- *9* arguments[3] ⚠️ function calls are not analysed yet -- *6* d +- *10* d ⚠️ circular variable reference -0 -> 2798 call = (...) => (undefined | a)(???*0*, ???*1*, (???*2* | ???*3*), (???*5* | null | ???*6*)) +0 -> 2798 call = (...) => (undefined | a)( + ???*0*, + ???*1*, + ( + | ???*2* + | null["memoizedState"]["destroy"] + | ???*3* + | null["alternate"]["memoizedState"]["destroy"] + | (null !== ???*6*)["alternate"]["memoizedState"]["destroy"] + | (null !== ???*7*)["alternate"]["memoizedState"]["destroy"] + ), + (???*9* | null | ???*10*) +) - *0* unsupported expression - *1* arguments[2] ⚠️ function calls are not analysed yet - *2* unsupported expression - *3* ???*4*["destroy"] ⚠️ unknown object -- *4* null["memoizedState"] - ⚠️ nested operation -- *5* arguments[3] +- *4* ???*5*["memoizedState"] + ⚠️ unknown object +- *5* unsupported expression +- *6* O + ⚠️ circular variable reference +- *7* ???*8*["next"] + ⚠️ unknown object +- *8* O + ⚠️ circular variable reference +- *9* arguments[3] ⚠️ function calls are not analysed yet -- *6* d +- *10* d ⚠️ circular variable reference 0 -> 2799 call = (...) => undefined(8390656, 8, ???*0*, ???*1*) @@ -10209,48 +11226,43 @@ ${La}${a}` - *1* arguments[0] ⚠️ function calls are not analysed yet -0 -> 2815 call = (...) => (undefined | FreeVar(undefined))(4, 4, ???*0*, (???*4* | ???*5* | null)) -- *0* ???*1*(null, ???*2*, ???*3*) - ⚠️ unknown callee -- *1* (...) => (undefined | *anonymous function 69020* | *anonymous function 69089*)["bind"] - ⚠️ nested operation -- *2* arguments[1] +0 -> 2815 call = (...) => (undefined | FreeVar(undefined))( + 4, + 4, + (...) => (undefined | *anonymous function 69020* | *anonymous function 69089*)["bind"](null, ???*0*, ???*1*), + (???*2* | ???*3* | null) +) +- *0* arguments[1] ⚠️ function calls are not analysed yet -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet -- *4* arguments[2] +- *2* arguments[2] ⚠️ function calls are not analysed yet -- *5* ???*6*["concat"]([a]) +- *3* ???*4*["concat"]([a]) ⚠️ unknown callee object -- *6* c +- *4* c ⚠️ circular variable reference 0 -> 2816 call = (...) => (undefined | P)() -0 -> 2819 call = (...) => (undefined | !(1) | !(0))((???*0* | null | ???*1*), (???*2* | null[1])) +0 -> 2819 call = (...) => (undefined | !(1) | !(0))((???*0* | null | ???*1*), ???*2*) - *0* arguments[1] ⚠️ function calls are not analysed yet - *1* b ⚠️ circular variable reference -- *2* ???*3*[1] - ⚠️ unknown object -- *3* undefined["memoizedState"] - ⚠️ nested operation +- *2* max number of linking steps reached 0 -> 2820 conditional = ???*0* - *0* max number of linking steps reached 0 -> 2823 call = (...) => (undefined | P)() -0 -> 2826 call = (...) => (undefined | !(1) | !(0))((???*0* | null | ???*1*), (???*2* | null[1])) +0 -> 2826 call = (...) => (undefined | !(1) | !(0))((???*0* | null | ???*1*), ???*2*) - *0* arguments[1] ⚠️ function calls are not analysed yet - *1* b ⚠️ circular variable reference -- *2* ???*3*[1] - ⚠️ unknown object -- *3* undefined["memoizedState"] - ⚠️ nested operation +- *2* max number of linking steps reached 0 -> 2827 conditional = ???*0* - *0* max number of linking steps reached @@ -10531,7 +11543,7 @@ ${La}${a}` ), ???*10*, (undefined | 1 | ???*11* | 0 | 64 | ???*12* | ???*13* | 4 | 16 | 536870912 | null | ???*14*), - (undefined | ???*16*() | ???*17*) + (undefined | module["unstable_now"]() | ???*16*) ) - *0* arguments[2] ⚠️ function calls are not analysed yet @@ -10563,9 +11575,7 @@ ${La}${a}` ⚠️ unknown object - *15* arguments[1] ⚠️ function calls are not analysed yet -- *16* module["unstable_now"] - ⚠️ nested operation -- *17* unsupported expression +- *16* unsupported expression 2852 -> 2855 call = (...) => undefined( ( @@ -10718,8 +11728,8 @@ ${La}${a}` "next": null } | undefined - | ???*10*() - | ???*11* + | module["unstable_now"]() + | ???*10* ) ) - *0* arguments[1] @@ -10741,9 +11751,7 @@ ${La}${a}` ⚠️ unknown object - *9* arguments[0] ⚠️ function calls are not analysed yet -- *10* module["unstable_now"] - ⚠️ nested operation -- *11* unsupported expression +- *10* unsupported expression 2858 -> 2864 conditional = ((0 === ???*0*) | (null === ???*2*) | (null !== ???*4*)) - *0* ???*1*["lanes"] @@ -10833,10 +11841,10 @@ ${La}${a}` "next": null } | undefined - | ???*11*() - | ???*12* + | module["unstable_now"]() + | ???*11* ), - (undefined | 1 | ???*13* | 0 | 64 | ???*14* | ???*15* | 4 | 16 | 536870912 | null | ???*16*) + (undefined | 1 | ???*12* | 0 | 64 | ???*13* | ???*14* | 4 | 16 | 536870912 | null | ???*15*) ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -10859,17 +11867,15 @@ ${La}${a}` ⚠️ unknown object - *10* arguments[0] ⚠️ function calls are not analysed yet -- *11* module["unstable_now"] - ⚠️ nested operation +- *11* unsupported expression - *12* unsupported expression -- *13* unsupported expression -- *14* arguments[0] +- *13* arguments[0] ⚠️ function calls are not analysed yet -- *15* C +- *14* C ⚠️ circular variable reference -- *16* ???*17*["value"] +- *15* ???*16*["value"] ⚠️ unknown object -- *17* arguments[1] +- *16* arguments[1] ⚠️ function calls are not analysed yet 2858 -> 2879 call = (...) => (undefined | B() | Bk | ???*0*)() @@ -10888,8 +11894,8 @@ ${La}${a}` "next": null } | undefined - | ???*19*() - | ???*20* + | module["unstable_now"]() + | ???*19* ) ) - *0* arguments[2] @@ -10928,9 +11934,7 @@ ${La}${a}` ⚠️ unknown object - *18* arguments[0] ⚠️ function calls are not analysed yet -- *19* module["unstable_now"] - ⚠️ nested operation -- *20* unsupported expression +- *19* unsupported expression 2858 -> 2881 call = (...) => undefined( (???*0* | undefined | ???*1* | null), @@ -10984,20 +11988,21 @@ ${La}${a}` - *1* arguments[0] ⚠️ function calls are not analysed yet -0 -> 2900 call = (...) => undefined(4194308, 4, ???*0*, (???*4* | ???*5* | null)) -- *0* ???*1*(null, ???*2*, ???*3*) - ⚠️ unknown callee -- *1* (...) => (undefined | *anonymous function 69020* | *anonymous function 69089*)["bind"] - ⚠️ nested operation -- *2* arguments[1] +0 -> 2900 call = (...) => undefined( + 4194308, + 4, + (...) => (undefined | *anonymous function 69020* | *anonymous function 69089*)["bind"](null, ???*0*, ???*1*), + (???*2* | ???*3* | null) +) +- *0* arguments[1] ⚠️ function calls are not analysed yet -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet -- *4* arguments[2] +- *2* arguments[2] ⚠️ function calls are not analysed yet -- *5* ???*6*["concat"]([a]) +- *3* ???*4*["concat"]([a]) ⚠️ unknown callee object -- *6* c +- *4* c ⚠️ circular variable reference 0 -> 2901 call = (...) => undefined(4194308, 4, ???*0*, ???*1*) @@ -11045,19 +12050,19 @@ ${La}${a}` | ???*2* | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*12* | ???*13* | null | ???*15*)) + | (null !== (null["next"] | ???*12* | null | ???*14*)) ), ( - | ???*16* + | ???*15* | { "pending": null, "interleaved": null, "lanes": 0, "dispatch": null, - "lastRenderedReducer": ???*17*, - "lastRenderedState": (???*18* | ???*19* | ???*21*) + "lastRenderedReducer": ???*16*, + "lastRenderedState": (???*17* | ???*18* | ???*20*) } - | ???*22* + | ???*21* ) ) - *0* arguments[1] @@ -11083,25 +12088,23 @@ ${La}${a}` ⚠️ unknown object - *11* O ⚠️ circular variable reference -- *12* null["next"] - ⚠️ nested operation -- *13* ???*14*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *14* unsupported expression -- *15* unknown mutation -- *16* arguments[0] +- *13* unsupported expression +- *14* unknown mutation +- *15* arguments[0] ⚠️ function calls are not analysed yet -- *17* a +- *16* a ⚠️ circular variable reference -- *18* arguments[1] +- *17* arguments[1] ⚠️ function calls are not analysed yet -- *19* ???*20*(b) +- *18* ???*19*(b) ⚠️ unknown callee -- *20* arguments[2] +- *19* arguments[2] ⚠️ function calls are not analysed yet -- *21* b +- *20* b ⚠️ circular variable reference -- *22* unsupported expression +- *21* unsupported expression 0 -> 2915 call = (...) => (undefined | P)() @@ -11188,10 +12191,10 @@ ${La}${a}` | ???*2* | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*12* | ???*13* | null | ???*15*)) + | (null !== (null["next"] | ???*12* | null | ???*14*)) ), - ???*16*, - (???*17* | ???*18*() | ???*19*()) + ???*15*, + (???*16* | ???*17*() | ???*18*()) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -11216,19 +12219,17 @@ ${La}${a}` ⚠️ unknown object - *11* O ⚠️ circular variable reference -- *12* null["next"] - ⚠️ nested operation -- *13* ???*14*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *14* unsupported expression -- *15* unknown mutation -- *16* arguments[1] +- *13* unsupported expression +- *14* unknown mutation +- *15* arguments[1] ⚠️ function calls are not analysed yet -- *17* arguments[2] +- *16* arguments[2] ⚠️ function calls are not analysed yet -- *18* c +- *17* c ⚠️ circular variable reference -- *19* arguments[1] +- *18* arguments[1] ⚠️ function calls are not analysed yet 0 -> 2940 member call = (...) => (undefined | c(*anonymous function 67764*))["bind"]( @@ -11242,10 +12243,10 @@ ${La}${a}` | ???*2* | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*12* | ???*13* | null | ???*15*)) + | (null !== (null["next"] | ???*12* | null | ???*14*)) ), - {"value": (???*16* | ???*17*() | ???*18*()), "getSnapshot": ???*19*}, - ???*20* + {"value": (???*15* | ???*16*() | ???*17*()), "getSnapshot": ???*18*}, + ???*19* ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -11270,94 +12271,73 @@ ${La}${a}` ⚠️ unknown object - *11* O ⚠️ circular variable reference -- *12* null["next"] - ⚠️ nested operation -- *13* ???*14*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *14* unsupported expression -- *15* unknown mutation -- *16* arguments[2] +- *13* unsupported expression +- *14* unknown mutation +- *15* arguments[2] ⚠️ function calls are not analysed yet -- *17* c +- *16* c ⚠️ circular variable reference -- *18* arguments[1] +- *17* arguments[1] ⚠️ function calls are not analysed yet -- *19* arguments[1] +- *18* arguments[1] ⚠️ function calls are not analysed yet -- *20* arguments[0] +- *19* arguments[0] ⚠️ function calls are not analysed yet -0 -> 2941 call = (...) => (undefined | ti(8390656, 8, a, b))(???*0*, [???*28*]) -- *0* ???*1*( +0 -> 2941 call = (...) => (undefined | ti(8390656, 8, a, b))( + (...) => (undefined | ???*0*)["bind"]( null, - (null | ???*3* | ???*4* | ???*16*), - {"value": (???*21* | ???*22* | ???*24*), "getSnapshot": ???*26*}, - ???*27* - ) - ⚠️ unknown callee -- *1* (...) => (undefined | ???*2*)["bind"] - ⚠️ nested operation -- *2* c(*anonymous function 67764*) + (null | ???*1* | ???*2*), + {"value": (???*14* | ???*15*), "getSnapshot": ???*17*}, + ???*18* + ), + [???*19*] +) +- *0* c(*anonymous function 67764*) ⚠️ nested operation -- *3* arguments[1] +- *1* arguments[1] ⚠️ function calls are not analysed yet -- *4* (null !== ( +- *2* (null !== ( | null - | ???*5* - | ???*6* - | { - "memoizedState": ???*8*, - "baseState": ???*10*, - "baseQueue": ???*12*, - "queue": ???*14*, - "next": null - } + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} )) ⚠️ nested operation -- *5* unsupported expression -- *6* ???*7*["alternate"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *7* N +- *5* N ⚠️ circular variable reference -- *8* ???*9*["memoizedState"] +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object - *9* O ⚠️ circular variable reference -- *10* ???*11*["baseState"] +- *10* ???*11*["baseQueue"] ⚠️ unknown object - *11* O ⚠️ circular variable reference -- *12* ???*13*["baseQueue"] +- *12* ???*13*["queue"] ⚠️ unknown object - *13* O - ⚠️ circular variable reference -- *14* ???*15*["queue"] - ⚠️ unknown object -- *15* O - ⚠️ circular variable reference -- *16* (null !== (???*17* | ???*18* | null | ???*20*)) - ⚠️ nested operation -- *17* null["next"] - ⚠️ nested operation -- *18* ???*19*["next"] - ⚠️ unknown object -- *19* unsupported expression -- *20* unknown mutation -- *21* arguments[2] + ⚠️ circular variable reference +- *14* arguments[2] ⚠️ function calls are not analysed yet -- *22* ???*23*() +- *15* ???*16*() ⚠️ nested operation -- *23* c +- *16* c ⚠️ circular variable reference -- *24* ???*25*() - ⚠️ nested operation -- *25* arguments[1] - ⚠️ function calls are not analysed yet -- *26* arguments[1] +- *17* arguments[1] ⚠️ function calls are not analysed yet -- *27* arguments[0] +- *18* arguments[0] ⚠️ function calls are not analysed yet -- *28* arguments[0] +- *19* arguments[0] ⚠️ function calls are not analysed yet 0 -> 2944 member call = (...) => undefined["bind"]( @@ -11371,11 +12351,11 @@ ${La}${a}` | ???*2* | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*12* | ???*13* | null | ???*15*)) + | (null !== (null["next"] | ???*12* | null | ???*14*)) ), - {"value": (???*16* | ???*17*() | ???*18*()), "getSnapshot": ???*19*}, - (???*20* | ???*21*() | ???*22*()), - ???*23* + {"value": (???*15* | ???*16*() | ???*17*()), "getSnapshot": ???*18*}, + (???*19* | ???*20*() | ???*21*()), + ???*22* ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -11400,103 +12380,86 @@ ${La}${a}` ⚠️ unknown object - *11* O ⚠️ circular variable reference -- *12* null["next"] - ⚠️ nested operation -- *13* ???*14*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *14* unsupported expression -- *15* unknown mutation -- *16* arguments[2] +- *13* unsupported expression +- *14* unknown mutation +- *15* arguments[2] ⚠️ function calls are not analysed yet -- *17* c +- *16* c ⚠️ circular variable reference -- *18* arguments[1] +- *17* arguments[1] ⚠️ function calls are not analysed yet -- *19* arguments[1] +- *18* arguments[1] ⚠️ function calls are not analysed yet -- *20* arguments[2] +- *19* arguments[2] ⚠️ function calls are not analysed yet -- *21* c +- *20* c ⚠️ circular variable reference -- *22* arguments[1] +- *21* arguments[1] ⚠️ function calls are not analysed yet -- *23* arguments[1] +- *22* arguments[1] ⚠️ function calls are not analysed yet -0 -> 2945 call = (...) => (undefined | a)(9, ???*0*, ???*32*, null) -- *0* ???*1*( +0 -> 2945 call = (...) => (undefined | a)( + 9, + (...) => undefined["bind"]( null, - (null | ???*2* | ???*3* | ???*15*), - {"value": (???*20* | ???*21* | ???*23*), "getSnapshot": ???*25*}, - (???*26* | ???*27* | ???*29*), - ???*31* - ) - ⚠️ unknown callee -- *1* (...) => undefined["bind"] - ⚠️ nested operation -- *2* arguments[1] + (null | ???*0* | ???*1*), + {"value": (???*13* | ???*14*), "getSnapshot": ???*16*}, + (???*17* | ???*18*), + ???*20* + ), + ???*21*, + null +) +- *0* arguments[1] ⚠️ function calls are not analysed yet -- *3* (null !== ( +- *1* (null !== ( | null - | ???*4* - | ???*5* - | {"memoizedState": ???*7*, "baseState": ???*9*, "baseQueue": ???*11*, "queue": ???*13*, "next": null} + | ???*2* + | ???*3* + | {"memoizedState": ???*5*, "baseState": ???*7*, "baseQueue": ???*9*, "queue": ???*11*, "next": null} )) ⚠️ nested operation -- *4* unsupported expression -- *5* ???*6*["alternate"] +- *2* unsupported expression +- *3* ???*4*["alternate"] ⚠️ unknown object -- *6* N +- *4* N ⚠️ circular variable reference -- *7* ???*8*["memoizedState"] +- *5* ???*6*["memoizedState"] + ⚠️ unknown object +- *6* O + ⚠️ circular variable reference +- *7* ???*8*["baseState"] ⚠️ unknown object - *8* O ⚠️ circular variable reference -- *9* ???*10*["baseState"] +- *9* ???*10*["baseQueue"] ⚠️ unknown object - *10* O ⚠️ circular variable reference -- *11* ???*12*["baseQueue"] +- *11* ???*12*["queue"] ⚠️ unknown object - *12* O ⚠️ circular variable reference -- *13* ???*14*["queue"] - ⚠️ unknown object -- *14* O - ⚠️ circular variable reference -- *15* (null !== (???*16* | ???*17* | null | ???*19*)) - ⚠️ nested operation -- *16* null["next"] - ⚠️ nested operation -- *17* ???*18*["next"] - ⚠️ unknown object -- *18* unsupported expression -- *19* unknown mutation -- *20* arguments[2] +- *13* arguments[2] ⚠️ function calls are not analysed yet -- *21* ???*22*() +- *14* ???*15*() ⚠️ nested operation -- *22* c +- *15* c ⚠️ circular variable reference -- *23* ???*24*() - ⚠️ nested operation -- *24* arguments[1] - ⚠️ function calls are not analysed yet -- *25* arguments[1] +- *16* arguments[1] ⚠️ function calls are not analysed yet -- *26* arguments[2] +- *17* arguments[2] ⚠️ function calls are not analysed yet -- *27* ???*28*() +- *18* ???*19*() ⚠️ nested operation -- *28* c +- *19* c ⚠️ circular variable reference -- *29* ???*30*() - ⚠️ nested operation -- *30* arguments[1] - ⚠️ function calls are not analysed yet -- *31* arguments[1] +- *20* arguments[1] ⚠️ function calls are not analysed yet -- *32* unsupported expression +- *21* unsupported expression 0 -> 2946 call = (...) => (undefined | P)() @@ -11531,18 +12494,34 @@ ${La}${a}` | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*2* + | (null !== ( + | null + | ???*4* + | ???*5* + | {"memoizedState": ???*7*, "baseState": ???*9*, "baseQueue": ???*11*, "queue": ???*13*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*15* | null | ???*17*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*18* | ???*19*))["alternate"] + | (null !== (null["next"] | ???*20*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*4*), - "baseState": (null["baseState"] | ???*6*), - "baseQueue": (null["baseQueue"] | ???*8*), - "queue": (null["queue"] | ???*10*), + "memoizedState": (null["memoizedState"] | ???*22*), + "baseState": (null["baseState"] | ???*24*), + "baseQueue": (null["baseQueue"] | ???*26*), + "queue": (null["queue"] | ???*28*), "next": null } ), - (null["memoizedState"] | ???*12* | ???*14*), - ???*15* + ( + | null["memoizedState"] + | ???*30* + | null["alternate"]["memoizedState"] + | (null !== ???*32*)["alternate"]["memoizedState"] + | (null !== ???*33*)["alternate"]["memoizedState"] + | ???*35* + ), + ???*36* ) - *0* unsupported expression - *1* unsupported expression @@ -11550,23 +12529,60 @@ ${La}${a}` ⚠️ unknown object - *3* arguments[1] ⚠️ function calls are not analysed yet -- *4* ???*5*["memoizedState"] +- *4* unsupported expression +- *5* ???*6*["alternate"] ⚠️ unknown object -- *5* unsupported expression -- *6* ???*7*["baseState"] +- *6* N + ⚠️ circular variable reference +- *7* ???*8*["memoizedState"] ⚠️ unknown object -- *7* unsupported expression -- *8* ???*9*["baseQueue"] +- *8* O + ⚠️ circular variable reference +- *9* ???*10*["baseState"] ⚠️ unknown object -- *9* unsupported expression -- *10* ???*11*["queue"] +- *10* O + ⚠️ circular variable reference +- *11* ???*12*["baseQueue"] ⚠️ unknown object -- *11* unsupported expression -- *12* ???*13*["memoizedState"] +- *12* O + ⚠️ circular variable reference +- *13* ???*14*["queue"] ⚠️ unknown object -- *13* unsupported expression -- *14* unknown mutation -- *15* arguments[0] +- *14* O + ⚠️ circular variable reference +- *15* ???*16*["next"] + ⚠️ unknown object +- *16* unsupported expression +- *17* unknown mutation +- *18* unsupported expression +- *19* a + ⚠️ circular variable reference +- *20* ???*21*["next"] + ⚠️ unknown object +- *21* unsupported expression +- *22* ???*23*["memoizedState"] + ⚠️ unknown object +- *23* unsupported expression +- *24* ???*25*["baseState"] + ⚠️ unknown object +- *25* unsupported expression +- *26* ???*27*["baseQueue"] + ⚠️ unknown object +- *27* unsupported expression +- *28* ???*29*["queue"] + ⚠️ unknown object +- *29* unsupported expression +- *30* ???*31*["memoizedState"] + ⚠️ unknown object +- *31* unsupported expression +- *32* O + ⚠️ circular variable reference +- *33* ???*34*["next"] + ⚠️ unknown object +- *34* O + ⚠️ circular variable reference +- *35* unknown mutation +- *36* arguments[0] ⚠️ function calls are not analysed yet 0 -> 2962 call = (...) => (undefined | [b["memoizedState"], c["dispatch"]])((...) => (undefined | b(a) | b)) @@ -11585,18 +12601,34 @@ ${La}${a}` | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*2* + | (null !== ( + | null + | ???*4* + | ???*5* + | {"memoizedState": ???*7*, "baseState": ???*9*, "baseQueue": ???*11*, "queue": ???*13*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*15* | null | ???*17*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*18* | ???*19*))["alternate"] + | (null !== (null["next"] | ???*20*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*4*), - "baseState": (null["baseState"] | ???*6*), - "baseQueue": (null["baseQueue"] | ???*8*), - "queue": (null["queue"] | ???*10*), + "memoizedState": (null["memoizedState"] | ???*22*), + "baseState": (null["baseState"] | ???*24*), + "baseQueue": (null["baseQueue"] | ???*26*), + "queue": (null["queue"] | ???*28*), "next": null } ), - (null["memoizedState"] | ???*12* | ???*14*), - ???*15* + ( + | null["memoizedState"] + | ???*30* + | null["alternate"]["memoizedState"] + | (null !== ???*32*)["alternate"]["memoizedState"] + | (null !== ???*33*)["alternate"]["memoizedState"] + | ???*35* + ), + ???*36* ) - *0* unsupported expression - *1* unsupported expression @@ -11604,23 +12636,60 @@ ${La}${a}` ⚠️ unknown object - *3* arguments[1] ⚠️ function calls are not analysed yet -- *4* ???*5*["memoizedState"] +- *4* unsupported expression +- *5* ???*6*["alternate"] ⚠️ unknown object -- *5* unsupported expression -- *6* ???*7*["baseState"] +- *6* N + ⚠️ circular variable reference +- *7* ???*8*["memoizedState"] ⚠️ unknown object -- *7* unsupported expression -- *8* ???*9*["baseQueue"] +- *8* O + ⚠️ circular variable reference +- *9* ???*10*["baseState"] ⚠️ unknown object -- *9* unsupported expression -- *10* ???*11*["queue"] +- *10* O + ⚠️ circular variable reference +- *11* ???*12*["baseQueue"] ⚠️ unknown object -- *11* unsupported expression -- *12* ???*13*["memoizedState"] +- *12* O + ⚠️ circular variable reference +- *13* ???*14*["queue"] ⚠️ unknown object -- *13* unsupported expression -- *14* unknown mutation -- *15* arguments[0] +- *14* O + ⚠️ circular variable reference +- *15* ???*16*["next"] + ⚠️ unknown object +- *16* unsupported expression +- *17* unknown mutation +- *18* unsupported expression +- *19* a + ⚠️ circular variable reference +- *20* ???*21*["next"] + ⚠️ unknown object +- *21* unsupported expression +- *22* ???*23*["memoizedState"] + ⚠️ unknown object +- *23* unsupported expression +- *24* ???*25*["baseState"] + ⚠️ unknown object +- *25* unsupported expression +- *26* ???*27*["baseQueue"] + ⚠️ unknown object +- *27* unsupported expression +- *28* ???*29*["queue"] + ⚠️ unknown object +- *29* unsupported expression +- *30* ???*31*["memoizedState"] + ⚠️ unknown object +- *31* unsupported expression +- *32* O + ⚠️ circular variable reference +- *33* ???*34*["next"] + ⚠️ unknown object +- *34* O + ⚠️ circular variable reference +- *35* unknown mutation +- *36* arguments[0] ⚠️ function calls are not analysed yet 0 -> 2971 call = (...) => (undefined | [f, d])((...) => (undefined | b(a) | b)) @@ -11738,52 +12807,114 @@ ${La}${a}` ⚠️ function calls are not analysed yet - *2* unsupported expression -3009 -> 3012 member call = (???*0* | ???*2*)["set"](???*3*, (???*4* | ???*5*)) +3009 -> 3012 member call = ( + | ???*0* + | (...) => undefined["bind"](null, ???*2*, ???*3*, ???*4*)["pingCache"] + | ???*5* +)["set"](???*6*, (???*7* | ???*8* | ???*12*)) - *0* ???*1*["pingCache"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* unsupported expression +- *2* a + ⚠️ circular variable reference - *3* arguments[1] ⚠️ function calls are not analysed yet -- *4* unknown new expression -- *5* ???*6*["get"](???*8*) +- *4* arguments[2] + ⚠️ function calls are not analysed yet +- *5* unsupported expression +- *6* arguments[1] + ⚠️ function calls are not analysed yet +- *7* unknown new expression +- *8* ???*9*["get"](???*11*) ⚠️ unknown callee object -- *6* ???*7*["pingCache"] +- *9* ???*10*["pingCache"] ⚠️ unknown object -- *7* arguments[0] +- *10* arguments[0] ⚠️ function calls are not analysed yet -- *8* arguments[1] +- *11* arguments[1] + ⚠️ function calls are not analysed yet +- *12* ???*13*(???*19*) + ⚠️ unknown callee +- *13* ???*14*["get"] + ⚠️ unknown object +- *14* ???*15*["pingCache"] + ⚠️ unknown object +- *15* (...) => undefined["bind"](null, ???*16*, ???*17*, ???*18*) + ⚠️ nested operation +- *16* a + ⚠️ circular variable reference +- *17* arguments[1] + ⚠️ function calls are not analysed yet +- *18* arguments[2] + ⚠️ function calls are not analysed yet +- *19* arguments[1] ⚠️ function calls are not analysed yet -3009 -> 3014 member call = (???*0* | ???*2*)["get"](???*3*) +3009 -> 3014 member call = ( + | ???*0* + | (...) => undefined["bind"](null, ???*2*, ???*3*, ???*4*)["pingCache"] + | ???*5* +)["get"](???*6*) - *0* ???*1*["pingCache"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* unsupported expression +- *2* a + ⚠️ circular variable reference - *3* arguments[1] ⚠️ function calls are not analysed yet +- *4* arguments[2] + ⚠️ function calls are not analysed yet +- *5* unsupported expression +- *6* arguments[1] + ⚠️ function calls are not analysed yet -3009 -> 3016 member call = (???*0* | ???*2*)["set"](???*3*, (???*4* | ???*5*)) +3009 -> 3016 member call = ( + | ???*0* + | (...) => undefined["bind"](null, ???*2*, ???*3*, ???*4*)["pingCache"] + | ???*5* +)["set"](???*6*, (???*7* | ???*8* | ???*12*)) - *0* ???*1*["pingCache"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* unsupported expression +- *2* a + ⚠️ circular variable reference - *3* arguments[1] ⚠️ function calls are not analysed yet -- *4* unknown new expression -- *5* ???*6*["get"](???*8*) +- *4* arguments[2] + ⚠️ function calls are not analysed yet +- *5* unsupported expression +- *6* arguments[1] + ⚠️ function calls are not analysed yet +- *7* unknown new expression +- *8* ???*9*["get"](???*11*) ⚠️ unknown callee object -- *6* ???*7*["pingCache"] +- *9* ???*10*["pingCache"] ⚠️ unknown object -- *7* arguments[0] +- *10* arguments[0] ⚠️ function calls are not analysed yet -- *8* arguments[1] +- *11* arguments[1] + ⚠️ function calls are not analysed yet +- *12* ???*13*(???*19*) + ⚠️ unknown callee +- *13* ???*14*["get"] + ⚠️ unknown object +- *14* ???*15*["pingCache"] + ⚠️ unknown object +- *15* (...) => undefined["bind"](null, ???*16*, ???*17*, ???*18*) + ⚠️ nested operation +- *16* a + ⚠️ circular variable reference +- *17* arguments[1] + ⚠️ function calls are not analysed yet +- *18* arguments[2] + ⚠️ function calls are not analysed yet +- *19* arguments[1] ⚠️ function calls are not analysed yet -0 -> 3018 member call = (???*0* | ???*1*)["has"](???*5*) +0 -> 3018 member call = (???*0* | ???*1* | ???*5*)["has"](???*13*) - *0* unknown new expression - *1* ???*2*["get"](???*4*) ⚠️ unknown callee object @@ -11793,10 +12924,26 @@ ${La}${a}` ⚠️ function calls are not analysed yet - *4* arguments[1] ⚠️ function calls are not analysed yet -- *5* arguments[2] +- *5* ???*6*(???*12*) + ⚠️ unknown callee +- *6* ???*7*["get"] + ⚠️ unknown object +- *7* ???*8*["pingCache"] + ⚠️ unknown object +- *8* (...) => undefined["bind"](null, ???*9*, ???*10*, ???*11*) + ⚠️ nested operation +- *9* a + ⚠️ circular variable reference +- *10* arguments[1] + ⚠️ function calls are not analysed yet +- *11* arguments[2] + ⚠️ function calls are not analysed yet +- *12* arguments[1] + ⚠️ function calls are not analysed yet +- *13* arguments[2] ⚠️ function calls are not analysed yet -0 -> 3020 member call = (???*0* | ???*1*)["add"](???*5*) +0 -> 3020 member call = (???*0* | ???*1* | ???*5*)["add"](???*13*) - *0* unknown new expression - *1* ???*2*["get"](???*4*) ⚠️ unknown callee object @@ -11804,55 +12951,76 @@ ${La}${a}` ⚠️ unknown object - *3* arguments[0] ⚠️ function calls are not analysed yet -- *4* arguments[1] +- *4* arguments[1] + ⚠️ function calls are not analysed yet +- *5* ???*6*(???*12*) + ⚠️ unknown callee +- *6* ???*7*["get"] + ⚠️ unknown object +- *7* ???*8*["pingCache"] + ⚠️ unknown object +- *8* (...) => undefined["bind"](null, ???*9*, ???*10*, ???*11*) + ⚠️ nested operation +- *9* a + ⚠️ circular variable reference +- *10* arguments[1] + ⚠️ function calls are not analysed yet +- *11* arguments[2] ⚠️ function calls are not analysed yet -- *5* arguments[2] +- *12* arguments[1] + ⚠️ function calls are not analysed yet +- *13* arguments[2] ⚠️ function calls are not analysed yet -0 -> 3022 member call = (...) => undefined["bind"](null, (???*0* | ???*1*), ???*6*, ???*7*) +0 -> 3022 member call = (...) => undefined["bind"]( + null, + ( + | ???*0* + | (...) => undefined["bind"](null, ???*1*, ???*2*, ???*3*) + ), + ???*4*, + ???*5* +) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*(null, ???*3*, ???*4*, ???*5*) - ⚠️ unknown callee -- *2* (...) => undefined["bind"] - ⚠️ nested operation -- *3* a +- *1* a ⚠️ circular variable reference -- *4* arguments[1] +- *2* arguments[1] ⚠️ function calls are not analysed yet -- *5* arguments[2] +- *3* arguments[2] ⚠️ function calls are not analysed yet -- *6* arguments[1] +- *4* arguments[1] ⚠️ function calls are not analysed yet -- *7* arguments[2] +- *5* arguments[2] ⚠️ function calls are not analysed yet -0 -> 3024 member call = ???*0*["then"]((???*1* | ???*2*), (???*7* | ???*8*)) +0 -> 3024 member call = ???*0*["then"]( + ( + | ???*1* + | (...) => undefined["bind"](null, ???*2*, ???*3*, ???*4*) + ), + ( + | ???*5* + | (...) => undefined["bind"](null, ???*6*, ???*7*, ???*8*) + ) +) - *0* arguments[1] ⚠️ function calls are not analysed yet - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* ???*3*(null, ???*4*, ???*5*, ???*6*) - ⚠️ unknown callee -- *3* (...) => undefined["bind"] - ⚠️ nested operation -- *4* a +- *2* a ⚠️ circular variable reference -- *5* arguments[1] +- *3* arguments[1] ⚠️ function calls are not analysed yet -- *6* arguments[2] +- *4* arguments[2] ⚠️ function calls are not analysed yet -- *7* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *8* ???*9*(null, ???*10*, ???*11*, ???*12*) - ⚠️ unknown callee -- *9* (...) => undefined["bind"] - ⚠️ nested operation -- *10* a +- *6* a ⚠️ circular variable reference -- *11* arguments[1] +- *7* arguments[1] ⚠️ function calls are not analysed yet -- *12* arguments[2] +- *8* arguments[2] ⚠️ function calls are not analysed yet 0 -> 3030 conditional = (0 === ???*0*) @@ -11982,7 +13150,15 @@ ${La}${a}` - *7* arguments[4] ⚠️ function calls are not analysed yet -0 -> 3064 conditional = (null === (???*0* | undefined | ???*1* | ???*3* | ???*4* | null)) +0 -> 3064 conditional = (null === ( + | ???*0* + | undefined + | ???*1* + | ???*3* + | (...) => (undefined | ???*4* | ???*5*)["type"] + | null + | (...) => (undefined | ???*6* | ???*7*)["type"]["alternate"] +)) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["children"] @@ -11990,34 +13166,52 @@ ${La}${a}` - *2* arguments[3] ⚠️ function calls are not analysed yet - *3* unknown new expression -- *4* (...) => (undefined | ???*5* | ???*6*)["type"] +- *4* !(0) + ⚠️ nested operation +- *5* !(1) ⚠️ nested operation -- *5* !(0) +- *6* !(0) ⚠️ nested operation -- *6* !(1) +- *7* !(1) ⚠️ nested operation 3064 -> 3066 call = (...) => (undefined | !((!(a) || !(a["isReactComponent"]))))( - (???*0* | (...) => (undefined | ???*2* | ???*3*)["type"] | undefined["child"] | null["child"]) + ( + | ???*0* + | (...) => (undefined | !(0) | !(1))["type"] + | undefined["child"] + | (...) => (undefined | !(0) | !(1))["type"]["child"] + | null["child"] + ) ) - *0* ???*1*["type"] ⚠️ unknown object - *1* arguments[2] ⚠️ function calls are not analysed yet -- *2* !(0) - ⚠️ nested operation -- *3* !(1) - ⚠️ nested operation 3064 -> 3070 conditional = ???*0* - *0* max number of linking steps reached 3070 -> 3073 call = (...) => (undefined | $i(a, b, e) | dj(a, b, c, d, e))( - (???*0* | undefined | ???*1* | ???*3* | (...) => (undefined | ???*4* | ???*5*)["type"] | null), - ???*6*, - (???*7* | (...) => (undefined | ???*9* | ???*10*)["type"] | undefined["child"] | null["child"]), - ???*11*, - ???*12* + ( + | ???*0* + | undefined + | ???*1* + | ???*3* + | (...) => (undefined | !(0) | !(1))["type"] + | null + | (...) => (undefined | !(0) | !(1))["type"]["alternate"] + ), + ???*4*, + ( + | ???*5* + | (...) => (undefined | !(0) | !(1))["type"] + | undefined["child"] + | (...) => (undefined | !(0) | !(1))["type"]["child"] + | null["child"] + ), + ???*7*, + ???*8* ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -12026,56 +13220,53 @@ ${La}${a}` - *2* arguments[3] ⚠️ function calls are not analysed yet - *3* unknown new expression -- *4* !(0) - ⚠️ nested operation -- *5* !(1) - ⚠️ nested operation -- *6* arguments[1] +- *4* arguments[1] ⚠️ function calls are not analysed yet -- *7* ???*8*["type"] +- *5* ???*6*["type"] ⚠️ unknown object -- *8* arguments[2] +- *6* arguments[2] ⚠️ function calls are not analysed yet -- *9* !(0) - ⚠️ nested operation -- *10* !(1) - ⚠️ nested operation -- *11* arguments[3] +- *7* arguments[3] ⚠️ function calls are not analysed yet -- *12* arguments[4] +- *8* arguments[4] ⚠️ function calls are not analysed yet 3064 -> 3076 call = (...) => (undefined | Ah(c["children"], e, f, b) | a | qj(c, e, f, b) | b)( - (???*0* | (...) => (undefined | ???*2* | ???*3*)["type"]), + (???*0* | (...) => (undefined | !(0) | !(1))["type"]), null, + ???*2*, + ???*3*, ???*4*, - ???*5*, - ???*6*, - ???*8* + ???*6* ) - *0* ???*1*["type"] ⚠️ unknown object - *1* arguments[2] ⚠️ function calls are not analysed yet -- *2* !(0) - ⚠️ nested operation -- *3* !(1) - ⚠️ nested operation -- *4* arguments[3] +- *2* arguments[3] ⚠️ function calls are not analysed yet -- *5* arguments[1] +- *3* arguments[1] ⚠️ function calls are not analysed yet -- *6* ???*7*["mode"] +- *4* ???*5*["mode"] ⚠️ unknown object -- *7* arguments[1] +- *5* arguments[1] ⚠️ function calls are not analysed yet -- *8* arguments[4] +- *6* arguments[4] ⚠️ function calls are not analysed yet 0 -> 3083 conditional = (0 === ???*0*) - *0* unsupported expression -3083 -> 3086 call = (???*0* | ???*1* | ???*3* | (...) => (undefined | !(0) | !(1)))(???*4*, ???*7*) +3083 -> 3086 call = (???*0* | ???*1* | ???*3* | (...) => (undefined | !(0) | !(1)))( + ( + | ???*4* + | (...) => (undefined | !(0) | !(1))["type"]["memoizedProps"] + | undefined["child"]["memoizedProps"] + | (...) => (undefined | !(0) | !(1))["type"]["child"]["memoizedProps"] + | null["child"]["memoizedProps"] + ), + ???*7* +) - *0* arguments[2] ⚠️ function calls are not analysed yet - *1* ???*2*["compare"] @@ -12093,7 +13284,16 @@ ${La}${a}` - *7* arguments[3] ⚠️ function calls are not analysed yet -3083 -> 3089 conditional = (???*0* | ((???*5* | ???*7*) === ???*8*)) +3083 -> 3089 conditional = ( + | ???*0* + | (( + | ???*5* + | undefined["ref"] + | (...) => (undefined | ???*7* | ???*8*)["type"]["ref"] + | null["ref"] + | (...) => (undefined | ???*9* | ???*10*)["type"]["alternate"]["ref"] + ) === ???*11*) +) - *0* (???*1* | ???*2* | ???*4* | (...) => (undefined | !(0) | !(1)))(g, d) ⚠️ non-function callee - *1* arguments[2] @@ -12108,17 +13308,31 @@ ${La}${a}` ⚠️ unknown object - *6* arguments[0] ⚠️ function calls are not analysed yet -- *7* undefined["ref"] +- *7* !(0) ⚠️ nested operation -- *8* ???*9*["ref"] +- *8* !(1) + ⚠️ nested operation +- *9* !(0) + ⚠️ nested operation +- *10* !(1) + ⚠️ nested operation +- *11* ???*12*["ref"] ⚠️ unknown object -- *9* arguments[1] +- *12* arguments[1] ⚠️ function calls are not analysed yet 3089 -> 3090 call = (...) => (undefined | null | b["child"])( - (???*0* | undefined | ???*1* | ???*3* | (...) => (undefined | ???*4* | ???*5*)["type"] | null), - ???*6*, - ???*7* + ( + | ???*0* + | undefined + | ???*1* + | ???*3* + | (...) => (undefined | !(0) | !(1))["type"] + | null + | (...) => (undefined | !(0) | !(1))["type"]["alternate"] + ), + ???*4*, + ???*5* ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -12127,28 +13341,26 @@ ${La}${a}` - *2* arguments[3] ⚠️ function calls are not analysed yet - *3* unknown new expression -- *4* !(0) - ⚠️ nested operation -- *5* !(1) - ⚠️ nested operation -- *6* arguments[1] +- *4* arguments[1] ⚠️ function calls are not analysed yet -- *7* arguments[4] +- *5* arguments[4] ⚠️ function calls are not analysed yet 0 -> 3092 call = (...) => (undefined | c)( - (???*0* | (...) => (undefined | ???*2* | ???*3*)["type"] | undefined["child"] | null["child"]), - ???*4* + ( + | ???*0* + | (...) => (undefined | !(0) | !(1))["type"] + | undefined["child"] + | (...) => (undefined | !(0) | !(1))["type"]["child"] + | null["child"] + ), + ???*2* ) - *0* ???*1*["type"] ⚠️ unknown object - *1* arguments[2] ⚠️ function calls are not analysed yet -- *2* !(0) - ⚠️ nested operation -- *3* !(1) - ⚠️ nested operation -- *4* arguments[3] +- *2* arguments[3] ⚠️ function calls are not analysed yet 0 -> 3097 conditional = (null !== ???*0*) @@ -12204,7 +13416,7 @@ ${La}${a}` - *6* arguments[4] ⚠️ function calls are not analysed yet -0 -> 3115 conditional = ("hidden" === ???*0*) +0 -> 3115 conditional = ("hidden" === (???*0* | null["baseLanes"]["mode"])) - *0* ???*1*["mode"] ⚠️ unknown object - *1* ???*2*["pendingProps"] @@ -12238,7 +13450,7 @@ ${La}${a}` - *1* arguments[1] ⚠️ function calls are not analysed yet -0 -> 3133 call = (...) => undefined((???*0* | ???*1*), ???*2*, ???*3*, ???*6*) +0 -> 3133 call = (...) => undefined((???*0* | ???*1*), ???*2*, (???*3* | null["baseLanes"]["children"]), ???*6*) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* unsupported expression @@ -13174,10 +14386,22 @@ ${La}${a}` ⚠️ function calls are not analysed yet 0 -> 3495 call = (...) => undefined( - (???*0* | ???*1* | null["alternate"] | null["sibling"]), + ( + | ???*0* + | ???*1* + | undefined["current"]["revealOrder"]["alternate"] + | 0["revealOrder"]["alternate"] + | null["alternate"] + | undefined["current"]["revealOrder"]["alternate"] + | null["sibling"]["alternate"] + | undefined["current"]["revealOrder"]["sibling"] + | 0["revealOrder"]["sibling"] + | null["sibling"] + | null["sibling"]["sibling"] + ), ???*3*, - (???*4* | 0["children"]), - (???*7* | ???*8* | 0["revealOrder"] | null | ???*10*) + (???*4* | undefined["current"]["children"] | 0["children"]), + (???*7* | ???*8* | undefined["current"]["revealOrder"] | 0["revealOrder"] | null | ???*10*) ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -13205,26 +14429,62 @@ ${La}${a}` 0 -> 3497 conditional = (0 !== ???*0*) - *0* unsupported expression -3497 -> 3500 conditional = ((null !== (???*0* | ???*1* | ???*3*)) | (0 !== ???*4*)) +3497 -> 3500 conditional = ( + | (null !== ( + | ???*0* + | ???*1* + | undefined["current"]["revealOrder"]["alternate"] + | 0["revealOrder"]["alternate"] + | null["alternate"] + | undefined["current"]["revealOrder"]["alternate"] + | null["sibling"]["alternate"] + | undefined["current"]["revealOrder"]["sibling"] + | 0["revealOrder"]["sibling"] + | null["sibling"] + | null["sibling"]["sibling"] + )) + | (0 !== ???*3*) +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["child"] ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* null["alternate"] - ⚠️ nested operation -- *4* unsupported expression +- *3* unsupported expression -3500 -> 3503 conditional = (13 === ???*0*) +3500 -> 3503 conditional = (13 === ( + | ???*0* + | undefined["current"]["revealOrder"]["alternate"]["tag"] + | 0["revealOrder"]["alternate"]["tag"] + | null["alternate"]["tag"] + | undefined["current"]["revealOrder"]["alternate"]["tag"] + | null["sibling"]["alternate"]["tag"] + | undefined["current"]["revealOrder"]["sibling"]["tag"] + | 0["revealOrder"]["sibling"]["tag"] + | null["sibling"]["tag"] + | null["sibling"]["sibling"]["tag"] +)) - *0* ???*1*["tag"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet 3503 -> 3505 call = (...) => undefined( - (???*0* | ???*1* | null["alternate"] | null["sibling"]), - (???*3* | ???*4* | 0["revealOrder"] | null | ???*6*), + ( + | ???*0* + | ???*1* + | undefined["current"]["revealOrder"]["alternate"] + | 0["revealOrder"]["alternate"] + | null["alternate"] + | undefined["current"]["revealOrder"]["alternate"] + | null["sibling"]["alternate"] + | undefined["current"]["revealOrder"]["sibling"] + | 0["revealOrder"]["sibling"] + | null["sibling"] + | null["sibling"]["sibling"] + ), + (???*3* | ???*4* | undefined["current"]["revealOrder"] | 0["revealOrder"] | null | ???*6*), ???*7* ) - *0* arguments[0] @@ -13244,15 +14504,38 @@ ${La}${a}` - *7* arguments[1] ⚠️ function calls are not analysed yet -3503 -> 3507 conditional = (19 === ???*0*) +3503 -> 3507 conditional = (19 === ( + | ???*0* + | undefined["current"]["revealOrder"]["alternate"]["tag"] + | 0["revealOrder"]["alternate"]["tag"] + | null["alternate"]["tag"] + | undefined["current"]["revealOrder"]["alternate"]["tag"] + | null["sibling"]["alternate"]["tag"] + | undefined["current"]["revealOrder"]["sibling"]["tag"] + | 0["revealOrder"]["sibling"]["tag"] + | null["sibling"]["tag"] + | null["sibling"]["sibling"]["tag"] +)) - *0* ???*1*["tag"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet 3507 -> 3508 call = (...) => undefined( - (???*0* | ???*1* | null["alternate"] | null["sibling"]), - (???*3* | ???*4* | 0["revealOrder"] | null | ???*6*), + ( + | ???*0* + | ???*1* + | undefined["current"]["revealOrder"]["alternate"] + | 0["revealOrder"]["alternate"] + | null["alternate"] + | undefined["current"]["revealOrder"]["alternate"] + | null["sibling"]["alternate"] + | undefined["current"]["revealOrder"]["sibling"] + | 0["revealOrder"]["sibling"] + | null["sibling"] + | null["sibling"]["sibling"] + ), + (???*3* | ???*4* | undefined["current"]["revealOrder"] | 0["revealOrder"] | null | ???*6*), ???*7* ) - *0* arguments[0] @@ -13272,7 +14555,18 @@ ${La}${a}` - *7* arguments[1] ⚠️ function calls are not analysed yet -3507 -> 3510 conditional = (null !== ???*0*) +3507 -> 3510 conditional = (null !== ( + | ???*0* + | undefined["current"]["revealOrder"]["alternate"]["child"] + | 0["revealOrder"]["alternate"]["child"] + | null["alternate"]["child"] + | undefined["current"]["revealOrder"]["alternate"]["child"] + | null["sibling"]["alternate"]["child"] + | undefined["current"]["revealOrder"]["sibling"]["child"] + | 0["revealOrder"]["sibling"]["child"] + | null["sibling"]["child"] + | null["sibling"]["sibling"]["child"] +)) - *0* ???*1*["child"] ⚠️ unknown object - *1* arguments[0] @@ -13293,7 +14587,19 @@ ${La}${a}` - *0* unsupported expression 3524 -> 3528 call = (...) => (undefined | b | null)( - (???*0* | ???*1* | null["alternate"] | null["sibling"]) + ( + | ???*0* + | ???*1* + | undefined["current"]["revealOrder"]["alternate"] + | 0["revealOrder"]["alternate"] + | null["alternate"] + | undefined["current"]["revealOrder"]["alternate"] + | null["sibling"]["alternate"] + | undefined["current"]["revealOrder"]["sibling"] + | 0["revealOrder"]["sibling"] + | null["sibling"] + | null["sibling"]["sibling"] + ) ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -13305,9 +14611,18 @@ ${La}${a}` 3524 -> 3534 call = (...) => undefined( ???*0*, false, - (???*1* | 0["revealOrder"] | null | ???*4* | ???*5* | null["sibling"] | null["alternate"]), - (???*6* | ???*7* | 0["revealOrder"] | null | ???*9*), - (???*10* | 0["tail"]) + ( + | ???*1* + | undefined["current"]["revealOrder"] + | 0["revealOrder"] + | null + | ???*4* + | ???*5* + | null["sibling"] + | null["alternate"] + ), + (???*6* | ???*7* | undefined["current"]["revealOrder"] | 0["revealOrder"] | null | ???*9*), + (???*10* | undefined["current"]["tail"] | 0["tail"]) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -13337,7 +14652,19 @@ ${La}${a}` ⚠️ function calls are not analysed yet 3524 -> 3538 call = (...) => (undefined | b | null)( - (???*0* | ???*1* | null["alternate"] | null["sibling"]) + ( + | ???*0* + | ???*1* + | undefined["current"]["revealOrder"]["alternate"] + | 0["revealOrder"]["alternate"] + | null["alternate"] + | undefined["current"]["revealOrder"]["alternate"] + | null["sibling"]["alternate"] + | undefined["current"]["revealOrder"]["sibling"] + | 0["revealOrder"]["sibling"] + | null["sibling"] + | null["sibling"]["sibling"] + ) ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -13352,9 +14679,9 @@ ${La}${a}` 3524 -> 3543 call = (...) => undefined( ???*0*, true, - (???*1* | ???*2* | 0["revealOrder"] | null | ???*4*), + (???*1* | ???*2* | undefined["current"]["revealOrder"] | 0["revealOrder"] | null | ???*4*), null, - (???*5* | 0["tail"]) + (???*5* | undefined["current"]["tail"] | 0["tail"]) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -13469,7 +14796,7 @@ ${La}${a}` - *3* arguments[1] ⚠️ function calls are not analysed yet -0 -> 3590 call = (...) => undefined((undefined | {"current": null}), ???*0*) +0 -> 3590 call = (...) => undefined((undefined | {"current": null}), (???*0* | (0 !== ???*4*)["_currentValue"])) - *0* ???*1*["_currentValue"] ⚠️ unknown object - *1* ???*2*["_context"] @@ -13478,6 +14805,7 @@ ${La}${a}` ⚠️ unknown object - *3* arguments[1] ⚠️ function calls are not analysed yet +- *4* unsupported expression 0 -> 3593 conditional = (null !== (???*0* | ???*3*)) - *0* ???*1*["_context"] @@ -13994,7 +15322,12 @@ ${La}${a}` - *9* f ⚠️ circular variable reference -3646 -> 3665 conditional = (!((???*0* | ???*4*)) | ???*8* | ???*13* | (null != (???*17* | ???*22*))) +3646 -> 3665 conditional = ( + | !((???*0* | ???*4*)) + | ???*7* + | undefined["hasOwnProperty"]((???*12* | null | [] | ???*13*)) + | (null != (???*14* | undefined[(???*19* | null | [] | ???*20*)])) +) - *0* ???*1*["hasOwnProperty"]((???*2* | null | [] | ???*3*)) ⚠️ unknown callee object - *1* arguments[3] @@ -14003,47 +15336,39 @@ ${La}${a}` ⚠️ pattern without value - *3* f ⚠️ circular variable reference -- *4* ???*5*((???*6* | null | [] | ???*7*)) - ⚠️ unknown callee -- *5* undefined["hasOwnProperty"] +- *4* undefined["hasOwnProperty"]((???*5* | null | [] | ???*6*)) ⚠️ nested operation -- *6* l +- *5* l ⚠️ pattern without value -- *7* f +- *6* f ⚠️ circular variable reference -- *8* ???*9*["hasOwnProperty"]((???*11* | null | [] | ???*12*)) +- *7* ???*8*["hasOwnProperty"]((???*10* | null | [] | ???*11*)) ⚠️ unknown callee object -- *9* ???*10*["memoizedProps"] +- *8* ???*9*["memoizedProps"] ⚠️ unknown object -- *10* arguments[0] +- *9* arguments[0] ⚠️ function calls are not analysed yet -- *11* l +- *10* l ⚠️ pattern without value -- *12* f +- *11* f ⚠️ circular variable reference -- *13* ???*14*((???*15* | null | [] | ???*16*)) - ⚠️ unknown callee -- *14* undefined["hasOwnProperty"] - ⚠️ nested operation -- *15* l +- *12* l ⚠️ pattern without value -- *16* f +- *13* f ⚠️ circular variable reference -- *17* ???*18*[(???*20* | null | [] | ???*21*)] +- *14* ???*15*[(???*17* | null | [] | ???*18*)] ⚠️ unknown object -- *18* ???*19*["memoizedProps"] +- *15* ???*16*["memoizedProps"] ⚠️ unknown object -- *19* arguments[0] +- *16* arguments[0] ⚠️ function calls are not analysed yet -- *20* l +- *17* l ⚠️ pattern without value -- *21* f +- *18* f ⚠️ circular variable reference -- *22* undefined[(???*23* | null | [] | ???*24*)] - ⚠️ nested operation -- *23* l +- *19* l ⚠️ pattern without value -- *24* f +- *20* f ⚠️ circular variable reference 3665 -> 3666 conditional = ("style" === (???*0* | null | [] | ???*1*)) @@ -14112,9 +15437,10 @@ ${La}${a}` 3646 -> 3679 conditional = ( | ???*0* - | ???*4* - | ((???*8* | ???*12* | ???*15*) !== (???*16* | ???*21* | ???*24*)) - | (null != (???*25* | ???*29* | ???*32*)) + | undefined["hasOwnProperty"]((???*4* | null | [] | ???*5*)) + | ((???*6* | undefined[(???*10* | null | [] | ???*11*)] | ???*12*) !== (???*13* | undefined[(???*18* | null | [] | ???*19*)] | ???*20*)) + | (null != (???*21* | undefined[(???*25* | null | [] | ???*26*)] | ???*27*)) + | (null != (???*28* | undefined[(???*33* | null | [] | ???*34*)] | ???*35*)) ) - *0* ???*1*["hasOwnProperty"]((???*2* | null | [] | ???*3*)) ⚠️ unknown callee object @@ -14124,61 +15450,66 @@ ${La}${a}` ⚠️ pattern without value - *3* f ⚠️ circular variable reference -- *4* ???*5*((???*6* | null | [] | ???*7*)) - ⚠️ unknown callee -- *5* undefined["hasOwnProperty"] - ⚠️ nested operation -- *6* l +- *4* l ⚠️ pattern without value -- *7* f +- *5* f ⚠️ circular variable reference -- *8* ???*9*[(???*10* | null | [] | ???*11*)] +- *6* ???*7*[(???*8* | null | [] | ???*9*)] ⚠️ unknown object -- *9* arguments[3] +- *7* arguments[3] ⚠️ function calls are not analysed yet +- *8* l + ⚠️ pattern without value +- *9* f + ⚠️ circular variable reference - *10* l ⚠️ pattern without value - *11* f ⚠️ circular variable reference -- *12* undefined[(???*13* | null | [] | ???*14*)] - ⚠️ nested operation -- *13* l +- *12* unsupported expression +- *13* ???*14*[(???*16* | null | [] | ???*17*)] + ⚠️ unknown object +- *14* ???*15*["memoizedProps"] + ⚠️ unknown object +- *15* arguments[0] + ⚠️ function calls are not analysed yet +- *16* l ⚠️ pattern without value -- *14* f +- *17* f ⚠️ circular variable reference -- *15* unsupported expression -- *16* ???*17*[(???*19* | null | [] | ???*20*)] - ⚠️ unknown object -- *17* ???*18*["memoizedProps"] +- *18* l + ⚠️ pattern without value +- *19* f + ⚠️ circular variable reference +- *20* unsupported expression +- *21* ???*22*[(???*23* | null | [] | ???*24*)] ⚠️ unknown object -- *18* arguments[0] +- *22* arguments[3] ⚠️ function calls are not analysed yet -- *19* l +- *23* l ⚠️ pattern without value -- *20* f +- *24* f ⚠️ circular variable reference -- *21* undefined[(???*22* | null | [] | ???*23*)] - ⚠️ nested operation -- *22* l +- *25* l ⚠️ pattern without value -- *23* f +- *26* f ⚠️ circular variable reference -- *24* unsupported expression -- *25* ???*26*[(???*27* | null | [] | ???*28*)] +- *27* unsupported expression +- *28* ???*29*[(???*31* | null | [] | ???*32*)] + ⚠️ unknown object +- *29* ???*30*["memoizedProps"] ⚠️ unknown object -- *26* arguments[3] +- *30* arguments[0] ⚠️ function calls are not analysed yet -- *27* l +- *31* l ⚠️ pattern without value -- *28* f +- *32* f ⚠️ circular variable reference -- *29* undefined[(???*30* | null | [] | ???*31*)] - ⚠️ nested operation -- *30* l +- *33* l ⚠️ pattern without value -- *31* f +- *34* f ⚠️ circular variable reference -- *32* unsupported expression +- *35* unsupported expression 3679 -> 3680 conditional = ("style" === (???*0* | null | [] | ???*1*)) - *0* l @@ -14505,14 +15836,9 @@ ${La}${a}` 3795 -> 3804 call = (...) => undefined("load", ???*0*) - *0* max number of linking steps reached -3795 -> 3807 call = (...) => undefined(???*0*, ???*3*) -- *0* ???*1*[e] - ⚠️ unknown object -- *1* ???*2*(" ") - ⚠️ unknown callee -- *2* "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting"["split"] - ⚠️ nested operation -- *3* max number of linking steps reached +3795 -> 3807 call = (...) => undefined(???*0*, ???*1*) +- *0* max number of linking steps reached +- *1* max number of linking steps reached 3795 -> 3808 call = (...) => undefined("error", ???*0*) - *0* max number of linking steps reached @@ -14632,14 +15958,9 @@ ${La}${a}` 3795 -> 3872 call = (...) => undefined("load", ???*0*) - *0* max number of linking steps reached -3795 -> 3875 call = (...) => undefined(???*0*, ???*3*) -- *0* ???*1*[e] - ⚠️ unknown object -- *1* ???*2*(" ") - ⚠️ unknown callee -- *2* "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting"["split"] - ⚠️ nested operation -- *3* max number of linking steps reached +3795 -> 3875 call = (...) => undefined(???*0*, ???*1*) +- *0* max number of linking steps reached +- *1* max number of linking steps reached 3795 -> 3876 call = (...) => undefined("error", ???*0*) - *0* max number of linking steps reached @@ -15795,24 +17116,16 @@ ${La}${a}` - *3* arguments[0] ⚠️ function calls are not analysed yet -4414 -> 4422 member call = ???*0*["then"](???*1*, ???*5*) +4414 -> 4422 member call = ???*0*["then"]((...) => undefined["bind"](null, ???*1*, ???*2*), (...) => undefined["bind"](null, ???*3*, ???*4*)) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*(null, ???*3*, ???*4*) - ⚠️ unknown callee -- *2* (...) => undefined["bind"] - ⚠️ nested operation -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet -- *4* arguments[0] +- *2* arguments[0] ⚠️ function calls are not analysed yet -- *5* ???*6*(null, ???*7*, ???*8*) - ⚠️ unknown callee -- *6* (...) => undefined["bind"] - ⚠️ nested operation -- *7* arguments[0] +- *3* arguments[0] ⚠️ function calls are not analysed yet -- *8* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet 0 -> 4424 conditional = (null !== ???*0*) @@ -16138,7 +17451,7 @@ ${La}${a}` ⚠️ function calls are not analysed yet - *6* max number of linking steps reached -4480 -> 4507 call = (...) => (undefined | FreeVar(undefined))(???*0*, !(???*2*), ???*6*, true) +4480 -> 4507 call = (...) => (undefined | FreeVar(undefined))(???*0*, !(???*2*), (???*6* | (null !== ???*9*)["defaultValue"]), true) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* arguments[0] @@ -16157,6 +17470,12 @@ ${La}${a}` ⚠️ unknown object - *8* arguments[0] ⚠️ function calls are not analysed yet +- *9* ???*10*["memoizedState"] + ⚠️ unknown object +- *10* ???*11*["stateNode"] + ⚠️ unknown object +- *11* arguments[0] + ⚠️ function calls are not analysed yet 4480 -> 4510 call = (...) => (undefined | FreeVar(undefined))(???*0*, !(???*2*), ([] | ""), false) - *0* ???*1*["stateNode"] @@ -16760,13 +18079,7 @@ ${La}${a}` 0 -> 4779 call = module["unstable_now"]() -0 -> 4782 conditional = (null !== ???*0*) -- *0* ???*1*["transition"] - ⚠️ unknown object -- *1* ???*2*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *2* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +0 -> 4782 conditional = (null !== module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"]["transition"]) 4782 -> 4783 call = (...) => (undefined | a)() @@ -16884,26 +18197,20 @@ ${La}${a}` | module["unstable_NormalPriority"] | module["unstable_IdlePriority"] | undefined - | ???*2* + | module["unstable_scheduleCallback"](???*2*, ???*3*) ) ) - *0* ???*1*["callbackNode"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* ???*3*(???*4*, ???*5*) - ⚠️ unknown callee -- *3* module["unstable_scheduleCallback"] - ⚠️ nested operation -- *4* c +- *2* c ⚠️ circular variable reference -- *5* ???*6*(null, ???*8*) - ⚠️ unknown callee -- *6* (...) => (undefined | null | ???*7*)["bind"] +- *3* (...) => (undefined | null | ???*4*)["bind"](null, ???*5*) ⚠️ nested operation -- *7* Hk["bind"](null, a) +- *4* Hk["bind"](null, a) ⚠️ nested operation -- *8* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet 4799 -> 4804 conditional = (???*0* !== (???*2* | ???*3*)) @@ -16924,26 +18231,20 @@ ${La}${a}` | module["unstable_NormalPriority"] | module["unstable_IdlePriority"] | undefined - | ???*2* + | module["unstable_scheduleCallback"](???*2*, ???*3*) ) ) - *0* ???*1*["callbackNode"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* ???*3*(???*4*, ???*5*) - ⚠️ unknown callee -- *3* module["unstable_scheduleCallback"] - ⚠️ nested operation -- *4* c +- *2* c ⚠️ circular variable reference -- *5* ???*6*(null, ???*8*) - ⚠️ unknown callee -- *6* (...) => (undefined | null | ???*7*)["bind"] +- *3* (...) => (undefined | null | ???*4*)["bind"](null, ???*5*) ⚠️ nested operation -- *7* Hk["bind"](null, a) +- *4* Hk["bind"](null, a) ⚠️ nested operation -- *8* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet 4804 -> 4806 conditional = (1 === (???*0* | ???*1*)) @@ -16955,24 +18256,16 @@ ${La}${a}` - *0* arguments[0] ⚠️ function calls are not analysed yet -4806 -> 4810 call = (...) => undefined(???*0*) -- *0* ???*1*(null, ???*2*) - ⚠️ unknown callee -- *1* (...) => (undefined | null)["bind"] - ⚠️ nested operation -- *2* arguments[0] +4806 -> 4810 call = (...) => undefined((...) => (undefined | null)["bind"](null, ???*0*)) +- *0* arguments[0] ⚠️ function calls are not analysed yet 4806 -> 4812 member call = (...) => (undefined | null)["bind"](null, ???*0*) - *0* arguments[0] ⚠️ function calls are not analysed yet -4806 -> 4813 call = (...) => undefined(???*0*) -- *0* ???*1*(null, ???*2*) - ⚠️ unknown callee -- *1* (...) => (undefined | null)["bind"] - ⚠️ nested operation -- *2* arguments[0] +4806 -> 4813 call = (...) => undefined((...) => (undefined | null)["bind"](null, ???*0*)) +- *0* arguments[0] ⚠️ function calls are not analysed yet 4806 -> 4814 call = ( @@ -17023,35 +18316,25 @@ ${La}${a}` | module["unstable_NormalPriority"] | module["unstable_IdlePriority"] | undefined - | ???*2* + | module["unstable_scheduleCallback"](???*2*, ???*3*) ), - ???*9* + (...) => (undefined | null | ???*6*)["bind"](null, ???*7*) ) - *0* ???*1*["callbackNode"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* ???*3*(???*4*, ???*5*) - ⚠️ unknown callee -- *3* module["unstable_scheduleCallback"] - ⚠️ nested operation -- *4* c +- *2* c ⚠️ circular variable reference -- *5* ???*6*(null, ???*8*) - ⚠️ unknown callee -- *6* (...) => (undefined | null | ???*7*)["bind"] +- *3* (...) => (undefined | null | ???*4*)["bind"](null, ???*5*) ⚠️ nested operation -- *7* Hk["bind"](null, a) +- *4* Hk["bind"](null, a) ⚠️ nested operation -- *8* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(null, ???*12*) - ⚠️ unknown callee -- *10* (...) => (undefined | null | ???*11*)["bind"] - ⚠️ nested operation -- *11* Hk["bind"](null, a) +- *6* Hk["bind"](null, a) ⚠️ nested operation -- *12* arguments[0] +- *7* arguments[0] ⚠️ function calls are not analysed yet 0 -> 4822 conditional = (0 !== ???*0*) @@ -17134,11 +18417,9 @@ ${La}${a}` 4843 -> 4846 call = module["unstable_now"]() -4843 -> 4847 call = (...) => undefined(???*0*, ???*1*()) +4843 -> 4847 call = (...) => undefined(???*0*, module["unstable_now"]()) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* module["unstable_now"] - ⚠️ nested operation 4840 -> 4848 conditional = ???*0* - *0* max number of linking steps reached @@ -17184,24 +18465,18 @@ ${La}${a}` "useId": (...) => undefined, "unstable_isNewReconciler": false } + | module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentDispatcher"]["current"] | ???*1* - | ???*4* - | ???*5* + | ???*2* | 1073741824 | 0 ) ) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*["current"] - ⚠️ unknown object -- *2* ???*3*["ReactCurrentDispatcher"] - ⚠️ unknown object -- *3* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation -- *4* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet -- *5* unsupported expression +- *2* unsupported expression 4848 -> 4856 conditional = ???*0* - *0* max number of linking steps reached @@ -17217,11 +18492,9 @@ ${La}${a}` 4856 -> 4859 call = module["unstable_now"]() -4856 -> 4860 call = (...) => undefined(???*0*, ???*1*()) +4856 -> 4860 call = (...) => undefined(???*0*, module["unstable_now"]()) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* module["unstable_now"] - ⚠️ nested operation 4848 -> 4863 call = (...) => ( | undefined @@ -17339,11 +18612,9 @@ ${La}${a}` 0 -> 4894 call = module["unstable_now"]() -0 -> 4895 call = (...) => undefined(???*0*, ???*1*()) +0 -> 4895 call = (...) => undefined(???*0*, module["unstable_now"]()) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* module["unstable_now"] - ⚠️ nested operation 0 -> 4898 member call = (...) => (undefined | null | Hk["bind"](null, a))["bind"](null, ???*0*) - *0* arguments[0] @@ -17454,11 +18725,9 @@ ${La}${a}` 4941 -> 4942 call = module["unstable_now"]() -4941 -> 4943 call = (...) => undefined(???*0*, ???*1*()) +4941 -> 4943 call = (...) => undefined(???*0*, module["unstable_now"]()) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* module["unstable_now"] - ⚠️ nested operation 0 -> 4944 call = (...) => (undefined | T)( ???*0*, @@ -17543,11 +18812,9 @@ ${La}${a}` 4949 -> 4952 call = module["unstable_now"]() -4949 -> 4953 call = (...) => undefined(???*0*, ???*1*()) +4949 -> 4953 call = (...) => undefined(???*0*, module["unstable_now"]()) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* module["unstable_now"] - ⚠️ nested operation 0 -> 4954 conditional = ???*0* - *0* max number of linking steps reached @@ -17573,11 +18840,9 @@ ${La}${a}` 0 -> 4962 call = module["unstable_now"]() -0 -> 4963 call = (...) => undefined(???*0*, ???*1*()) +0 -> 4963 call = (...) => undefined(???*0*, module["unstable_now"]()) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* module["unstable_now"] - ⚠️ nested operation 0 -> 4964 call = ???*0*(???*1*) - *0* arguments[0] @@ -17967,21 +19232,17 @@ ${La}${a}` - *0* FreeVar(Error) ⚠️ unknown global -0 -> 5140 conditional = ((???*0* | ???*1* | ???*3* | 0) === (???*4* | ???*6*)) +0 -> 5140 conditional = ((???*0* | ???*1* | null["finishedWork"] | 0) === (???*3* | null["current"])) - *0* arguments[2] ⚠️ function calls are not analysed yet - *1* ???*2*["finishedWork"] ⚠️ unknown object - *2* arguments[0] ⚠️ function calls are not analysed yet -- *3* null["finishedWork"] - ⚠️ nested operation -- *4* ???*5*["current"] +- *3* ???*4*["current"] ⚠️ unknown object -- *5* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *6* null["current"] - ⚠️ nested operation 5140 -> 5141 call = (...) => ( | undefined @@ -17999,7 +19260,13 @@ ${La}${a}` 0 -> 5147 call = (...) => undefined( (???*0* | ???*1* | null), - (???*3* | (0 !== ???*4*) | ???*5* | null["pendingLanes"]) + ( + | ???*3* + | (0 !== ???*4*) + | module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"]["transition"] + | ???*5* + | null["pendingLanes"] + ) ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -18009,26 +19276,28 @@ ${La}${a}` ⚠️ function calls are not analysed yet - *3* unsupported expression - *4* unsupported expression -- *5* ???*6*["transition"] - ⚠️ unknown object -- *6* ???*7*["ReactCurrentBatchConfig"] +- *5* ???*6*["pendingLanes"] ⚠️ unknown object -- *7* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +- *6* arguments[0] + ⚠️ function calls are not analysed yet 0 -> 5150 call = (...) => (undefined | ac(a, b))(module["unstable_NormalPriority"], (...) => (undefined | null)) 5150 -> 5151 call = (...) => (undefined | d | !(1))() -0 -> 5154 conditional = ((0 !== ???*0*) | ???*1* | ???*2* | null["pendingLanes"]) +0 -> 5154 conditional = ( + | (0 !== ???*0*) + | ???*1* + | module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"]["transition"] + | ???*2* + | null["pendingLanes"] +) - *0* unsupported expression - *1* unsupported expression -- *2* ???*3*["transition"] +- *2* ???*3*["pendingLanes"] ⚠️ unknown object -- *3* ???*4*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *4* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +- *3* arguments[0] + ⚠️ function calls are not analysed yet 5154 -> 5158 call = (...) => (undefined | n)((???*0* | ???*1* | null), (???*3* | ???*4* | null["finishedWork"] | 0)) - *0* arguments[0] @@ -18085,7 +19354,10 @@ ${La}${a}` 5154 -> 5163 call = module["unstable_requestPaint"]() -0 -> 5168 call = (...) => undefined((???*0* | 0["stateNode"]), (???*2* | ???*3* | null["onRecoverableError"])) +0 -> 5168 call = (...) => undefined( + (???*0* | null["finishedWork"]["stateNode"] | 0["stateNode"]), + (???*2* | ???*3* | null["onRecoverableError"]) +) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* arguments[2] @@ -18099,21 +19371,25 @@ ${La}${a}` 0 -> 5169 call = module["unstable_now"]() -0 -> 5170 call = (...) => undefined((???*0* | ???*1* | null), ???*3*()) +0 -> 5170 call = (...) => undefined((???*0* | ???*1* | null), module["unstable_now"]()) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["value"] ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* module["unstable_now"] - ⚠️ nested operation 0 -> 5171 conditional = (null !== ???*0*) - *0* arguments[1] ⚠️ function calls are not analysed yet -5171 -> 5178 call = (???*0* | ???*1* | null["onRecoverableError"])(???*3*, {"componentStack": ???*6*, "digest": ???*9*}) +5171 -> 5178 call = (???*0* | ???*1* | null["onRecoverableError"])( + (???*3* | null["finishedLanes"]["value"]), + { + "componentStack": (???*6* | null["finishedLanes"]["stack"]), + "digest": (???*9* | null["finishedLanes"]["digest"]) + } +) - *0* arguments[3] ⚠️ function calls are not analysed yet - *1* ???*2*["onRecoverableError"] @@ -18283,8 +19559,8 @@ ${???*6*}` } | 1 | {"eventTime": ???*8*, "lane": ???*9*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*10*() - | ???*11* + | module["unstable_now"]() + | ???*10* ) ) - *0* arguments[2] @@ -18306,9 +19582,7 @@ ${???*6*}` - *8* unsupported expression - *9* c ⚠️ circular variable reference -- *10* module["unstable_now"] - ⚠️ nested operation -- *11* unsupported expression +- *10* unsupported expression 0 -> 5252 call = (...) => (undefined | c)( (???*0* | undefined | null | ???*1*), @@ -18328,8 +19602,8 @@ ${???*9*}` } | 1 | {"eventTime": ???*11*, "lane": ???*12*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*13*() - | ???*14* + | module["unstable_now"]() + | ???*13* ), 1 ) @@ -18358,9 +19632,7 @@ ${???*9*}` - *11* unsupported expression - *12* c ⚠️ circular variable reference -- *13* module["unstable_now"] - ⚠️ nested operation -- *14* unsupported expression +- *13* unsupported expression 0 -> 5253 call = (...) => (undefined | null | Zg(a, c))( (???*0* | undefined | null | ???*1*), @@ -18380,8 +19652,8 @@ ${???*9*}` } | 1 | {"eventTime": ???*11*, "lane": ???*12*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*13*() - | ???*14* + | module["unstable_now"]() + | ???*13* ), 1 ) @@ -18410,9 +19682,7 @@ ${???*9*}` - *11* unsupported expression - *12* c ⚠️ circular variable reference -- *13* module["unstable_now"] - ⚠️ nested operation -- *14* unsupported expression +- *13* unsupported expression 0 -> 5254 call = (...) => (undefined | B() | Bk | ???*0*)() - *0* unsupported expression @@ -18436,8 +19706,8 @@ ${???*9*}` } | 1 | {"eventTime": ???*11*, "lane": ???*12*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*13*() - | ???*14* + | module["unstable_now"]() + | ???*13* ) ) - *0* arguments[0] @@ -18465,9 +19735,7 @@ ${???*9*}` - *11* unsupported expression - *12* c ⚠️ circular variable reference -- *13* module["unstable_now"] - ⚠️ nested operation -- *14* unsupported expression +- *13* unsupported expression 0 -> 5256 call = (...) => undefined( (???*0* | undefined | null | ???*1*), @@ -18487,8 +19755,8 @@ ${???*9*}` } | 1 | {"eventTime": ???*11*, "lane": ???*12*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*13*() - | ???*14* + | module["unstable_now"]() + | ???*13* ) ) - *0* arguments[0] @@ -18516,20 +19784,16 @@ ${???*9*}` - *11* unsupported expression - *12* c ⚠️ circular variable reference -- *13* module["unstable_now"] - ⚠️ nested operation -- *14* unsupported expression +- *13* unsupported expression -0 -> 5258 conditional = (3 === (???*0* | ???*2* | ???*3* | ???*4* | 0)) +0 -> 5258 conditional = (3 === (???*0* | undefined["tag"] | ???*2* | ???*3* | 1["tag"] | 0)) - *0* ???*1*["tag"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* undefined["tag"] - ⚠️ nested operation -- *3* FreeVar(undefined) +- *2* FreeVar(undefined) ⚠️ unknown global -- *4* unknown mutation +- *3* unknown mutation 5258 -> 5259 call = (...) => undefined( ( @@ -18548,29 +19812,29 @@ ${???*5*}` } | 1 | {"eventTime": ???*7*, "lane": ???*8*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*9*() - | ???*10* + | module["unstable_now"]() + | ???*9* ), ( - | ???*11* + | ???*10* | undefined | { - "value": ???*12*, - "source": ???*13*, + "value": ???*11*, + "source": ???*12*, "stack": ( | "" | ` -Error generating stack: ${???*14*} -${???*16*}` +Error generating stack: ${???*13*} +${???*15*}` ), "digest": null } | 1 - | {"eventTime": ???*18*, "lane": ???*19*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*20*() - | ???*21* + | {"eventTime": ???*17*, "lane": ???*18*, "tag": 0, "payload": null, "callback": null, "next": null} + | module["unstable_now"]() + | ???*19* ), - ???*22* + ???*20* ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -18589,39 +19853,33 @@ ${???*16*}` - *7* unsupported expression - *8* c ⚠️ circular variable reference -- *9* module["unstable_now"] - ⚠️ nested operation -- *10* unsupported expression -- *11* arguments[0] +- *9* unsupported expression +- *10* arguments[0] ⚠️ function calls are not analysed yet -- *12* arguments[2] +- *11* arguments[2] ⚠️ function calls are not analysed yet -- *13* a +- *12* a ⚠️ circular variable reference -- *14* ???*15*["message"] +- *13* ???*14*["message"] ⚠️ unknown object -- *15* f +- *14* f ⚠️ pattern without value -- *16* ???*17*["stack"] +- *15* ???*16*["stack"] ⚠️ unknown object -- *17* f +- *16* f ⚠️ pattern without value -- *18* unsupported expression -- *19* c +- *17* unsupported expression +- *18* c ⚠️ circular variable reference -- *20* module["unstable_now"] - ⚠️ nested operation -- *21* unsupported expression -- *22* arguments[2] +- *19* unsupported expression +- *20* arguments[2] ⚠️ function calls are not analysed yet -5258 -> 5261 conditional = (3 === (???*0* | ???*2*)) +5258 -> 5261 conditional = (3 === (???*0* | undefined["tag"] | null["tag"])) - *0* ???*1*["tag"] ⚠️ unknown object - *1* arguments[1] ⚠️ function calls are not analysed yet -- *2* undefined["tag"] - ⚠️ nested operation 5261 -> 5262 call = (...) => undefined( (???*0* | undefined | null | ???*1*), @@ -18641,10 +19899,10 @@ ${???*9*}` } | 1 | {"eventTime": ???*11*, "lane": ???*12*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*13*() - | ???*14* + | module["unstable_now"]() + | ???*13* ), - ???*15* + ???*14* ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -18671,19 +19929,15 @@ ${???*9*}` - *11* unsupported expression - *12* c ⚠️ circular variable reference -- *13* module["unstable_now"] - ⚠️ nested operation -- *14* unsupported expression -- *15* arguments[2] +- *13* unsupported expression +- *14* arguments[2] ⚠️ function calls are not analysed yet -5261 -> 5264 conditional = (1 === (???*0* | ???*2*)) +5261 -> 5264 conditional = (1 === (???*0* | undefined["tag"] | null["tag"])) - *0* ???*1*["tag"] ⚠️ unknown object - *1* arguments[1] ⚠️ function calls are not analysed yet -- *2* undefined["tag"] - ⚠️ nested operation 5264 -> 5270 member call = (???*0* | null)["has"]( (???*1* | undefined["stateNode"] | null["stateNode"]) @@ -18706,18 +19960,14 @@ ${???*9*}` ⚠️ unknown object - *5* arguments[1] ⚠️ function calls are not analysed yet -- *6* ???*7*((???*8* | ???*10* | ???*11*)) - ⚠️ unknown callee -- *7* null["has"] +- *6* null["has"]( + (???*7* | undefined["stateNode"] | null["stateNode"]) + ) ⚠️ nested operation -- *8* ???*9*["stateNode"] +- *7* ???*8*["stateNode"] ⚠️ unknown object -- *9* arguments[1] +- *8* arguments[1] ⚠️ function calls are not analysed yet -- *10* undefined["stateNode"] - ⚠️ nested operation -- *11* null["stateNode"] - ⚠️ nested operation 5271 -> 5272 call = (...) => ( | undefined @@ -18740,8 +19990,8 @@ ${???*6*}` } | 1 | {"eventTime": ???*8*, "lane": ???*9*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*10*() - | ???*11* + | module["unstable_now"]() + | ???*10* ) ) - *0* arguments[2] @@ -18763,9 +20013,7 @@ ${???*6*}` - *8* unsupported expression - *9* c ⚠️ circular variable reference -- *10* module["unstable_now"] - ⚠️ nested operation -- *11* unsupported expression +- *10* unsupported expression 5271 -> 5273 call = (...) => (undefined | c)( (???*0* | undefined | null | ???*1*), @@ -18785,8 +20033,8 @@ ${???*9*}` } | 1 | {"eventTime": ???*11*, "lane": ???*12*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*13*() - | ???*14* + | module["unstable_now"]() + | ???*13* ), 1 ) @@ -18815,9 +20063,7 @@ ${???*9*}` - *11* unsupported expression - *12* c ⚠️ circular variable reference -- *13* module["unstable_now"] - ⚠️ nested operation -- *14* unsupported expression +- *13* unsupported expression 5271 -> 5274 call = (...) => (undefined | null | Zg(a, c))( (???*0* | undefined | null | ???*1*), @@ -18837,8 +20083,8 @@ ${???*9*}` } | 1 | {"eventTime": ???*11*, "lane": ???*12*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*13*() - | ???*14* + | module["unstable_now"]() + | ???*13* ), 1 ) @@ -18867,9 +20113,7 @@ ${???*9*}` - *11* unsupported expression - *12* c ⚠️ circular variable reference -- *13* module["unstable_now"] - ⚠️ nested operation -- *14* unsupported expression +- *13* unsupported expression 5271 -> 5275 call = (...) => (undefined | B() | Bk | ???*0*)() - *0* unsupported expression @@ -18893,8 +20137,8 @@ ${???*9*}` } | 1 | {"eventTime": ???*11*, "lane": ???*12*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*13*() - | ???*14* + | module["unstable_now"]() + | ???*13* ) ) - *0* arguments[1] @@ -18922,9 +20166,7 @@ ${???*9*}` - *11* unsupported expression - *12* c ⚠️ circular variable reference -- *13* module["unstable_now"] - ⚠️ nested operation -- *14* unsupported expression +- *13* unsupported expression 5271 -> 5277 call = (...) => undefined( (???*0* | undefined | null | ???*1*), @@ -18944,8 +20186,8 @@ ${???*9*}` } | 1 | {"eventTime": ???*11*, "lane": ???*12*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*13*() - | ???*14* + | module["unstable_now"]() + | ???*13* ) ) - *0* arguments[1] @@ -18973,20 +20215,18 @@ ${???*9*}` - *11* unsupported expression - *12* c ⚠️ circular variable reference -- *13* module["unstable_now"] - ⚠️ nested operation -- *14* unsupported expression +- *13* unsupported expression -0 -> 5281 member call = ???*0*["delete"]((???*2* | undefined | ???*3*() | ???*4*)) +0 -> 5281 member call = ???*0*["delete"]( + (???*2* | undefined | module["unstable_now"]() | ???*3*) +) - *0* ???*1*["pingCache"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* module["unstable_now"] - ⚠️ nested operation -- *4* unsupported expression +- *3* unsupported expression 0 -> 5282 call = (...) => (undefined | B() | Bk | ???*0*)() - *0* unsupported expression @@ -18997,14 +20237,15 @@ ${???*9*}` - *0* arguments[0] ⚠️ function calls are not analysed yet -0 -> 5287 call = (...) => undefined(???*0*, (???*1* | undefined | ???*2*() | ???*3*)) +0 -> 5287 call = (...) => undefined( + ???*0*, + (???*1* | undefined | module["unstable_now"]() | ???*2*) +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* arguments[1] ⚠️ function calls are not analysed yet -- *2* module["unstable_now"] - ⚠️ nested operation -- *3* unsupported expression +- *2* unsupported expression 0 -> 5289 call = (...) => (undefined | B() | Bk | ???*0*)() - *0* unsupported expression @@ -19021,7 +20262,11 @@ ${???*9*}` - *4* arguments[1] ⚠️ function calls are not analysed yet -0 -> 5291 call = (...) => undefined((???*0* | undefined | ???*1* | null), (???*4* | 1 | 4194304), (undefined | ???*5*() | ???*6*)) +0 -> 5291 call = (...) => undefined( + (???*0* | undefined | ???*1* | null), + (???*4* | 1 | 4194304), + (undefined | module["unstable_now"]() | ???*5*) +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["stateNode"] @@ -19032,11 +20277,12 @@ ${???*9*}` ⚠️ circular variable reference - *4* arguments[1] ⚠️ function calls are not analysed yet -- *5* module["unstable_now"] - ⚠️ nested operation -- *6* unsupported expression +- *5* unsupported expression -0 -> 5292 call = (...) => undefined((???*0* | undefined | ???*1* | null), (undefined | ???*4*() | ???*5*)) +0 -> 5292 call = (...) => undefined( + (???*0* | undefined | ???*1* | null), + (undefined | module["unstable_now"]() | ???*4*) +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["stateNode"] @@ -19045,9 +20291,7 @@ ${???*9*}` ⚠️ unknown object - *3* a ⚠️ circular variable reference -- *4* module["unstable_now"] - ⚠️ nested operation -- *5* unsupported expression +- *4* unsupported expression 0 -> 5295 call = (...) => undefined(???*0*, (0 | ???*1*)) - *0* arguments[0] @@ -20405,39 +21649,39 @@ ${???*9*}` 0 -> 5736 call = (...) => (undefined | a)( (???*0* | ???*1* | undefined["current"]), - (???*3* | undefined | ???*4*() | ???*5*), + (???*3* | undefined | module["unstable_now"]() | ???*4*), true, - (???*6* | undefined | ???*7* | ???*9*), + (???*5* | undefined | ???*6* | ???*8*), ( - | ???*10* + | ???*9* | undefined | 1 - | ???*11* + | ???*10* | 0 | 64 - | ???*12* + | ???*11* | undefined["current"] - | ???*14* + | ???*13* | 4 | 16 | 536870912 | null ), ( - | ???*15* + | ???*14* | undefined | { - "eventTime": (???*16* | undefined | ???*17*() | ???*18*), + "eventTime": (???*15* | undefined | module["unstable_now"]() | ???*16*), "lane": ( - | ???*19* + | ???*17* | undefined | 1 - | ???*20* + | ???*18* | 0 | 64 - | ???*21* + | ???*19* | undefined["current"] - | ???*23* + | ???*21* | 4 | 16 | 536870912 @@ -20449,9 +21693,9 @@ ${???*9*}` "next": null } ), - ???*24*, - ???*25*, - ???*26* + ???*22*, + ???*23*, + ???*24* ) - *0* arguments[2] ⚠️ function calls are not analysed yet @@ -20461,46 +21705,42 @@ ${???*9*}` ⚠️ function calls are not analysed yet - *3* arguments[3] ⚠️ function calls are not analysed yet -- *4* module["unstable_now"] - ⚠️ nested operation -- *5* unsupported expression -- *6* arguments[0] +- *4* unsupported expression +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *7* ???*8*["current"] +- *6* ???*7*["current"] ⚠️ unknown object -- *8* a +- *7* a ⚠️ circular variable reference -- *9* unknown new expression -- *10* arguments[4] +- *8* unknown new expression +- *9* arguments[4] ⚠️ function calls are not analysed yet -- *11* unsupported expression -- *12* ???*13*["current"] +- *10* unsupported expression +- *11* ???*12*["current"] ⚠️ unknown object -- *13* arguments[0] +- *12* arguments[0] ⚠️ function calls are not analysed yet -- *14* C +- *13* C ⚠️ circular variable reference -- *15* arguments[5] +- *14* arguments[5] ⚠️ function calls are not analysed yet -- *16* arguments[3] +- *15* arguments[3] ⚠️ function calls are not analysed yet -- *17* module["unstable_now"] - ⚠️ nested operation -- *18* unsupported expression -- *19* arguments[4] +- *16* unsupported expression +- *17* arguments[4] ⚠️ function calls are not analysed yet -- *20* unsupported expression -- *21* ???*22*["current"] +- *18* unsupported expression +- *19* ???*20*["current"] ⚠️ unknown object -- *22* arguments[0] +- *20* arguments[0] ⚠️ function calls are not analysed yet -- *23* C +- *21* C ⚠️ circular variable reference -- *24* arguments[6] +- *22* arguments[6] ⚠️ function calls are not analysed yet -- *25* arguments[7] +- *23* arguments[7] ⚠️ function calls are not analysed yet -- *26* arguments[8] +- *24* arguments[8] ⚠️ function calls are not analysed yet 0 -> 5738 call = (...) => (undefined | Vf | bg(a, c, b) | b)(null) @@ -20521,17 +21761,17 @@ ${???*9*}` | undefined | {"eventTime": a, "lane": b, "tag": 0, "payload": null, "callback": null, "next": null} )( - (???*0* | undefined | ???*1*() | ???*2*), + (???*0* | undefined | module["unstable_now"]() | ???*1*), ( - | ???*3* + | ???*2* | undefined | 1 - | ???*4* + | ???*3* | 0 | 64 - | ???*5* + | ???*4* | undefined["current"] - | ???*7* + | ???*6* | 4 | 16 | 536870912 @@ -20540,17 +21780,15 @@ ${???*9*}` ) - *0* arguments[3] ⚠️ function calls are not analysed yet -- *1* module["unstable_now"] - ⚠️ nested operation -- *2* unsupported expression -- *3* arguments[4] +- *1* unsupported expression +- *2* arguments[4] ⚠️ function calls are not analysed yet -- *4* unsupported expression -- *5* ???*6*["current"] +- *3* unsupported expression +- *4* ???*5*["current"] ⚠️ unknown object -- *6* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *7* C +- *6* C ⚠️ circular variable reference 0 -> 5744 call = (...) => (undefined | null | Zg(a, c))( @@ -20559,17 +21797,17 @@ ${???*9*}` | ???*3* | undefined | { - "eventTime": (???*4* | undefined | ???*5*() | ???*6*), + "eventTime": (???*4* | undefined | module["unstable_now"]() | ???*5*), "lane": ( - | ???*7* + | ???*6* | undefined | 1 - | ???*8* + | ???*7* | 0 | 64 - | ???*9* + | ???*8* | undefined["current"] - | ???*11* + | ???*10* | 4 | 16 | 536870912 @@ -20582,15 +21820,15 @@ ${???*9*}` } ), ( - | ???*12* + | ???*11* | undefined | 1 - | ???*13* + | ???*12* | 0 | 64 - | ???*14* + | ???*13* | undefined["current"] - | ???*16* + | ???*15* | 4 | 16 | 536870912 @@ -20607,26 +21845,24 @@ ${???*9*}` ⚠️ function calls are not analysed yet - *4* arguments[3] ⚠️ function calls are not analysed yet -- *5* module["unstable_now"] - ⚠️ nested operation -- *6* unsupported expression -- *7* arguments[4] +- *5* unsupported expression +- *6* arguments[4] ⚠️ function calls are not analysed yet -- *8* unsupported expression -- *9* ???*10*["current"] +- *7* unsupported expression +- *8* ???*9*["current"] ⚠️ unknown object -- *10* arguments[0] +- *9* arguments[0] ⚠️ function calls are not analysed yet -- *11* C +- *10* C ⚠️ circular variable reference -- *12* arguments[4] +- *11* arguments[4] ⚠️ function calls are not analysed yet -- *13* unsupported expression -- *14* ???*15*["current"] +- *12* unsupported expression +- *13* ???*14*["current"] ⚠️ unknown object -- *15* arguments[0] +- *14* arguments[0] ⚠️ function calls are not analysed yet -- *16* C +- *15* C ⚠️ circular variable reference 0 -> 5747 call = (...) => undefined( @@ -20646,7 +21882,7 @@ ${???*9*}` | 536870912 | null ), - (???*9* | undefined | ???*10*() | ???*11*) + (???*9* | undefined | module["unstable_now"]() | ???*10*) ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -20666,11 +21902,12 @@ ${???*9*}` ⚠️ circular variable reference - *9* arguments[3] ⚠️ function calls are not analysed yet -- *10* module["unstable_now"] - ⚠️ nested operation -- *11* unsupported expression +- *10* unsupported expression -0 -> 5748 call = (...) => undefined((???*0* | undefined | ???*1* | ???*3*), (???*4* | undefined | ???*5*() | ???*6*)) +0 -> 5748 call = (...) => undefined( + (???*0* | undefined | ???*1* | ???*3*), + (???*4* | undefined | module["unstable_now"]() | ???*5*) +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["current"] @@ -20680,9 +21917,7 @@ ${???*9*}` - *3* unknown new expression - *4* arguments[3] ⚠️ function calls are not analysed yet -- *5* module["unstable_now"] - ⚠️ nested operation -- *6* unsupported expression +- *5* unsupported expression 0 -> 5750 call = (...) => (undefined | B() | Bk | ???*0*)() - *0* unsupported expression @@ -20719,39 +21954,37 @@ ${???*9*}` | undefined | {"eventTime": a, "lane": b, "tag": 0, "payload": null, "callback": null, "next": null} )( - (undefined | ???*0*() | ???*1*), + (undefined | module["unstable_now"]() | ???*0*), ( | undefined | 1 - | ???*2* + | ???*1* | 0 | 64 - | ???*3* + | ???*2* | undefined["current"] + | ???*4* | ???*5* | ???*6* - | ???*7* | 4 | 16 | 536870912 | null - | ???*8* + | ???*7* ) ) -- *0* module["unstable_now"] - ⚠️ nested operation +- *0* unsupported expression - *1* unsupported expression -- *2* unsupported expression -- *3* ???*4*["current"] +- *2* ???*3*["current"] ⚠️ unknown object -- *4* arguments[1] +- *3* arguments[1] ⚠️ function calls are not analysed yet -- *5* FreeVar(undefined) +- *4* FreeVar(undefined) ⚠️ unknown global -- *6* unknown mutation -- *7* C +- *5* unknown mutation +- *6* C ⚠️ circular variable reference -- *8* arguments[0] +- *7* arguments[0] ⚠️ function calls are not analysed yet 0 -> 5759 call = (...) => (undefined | null | Zg(a, c))( @@ -20760,8 +21993,8 @@ ${???*9*}` | ???*4* | undefined | { - "eventTime": (undefined | ???*5*() | ???*6*), - "lane": (undefined | 1 | ???*7* | 0 | 64 | ???*8* | ???*10* | 4 | 16 | 536870912 | null | ???*11*), + "eventTime": (undefined | module["unstable_now"]() | ???*5*), + "lane": (undefined | 1 | ???*6* | 0 | 64 | ???*7* | ???*9* | 4 | 16 | 536870912 | null | ???*10*), "tag": 0, "payload": null, "callback": null, @@ -20771,19 +22004,19 @@ ${???*9*}` ( | undefined | 1 - | ???*12* + | ???*11* | 0 | 64 - | ???*13* + | ???*12* | undefined["current"] + | ???*14* | ???*15* | ???*16* - | ???*17* | 4 | 16 | 536870912 | null - | ???*18* + | ???*17* ) ) - *0* ???*1*["current"] @@ -20795,29 +22028,27 @@ ${???*9*}` - *3* unknown mutation - *4* arguments[1] ⚠️ function calls are not analysed yet -- *5* module["unstable_now"] - ⚠️ nested operation +- *5* unsupported expression - *6* unsupported expression -- *7* unsupported expression -- *8* ???*9*["current"] +- *7* ???*8*["current"] ⚠️ unknown object -- *9* b +- *8* b ⚠️ circular variable reference -- *10* C +- *9* C ⚠️ circular variable reference -- *11* arguments[0] +- *10* arguments[0] ⚠️ function calls are not analysed yet -- *12* unsupported expression -- *13* ???*14*["current"] +- *11* unsupported expression +- *12* ???*13*["current"] ⚠️ unknown object -- *14* arguments[1] +- *13* arguments[1] ⚠️ function calls are not analysed yet -- *15* FreeVar(undefined) +- *14* FreeVar(undefined) ⚠️ unknown global -- *16* unknown mutation -- *17* C +- *15* unknown mutation +- *16* C ⚠️ circular variable reference -- *18* arguments[0] +- *17* arguments[0] ⚠️ function calls are not analysed yet 0 -> 5760 call = (...) => undefined( @@ -20840,7 +22071,7 @@ ${???*9*}` | null | ???*11* ), - (undefined | ???*12*() | ???*13*) + (undefined | module["unstable_now"]() | ???*12*) ) - *0* max number of linking steps reached - *1* ???*2*["current"] @@ -20862,9 +22093,7 @@ ${???*9*}` ⚠️ circular variable reference - *11* arguments[0] ⚠️ function calls are not analysed yet -- *12* module["unstable_now"] - ⚠️ nested operation -- *13* unsupported expression +- *12* unsupported expression 0 -> 5761 call = (...) => undefined( ???*0*, @@ -21083,13 +22312,17 @@ ${???*9*}` ⚠️ circular variable reference - *3* unknown new expression -5821 -> 5824 member call = (???*0* | (...) => undefined)["call"]((undefined | null | ???*1*)) +5821 -> 5824 member call = (???*0* | (...) => undefined)["call"]( + (undefined | null | undefined["child"]["stateNode"] | ???*1*) +) - *0* arguments[3] ⚠️ function calls are not analysed yet - *1* ???*2*["stateNode"] ⚠️ unknown object -- *2* undefined["child"] - ⚠️ nested operation +- *2* ???*3*["child"] + ⚠️ unknown object +- *3* arguments[1] + ⚠️ function calls are not analysed yet 5820 -> 5825 call = (...) => (undefined | a)(???*0*, (???*1* | (...) => undefined), ???*2*, 0, null, false, false, "", (...) => undefined) - *0* arguments[1] @@ -21127,13 +22360,17 @@ ${???*9*}` ⚠️ function calls are not analysed yet - *1* unknown new expression -5836 -> 5839 member call = (???*0* | (...) => undefined)["call"]((undefined | null | ???*1*)) +5836 -> 5839 member call = (???*0* | (...) => undefined)["call"]( + (undefined | null | undefined["child"]["stateNode"] | ???*1*) +) - *0* arguments[3] ⚠️ function calls are not analysed yet - *1* ???*2*["stateNode"] ⚠️ unknown object -- *2* undefined["child"] - ⚠️ nested operation +- *2* ???*3*["child"] + ⚠️ unknown object +- *3* arguments[0] + ⚠️ function calls are not analysed yet 0 -> 5840 call = (...) => (undefined | a)(???*0*, 0, false, null, null, false, false, "", (...) => undefined) - *0* arguments[0] @@ -21178,7 +22415,9 @@ ${???*9*}` ⚠️ function calls are not analysed yet - *3* unknown new expression -5851 -> 5854 member call = (???*0* | (...) => undefined)["call"]((undefined | null | ???*1*)) +5851 -> 5854 member call = (???*0* | (...) => undefined)["call"]( + (undefined | null | ???*1* | undefined["child"]["stateNode"]) +) - *0* arguments[4] ⚠️ function calls are not analysed yet - *1* ???*2*["stateNode"] @@ -21256,13 +22495,11 @@ ${???*9*}` 5863 -> 5867 call = module["unstable_now"]() -5863 -> 5868 call = (...) => undefined(???*0*, ???*2*()) +5863 -> 5868 call = (...) => undefined(???*0*, module["unstable_now"]()) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* module["unstable_now"] - ⚠️ nested operation 5863 -> 5869 call = module["unstable_now"]() @@ -21285,7 +22522,12 @@ ${???*9*}` 5873 -> 5874 call = (...) => (undefined | B() | Bk | ???*0*)() - *0* unsupported expression -5873 -> 5875 call = (...) => undefined((undefined | ???*0* | null), ???*3*, 1, (undefined | ???*4*() | ???*5*)) +5873 -> 5875 call = (...) => undefined( + (undefined | ???*0* | null), + ???*3*, + 1, + (undefined | module["unstable_now"]() | ???*4*) +) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* ???*2*["alternate"] @@ -21294,9 +22536,7 @@ ${???*9*}` ⚠️ function calls are not analysed yet - *3* arguments[0] ⚠️ function calls are not analysed yet -- *4* module["unstable_now"] - ⚠️ nested operation -- *5* unsupported expression +- *4* unsupported expression 0 -> 5876 call = (...) => undefined(???*0*, 1) - *0* arguments[0] @@ -21323,7 +22563,12 @@ ${???*9*}` 5880 -> 5881 call = (...) => (undefined | B() | Bk | ???*0*)() - *0* unsupported expression -5880 -> 5882 call = (...) => undefined((undefined | ???*0* | null), ???*3*, 134217728, (undefined | ???*4*() | ???*5*)) +5880 -> 5882 call = (...) => undefined( + (undefined | ???*0* | null), + ???*3*, + 134217728, + (undefined | module["unstable_now"]() | ???*4*) +) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* ???*2*["alternate"] @@ -21332,9 +22577,7 @@ ${???*9*}` ⚠️ function calls are not analysed yet - *3* arguments[0] ⚠️ function calls are not analysed yet -- *4* module["unstable_now"] - ⚠️ nested operation -- *5* unsupported expression +- *4* unsupported expression 5878 -> 5883 call = (...) => undefined(???*0*, 134217728) - *0* arguments[0] @@ -21382,7 +22625,7 @@ ${???*9*}` (undefined | ???*0* | null), ???*3*, (undefined | 1 | ???*4* | 0 | 64 | ???*5* | ???*6* | 4 | 16 | 536870912 | null | ???*7*), - (undefined | ???*9*() | ???*10*) + (undefined | module["unstable_now"]() | ???*9*) ) - *0* ???*1*["stateNode"] ⚠️ unknown object @@ -21401,9 +22644,7 @@ ${???*9*}` ⚠️ unknown object - *8* arguments[1] ⚠️ function calls are not analysed yet -- *9* module["unstable_now"] - ⚠️ nested operation -- *10* unsupported expression +- *9* unsupported expression 5885 -> 5891 call = (...) => undefined( ???*0*, @@ -21667,9 +22908,9 @@ ${???*9*}` "setErrorHandler": null, "setSuspenseHandler": null, "scheduleUpdate": null, - "currentDispatcherRef": ???*6*, + "currentDispatcherRef": module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentDispatcher"], "findHostInstanceByFiber": (...) => (undefined | null | a["stateNode"]), - "findFiberByHostInstance": ((...) => (undefined | b | c | null) | ???*8* | (...) => (undefined | null)), + "findFiberByHostInstance": ((...) => (undefined | b | c | null) | ???*6* | (...) => (undefined | null)), "findHostInstancesForRefresh": null, "scheduleRefresh": null, "scheduleRoot": null, @@ -21686,11 +22927,7 @@ ${???*9*}` - *4* FreeVar(undefined) ⚠️ unknown global - *5* unknown mutation -- *6* ???*7*["ReactCurrentDispatcher"] - ⚠️ unknown object -- *7* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation -- *8* unknown mutation +- *6* unknown mutation 0 -> 5937 call = (...) => ( | undefined @@ -21801,14 +23038,12 @@ ${???*9*}` - *2* arguments[0] ⚠️ function calls are not analysed yet -0 -> 5961 conditional = (???*0* === (???*1* | ???*3*)) +0 -> 5961 conditional = (???*0* === (???*1* | undefined["_reactInternals"] | null["_reactInternals"])) - *0* unsupported expression - *1* ???*2*["_reactInternals"] ⚠️ unknown object - *2* arguments[0] ⚠️ function calls are not analysed yet -- *3* undefined["_reactInternals"] - ⚠️ nested operation 5961 -> 5963 conditional = ("function" === ???*0*) - *0* unsupported expression @@ -21997,44 +23232,84 @@ ${???*9*}` null, (???*1* | 0), 1, - (???*2* | ???*3* | null[(???*7* | 0)] | null), - (false | true | ???*8* | ???*10*), + (???*2* | (null != ???*3*)[(???*4* | 0)] | ???*5* | null[(???*9* | 0)] | null), + ( + | false + | true + | ???*10* + | (null != ???*12*)[(???*13* | 0)]["_getVersion"] + | null[(???*14* | 0)]["_getVersion"] + | ???*15* + ), false, - ("" | ???*12*), - (???*14* | (...) => undefined | ???*15*) + ( + | "" + | ???*17* + | (null != ???*19*)[(???*20* | 0)]["identifierPrefix"] + | null[(???*21* | 0)]["identifierPrefix"] + ), + ( + | ???*22* + | (...) => undefined + | ???*23* + | (null != ???*25*)[(???*26* | 0)]["onRecoverableError"] + | null[(???*27* | 0)]["onRecoverableError"] + ) ) - *0* max number of linking steps reached - *1* arguments[0] ⚠️ function calls are not analysed yet - *2* arguments[2] ⚠️ function calls are not analysed yet -- *3* ???*4*[(???*6* | 0)] +- *3* c + ⚠️ circular variable reference +- *4* arguments[0] + ⚠️ function calls are not analysed yet +- *5* ???*6*[(???*8* | 0)] ⚠️ unknown object -- *4* (null != ???*5*) - ⚠️ nested operation -- *5* c +- *6* ???*7*["hydratedSources"] + ⚠️ unknown object +- *7* c ⚠️ circular variable reference -- *6* arguments[0] +- *8* arguments[0] ⚠️ function calls are not analysed yet -- *7* arguments[0] +- *9* arguments[0] ⚠️ function calls are not analysed yet -- *8* ???*9*["_getVersion"] +- *10* ???*11*["_getVersion"] ⚠️ unknown object -- *9* arguments[2] +- *11* arguments[2] + ⚠️ function calls are not analysed yet +- *12* c + ⚠️ circular variable reference +- *13* arguments[0] + ⚠️ function calls are not analysed yet +- *14* arguments[0] ⚠️ function calls are not analysed yet -- *10* ???*11*(c["_source"]) +- *15* ???*16*(c["_source"]) ⚠️ unknown callee -- *11* e +- *16* e ⚠️ circular variable reference -- *12* ???*13*["identifierPrefix"] +- *17* ???*18*["identifierPrefix"] ⚠️ unknown object -- *13* arguments[2] +- *18* arguments[2] + ⚠️ function calls are not analysed yet +- *19* c + ⚠️ circular variable reference +- *20* arguments[0] + ⚠️ function calls are not analysed yet +- *21* arguments[0] ⚠️ function calls are not analysed yet -- *14* FreeVar(reportError) +- *22* FreeVar(reportError) ⚠️ unknown global -- *15* ???*16*["onRecoverableError"] +- *23* ???*24*["onRecoverableError"] ⚠️ unknown object -- *16* arguments[2] +- *24* arguments[2] + ⚠️ function calls are not analysed yet +- *25* c + ⚠️ circular variable reference +- *26* arguments[0] + ⚠️ function calls are not analysed yet +- *27* arguments[0] ⚠️ function calls are not analysed yet 0 -> 5996 call = (...) => undefined((???*0* | 0)) @@ -22053,41 +23328,82 @@ ${???*9*}` - *4* arguments[2] ⚠️ function calls are not analysed yet -5997 -> 6002 call = (false | true | ???*0* | ???*2*)(???*4*) +5997 -> 6002 call = ( + | false + | true + | ???*0* + | (null != ???*2*)[(???*3* | 0)]["_getVersion"] + | null[(???*4* | 0)]["_getVersion"] + | ???*5* +)( + (???*7* | (null != ???*9*)[(???*10* | 0)]["_source"] | null[(???*11* | 0)]["_source"]) +) - *0* ???*1*["_getVersion"] ⚠️ unknown object - *1* arguments[2] ⚠️ function calls are not analysed yet -- *2* ???*3*(c["_source"]) +- *2* c + ⚠️ circular variable reference +- *3* arguments[0] + ⚠️ function calls are not analysed yet +- *4* arguments[0] + ⚠️ function calls are not analysed yet +- *5* ???*6*(c["_source"]) ⚠️ unknown callee -- *3* e +- *6* e ⚠️ circular variable reference -- *4* ???*5*["_source"] +- *7* ???*8*["_source"] ⚠️ unknown object -- *5* arguments[2] +- *8* arguments[2] + ⚠️ function calls are not analysed yet +- *9* c + ⚠️ circular variable reference +- *10* arguments[0] + ⚠️ function calls are not analysed yet +- *11* arguments[0] ⚠️ function calls are not analysed yet -5997 -> 6007 member call = ???*0*["push"]((???*1* | ???*2* | null[(???*6* | 0)]), (false | true | ???*7* | ???*9*)) +5997 -> 6007 member call = ???*0*["push"]( + (???*1* | (null != ???*2*)[(???*3* | 0)] | ???*4* | null[(???*8* | 0)]), + ( + | false + | true + | ???*9* + | (null != ???*11*)[(???*12* | 0)]["_getVersion"] + | null[(???*13* | 0)]["_getVersion"] + | ???*14* + ) +) - *0* max number of linking steps reached - *1* arguments[2] ⚠️ function calls are not analysed yet -- *2* ???*3*[(???*5* | 0)] +- *2* c + ⚠️ circular variable reference +- *3* arguments[0] + ⚠️ function calls are not analysed yet +- *4* ???*5*[(???*7* | 0)] ⚠️ unknown object -- *3* (null != ???*4*) - ⚠️ nested operation -- *4* c +- *5* ???*6*["hydratedSources"] + ⚠️ unknown object +- *6* c ⚠️ circular variable reference -- *5* arguments[0] +- *7* arguments[0] ⚠️ function calls are not analysed yet -- *6* arguments[0] +- *8* arguments[0] ⚠️ function calls are not analysed yet -- *7* ???*8*["_getVersion"] +- *9* ???*10*["_getVersion"] ⚠️ unknown object -- *8* arguments[2] +- *10* arguments[2] + ⚠️ function calls are not analysed yet +- *11* c + ⚠️ circular variable reference +- *12* arguments[0] + ⚠️ function calls are not analysed yet +- *13* arguments[0] ⚠️ function calls are not analysed yet -- *9* ???*10*(c["_source"]) +- *14* ???*15*(c["_source"]) ⚠️ unknown callee -- *10* e +- *15* e ⚠️ circular variable reference 0 -> 6009 call = (...) => ( diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/react-dom-production/resolved-explained.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/react-dom-production/resolved-explained.snapshot index c5630a60da1a1..a12d49afb3b34 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/react-dom-production/resolved-explained.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/react-dom-production/resolved-explained.snapshot @@ -409,10 +409,8 @@ Bj = (???*0* | (...) => undefined) - *0* Bj ⚠️ pattern without value -Bk = (???*0* | ???*1*()) +Bk = (???*0* | module["unstable_now"]()) - *0* unsupported expression -- *1* module["unstable_now"] - ⚠️ nested operation C = ???*0* - *0* max number of linking steps reached @@ -687,9 +685,7 @@ Hi = (...) => (undefined | ((a === N) || ((null !== b) && (b === N)))) Hj = (???*0* | (???*1* + 500)) - *0* FreeVar(Infinity) ⚠️ unknown global -- *1* ???*2*() - ⚠️ nested operation -- *2* module["unstable_now"] +- *1* module["unstable_now"]() ⚠️ nested operation Hk = (...) => (undefined | null | Hk["bind"](null, a)) @@ -800,11 +796,7 @@ Ke = (...) => (undefined | {"node": c, "offset": ???*0*}) Kf = (...) => (undefined | FreeVar(undefined)) -Kg = ???*0* -- *0* ???*1*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *1* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +Kg = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"] Kh = (...) => undefined @@ -977,43 +969,39 @@ N = ( | (null !== ( | null | ???*1* + | null["alternate"] | ???*2* - | ???*3* - | {"memoizedState": ???*5*, "baseState": ???*7*, "baseQueue": ???*9*, "queue": ???*11*, "next": null} + | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*13* | ???*14* | null | ???*16*)) + | (null !== (null["next"] | ???*12* | null["alternate"]["next"] | null | ???*14*)) ) - *0* arguments[1] ⚠️ function calls are not analysed yet - *1* unsupported expression -- *2* null["alternate"] - ⚠️ nested operation -- *3* ???*4*["alternate"] +- *2* ???*3*["alternate"] ⚠️ unknown object -- *4* b +- *3* b ⚠️ circular variable reference -- *5* ???*6*["memoizedState"] +- *4* ???*5*["memoizedState"] ⚠️ unknown object -- *6* O +- *5* O ⚠️ circular variable reference -- *7* ???*8*["baseState"] +- *6* ???*7*["baseState"] ⚠️ unknown object -- *8* O +- *7* O ⚠️ circular variable reference -- *9* ???*10*["baseQueue"] +- *8* ???*9*["baseQueue"] ⚠️ unknown object -- *10* O +- *9* O ⚠️ circular variable reference -- *11* ???*12*["queue"] +- *10* ???*11*["queue"] ⚠️ unknown object -- *12* O +- *11* O ⚠️ circular variable reference -- *13* null["next"] - ⚠️ nested operation -- *14* ???*15*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *15* unsupported expression -- *16* unknown mutation +- *13* unsupported expression +- *14* unknown mutation Na = (false | true) @@ -1145,12 +1133,14 @@ O = ( | ???*0* | null["alternate"] | ???*1* + | (null !== (null | ???*3* | ???*4*))["alternate"] + | (null !== (null["next"] | ???*5*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*7*), + "baseState": (null["baseState"] | ???*9*), + "baseQueue": (null["baseQueue"] | ???*11*), + "queue": (null["queue"] | ???*13*), "next": null } ) @@ -1159,18 +1149,24 @@ O = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] - ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *3* unsupported expression +- *4* a + ⚠️ circular variable reference +- *5* ???*6*["next"] ⚠️ unknown object - *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* ???*8*["memoizedState"] ⚠️ unknown object - *8* unsupported expression -- *9* ???*10*["queue"] +- *9* ???*10*["baseState"] ⚠️ unknown object - *10* unsupported expression +- *11* ???*12*["baseQueue"] + ⚠️ unknown object +- *12* unsupported expression +- *13* ???*14*["queue"] + ⚠️ unknown object +- *14* unsupported expression Oa = (...) => (undefined | "" | k | Ma(a)) @@ -1254,11 +1250,7 @@ Pf = `__reactProps$${???*0*}` Pg = (null | ???*0*) - *0* unsupported expression -Ph = ???*0* -- *0* ???*1*["ReactCurrentDispatcher"] - ⚠️ unknown object -- *1* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +Ph = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentDispatcher"] Pi = (true | false) @@ -1333,11 +1325,7 @@ Qf = `__reactListeners$${???*0*}` Qg = (...) => undefined -Qh = ???*0* -- *0* ???*1*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *1* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +Qh = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"] Qi = (???*0* | null) - *0* ???*1*["value"] @@ -1389,11 +1377,7 @@ Rb = (null | ???*0*) - *0* arguments[0] ⚠️ function calls are not analysed yet -Rc = ???*0* -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit"["split"] - ⚠️ nested operation +Rc = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit"["split"](" ") Rd = (undefined | (...) => (undefined | ???*0*)) - *0* unsupported expression @@ -1665,11 +1649,7 @@ Xg = (...) => undefined Xh = (...) => (undefined | a) -Xi = ???*0* -- *0* ???*1*["ReactCurrentOwner"] - ⚠️ unknown object -- *1* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +Xi = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentOwner"] Xj = (...) => undefined @@ -2034,30 +2014,43 @@ a#137 = (???*0* | ???*1*) - *2* arguments[1] ⚠️ function calls are not analysed yet -a#138 = (???*0* | undefined | null | ???*1* | ???*6* | ???*12*) +a#138 = ( + | ???*0* + | undefined + | null + | null["value"]["slice"]((???*1* | 0), ???*2*) + | undefined["value"]["slice"]((???*3* | 0), ???*4*) + | ???*5* + | null["textContent"]["slice"]((???*11* | 0), ???*12*) + | undefined["textContent"]["slice"]((???*13* | 0), ???*14*) + | ???*15* +) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*((???*4* | 0), ???*5*) - ⚠️ unknown callee -- *2* ???*3*["slice"] - ⚠️ unknown object -- *3* null["value"] - ⚠️ nested operation -- *4* a +- *1* a ⚠️ pattern without value -- *5* unsupported expression -- *6* ???*7*["slice"]((???*10* | 0), ???*11*) +- *2* unsupported expression +- *3* a + ⚠️ pattern without value +- *4* unsupported expression +- *5* ???*6*["slice"]((???*9* | 0), ???*10*) ⚠️ unknown callee object -- *7* ???*8*["value"] +- *6* ???*7*["value"] ⚠️ unknown object -- *8* ???*9*["parentNode"] +- *7* ???*8*["parentNode"] ⚠️ unknown object -- *9* arguments[2] +- *8* arguments[2] ⚠️ function calls are not analysed yet -- *10* a +- *9* a + ⚠️ pattern without value +- *10* unsupported expression +- *11* a ⚠️ pattern without value -- *11* unsupported expression - *12* unsupported expression +- *13* a + ⚠️ pattern without value +- *14* unsupported expression +- *15* unsupported expression a#139 = ???*0* - *0* arguments[0] @@ -2123,7 +2116,15 @@ a#151 = (???*0* | ???*1*) - *2* arguments[0] ⚠️ function calls are not analysed yet -a#152 = (???*0* | 0 | ???*1* | ((???*2* | 0 | ???*3*) + ???*4*)) +a#152 = ( + | ???*0* + | 0 + | ???*1* + | ( + + (???*2* | 0 | ???*3*) + + (undefined["textContent"]["length"] | ???*4* | 0["textContent"]["length"]) + ) +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* d @@ -2134,8 +2135,10 @@ a#152 = (???*0* | 0 | ???*1* | ((???*2* | 0 | ???*3*) + ???*4*)) ⚠️ circular variable reference - *4* ???*5*["length"] ⚠️ unknown object -- *5* undefined["textContent"] - ⚠️ nested operation +- *5* ???*6*["textContent"] + ⚠️ unknown object +- *6* arguments[0] + ⚠️ function calls are not analysed yet a#153 = ???*0* - *0* arguments[0] @@ -2285,8 +2288,10 @@ a#183 = ( | null | undefined["parentNode"] | null["parentNode"] - | undefined[???*4*] - | null[???*9*] + | undefined[`__reactFiber$${???*4*}`]["alternate"] + | null[`__reactFiber$${???*9*}`]["alternate"] + | undefined[`__reactFiber$${???*14*}`] + | null[`__reactFiber$${???*19*}`] ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -2296,26 +2301,46 @@ a#183 = ( ⚠️ unknown object - *3* a ⚠️ circular variable reference -- *4* `__reactFiber$${???*5*}` +- *4* ???*5*["slice"](2) + ⚠️ unknown callee object +- *5* ???*6*(36) + ⚠️ unknown callee +- *6* ???*7*["toString"] + ⚠️ unknown object +- *7* ???*8*() ⚠️ nested operation -- *5* ???*6*["slice"](2) +- *8* ???["random"] + ⚠️ unknown object +- *9* ???*10*["slice"](2) ⚠️ unknown callee object -- *6* ???*7*(36) +- *10* ???*11*(36) ⚠️ unknown callee -- *7* ???*8*["toString"] +- *11* ???*12*["toString"] ⚠️ unknown object -- *8* ???() +- *12* ???*13*() ⚠️ nested operation -- *9* `__reactFiber$${???*10*}` +- *13* ???["random"] + ⚠️ unknown object +- *14* ???*15*["slice"](2) + ⚠️ unknown callee object +- *15* ???*16*(36) + ⚠️ unknown callee +- *16* ???*17*["toString"] + ⚠️ unknown object +- *17* ???*18*() ⚠️ nested operation -- *10* ???*11*["slice"](2) +- *18* ???["random"] + ⚠️ unknown object +- *19* ???*20*["slice"](2) ⚠️ unknown callee object -- *11* ???*12*(36) +- *20* ???*21*(36) ⚠️ unknown callee -- *12* ???*13*["toString"] +- *21* ???*22*["toString"] ⚠️ unknown object -- *13* ???() +- *22* ???*23*() ⚠️ nested operation +- *23* ???["random"] + ⚠️ unknown object a#184 = (???*0* | ???*1*) - *0* arguments[0] @@ -2781,7 +2806,7 @@ a#253 = ???*0* - *0* arguments[0] ⚠️ function calls are not analysed yet -a#254 = (???*0* | ???*1* | ???*4* | null) +a#254 = (???*0* | ???*1* | null["get"](???*4*) | null | null["get"]((???*5* | ???*6*))) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["get"](???*3*) @@ -2790,11 +2815,13 @@ a#254 = (???*0* | ???*1* | ???*4* | null) ⚠️ function calls are not analysed yet - *3* arguments[2] ⚠️ function calls are not analysed yet -- *4* ???*5*(???*6*) - ⚠️ unknown callee -- *5* null["get"] - ⚠️ nested operation -- *6* arguments[2] +- *4* arguments[2] + ⚠️ function calls are not analysed yet +- *5* arguments[2] + ⚠️ function calls are not analysed yet +- *6* ???*7*["key"] + ⚠️ unknown object +- *7* arguments[3] ⚠️ function calls are not analysed yet a#256 = ???*0* @@ -2864,13 +2891,8 @@ a#271 = ???*0* - *0* arguments[0] ⚠️ function calls are not analysed yet -a#272 = (???*0* | ???*1* | null["interleaved"]) -- *0* arguments[0] - ⚠️ function calls are not analysed yet -- *1* ???*2*["interleaved"] - ⚠️ unknown object -- *2* undefined["queue"] - ⚠️ nested operation +a#272 = ???*0* +- *0* max number of linking steps reached a#273 = ???*0* - *0* arguments[0] @@ -2883,8 +2905,39 @@ a#274 = ???*0* a#275 = ( | ???*0* | { - "getSnapshot": (???*1* | null["updateQueue"] | ???*2* | {"lastEffect": null, "stores": null}), - "value": (???*4* | ???*5* | null | ???*7*) + "getSnapshot": ( + | ???*1* + | null["updateQueue"] + | ???*2* + | (null !== ( + | null + | ???*4* + | ???*5* + | {"memoizedState": ???*7*, "baseState": ???*9*, "baseQueue": ???*11*, "queue": ???*13*, "next": null} + ))["updateQueue"] + | (null !== (null["next"] | ???*15* | null | ???*17*))["updateQueue"] + | {"lastEffect": null, "stores": null} + ), + "value": ( + | ???*18* + | ???*19* + | null["updateQueue"]["stores"] + | (null !== ( + | null + | ???*21* + | ???*22* + | { + "memoizedState": ???*24*, + "baseState": ???*26*, + "baseQueue": ???*28*, + "queue": ???*30*, + "next": null + } + ))["updateQueue"]["stores"] + | (null !== (null["next"] | ???*32* | null | ???*34*))["updateQueue"]["stores"] + | null + | ???*35* + ) } ) - *0* arguments[0] @@ -2895,13 +2948,63 @@ a#275 = ( ⚠️ unknown object - *3* arguments[1] ⚠️ function calls are not analysed yet -- *4* arguments[2] +- *4* unsupported expression +- *5* ???*6*["alternate"] + ⚠️ unknown object +- *6* N + ⚠️ circular variable reference +- *7* ???*8*["memoizedState"] + ⚠️ unknown object +- *8* O + ⚠️ circular variable reference +- *9* ???*10*["baseState"] + ⚠️ unknown object +- *10* O + ⚠️ circular variable reference +- *11* ???*12*["baseQueue"] + ⚠️ unknown object +- *12* O + ⚠️ circular variable reference +- *13* ???*14*["queue"] + ⚠️ unknown object +- *14* O + ⚠️ circular variable reference +- *15* ???*16*["next"] + ⚠️ unknown object +- *16* unsupported expression +- *17* unknown mutation +- *18* arguments[2] ⚠️ function calls are not analysed yet -- *5* ???*6*["stores"] +- *19* ???*20*["stores"] ⚠️ unknown object -- *6* arguments[1] +- *20* arguments[1] ⚠️ function calls are not analysed yet -- *7* unknown mutation +- *21* unsupported expression +- *22* ???*23*["alternate"] + ⚠️ unknown object +- *23* N + ⚠️ circular variable reference +- *24* ???*25*["memoizedState"] + ⚠️ unknown object +- *25* O + ⚠️ circular variable reference +- *26* ???*27*["baseState"] + ⚠️ unknown object +- *27* O + ⚠️ circular variable reference +- *28* ???*29*["baseQueue"] + ⚠️ unknown object +- *29* O + ⚠️ circular variable reference +- *30* ???*31*["queue"] + ⚠️ unknown object +- *31* O + ⚠️ circular variable reference +- *32* ???*33*["next"] + ⚠️ unknown object +- *33* unsupported expression +- *34* unknown mutation +- *35* unknown mutation a#276 = ???*0* - *0* arguments[0] @@ -3175,13 +3278,22 @@ a#311 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -3190,18 +3302,49 @@ a#311 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression a#312 = ???*0* - *0* arguments[0] @@ -3237,28 +3380,25 @@ a#322 = ???*0* - *0* arguments[0] ⚠️ function calls are not analysed yet -a#324 = (???*0* | ???*1*) +a#324 = ( + | ???*0* + | (...) => undefined["bind"](null, (???*1* | ???*2*), ???*6*, ???*7*) +) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*(null, (???*3* | ???*4*), ???*9*, ???*10*) - ⚠️ unknown callee -- *2* (...) => undefined["bind"] - ⚠️ nested operation -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet -- *4* ???*5*(null, ???*6*, ???*7*, ???*8*) - ⚠️ unknown callee -- *5* (...) => undefined["bind"] +- *2* (...) => undefined["bind"](null, ???*3*, ???*4*, ???*5*) ⚠️ nested operation -- *6* a +- *3* a ⚠️ circular variable reference -- *7* arguments[1] +- *4* arguments[1] ⚠️ function calls are not analysed yet -- *8* arguments[2] +- *5* arguments[2] ⚠️ function calls are not analysed yet -- *9* arguments[1] +- *6* arguments[1] ⚠️ function calls are not analysed yet -- *10* arguments[2] +- *7* arguments[2] ⚠️ function calls are not analysed yet a#325 = (???*0* | ???*1*) @@ -3459,7 +3599,7 @@ a#369 = (???*0* | ???*1*) - *2* arguments[0] ⚠️ function calls are not analysed yet -a#37 = (???*0* | ???*1* | ""["displayName"] | ""["name"] | "") +a#37 = (???*0* | ???*1* | ""["type"]["render"] | ""["displayName"] | ""["name"] | "") - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["render"] @@ -3597,7 +3737,7 @@ a#414 = ???*0* - *0* arguments[0] ⚠️ function calls are not analysed yet -a#415 = (???*0* | undefined | ???*1* | ???*4*) +a#415 = (???*0* | undefined | ???*1* | undefined["current"]["alternate"] | ???*4*) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["alternate"] @@ -3612,13 +3752,7 @@ a#416 = ???*0* - *0* arguments[0] ⚠️ function calls are not analysed yet -a#418 = ???*0* -- *0* ???*1*["current"] - ⚠️ unknown object -- *1* ???*2*["ReactCurrentDispatcher"] - ⚠️ unknown object -- *2* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +a#418 = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentDispatcher"]["current"] a#419 = ???*0* - *0* arguments[0] @@ -3660,7 +3794,16 @@ a#425 = (undefined | 16 | 536870912 | 4 | 1 | null | ???*0* | ???*1*) - *2* arguments[1] ⚠️ function calls are not analysed yet -a#428 = (???*0* | undefined | null | ???*1* | undefined["stateNode"] | null["stateNode"]) +a#428 = ( + | ???*0* + | undefined + | null + | ???*1* + | undefined["alternate"]["stateNode"] + | null["alternate"]["stateNode"] + | undefined["stateNode"] + | null["stateNode"] +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["stateNode"] @@ -3691,21 +3834,21 @@ ${???*7*}` } | 1 | {"eventTime": ???*9*, "lane": ???*10*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*11*() - | ???*12* + | module["unstable_now"]() + | ???*11* ), "stack": ( | "" | ` -Error generating stack: ${???*13*} -${???*15*}` +Error generating stack: ${???*12*} +${???*14*}` ), "digest": null } | 1 - | {"eventTime": ???*17*, "lane": ???*18*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*19*() - | ???*20* + | {"eventTime": ???*16*, "lane": ???*17*, "tag": 0, "payload": null, "callback": null, "next": null} + | module["unstable_now"]() + | ???*18* ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -3728,23 +3871,19 @@ ${???*15*}` - *9* unsupported expression - *10* c ⚠️ circular variable reference -- *11* module["unstable_now"] - ⚠️ nested operation -- *12* unsupported expression -- *13* ???*14*["message"] +- *11* unsupported expression +- *12* ???*13*["message"] ⚠️ unknown object -- *14* f +- *13* f ⚠️ pattern without value -- *15* ???*16*["stack"] +- *14* ???*15*["stack"] ⚠️ unknown object -- *16* f +- *15* f ⚠️ pattern without value -- *17* unsupported expression -- *18* c +- *16* unsupported expression +- *17* c ⚠️ circular variable reference -- *19* module["unstable_now"] - ⚠️ nested operation -- *20* unsupported expression +- *18* unsupported expression a#43 = ???*0* - *0* arguments[0] @@ -3754,7 +3893,16 @@ a#430 = ???*0* - *0* arguments[0] ⚠️ function calls are not analysed yet -a#431 = (???*0* | undefined | ???*1* | undefined["stateNode"] | null["stateNode"] | null) +a#431 = ( + | ???*0* + | undefined + | ???*1* + | undefined["alternate"]["stateNode"] + | null["alternate"]["stateNode"] + | undefined["stateNode"] + | null["stateNode"] + | null +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["stateNode"] @@ -3974,23 +4122,27 @@ a#463 = ???*0* - *0* arguments[0] ⚠️ function calls are not analysed yet -a#464 = (undefined | null | ???*0*) +a#464 = (undefined | null | undefined["child"]["stateNode"] | ???*0*) - *0* ???*1*["stateNode"] ⚠️ unknown object -- *1* undefined["child"] - ⚠️ nested operation +- *1* ???*2*["child"] + ⚠️ unknown object +- *2* arguments[1] + ⚠️ function calls are not analysed yet -a#465 = (undefined | null | ???*0*) +a#465 = (undefined | null | undefined["child"]["stateNode"] | ???*0*) - *0* ???*1*["stateNode"] ⚠️ unknown object -- *1* undefined["child"] - ⚠️ nested operation +- *1* ???*2*["child"] + ⚠️ unknown object +- *2* arguments[0] + ⚠️ function calls are not analysed yet a#466 = ???*0* - *0* arguments[0] ⚠️ function calls are not analysed yet -a#467 = (undefined | null | ???*0*) +a#467 = (undefined | null | ???*0* | undefined["child"]["stateNode"]) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* ???*2*["child"] @@ -4260,32 +4412,61 @@ a#75 = ???*0* - *0* arguments[0] ⚠️ function calls are not analysed yet -a#76 = (???*0* | ???*1* | false["type"] | !((undefined | ???*3* | null | ???*10*)) | false) +a#76 = ( + | ???*0* + | ???*1* + | !((undefined | ???*3* | null | ???*6*))["type"] + | false["type"] + | !((undefined | ???*9* | false["stateNode"][???*16*] | null | ???*21*)) + | false +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["type"] ⚠️ unknown object - *2* arguments[0] ⚠️ function calls are not analysed yet -- *3* ???*4*[`__reactProps$${???*6*}`] +- *3* ???*4*[Pf] ⚠️ unknown object - *4* ???*5*["stateNode"] ⚠️ unknown object -- *5* arguments[0] +- *5* a + ⚠️ circular variable reference +- *6* !(???*7*) + ⚠️ nested operation +- *7* ???*8*["disabled"] + ⚠️ unknown object +- *8* d + ⚠️ circular variable reference +- *9* ???*10*[`__reactProps$${???*12*}`] + ⚠️ unknown object +- *10* ???*11*["stateNode"] + ⚠️ unknown object +- *11* arguments[0] ⚠️ function calls are not analysed yet -- *6* ???*7*["slice"](2) +- *12* ???*13*["slice"](2) ⚠️ unknown callee object -- *7* ???*8*(36) +- *13* ???*14*(36) ⚠️ unknown callee -- *8* ???*9*["toString"] +- *14* ???*15*["toString"] ⚠️ unknown object -- *9* ???() +- *15* ???() ⚠️ nested operation -- *10* !(???*11*) +- *16* `__reactProps$${???*17*}` ⚠️ nested operation -- *11* ???*12*["disabled"] +- *17* ???*18*["slice"](2) + ⚠️ unknown callee object +- *18* ???*19*(36) + ⚠️ unknown callee +- *19* ???*20*["toString"] ⚠️ unknown object -- *12* d +- *20* ???() + ⚠️ nested operation +- *21* !(???*22*) + ⚠️ nested operation +- *22* ???*23*["disabled"] + ⚠️ unknown object +- *23* d ⚠️ circular variable reference a#77 = ???*0* @@ -4681,7 +4862,17 @@ b#153 = ???*0* - *0* arguments[1] ⚠️ function calls are not analysed yet -b#154 = (undefined | null | ???*0*) +b#154 = ( + | undefined + | null + | ???*0* + | undefined["contentWindow"]["document"]["activeElement"] + | null["contentWindow"]["document"]["activeElement"] + | undefined["contentWindow"]["document"]["body"] + | null["contentWindow"]["document"]["body"] + | undefined["contentWindow"]["document"]["body"] + | null["contentWindow"]["document"]["body"] +) - *0* ???*1*["activeElement"] ⚠️ unknown object - *1* unknown function argument (out of bounds) @@ -4771,7 +4962,7 @@ b#174 = ???*0* - *0* arguments[1] ⚠️ function calls are not analysed yet -b#176 = (???*0* | undefined | ???*1*) +b#176 = (???*0* | undefined | ???*1* | ???*4*) - *0* arguments[1] ⚠️ function calls are not analysed yet - *1* ???*2*["replace"](/\u0000|\uFFFD/g, "") @@ -4780,6 +4971,12 @@ b#176 = (???*0* | undefined | ???*1*) ⚠️ unknown callee object - *3* arguments[1] ⚠️ function calls are not analysed yet +- *4* ???*5*(/\u0000|\uFFFD/g, "") + ⚠️ unknown callee +- *5* ???*6*["replace"] + ⚠️ unknown object +- *6* undefined["replace"](/\r\n?/g, "\n") + ⚠️ nested operation b#177 = ???*0* - *0* arguments[1] @@ -5149,43 +5346,39 @@ b#267 = ( | (null !== ( | null | ???*1* + | null["alternate"] | ???*2* - | ???*3* - | {"memoizedState": ???*5*, "baseState": ???*7*, "baseQueue": ???*9*, "queue": ???*11*, "next": null} + | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*13* | ???*14* | null | ???*16*)) + | (null !== (null["next"] | ???*12* | null["alternate"]["next"] | null | ???*14*)) ) - *0* arguments[1] ⚠️ function calls are not analysed yet - *1* unsupported expression -- *2* null["alternate"] - ⚠️ nested operation -- *3* ???*4*["alternate"] +- *2* ???*3*["alternate"] ⚠️ unknown object -- *4* arguments[1] +- *3* arguments[1] ⚠️ function calls are not analysed yet -- *5* ???*6*["memoizedState"] +- *4* ???*5*["memoizedState"] ⚠️ unknown object -- *6* O +- *5* O ⚠️ circular variable reference -- *7* ???*8*["baseState"] +- *6* ???*7*["baseState"] ⚠️ unknown object -- *8* O +- *7* O ⚠️ circular variable reference -- *9* ???*10*["baseQueue"] +- *8* ???*9*["baseQueue"] ⚠️ unknown object -- *10* O +- *9* O ⚠️ circular variable reference -- *11* ???*12*["queue"] +- *10* ???*11*["queue"] ⚠️ unknown object -- *12* O +- *11* O ⚠️ circular variable reference -- *13* null["next"] - ⚠️ nested operation -- *14* ???*15*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *15* unsupported expression -- *16* unknown mutation +- *13* unsupported expression +- *14* unknown mutation b#27 = ???*0* - *0* ???*1*(/\n( *(at )?)/) @@ -5213,13 +5406,22 @@ b#272 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -5228,18 +5430,49 @@ b#272 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression b#273 = ( | undefined @@ -5248,13 +5481,22 @@ b#273 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -5263,30 +5505,98 @@ b#273 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression b#274 = ???*0* - *0* arguments[1] ⚠️ function calls are not analysed yet -b#275 = (???*0* | null["updateQueue"] | ???*1* | {"lastEffect": null, "stores": null}) +b#275 = ( + | ???*0* + | null["updateQueue"] + | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["updateQueue"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["updateQueue"] + | {"lastEffect": null, "stores": null} +) - *0* arguments[1] ⚠️ function calls are not analysed yet - *1* ???*2*["updateQueue"] ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation b#276 = ???*0* - *0* arguments[1] @@ -5317,13 +5627,22 @@ b#281 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -5332,26 +5651,94 @@ b#281 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression -b#282 = (???*0* | null["updateQueue"] | ???*1* | {"lastEffect": null, "stores": null}) +b#282 = ( + | ???*0* + | null["updateQueue"] + | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["updateQueue"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["updateQueue"] + | {"lastEffect": null, "stores": null} +) - *0* arguments[1] ⚠️ function calls are not analysed yet - *1* ???*2*["updateQueue"] ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation b#283 = ???*0* - *0* arguments[1] @@ -5474,13 +5861,22 @@ b#307 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -5489,18 +5885,49 @@ b#307 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression b#309 = ???*0* - *0* max number of linking steps reached @@ -5519,13 +5946,22 @@ b#312 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -5534,24 +5970,104 @@ b#312 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression -b#313 = (undefined["memoizedState"] | null["memoizedState"] | ???*0* | null | ???*2*) +b#313 = ( + | undefined["memoizedState"] + | null["memoizedState"] + | ???*0* + | null + | ???*2* + | null["memoizedState"]["memoizedState"] + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"]["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"]["memoizedState"] + | null["alternate"]["memoizedState"] + | (null !== (null | ???*17* | ???*18*))["alternate"]["memoizedState"] + | (null !== (null["next"] | ???*19*))["alternate"]["memoizedState"] + | null["next"]["memoizedState"] +) - *0* ???*1*["memoizedState"] ⚠️ unknown object - *1* unsupported expression - *2* unknown mutation +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression b#314 = ( | undefined @@ -5560,13 +6076,22 @@ b#314 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -5575,24 +6100,104 @@ b#314 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression -b#315 = (undefined["memoizedState"] | null["memoizedState"] | ???*0* | null | ???*2*) +b#315 = ( + | undefined["memoizedState"] + | null["memoizedState"] + | ???*0* + | null + | ???*2* + | null["memoizedState"]["memoizedState"] + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"]["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"]["memoizedState"] + | null["alternate"]["memoizedState"] + | (null !== (null | ???*17* | ???*18*))["alternate"]["memoizedState"] + | (null !== (null["next"] | ???*19*))["alternate"]["memoizedState"] + | null["next"]["memoizedState"] +) - *0* ???*1*["memoizedState"] ⚠️ unknown object - *1* unsupported expression - *2* unknown mutation +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression b#316 = ???*0* - *0* arguments[1] @@ -5744,18 +6349,33 @@ b#349 = ???*0* b#35 = ( | ???*0* + | null["displayName"]["render"] + | null["name"]["render"] | ""["render"] + | `ForwardRef(${???*2*})`["render"] | "ForwardRef"["render"] + | null["displayName"]["displayName"] + | null["name"]["displayName"] | ""["displayName"] + | `ForwardRef(${???*3*})`["displayName"] | "ForwardRef"["displayName"] | null + | null["displayName"]["_payload"] + | null["name"]["_payload"] | ""["_payload"] + | `ForwardRef(${???*4*})`["_payload"] | "ForwardRef"["_payload"] ) - *0* ???*1*["render"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet +- *2* a + ⚠️ circular variable reference +- *3* a + ⚠️ circular variable reference +- *4* a + ⚠️ circular variable reference b#350 = ???*0* - *0* arguments[1] @@ -6023,13 +6643,7 @@ b#424 = ???*0* - *0* arguments[1] ⚠️ function calls are not analysed yet -b#425 = ???*0* -- *0* ???*1*["transition"] - ⚠️ unknown object -- *1* ???*2*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *2* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +b#425 = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"]["transition"] b#428 = ( | ???*0* @@ -6052,21 +6666,21 @@ ${???*7*}` } | 1 | {"eventTime": ???*9*, "lane": ???*10*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*11*() - | ???*12* + | module["unstable_now"]() + | ???*11* ), "stack": ( | "" | ` -Error generating stack: ${???*13*} -${???*15*}` +Error generating stack: ${???*12*} +${???*14*}` ), "digest": null } | 1 - | {"eventTime": ???*17*, "lane": ???*18*, "tag": 0, "payload": null, "callback": null, "next": null} - | ???*19*() - | ???*20* + | {"eventTime": ???*16*, "lane": ???*17*, "tag": 0, "payload": null, "callback": null, "next": null} + | module["unstable_now"]() + | ???*18* ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -6089,29 +6703,27 @@ ${???*15*}` - *9* unsupported expression - *10* c ⚠️ circular variable reference -- *11* module["unstable_now"] - ⚠️ nested operation -- *12* unsupported expression -- *13* ???*14*["message"] +- *11* unsupported expression +- *12* ???*13*["message"] ⚠️ unknown object -- *14* f +- *13* f ⚠️ pattern without value -- *15* ???*16*["stack"] +- *14* ???*15*["stack"] ⚠️ unknown object -- *16* f +- *15* f ⚠️ pattern without value -- *17* unsupported expression -- *18* c +- *16* unsupported expression +- *17* c ⚠️ circular variable reference -- *19* module["unstable_now"] - ⚠️ nested operation -- *20* unsupported expression +- *18* unsupported expression b#429 = ( | ???*0* | undefined | null | ???*1* + | undefined["alternate"]["stateNode"] + | null["alternate"]["stateNode"] | undefined["stateNode"] | null["stateNode"] | undefined["return"] @@ -6126,12 +6738,10 @@ b#429 = ( - *3* arguments[1] ⚠️ function calls are not analysed yet -b#430 = (???*0* | undefined | ???*1*() | ???*2*) +b#430 = (???*0* | undefined | module["unstable_now"]() | ???*1*) - *0* arguments[1] ⚠️ function calls are not analysed yet -- *1* module["unstable_now"] - ⚠️ nested operation -- *2* unsupported expression +- *1* unsupported expression b#431 = (???*0* | 1 | 4194304) - *0* arguments[1] @@ -6226,23 +6836,23 @@ b#451 = ( | ???*0* | undefined | { - "eventTime": (undefined | ???*1*() | ???*2*), + "eventTime": (undefined | module["unstable_now"]() | ???*1*), "lane": ( | undefined | 1 - | ???*3* + | ???*2* | 0 | 64 - | ???*4* + | ???*3* | undefined["current"] + | ???*5* | ???*6* | ???*7* - | ???*8* | 4 | 16 | 536870912 | null - | ???*9* + | ???*8* ), "tag": 0, "payload": null, @@ -6252,20 +6862,18 @@ b#451 = ( ) - *0* arguments[1] ⚠️ function calls are not analysed yet -- *1* module["unstable_now"] - ⚠️ nested operation +- *1* unsupported expression - *2* unsupported expression -- *3* unsupported expression -- *4* ???*5*["current"] +- *3* ???*4*["current"] ⚠️ unknown object -- *5* arguments[1] +- *4* arguments[1] ⚠️ function calls are not analysed yet -- *6* FreeVar(undefined) +- *5* FreeVar(undefined) ⚠️ unknown global -- *7* unknown mutation -- *8* C +- *6* unknown mutation +- *7* C ⚠️ circular variable reference -- *9* arguments[0] +- *8* arguments[0] ⚠️ function calls are not analysed yet b#453 = ???*0* @@ -6428,7 +7036,7 @@ b#52 = ???*0* b#53 = (???*0* | {} | null | ???*1*) - *0* arguments[1] ⚠️ function calls are not analysed yet -- *1* ???*2*[(0 | ???*3* | ???*10* | ???*18*)] +- *1* ???*2*[(0 | ???*3* | ???*10* | null["hasOwnProperty"](???*18*))] ⚠️ unknown object - *2* arguments[0] ⚠️ function calls are not analysed yet @@ -6461,16 +7069,18 @@ b#53 = (???*0* | {} | null | ???*1*) ⚠️ function calls are not analysed yet - *17* c ⚠️ circular variable reference -- *18* ???*19*(???*20*) - ⚠️ unknown callee -- *19* null["hasOwnProperty"] - ⚠️ nested operation -- *20* `$${???*21*}` +- *18* `$${???*19*}` ⚠️ nested operation -- *21* ???*22*["value"] +- *19* ???*20*["value"] ⚠️ unknown object -- *22* ???[(??? | 0 | undefined | ??? | "")] +- *20* ???*21*[(???*22* | 0 | undefined | ???*23* | "")] ⚠️ unknown object +- *21* arguments[0] + ⚠️ function calls are not analysed yet +- *22* arguments[2] + ⚠️ function calls are not analysed yet +- *23* c + ⚠️ circular variable reference b#54 = ???*0* - *0* arguments[1] @@ -6575,34 +7185,56 @@ b#71 = ( | undefined["stateNode"] | null["stateNode"] | undefined - | undefined[???*2*] - | null[???*7*] + | undefined["stateNode"][`__reactProps$${???*2*}`] + | null["stateNode"][`__reactProps$${???*7*}`] + | undefined[`__reactProps$${???*12*}`] + | null[`__reactProps$${???*17*}`] | null ) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* `__reactProps$${???*3*}` +- *2* ???*3*["slice"](2) + ⚠️ unknown callee object +- *3* ???*4*(36) + ⚠️ unknown callee +- *4* ???*5*["toString"] + ⚠️ unknown object +- *5* ???*6*() ⚠️ nested operation -- *3* ???*4*["slice"](2) +- *6* ???["random"] + ⚠️ unknown object +- *7* ???*8*["slice"](2) ⚠️ unknown callee object -- *4* ???*5*(36) +- *8* ???*9*(36) ⚠️ unknown callee -- *5* ???*6*["toString"] +- *9* ???*10*["toString"] ⚠️ unknown object -- *6* ???() +- *10* ???*11*() ⚠️ nested operation -- *7* `__reactProps$${???*8*}` +- *11* ???["random"] + ⚠️ unknown object +- *12* ???*13*["slice"](2) + ⚠️ unknown callee object +- *13* ???*14*(36) + ⚠️ unknown callee +- *14* ???*15*["toString"] + ⚠️ unknown object +- *15* ???*16*() ⚠️ nested operation -- *8* ???*9*["slice"](2) +- *16* ???["random"] + ⚠️ unknown object +- *17* ???*18*["slice"](2) ⚠️ unknown callee object -- *9* ???*10*(36) +- *18* ???*19*(36) ⚠️ unknown callee -- *10* ???*11*["toString"] +- *19* ???*20*["toString"] ⚠️ unknown object -- *11* ???() +- *20* ???*21*() ⚠️ nested operation +- *21* ???["random"] + ⚠️ unknown object b#73 = (null | [???*0*] | ???*1*) - *0* arguments[0] @@ -6787,7 +7419,14 @@ c#114 = ???*0* c#115 = ???*0* - *0* max number of linking steps reached -c#117 = (null["length"] | ???*0*) +c#117 = ( + | null["length"] + | ???*0* + | null["value"]["length"] + | undefined["value"]["length"] + | null["textContent"]["length"] + | undefined["textContent"]["length"] +) - *0* ???*1*["length"] ⚠️ unknown object - *1* unsupported expression @@ -6816,14 +7455,17 @@ c#152 = ( | ???*0* | 0 | ???*1* - | (???*2* + ???*3*) - | ???*5* + | (???*2* + (undefined["textContent"]["length"] | ???*3*)) + | ???*6* | undefined["nextSibling"] | 0["nextSibling"] + | (???*8* + ???*9*)["nextSibling"] | undefined["parentNode"] | 0["parentNode"] - | ???*7* - | ???*8* + | (???*12* + ???*13*)["parentNode"] + | ???*16* + | (???*17* + ???*18*) + | ???*21* ) - *0* arguments[0] ⚠️ function calls are not analysed yet @@ -6833,14 +7475,40 @@ c#152 = ( ⚠️ circular variable reference - *3* ???*4*["length"] ⚠️ unknown object -- *4* undefined["textContent"] - ⚠️ nested operation -- *5* ???*6*["firstChild"] +- *4* ???*5*["textContent"] ⚠️ unknown object -- *6* a +- *5* a ⚠️ circular variable reference -- *7* unsupported expression -- *8* c +- *6* ???*7*["firstChild"] + ⚠️ unknown object +- *7* a + ⚠️ circular variable reference +- *8* a + ⚠️ circular variable reference +- *9* ???*10*["length"] + ⚠️ unknown object +- *10* ???*11*["textContent"] + ⚠️ unknown object +- *11* c + ⚠️ circular variable reference +- *12* a + ⚠️ circular variable reference +- *13* ???*14*["length"] + ⚠️ unknown object +- *14* ???*15*["textContent"] + ⚠️ unknown object +- *15* c + ⚠️ circular variable reference +- *16* unsupported expression +- *17* a + ⚠️ circular variable reference +- *18* ???*19*["length"] + ⚠️ unknown object +- *19* ???*20*["textContent"] + ⚠️ unknown object +- *20* c + ⚠️ circular variable reference +- *21* c ⚠️ circular variable reference c#154 = (("string" === ???*0*) | false) @@ -6876,65 +7544,99 @@ c#165 = ???*0* - *0* arguments[2] ⚠️ function calls are not analysed yet -c#168 = (???*0* | ???*1* | ???*16*) +c#168 = ( + | ???*0* + | (...) => undefined["bind"](null, ???*1*, (???*2* | ???*3* | ???*7*), ???*12*) + | ???*13* + | true["bind"](null, ???*29*, (???*30* | ???*31* | ???*35*), ???*40*) +) - *0* arguments[2] ⚠️ function calls are not analysed yet -- *1* ???*2*(null, ???*3*, (???*4* | ???*5* | ???*10*), ???*15*) - ⚠️ unknown callee -- *2* (...) => undefined["bind"] - ⚠️ nested operation -- *3* arguments[1] +- *1* arguments[1] ⚠️ function calls are not analysed yet -- *4* arguments[2] +- *2* arguments[2] ⚠️ function calls are not analysed yet -- *5* ???*6*(null, ???*7*, ???*8*, ???*9*) - ⚠️ unknown callee -- *6* (...) => undefined["bind"] +- *3* (...) => undefined["bind"](null, ???*4*, ???*5*, ???*6*) ⚠️ nested operation -- *7* arguments[1] +- *4* arguments[1] ⚠️ function calls are not analysed yet -- *8* c +- *5* c ⚠️ circular variable reference -- *9* arguments[0] +- *6* arguments[0] ⚠️ function calls are not analysed yet -- *10* ???*11*["bind"](null, ???*12*, ???*13*, ???*14*) +- *7* ???*8*["bind"](null, ???*9*, ???*10*, ???*11*) ⚠️ unknown callee object -- *11* unsupported expression -- *12* arguments[1] +- *8* unsupported expression +- *9* arguments[1] ⚠️ function calls are not analysed yet -- *13* c +- *10* c ⚠️ circular variable reference -- *14* arguments[0] +- *11* arguments[0] ⚠️ function calls are not analysed yet -- *15* arguments[0] +- *12* arguments[0] ⚠️ function calls are not analysed yet -- *16* ???*17*["bind"](null, ???*18*, (???*19* | ???*20* | ???*25*), ???*30*) +- *13* ???*14*["bind"]( + null, + ???*15*, + ( + | ???*16* + | (...) => undefined["bind"](null, ???*17*, ???*18*, ???*19*) + | ???*20* + | true["bind"](null, ???*25*, ???*26*, ???*27*) + ), + ???*28* + ) ⚠️ unknown callee object -- *17* unsupported expression -- *18* arguments[1] +- *14* unsupported expression +- *15* arguments[1] + ⚠️ function calls are not analysed yet +- *16* arguments[2] + ⚠️ function calls are not analysed yet +- *17* arguments[1] + ⚠️ function calls are not analysed yet +- *18* c + ⚠️ circular variable reference +- *19* arguments[0] + ⚠️ function calls are not analysed yet +- *20* ???*21*["bind"](null, ???*22*, ???*23*, ???*24*) + ⚠️ unknown callee object +- *21* unsupported expression +- *22* arguments[1] + ⚠️ function calls are not analysed yet +- *23* c + ⚠️ circular variable reference +- *24* arguments[0] + ⚠️ function calls are not analysed yet +- *25* arguments[1] + ⚠️ function calls are not analysed yet +- *26* c + ⚠️ circular variable reference +- *27* arguments[0] + ⚠️ function calls are not analysed yet +- *28* arguments[0] ⚠️ function calls are not analysed yet -- *19* arguments[2] +- *29* arguments[1] ⚠️ function calls are not analysed yet -- *20* ???*21*(null, ???*22*, ???*23*, ???*24*) - ⚠️ unknown callee -- *21* (...) => undefined["bind"] +- *30* arguments[2] + ⚠️ function calls are not analysed yet +- *31* (...) => undefined["bind"](null, ???*32*, ???*33*, ???*34*) ⚠️ nested operation -- *22* arguments[1] +- *32* arguments[1] ⚠️ function calls are not analysed yet -- *23* c +- *33* c ⚠️ circular variable reference -- *24* arguments[0] +- *34* arguments[0] ⚠️ function calls are not analysed yet -- *25* ???*26*["bind"](null, ???*27*, ???*28*, ???*29*) +- *35* ???*36*["bind"](null, ???*37*, ???*38*, ???*39*) ⚠️ unknown callee object -- *26* unsupported expression -- *27* arguments[1] +- *36* unsupported expression +- *37* arguments[1] ⚠️ function calls are not analysed yet -- *28* c +- *38* c ⚠️ circular variable reference -- *29* arguments[0] +- *39* arguments[0] ⚠️ function calls are not analysed yet -- *30* arguments[0] +- *40* arguments[0] ⚠️ function calls are not analysed yet c#169 = ???*0* @@ -7100,10 +7802,8 @@ c#231 = ???*0* - *0* arguments[2] ⚠️ function calls are not analysed yet -c#232 = (undefined | ???*0*() | ???*1*) -- *0* module["unstable_now"] - ⚠️ nested operation -- *1* unsupported expression +c#232 = (undefined | module["unstable_now"]() | ???*0*) +- *0* unsupported expression c#233 = ???*0* - *0* arguments[2] @@ -7199,17 +7899,115 @@ c#267 = ???*0* - *0* arguments[2] ⚠️ function calls are not analysed yet -c#272 = (undefined["queue"] | null["queue"] | ???*0* | null | ???*2*) +c#272 = ( + | undefined["queue"] + | null["queue"] + | ???*0* + | null + | ???*2* + | null["memoizedState"]["queue"] + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"]["queue"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"]["queue"] + | null["alternate"]["queue"] + | (null !== (null | ???*17* | ???*18*))["alternate"]["queue"] + | (null !== (null["next"] | ???*19*))["alternate"]["queue"] + | null["next"]["queue"] +) - *0* ???*1*["queue"] ⚠️ unknown object - *1* unsupported expression - *2* unknown mutation +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression -c#273 = (undefined["queue"] | null["queue"] | ???*0* | null | ???*2*) +c#273 = ( + | undefined["queue"] + | null["queue"] + | ???*0* + | null + | ???*2* + | null["memoizedState"]["queue"] + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"]["queue"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"]["queue"] + | null["alternate"]["queue"] + | (null !== (null | ???*17* | ???*18*))["alternate"]["queue"] + | (null !== (null["next"] | ???*19*))["alternate"]["queue"] + | null["next"]["queue"] +) - *0* ???*1*["queue"] ⚠️ unknown object - *1* unsupported expression - *2* unknown mutation +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression c#274 = ( | null @@ -7220,7 +8018,7 @@ c#274 = ( | ???*2* | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*12* | ???*13* | null | ???*15*)) + | (null !== (null["next"] | ???*12* | null | ???*14*)) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -7245,21 +8043,57 @@ c#274 = ( ⚠️ unknown object - *11* O ⚠️ circular variable reference -- *12* null["next"] - ⚠️ nested operation -- *13* ???*14*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *14* unsupported expression -- *15* unknown mutation +- *13* unsupported expression +- *14* unknown mutation -c#275 = (???*0* | ???*1* | null | ???*3*) +c#275 = ( + | ???*0* + | ???*1* + | null["updateQueue"]["stores"] + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["updateQueue"]["stores"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["updateQueue"]["stores"] + | null + | ???*17* +) - *0* arguments[2] ⚠️ function calls are not analysed yet - *1* ???*2*["stores"] ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* unknown mutation +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unknown mutation c#276 = ???*0* - *0* arguments[2] @@ -7279,14 +8113,52 @@ c#28 = ???*0* - *0* c ⚠️ pattern without value -c#282 = (???*0* | ???*1* | null | ???*3*) +c#282 = ( + | ???*0* + | ???*1* + | null["updateQueue"]["lastEffect"] + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["updateQueue"]["lastEffect"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["updateQueue"]["lastEffect"] + | null + | ???*17* +) - *0* arguments[2] ⚠️ function calls are not analysed yet - *1* ???*2*["lastEffect"] ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* unknown mutation +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unknown mutation c#283 = ???*0* - *0* arguments[2] @@ -7302,7 +8174,7 @@ c#29 = ???*0* - *1* FreeVar(Error) ⚠️ unknown global -c#290 = (???*0* | ???*1* | ???*4* | null) +c#290 = (???*0* | ???*1* | null["concat"]([???*4*]) | null) - *0* arguments[2] ⚠️ function calls are not analysed yet - *1* ???*2*["concat"]([???*3*]) @@ -7311,11 +8183,7 @@ c#290 = (???*0* | ???*1* | ???*4* | null) ⚠️ function calls are not analysed yet - *3* arguments[0] ⚠️ function calls are not analysed yet -- *4* ???*5*([???*6*]) - ⚠️ unknown callee -- *5* null["concat"] - ⚠️ nested operation -- *6* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet c#291 = ( @@ -7325,13 +8193,22 @@ c#291 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -7340,18 +8217,49 @@ c#291 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression c#292 = ( | undefined @@ -7360,13 +8268,22 @@ c#292 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -7375,18 +8292,49 @@ c#292 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression c#293 = (???*0* | undefined | 64) - *0* arguments[2] @@ -7427,7 +8375,7 @@ c#300 = ???*0* - *0* arguments[2] ⚠️ function calls are not analysed yet -c#302 = (???*0* | ???*1* | ???*4* | null) +c#302 = (???*0* | ???*1* | null["concat"]([???*4*]) | null) - *0* arguments[2] ⚠️ function calls are not analysed yet - *1* ???*2*["concat"]([???*3*]) @@ -7436,11 +8384,7 @@ c#302 = (???*0* | ???*1* | ???*4* | null) ⚠️ function calls are not analysed yet - *3* arguments[0] ⚠️ function calls are not analysed yet -- *4* ???*5*([???*6*]) - ⚠️ unknown callee -- *5* null["concat"] - ⚠️ nested operation -- *6* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet c#305 = ( @@ -7450,13 +8394,22 @@ c#305 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -7465,18 +8418,49 @@ c#305 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression c#306 = ???*0* - *0* arguments[2] @@ -7584,8 +8568,8 @@ c#328 = (???*0* | ???*1* | undefined["render"] | false["render"] | undefined | f c#329 = ( | ???*0* | ???*1* - | (...) => (undefined | ???*3* | ???*4*)["compare"] - | ???*5* + | (...) => (undefined | !(0) | !(1))["compare"] + | ???*3* | (...) => (undefined | !(0) | !(1)) | (...) => (undefined | !(0) | !(1)) ) @@ -7595,11 +8579,7 @@ c#329 = ( ⚠️ unknown object - *2* arguments[2] ⚠️ function calls are not analysed yet -- *3* !(0) - ⚠️ nested operation -- *4* !(1) - ⚠️ nested operation -- *5* c +- *3* c ⚠️ circular variable reference c#330 = ???*0* @@ -7664,7 +8644,18 @@ c#344 = ???*0* - *0* arguments[2] ⚠️ function calls are not analysed yet -c#345 = (???*0* | ???*1* | null["sibling"] | 0["revealOrder"] | null | ???*3* | null["alternate"]) +c#345 = ( + | ???*0* + | ???*1* + | undefined["current"]["revealOrder"]["sibling"] + | 0["revealOrder"]["sibling"] + | null["sibling"] + | undefined["current"]["revealOrder"] + | 0["revealOrder"] + | null + | ???*3* + | null["alternate"] +) - *0* arguments[2] ⚠️ function calls are not analysed yet - *1* ???*2*["child"] @@ -7846,52 +8837,43 @@ c#404 = ( | module["unstable_NormalPriority"] | module["unstable_IdlePriority"] | undefined - | ???*2* + | module["unstable_scheduleCallback"]( + ( + | ???*2* + | null + | module["unstable_ImmediatePriority"] + | module["unstable_UserBlockingPriority"] + | module["unstable_NormalPriority"] + | module["unstable_IdlePriority"] + | undefined + | ???*4* + ), + ???*9* + ) ) - *0* ???*1*["callbackNode"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* ???*3*( - (???*4* | null | ???*6* | ???*7* | ???*8* | ???*9* | undefined | ???*10*), - ???*17* - ) - ⚠️ unknown callee -- *3* module["unstable_scheduleCallback"] - ⚠️ nested operation -- *4* ???*5*["callbackNode"] - ⚠️ unknown object -- *5* arguments[0] - ⚠️ function calls are not analysed yet -- *6* module["unstable_ImmediatePriority"] - ⚠️ nested operation -- *7* module["unstable_UserBlockingPriority"] - ⚠️ nested operation -- *8* module["unstable_NormalPriority"] - ⚠️ nested operation -- *9* module["unstable_IdlePriority"] - ⚠️ nested operation -- *10* ???*11*(???*12*, ???*13*) - ⚠️ unknown callee -- *11* module["unstable_scheduleCallback"] +- *2* ???*3*["callbackNode"] + ⚠️ unknown object +- *3* arguments[0] + ⚠️ function calls are not analysed yet +- *4* module["unstable_scheduleCallback"](???*5*, ???*6*) ⚠️ nested operation -- *12* c +- *5* c ⚠️ circular variable reference -- *13* ???*14*(null, ???*16*) - ⚠️ unknown callee -- *14* (...) => (undefined | null | ???*15*)["bind"] +- *6* (...) => (undefined | null | ???*7*)["bind"](null, ???*8*) ⚠️ nested operation -- *15* Hk["bind"](null, a) +- *7* Hk["bind"](null, a) ⚠️ nested operation -- *16* arguments[0] +- *8* arguments[0] ⚠️ function calls are not analysed yet -- *17* ???*18*(null, ???*20*) - ⚠️ unknown callee -- *18* (...) => (undefined | null | ???*19*)["bind"] +- *9* (...) => (undefined | null | ???*10*)["bind"](null, ???*11*) ⚠️ nested operation -- *19* Hk["bind"](null, a) +- *10* Hk["bind"](null, a) ⚠️ nested operation -- *20* arguments[0] +- *11* arguments[0] ⚠️ function calls are not analysed yet c#405 = ???*0* @@ -7915,13 +8897,7 @@ c#412 = ???*0* c#413 = ???*0* - *0* max number of linking steps reached -c#414 = ???*0* -- *0* ???*1*["transition"] - ⚠️ unknown object -- *1* ???*2*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *2* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +c#414 = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"]["transition"] c#415 = ???*0* - *0* max number of linking steps reached @@ -7969,10 +8945,8 @@ c#430 = ???*0* - *0* arguments[2] ⚠️ function calls are not analysed yet -c#431 = (undefined | ???*0*() | ???*1*) -- *0* module["unstable_now"] - ⚠️ nested operation -- *1* unsupported expression +c#431 = (undefined | module["unstable_now"]() | ???*0*) +- *0* unsupported expression c#432 = (0 | ???*0*) - *0* ???*1*["retryLane"] @@ -8011,7 +8985,12 @@ c#437 = ???*0* - *0* arguments[2] ⚠️ function calls are not analysed yet -c#44 = ???*0*() +c#44 = ( + | ???*0*() + | ""["_valueTracker"]["getValue"]() + | "true"["_valueTracker"]["getValue"]() + | "false"["_valueTracker"]["getValue"]() +) - *0* ???*1*["getValue"] ⚠️ unknown object - *1* ???*2*["_valueTracker"] @@ -8127,10 +9106,8 @@ c#468 = ( - *3* arguments[0] ⚠️ function calls are not analysed yet -c#469 = (undefined | ???*0*() | ???*1*) -- *0* module["unstable_now"] - ⚠️ nested operation -- *1* unsupported expression +c#469 = (undefined | module["unstable_now"]() | ???*0*) +- *0* unsupported expression c#47 = ???*0* - *0* ???*1*["checked"] @@ -8138,10 +9115,8 @@ c#47 = ???*0* - *1* arguments[1] ⚠️ function calls are not analysed yet -c#470 = (undefined | ???*0*() | ???*1*) -- *0* module["unstable_now"] - ⚠️ nested operation -- *1* unsupported expression +c#470 = (undefined | module["unstable_now"]() | ???*0*) +- *0* unsupported expression c#471 = (undefined | ???*0* | null) - *0* ???*1*["stateNode"] @@ -8197,22 +9172,26 @@ c#480 = ???*0* - *0* arguments[2] ⚠️ function calls are not analysed yet -c#481 = (???*0* | ???*1* | null[(???*7* | 0)]) +c#481 = (???*0* | (null != (???*1* | ???*2*))[(???*4* | 0)] | ???*5* | null[(???*9* | 0)]) - *0* arguments[2] ⚠️ function calls are not analysed yet -- *1* ???*2*[(???*6* | 0)] - ⚠️ unknown object -- *2* (null != (???*3* | ???*4*)) - ⚠️ nested operation -- *3* arguments[2] +- *1* arguments[2] ⚠️ function calls are not analysed yet -- *4* ???*5*[a] +- *2* ???*3*[a] ⚠️ unknown object -- *5* d +- *3* d ⚠️ circular variable reference -- *6* arguments[0] +- *4* arguments[0] ⚠️ function calls are not analysed yet -- *7* arguments[0] +- *5* ???*6*[(???*8* | 0)] + ⚠️ unknown object +- *6* ???*7*["hydratedSources"] + ⚠️ unknown object +- *7* arguments[2] + ⚠️ function calls are not analysed yet +- *8* arguments[0] + ⚠️ function calls are not analysed yet +- *9* arguments[0] ⚠️ function calls are not analysed yet c#482 = ???*0* @@ -8247,7 +9226,17 @@ c#53 = (???*0* | 0 | undefined | ???*1* | "") - *1* c ⚠️ circular variable reference -c#55 = (???*0* | ""["value"] | ""["children"] | ""[0] | ???*2* | ???*3* | "") +c#55 = ( + | ???*0* + | ""["value"] + | ""["children"] + | ""["value"][0] + | ""["children"][0] + | ""[0] + | ???*2* + | ???*3* + | "" +) - *0* ???*1*["value"] ⚠️ unknown object - *1* arguments[1] @@ -8291,14 +9280,82 @@ c#75 = ???*0* - *0* arguments[2] ⚠️ function calls are not analysed yet -c#76 = (???*0* | false["stateNode"] | undefined[???*2*] | null[???*3*]) +c#76 = ( + | ???*0* + | !((undefined | ???*2* | null | ???*5*))["stateNode"] + | false["stateNode"] + | undefined[???*8*] + | !(???*9*)["stateNode"][`__reactProps$${???*10*}`][???*15*] + | false["stateNode"][`__reactProps$${???*16*}`][???*21*] + | null[???*22*] + | !(???*23*)[???*25*] + | !(???*26*)[???*32*] +) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* arguments[1] +- *2* ???*3*[Pf] + ⚠️ unknown object +- *3* ???*4*["stateNode"] + ⚠️ unknown object +- *4* a + ⚠️ circular variable reference +- *5* !(???*6*) + ⚠️ nested operation +- *6* ???*7*["disabled"] + ⚠️ unknown object +- *7* d + ⚠️ circular variable reference +- *8* arguments[1] ⚠️ function calls are not analysed yet -- *3* arguments[1] +- *9* d + ⚠️ circular variable reference +- *10* ???*11*["slice"](2) + ⚠️ unknown callee object +- *11* ???*12*(36) + ⚠️ unknown callee +- *12* ???*13*["toString"] + ⚠️ unknown object +- *13* ???*14*() + ⚠️ nested operation +- *14* ???["random"] + ⚠️ unknown object +- *15* arguments[1] + ⚠️ function calls are not analysed yet +- *16* ???*17*["slice"](2) + ⚠️ unknown callee object +- *17* ???*18*(36) + ⚠️ unknown callee +- *18* ???*19*["toString"] + ⚠️ unknown object +- *19* ???*20*() + ⚠️ nested operation +- *20* ???["random"] + ⚠️ unknown object +- *21* arguments[1] + ⚠️ function calls are not analysed yet +- *22* arguments[1] + ⚠️ function calls are not analysed yet +- *23* ???*24*["disabled"] + ⚠️ unknown object +- *24* d + ⚠️ circular variable reference +- *25* arguments[1] + ⚠️ function calls are not analysed yet +- *26* ("button" === (???*27* | ???*28* | ???*30* | false)) + ⚠️ nested operation +- *27* arguments[0] + ⚠️ function calls are not analysed yet +- *28* ???*29*["type"] + ⚠️ unknown object +- *29* a + ⚠️ circular variable reference +- *30* !(???*31*) + ⚠️ nested operation +- *31* d + ⚠️ circular variable reference +- *32* arguments[1] ⚠️ function calls are not analysed yet c#78 = ???*0* @@ -8327,7 +9384,19 @@ c#83 = (???*0* | ???*1* | ???*2*) - *3* b ⚠️ circular variable reference -c#86 = (???*0* | ???*1* | undefined | ???*3* | null | undefined["return"] | null["return"]) +c#86 = ( + | ???*0* + | ???*1* + | undefined + | ???*3* + | null + | undefined["return"] + | null["return"] + | undefined["return"]["alternate"] + | null["return"]["alternate"] + | undefined["return"]["child"] + | null["return"]["child"] +) - *0* arguments[0] ⚠️ function calls are not analysed yet - *1* ???*2*["alternate"] @@ -8366,11 +9435,7 @@ cb = (...) => undefined cc = module["unstable_shouldYield"] -cd = ???*0* -- *0* ???*1*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *1* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +cd = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"] ce = (!(???*0*) | ???*2* | !((null | ???*3*))) - *0* ("undefined" === ???*1*) @@ -8465,25 +9530,35 @@ d#150 = (???*0* | 0) - *1* FreeVar(Object) ⚠️ unknown global -d#152 = (???*0* | ((???*1* | 0 | ???*2* | ???*3*) + ???*7*)) +d#152 = ( + | ???*0* + | ( + + (???*1* | 0 | ???*2* | ???*3*) + + (undefined["textContent"]["length"] | ???*8* | 0["textContent"]["length"]) + ) +) - *0* d ⚠️ pattern without value - *1* arguments[0] ⚠️ function calls are not analysed yet - *2* d ⚠️ pattern without value -- *3* (???*4* + ???*5*) +- *3* (???*4* + (undefined["textContent"]["length"] | ???*5*)) ⚠️ nested operation - *4* a ⚠️ circular variable reference - *5* ???*6*["length"] ⚠️ unknown object -- *6* undefined["textContent"] - ⚠️ nested operation -- *7* ???*8*["length"] +- *6* ???*7*["textContent"] ⚠️ unknown object -- *8* undefined["textContent"] - ⚠️ nested operation +- *7* a + ⚠️ circular variable reference +- *8* ???*9*["length"] + ⚠️ unknown object +- *9* ???*10*["textContent"] + ⚠️ unknown object +- *10* arguments[0] + ⚠️ function calls are not analysed yet d#155 = ???*0* - *0* d @@ -8501,7 +9576,7 @@ d#162 = (???*0* | "unknown-event") - *1* arguments[0] ⚠️ function calls are not analysed yet -d#163 = (???*0* | null[0]) +d#163 = (???*0* | null[0] | null[0]["listeners"]) - *0* ???*1*[0] ⚠️ unknown object - *1* arguments[0] @@ -8555,7 +9630,7 @@ d#193 = (???*0* | ???*2*()) - *4* arguments[0] ⚠️ function calls are not analysed yet -d#195 = (???*0* | undefined["stateNode"] | ???*2* | ???*3*) +d#195 = (???*0* | undefined["stateNode"] | ???*2* | ???*3* | undefined["current"]["stateNode"]) - *0* ???*1*["stateNode"] ⚠️ unknown object - *1* arguments[0] @@ -8618,7 +9693,7 @@ d#224 = ???*0* - *1* arguments[1] ⚠️ function calls are not analysed yet -d#225 = (???*0* | null["alternate"] | ???*2* | ???*3*) +d#225 = (???*0* | null["alternate"] | ???*2* | ???*3* | null["alternate"]["updateQueue"]) - *0* ???*1*["alternate"] ⚠️ unknown object - *1* arguments[0] @@ -8631,29 +9706,27 @@ d#226 = ???*0* - *0* arguments[3] ⚠️ function calls are not analysed yet -d#227 = (???*0* | ???*3*) +d#227 = (???*0* | 0["effects"][(???*3* | 0)] | ???*4*) - *0* ???*1*[(???*2* | 0)] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* arguments[2] +- *3* arguments[1] + ⚠️ function calls are not analysed yet +- *4* arguments[2] ⚠️ function calls are not analysed yet d#228 = ???*0* - *0* arguments[3] ⚠️ function calls are not analysed yet -d#230 = (undefined | ???*0*() | ???*1*) -- *0* module["unstable_now"] - ⚠️ nested operation -- *1* unsupported expression +d#230 = (undefined | module["unstable_now"]() | ???*0*) +- *0* unsupported expression -d#231 = (undefined | ???*0*() | ???*1*) -- *0* module["unstable_now"] - ⚠️ nested operation -- *1* unsupported expression +d#231 = (undefined | module["unstable_now"]() | ???*0*) +- *0* unsupported expression d#232 = (undefined | 1 | ???*0* | 0 | 64 | ???*1* | ???*2* | ???*4* | 4 | 16 | 536870912 | null) - *0* unsupported expression @@ -8783,11 +9856,8 @@ d#267 = ???*0* d#272 = ???*0* - *0* max number of linking steps reached -d#273 = (???*0* | null["dispatch"]) -- *0* ???*1*["dispatch"] - ⚠️ unknown object -- *1* undefined["queue"] - ⚠️ nested operation +d#273 = ???*0* +- *0* max number of linking steps reached d#274 = ???*0* - *0* max number of linking steps reached @@ -8800,13 +9870,50 @@ d#279 = ???*0* - *0* d ⚠️ pattern without value -d#282 = (???*0* | ???*1* | null["next"]) +d#282 = ( + | ???*0* + | ???*1* + | null["updateQueue"]["lastEffect"]["next"] + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["updateQueue"]["lastEffect"]["next"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["updateQueue"]["lastEffect"]["next"] + | null["next"] +) - *0* arguments[3] ⚠️ function calls are not analysed yet - *1* ???*2*["next"] ⚠️ unknown object - *2* arguments[2] ⚠️ function calls are not analysed yet +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation d#283 = ???*0* - *0* arguments[3] @@ -8822,25 +9929,117 @@ d#29 = ???*0* - *0* l ⚠️ pattern without value -d#291 = (undefined["memoizedState"] | null["memoizedState"] | ???*0* | null | ???*2*) +d#291 = ( + | undefined["memoizedState"] + | null["memoizedState"] + | ???*0* + | null + | ???*2* + | null["memoizedState"]["memoizedState"] + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"]["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"]["memoizedState"] + | null["alternate"]["memoizedState"] + | (null !== (null | ???*17* | ???*18*))["alternate"]["memoizedState"] + | (null !== (null["next"] | ???*19*))["alternate"]["memoizedState"] + | null["next"]["memoizedState"] +) - *0* ???*1*["memoizedState"] ⚠️ unknown object - *1* unsupported expression - *2* unknown mutation +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression -d#292 = (undefined["memoizedState"] | null["memoizedState"] | ???*0* | null | ???*2*) +d#292 = ( + | undefined["memoizedState"] + | null["memoizedState"] + | ???*0* + | null + | ???*2* + | null["memoizedState"]["memoizedState"] + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"]["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"]["memoizedState"] + | null["alternate"]["memoizedState"] + | (null !== (null | ???*17* | ???*18*))["alternate"]["memoizedState"] + | (null !== (null["next"] | ???*19*))["alternate"]["memoizedState"] + | null["next"]["memoizedState"] +) - *0* ???*1*["memoizedState"] ⚠️ unknown object - *1* unsupported expression - *2* unknown mutation - -d#294 = ???*0* -- *0* ???*1*["transition"] +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *1* ???*2*["ReactCurrentBatchConfig"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *2* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression + +d#294 = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"]["transition"] d#295 = (undefined | 1 | ???*0* | 0 | 64 | ???*1* | ???*2* | 4 | 16 | 536870912 | null | ???*3*) - *0* unsupported expression @@ -8877,13 +10076,22 @@ d#306 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -8892,18 +10100,49 @@ d#306 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression d#310 = ( | null @@ -8914,7 +10153,7 @@ d#310 = ( | ???*2* | {"memoizedState": ???*4*, "baseState": ???*6*, "baseQueue": ???*8*, "queue": ???*10*, "next": null} )) - | (null !== (???*12* | ???*13* | null | ???*15*)) + | (null !== (null["next"] | ???*12* | null | ???*14*)) ) - *0* arguments[1] ⚠️ function calls are not analysed yet @@ -8939,12 +10178,10 @@ d#310 = ( ⚠️ unknown object - *11* O ⚠️ circular variable reference -- *12* null["next"] - ⚠️ nested operation -- *13* ???*14*["next"] +- *12* ???*13*["next"] ⚠️ unknown object -- *14* unsupported expression -- *15* unknown mutation +- *13* unsupported expression +- *14* unknown mutation d#311 = ???*0* - *0* max number of linking steps reached @@ -8971,12 +10208,22 @@ d#322 = ???*0* - *2* arguments[0] ⚠️ function calls are not analysed yet -d#324 = (???*0* | ???*2*) +d#324 = ( + | ???*0* + | (...) => undefined["bind"](null, ???*2*, ???*3*, ???*4*)["pingCache"] + | ???*5* +) - *0* ???*1*["pingCache"] ⚠️ unknown object - *1* arguments[0] ⚠️ function calls are not analysed yet -- *2* unsupported expression +- *2* a + ⚠️ circular variable reference +- *3* arguments[1] + ⚠️ function calls are not analysed yet +- *4* arguments[2] + ⚠️ function calls are not analysed yet +- *5* unsupported expression d#326 = ???*0* - *0* arguments[3] @@ -9151,14 +10398,10 @@ d#370 = ???*0* d#372 = ???*0* - *0* max number of linking steps reached -d#376 = ???*0* -- *0* ???*1*(null, ???*2*, ???*3*) - ⚠️ unknown callee -- *1* (...) => undefined["bind"] - ⚠️ nested operation -- *2* arguments[0] +d#376 = (...) => undefined["bind"](null, ???*0*, ???*1*) +- *0* arguments[0] ⚠️ function calls are not analysed yet -- *3* arguments[0] +- *1* arguments[0] ⚠️ function calls are not analysed yet d#377 = 0 @@ -9241,11 +10484,85 @@ d#414 = (0 | 1 | ???*0* | 4 | 16 | undefined | 536870912 | null | ???*1* | ???*2 d#415 = ???*0* - *0* max number of linking steps reached -d#416 = (null["memoizedState"] | ???*0*) +d#416 = ( + | null["memoizedState"] + | ???*0* + | (null !== ( + | null + | ???*2* + | ???*3* + | {"memoizedState": ???*5*, "baseState": ???*7*, "baseQueue": ???*9*, "queue": ???*11*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*13* | null | ???*15*))["memoizedState"] + | null["memoizedState"]["next"] + | (null !== ( + | null + | ???*16* + | ???*17* + | { + "memoizedState": ???*19*, + "baseState": ???*21*, + "baseQueue": ???*23*, + "queue": ???*25*, + "next": null + } + ))["memoizedState"]["next"] + | (null !== (null["next"] | ???*27* | null | ???*29*))["memoizedState"]["next"] +) - *0* ???*1*["memoizedState"] ⚠️ unknown object - *1* arguments[1] ⚠️ function calls are not analysed yet +- *2* unsupported expression +- *3* ???*4*["alternate"] + ⚠️ unknown object +- *4* N + ⚠️ circular variable reference +- *5* ???*6*["memoizedState"] + ⚠️ unknown object +- *6* O + ⚠️ circular variable reference +- *7* ???*8*["baseState"] + ⚠️ unknown object +- *8* O + ⚠️ circular variable reference +- *9* ???*10*["baseQueue"] + ⚠️ unknown object +- *10* O + ⚠️ circular variable reference +- *11* ???*12*["queue"] + ⚠️ unknown object +- *12* O + ⚠️ circular variable reference +- *13* ???*14*["next"] + ⚠️ unknown object +- *14* unsupported expression +- *15* unknown mutation +- *16* unsupported expression +- *17* ???*18*["alternate"] + ⚠️ unknown object +- *18* N + ⚠️ circular variable reference +- *19* ???*20*["memoizedState"] + ⚠️ unknown object +- *20* O + ⚠️ circular variable reference +- *21* ???*22*["baseState"] + ⚠️ unknown object +- *22* O + ⚠️ circular variable reference +- *23* ???*24*["baseQueue"] + ⚠️ unknown object +- *24* O + ⚠️ circular variable reference +- *25* ???*26*["queue"] + ⚠️ unknown object +- *26* O + ⚠️ circular variable reference +- *27* ???*28*["next"] + ⚠️ unknown object +- *28* unsupported expression +- *29* unknown mutation d#419 = ( | undefined @@ -9269,14 +10586,8 @@ d#419 = ( "useId": (...) => undefined, "unstable_isNewReconciler": false } - | ???*0* + | module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentDispatcher"]["current"] ) -- *0* ???*1*["current"] - ⚠️ unknown object -- *1* ???*2*["ReactCurrentDispatcher"] - ⚠️ unknown object -- *2* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation d#423 = (0 | 1 | ???*0* | 4 | 16 | undefined | 536870912 | null | ???*1* | ???*2*) - *0* C @@ -9360,12 +10671,10 @@ d#448 = (???*0* | null) - *1* FreeVar(arguments) ⚠️ unknown global -d#450 = (???*0* | undefined | ???*1*() | ???*2*) +d#450 = (???*0* | undefined | module["unstable_now"]() | ???*1*) - *0* arguments[3] ⚠️ function calls are not analysed yet -- *1* module["unstable_now"] - ⚠️ nested operation -- *2* unsupported expression +- *1* unsupported expression d#451 = (???*0* | null | ???*1*) - *0* arguments[3] @@ -9381,10 +10690,8 @@ d#466 = ???*0* - *0* arguments[3] ⚠️ function calls are not analysed yet -d#471 = (undefined | ???*0*() | ???*1*) -- *0* module["unstable_now"] - ⚠️ nested operation -- *1* unsupported expression +d#471 = (undefined | module["unstable_now"]() | ???*0*) +- *0* unsupported expression d#473 = ???*0* - *0* ???*1*[(???*2* | ???*3* | 0)] @@ -9410,7 +10717,13 @@ d#48 = ???*0* - *1* arguments[1] ⚠️ function calls are not analysed yet -d#481 = ((null != (???*0* | ???*1* | ???*5*)) | ???*7* | null) +d#481 = ( + | (null != (???*0* | ???*1* | null[(???*5* | 0)])) + | ???*6* + | (null != ???*8*)[(???*9* | 0)]["hydratedSources"] + | null[(???*10* | 0)]["hydratedSources"] + | null +) - *0* arguments[2] ⚠️ function calls are not analysed yet - *1* ???*2*[(???*4* | 0)] @@ -9421,13 +10734,17 @@ d#481 = ((null != (???*0* | ???*1* | ???*5*)) | ???*7* | null) ⚠️ circular variable reference - *4* arguments[0] ⚠️ function calls are not analysed yet -- *5* null[(???*6* | 0)] - ⚠️ nested operation -- *6* arguments[0] +- *5* arguments[0] ⚠️ function calls are not analysed yet -- *7* ???*8*["hydratedSources"] +- *6* ???*7*["hydratedSources"] ⚠️ unknown object -- *8* arguments[2] +- *7* arguments[2] + ⚠️ function calls are not analysed yet +- *8* c + ⚠️ circular variable reference +- *9* arguments[0] + ⚠️ function calls are not analysed yet +- *10* arguments[0] ⚠️ function calls are not analysed yet d#484 = ???*0* @@ -9465,9 +10782,7 @@ d#67 = (0 === (???*0* | ???*2*)) ⚠️ unknown callee object - *1* c ⚠️ pattern without value -- *2* ???*3*("--") - ⚠️ unknown callee -- *3* "cssFloat"["indexOf"] +- *2* "cssFloat"["indexOf"]("--") ⚠️ nested operation d#7 = ???*0* @@ -9493,7 +10808,21 @@ d#82 = ???*0* - *0* arguments[3] ⚠️ function calls are not analysed yet -d#86 = (???*0* | undefined | ???*2* | ???*3* | null | undefined["return"] | null["return"]) +d#86 = ( + | ???*0* + | undefined + | ???*2* + | ???*3* + | null + | undefined["return"]["return"] + | null["return"]["return"] + | undefined["return"]["alternate"] + | null["return"]["alternate"] + | undefined["return"]["child"] + | null["return"]["child"] + | undefined["return"] + | null["return"] +) - *0* ???*1*["alternate"] ⚠️ unknown object - *1* arguments[0] @@ -9646,7 +10975,7 @@ e#150 = ???*0* e#157 = ???*0* - *0* max number of linking steps reached -e#163 = ???*0* +e#163 = (???*0* | null[0]["event"]) - *0* ???*1*["event"] ⚠️ unknown object - *1* ???*2*[0] @@ -9723,7 +11052,7 @@ e#226 = (???*0* | ???*2*) - *2* arguments[1] ⚠️ function calls are not analysed yet -e#227 = ???*0* +e#227 = (???*0* | 0["effects"][(???*4* | 0)]["callback"]) - *0* ???*1*["callback"] ⚠️ unknown object - *1* ???*2*[(???*3* | 0)] @@ -9732,6 +11061,8 @@ e#227 = ???*0* ⚠️ function calls are not analysed yet - *3* arguments[1] ⚠️ function calls are not analysed yet +- *4* arguments[1] + ⚠️ function calls are not analysed yet e#230 = (undefined | 1 | ???*0* | 0 | 64 | ???*1* | ???*2* | ???*4* | 4 | 16 | 536870912 | null) - *0* unsupported expression @@ -9758,25 +11089,23 @@ e#231 = (undefined | 1 | ???*0* | 0 | 64 | ???*1* | ???*2* | ???*4* | 4 | 16 | 5 e#232 = ( | undefined | { - "eventTime": (undefined | ???*0*() | ???*1*), - "lane": (undefined | 1 | ???*2* | 0 | 64 | ???*3* | ???*4* | ???*6* | 4 | 16 | 536870912 | null), + "eventTime": (undefined | module["unstable_now"]() | ???*0*), + "lane": (undefined | 1 | ???*1* | 0 | 64 | ???*2* | ???*3* | ???*5* | 4 | 16 | 536870912 | null), "tag": 0, "payload": null, "callback": null, "next": null } ) -- *0* module["unstable_now"] - ⚠️ nested operation +- *0* unsupported expression - *1* unsupported expression -- *2* unsupported expression -- *3* arguments[0] +- *2* arguments[0] ⚠️ function calls are not analysed yet -- *4* ???*5*["_reactInternals"] +- *3* ???*4*["_reactInternals"] ⚠️ unknown object -- *5* a +- *4* a ⚠️ circular variable reference -- *6* C +- *5* C ⚠️ circular variable reference e#233 = ???*0* @@ -9851,13 +11180,22 @@ e#283 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -9866,18 +11204,49 @@ e#283 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression e#284 = ( | undefined @@ -9886,13 +11255,22 @@ e#284 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -9901,18 +11279,49 @@ e#284 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression e#29 = ???*0* - *0* ???*1*["split"]("\n") @@ -9922,10 +11331,8 @@ e#29 = ???*0* - *2* l ⚠️ pattern without value -e#295 = (undefined | ???*0*() | ???*1*) -- *0* module["unstable_now"] - ⚠️ nested operation -- *1* unsupported expression +e#295 = (undefined | module["unstable_now"]() | ???*0*) +- *0* unsupported expression e#296 = ( | { @@ -9936,8 +11343,8 @@ e#296 = ( "next": null } | undefined - | ???*9*() - | ???*10* + | module["unstable_now"]() + | ???*9* ) - *0* unsupported expression - *1* arguments[0] @@ -9956,9 +11363,7 @@ e#296 = ( ⚠️ unknown object - *8* arguments[0] ⚠️ function calls are not analysed yet -- *9* module["unstable_now"] - ⚠️ nested operation -- *10* unsupported expression +- *9* unsupported expression e#310 = ( | undefined @@ -9967,13 +11372,22 @@ e#310 = ( | {"memoizedState": null, "baseState": null, "baseQueue": null, "queue": null, "next": null} | null["memoizedState"] | ???*1* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"] | null["alternate"] + | (null !== (null | ???*17* | ???*18*))["alternate"] + | (null !== (null["next"] | ???*19*))["alternate"] | null["next"] | { - "memoizedState": (null["memoizedState"] | ???*3*), - "baseState": (null["baseState"] | ???*5*), - "baseQueue": (null["baseQueue"] | ???*7*), - "queue": (null["queue"] | ???*9*), + "memoizedState": (null["memoizedState"] | ???*21*), + "baseState": (null["baseState"] | ???*23*), + "baseQueue": (null["baseQueue"] | ???*25*), + "queue": (null["queue"] | ???*27*), "next": null } ) @@ -9982,18 +11396,49 @@ e#310 = ( ⚠️ unknown object - *2* arguments[1] ⚠️ function calls are not analysed yet -- *3* ???*4*["memoizedState"] +- *3* unsupported expression +- *4* ???*5*["alternate"] ⚠️ unknown object -- *4* unsupported expression -- *5* ???*6*["baseState"] +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] ⚠️ unknown object -- *6* unsupported expression -- *7* ???*8*["baseQueue"] +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] ⚠️ unknown object -- *8* unsupported expression -- *9* ???*10*["queue"] +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] ⚠️ unknown object -- *10* unsupported expression +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*["memoizedState"] + ⚠️ unknown object +- *22* unsupported expression +- *23* ???*24*["baseState"] + ⚠️ unknown object +- *24* unsupported expression +- *25* ???*26*["baseQueue"] + ⚠️ unknown object +- *26* unsupported expression +- *27* ???*28*["queue"] + ⚠️ unknown object +- *28* unsupported expression e#316 = ( | "" @@ -10016,7 +11461,7 @@ e#322 = ???*0* - *1* arguments[1] ⚠️ function calls are not analysed yet -e#324 = (???*0* | ???*1*) +e#324 = (???*0* | ???*1* | ???*5*) - *0* unknown new expression - *1* ???*2*["get"](???*4*) ⚠️ unknown callee object @@ -10026,6 +11471,22 @@ e#324 = (???*0* | ???*1*) ⚠️ function calls are not analysed yet - *4* arguments[1] ⚠️ function calls are not analysed yet +- *5* ???*6*(???*12*) + ⚠️ unknown callee +- *6* ???*7*["get"] + ⚠️ unknown object +- *7* ???*8*["pingCache"] + ⚠️ unknown object +- *8* (...) => undefined["bind"](null, ???*9*, ???*10*, ???*11*) + ⚠️ nested operation +- *9* a + ⚠️ circular variable reference +- *10* arguments[1] + ⚠️ function calls are not analysed yet +- *11* arguments[2] + ⚠️ function calls are not analysed yet +- *12* arguments[1] + ⚠️ function calls are not analysed yet e#326 = ???*0* - *0* arguments[4] @@ -10043,7 +11504,7 @@ e#330 = ???*0* - *0* arguments[4] ⚠️ function calls are not analysed yet -e#331 = ???*0* +e#331 = (???*0* | null["baseLanes"]["children"]) - *0* ???*1*["children"] ⚠️ unknown object - *1* ???*2*["pendingProps"] @@ -10192,23 +11653,54 @@ e#409 = ???*0* e#415 = ???*0* - *0* max number of linking steps reached -e#416 = ???*0* +e#416 = ( + | null["memoizedState"]["queue"] + | ???*0* + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"]["queue"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"]["queue"] +) - *0* ???*1*["queue"] ⚠️ unknown object -- *1* null["memoizedState"] - ⚠️ nested operation +- *1* ???*2*["memoizedState"] + ⚠️ unknown object +- *2* arguments[1] + ⚠️ function calls are not analysed yet +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation e#420 = ???*0* - *0* e ⚠️ pattern without value -e#423 = ???*0* -- *0* ???*1*["transition"] - ⚠️ unknown object -- *1* ???*2*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *2* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +e#423 = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"]["transition"] e#424 = (???*0* | null["finishedLanes"]) - *0* ???*1*["finishedLanes"] @@ -10308,23 +11800,49 @@ e#477 = (???*0* | (...) => undefined | ???*1* | undefined["onRecoverableError"]) - *2* arguments[1] ⚠️ function calls are not analysed yet -e#481 = (false | true | ???*0* | ???*2*) +e#481 = ( + | false + | true + | ???*0* + | (null != ???*2*)[(???*3* | 0)]["_getVersion"] + | null[(???*4* | 0)]["_getVersion"] + | ???*5* +) - *0* ???*1*["_getVersion"] ⚠️ unknown object - *1* arguments[2] ⚠️ function calls are not analysed yet -- *2* (false | true | ???*3* | ???*5*)(c["_source"]) +- *2* c + ⚠️ circular variable reference +- *3* arguments[0] + ⚠️ function calls are not analysed yet +- *4* arguments[0] + ⚠️ function calls are not analysed yet +- *5* ( + | false + | true + | ???*6* + | (null != ???*8*)[(???*9* | 0)]["_getVersion"] + | null[(???*10* | 0)]["_getVersion"] + | ???*11* + )(c["_source"]) ⚠️ non-function callee -- *3* ???*4*["_getVersion"] +- *6* ???*7*["_getVersion"] ⚠️ unknown object -- *4* arguments[2] +- *7* arguments[2] + ⚠️ function calls are not analysed yet +- *8* c + ⚠️ circular variable reference +- *9* arguments[0] + ⚠️ function calls are not analysed yet +- *10* arguments[0] ⚠️ function calls are not analysed yet -- *5* ???*6*(c["_source"]) +- *11* ???*12*(c["_source"]) ⚠️ unknown callee -- *6* e +- *12* e ⚠️ circular variable reference -e#53 = (0 | ???*0* | ???*7* | ???*15*) +e#53 = (0 | ???*0* | ???*7* | null["hasOwnProperty"](???*15*)) - *0* ???*1*["hasOwnProperty"](`$${???*2*}`) ⚠️ unknown callee object - *1* arguments[1] @@ -10354,21 +11872,17 @@ e#53 = (0 | ???*0* | ???*7* | ???*15*) ⚠️ function calls are not analysed yet - *14* c ⚠️ circular variable reference -- *15* ???*16*(???*17*) - ⚠️ unknown callee -- *16* null["hasOwnProperty"] - ⚠️ nested operation -- *17* `$${???*18*}` +- *15* `$${???*16*}` ⚠️ nested operation -- *18* ???*19*["value"] +- *16* ???*17*["value"] ⚠️ unknown object -- *19* ???*20*[(???*21* | 0 | undefined | ???*22* | "")] +- *17* ???*18*[(???*19* | 0 | undefined | ???*20* | "")] ⚠️ unknown object -- *20* arguments[0] +- *18* arguments[0] ⚠️ function calls are not analysed yet -- *21* arguments[2] +- *19* arguments[2] ⚠️ function calls are not analysed yet -- *22* c +- *20* c ⚠️ circular variable reference e#61 = ???*0* @@ -10440,26 +11954,24 @@ ee = ???*0* - *1* FreeVar(String) ⚠️ unknown global -ef = ???*0* -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"] - ⚠️ nested operation +ef = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"](" ") -eg = (null | [???*0*] | ???*1* | ???*4*) +eg = (null | [???*0*] | null["slice"](???*1*) | ???*2* | ???*5*) - *0* arguments[0] ⚠️ function calls are not analysed yet -- *1* ???*2*(???*3*) - ⚠️ unknown callee -- *2* null["slice"] +- *1* (0 + 1) ⚠️ nested operation -- *3* (0 + 1) - ⚠️ nested operation -- *4* ???*5*["slice"]((0 + 1)) +- *2* ???*3*((0 + 1)) + ⚠️ unknown callee +- *3* [???*4*]["slice"] + ⚠️ non-num constant property on array +- *4* arguments[0] + ⚠️ function calls are not analysed yet +- *5* ???*6*["slice"]((0 + 1)) ⚠️ unknown callee object -- *5* ???*6*["slice"]((a + 1)) +- *6* ???*7*["slice"]((a + 1)) ⚠️ unknown callee object -- *6* eg +- *7* eg ⚠️ circular variable reference eh = (...) => undefined @@ -10485,30 +11997,28 @@ f#105 = ???*0* - *1* arguments[4] ⚠️ function calls are not analysed yet -f#112 = ???*0* -- *0* ???*1*["transition"] - ⚠️ unknown object -- *1* ???*2*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *2* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +f#112 = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"]["transition"] -f#113 = ???*0* -- *0* ???*1*["transition"] - ⚠️ unknown object -- *1* ???*2*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *2* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +f#113 = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"]["transition"] f#114 = ???*0* - *0* max number of linking steps reached -f#117 = ???*0* +f#117 = ( + | null["value"]["length"] + | undefined["value"]["length"] + | ???*0* + | null["textContent"]["length"] + | undefined["textContent"]["length"] +) - *0* ???*1*["length"] ⚠️ unknown object -- *1* null["value"] - ⚠️ nested operation +- *1* ???*2*["value"] + ⚠️ unknown object +- *2* ???*3*["parentNode"] + ⚠️ unknown object +- *3* arguments[2] + ⚠️ function calls are not analysed yet f#120 = ???*0* - *0* arguments[3] @@ -10517,7 +12027,7 @@ f#120 = ???*0* f#157 = ???*0* - *0* max number of linking steps reached -f#163 = (???*0* | ???*1*) +f#163 = (???*0* | ???*1* | null[0][(???*6* | 0)]["instance"]) - *0* unsupported expression - *1* ???*2*["instance"] ⚠️ unknown object @@ -10528,6 +12038,7 @@ f#163 = (???*0* | ???*1*) - *4* arguments[0] ⚠️ function calls are not analysed yet - *5* unsupported expression +- *6* unsupported expression f#169 = ???*0* - *0* max number of linking steps reached @@ -10561,49 +12072,45 @@ f#226 = ???*0* f#230 = ( | undefined | { - "eventTime": (undefined | ???*0*() | ???*1*), - "lane": (undefined | 1 | ???*2* | 0 | 64 | ???*3* | ???*4* | ???*6* | 4 | 16 | 536870912 | null), + "eventTime": (undefined | module["unstable_now"]() | ???*0*), + "lane": (undefined | 1 | ???*1* | 0 | 64 | ???*2* | ???*3* | ???*5* | 4 | 16 | 536870912 | null), "tag": 0, "payload": null, "callback": null, "next": null } ) -- *0* module["unstable_now"] - ⚠️ nested operation +- *0* unsupported expression - *1* unsupported expression -- *2* unsupported expression -- *3* arguments[0] +- *2* arguments[0] ⚠️ function calls are not analysed yet -- *4* ???*5*["_reactInternals"] +- *3* ???*4*["_reactInternals"] ⚠️ unknown object -- *5* a +- *4* a ⚠️ circular variable reference -- *6* C +- *5* C ⚠️ circular variable reference f#231 = ( | undefined | { - "eventTime": (undefined | ???*0*() | ???*1*), - "lane": (undefined | 1 | ???*2* | 0 | 64 | ???*3* | ???*4* | ???*6* | 4 | 16 | 536870912 | null), + "eventTime": (undefined | module["unstable_now"]() | ???*0*), + "lane": (undefined | 1 | ???*1* | 0 | 64 | ???*2* | ???*3* | ???*5* | 4 | 16 | 536870912 | null), "tag": 0, "payload": null, "callback": null, "next": null } ) -- *0* module["unstable_now"] - ⚠️ nested operation +- *0* unsupported expression - *1* unsupported expression -- *2* unsupported expression -- *3* arguments[0] +- *2* arguments[0] ⚠️ function calls are not analysed yet -- *4* ???*5*["_reactInternals"] +- *3* ???*4*["_reactInternals"] ⚠️ unknown object -- *5* a +- *4* a ⚠️ circular variable reference -- *6* C +- *5* C ⚠️ circular variable reference f#233 = ???*0* @@ -10671,14 +12178,64 @@ f#267 = (???*0* | 0) f#272 = ???*0* - *0* max number of linking steps reached -f#273 = (undefined["memoizedState"] | null["memoizedState"] | ???*0* | null | ???*2* | ???*3*) +f#273 = ( + | undefined["memoizedState"] + | null["memoizedState"] + | ???*0* + | null + | ???*2* + | null["memoizedState"]["memoizedState"] + | (null !== ( + | null + | ???*3* + | ???*4* + | {"memoizedState": ???*6*, "baseState": ???*8*, "baseQueue": ???*10*, "queue": ???*12*, "next": null} + ))["memoizedState"]["memoizedState"] + | (null !== (null["next"] | ???*14* | null | ???*16*))["memoizedState"]["memoizedState"] + | null["alternate"]["memoizedState"] + | (null !== (null | ???*17* | ???*18*))["alternate"]["memoizedState"] + | (null !== (null["next"] | ???*19*))["alternate"]["memoizedState"] + | null["next"]["memoizedState"] + | ???*21* +) - *0* ???*1*["memoizedState"] ⚠️ unknown object - *1* unsupported expression - *2* unknown mutation -- *3* ???*4*(f, g["action"]) +- *3* unsupported expression +- *4* ???*5*["alternate"] + ⚠️ unknown object +- *5* N + ⚠️ circular variable reference +- *6* ???*7*["memoizedState"] + ⚠️ unknown object +- *7* O + ⚠️ circular variable reference +- *8* ???*9*["baseState"] + ⚠️ unknown object +- *9* O + ⚠️ circular variable reference +- *10* ???*11*["baseQueue"] + ⚠️ unknown object +- *11* O + ⚠️ circular variable reference +- *12* ???*13*["queue"] + ⚠️ unknown object +- *13* O + ⚠️ circular variable reference +- *14* ???*15*["next"] + ⚠️ unknown object +- *15* unsupported expression +- *16* unknown mutation +- *17* unsupported expression +- *18* a + ⚠️ circular variable reference +- *19* ???*20*["next"] + ⚠️ unknown object +- *20* unsupported expression +- *21* ???*22*(f, g["action"]) ⚠️ unknown callee -- *4* arguments[0] +- *22* arguments[0] ⚠️ function calls are not analysed yet f#274 = !(???*0*) @@ -10697,12 +12254,26 @@ f#274 = !(???*0*) - *3* unsupported expression - *4* unsupported expression -f#284 = (???*0* | ???*1*) +f#284 = ( + | ???*0* + | null["memoizedState"]["destroy"] + | ???*1* + | null["alternate"]["memoizedState"]["destroy"] + | (null !== ???*4*)["alternate"]["memoizedState"]["destroy"] + | (null !== ???*5*)["alternate"]["memoizedState"]["destroy"] +) - *0* unsupported expression - *1* ???*2*["destroy"] ⚠️ unknown object -- *2* null["memoizedState"] - ⚠️ nested operation +- *2* ???*3*["memoizedState"] + ⚠️ unknown object +- *3* unsupported expression +- *4* O + ⚠️ circular variable reference +- *5* ???*6*["next"] + ⚠️ unknown object +- *6* O + ⚠️ circular variable reference f#29 = ???*0* - *0* ???*1*["split"]("\n") @@ -10744,15 +12315,18 @@ f#328 = ???*0* - *1* arguments[1] ⚠️ function calls are not analysed yet -f#329 = (???*0* | (...) => (undefined | ???*2* | ???*3*)["type"] | undefined["child"] | null["child"]) +f#329 = ( + | ???*0* + | (...) => (undefined | !(0) | !(1))["type"] + | undefined["child"] + | (...) => (undefined | !(0) | !(1))["type"]["child"] + | null["child"] + | (...) => (undefined | !(0) | !(1))["type"]["alternate"]["child"] +) - *0* ???*1*["type"] ⚠️ unknown object - *1* arguments[2] ⚠️ function calls are not analysed yet -- *2* !(0) - ⚠️ nested operation -- *3* !(1) - ⚠️ nested operation f#330 = ???*0* - *0* ???*1*["memoizedProps"] @@ -10793,7 +12367,7 @@ f#344 = ???*0* - *1* arguments[0] ⚠️ function calls are not analysed yet -f#345 = (???*0* | 0["tail"]) +f#345 = (???*0* | undefined["current"]["tail"] | 0["tail"]) - *0* ???*1*["tail"] ⚠️ unknown object - *1* ???*2*["pendingProps"] @@ -10886,21 +12460,15 @@ f#405 = ( "useId": (...) => undefined, "unstable_isNewReconciler": false } + | module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentDispatcher"]["current"] | ???*0* - | ???*3* - | ???*4* + | ???*1* | 1073741824 | 0 ) -- *0* ???*1*["current"] - ⚠️ unknown object -- *1* ???*2*["ReactCurrentDispatcher"] - ⚠️ unknown object -- *2* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation -- *3* arguments[0] +- *0* arguments[0] ⚠️ function calls are not analysed yet -- *4* unsupported expression +- *1* unsupported expression f#409 = ???*0* - *0* ???*1*["getSnapshot"] @@ -10918,15 +12486,19 @@ f#415 = ???*0* f#416 = ???*0* - *0* max number of linking steps reached -f#424 = (???*0* | (0 !== ???*1*) | ???*2* | null["pendingLanes"]) +f#424 = ( + | ???*0* + | (0 !== ???*1*) + | module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"]["transition"] + | ???*2* + | null["pendingLanes"] +) - *0* unsupported expression - *1* unsupported expression -- *2* ???*3*["transition"] +- *2* ???*3*["pendingLanes"] ⚠️ unknown object -- *3* ???*4*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *4* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +- *3* arguments[0] + ⚠️ function calls are not analysed yet f#425 = ???*0* - *0* max number of linking steps reached @@ -10947,17 +12519,17 @@ f#450 = ( | ???*0* | undefined | { - "eventTime": (???*1* | undefined | ???*2*() | ???*3*), + "eventTime": (???*1* | undefined | module["unstable_now"]() | ???*2*), "lane": ( - | ???*4* + | ???*3* | undefined | 1 - | ???*5* + | ???*4* | 0 | 64 - | ???*6* + | ???*5* | undefined["current"] - | ???*8* + | ???*7* | 4 | 16 | 536870912 @@ -10973,23 +12545,19 @@ f#450 = ( ⚠️ function calls are not analysed yet - *1* arguments[3] ⚠️ function calls are not analysed yet -- *2* module["unstable_now"] - ⚠️ nested operation -- *3* unsupported expression -- *4* arguments[4] +- *2* unsupported expression +- *3* arguments[4] ⚠️ function calls are not analysed yet -- *5* unsupported expression -- *6* ???*7*["current"] +- *4* unsupported expression +- *5* ???*6*["current"] ⚠️ unknown object -- *7* arguments[0] +- *6* arguments[0] ⚠️ function calls are not analysed yet -- *8* C +- *7* C ⚠️ circular variable reference -f#451 = (undefined | ???*0*() | ???*1*) -- *0* module["unstable_now"] - ⚠️ nested operation -- *1* unsupported expression +f#451 = (undefined | module["unstable_now"]() | ???*0*) +- *0* unsupported expression f#463 = (???*0* | (...) => undefined) - *0* arguments[3] @@ -11001,11 +12569,22 @@ f#466 = ???*0* - *1* arguments[2] ⚠️ function calls are not analysed yet -f#481 = ("" | ???*0*) +f#481 = ( + | "" + | ???*0* + | (null != ???*2*)[(???*3* | 0)]["identifierPrefix"] + | null[(???*4* | 0)]["identifierPrefix"] +) - *0* ???*1*["identifierPrefix"] ⚠️ unknown object - *1* arguments[2] ⚠️ function calls are not analysed yet +- *2* c + ⚠️ circular variable reference +- *3* arguments[0] + ⚠️ function calls are not analysed yet +- *4* arguments[0] + ⚠️ function calls are not analysed yet f#78 = ???*0* - *0* arguments[5] @@ -11019,7 +12598,17 @@ f#82 = ???*0* - *0* arguments[5] ⚠️ function calls are not analysed yet -f#86 = ???*0* +f#86 = ( + | ???*0* + | undefined["return"]["alternate"] + | null["return"]["alternate"] + | undefined["return"]["child"] + | null["return"]["child"] + | undefined["return"]["alternate"]["sibling"] + | null["return"]["alternate"]["sibling"] + | undefined["return"]["child"]["sibling"] + | null["return"]["child"]["sibling"] +) - *0* ???*1*["alternate"] ⚠️ unknown object - *1* ???*2*["return"] @@ -11118,11 +12707,24 @@ g#273 = (???*0* | ???*1*) ⚠️ unknown object - *2* unsupported expression -g#284 = (null["memoizedState"] | ???*0* | ???*2*) +g#284 = ( + | null["memoizedState"] + | ???*0* + | null["alternate"]["memoizedState"] + | (null !== ???*2*)["alternate"]["memoizedState"] + | (null !== ???*3*)["alternate"]["memoizedState"] + | ???*5* +) - *0* ???*1*["memoizedState"] ⚠️ unknown object - *1* unsupported expression -- *2* unknown mutation +- *2* O + ⚠️ circular variable reference +- *3* ???*4*["next"] + ⚠️ unknown object +- *4* O + ⚠️ circular variable reference +- *5* unknown mutation g#29 = ???*0* - *0* unsupported expression @@ -11133,7 +12735,13 @@ g#296 = ???*0* - *1* arguments[1] ⚠️ function calls are not analysed yet -g#329 = ???*0* +g#329 = ( + | ???*0* + | (...) => (undefined | !(0) | !(1))["type"]["memoizedProps"] + | undefined["child"]["memoizedProps"] + | (...) => (undefined | !(0) | !(1))["type"]["child"]["memoizedProps"] + | null["child"]["memoizedProps"] +) - *0* ???*1*["memoizedProps"] ⚠️ unknown object - *1* ???*2*["type"] @@ -11289,13 +12897,25 @@ g#466 = (???*0* | undefined | ???*2* | ???*3*) ⚠️ function calls are not analysed yet - *3* unknown new expression -g#481 = (???*0* | (...) => undefined | ???*1*) +g#481 = ( + | ???*0* + | (...) => undefined + | ???*1* + | (null != ???*3*)[(???*4* | 0)]["onRecoverableError"] + | null[(???*5* | 0)]["onRecoverableError"] +) - *0* FreeVar(reportError) ⚠️ unknown global - *1* ???*2*["onRecoverableError"] ⚠️ unknown object - *2* arguments[2] ⚠️ function calls are not analysed yet +- *3* c + ⚠️ circular variable reference +- *4* arguments[0] + ⚠️ function calls are not analysed yet +- *5* arguments[0] + ⚠️ function calls are not analysed yet g#78 = ???*0* - *0* arguments[6] @@ -11352,13 +12972,11 @@ gj = (0 | undefined["current"] | ???*0* | ???*1*) - *1* arguments[1] ⚠️ function calls are not analysed yet -gk = (???*0*() | 0) -- *0* module["unstable_now"] - ⚠️ nested operation +gk = (module["unstable_now"]() | 0) gl = (...) => (undefined | g) -h#163 = ???*0* +h#163 = (???*0* | null[0][(???*4* | 0)] | null[0][(???*5* | 0)]["listener"]) - *0* ???*1*[(???*3* | 0)] ⚠️ unknown object - *1* ???*2*[0] @@ -11366,6 +12984,8 @@ h#163 = ???*0* - *2* arguments[0] ⚠️ function calls are not analysed yet - *3* unsupported expression +- *4* unsupported expression +- *5* unsupported expression h#169 = ???*0* - *0* ???*1*["containerInfo"] @@ -11430,7 +13050,12 @@ h#339 = ???*0* h#342 = ???*0* - *0* max number of linking steps reached -h#350 = (???*0* | undefined[(???*5* | null | [] | ???*6*)] | ???*7*) +h#350 = ( + | ???*0* + | undefined[(???*5* | null | [] | ???*6*)] + | ???*7* + | undefined[(???*8* | null | [] | ???*9*)]["__html"] +) - *0* ???*1*[(???*3* | null | [] | ???*4*)] ⚠️ unknown object - *1* ???*2*["memoizedProps"] @@ -11446,6 +13071,10 @@ h#350 = (???*0* | undefined[(???*5* | null | [] | ???*6*)] | ???*7*) - *6* f ⚠️ circular variable reference - *7* unsupported expression +- *8* l + ⚠️ pattern without value +- *9* f + ⚠️ circular variable reference h#354 = ???*0* - *0* max number of linking steps reached @@ -11553,13 +13182,7 @@ hd = (...) => (undefined | FreeVar(undefined)) he = (...) => (undefined | a["data"] | null) -hf = ???*0* -- *0* ???*1*[gf] - ⚠️ unknown object -- *1* ???*2*(" ") - ⚠️ unknown callee -- *2* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"] - ⚠️ nested operation +hf = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"](" ")[0] hg = (...) => undefined @@ -11618,11 +13241,9 @@ je = (...) => (undefined | he(b) | null | ee | a) jf = ???*0*() - *0* ???*1*["toLowerCase"] ⚠️ unknown object -- *1* ???*2*[gf] +- *1* ???*2*[0] ⚠️ unknown object -- *2* ???*3*(" ") - ⚠️ unknown callee -- *3* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"] +- *2* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"](" ") ⚠️ nested operation jg = (...) => (undefined | null) @@ -11640,7 +13261,7 @@ jk = (...) => undefined jl = (...) => undefined -k#163 = ???*0* +k#163 = (???*0* | null[0][(???*5* | 0)]["instance"]) - *0* ???*1*["instance"] ⚠️ unknown object - *1* ???*2*[(???*4* | 0)] @@ -11650,6 +13271,7 @@ k#163 = ???*0* - *3* arguments[0] ⚠️ function calls are not analysed yet - *4* unsupported expression +- *5* unsupported expression k#169 = ???*0* - *0* max number of linking steps reached @@ -11657,18 +13279,62 @@ k#169 = ???*0* k#170 = ???*0* - *0* max number of linking steps reached -k#174 = (???*0* | undefined | null | false["stateNode"] | undefined[???*2*] | null[???*4*]) +k#174 = ( + | ???*0* + | undefined + | null + | !((undefined | ???*2* | null | ???*4*))["stateNode"] + | false["stateNode"] + | undefined[???*7*] + | null[???*9*] + | !(???*11*)[???*13*] + | !(???*15*)[???*21*] +) - *0* ???*1*["alternate"] ⚠️ unknown object - *1* arguments[2] ⚠️ function calls are not analysed yet -- *2* ???*3*["_reactName"] +- *2* ???*3*[Pf] ⚠️ unknown object -- *3* arguments[1] +- *3* c + ⚠️ circular variable reference +- *4* !(???*5*) + ⚠️ nested operation +- *5* ???*6*["disabled"] + ⚠️ unknown object +- *6* d + ⚠️ circular variable reference +- *7* ???*8*["_reactName"] + ⚠️ unknown object +- *8* arguments[1] ⚠️ function calls are not analysed yet -- *4* ???*5*["_reactName"] +- *9* ???*10*["_reactName"] ⚠️ unknown object -- *5* arguments[1] +- *10* arguments[1] + ⚠️ function calls are not analysed yet +- *11* ???*12*["disabled"] + ⚠️ unknown object +- *12* d + ⚠️ circular variable reference +- *13* ???*14*["_reactName"] + ⚠️ unknown object +- *14* arguments[1] + ⚠️ function calls are not analysed yet +- *15* ("button" === (???*16* | ???*17* | ???*19* | false)) + ⚠️ nested operation +- *16* arguments[2] + ⚠️ function calls are not analysed yet +- *17* ???*18*["return"] + ⚠️ unknown object +- *18* c + ⚠️ circular variable reference +- *19* !(???*20*) + ⚠️ nested operation +- *20* d + ⚠️ circular variable reference +- *21* ???*22*["_reactName"] + ⚠️ unknown object +- *22* arguments[1] ⚠️ function calls are not analysed yet k#226 = ???*0* @@ -11741,7 +13407,16 @@ k#296 = ???*0* - *1* arguments[1] ⚠️ function calls are not analysed yet -k#334 = (???*0* | undefined | undefined["_currentValue"] | ???*3* | ???*4* | {} | undefined["current"]) +k#334 = ( + | ???*0* + | undefined + | undefined["_currentValue"] + | ???*3* + | ???*4* + | undefined["current"]["_currentValue"] + | {} + | undefined["current"] +) - *0* ???*1*["context"] ⚠️ unknown object - *1* ???*2*["stateNode"] @@ -11755,7 +13430,12 @@ k#334 = (???*0* | undefined | undefined["_currentValue"] | ???*3* | ???*4* | {} k#339 = ???*0* - *0* max number of linking steps reached -k#350 = (???*0* | undefined[(???*4* | null | [] | ???*5*)] | ???*6*) +k#350 = ( + | ???*0* + | undefined[(???*4* | null | [] | ???*5*)] + | undefined[(???*6* | null | [] | ???*7*)]["__html"] + | ???*8* +) - *0* ???*1*[(???*2* | null | [] | ???*3*)] ⚠️ unknown object - *1* arguments[3] @@ -11768,7 +13448,11 @@ k#350 = (???*0* | undefined[(???*4* | null | [] | ???*5*)] | ???*6*) ⚠️ pattern without value - *5* f ⚠️ circular variable reference -- *6* unsupported expression +- *6* l + ⚠️ pattern without value +- *7* f + ⚠️ circular variable reference +- *8* unsupported expression k#354 = ???*0* - *0* max number of linking steps reached @@ -11898,17 +13582,17 @@ kf = (???*0* + ???*5*) ⚠️ unknown object - *2* ???*3*[0] ⚠️ unknown object -- *3* ???*4*[gf] +- *3* ???*4*[0] ⚠️ unknown object -- *4* ???(" ") +- *4* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"](" ") + ⚠️ nested operation +- *5* ???*6*(1) ⚠️ unknown callee -- *5* ???*6*["slice"](1) - ⚠️ unknown callee object -- *6* ???*7*[gf] +- *6* ???*7*["slice"] ⚠️ unknown object -- *7* ???*8*(" ") - ⚠️ unknown callee -- *8* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"] +- *7* ???*8*[0] + ⚠️ unknown object +- *8* "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel"["split"](" ") ⚠️ nested operation kg = [] @@ -11923,7 +13607,7 @@ kk = (...) => undefined kl = (...) => (undefined | null) -l#163 = ???*0* +l#163 = (???*0* | null[0][(???*5* | 0)]["currentTarget"]) - *0* ???*1*["currentTarget"] ⚠️ unknown object - *1* ???*2*[(???*4* | 0)] @@ -11933,6 +13617,7 @@ l#163 = ???*0* - *3* arguments[0] ⚠️ function calls are not analysed yet - *4* unsupported expression +- *5* unsupported expression l#174 = ???*0* - *0* ???*1*["stateNode"] @@ -12067,11 +13752,7 @@ le = { "week": true } -lf = ???*0* -- *0* ???*1*(" ") - ⚠️ unknown callee -- *1* "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting"["split"] - ⚠️ nested operation +lf = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting"["split"](" ") lg = 0 @@ -12144,28 +13825,39 @@ mb = (???*0* | ???*1* | ???*2*) mc = (...) => undefined -md = (null | ???*0* | ???*5* | ???*11*) -- *0* ???*1*((???*3* | 0), ???*4*) - ⚠️ unknown callee -- *1* ???*2*["slice"] - ⚠️ unknown object -- *2* null["value"] - ⚠️ nested operation -- *3* a +md = ( + | null + | null["value"]["slice"]((???*0* | 0), ???*1*) + | undefined["value"]["slice"]((???*2* | 0), ???*3*) + | ???*4* + | null["textContent"]["slice"]((???*10* | 0), ???*11*) + | undefined["textContent"]["slice"]((???*12* | 0), ???*13*) + | ???*14* +) +- *0* a ⚠️ pattern without value -- *4* unsupported expression -- *5* ???*6*["slice"]((???*9* | 0), ???*10*) +- *1* unsupported expression +- *2* a + ⚠️ pattern without value +- *3* unsupported expression +- *4* ???*5*["slice"]((???*8* | 0), ???*9*) ⚠️ unknown callee object -- *6* ???*7*["value"] +- *5* ???*6*["value"] ⚠️ unknown object -- *7* ???*8*["parentNode"] +- *6* ???*7*["parentNode"] ⚠️ unknown object -- *8* arguments[2] +- *7* arguments[2] ⚠️ function calls are not analysed yet -- *9* a +- *8* a + ⚠️ pattern without value +- *9* unsupported expression +- *10* a ⚠️ pattern without value -- *10* unsupported expression - *11* unsupported expression +- *12* a + ⚠️ pattern without value +- *13* unsupported expression +- *14* unsupported expression me = (...) => (undefined | !(!(le[a["type"]])) | !(0) | !(1)) @@ -12291,11 +13983,7 @@ ni = (...) => undefined nj = {"dehydrated": null, "treeContext": null, "retryLane": 0} -nk = ???*0* -- *0* ???*1*["ReactCurrentDispatcher"] - ⚠️ unknown object -- *1* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +nk = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentDispatcher"] nl = (...) => undefined @@ -12338,11 +14026,7 @@ oj = (...) => ( | {"baseLanes": a, "cachePool": null, "transitions": null} ) -ok = ???*0* -- *0* ???*1*["ReactCurrentOwner"] - ⚠️ unknown object -- *1* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +ok = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentOwner"] ol = (...) => ( | undefined @@ -12427,11 +14111,7 @@ pi = (...) => undefined pj = (...) => (undefined | null | a | rj(b, g) | sj(a, b, g, d, h, e, c) | d) -pk = ???*0* -- *0* ???*1*["ReactCurrentBatchConfig"] - ⚠️ unknown object -- *1* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation +pk = module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentBatchConfig"] pl = (...) => ( | undefined @@ -12853,9 +14533,9 @@ vl = { "setErrorHandler": null, "setSuspenseHandler": null, "scheduleUpdate": null, - "currentDispatcherRef": ???*5*, + "currentDispatcherRef": module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]["ReactCurrentDispatcher"], "findHostInstanceByFiber": (...) => (undefined | null | a["stateNode"]), - "findFiberByHostInstance": ((...) => (undefined | b | c | null) | ???*7* | (...) => (undefined | null)), + "findFiberByHostInstance": ((...) => (undefined | b | c | null) | ???*5* | (...) => (undefined | null)), "findHostInstancesForRefresh": null, "scheduleRefresh": null, "scheduleRoot": null, @@ -12869,11 +14549,7 @@ vl = { - *3* FreeVar(undefined) ⚠️ unknown global - *4* unknown mutation -- *5* ???*6*["ReactCurrentDispatcher"] - ⚠️ unknown object -- *6* module["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"] - ⚠️ nested operation -- *7* unknown mutation +- *5* unknown mutation w#170 = ???*0* - *0* max number of linking steps reached diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/webpack-target-node/resolved-effects.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/webpack-target-node/resolved-effects.snapshot index 29b81af020ac9..f435c0c1b82ea 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/webpack-target-node/resolved-effects.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/webpack-target-node/resolved-effects.snapshot @@ -20,16 +20,15 @@ ⚠️ function calls are not analysed yet 0 -> 14 member call = ???*0*["json"]( - {"users": [{"id": 1}, {"id": 2}, {"id": 3}], "hello": ???*2*} + { + "users": [{"id": 1}, {"id": 2}, {"id": 3}], + "hello": module["readFile"]("./hello.txt", "utf-8") + } ) - *0* ???*1*["status"](200) ⚠️ unknown callee object - *1* arguments[1] ⚠️ function calls are not analysed yet -- *2* ???*3*("./hello.txt", "utf-8") - ⚠️ unknown callee -- *3* module["readFile"] - ⚠️ nested operation 0 -> 15 call = require*0*("../../webpack-api-runtime.js") - *0* require: The require method from CommonJS diff --git a/crates/turbopack-ecmascript/tests/analyzer/graph/webpack-target-node/resolved-explained.snapshot b/crates/turbopack-ecmascript/tests/analyzer/graph/webpack-target-node/resolved-explained.snapshot index 9f84d92408069..388b8472ad63d 100644 --- a/crates/turbopack-ecmascript/tests/analyzer/graph/webpack-target-node/resolved-explained.snapshot +++ b/crates/turbopack-ecmascript/tests/analyzer/graph/webpack-target-node/resolved-explained.snapshot @@ -33,11 +33,7 @@ exports = {} handler = (...) => undefined -hello = ???*0* -- *0* ???*1*("./hello.txt", "utf-8") - ⚠️ unknown callee -- *1* module["readFile"] - ⚠️ nested operation +hello = module["readFile"]("./hello.txt", "utf-8") moduleId = ???*0* - *0* moduleId diff --git a/crates/turbopack-node/Cargo.toml b/crates/turbopack-node/Cargo.toml index 4c95883a726d2..2b8538ba10649 100644 --- a/crates/turbopack-node/Cargo.toml +++ b/crates/turbopack-node/Cargo.toml @@ -20,6 +20,7 @@ serde_json = "1.0.85" serde_qs = "0.10.1" tokio = { version = "1.21.2", features = ["full"] } turbo-tasks = { path = "../turbo-tasks" } +turbo-tasks-env = { path = "../turbo-tasks-env" } turbo-tasks-fs = { path = "../turbo-tasks-fs" } turbopack-core = { path = "../turbopack-core" } turbopack-dev-server = { path = "../turbopack-dev-server" } diff --git a/crates/turbopack-node/js/src/globals.ts b/crates/turbopack-node/js/src/globals.ts new file mode 100644 index 0000000000000..257842725280c --- /dev/null +++ b/crates/turbopack-node/js/src/globals.ts @@ -0,0 +1,2 @@ +// @ts-ignore +process.turbopack = {}; diff --git a/crates/turbopack-node/src/evaluate.rs b/crates/turbopack-node/src/evaluate.rs index ea44446514200..376f8cd390bda 100644 --- a/crates/turbopack-node/src/evaluate.rs +++ b/crates/turbopack-node/src/evaluate.rs @@ -6,6 +6,7 @@ use turbo_tasks::{ primitives::{JsonValueVc, StringVc}, CompletionVc, TryJoinIterExt, Value, ValueToString, }; +use turbo_tasks_env::{ProcessEnv, ProcessEnvVc}; use turbo_tasks_fs::{ glob::GlobVc, rope::Rope, to_sys_path, DirectoryEntry, File, FileSystemPathVc, ReadGlobResultVc, }; @@ -46,6 +47,7 @@ pub async fn get_evaluate_pool( context_path: FileSystemPathVc, module_asset: AssetVc, cwd: FileSystemPathVc, + env: ProcessEnvVc, context: AssetContextVc, intermediate_output_path: FileSystemPathVc, runtime_entries: Option, @@ -101,6 +103,27 @@ pub async fn get_evaluate_pool( let (Some(cwd), Some(entrypoint)) = (to_sys_path(cwd).await?, to_sys_path(path).await?) else { panic!("can only evaluate from a disk filesystem"); }; + + let runtime_entries = { + let globals_module = EcmascriptModuleAssetVc::new( + SourceAssetVc::new(embed_file_path("globals.ts")).into(), + context, + Value::new(EcmascriptModuleAssetType::Typescript), + EcmascriptInputTransformsVc::cell(vec![EcmascriptInputTransform::TypeScript]), + context.compile_time_info(), + ) + .as_ecmascript_chunk_placeable(); + + let mut entries = vec![globals_module]; + if let Some(other_entries) = runtime_entries { + for entry in &*other_entries.await? { + entries.push(*entry) + } + }; + + Some(EcmascriptChunkPlaceablesVc::cell(entries)) + }; + let bootstrap = NodeJsBootstrapAsset { path, chunk_group: ChunkGroupVc::from_chunk( @@ -111,7 +134,11 @@ pub async fn get_evaluate_pool( let pool = NodeJsPool::new( cwd, entrypoint, - HashMap::new(), + env.read_all() + .await? + .iter() + .map(|(k, v)| (k.clone(), v.clone())) + .collect(), available_parallelism().map_or(1, |v| v.get()), debug, ); @@ -147,6 +174,7 @@ pub async fn evaluate( context_path: FileSystemPathVc, module_asset: AssetVc, cwd: FileSystemPathVc, + env: ProcessEnvVc, context_path_for_issue: FileSystemPathVc, context: AssetContextVc, intermediate_output_path: FileSystemPathVc, @@ -159,6 +187,7 @@ pub async fn evaluate( context_path, module_asset, cwd, + env, context, intermediate_output_path, runtime_entries, diff --git a/crates/turbopack-node/src/execution_context.rs b/crates/turbopack-node/src/execution_context.rs index d44b484a31319..86e4bbf2ccbc5 100644 --- a/crates/turbopack-node/src/execution_context.rs +++ b/crates/turbopack-node/src/execution_context.rs @@ -1,19 +1,26 @@ use anyhow::Result; +use turbo_tasks_env::ProcessEnvVc; use turbo_tasks_fs::FileSystemPathVc; #[turbo_tasks::value] pub struct ExecutionContext { pub project_root: FileSystemPathVc, pub intermediate_output_path: FileSystemPathVc, + pub env: ProcessEnvVc, } #[turbo_tasks::value_impl] impl ExecutionContextVc { #[turbo_tasks::function] - pub fn new(project_root: FileSystemPathVc, intermediate_output_path: FileSystemPathVc) -> Self { + pub fn new( + project_root: FileSystemPathVc, + intermediate_output_path: FileSystemPathVc, + env: ProcessEnvVc, + ) -> Self { ExecutionContext { project_root, intermediate_output_path, + env, } .cell() } @@ -24,6 +31,7 @@ impl ExecutionContextVc { Ok(ExecutionContextVc::new( this.project_root, this.intermediate_output_path.join(name), + this.env, )) } } diff --git a/crates/turbopack-node/src/transforms/postcss.rs b/crates/turbopack-node/src/transforms/postcss.rs index 2ee412b64c826..1788fb103e1f3 100644 --- a/crates/turbopack-node/src/transforms/postcss.rs +++ b/crates/turbopack-node/src/transforms/postcss.rs @@ -196,6 +196,7 @@ impl PostCssTransformedAssetVc { let ExecutionContext { project_root, intermediate_output_path, + env, } = *this.execution_context.await?; let source_content = this.source.content(); let AssetContent::File(file) = *source_content.await? else { @@ -220,6 +221,7 @@ impl PostCssTransformedAssetVc { project_root, postcss_executor, project_root, + env, this.source.path(), context, intermediate_output_path, diff --git a/crates/turbopack-node/src/transforms/webpack.rs b/crates/turbopack-node/src/transforms/webpack.rs index 41066c0473278..8018368608cc9 100644 --- a/crates/turbopack-node/src/transforms/webpack.rs +++ b/crates/turbopack-node/src/transforms/webpack.rs @@ -139,6 +139,7 @@ impl WebpackLoadersProcessedAssetVc { let ExecutionContext { project_root, intermediate_output_path, + env, } = *this.execution_context.await?; let source_content = this.source.content(); let AssetContent::File(file) = *source_content.await? else { @@ -161,6 +162,7 @@ impl WebpackLoadersProcessedAssetVc { project_root, webpack_loaders_executor, project_root, + env, this.source.path(), context, intermediate_output_path, diff --git a/crates/turbopack-tests/tests/snapshot.rs b/crates/turbopack-tests/tests/snapshot.rs index ef153a2059286..1e833f075563a 100644 --- a/crates/turbopack-tests/tests/snapshot.rs +++ b/crates/turbopack-tests/tests/snapshot.rs @@ -31,6 +31,7 @@ use turbopack::{ use turbopack_core::{ asset::{Asset, AssetContent, AssetContentVc, AssetVc}, chunk::{dev::DevChunkingContextVc, ChunkableAsset, ChunkableAssetVc}, + compile_time_defines, compile_time_info::CompileTimeInfo, context::{AssetContext, AssetContextVc}, environment::{BrowserEnvironment, EnvironmentIntention, EnvironmentVc, ExecutionEnvironment}, @@ -159,7 +160,17 @@ async fn run_test(resource: String) -> Result { )), Value::new(EnvironmentIntention::Client), ); - let compile_time_info = CompileTimeInfo { environment: env }.cell(); + let compile_time_info = CompileTimeInfo { + environment: env, + defines: compile_time_defines!( + process.env.NODE_ENV = "development", + DEFINED_VALUE = "value", + DEFINED_TRUE = true, + A.VERY.LONG.DEFINED.VALUE = "value", + ) + .cell(), + } + .cell(); let context: AssetContextVc = ModuleAssetContextVc::new( TransitionsByNameVc::cell(HashMap::new()), diff --git a/crates/turbopack-tests/tests/snapshot/comptime/define/output/crates_turbopack-tests_tests_snapshot_comptime_define_input_index_7c0dc7.js b/crates/turbopack-tests/tests/snapshot/comptime/define/output/crates_turbopack-tests_tests_snapshot_comptime_define_input_index_7c0dc7.js index 1da4a1ba7df2b..af0f738832ed2 100644 --- a/crates/turbopack-tests/tests/snapshot/comptime/define/output/crates_turbopack-tests_tests_snapshot_comptime_define_input_index_7c0dc7.js +++ b/crates/turbopack-tests/tests/snapshot/comptime/define/output/crates_turbopack-tests_tests_snapshot_comptime_define_input_index_7c0dc7.js @@ -2,27 +2,27 @@ "[project]/crates/turbopack-tests/tests/snapshot/comptime/define/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { -if (DEFINED_VALUE) { +if ("TURBOPACK compile-time truthy", 1) { console.log('DEFINED_VALUE'); } -if (DEFINED_TRUE) { +if ("TURBOPACK compile-time truthy", 1) { console.log('DEFINED_VALUE'); } -if (A.VERY.LONG.DEFINED.VALUE) { +if ("TURBOPACK compile-time truthy", 1) { console.log('A.VERY.LONG.DEFINED.VALUE'); } -if (process.env.NODE_ENV) { +if ("TURBOPACK compile-time truthy", 1) { console.log('something'); } -if (process.env.NODE_ENV === 'production') { - console.log('production'); +if ("TURBOPACK compile-time falsy", 0) { + "TURBOPACK unreachable"; } var p = process; console.log(A.VERY.LONG.DEFINED.VALUE); console.log(DEFINED_VALUE); console.log(p.env.NODE_ENV); -if (p.env.NODE_ENV === 'production') { - console.log('production'); +if ("TURBOPACK compile-time falsy", 0) { + "TURBOPACK unreachable"; } p.env.NODE_ENV == 'production' ? console.log('production') : console.log('development'); p.env.NODE_ENV != 'production' && console.log('development'); @@ -1080,4 +1080,4 @@ globalThis.TURBOPACK = { })(); -//# sourceMappingURL=crates_turbopack-tests_tests_snapshot_comptime_define_input_index_7c0dc7.js.map \ No newline at end of file +//# sourceMappingURL=crates_turbopack-tests_tests_snapshot_comptime_define_input_index_7c0dc7.js.map diff --git a/crates/turbopack-tests/tests/snapshot/comptime/define/output/crates_turbopack-tests_tests_snapshot_comptime_define_input_index_7c0dc7.js.map b/crates/turbopack-tests/tests/snapshot/comptime/define/output/crates_turbopack-tests_tests_snapshot_comptime_define_input_index_7c0dc7.js.map index c9ca475290907..8c761027aa2af 100644 --- a/crates/turbopack-tests/tests/snapshot/comptime/define/output/crates_turbopack-tests_tests_snapshot_comptime_define_input_index_7c0dc7.js.map +++ b/crates/turbopack-tests/tests/snapshot/comptime/define/output/crates_turbopack-tests_tests_snapshot_comptime_define_input_index_7c0dc7.js.map @@ -1,6 +1,6 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/comptime/define/input/index.js"],"sourcesContent":["if (DEFINED_VALUE) {\n console.log('DEFINED_VALUE');\n}\n\nif (DEFINED_TRUE) {\n console.log('DEFINED_VALUE');\n}\n\nif (A.VERY.LONG.DEFINED.VALUE) {\n console.log('A.VERY.LONG.DEFINED.VALUE');\n}\n\nif (process.env.NODE_ENV) {\n console.log('something');\n}\n\nif (process.env.NODE_ENV === 'production') {\n console.log('production');\n}\n\nvar p = process;\n\n// TODO: replacement is not implemented yet\nconsole.log(A.VERY.LONG.DEFINED.VALUE);\nconsole.log(DEFINED_VALUE);\nconsole.log(p.env.NODE_ENV);\n\nif (p.env.NODE_ENV === 'production') {\n console.log('production');\n}\n\n// TODO tenary is not implemented yet\np.env.NODE_ENV == 'production' ? console.log('production') : console.log('development');\n\n// TODO short-circuit is not implemented yet\np.env.NODE_ENV != 'production' && console.log('development');\np.env.NODE_ENV == 'production' && console.log('production');\n"],"names":[],"mappings":"AAAA,IAAI,eAAe;IACjB,QAAQ,GAAG,CAAC;AACd,CAAC;AAED,IAAI,cAAc;IAChB,QAAQ,GAAG,CAAC;AACd,CAAC;AAED,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;IAC7B,QAAQ,GAAG,CAAC;AACd,CAAC;AAED,IAAI,QAAQ,GAAG,CAAC,QAAQ,EAAE;IACxB,QAAQ,GAAG,CAAC;AACd,CAAC;AAED,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,cAAc;IACzC,QAAQ,GAAG,CAAC;AACd,CAAC;AAED,IAAI,IAAI;AAGR,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;AACrC,QAAQ,GAAG,CAAC;AACZ,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ;AAE1B,IAAI,EAAE,GAAG,CAAC,QAAQ,KAAK,cAAc;IACnC,QAAQ,GAAG,CAAC;AACd,CAAC;AAGD,EAAE,GAAG,CAAC,QAAQ,IAAI,eAAe,QAAQ,GAAG,CAAC,gBAAgB,QAAQ,GAAG,CAAC,cAAc;AAGvF,EAAE,GAAG,CAAC,QAAQ,IAAI,gBAAgB,QAAQ,GAAG,CAAC;AAC9C,EAAE,GAAG,CAAC,QAAQ,IAAI,gBAAgB,QAAQ,GAAG,CAAC"}}, + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/comptime/define/input/index.js"],"sourcesContent":["if (DEFINED_VALUE) {\n console.log('DEFINED_VALUE');\n}\n\nif (DEFINED_TRUE) {\n console.log('DEFINED_VALUE');\n}\n\nif (A.VERY.LONG.DEFINED.VALUE) {\n console.log('A.VERY.LONG.DEFINED.VALUE');\n}\n\nif (process.env.NODE_ENV) {\n console.log('something');\n}\n\nif (process.env.NODE_ENV === 'production') {\n console.log('production');\n}\n\nvar p = process;\n\n// TODO: replacement is not implemented yet\nconsole.log(A.VERY.LONG.DEFINED.VALUE);\nconsole.log(DEFINED_VALUE);\nconsole.log(p.env.NODE_ENV);\n\nif (p.env.NODE_ENV === 'production') {\n console.log('production');\n}\n\n// TODO tenary is not implemented yet\np.env.NODE_ENV == 'production' ? console.log('production') : console.log('development');\n\n// TODO short-circuit is not implemented yet\np.env.NODE_ENV != 'production' && console.log('development');\np.env.NODE_ENV == 'production' && console.log('production');\n"],"names":[],"mappings":"AAAA,wCAAmB;IACjB,QAAQ,GAAG,CAAC;AACd,CAAC;AAED,wCAAkB;IAChB,QAAQ,GAAG,CAAC;AACd,CAAC;AAED,wCAA+B;IAC7B,QAAQ,GAAG,CAAC;AACd,CAAC;AAED,wCAA0B;IACxB,QAAQ,GAAG,CAAC;AACd,CAAC;AAED;;CAEC;AAED,IAAI,IAAI;AAGR,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;AACrC,QAAQ,GAAG,CAAC;AACZ,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ;AAE1B;;CAEC;AAGD,EAAE,GAAG,CAAC,QAAQ,IAAI,eAAe,QAAQ,GAAG,CAAC,gBAAgB,QAAQ,GAAG,CAAC,cAAc;AAGvF,EAAE,GAAG,CAAC,QAAQ,IAAI,gBAAgB,QAAQ,GAAG,CAAC;AAC9C,EAAE,GAAG,CAAC,QAAQ,IAAI,gBAAgB,QAAQ,GAAG,CAAC"}}, {"offset": {"line": 29, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] -} \ No newline at end of file +} diff --git a/crates/turbopack/benches/node_file_trace.rs b/crates/turbopack/benches/node_file_trace.rs index d8ab870790c40..4b23896d1c98a 100644 --- a/crates/turbopack/benches/node_file_trace.rs +++ b/crates/turbopack/benches/node_file_trace.rs @@ -11,7 +11,7 @@ use turbopack::{ ModuleAssetContextVc, }; use turbopack_core::{ - compile_time_info::CompileTimeInfo, + compile_time_info::{CompileTimeDefinesVc, CompileTimeInfo}, context::AssetContext, environment::{EnvironmentIntention, EnvironmentVc, ExecutionEnvironment, NodeJsEnvironment}, reference_type::ReferenceType, @@ -87,6 +87,7 @@ fn bench_emit(b: &mut Bencher, bench_input: &BenchInput) { )), Value::new(EnvironmentIntention::ServerRendering), ), + defines: CompileTimeDefinesVc::empty(), } .cell(); let context = ModuleAssetContextVc::new( diff --git a/crates/turbopack/src/evaluate_context.rs b/crates/turbopack/src/evaluate_context.rs index 382e01baded25..66156eca1b99c 100644 --- a/crates/turbopack/src/evaluate_context.rs +++ b/crates/turbopack/src/evaluate_context.rs @@ -1,6 +1,7 @@ use turbo_tasks::Value; use turbopack_core::{ - compile_time_info::CompileTimeInfoVc, + compile_time_defines, + compile_time_info::CompileTimeInfo, context::AssetContextVc, environment::{EnvironmentIntention, EnvironmentVc, ExecutionEnvironment, NodeJsEnvironment}, resolve::options::ImportMapVc, @@ -18,12 +19,20 @@ pub fn node_evaluate_asset_context( ) -> AssetContextVc { ModuleAssetContextVc::new( transitions.unwrap_or_else(|| TransitionsByNameVc::cell(Default::default())), - CompileTimeInfoVc::new(EnvironmentVc::new( - Value::new(ExecutionEnvironment::NodeJsBuildTime( - NodeJsEnvironment::default().cell(), - )), - Value::new(EnvironmentIntention::Build), - )), + CompileTimeInfo { + environment: EnvironmentVc::new( + Value::new(ExecutionEnvironment::NodeJsBuildTime( + NodeJsEnvironment::default().cell(), + )), + Value::new(EnvironmentIntention::Build), + ), + defines: compile_time_defines!( + process.turbopack = true, + process.env.NODE_ENV = "development", + ) + .cell(), + } + .cell(), ModuleOptionsContext { enable_typescript_transform: true, ..Default::default() From 35daeb40258e1e07d5efb508eb76a5096154153e Mon Sep 17 00:00:00 2001 From: Leah Date: Wed, 22 Feb 2023 17:30:35 +0100 Subject: [PATCH 3/9] fix: allow HMR to recover from hydration errors (#3805) We now store react errors in the error overlay (hydration errors) and if the error overlay receives the "build ok" message after that it will hard reload the page to recover --- .../src/overlay/internal/ReactDevOverlay.tsx | 21 +++++++++++++++++-- .../next-core/js/src/overlay/internal/bus.ts | 10 ++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/crates/next-core/js/src/overlay/internal/ReactDevOverlay.tsx b/crates/next-core/js/src/overlay/internal/ReactDevOverlay.tsx index 433d4b53e1247..24d36689a4d15 100644 --- a/crates/next-core/js/src/overlay/internal/ReactDevOverlay.tsx +++ b/crates/next-core/js/src/overlay/internal/ReactDevOverlay.tsx @@ -32,6 +32,8 @@ type OverlayState = { errors: SupportedErrorEvent[]; refreshState: RefreshState; + + reactError: Error | null; }; function pushErrorFilterDuplicates( @@ -50,6 +52,13 @@ function pushErrorFilterDuplicates( function reducer(state: OverlayState, ev: Bus.BusEvent): OverlayState { switch (ev.type) { case Bus.TYPE_BUILD_OK: { + if (state.reactError != null) { + console.warn( + "[Fast Refresh] performing full reload because your application had an unrecoverable error" + ); + window.location.reload(); + } + return { ...state }; } case Bus.TYPE_TURBOPACK_ISSUES: { @@ -104,6 +113,9 @@ function reducer(state: OverlayState, ev: Bus.BusEvent): OverlayState { return state; } } + case Bus.TYPE_REACT_ERROR: { + return { ...state, reactError: ev.error }; + } default: { return state; } @@ -142,6 +154,7 @@ export default function ReactDevOverlay({ refreshState: { type: "idle", }, + reactError: null, }); React.useEffect(() => { @@ -152,8 +165,12 @@ export default function ReactDevOverlay({ }, [dispatch]); const onComponentError = React.useCallback( - (_error: Error, _componentStack: string | null) => { - // TODO: special handling + (error: Error, componentStack: string | null) => { + Bus.emit({ + type: Bus.TYPE_REACT_ERROR, + error, + componentStack, + }); }, [] ); diff --git a/crates/next-core/js/src/overlay/internal/bus.ts b/crates/next-core/js/src/overlay/internal/bus.ts index b876ad9d2a841..6569e53dfd4f9 100644 --- a/crates/next-core/js/src/overlay/internal/bus.ts +++ b/crates/next-core/js/src/overlay/internal/bus.ts @@ -8,6 +8,7 @@ export const TYPE_BEFORE_REFRESH = "before-fast-refresh"; export const TYPE_REFRESH = "fast-refresh"; export const TYPE_UNHANDLED_ERROR = "unhandled-error"; export const TYPE_UNHANDLED_REJECTION = "unhandled-rejection"; +export const TYPE_REACT_ERROR = "react-error"; export type BuildOk = { type: typeof TYPE_BUILD_OK }; export type TurbopackIssues = { @@ -26,13 +27,20 @@ export type UnhandledRejection = { reason: Error; frames: StackFrame[]; }; +export type ReactError = { + type: typeof TYPE_REACT_ERROR; + error: Error; + componentStack: string | null; +}; + export type BusEvent = | BuildOk | TurbopackIssues | BeforeFastRefresh | FastRefresh | UnhandledError - | UnhandledRejection; + | UnhandledRejection + | ReactError; export type BusEventHandler = (ev: BusEvent) => void; From 9942db86699dc191f6572a619daf3a5e23732a22 Mon Sep 17 00:00:00 2001 From: Alex Kirszenberg Date: Wed, 22 Feb 2023 17:37:00 +0100 Subject: [PATCH 4/9] Make `chunk_content_internal` parallel (#3836) This switches the `chunk_content_internal` function from a sequential BFS to a parallel BFS (+ reverse topological sort at the end). I expected this to make some difference in performance, as traversing references in parallel can lead to better CPU usage (see #3771), but in practice our benchmarks show no significant difference. Real apps might be a different story, but I didn't notice any particular performance improvement on vercel.com either. This implementation is not perfect (we're making more calls to `get_children` than strictly necessary), but I think it's enough to measure a potential performance improvement. Marking this as a draft for now as it's more complicated than the current implementation and there's no clear win to adopting this. --- crates/next-core/src/manifest.rs | 3 +- crates/turbo-tasks/src/graph/get_children.rs | 161 ++++-- .../turbo-tasks/src/graph/graph_traversal.rs | 233 ++++++--- crates/turbo-tasks/src/graph/mod.rs | 5 +- crates/turbo-tasks/src/graph/with_future.rs | 47 ++ crates/turbo-tasks/src/join_iter_ext.rs | 45 +- crates/turbo-tasks/src/lib.rs | 1 + crates/turbopack-core/src/chunk/mod.rs | 465 ++++++++++++------ ...ot_basic_async_chunk_input_index_86ad1c.js | 14 +- ...asic_async_chunk_input_index_86ad1c.js.map | 4 +- ...sts_snapshot_css_css_input_index_531223.js | 20 +- ...snapshot_css_css_input_index_531223.js.map | 6 +- ...hot_emotion_emotion_input_index_f0bbb5.js} | 6 +- ...emotion_emotion_input_index_f0bbb5.js.map} | 0 ...ot_export-alls_cjs-2_input_index_0ea679.js | 26 +- ...xport-alls_cjs-2_input_index_0ea679.js.map | 14 +- ...port-alls_cjs-script_input_index_1cb91d.js | 20 +- ...-alls_cjs-script_input_index_1cb91d.js.map | 4 +- ...shot_import-meta_cjs_input_index_15c5b2.js | 14 +- ..._import-meta_cjs_input_index_15c5b2.js.map | 6 +- ...rt-meta_esm-multiple_input_index_600f46.js | 14 +- ...eta_esm-multiple_input_index_600f46.js.map | 6 +- ...ort-meta_esm-mutable_input_index_821998.js | 14 +- ...meta_esm-mutable_input_index_821998.js.map | 6 +- ...port-meta_esm-object_input_index_3e4780.js | 14 +- ...-meta_esm-object_input_index_3e4780.js.map | 6 +- ...shot_import-meta_esm_input_index_a09dae.js | 14 +- ..._import-meta_esm_input_index_a09dae.js.map | 6 +- ...shot_import-meta_url_input_index_5f9b2b.js | 18 +- ..._import-meta_url_input_index_5f9b2b.js.map | 8 +- ...shot_imports_dynamic_input_index_02e5e6.js | 10 +- ..._imports_dynamic_input_index_02e5e6.js.map | 4 +- ...napshot_imports_json_input_index_6aa119.js | 20 +- ...hot_imports_json_input_index_6aa119.js.map | 4 +- ...s_static-and-dynamic_input_index_dbdca3.js | 24 +- ...atic-and-dynamic_input_index_dbdca3.js.map | 6 +- ...pshot_imports_static_input_index_9cc7ba.js | 8 +- ...t_imports_static_input_index_9cc7ba.js.map | 4 +- ...sforms_input_packages_app_index_7a9339.js} | 6 +- ...ms_input_packages_app_index_7a9339.js.map} | 0 ...ipt_jsconfig-baseurl_input_index_2fc4fa.js | 16 +- ...jsconfig-baseurl_input_index_2fc4fa.js.map | 6 +- ...sconfig-baseurl_input_index_bec392.ts._.js | 16 +- ...fig-baseurl_input_index_bec392.ts._.js.map | 6 +- 44 files changed, 864 insertions(+), 466 deletions(-) create mode 100644 crates/turbo-tasks/src/graph/with_future.rs rename crates/turbopack-tests/tests/snapshot/emotion/emotion/output/{crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_6545dc.js => crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_f0bbb5.js} (98%) rename crates/turbopack-tests/tests/snapshot/emotion/emotion/output/{crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_6545dc.js.map => crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_f0bbb5.js.map} (100%) rename crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/{a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_968e59.js => a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_7a9339.js} (98%) rename crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/{a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_968e59.js.map => a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_7a9339.js.map} (100%) diff --git a/crates/next-core/src/manifest.rs b/crates/next-core/src/manifest.rs index 795f96de125e5..88059027e74db 100644 --- a/crates/next-core/src/manifest.rs +++ b/crates/next-core/src/manifest.rs @@ -65,7 +65,8 @@ impl DevManifestContentSourceVc { this.page_roots.iter().copied(), get_content_source_children, ) - .await? + .await + .completed()? .into_iter() .map(content_source_to_pathname) .try_join() diff --git a/crates/turbo-tasks/src/graph/get_children.rs b/crates/turbo-tasks/src/graph/get_children.rs index 196e9656f0a88..ee1a9c5bc1cbc 100644 --- a/crates/turbo-tasks/src/graph/get_children.rs +++ b/crates/turbo-tasks/src/graph/get_children.rs @@ -2,12 +2,19 @@ use std::{collections::HashSet, future::Future}; use anyhow::Result; +use super::GraphTraversalControlFlow; + /// A trait that allows a graph traversal to get the children of a node. -pub trait GetChildren { - type Children: IntoIterator; +pub trait Visit { + type Children: IntoIterator; + type MapChildren: IntoIterator; type Future: Future>; - fn get_children(&mut self, item: &T) -> Option; + fn get_children(&mut self, item: &T) -> GraphTraversalControlFlow; + fn map_children( + &mut self, + children: Self::Children, + ) -> GraphTraversalControlFlow; } // The different `Impl*` here are necessary in order to avoid the `Conflicting @@ -17,67 +24,155 @@ pub trait GetChildren { pub struct ImplRef; -impl GetChildren for C +impl Visit for C where C: FnMut(&T) -> F, F: Future>, CI: IntoIterator, { type Children = CI; + type MapChildren = Self::Children; type Future = F; - fn get_children(&mut self, item: &T) -> Option { - Some((self)(item)) + fn get_children(&mut self, item: &T) -> GraphTraversalControlFlow { + GraphTraversalControlFlow::Continue((self)(item)) + } + + fn map_children( + &mut self, + children: Self::Children, + ) -> GraphTraversalControlFlow { + GraphTraversalControlFlow::Continue(children) } } pub struct ImplRefOption; -impl GetChildren for C +impl Visit for C where C: FnMut(&T) -> Option, F: Future>, CI: IntoIterator, { type Children = CI; + type MapChildren = Self::Children; + type Future = F; + + fn get_children(&mut self, item: &T) -> GraphTraversalControlFlow { + match (self)(item) { + Some(future) => GraphTraversalControlFlow::Continue(future), + None => GraphTraversalControlFlow::Skip, + } + } + + fn map_children( + &mut self, + children: Self::Children, + ) -> GraphTraversalControlFlow { + GraphTraversalControlFlow::Continue(children) + } +} + +pub struct ImplRefControlFlow; + +impl Visit for C +where + T: Clone, + C: FnMut(&T) -> GraphTraversalControlFlow, + F: Future>, + CI: IntoIterator, +{ + type Children = CI; + type MapChildren = Self::Children; type Future = F; - fn get_children(&mut self, item: &T) -> Option { + fn get_children(&mut self, item: &T) -> GraphTraversalControlFlow { (self)(item) } + + fn map_children( + &mut self, + children: Self::Children, + ) -> GraphTraversalControlFlow { + GraphTraversalControlFlow::Continue(children) + } } pub struct ImplValue; -impl GetChildren for C +impl Visit for C where - T: Copy, + T: Clone, C: FnMut(T) -> F, F: Future>, CI: IntoIterator, { type Children = CI; + type MapChildren = Self::Children; type Future = F; - fn get_children(&mut self, item: &T) -> Option { - Some((self)(*item)) + fn get_children(&mut self, item: &T) -> GraphTraversalControlFlow { + GraphTraversalControlFlow::Continue((self)(item.clone())) + } + + fn map_children( + &mut self, + children: Self::Children, + ) -> GraphTraversalControlFlow { + GraphTraversalControlFlow::Continue(children) } } pub struct ImplValueOption; -impl GetChildren for C +impl Visit for C where - T: Copy, + T: Clone, C: FnMut(T) -> Option, F: Future>, CI: IntoIterator, { type Children = CI; + type MapChildren = Self::Children; type Future = F; - fn get_children(&mut self, item: &T) -> Option { - (self)(*item) + fn get_children(&mut self, item: &T) -> GraphTraversalControlFlow { + match (self)(item.clone()) { + Some(future) => GraphTraversalControlFlow::Continue(future), + None => GraphTraversalControlFlow::Skip, + } + } + + fn map_children( + &mut self, + children: Self::Children, + ) -> GraphTraversalControlFlow { + GraphTraversalControlFlow::Continue(children) + } +} + +pub struct ImplValueControlFlow; + +impl Visit for C +where + T: Clone, + C: FnMut(T) -> GraphTraversalControlFlow, + F: Future>, + CI: IntoIterator, +{ + type Children = CI; + type MapChildren = Self::Children; + type Future = F; + + fn get_children(&mut self, item: &T) -> GraphTraversalControlFlow { + (self)(item.clone()) + } + + fn map_children( + &mut self, + children: Self::Children, + ) -> GraphTraversalControlFlow { + GraphTraversalControlFlow::Continue(children) } } @@ -85,37 +180,47 @@ where /// visited. This is necessary to avoid repeated work when traversing non-tree /// graphs (i.e. where a child can have more than one parent). #[derive(Debug)] -pub struct SkipDuplicates { - get_children: C, +pub struct SkipDuplicates { + visit: C, visited: HashSet, - _phantom: std::marker::PhantomData, + _a: std::marker::PhantomData, + _impl: std::marker::PhantomData, } -impl SkipDuplicates { +impl SkipDuplicates { /// Create a new [`SkipDuplicates`] that wraps the given [`GetChildren`]. - pub fn new(get_children: C) -> Self { + pub fn new(visit: C) -> Self { Self { - get_children, + visit, visited: HashSet::new(), - _phantom: std::marker::PhantomData, + _a: std::marker::PhantomData, + _impl: std::marker::PhantomData, } } } -impl GetChildren for SkipDuplicates +impl Visit for SkipDuplicates where T: Eq + std::hash::Hash + Clone, - C: GetChildren, + C: Visit, { type Children = C::Children; + type MapChildren = C::MapChildren; type Future = C::Future; - fn get_children(&mut self, item: &T) -> Option { + fn get_children(&mut self, item: &T) -> GraphTraversalControlFlow { if !self.visited.contains(item) { self.visited.insert(item.clone()); - self.get_children.get_children(item) + self.visit.get_children(item) } else { - None + GraphTraversalControlFlow::Skip } } + + fn map_children( + &mut self, + children: Self::Children, + ) -> GraphTraversalControlFlow { + self.visit.map_children(children) + } } diff --git a/crates/turbo-tasks/src/graph/graph_traversal.rs b/crates/turbo-tasks/src/graph/graph_traversal.rs index ff7dac484b044..96ad03fb13d6a 100644 --- a/crates/turbo-tasks/src/graph/graph_traversal.rs +++ b/crates/turbo-tasks/src/graph/graph_traversal.rs @@ -1,10 +1,9 @@ -use std::{future::Future, pin::Pin, task::ready}; +use std::{future::Future, pin::Pin}; use anyhow::Result; use futures::{stream::FuturesUnordered, Stream}; -use pin_project_lite::pin_project; -use super::{graph_store::GraphStore, GetChildren}; +use super::{graph_store::GraphStore, with_future::With, Visit}; /// [`GraphTraversal`] is a utility type that can be used to traverse a graph of /// nodes, where each node can have a variable number of children. The traversal @@ -17,115 +16,213 @@ pub struct GraphTraversal { impl GraphTraversal { /// Visits the graph starting from the given `roots`, and returns a future /// that will resolve to the traversal result. - pub fn visit(roots: I, mut get_children: C) -> GraphTraversalFuture + pub fn visit(roots: I, mut visit: C) -> GraphTraversalFuture where S: GraphStore, I: IntoIterator, - C: GetChildren, + C: Visit, { let mut store = S::default(); let futures = FuturesUnordered::new(); for item in roots { let (parent_handle, item) = store.insert(None, item); - if let Some(future) = get_children.get_children(item) { - futures.push(WithHandle::new(future, parent_handle)); + match visit.get_children(item) { + GraphTraversalControlFlow::Continue(future) => { + futures.push(With::new(future, parent_handle)); + } + GraphTraversalControlFlow::Abort(abort) => { + return GraphTraversalFuture { + state: GraphTraversalState::Aborted { abort }, + }; + } + GraphTraversalControlFlow::Skip => {} } } GraphTraversalFuture { - store, - futures, - get_children, + state: GraphTraversalState::Running(GraphTraversalRunningState { + store, + futures, + visit, + }), } } } /// A future that resolves to a [`GraphStore`] containing the result of a graph /// traversal. -pub struct GraphTraversalFuture +pub struct GraphTraversalFuture +where + S: GraphStore, + C: Visit, +{ + state: GraphTraversalState, +} + +enum GraphTraversalState where S: GraphStore, - C: GetChildren, + C: Visit, +{ + Completed, + Aborted { abort: A }, + Running(GraphTraversalRunningState), +} + +struct GraphTraversalRunningState +where + S: GraphStore, + C: Visit, { store: S, - futures: FuturesUnordered>, - get_children: C, + futures: FuturesUnordered>, + visit: C, } -impl Future for GraphTraversalFuture +impl Default for GraphTraversalState where S: GraphStore, - C: GetChildren, + C: Visit, { - type Output = Result; + fn default() -> Self { + GraphTraversalState::Completed + } +} + +pub enum GraphTraversalResult { + Completed(R), + Aborted(A), +} + +impl GraphTraversalResult { + pub fn completed(self) -> R { + match self { + GraphTraversalResult::Completed(result) => result, + GraphTraversalResult::Aborted(_) => unreachable!("the type parameter `A` is `!`"), + } + } +} + +impl Future for GraphTraversalFuture +where + S: GraphStore, + C: Visit, +{ + type Output = GraphTraversalResult, A>; fn poll( self: std::pin::Pin<&mut Self>, cx: &mut std::task::Context<'_>, ) -> std::task::Poll { let this = unsafe { self.get_unchecked_mut() }; - loop { - let futures = unsafe { Pin::new_unchecked(&mut this.futures) }; - if let Some((parent_handle, result)) = ready!(futures.poll_next(cx)) { - match result { - Ok(children) => { - for item in children { - let (child_handle, item) = - this.store.insert(Some(parent_handle.clone()), item); - - if let Some(future) = this.get_children.get_children(item) { - this.futures.push(WithHandle::new(future, child_handle)); + + let result; + (this.state, result) = match std::mem::take(&mut this.state) { + GraphTraversalState::Completed => { + panic!("polled after completion") + } + GraphTraversalState::Aborted { abort } => ( + GraphTraversalState::Completed, + std::task::Poll::Ready(GraphTraversalResult::Aborted(abort)), + ), + GraphTraversalState::Running(mut running) => 'outer: loop { + let futures_pin = unsafe { Pin::new_unchecked(&mut running.futures) }; + match futures_pin.poll_next(cx) { + std::task::Poll::Ready(Some((parent_handle, Ok(children)))) => { + match running.visit.map_children(children) { + GraphTraversalControlFlow::Continue(children) => { + for item in children { + let (child_handle, item) = + running.store.insert(Some(parent_handle.clone()), item); + + match running.visit.get_children(item) { + GraphTraversalControlFlow::Continue(future) => { + running.futures.push(With::new(future, child_handle)); + } + GraphTraversalControlFlow::Skip => {} + GraphTraversalControlFlow::Abort(abort) => { + break 'outer ( + GraphTraversalState::Completed, + std::task::Poll::Ready( + GraphTraversalResult::Aborted(abort), + ), + ); + } + } + } + } + GraphTraversalControlFlow::Skip => {} + GraphTraversalControlFlow::Abort(abort) => { + break 'outer ( + GraphTraversalState::Completed, + std::task::Poll::Ready(GraphTraversalResult::Aborted(abort)), + ); } } } - Err(err) => return std::task::Poll::Ready(Err(err)), + std::task::Poll::Ready(Some((_, Err(err)))) => { + break ( + GraphTraversalState::Completed, + std::task::Poll::Ready(GraphTraversalResult::Completed(Err(err))), + ); + } + std::task::Poll::Ready(None) => { + break ( + GraphTraversalState::Completed, + std::task::Poll::Ready(GraphTraversalResult::Completed(Ok( + running.store + ))), + ); + } + std::task::Poll::Pending => { + break ( + GraphTraversalState::Running(running), + std::task::Poll::Pending, + ); + } } - } else { - return std::task::Poll::Ready(Ok(std::mem::take(&mut this.store))); - } - } + }, + }; + + result } } -pin_project! { - struct WithHandle - where - T: Future, - { - #[pin] - future: T, - handle: Option

, - } +/// The control flow of a graph traversal. +pub enum GraphTraversalControlFlow { + /// The traversal should continue with the given future. + Continue(C), + /// The traversal should abort and return immediately. + Abort(A), + /// The traversal should skip the current node. + Skip, } -impl WithHandle -where - T: Future, -{ - pub fn new(future: T, handle: H) -> Self { - Self { - future, - handle: Some(handle), +impl GraphTraversalControlFlow { + /// Map the continue value of this control flow. + pub fn map_continue(self, mut map: Map) -> GraphTraversalControlFlow + where + Map: FnMut(C) -> Mapped, + { + match self { + GraphTraversalControlFlow::Continue(future) => { + GraphTraversalControlFlow::Continue(map(future)) + } + GraphTraversalControlFlow::Abort(abort) => GraphTraversalControlFlow::Abort(abort), + GraphTraversalControlFlow::Skip => GraphTraversalControlFlow::Skip, } } -} -impl Future for WithHandle -where - T: Future, -{ - type Output = (H, T::Output); - - fn poll( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll { - let this = self.project(); - match this.future.poll(cx) { - std::task::Poll::Ready(result) => std::task::Poll::Ready(( - this.handle.take().expect("polled after completion"), - result, - )), - std::task::Poll::Pending => std::task::Poll::Pending, + /// Map the abort value of this control flow. + pub fn map_abort(self, mut map: Map) -> GraphTraversalControlFlow + where + Map: FnMut(A) -> Mapped, + { + match self { + GraphTraversalControlFlow::Continue(future) => { + GraphTraversalControlFlow::Continue(future) + } + GraphTraversalControlFlow::Abort(abort) => GraphTraversalControlFlow::Abort(map(abort)), + GraphTraversalControlFlow::Skip => GraphTraversalControlFlow::Skip, } } } diff --git a/crates/turbo-tasks/src/graph/mod.rs b/crates/turbo-tasks/src/graph/mod.rs index c5505c9366e95..f1bd232efa32a 100644 --- a/crates/turbo-tasks/src/graph/mod.rs +++ b/crates/turbo-tasks/src/graph/mod.rs @@ -3,8 +3,9 @@ mod graph_store; mod graph_traversal; mod non_deterministic; mod reverse_topological; +mod with_future; -pub use get_children::{GetChildren, SkipDuplicates}; -pub use graph_traversal::GraphTraversal; +pub use get_children::{SkipDuplicates, Visit}; +pub use graph_traversal::{GraphTraversal, GraphTraversalControlFlow, GraphTraversalResult}; pub use non_deterministic::NonDeterministic; pub use reverse_topological::ReverseTopological; diff --git a/crates/turbo-tasks/src/graph/with_future.rs b/crates/turbo-tasks/src/graph/with_future.rs new file mode 100644 index 0000000000000..bca179b8b08d7 --- /dev/null +++ b/crates/turbo-tasks/src/graph/with_future.rs @@ -0,0 +1,47 @@ +use std::future::Future; + +use pin_project_lite::pin_project; + +pin_project! { + pub struct With + where + T: Future, + { + #[pin] + future: T, + handle: Option, + } +} + +impl With +where + T: Future, +{ + pub fn new(future: T, handle: H) -> Self { + Self { + future, + handle: Some(handle), + } + } +} + +impl Future for With +where + T: Future, +{ + type Output = (H, T::Output); + + fn poll( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + ) -> std::task::Poll { + let this = self.project(); + match this.future.poll(cx) { + std::task::Poll::Ready(result) => std::task::Poll::Ready(( + this.handle.take().expect("polled after completion"), + result, + )), + std::task::Poll::Pending => std::task::Poll::Pending, + } + } +} diff --git a/crates/turbo-tasks/src/join_iter_ext.rs b/crates/turbo-tasks/src/join_iter_ext.rs index 263eb5f54705f..50bdc4c7fbe42 100644 --- a/crates/turbo-tasks/src/join_iter_ext.rs +++ b/crates/turbo-tasks/src/join_iter_ext.rs @@ -5,33 +5,35 @@ use futures::{ future::{join_all, JoinAll}, FutureExt, }; +use pin_project_lite::pin_project; -/// Future for the [JoinIterExt::join] method. -pub struct Join -where - F: Future, -{ - inner: JoinAll, +pin_project! { + /// Future for the [JoinIterExt::join] method. + pub struct Join + where + F: Future, + { + #[pin] + inner: JoinAll, + } } impl Future for Join where - T: Unpin, F: Future, { type Output = Vec; fn poll( - mut self: std::pin::Pin<&mut Self>, + self: std::pin::Pin<&mut Self>, cx: &mut std::task::Context<'_>, ) -> std::task::Poll { - self.inner.poll_unpin(cx) + self.project().inner.poll(cx) } } pub trait JoinIterExt: Iterator where - T: Unpin, F: Future, { /// Returns a future that resolves to a vector of the outputs of the futures @@ -39,26 +41,28 @@ where fn join(self) -> Join; } -/// Future for the [TryJoinIterExt::try_join] method. -pub struct TryJoin -where - F: Future, -{ - inner: JoinAll, +pin_project! { + /// Future for the [TryJoinIterExt::try_join] method. + pub struct TryJoin + where + F: Future, + { + #[pin] + inner: JoinAll, + } } impl Future for TryJoin where - T: Unpin, F: Future>, { type Output = Result>; fn poll( - mut self: std::pin::Pin<&mut Self>, + self: std::pin::Pin<&mut Self>, cx: &mut std::task::Context<'_>, ) -> std::task::Poll { - match self.inner.poll_unpin(cx) { + match self.project().inner.poll_unpin(cx) { std::task::Poll::Ready(res) => { std::task::Poll::Ready(res.into_iter().collect::>>()) } @@ -69,7 +73,6 @@ where pub trait TryJoinIterExt: Iterator where - T: Unpin, F: Future>, { /// Returns a future that resolves to a vector of the outputs of the futures @@ -82,7 +85,6 @@ where impl JoinIterExt for It where - T: Unpin, F: Future, IF: IntoFuture, It: Iterator, @@ -96,7 +98,6 @@ where impl TryJoinIterExt for It where - T: Unpin, F: Future>, IF: IntoFuture, IntoFuture = F>, It: Iterator, diff --git a/crates/turbo-tasks/src/lib.rs b/crates/turbo-tasks/src/lib.rs index 2c55fdb3b096a..07469abfad2cf 100644 --- a/crates/turbo-tasks/src/lib.rs +++ b/crates/turbo-tasks/src/lib.rs @@ -32,6 +32,7 @@ #![feature(error_generic_member_access)] #![feature(provide_any)] #![feature(new_uninit)] +#![feature(never_type)] pub mod backend; mod collectibles; diff --git a/crates/turbopack-core/src/chunk/mod.rs b/crates/turbopack-core/src/chunk/mod.rs index ef16c9499826c..df25fee7538b3 100644 --- a/crates/turbopack-core/src/chunk/mod.rs +++ b/crates/turbopack-core/src/chunk/mod.rs @@ -3,16 +3,20 @@ pub mod dev; pub mod optimize; use std::{ - collections::VecDeque, + collections::HashSet, fmt::{Debug, Display}, + future::Future, + marker::PhantomData, }; use anyhow::{anyhow, Result}; -use indexmap::IndexSet; use serde::{Deserialize, Serialize}; use turbo_tasks::{ debug::ValueDebugFormat, - graph::{GraphTraversal, ReverseTopological, SkipDuplicates}, + graph::{ + GraphTraversal, GraphTraversalControlFlow, GraphTraversalResult, ReverseTopological, + SkipDuplicates, Visit, + }, primitives::{BoolVc, StringVc}, trace::TraceRawVcs, TryJoinIterExt, ValueToString, ValueToStringVc, @@ -130,7 +134,8 @@ impl ChunkGroupVc { [self.await?.entry], SkipDuplicates::new(get_chunk_children), ) - .await? + .await + .completed()? .into_iter() .collect(); @@ -362,188 +367,328 @@ pub trait FromChunkableAsset: ChunkItem + Sized + Debug { ) -> Result>; } -pub async fn chunk_content_split( +pub async fn chunk_content_split( context: ChunkingContextVc, entry: AssetVc, additional_entries: Option, -) -> Result> { - chunk_content_internal(context, entry, additional_entries, true) +) -> Result> +where + I: FromChunkableAsset + Eq + std::hash::Hash + Clone, +{ + chunk_content_internal_parallel(context, entry, additional_entries, true) .await .map(|o| o.unwrap()) } -pub async fn chunk_content( +pub async fn chunk_content( context: ChunkingContextVc, entry: AssetVc, additional_entries: Option, -) -> Result>> { - chunk_content_internal(context, entry, additional_entries, false).await +) -> Result>> +where + I: FromChunkableAsset + Eq + std::hash::Hash + Clone, +{ + chunk_content_internal_parallel(context, entry, additional_entries, false).await } -enum ChunkContentWorkItem { - AssetReferences(AssetReferencesVc), - ResolveResult { - result: ResolveResultVc, - reference: AssetReferenceVc, - chunking_type: ChunkingType, - }, +#[derive(Eq, PartialEq, Clone, Hash)] +enum ChunkContentGraphNode { + // Chunk items that are placed into the current chunk + ChunkItem(I), + // Chunks that are loaded in parallel to the current chunk + Chunk(ChunkVc), + // Chunk groups that are referenced from the current chunk, but + // not loaded in parallel + AsyncChunkGroup(ChunkGroupVc), + ExternalAssetReference(AssetReferenceVc), } -async fn chunk_content_internal( - context: ChunkingContextVc, +#[derive(Clone, Copy)] +struct ChunkContentContext { + chunking_context: ChunkingContextVc, entry: AssetVc, - additional_entries: Option, split: bool, -) -> Result>> { - let mut chunk_items = Vec::new(); - let mut processed_assets = IndexSet::new(); - let mut chunks = Vec::new(); - let mut async_chunk_groups = Vec::new(); - let mut external_asset_references = Vec::new(); - let mut queue = VecDeque::with_capacity(32); - - let chunk_item = I::from_asset(context, entry).await?.unwrap(); - queue.push_back(ChunkContentWorkItem::AssetReferences( - chunk_item.references(), - )); - chunk_items.push(chunk_item); - processed_assets.insert((ChunkingType::Placed, entry)); +} - if let Some(additional_entries) = additional_entries { - for entry in &*additional_entries.await? { - let chunk_item = I::from_asset(context, *entry).await?.unwrap(); - queue.push_back(ChunkContentWorkItem::AssetReferences( - chunk_item.references(), - )); - chunk_items.push(chunk_item); - processed_assets.insert((ChunkingType::Placed, *entry)); +async fn reference_to_graph_nodes( + context: ChunkContentContext, + reference: AssetReferenceVc, +) -> Result, ChunkContentGraphNode)>> +where + I: FromChunkableAsset + Eq + std::hash::Hash + Clone, +{ + let Some(chunkable_asset_reference) = ChunkableAssetReferenceVc::resolve_from(reference).await? else { + return Ok(vec![(None, ChunkContentGraphNode::ExternalAssetReference(reference))]); + }; + + let Some(chunking_type) = *chunkable_asset_reference.chunking_type(context.chunking_context).await? else { + return Ok(vec![(None, ChunkContentGraphNode::ExternalAssetReference(reference))]); + }; + + let result = reference.resolve_reference().await?; + + let assets = result.primary.iter().filter_map({ + |result| { + if let PrimaryResolveResult::Asset(asset) = *result { + return Some(asset); + } + None } - } - - 'outer: while let Some(item) = queue.pop_front() { - match item { - ChunkContentWorkItem::AssetReferences(item) => { - for r in item.await?.iter() { - if let Some(pc) = ChunkableAssetReferenceVc::resolve_from(r).await? { - if let Some(chunking_type) = *pc.chunking_type(context).await? { - queue.push_back(ChunkContentWorkItem::ResolveResult { - result: r.resolve_reference(), - reference: *r, - chunking_type, - }); - continue; - } - } - external_asset_references.push(*r); + }); + + let mut graph_nodes = vec![]; + + for asset in assets { + let chunkable_asset = match ChunkableAssetVc::resolve_from(asset).await? { + Some(chunkable_asset) => chunkable_asset, + _ => { + return Ok(vec![( + None, + ChunkContentGraphNode::ExternalAssetReference(reference), + )]); + } + }; + + match chunking_type { + ChunkingType::Placed => { + if let Some(chunk_item) = I::from_asset(context.chunking_context, asset).await? { + graph_nodes.push(( + Some((asset, chunking_type)), + ChunkContentGraphNode::ChunkItem(chunk_item), + )); + } else { + return Err(anyhow!( + "Asset {} was requested to be placed into the same chunk, but this \ + wasn't possible", + asset.path().to_string().await? + )); } } - ChunkContentWorkItem::ResolveResult { - result, - reference, - chunking_type, - } => { - // It's important to temporary store these results in these variables - // so that we can cancel to complete list of assets by that references together - // and fallback to an external reference completely - // The cancellation is at these "continue 'outer;" lines - - // Chunk items that are placed into the current chunk - let mut inner_chunk_items = Vec::new(); - - // Chunks that are loaded in parallel to the current chunk - let mut inner_chunks = Vec::new(); - - // Chunk groups that are referenced from the current chunk, but - // not loaded in parallel - let mut inner_chunk_groups = Vec::new(); - - let result = result.await?; - let assets = result.primary.iter().filter_map(|result| { - if let PrimaryResolveResult::Asset(asset) = *result { - if processed_assets.insert((chunking_type, asset)) { - return Some(asset); - } - } - None - }); - for asset in assets { - let chunkable_asset = match ChunkableAssetVc::resolve_from(asset).await? { - Some(chunkable_asset) => chunkable_asset, - _ => { - external_asset_references.push(reference); - continue 'outer; - } - }; - - match chunking_type { - ChunkingType::Placed => { - if let Some(chunk_item) = I::from_asset(context, asset).await? { - inner_chunk_items.push(chunk_item); - } else { - return Err(anyhow!( - "Asset {} was requested to be placed into the same chunk, but \ - this wasn't possible", - asset.path().to_string().await? - )); - } - } - ChunkingType::Parallel => { - let chunk = chunkable_asset.as_chunk(context); - inner_chunks.push(chunk); - } - ChunkingType::PlacedOrParallel => { - // heuristic for being in the same chunk - if !split && *context.can_be_in_same_chunk(entry, asset).await? { - // chunk item, chunk or other asset? - if let Some(chunk_item) = I::from_asset(context, asset).await? { - inner_chunk_items.push(chunk_item); - continue; - } - } - - let chunk = chunkable_asset.as_chunk(context); - inner_chunks.push(chunk); - } - ChunkingType::Separate => { - inner_chunk_groups - .push(ChunkGroupVc::from_asset(chunkable_asset, context)); - } - ChunkingType::SeparateAsync => { - if let Some(chunk_item) = - I::from_async_asset(context, chunkable_asset).await? - { - inner_chunk_items.push(chunk_item); - } else { - external_asset_references.push(reference); - continue 'outer; - } - } + ChunkingType::Parallel => { + let chunk = chunkable_asset.as_chunk(context.chunking_context); + graph_nodes.push(( + Some((asset, chunking_type)), + ChunkContentGraphNode::Chunk(chunk), + )); + } + ChunkingType::PlacedOrParallel => { + // heuristic for being in the same chunk + if !context.split + && *context + .chunking_context + .can_be_in_same_chunk(context.entry, asset) + .await? + { + // chunk item, chunk or other asset? + if let Some(chunk_item) = I::from_asset(context.chunking_context, asset).await? + { + graph_nodes.push(( + Some((asset, chunking_type)), + ChunkContentGraphNode::ChunkItem(chunk_item), + )); + continue; } } - let prev_chunk_items = chunk_items.len(); - - for chunk_item in inner_chunk_items { - queue.push_back(ChunkContentWorkItem::AssetReferences( - chunk_item.references(), + let chunk = chunkable_asset.as_chunk(context.chunking_context); + graph_nodes.push(( + Some((asset, chunking_type)), + ChunkContentGraphNode::Chunk(chunk), + )); + } + ChunkingType::Separate => { + graph_nodes.push(( + Some((asset, chunking_type)), + ChunkContentGraphNode::AsyncChunkGroup(ChunkGroupVc::from_asset( + chunkable_asset, + context.chunking_context, + )), + )); + } + ChunkingType::SeparateAsync => { + if let Some(manifest_loader_item) = + I::from_async_asset(context.chunking_context, chunkable_asset).await? + { + graph_nodes.push(( + Some((asset, chunking_type)), + ChunkContentGraphNode::ChunkItem(manifest_loader_item), )); - chunk_items.push(chunk_item); + } else { + return Ok(vec![( + None, + ChunkContentGraphNode::ExternalAssetReference(reference), + )]); } - chunks.extend(inner_chunks); - async_chunk_groups.extend(inner_chunk_groups); - - // Make sure the chunk doesn't become too large. - // This will hurt performance in many aspects. - let chunk_items_count = chunk_items.len(); - if !split - && prev_chunk_items != chunk_items_count - && chunk_items_count > 5000 - && prev_chunk_items > 1 - { - // Chunk is too large, cancel this algorithm and - // restart with splitting from the start - return Ok(None); + } + } + } + + Ok(graph_nodes) +} + +async fn chunk_item_to_graph_nodes( + context: ChunkContentContext, + chunk_item: I, +) -> Result> +where + I: FromChunkableAsset + Eq + std::hash::Hash + Clone, +{ + Ok(chunk_item + .references() + .await? + .into_iter() + .map(|reference| reference_to_graph_nodes::(context, *reference)) + .try_join() + .await? + .into_iter() + .flatten()) +} + +/// The maximum number of chunk items that can be in a chunk before we split it +/// into multiple chunks. +const MAX_CHUNK_ITEMS_COUNT: usize = 5000; + +struct ChunkContentVisit { + context: ChunkContentContext, + chunk_items_count: usize, + processed_assets: HashSet<(ChunkingType, AssetVc)>, + _phantom: PhantomData, +} + +type ChunkItemToGraphNodesChildren = + impl Iterator, ChunkContentGraphNode)>; + +type ChunkItemToGraphNodesFuture = + impl Future>>; + +impl Visit, ()> for ChunkContentVisit +where + I: FromChunkableAsset + Eq + std::hash::Hash + Clone, +{ + type Children = ChunkItemToGraphNodesChildren; + type MapChildren = Vec>; + type Future = ChunkItemToGraphNodesFuture; + + fn get_children( + &mut self, + node: &ChunkContentGraphNode, + ) -> GraphTraversalControlFlow { + // TODO(alexkirsz) Right now the output type of the traversal is the same as the + // input type. If we can have them be separate types, we wouldn't need + // to call `get_children` on graph nodes that we know not to have any children + // (i.e. anything that's not a chunk item). + let ChunkContentGraphNode::ChunkItem(chunk_item) = node else { + return GraphTraversalControlFlow::Skip; + }; + + GraphTraversalControlFlow::Continue(chunk_item_to_graph_nodes::( + self.context, + chunk_item.clone(), + )) + } + + fn map_children( + &mut self, + children: Self::Children, + ) -> GraphTraversalControlFlow { + let mut map_children = vec![]; + + for (option_key, child) in children { + if let Some((asset, chunking_type)) = option_key { + if self.processed_assets.insert((chunking_type, asset)) { + if let ChunkContentGraphNode::ChunkItem(_) = &child { + self.chunk_items_count += 1; + } + map_children.push(child); } + } else { + map_children.push(child); + } + } + + // Make sure the chunk doesn't become too large. + // This will hurt performance in many aspects. + if !self.context.split && self.chunk_items_count >= MAX_CHUNK_ITEMS_COUNT { + // Chunk is too large, cancel this algorithm and restart with splitting from the + // start. + return GraphTraversalControlFlow::Abort(()); + } + + GraphTraversalControlFlow::Continue(map_children) + } +} + +async fn chunk_content_internal_parallel( + chunking_context: ChunkingContextVc, + entry: AssetVc, + additional_entries: Option, + split: bool, +) -> Result>> +where + I: FromChunkableAsset + Eq + std::hash::Hash + Clone, +{ + let mut processed_assets: HashSet<(ChunkingType, AssetVc)> = HashSet::default(); + + let additional_entries = if let Some(additional_entries) = additional_entries { + additional_entries.await?.clone_value().into_iter() + } else { + vec![].into_iter() + }; + + let entries = [entry].into_iter().chain(additional_entries); + for entry in entries.clone() { + processed_assets.insert((ChunkingType::Placed, entry)); + } + + let root_graph_nodes = entries + .map(|entry| async move { + Ok(ChunkContentGraphNode::ChunkItem( + I::from_asset(chunking_context, entry).await?.unwrap(), + )) + }) + .try_join() + .await?; + + processed_assets.insert((ChunkingType::Placed, entry)); + + let context = ChunkContentContext { + chunking_context, + entry, + split, + }; + + let visit = ChunkContentVisit { + context, + chunk_items_count: root_graph_nodes.len(), + processed_assets, + _phantom: PhantomData, + }; + + let GraphTraversalResult::Completed(traversal_result) = + GraphTraversal::>::visit(root_graph_nodes, visit).await else { + return Ok(None); + }; + + let graph_nodes: Vec<_> = traversal_result?.into_iter().collect(); + + let mut chunk_items = Vec::new(); + let mut chunks = Vec::new(); + let mut async_chunk_groups = Vec::new(); + let mut external_asset_references = Vec::new(); + + for graph_node in graph_nodes { + match graph_node { + ChunkContentGraphNode::ChunkItem(chunk_item) => { + chunk_items.push(chunk_item); + } + ChunkContentGraphNode::Chunk(chunk) => { + chunks.push(chunk); + } + ChunkContentGraphNode::AsyncChunkGroup(async_chunk_group) => { + async_chunk_groups.push(async_chunk_group); + } + ChunkContentGraphNode::ExternalAssetReference(reference) => { + external_asset_references.push(reference); } } } diff --git a/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_86ad1c.js b/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_86ad1c.js index 07d30996978d4..bf04066a8a4e2 100644 --- a/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_86ad1c.js +++ b/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_86ad1c.js @@ -1,12 +1,5 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_86ad1c.js", { -"[project]/crates/turbopack-tests/tests/snapshot/basic/async_chunk/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { - -__turbopack_require__("[project]/crates/turbopack-tests/tests/snapshot/basic/async_chunk/input/import.js/manifest-loader.js")(__turbopack_import__).then(({ foo })=>{ - foo(true); -}); - -}.call(this) }), "[project]/crates/turbopack-tests/tests/snapshot/basic/async_chunk/input/import.js/manifest-loader.js": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { @@ -16,6 +9,13 @@ __turbopack_export_value__((__turbopack_import__) => { }).then(() => __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/basic/async_chunk/input/import.js (ecmascript)")); }); })()), +"[project]/crates/turbopack-tests/tests/snapshot/basic/async_chunk/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { + +__turbopack_require__("[project]/crates/turbopack-tests/tests/snapshot/basic/async_chunk/input/import.js/manifest-loader.js")(__turbopack_import__).then(({ foo })=>{ + foo(true); +}); + +}.call(this) }), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_015422.js"))) return true; instantiateRuntimeModule("[project]/crates/turbopack-tests/tests/snapshot/basic/async_chunk/input/index.js (ecmascript)"); diff --git a/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_86ad1c.js.map b/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_86ad1c.js.map index 384725ec6353a..360f6cbf1bbdd 100644 --- a/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_86ad1c.js.map +++ b/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_86ad1c.js.map @@ -1,6 +1,6 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/basic/async_chunk/input/index.js"],"sourcesContent":["import(\"./import\").then(({ foo }) => {\n foo(true);\n});\n"],"names":[],"mappings":"AAAA,oJAAmB,IAAI,CAAC,CAAC,EAAE,IAAG,EAAE,GAAK;IACnC,IAAI,IAAI;AACV"}}, - {"offset": {"line": 7, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] + {"offset": {"line": 13, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/basic/async_chunk/input/index.js"],"sourcesContent":["import(\"./import\").then(({ foo }) => {\n foo(true);\n});\n"],"names":[],"mappings":"AAAA,oJAAmB,IAAI,CAAC,CAAC,EAAE,IAAG,EAAE,GAAK;IACnC,IAAI,IAAI;AACV"}}, + {"offset": {"line": 16, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/css/css/output/crates_turbopack-tests_tests_snapshot_css_css_input_index_531223.js b/crates/turbopack-tests/tests/snapshot/css/css/output/crates_turbopack-tests_tests_snapshot_css_css_input_index_531223.js index 9fbdba47cebd8..b9335b4afb0c3 100644 --- a/crates/turbopack-tests/tests/snapshot/css/css/output/crates_turbopack-tests_tests_snapshot_css_css_input_index_531223.js +++ b/crates/turbopack-tests/tests/snapshot/css/css/output/crates_turbopack-tests_tests_snapshot_css_css_input_index_531223.js @@ -1,5 +1,15 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_css_css_input_index_531223.js", { +"[project]/crates/turbopack-tests/tests/snapshot/css/css/input/style.module.css (css module)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { + +__turbopack_export_value__({ + "another-composed-module-style": "another-composed-module-style__style__9bcf751c" + " " + __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css (css module)")["foo-module-style"], + "composed-module-style": "composed-module-style__style__9bcf751c" + " " + __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css (css module)")["foo-module-style"], + "inner": "inner__style__9bcf751c", + "module-style": "module-style__style__9bcf751c", +}); + +})()), "[project]/crates/turbopack-tests/tests/snapshot/css/css/input/index.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$css$2f$css$2f$input$2f$node_modules$2f$foo$2f$style$2e$module$2e$css__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css (css module)"); @@ -12,16 +22,6 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests ; console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$css$2f$css$2f$input$2f$style$2e$module$2e$css__["default"], __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$css$2f$css$2f$input$2f$node_modules$2f$foo$2f$style$2e$module$2e$css__["default"]); -})()), -"[project]/crates/turbopack-tests/tests/snapshot/css/css/input/style.module.css (css module)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { - -__turbopack_export_value__({ - "another-composed-module-style": "another-composed-module-style__style__9bcf751c" + " " + __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css (css module)")["foo-module-style"], - "composed-module-style": "composed-module-style__style__9bcf751c" + " " + __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css (css module)")["foo-module-style"], - "inner": "inner__style__9bcf751c", - "module-style": "module-style__style__9bcf751c", -}); - })()), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_css_css_input_index_42cf42.js") && loadedChunks.has("output/8697f_foo_style.module.css._.js"))) return true; diff --git a/crates/turbopack-tests/tests/snapshot/css/css/output/crates_turbopack-tests_tests_snapshot_css_css_input_index_531223.js.map b/crates/turbopack-tests/tests/snapshot/css/css/output/crates_turbopack-tests_tests_snapshot_css_css_input_index_531223.js.map index 73b0d8ea4ae2f..c81cb133d09cb 100644 --- a/crates/turbopack-tests/tests/snapshot/css/css/output/crates_turbopack-tests_tests_snapshot_css_css_input_index_531223.js.map +++ b/crates/turbopack-tests/tests/snapshot/css/css/output/crates_turbopack-tests_tests_snapshot_css_css_input_index_531223.js.map @@ -1,8 +1,8 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/css/css/input/index.js"],"sourcesContent":["import \"foo/style.css\";\nimport \"foo\";\nimport \"./style.css\";\nimport fooStyle from \"foo/style.module.css\";\nimport style from \"./style.module.css\";\n\nconsole.log(style, fooStyle);\n"],"names":[],"mappings":";;;;;;;;AAMA,QAAQ,GAAG"}}, - {"offset": {"line": 13, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 17, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/css/css/input/style.module.css.js"],"sourcesContent":["__turbopack_export_value__({\n \"another-composed-module-style\": \"another-composed-module-style__style__9bcf751c\" + \" \" + __turbopack_import__(\"[project]/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css (css module)\")[\"foo-module-style\"],\n \"composed-module-style\": \"composed-module-style__style__9bcf751c\" + \" \" + __turbopack_import__(\"[project]/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css (css module)\")[\"foo-module-style\"],\n \"inner\": \"inner__style__9bcf751c\",\n \"module-style\": \"module-style__style__9bcf751c\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA"}}, + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/css/css/input/style.module.css.js"],"sourcesContent":["__turbopack_export_value__({\n \"another-composed-module-style\": \"another-composed-module-style__style__9bcf751c\" + \" \" + __turbopack_import__(\"[project]/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css (css module)\")[\"foo-module-style\"],\n \"composed-module-style\": \"composed-module-style__style__9bcf751c\" + \" \" + __turbopack_import__(\"[project]/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css (css module)\")[\"foo-module-style\"],\n \"inner\": \"inner__style__9bcf751c\",\n \"module-style\": \"module-style__style__9bcf751c\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA"}}, + {"offset": {"line": 10, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 14, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/css/css/input/index.js"],"sourcesContent":["import \"foo/style.css\";\nimport \"foo\";\nimport \"./style.css\";\nimport fooStyle from \"foo/style.module.css\";\nimport style from \"./style.module.css\";\n\nconsole.log(style, fooStyle);\n"],"names":[],"mappings":";;;;;;;;AAMA,QAAQ,GAAG"}}, {"offset": {"line": 23, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_6545dc.js b/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_f0bbb5.js similarity index 98% rename from crates/turbopack-tests/tests/snapshot/emotion/emotion/output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_6545dc.js rename to crates/turbopack-tests/tests/snapshot/emotion/emotion/output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_f0bbb5.js index 37c777498018f..9f094626a8880 100644 --- a/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_6545dc.js +++ b/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_f0bbb5.js @@ -1,4 +1,4 @@ -(self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_6545dc.js", { +(self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_f0bbb5.js", { "[project]/crates/turbopack-tests/tests/snapshot/emotion/emotion/input/index.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { @@ -29,7 +29,7 @@ console.log(StyledButton, ClassNameButton); })()), }, ({ loadedChunks, instantiateRuntimeModule }) => { - if(!(true && loadedChunks.has("output/63a02_@emotion_styled_index.js") && loadedChunks.has("output/63a02_@emotion_react_index.js") && loadedChunks.has("output/63a02_@emotion_react_jsx-dev-runtime.js") && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_8c70a7.js"))) return true; + if(!(true && loadedChunks.has("output/63a02_@emotion_react_jsx-dev-runtime.js") && loadedChunks.has("output/63a02_@emotion_react_index.js") && loadedChunks.has("output/63a02_@emotion_styled_index.js") && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_ccc906.js"))) return true; instantiateRuntimeModule("[project]/crates/turbopack-tests/tests/snapshot/emotion/emotion/input/index.js (ecmascript)"); }]); (() => { @@ -1079,4 +1079,4 @@ globalThis.TURBOPACK = { })(); -//# sourceMappingURL=crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_6545dc.js.map \ No newline at end of file +//# sourceMappingURL=crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_f0bbb5.js.map \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_6545dc.js.map b/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_f0bbb5.js.map similarity index 100% rename from crates/turbopack-tests/tests/snapshot/emotion/emotion/output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_6545dc.js.map rename to crates/turbopack-tests/tests/snapshot/emotion/emotion/output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_f0bbb5.js.map diff --git a/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-2_input_index_0ea679.js b/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-2_input_index_0ea679.js index 5d8baa8e0dc76..4785a575a6478 100644 --- a/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-2_input_index_0ea679.js +++ b/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-2_input_index_0ea679.js @@ -1,34 +1,34 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-2_input_index_0ea679.js", { -"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { +"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/commonjs.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { -var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$b$2e$js__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/b.js (ecmascript)"); -"__TURBOPACK__ecmascript__hoisting__location__"; -; -console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$b$2e$js__); +exports.hello = "World"; }.call(this) }), -"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/b.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { +"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/c.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { __turbopack_esm__({}); -var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$c$2e$js__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/c.js (ecmascript)"); -__turbopack_cjs__(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$c$2e$js__); +var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$commonjs$2e$js__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/commonjs.js (ecmascript)"); +__turbopack_cjs__(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$commonjs$2e$js__); "__TURBOPACK__ecmascript__hoisting__location__"; ; })()), -"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/c.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { +"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/b.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { __turbopack_esm__({}); -var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$commonjs$2e$js__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/commonjs.js (ecmascript)"); -__turbopack_cjs__(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$commonjs$2e$js__); +var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$c$2e$js__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/c.js (ecmascript)"); +__turbopack_cjs__(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$c$2e$js__); "__TURBOPACK__ecmascript__hoisting__location__"; ; })()), -"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/commonjs.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { +"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { -exports.hello = "World"; +var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$b$2e$js__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/b.js (ecmascript)"); +"__TURBOPACK__ecmascript__hoisting__location__"; +; +console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$2$2f$input$2f$b$2e$js__); }.call(this) }), }, ({ loadedChunks, instantiateRuntimeModule }) => { diff --git a/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-2_input_index_0ea679.js.map b/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-2_input_index_0ea679.js.map index c641a262634aa..424ae172c321a 100644 --- a/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-2_input_index_0ea679.js.map +++ b/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-2_input_index_0ea679.js.map @@ -1,12 +1,12 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/index.js"],"sourcesContent":["// a.js\nimport * as B from \"./b\";\nconsole.log(B);"],"names":[],"mappings":";;;AAEA,QAAQ,GAAG"}}, - {"offset": {"line": 8, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 12, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 17, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 21, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 26, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 30, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/commonjs.js"],"sourcesContent":["// commonjs.js\nexports.hello = \"World\";\n\n"],"names":[],"mappings":"AACA,QAAQ,KAAK,GAAG"}}, + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/commonjs.js"],"sourcesContent":["// commonjs.js\nexports.hello = \"World\";\n\n"],"names":[],"mappings":"AACA,QAAQ,KAAK,GAAG"}}, + {"offset": {"line": 5, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 9, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 14, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 18, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 23, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 27, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/input/index.js"],"sourcesContent":["// a.js\nimport * as B from \"./b\";\nconsole.log(B);"],"names":[],"mappings":";;;AAEA,QAAQ,GAAG"}}, {"offset": {"line": 31, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-script_input_index_1cb91d.js b/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-script_input_index_1cb91d.js index 0bfd8d5187157..6e856d31ac790 100644 --- a/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-script_input_index_1cb91d.js +++ b/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-script_input_index_1cb91d.js @@ -1,11 +1,11 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-script_input_index_1cb91d.js", { -"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { +"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/exported.cjs (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { -var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$script$2f$input$2f$mod$2e$js__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/mod.js (ecmascript)"); -"__TURBOPACK__ecmascript__hoisting__location__"; -; -console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$script$2f$input$2f$mod$2e$js__); +module.exports = { + foo: 1, + bar: 2 +}; }.call(this) }), "[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/mod.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { @@ -18,12 +18,12 @@ __turbopack_cjs__(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turb console.log('Hoist test'); })()), -"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/exported.cjs (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { +"[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { -module.exports = { - foo: 1, - bar: 2 -}; +var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$script$2f$input$2f$mod$2e$js__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/mod.js (ecmascript)"); +"__TURBOPACK__ecmascript__hoisting__location__"; +; +console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$export$2d$alls$2f$cjs$2d$script$2f$input$2f$mod$2e$js__); }.call(this) }), }, ({ loadedChunks, instantiateRuntimeModule }) => { diff --git a/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-script_input_index_1cb91d.js.map b/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-script_input_index_1cb91d.js.map index 135ca3f3d6fa3..9153a98a4b25d 100644 --- a/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-script_input_index_1cb91d.js.map +++ b/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-script_input_index_1cb91d.js.map @@ -1,10 +1,10 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/index.js"],"sourcesContent":["import * as foo from './mod.js';\n\nconsole.log(foo)"],"names":[],"mappings":";;;AAEA,QAAQ,GAAG"}}, + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/exported.cjs"],"sourcesContent":["module.exports = { foo: 1, bar: 2 }"],"names":[],"mappings":"AAAA,OAAO,OAAO,GAAG;IAAE,KAAK;IAAG,KAAK;AAAE"}}, {"offset": {"line": 8, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 12, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/mod.js"],"sourcesContent":["\nexport * from './exported.cjs'\n\nconsole.log('Hoist test')"],"names":[],"mappings":";;;;;AAGA,QAAQ,GAAG,CAAC"}}, {"offset": {"line": 18, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 22, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/exported.cjs"],"sourcesContent":["module.exports = { foo: 1, bar: 2 }"],"names":[],"mappings":"AAAA,OAAO,OAAO,GAAG;IAAE,KAAK;IAAG,KAAK;AAAE"}}, + {"offset": {"line": 22, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/input/index.js"],"sourcesContent":["import * as foo from './mod.js';\n\nconsole.log(foo)"],"names":[],"mappings":";;;AAEA,QAAQ,GAAG"}}, {"offset": {"line": 26, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/cjs/output/crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_15c5b2.js b/crates/turbopack-tests/tests/snapshot/import-meta/cjs/output/crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_15c5b2.js index 7cd79c080382f..7691ffca4dae0 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/cjs/output/crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_15c5b2.js +++ b/crates/turbopack-tests/tests/snapshot/import-meta/cjs/output/crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_15c5b2.js @@ -1,12 +1,5 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_15c5b2.js", { -"[project]/crates/turbopack-tests/tests/snapshot/import-meta/cjs/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { - -var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$cjs$2f$input$2f$mod$2e$cjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/cjs/input/mod.cjs (ecmascript)"); -"__TURBOPACK__ecmascript__hoisting__location__"; -; - -}.call(this) }), "[project]/crates/turbopack-tests/tests/snapshot/import-meta/cjs/input/mod.cjs (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { const __TURBOPACK__import$2e$meta__ = { @@ -15,6 +8,13 @@ const __TURBOPACK__import$2e$meta__ = { "__TURBOPACK__ecmascript__hoisting__location__"; console.log(__TURBOPACK__import$2e$meta__.url); +}.call(this) }), +"[project]/crates/turbopack-tests/tests/snapshot/import-meta/cjs/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { + +var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$cjs$2f$input$2f$mod$2e$cjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/cjs/input/mod.cjs (ecmascript)"); +"__TURBOPACK__ecmascript__hoisting__location__"; +; + }.call(this) }), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_b83460.js"))) return true; diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/cjs/output/crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_15c5b2.js.map b/crates/turbopack-tests/tests/snapshot/import-meta/cjs/output/crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_15c5b2.js.map index d4218773cb981..7a578bd5ccc12 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/cjs/output/crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_15c5b2.js.map +++ b/crates/turbopack-tests/tests/snapshot/import-meta/cjs/output/crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_15c5b2.js.map @@ -1,8 +1,8 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 7, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 11, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/cjs/input/mod.cjs"],"sourcesContent":["console.log(import.meta.url);\n"],"names":[],"mappings":";;;;AAAA,QAAQ,GAAG,CAAC,8BAAY,GAAG"}}, + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/cjs/input/mod.cjs"],"sourcesContent":["console.log(import.meta.url);\n"],"names":[],"mappings":";;;;AAAA,QAAQ,GAAG,CAAC,8BAAY,GAAG"}}, + {"offset": {"line": 9, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 13, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, {"offset": {"line": 16, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/output/79fb1_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_600f46.js b/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/output/79fb1_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_600f46.js index ed8b1480bddf2..002edb164f933 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/output/79fb1_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_600f46.js +++ b/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/output/79fb1_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_600f46.js @@ -1,12 +1,5 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/79fb1_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_600f46.js", { -"[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { - -var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$esm$2d$multiple$2f$input$2f$mod$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/input/mod.mjs (ecmascript)"); -"__TURBOPACK__ecmascript__hoisting__location__"; -; - -}.call(this) }), "[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/input/mod.mjs (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { const __TURBOPACK__import$2e$meta__ = { @@ -22,6 +15,13 @@ function bar() { foo(); bar(); +}.call(this) }), +"[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { + +var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$esm$2d$multiple$2f$input$2f$mod$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/input/mod.mjs (ecmascript)"); +"__TURBOPACK__ecmascript__hoisting__location__"; +; + }.call(this) }), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/79fb1_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_8c3410.js"))) return true; diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/output/79fb1_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_600f46.js.map b/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/output/79fb1_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_600f46.js.map index cb601ecc0f48d..9716b8f531c0e 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/output/79fb1_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_600f46.js.map +++ b/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/output/79fb1_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_600f46.js.map @@ -1,8 +1,8 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 7, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 11, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/input/mod.mjs"],"sourcesContent":["function foo() {\n console.log(import.meta.url);\n}\nfunction bar() {\n console.log(import.meta.url);\n}\n\nfoo();\nbar();\n"],"names":[],"mappings":";;;;AAAA,SAAS,MAAM;IACb,QAAQ,GAAG,CAAC,8BAAY,GAAG;AAC7B;AACA,SAAS,MAAM;IACb,QAAQ,GAAG,CAAC,8BAAY,GAAG;AAC7B;AAEA;AACA"}}, + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/input/mod.mjs"],"sourcesContent":["function foo() {\n console.log(import.meta.url);\n}\nfunction bar() {\n console.log(import.meta.url);\n}\n\nfoo();\nbar();\n"],"names":[],"mappings":";;;;AAAA,SAAS,MAAM;IACb,QAAQ,GAAG,CAAC,8BAAY,GAAG;AAC7B;AACA,SAAS,MAAM;IACb,QAAQ,GAAG,CAAC,8BAAY,GAAG;AAC7B;AAEA;AACA"}}, + {"offset": {"line": 16, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 20, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, {"offset": {"line": 23, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_821998.js b/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_821998.js index c5b1015afdf06..1474b8f8c4ed6 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_821998.js +++ b/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_821998.js @@ -1,12 +1,5 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_821998.js", { -"[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { - -var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$esm$2d$mutable$2f$input$2f$mod$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/input/mod.mjs (ecmascript)"); -"__TURBOPACK__ecmascript__hoisting__location__"; -; - -}.call(this) }), "[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/input/mod.mjs (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { const __TURBOPACK__import$2e$meta__ = { @@ -15,6 +8,13 @@ const __TURBOPACK__import$2e$meta__ = { "__TURBOPACK__ecmascript__hoisting__location__"; __TURBOPACK__import$2e$meta__.foo = 1; +}.call(this) }), +"[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { + +var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$esm$2d$mutable$2f$input$2f$mod$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/input/mod.mjs (ecmascript)"); +"__TURBOPACK__ecmascript__hoisting__location__"; +; + }.call(this) }), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_4daf2f.js"))) return true; diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_821998.js.map b/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_821998.js.map index 801e8e89ea181..e954bf2efdd13 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_821998.js.map +++ b/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_821998.js.map @@ -1,8 +1,8 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 7, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 11, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/input/mod.mjs"],"sourcesContent":["import.meta.foo = 1;\n"],"names":[],"mappings":";;;;AAAA,8BAAY,GAAG,GAAG"}}, + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/input/mod.mjs"],"sourcesContent":["import.meta.foo = 1;\n"],"names":[],"mappings":";;;;AAAA,8BAAY,GAAG,GAAG"}}, + {"offset": {"line": 9, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 13, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, {"offset": {"line": 16, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_3e4780.js b/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_3e4780.js index f99c47fd7c1ae..9069d9f02d5eb 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_3e4780.js +++ b/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_3e4780.js @@ -1,12 +1,5 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_3e4780.js", { -"[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { - -var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$esm$2d$object$2f$input$2f$mod$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/input/mod.mjs (ecmascript)"); -"__TURBOPACK__ecmascript__hoisting__location__"; -; - -}.call(this) }), "[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/input/mod.mjs (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { const __TURBOPACK__import$2e$meta__ = { @@ -15,6 +8,13 @@ const __TURBOPACK__import$2e$meta__ = { "__TURBOPACK__ecmascript__hoisting__location__"; console.log(__TURBOPACK__import$2e$meta__); +}.call(this) }), +"[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { + +var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$esm$2d$object$2f$input$2f$mod$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/input/mod.mjs (ecmascript)"); +"__TURBOPACK__ecmascript__hoisting__location__"; +; + }.call(this) }), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_682cfc.js"))) return true; diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_3e4780.js.map b/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_3e4780.js.map index a78beb3f4be08..87f763dce3d88 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_3e4780.js.map +++ b/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_3e4780.js.map @@ -1,8 +1,8 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 7, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 11, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/input/mod.mjs"],"sourcesContent":["console.log(import.meta);\n"],"names":[],"mappings":";;;;AAAA,QAAQ,GAAG"}}, + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/input/mod.mjs"],"sourcesContent":["console.log(import.meta);\n"],"names":[],"mappings":";;;;AAAA,QAAQ,GAAG"}}, + {"offset": {"line": 9, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 13, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, {"offset": {"line": 16, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/esm/output/crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_a09dae.js b/crates/turbopack-tests/tests/snapshot/import-meta/esm/output/crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_a09dae.js index ec8d6c2531a86..9395b07f01f97 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/esm/output/crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_a09dae.js +++ b/crates/turbopack-tests/tests/snapshot/import-meta/esm/output/crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_a09dae.js @@ -1,12 +1,5 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_a09dae.js", { -"[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { - -var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$esm$2f$input$2f$mod$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm/input/mod.mjs (ecmascript)"); -"__TURBOPACK__ecmascript__hoisting__location__"; -; - -}.call(this) }), "[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm/input/mod.mjs (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { const __TURBOPACK__import$2e$meta__ = { @@ -15,6 +8,13 @@ const __TURBOPACK__import$2e$meta__ = { "__TURBOPACK__ecmascript__hoisting__location__"; console.log(__TURBOPACK__import$2e$meta__.url); +}.call(this) }), +"[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { + +var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$esm$2f$input$2f$mod$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/esm/input/mod.mjs (ecmascript)"); +"__TURBOPACK__ecmascript__hoisting__location__"; +; + }.call(this) }), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_f1576a.js"))) return true; diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/esm/output/crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_a09dae.js.map b/crates/turbopack-tests/tests/snapshot/import-meta/esm/output/crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_a09dae.js.map index c15a8ed6778ae..000fb952f2abc 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/esm/output/crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_a09dae.js.map +++ b/crates/turbopack-tests/tests/snapshot/import-meta/esm/output/crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_a09dae.js.map @@ -1,8 +1,8 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 7, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 11, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/esm/input/mod.mjs"],"sourcesContent":["console.log(import.meta.url);\n"],"names":[],"mappings":";;;;AAAA,QAAQ,GAAG,CAAC,8BAAY,GAAG"}}, + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/esm/input/mod.mjs"],"sourcesContent":["console.log(import.meta.url);\n"],"names":[],"mappings":";;;;AAAA,QAAQ,GAAG,CAAC,8BAAY,GAAG"}}, + {"offset": {"line": 9, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 13, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, {"offset": {"line": 16, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/url/output/crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_5f9b2b.js b/crates/turbopack-tests/tests/snapshot/import-meta/url/output/crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_5f9b2b.js index 80a810652e38f..4134a566eb3da 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/url/output/crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_5f9b2b.js +++ b/crates/turbopack-tests/tests/snapshot/import-meta/url/output/crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_5f9b2b.js @@ -1,12 +1,9 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_5f9b2b.js", { -"[project]/crates/turbopack-tests/tests/snapshot/import-meta/url/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { - -var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$url$2f$input$2f$mod$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/url/input/mod.mjs (ecmascript)"); -"__TURBOPACK__ecmascript__hoisting__location__"; -; +"[project]/crates/turbopack-tests/tests/snapshot/import-meta/url/input/asset.txt (static)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { -}.call(this) }), +__turbopack_export_value__("/crates/turbopack-tests/tests/snapshot/import-meta/url/static/05254cf29a922ae2.txt"); +})()), "[project]/crates/turbopack-tests/tests/snapshot/import-meta/url/input/mod.mjs (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { const __TURBOPACK__import$2e$meta__ = { @@ -18,10 +15,13 @@ console.log(assetUrl); fetch(assetUrl).then((res)=>res.text()).then(console.log); }.call(this) }), -"[project]/crates/turbopack-tests/tests/snapshot/import-meta/url/input/asset.txt (static)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { +"[project]/crates/turbopack-tests/tests/snapshot/import-meta/url/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { -__turbopack_export_value__("/crates/turbopack-tests/tests/snapshot/import-meta/url/static/05254cf29a922ae2.txt"); -})()), +var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$import$2d$meta$2f$url$2f$input$2f$mod$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/import-meta/url/input/mod.mjs (ecmascript)"); +"__TURBOPACK__ecmascript__hoisting__location__"; +; + +}.call(this) }), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_ac6b60.js"))) return true; instantiateRuntimeModule("[project]/crates/turbopack-tests/tests/snapshot/import-meta/url/input/index.js (ecmascript)"); diff --git a/crates/turbopack-tests/tests/snapshot/import-meta/url/output/crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_5f9b2b.js.map b/crates/turbopack-tests/tests/snapshot/import-meta/url/output/crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_5f9b2b.js.map index 96b9d96321197..1628a96f8f796 100644 --- a/crates/turbopack-tests/tests/snapshot/import-meta/url/output/crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_5f9b2b.js.map +++ b/crates/turbopack-tests/tests/snapshot/import-meta/url/output/crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_5f9b2b.js.map @@ -1,8 +1,8 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 7, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 11, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/url/input/mod.mjs"],"sourcesContent":["const assetUrl = new URL('./asset.txt', import.meta.url);\n\nconsole.log(assetUrl);\nfetch(assetUrl)\n .then(res => res.text())\n .then(console.log);\n"],"names":[],"mappings":";;;;AAAA,MAAM,WAAW,IAAI;AAErB,QAAQ,GAAG,CAAC;AACZ,MAAM,UACH,IAAI,CAAC,CAAA,MAAO,IAAI,IAAI,IACpB,IAAI,CAAC,QAAQ,GAAG"}}, - {"offset": {"line": 18, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] + {"offset": {"line": 8, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/import-meta/url/input/mod.mjs"],"sourcesContent":["const assetUrl = new URL('./asset.txt', import.meta.url);\n\nconsole.log(assetUrl);\nfetch(assetUrl)\n .then(res => res.text())\n .then(console.log);\n"],"names":[],"mappings":";;;;AAAA,MAAM,WAAW,IAAI;AAErB,QAAQ,GAAG,CAAC;AACZ,MAAM,UACH,IAAI,CAAC,CAAA,MAAO,IAAI,IAAI,IACpB,IAAI,CAAC,QAAQ,GAAG"}}, + {"offset": {"line": 15, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 19, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 22, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_02e5e6.js b/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_02e5e6.js index d615171a877af..3f20b0addf6e9 100644 --- a/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_02e5e6.js +++ b/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_02e5e6.js @@ -1,10 +1,5 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_02e5e6.js", { -"[project]/crates/turbopack-tests/tests/snapshot/imports/dynamic/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { - -__turbopack_require__("[project]/crates/turbopack-tests/tests/snapshot/imports/dynamic/input/vercel.mjs/manifest-loader.js")(__turbopack_import__).then(console.log); - -}.call(this) }), "[project]/crates/turbopack-tests/tests/snapshot/imports/dynamic/input/vercel.mjs/manifest-loader.js": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { @@ -14,6 +9,11 @@ __turbopack_export_value__((__turbopack_import__) => { }).then(() => __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/imports/dynamic/input/vercel.mjs (ecmascript)")); }); })()), +"[project]/crates/turbopack-tests/tests/snapshot/imports/dynamic/input/index.js (ecmascript)": (function({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname, m: module, e: exports }) { !function() { + +__turbopack_require__("[project]/crates/turbopack-tests/tests/snapshot/imports/dynamic/input/vercel.mjs/manifest-loader.js")(__turbopack_import__).then(console.log); + +}.call(this) }), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_a39ade.js"))) return true; instantiateRuntimeModule("[project]/crates/turbopack-tests/tests/snapshot/imports/dynamic/input/index.js (ecmascript)"); diff --git a/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_02e5e6.js.map b/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_02e5e6.js.map index 785f30050c2de..34422f5753692 100644 --- a/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_02e5e6.js.map +++ b/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_02e5e6.js.map @@ -1,6 +1,6 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/imports/dynamic/input/index.js"],"sourcesContent":["import(\"./vercel.mjs\").then(console.log);\n"],"names":[],"mappings":"AAAA,mJAAuB,IAAI,CAAC,QAAQ,GAAG"}}, - {"offset": {"line": 5, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] + {"offset": {"line": 13, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/imports/dynamic/input/index.js"],"sourcesContent":["import(\"./vercel.mjs\").then(console.log);\n"],"names":[],"mappings":"AAAA,mJAAuB,IAAI,CAAC,QAAQ,GAAG"}}, + {"offset": {"line": 14, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/imports/json/output/crates_turbopack-tests_tests_snapshot_imports_json_input_index_6aa119.js b/crates/turbopack-tests/tests/snapshot/imports/json/output/crates_turbopack-tests_tests_snapshot_imports_json_input_index_6aa119.js index 2d3a5d0aff1ca..0b2de16888040 100644 --- a/crates/turbopack-tests/tests/snapshot/imports/json/output/crates_turbopack-tests_tests_snapshot_imports_json_input_index_6aa119.js +++ b/crates/turbopack-tests/tests/snapshot/imports/json/output/crates_turbopack-tests_tests_snapshot_imports_json_input_index_6aa119.js @@ -1,5 +1,14 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_imports_json_input_index_6aa119.js", { +"[project]/crates/turbopack-tests/tests/snapshot/imports/json/input/invalid.json (json)": (() => {{ + +throw new Error("An error occurred while generating the chunk item [project]/crates/turbopack-tests/tests/snapshot/imports/json/input/invalid.json (json)\n at Execution of module_factory failed\n at Execution of JsonChunkItem::content failed\n at Unable to make a module from invalid JSON: expected `,` or `}` at line 3 column 26\n at nested.?\n 1 | {\n 2 | \"nested\": {\n | v\n 3 + \"this-is\": \"invalid\" // lint-staged will remove trailing commas, so here's a comment\n | ^\n 4 | }\n 5 | }\n"); + +}}), +"[project]/crates/turbopack-tests/tests/snapshot/imports/json/input/package.json (json)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { + +__turbopack_export_value__(JSON.parse("{\"name\":\"json-snapshot\"}")); +})()), "[project]/crates/turbopack-tests/tests/snapshot/imports/json/input/index.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$imports$2f$json$2f$input$2f$package$2e$json__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/imports/json/input/package.json (json)"); @@ -11,15 +20,6 @@ console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$ console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$imports$2f$json$2f$input$2f$invalid$2e$json__["default"]["this-is"]); })()), -"[project]/crates/turbopack-tests/tests/snapshot/imports/json/input/package.json (json)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { - -__turbopack_export_value__(JSON.parse("{\"name\":\"json-snapshot\"}")); -})()), -"[project]/crates/turbopack-tests/tests/snapshot/imports/json/input/invalid.json (json)": (() => {{ - -throw new Error("An error occurred while generating the chunk item [project]/crates/turbopack-tests/tests/snapshot/imports/json/input/invalid.json (json)\n at Execution of module_factory failed\n at Execution of JsonChunkItem::content failed\n at Unable to make a module from invalid JSON: expected `,` or `}` at line 3 column 26\n at nested.?\n 1 | {\n 2 | \"nested\": {\n | v\n 3 + \"this-is\": \"invalid\" // lint-staged will remove trailing commas, so here's a comment\n | ^\n 4 | }\n 5 | }\n"); - -}}), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_imports_json_input_index_1b747d.js"))) return true; instantiateRuntimeModule("[project]/crates/turbopack-tests/tests/snapshot/imports/json/input/index.js (ecmascript)"); @@ -1071,4 +1071,4 @@ globalThis.TURBOPACK = { })(); -//# sourceMappingURL=crates_turbopack-tests_tests_snapshot_imports_json_input_index_6aa119.js.map +//# sourceMappingURL=crates_turbopack-tests_tests_snapshot_imports_json_input_index_6aa119.js.map \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/imports/json/output/crates_turbopack-tests_tests_snapshot_imports_json_input_index_6aa119.js.map b/crates/turbopack-tests/tests/snapshot/imports/json/output/crates_turbopack-tests_tests_snapshot_imports_json_input_index_6aa119.js.map index 3795f56b432db..1aae4fd90d92f 100644 --- a/crates/turbopack-tests/tests/snapshot/imports/json/output/crates_turbopack-tests_tests_snapshot_imports_json_input_index_6aa119.js.map +++ b/crates/turbopack-tests/tests/snapshot/imports/json/output/crates_turbopack-tests_tests_snapshot_imports_json_input_index_6aa119.js.map @@ -1,6 +1,6 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/imports/json/input/index.js"],"sourcesContent":["import pkg from \"./package.json\";\nconsole.log(pkg.name);\nimport invalid from \"./invalid.json\";\nconsole.log(invalid[\"this-is\"]);\n"],"names":[],"mappings":";;;;AACA,QAAQ,GAAG,CAAC,8JAAI,IAAI;;AAEpB,QAAQ,GAAG,CAAC,6JAAO,CAAC,UAAU"}}, - {"offset": {"line": 11, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] + {"offset": {"line": 13, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/imports/json/input/index.js"],"sourcesContent":["import pkg from \"./package.json\";\nconsole.log(pkg.name);\nimport invalid from \"./invalid.json\";\nconsole.log(invalid[\"this-is\"]);\n"],"names":[],"mappings":";;;;AACA,QAAQ,GAAG,CAAC,8JAAI,IAAI;;AAEpB,QAAQ,GAAG,CAAC,6JAAO,CAAC,UAAU"}}, + {"offset": {"line": 20, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/79fb1_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_dbdca3.js b/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/79fb1_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_dbdca3.js index b822346c483c3..97aff4b1b81c9 100644 --- a/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/79fb1_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_dbdca3.js +++ b/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/79fb1_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_dbdca3.js @@ -1,13 +1,13 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/79fb1_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_dbdca3.js", { -"[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/index.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { +"[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs/manifest-loader.js": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { -var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$imports$2f$static$2d$and$2d$dynamic$2f$input$2f$vercel$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs (ecmascript)"); -"__TURBOPACK__ecmascript__hoisting__location__"; -; -console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$imports$2f$static$2d$and$2d$dynamic$2f$input$2f$vercel$2e$mjs__["default"]); -__turbopack_require__("[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs/manifest-loader.js")(__turbopack_import__).then(console.log); +__turbopack_export_value__((__turbopack_import__) => { + return __turbopack_load__("output/a587c_tests_snapshot_imports_static-and-dynamic_input_vercel.mjs_manifest-chunk.js").then(() => { + return __turbopack_require__("[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs/manifest-chunk.js"); + }).then(() => __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs (ecmascript)")); +}); })()), "[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { @@ -17,14 +17,14 @@ __turbopack_esm__({ const __TURBOPACK__default__export__ = "turbopack"; })()), -"[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs/manifest-loader.js": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { +"[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/index.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { +var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$imports$2f$static$2d$and$2d$dynamic$2f$input$2f$vercel$2e$mjs__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs (ecmascript)"); +"__TURBOPACK__ecmascript__hoisting__location__"; +; +console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$imports$2f$static$2d$and$2d$dynamic$2f$input$2f$vercel$2e$mjs__["default"]); +__turbopack_require__("[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs/manifest-loader.js")(__turbopack_import__).then(console.log); -__turbopack_export_value__((__turbopack_import__) => { - return __turbopack_load__("output/a587c_tests_snapshot_imports_static-and-dynamic_input_vercel.mjs_manifest-chunk.js").then(() => { - return __turbopack_require__("[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs/manifest-chunk.js"); - }).then(() => __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs (ecmascript)")); -}); })()), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/79fb1_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_3064c9.js"))) return true; diff --git a/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/79fb1_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_dbdca3.js.map b/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/79fb1_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_dbdca3.js.map index 4cded3fcea005..facba29f72f15 100644 --- a/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/79fb1_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_dbdca3.js.map +++ b/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/79fb1_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_dbdca3.js.map @@ -1,8 +1,8 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/index.js"],"sourcesContent":["import img from \"./vercel.mjs\";\nconsole.log(img);\n\nimport(\"./vercel.mjs\").then(console.log);\n"],"names":[],"mappings":";;;AACA,QAAQ,GAAG;AAEX,8JAAuB,IAAI,CAAC,QAAQ,GAAG"}}, - {"offset": {"line": 9, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 13, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/vercel.mjs"],"sourcesContent":["export default \"turbopack\";\n"],"names":[],"mappings":";;;uCAAe"}}, - {"offset": {"line": 17, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] + {"offset": {"line": 17, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 21, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/input/index.js"],"sourcesContent":["import img from \"./vercel.mjs\";\nconsole.log(img);\n\nimport(\"./vercel.mjs\").then(console.log);\n"],"names":[],"mappings":";;;AACA,QAAQ,GAAG;AAEX,8JAAuB,IAAI,CAAC,QAAQ,GAAG"}}, + {"offset": {"line": 26, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/imports/static/output/crates_turbopack-tests_tests_snapshot_imports_static_input_index_9cc7ba.js b/crates/turbopack-tests/tests/snapshot/imports/static/output/crates_turbopack-tests_tests_snapshot_imports_static_input_index_9cc7ba.js index 51d0ae740e461..867ae4fad4683 100644 --- a/crates/turbopack-tests/tests/snapshot/imports/static/output/crates_turbopack-tests_tests_snapshot_imports_static_input_index_9cc7ba.js +++ b/crates/turbopack-tests/tests/snapshot/imports/static/output/crates_turbopack-tests_tests_snapshot_imports_static_input_index_9cc7ba.js @@ -1,5 +1,9 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/crates_turbopack-tests_tests_snapshot_imports_static_input_index_9cc7ba.js", { +"[project]/crates/turbopack-tests/tests/snapshot/imports/static/input/vercel.svg (static)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { + +__turbopack_export_value__("/crates/turbopack-tests/tests/snapshot/imports/static/static/957b9b162f8447f9.svg"); +})()), "[project]/crates/turbopack-tests/tests/snapshot/imports/static/input/index.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$imports$2f$static$2f$input$2f$vercel$2e$svg__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/imports/static/input/vercel.svg (static)"); @@ -7,10 +11,6 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests ; console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$imports$2f$static$2f$input$2f$vercel$2e$svg__["default"]); -})()), -"[project]/crates/turbopack-tests/tests/snapshot/imports/static/input/vercel.svg (static)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { - -__turbopack_export_value__("/crates/turbopack-tests/tests/snapshot/imports/static/static/957b9b162f8447f9.svg"); })()), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/crates_turbopack-tests_tests_snapshot_imports_static_input_index_bcf749.js"))) return true; diff --git a/crates/turbopack-tests/tests/snapshot/imports/static/output/crates_turbopack-tests_tests_snapshot_imports_static_input_index_9cc7ba.js.map b/crates/turbopack-tests/tests/snapshot/imports/static/output/crates_turbopack-tests_tests_snapshot_imports_static_input_index_9cc7ba.js.map index 22c0d5079bf82..9f2ca3f475e0d 100644 --- a/crates/turbopack-tests/tests/snapshot/imports/static/output/crates_turbopack-tests_tests_snapshot_imports_static_input_index_9cc7ba.js.map +++ b/crates/turbopack-tests/tests/snapshot/imports/static/output/crates_turbopack-tests_tests_snapshot_imports_static_input_index_9cc7ba.js.map @@ -1,6 +1,6 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/imports/static/input/index.js"],"sourcesContent":["import img from \"./vercel.svg\";\nconsole.log(img);\n"],"names":[],"mappings":";;;AACA,QAAQ,GAAG"}}, - {"offset": {"line": 8, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] + {"offset": {"line": 8, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/imports/static/input/index.js"],"sourcesContent":["import img from \"./vercel.svg\";\nconsole.log(img);\n"],"names":[],"mappings":";;;AACA,QAAQ,GAAG"}}, + {"offset": {"line": 12, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_968e59.js b/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_7a9339.js similarity index 98% rename from crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_968e59.js rename to crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_7a9339.js index 3f8a0c2a48181..2a60f2e81b8dd 100644 --- a/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_968e59.js +++ b/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_7a9339.js @@ -1,4 +1,4 @@ -(self.TURBOPACK = self.TURBOPACK || []).push(["output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_968e59.js", { +(self.TURBOPACK = self.TURBOPACK || []).push(["output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_7a9339.js", { "[project]/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/input/packages/app/index.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { @@ -11,7 +11,7 @@ console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$ })()), }, ({ loadedChunks, instantiateRuntimeModule }) => { - if(!(true && loadedChunks.has("output/63a02_react_jsx-dev-runtime.js") && loadedChunks.has("output/7b7bf_third_party_component_index.js") && loadedChunks.has("output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_component_index.js") && loadedChunks.has("output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_569e79.js"))) return true; + if(!(true && loadedChunks.has("output/63a02_react_jsx-dev-runtime.js") && loadedChunks.has("output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_component_index.js") && loadedChunks.has("output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_c4293a.js") && loadedChunks.has("output/7b7bf_third_party_component_index.js"))) return true; instantiateRuntimeModule("[project]/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/input/packages/app/index.js (ecmascript)"); }]); (() => { @@ -1061,4 +1061,4 @@ globalThis.TURBOPACK = { })(); -//# sourceMappingURL=a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_968e59.js.map \ No newline at end of file +//# sourceMappingURL=a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_7a9339.js.map \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_968e59.js.map b/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_7a9339.js.map similarity index 100% rename from crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_968e59.js.map rename to crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_7a9339.js.map diff --git a/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/output/79fb1_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_2fc4fa.js b/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/output/79fb1_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_2fc4fa.js index f8235e1b716ff..546e36ee2d61a 100644 --- a/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/output/79fb1_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_2fc4fa.js +++ b/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/output/79fb1_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_2fc4fa.js @@ -1,5 +1,13 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/79fb1_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_2fc4fa.js", { +"[project]/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/input/prop.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { + +__turbopack_esm__({ + "prop": ()=>prop +}); +const prop = 1; + +})()), "[project]/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/input/index.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$typescript$2f$jsconfig$2d$baseurl$2f$input$2f$prop$2e$js__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/input/prop.js (ecmascript)"); @@ -11,14 +19,6 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests ; console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$typescript$2f$jsconfig$2d$baseurl$2f$input$2f$prop$2e$js__["prop"], __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$typescript$2f$jsconfig$2d$baseurl$2f$input$2f$prop$2e$js__["prop"], __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$typescript$2f$jsconfig$2d$baseurl$2f$input$2f$prop$2e$js__["prop"]); -})()), -"[project]/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/input/prop.js (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { - -__turbopack_esm__({ - "prop": ()=>prop -}); -const prop = 1; - })()), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/79fb1_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_7e807a.js"))) return true; diff --git a/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/output/79fb1_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_2fc4fa.js.map b/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/output/79fb1_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_2fc4fa.js.map index 649dbae2016e7..76729a5945d3e 100644 --- a/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/output/79fb1_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_2fc4fa.js.map +++ b/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/output/79fb1_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_2fc4fa.js.map @@ -1,8 +1,8 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/input/index.js"],"sourcesContent":["import { prop as globalFoo } from \"foo\";\nimport { prop as localFoo } from \"./foo\";\nimport { prop as atFoo } from \"@/foo\";\n\nconsole.log(globalFoo, localFoo, atFoo);\n"],"names":[],"mappings":";;;;;;;AAIA,QAAQ,GAAG"}}, - {"offset": {"line": 12, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 16, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/input/prop.js"],"sourcesContent":["export const prop = 1;\n"],"names":[],"mappings":";;;AAAO,MAAM,OAAO"}}, + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/input/prop.js"],"sourcesContent":["export const prop = 1;\n"],"names":[],"mappings":";;;AAAO,MAAM,OAAO"}}, + {"offset": {"line": 8, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 12, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/input/index.js"],"sourcesContent":["import { prop as globalFoo } from \"foo\";\nimport { prop as localFoo } from \"./foo\";\nimport { prop as atFoo } from \"@/foo\";\n\nconsole.log(globalFoo, localFoo, atFoo);\n"],"names":[],"mappings":";;;;;;;AAIA,QAAQ,GAAG"}}, {"offset": {"line": 20, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/output/a587c_tests_snapshot_typescript_tsconfig-baseurl_input_index_bec392.ts._.js b/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/output/a587c_tests_snapshot_typescript_tsconfig-baseurl_input_index_bec392.ts._.js index b6c193c8c0111..47bc0f27ca113 100644 --- a/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/output/a587c_tests_snapshot_typescript_tsconfig-baseurl_input_index_bec392.ts._.js +++ b/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/output/a587c_tests_snapshot_typescript_tsconfig-baseurl_input_index_bec392.ts._.js @@ -1,5 +1,13 @@ (self.TURBOPACK = self.TURBOPACK || []).push(["output/a587c_tests_snapshot_typescript_tsconfig-baseurl_input_index_bec392.ts._.js", { +"[project]/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/input/prop.ts (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { + +__turbopack_esm__({ + "prop": ()=>prop +}); +const prop = 1; + +})()), "[project]/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/input/index.ts (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$typescript$2f$tsconfig$2d$baseurl$2f$input$2f$prop$2e$ts__ = __turbopack_import__("[project]/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/input/prop.ts (ecmascript)"); @@ -11,14 +19,6 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests ; console.log(__TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$typescript$2f$tsconfig$2d$baseurl$2f$input$2f$prop$2e$ts__["prop"], __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$typescript$2f$tsconfig$2d$baseurl$2f$input$2f$prop$2e$ts__["prop"], __TURBOPACK__imported__module__$5b$project$5d2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$typescript$2f$tsconfig$2d$baseurl$2f$input$2f$prop$2e$ts__["prop"]); -})()), -"[project]/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/input/prop.ts (ecmascript)": (({ r: __turbopack_require__, x: __turbopack_external_require__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, c: __turbopack_cache__, l: __turbopack_load__, j: __turbopack_cjs__, p: process, g: global, __dirname }) => (() => { - -__turbopack_esm__({ - "prop": ()=>prop -}); -const prop = 1; - })()), }, ({ loadedChunks, instantiateRuntimeModule }) => { if(!(true && loadedChunks.has("output/a587c_tests_snapshot_typescript_tsconfig-baseurl_input_index_5e115c.ts._.js"))) return true; diff --git a/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/output/a587c_tests_snapshot_typescript_tsconfig-baseurl_input_index_bec392.ts._.js.map b/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/output/a587c_tests_snapshot_typescript_tsconfig-baseurl_input_index_bec392.ts._.js.map index 7e24d4ae13600..e0343cefa513e 100644 --- a/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/output/a587c_tests_snapshot_typescript_tsconfig-baseurl_input_index_bec392.ts._.js.map +++ b/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/output/a587c_tests_snapshot_typescript_tsconfig-baseurl_input_index_bec392.ts._.js.map @@ -1,8 +1,8 @@ { "version": 3, "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/input/index.ts"],"sourcesContent":["import { prop as globalFoo } from \"foo\";\nimport { prop as localFoo } from \"./foo\";\nimport { prop as atFoo } from \"@/foo\";\n\nconsole.log(globalFoo, localFoo, atFoo);\n"],"names":[],"mappings":";;;;;;;AAIA,QAAQ,GAAG"}}, - {"offset": {"line": 12, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 16, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/input/prop.ts"],"sourcesContent":["export const prop = 1;\n"],"names":[],"mappings":";;;AAAO,MAAM,OAAO"}}, + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/input/prop.ts"],"sourcesContent":["export const prop = 1;\n"],"names":[],"mappings":";;;AAAO,MAAM,OAAO"}}, + {"offset": {"line": 8, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, + {"offset": {"line": 12, "column": 0}, "map": {"version":3,"sources":["/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/input/index.ts"],"sourcesContent":["import { prop as globalFoo } from \"foo\";\nimport { prop as localFoo } from \"./foo\";\nimport { prop as atFoo } from \"@/foo\";\n\nconsole.log(globalFoo, localFoo, atFoo);\n"],"names":[],"mappings":";;;;;;;AAIA,QAAQ,GAAG"}}, {"offset": {"line": 20, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file From a6f92743c3c3801a231464aba585a34dae71dfc9 Mon Sep 17 00:00:00 2001 From: Justin Ridgewell Date: Wed, 22 Feb 2023 11:48:46 -0500 Subject: [PATCH 5/9] Support NeedData responses in SourceMap/SourceMapTrace ContentSources (#3907) This implements a new `ContentSourceProcessor` trait and `WrappedContentSource` struct that allows our `ContentSource`s to register some processor to transform the eventual `ContentSourceContent` that an inner `ContentSource` returns. Yah, it's a bit of a mouthful with lots of very similar sounding names. Essentially, the old `SourceMapContentSource` and `NextSourceMapTraceContentSource` wrapped some inner `ContentSource`, and would request content from them, and process that content into a source map JSON or trace JSON. But, they didn't implement the `NeedData` response, so it only supported very primitive inner content sources. This PR extracts that knowledge into a single `WrappedContentSource`, which will recursively wrap every `ContentSourceResult` until we land on a fully resolved `ContentSourceResult::Result`. At that point, it hands off the work to a `WrappedGetContentSource`, which performs the processing on whatever content is returned by the inner `GetContentSourceContent`. If you can't tell yet, I'm making the description intentionally verbose to highlight just how similar our struct/trait names are. Fixes WEB-614 --- crates/next-core/src/next_image/mod.rs | 10 +- crates/turbopack-dev-server/src/source/mod.rs | 1 + .../src/source/source_maps.rs | 96 ++++++++------ .../src/source/wrapping_source.rs | 122 ++++++++++++++++++ .../src/source_map/content_source.rs | 114 ++++++++++------ 5 files changed, 264 insertions(+), 79 deletions(-) create mode 100644 crates/turbopack-dev-server/src/source/wrapping_source.rs diff --git a/crates/next-core/src/next_image/mod.rs b/crates/next-core/src/next_image/mod.rs index 22512250a8b4f..99556500f5165 100644 --- a/crates/next-core/src/next_image/mod.rs +++ b/crates/next-core/src/next_image/mod.rs @@ -5,8 +5,8 @@ use turbo_tasks::{primitives::StringVc, Value}; use turbopack_core::introspect::{Introspectable, IntrospectableVc}; use turbopack_dev_server::source::{ query::QueryValue, ContentSource, ContentSourceContent, ContentSourceData, - ContentSourceDataFilter, ContentSourceDataVary, ContentSourceResult, ContentSourceResultVc, - ContentSourceVc, NeededData, ProxyResult, + ContentSourceDataFilter, ContentSourceDataVary, ContentSourceResultVc, ContentSourceVc, + NeededData, ProxyResult, }; /// Serves, resizes, optimizes, and re-encodes images to be used with @@ -65,11 +65,7 @@ impl ContentSource for NextImageContentSource { // TODO: consume the assets, resize and reduce quality, re-encode into next-gen // formats. if let Some(path) = url.strip_prefix('/') { - let asset = this.asset_source.get(path, Default::default()); - let inner = asset.await?; - if let ContentSourceResult::Result { .. } = &*inner { - return Ok(asset); - } + return Ok(this.asset_source.get(path, Default::default())); } // TODO: This should be downloaded by the server, and resized, etc. diff --git a/crates/turbopack-dev-server/src/source/mod.rs b/crates/turbopack-dev-server/src/source/mod.rs index d0ecd5466522e..51fb977af057d 100644 --- a/crates/turbopack-dev-server/src/source/mod.rs +++ b/crates/turbopack-dev-server/src/source/mod.rs @@ -10,6 +10,7 @@ pub mod router; pub mod source_maps; pub mod specificity; pub mod static_assets; +pub mod wrapping_source; use std::{collections::BTreeSet, sync::Arc}; diff --git a/crates/turbopack-dev-server/src/source/source_maps.rs b/crates/turbopack-dev-server/src/source/source_maps.rs index a6396725175df..4cee4f0f18804 100644 --- a/crates/turbopack-dev-server/src/source/source_maps.rs +++ b/crates/turbopack-dev-server/src/source/source_maps.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use mime::APPLICATION_JSON; use turbo_tasks::{primitives::StringVc, Value}; use turbo_tasks_fs::File; use turbopack_core::{ @@ -8,11 +9,12 @@ use turbopack_core::{ }; use super::{ - query::QueryValue, ContentSource, ContentSourceContent, ContentSourceContentVc, - ContentSourceData, ContentSourceDataFilter, ContentSourceDataVary, ContentSourceResult, - ContentSourceResultVc, ContentSourceVc, NeededData, + query::QueryValue, + wrapping_source::{ContentSourceProcessor, ContentSourceProcessorVc, WrappedContentSourceVc}, + ContentSource, ContentSourceContent, ContentSourceContentVc, ContentSourceData, + ContentSourceDataFilter, ContentSourceDataVary, ContentSourceResultVc, ContentSourceVc, + NeededData, }; -use crate::source::GetContentSourceContent; /// SourceMapContentSource allows us to serve full source maps, and individual /// sections of source maps, of any found asset in the graph without adding @@ -66,55 +68,77 @@ impl ContentSource for SourceMapContentSource { }; let id = match query.get("id") { - Some(QueryValue::String(s)) => Some(s), + Some(QueryValue::String(s)) => Some(s.clone()), _ => None, }; - let this = self_vc.await?; - let result = this.asset_source.get(pathname, Default::default()).await?; - let content = match &*result { - ContentSourceResult::Result { get_content, .. } => { - get_content.get(Default::default()).await? - } - _ => return Ok(ContentSourceResultVc::not_found()), - }; - let file = match &*content { + let wrapped = WrappedContentSourceVc::new( + self_vc.await?.asset_source, + SourceMapContentProcessorVc::new(id).into(), + ); + Ok(wrapped + .as_content_source() + .get(pathname, Default::default())) + } +} + +#[turbo_tasks::value_impl] +impl Introspectable for SourceMapContentSource { + #[turbo_tasks::function] + fn ty(&self) -> StringVc { + StringVc::cell("source map content source".to_string()) + } + + #[turbo_tasks::function] + fn details(&self) -> StringVc { + StringVc::cell("serves chunk and chunk item source maps".to_string()) + } +} + +/// Processes the eventual [ContentSourceContent] to transform it into a source +/// map JSON content. +#[turbo_tasks::value] +pub struct SourceMapContentProcessor { + /// An optional section id to use when generating the map. Specifying a + /// section id will only output that section. Otherwise, it prints the + /// full source map. + id: Option, +} + +#[turbo_tasks::value_impl] +impl SourceMapContentProcessorVc { + #[turbo_tasks::function] + fn new(id: Option) -> Self { + SourceMapContentProcessor { id }.cell() + } +} + +#[turbo_tasks::value_impl] +impl ContentSourceProcessor for SourceMapContentProcessor { + #[turbo_tasks::function] + async fn process(&self, content: ContentSourceContentVc) -> Result { + let file = match &*content.await? { ContentSourceContent::Static(static_content) => static_content.await?.content, - _ => return Ok(ContentSourceResultVc::not_found()), + _ => return Ok(ContentSourceContentVc::not_found()), }; let gen = match GenerateSourceMapVc::resolve_from(file).await? { Some(f) => f, - None => return Ok(ContentSourceResultVc::not_found()), + None => return Ok(ContentSourceContentVc::not_found()), }; - let sm = if let Some(id) = id { + let sm = if let Some(id) = &self.id { let section = gen.by_section(id).await?; match &*section { Some(sm) => *sm, - None => return Ok(ContentSourceResultVc::not_found()), + None => return Ok(ContentSourceContentVc::not_found()), } } else { gen.generate_source_map() }; - let content = sm.to_rope().await?; - - let asset = AssetContentVc::from(File::from(content)); - Ok(ContentSourceResultVc::exact( - ContentSourceContentVc::static_content(asset.into()).into(), - )) - } -} -#[turbo_tasks::value_impl] -impl Introspectable for SourceMapContentSource { - #[turbo_tasks::function] - fn ty(&self) -> StringVc { - StringVc::cell("source map content source".to_string()) - } - - #[turbo_tasks::function] - fn details(&self) -> StringVc { - StringVc::cell("serves chunk and chunk item source maps".to_string()) + let content = sm.to_rope().await?; + let asset = AssetContentVc::from(File::from(content).with_content_type(APPLICATION_JSON)); + Ok(ContentSourceContentVc::static_content(asset.into())) } } diff --git a/crates/turbopack-dev-server/src/source/wrapping_source.rs b/crates/turbopack-dev-server/src/source/wrapping_source.rs new file mode 100644 index 0000000000000..6e06acafa98ec --- /dev/null +++ b/crates/turbopack-dev-server/src/source/wrapping_source.rs @@ -0,0 +1,122 @@ +use anyhow::Result; +use turbo_tasks::Value; + +use super::{ + ContentSource, ContentSourceContentVc, ContentSourceData, ContentSourceDataVaryVc, + ContentSourceResult, ContentSourceResultVc, ContentSourceVc, GetContentSourceContent, + GetContentSourceContentVc, NeededData, +}; + +/// A ContentSourceProcessor handles the final processing of an eventual +/// [ContentSourceContent]. +/// +/// Used in conjunction with [WrappedContentSource], this allows a +/// [ContentSource] implementation to easily register a final process step over +/// some inner ContentSource's fully resolved [ContentSourceResult] and +/// [ContentSourceContent]. +#[turbo_tasks::value_trait] +pub trait ContentSourceProcessor { + fn process(&self, content: ContentSourceContentVc) -> ContentSourceContentVc; +} + +/// A ContentSourceProcessor allows a [ContentSource] implementation to easily +/// register a final process step over some inner ContentSource's fully resolved +/// [ContentSourceResult] and [ContentSourceContent] without having to manually +/// implement the NeedData resolution algorithm. +/// +/// This is the first of 2 steps, implementing the wrapping of +/// ContentSourceResult so that we can wrap the fully resolved result with our +/// [WrappedGetContentSourceContent]. +#[turbo_tasks::value] +pub struct WrappedContentSource { + inner: ContentSourceVc, + processor: ContentSourceProcessorVc, +} + +#[turbo_tasks::value_impl] +impl WrappedContentSourceVc { + #[turbo_tasks::function] + pub async fn new(inner: ContentSourceVc, processor: ContentSourceProcessorVc) -> Self { + WrappedContentSource { inner, processor }.cell() + } +} + +#[turbo_tasks::value_impl] +impl ContentSource for WrappedContentSource { + #[turbo_tasks::function] + async fn get( + &self, + path: &str, + data: Value, + ) -> Result { + let res = self.inner.get(path, data); + + Ok(match &*res.await? { + ContentSourceResult::NotFound => res, + ContentSourceResult::NeedData(needed) => { + // If the inner source needs more data, then we need to wrap the resuming source + // in a new wrapped processor. That way, whatever ContentSourceResult is + // returned when we resume can itself be wrapped, or be wrapped with a + // WrappedGetContentSourceContent. + ContentSourceResultVc::need_data(Value::new(NeededData { + source: WrappedContentSourceVc::new(needed.source, self.processor).into(), + path: needed.path.clone(), + vary: needed.vary.clone(), + })) + } + ContentSourceResult::Result { + get_content, + specificity, + } => { + // If we landed on a result, then the resolution algorithm is complete. All + // that's left is to wrap the result's GetContentSourceContent + // with our own, so that we can process whatever content it + // returns. + ContentSourceResult::Result { + specificity: *specificity, + get_content: WrappedGetContentSourceContentVc::new( + *get_content, + self.processor, + ) + .into(), + } + .cell() + } + }) + } +} + +/// A WrappedGetContentSourceContent simply wraps the get_content of a +/// [ContentSourceResult], allowing us to process whatever +/// [ContentSourceContent] it would have returned. +/// +/// This is the second of 2 steps, implementing the processing of +/// ContentSourceContent. The first step in [WrappedContentSource] handles +/// ContentSourceResult. +#[turbo_tasks::value] +struct WrappedGetContentSourceContent { + inner: GetContentSourceContentVc, + processor: ContentSourceProcessorVc, +} + +#[turbo_tasks::value_impl] +impl WrappedGetContentSourceContentVc { + #[turbo_tasks::function] + fn new(inner: GetContentSourceContentVc, processor: ContentSourceProcessorVc) -> Self { + WrappedGetContentSourceContent { inner, processor }.cell() + } +} + +#[turbo_tasks::value_impl] +impl GetContentSourceContent for WrappedGetContentSourceContent { + #[turbo_tasks::function] + fn vary(&self) -> ContentSourceDataVaryVc { + self.inner.vary() + } + + #[turbo_tasks::function] + async fn get(&self, data: Value) -> Result { + let res = self.inner.get(data); + Ok(self.processor.process(res)) + } +} diff --git a/crates/turbopack-node/src/source_map/content_source.rs b/crates/turbopack-node/src/source_map/content_source.rs index 00c58641976d9..e1f493ee5234c 100644 --- a/crates/turbopack-node/src/source_map/content_source.rs +++ b/crates/turbopack-node/src/source_map/content_source.rs @@ -5,9 +5,9 @@ use turbopack_core::{ source_map::{GenerateSourceMap, GenerateSourceMapVc}, }; use turbopack_dev_server::source::{ + wrapping_source::{ContentSourceProcessor, ContentSourceProcessorVc, WrappedContentSourceVc}, ContentSource, ContentSourceContent, ContentSourceContentVc, ContentSourceData, - ContentSourceDataVary, ContentSourceResult, ContentSourceResultVc, ContentSourceVc, - ContentSourcesVc, GetContentSourceContent, NeededData, + ContentSourceDataVary, ContentSourceResultVc, ContentSourceVc, ContentSourcesVc, NeededData, }; use url::Url; @@ -69,42 +69,19 @@ impl ContentSource for NextSourceMapTraceContentSource { Some(p) => p, _ => return Ok(ContentSourceResultVc::not_found()), }; - let id = file - .query_pairs() - .find_map(|(k, v)| if k == "id" { Some(v) } else { None }); - - let this = self_vc.await?; - let result = this.asset_source.get(path, Default::default()).await?; - let content = match &*result { - ContentSourceResult::Result { get_content, .. } => { - get_content.get(Default::default()).await? + let id = file.query_pairs().find_map(|(k, v)| { + if k == "id" { + Some(v.into_owned()) + } else { + None } - _ => return Ok(ContentSourceResultVc::not_found()), - }; - let file = match &*content { - ContentSourceContent::Static(static_content) => static_content.await?.content, - _ => return Ok(ContentSourceResultVc::not_found()), - }; - - let gen = match GenerateSourceMapVc::resolve_from(file).await? { - Some(f) => f, - _ => return Ok(ContentSourceResultVc::not_found()), - }; - - let sm = if let Some(id) = id { - let section = gen.by_section(&id).await?; - match &*section { - Some(sm) => *sm, - None => return Ok(ContentSourceResultVc::not_found()), - } - } else { - gen.generate_source_map() - }; + }); - let traced = SourceMapTraceVc::new(sm, line, column, frame.name); - Ok(ContentSourceResultVc::exact( - ContentSourceContentVc::static_content(traced.content().into()).into(), - )) + let wrapped = WrappedContentSourceVc::new( + self_vc.await?.asset_source, + NextSourceMapTraceContentProcessorVc::new(id, line, column, frame.name).into(), + ); + Ok(wrapped.as_content_source().get(path, Default::default())) } #[turbo_tasks::function] @@ -127,3 +104,68 @@ impl Introspectable for NextSourceMapTraceContentSource { ) } } + +/// Processes the eventual [ContentSourceContent] to transform it into a source +/// map trace's JSON content. +#[turbo_tasks::value] +pub struct NextSourceMapTraceContentProcessor { + /// An optional section id to use when tracing the map. Specifying a + /// section id trace starting at that section. Otherwise, it traces starting + /// at the full source map. + id: Option, + + /// The generated line we are trying to trace. + line: usize, + + /// The generated column we are trying to trace. + column: usize, + + /// An optional name originally assigned to the stack frame, used as a + /// default if the trace finds an unnamed source map segment. + name: Option, +} + +#[turbo_tasks::value_impl] +impl NextSourceMapTraceContentProcessorVc { + #[turbo_tasks::function] + fn new(id: Option, line: usize, column: usize, name: Option) -> Self { + NextSourceMapTraceContentProcessor { + id, + line, + column, + name, + } + .cell() + } +} + +#[turbo_tasks::value_impl] +impl ContentSourceProcessor for NextSourceMapTraceContentProcessor { + #[turbo_tasks::function] + async fn process(&self, content: ContentSourceContentVc) -> Result { + let file = match &*content.await? { + ContentSourceContent::Static(static_content) => static_content.await?.content, + _ => return Ok(ContentSourceContentVc::not_found()), + }; + + let gen = match GenerateSourceMapVc::resolve_from(file).await? { + Some(f) => f, + _ => return Ok(ContentSourceContentVc::not_found()), + }; + + let sm = if let Some(id) = &self.id { + let section = gen.by_section(id).await?; + match &*section { + Some(sm) => *sm, + None => return Ok(ContentSourceContentVc::not_found()), + } + } else { + gen.generate_source_map() + }; + + let traced = SourceMapTraceVc::new(sm, self.line, self.column, self.name.clone()); + Ok(ContentSourceContentVc::static_content( + traced.content().into(), + )) + } +} From 995a5caea2cbd6c94e1e317c8fb943b94f57c5da Mon Sep 17 00:00:00 2001 From: Christian Meter Date: Wed, 22 Feb 2023 18:28:06 +0100 Subject: [PATCH 6/9] Align carets to key in JSON file (#3909) In the documentation the carets don't point to the appropriate location in the JSON file. This PR removes the whitespace in front of the double slashes, so that the alignment is corrected. Co-authored-by: Chris Olszewski --- docs/pages/repo/docs/getting-started/create-new.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/pages/repo/docs/getting-started/create-new.mdx b/docs/pages/repo/docs/getting-started/create-new.mdx index b4a49fc307718..5972d3f862fb3 100644 --- a/docs/pages/repo/docs/getting-started/create-new.mdx +++ b/docs/pages/repo/docs/getting-started/create-new.mdx @@ -251,13 +251,13 @@ Let's take a look inside `turbo.json`, at the root: { "pipeline": { "build": { - // ^^^^^ +// ^^^^^ "dependsOn": ["^build"], "outputs": ["dist/**", ".next/**"] }, "lint": {}, "dev": { - // ^^^ +// ^^^ "cache": false } } From 01a004e3f6f30e793f037cc31f1ee5bff029181d Mon Sep 17 00:00:00 2001 From: Will Binns-Smith Date: Wed, 22 Feb 2023 10:07:34 -0800 Subject: [PATCH 7/9] Automatically apply babel-loader for apps with babel configs (#3862) This will automatically apply `babel-loader` to Next.js apps that include a babel configuration file alongside `next.config.js`. It requires the app to provide `babel-loader` itself. Test Plan: Added an integration test. --- crates/next-core/src/babel.rs | 170 ++++++++++++ crates/next-core/src/lib.rs | 1 + crates/next-core/src/next_client/context.rs | 26 +- crates/next-core/src/next_config.rs | 11 +- crates/next-core/src/next_server/context.rs | 26 +- .../auto-babel-loader/input/babel.config.json | 4 + .../node_modules/babel-plugin-foo/index.js | 11 + .../auto-babel-loader/input/other.js | 1 + .../auto-babel-loader/input/pages/index.ts | 17 ++ crates/next-dev-tests/tests/package.json | 2 + .../turbopack-node/src/transforms/webpack.rs | 12 +- .../module_options/module_options_context.rs | 4 +- pnpm-lock.yaml | 253 ++++++++++++++---- 13 files changed, 460 insertions(+), 78 deletions(-) create mode 100644 crates/next-core/src/babel.rs create mode 100644 crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/babel.config.json create mode 100644 crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/node_modules/babel-plugin-foo/index.js create mode 100644 crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/other.js create mode 100644 crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/pages/index.ts diff --git a/crates/next-core/src/babel.rs b/crates/next-core/src/babel.rs new file mode 100644 index 0000000000000..c5d8d1d0328dc --- /dev/null +++ b/crates/next-core/src/babel.rs @@ -0,0 +1,170 @@ +use anyhow::Result; +use turbo_tasks::{ + primitives::{BoolVc, StringVc}, + Value, +}; +use turbo_tasks_fs::FileSystemPathVc; +use turbopack::{ + module_options::WebpackLoadersOptionsVc, resolve_options, + resolve_options_context::ResolveOptionsContext, +}; +use turbopack_core::{ + issue::{Issue, IssueSeverity, IssueSeverityVc, IssueVc}, + resolve::{parse::RequestVc, pattern::Pattern, resolve}, +}; +use turbopack_node::transforms::webpack::{WebpackLoaderConfigItem, WebpackLoaderConfigItemsVc}; + +const BABEL_CONFIG_FILES: &[&str] = &[ + ".babelrc", + ".babelrc.json", + ".babelrc.js", + ".babelrc.mjs", + ".babelrc.cjs", + "babel.config.js", + "babel.config.json", + "babel.config.mjs", + "babel.config.cjs", +]; + +/// If the user has a babel configuration file (see list above) alongside their +/// `next.config.js` configuration, automatically add `babel-loader` as a +/// webpack loader for each eligible file type if it doesn't already exist. +#[turbo_tasks::function] +pub async fn maybe_add_babel_loader( + project_root: FileSystemPathVc, + webpack_options: WebpackLoadersOptionsVc, +) -> Result { + let has_babel_config = { + let mut has_babel_config = false; + for filename in BABEL_CONFIG_FILES { + let metadata = project_root.join(filename).metadata().await; + if metadata.is_ok() { + has_babel_config = true; + break; + } + } + has_babel_config + }; + + if has_babel_config { + let mut options = (*webpack_options.await?).clone(); + for ext in [".js", ".jsx", ".ts", ".tsx", ".cjs", ".mjs"] { + let configs = options.extension_to_loaders.get(ext); + let has_babel_loader = match configs { + None => false, + Some(configs) => { + let mut has_babel_loader = false; + for config in &*configs.await? { + let name = match config { + WebpackLoaderConfigItem::LoaderName(name) => name, + WebpackLoaderConfigItem::LoaderNameWithOptions { + loader: name, + options: _, + } => name, + }; + + if name == "babel-loader" { + has_babel_loader = true; + break; + } + } + has_babel_loader + } + }; + + if !has_babel_loader { + if !*(is_babel_loader_available(project_root).await?) { + BabelIssue { + path: project_root, + title: StringVc::cell( + "Unable to resolve babel-loader, but a babel config is present" + .to_owned(), + ), + description: StringVc::cell( + "Make sure babel-loader is installed via your package manager." + .to_owned(), + ), + severity: IssueSeverity::Fatal.cell(), + } + .cell() + .as_issue() + .emit() + } + + let loader = WebpackLoaderConfigItem::LoaderName("babel-loader".to_owned()); + options.extension_to_loaders.insert( + ext.to_owned(), + if options.extension_to_loaders.contains_key(ext) { + let mut new_configs = (*(options.extension_to_loaders[ext].await?)).clone(); + new_configs.push(loader); + WebpackLoaderConfigItemsVc::cell(new_configs) + } else { + WebpackLoaderConfigItemsVc::cell(vec![loader]) + }, + ); + } + } + + Ok(options.cell()) + } else { + Ok(webpack_options) + } +} + +#[turbo_tasks::function] +pub async fn is_babel_loader_available(project_root: FileSystemPathVc) -> Result { + let result = resolve( + project_root, + RequestVc::parse(Value::new(Pattern::Constant( + "babel-loader/package.json".to_string(), + ))), + resolve_options( + project_root, + ResolveOptionsContext { + enable_node_modules: true, + enable_node_native_modules: true, + custom_conditions: vec!["development".to_string()], + ..Default::default() + } + .cell(), + ), + ); + let assets = result.primary_assets().await?; + Ok(BoolVc::cell(!assets.is_empty())) +} + +#[turbo_tasks::value] +struct BabelIssue { + path: FileSystemPathVc, + title: StringVc, + description: StringVc, + severity: IssueSeverityVc, +} + +#[turbo_tasks::value_impl] +impl Issue for BabelIssue { + #[turbo_tasks::function] + fn category(&self) -> StringVc { + StringVc::cell("other".to_string()) + } + + #[turbo_tasks::function] + fn severity(&self) -> IssueSeverityVc { + self.severity + } + + #[turbo_tasks::function] + fn context(&self) -> FileSystemPathVc { + self.path + } + + #[turbo_tasks::function] + fn title(&self) -> StringVc { + self.title + } + + #[turbo_tasks::function] + fn description(&self) -> StringVc { + self.description + } +} diff --git a/crates/next-core/src/lib.rs b/crates/next-core/src/lib.rs index 999c13e5b19da..7b0e68ebb47e0 100644 --- a/crates/next-core/src/lib.rs +++ b/crates/next-core/src/lib.rs @@ -4,6 +4,7 @@ mod app_render; mod app_source; pub mod app_structure; +mod babel; mod embed_js; pub mod env; mod fallback; diff --git a/crates/next-core/src/next_client/context.rs b/crates/next-core/src/next_client/context.rs index 09ff236048cd4..8046347d86818 100644 --- a/crates/next-core/src/next_client/context.rs +++ b/crates/next-core/src/next_client/context.rs @@ -27,6 +27,7 @@ use turbopack_node::execution_context::ExecutionContextVc; use super::transforms::get_next_client_transforms_rules; use crate::{ + babel::maybe_add_babel_loader, embed_js::attached_next_js_package_path, env::env_for_js, next_build::{get_external_next_compiled_package_mapping, get_postcss_package_mapping}, @@ -123,21 +124,28 @@ pub async fn get_client_module_options_context( .await? .is_found(); - let options = &*next_config.webpack_loaders_options().await?; - let enable_webpack_loaders = WebpackLoadersOptions { - extension_to_loaders: options.clone(), - loader_runner_package: Some(get_external_next_compiled_package_mapping(StringVc::cell( - "loader-runner".to_owned(), - ))), - placeholder_for_future_extensions: (), - } - .clone_if(); + let enable_webpack_loaders = { + let options = &*next_config.webpack_loaders_options().await?; + let loaders_options = WebpackLoadersOptions { + extension_to_loaders: options.clone(), + loader_runner_package: Some(get_external_next_compiled_package_mapping( + StringVc::cell("loader-runner".to_owned()), + )), + placeholder_for_future_extensions: (), + } + .cell(); + + maybe_add_babel_loader(project_path, loaders_options) + .await? + .clone_if() + }; let module_options_context = ModuleOptionsContext { preset_env_versions: Some(env), execution_context: Some(execution_context), ..Default::default() }; + let module_options_context = ModuleOptionsContext { // We don't need to resolve React Refresh for each module. Instead, // we try resolve it once at the root and pass down a context to all diff --git a/crates/next-core/src/next_config.rs b/crates/next-core/src/next_config.rs index 53f2fa1517399..2e161aab70cc4 100644 --- a/crates/next-core/src/next_config.rs +++ b/crates/next-core/src/next_config.rs @@ -28,7 +28,7 @@ use turbopack_ecmascript::{ use turbopack_node::{ evaluate::{evaluate, JavaScriptValue}, execution_context::{ExecutionContext, ExecutionContextVc}, - transforms::webpack::{WebpackLoaderConfigs, WebpackLoaderConfigsVc}, + transforms::webpack::{WebpackLoaderConfigItems, WebpackLoaderConfigItemsVc}, }; use crate::embed_js::next_asset; @@ -333,7 +333,7 @@ pub enum RemotePatternProtocal { #[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize, TraceRawVcs)] #[serde(rename_all = "camelCase")] pub struct ExperimentalTurboConfig { - pub loaders: Option>, + pub loaders: Option>, pub resolve_alias: Option>, } @@ -445,7 +445,7 @@ pub enum RemoveConsoleConfig { #[derive(Default)] #[turbo_tasks::value(transparent)] -pub struct WebpackExtensionToLoaders(IndexMap); +pub struct WebpackExtensionToLoaders(IndexMap); #[turbo_tasks::value_impl] impl NextConfigVc { @@ -508,7 +508,10 @@ impl NextConfigVc { }; let mut extension_to_loaders = IndexMap::new(); for (ext, loaders) in turbo_loaders { - extension_to_loaders.insert(ext.clone(), WebpackLoaderConfigsVc::cell(loaders.clone())); + extension_to_loaders.insert( + ext.clone(), + WebpackLoaderConfigItemsVc::cell(loaders.0.clone()), + ); } Ok(WebpackExtensionToLoaders(extension_to_loaders).cell()) } diff --git a/crates/next-core/src/next_server/context.rs b/crates/next-core/src/next_server/context.rs index 49b69c9fedc5e..efdefafcfd169 100644 --- a/crates/next-core/src/next_server/context.rs +++ b/crates/next-core/src/next_server/context.rs @@ -24,6 +24,7 @@ use super::{ resolve::ExternalCjsModulesResolvePluginVc, transforms::get_next_server_transforms_rules, }; use crate::{ + babel::maybe_add_babel_loader, next_build::{get_external_next_compiled_package_mapping, get_postcss_package_mapping}, next_config::NextConfigVc, next_import_map::{get_next_build_import_map, get_next_server_import_map}, @@ -186,15 +187,22 @@ pub async fn get_server_module_options_context( postcss_package: Some(get_postcss_package_mapping(project_path)), ..Default::default() }); - let options = &*next_config.webpack_loaders_options().await?; - let enable_webpack_loaders = WebpackLoadersOptions { - loader_runner_package: Some(get_external_next_compiled_package_mapping(StringVc::cell( - "loader-runner".to_owned(), - ))), - extension_to_loaders: options.clone(), - placeholder_for_future_extensions: (), - } - .clone_if(); + + let enable_webpack_loaders = { + let options = &*next_config.webpack_loaders_options().await?; + let loaders_options = WebpackLoadersOptions { + extension_to_loaders: options.clone(), + loader_runner_package: Some(get_external_next_compiled_package_mapping( + StringVc::cell("loader-runner".to_owned()), + )), + placeholder_for_future_extensions: (), + } + .cell(); + + maybe_add_babel_loader(project_path, loaders_options) + .await? + .clone_if() + }; let module_options_context = match ty.into_value() { ServerContextType::Pages { .. } | ServerContextType::PagesData { .. } => { diff --git a/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/babel.config.json b/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/babel.config.json new file mode 100644 index 0000000000000..6cb656c226eb9 --- /dev/null +++ b/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/babel.config.json @@ -0,0 +1,4 @@ +{ + "plugins": ["foo"], + "presets": ["@babel/preset-typescript"] +} diff --git a/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/node_modules/babel-plugin-foo/index.js b/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/node_modules/babel-plugin-foo/index.js new file mode 100644 index 0000000000000..4894348397eab --- /dev/null +++ b/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/node_modules/babel-plugin-foo/index.js @@ -0,0 +1,11 @@ +module.exports = function () { + return { + visitor: { + StringLiteral(path) { + if (path.node.value === "other") { + path.node.value = "foo" + } + } + } + }; +} diff --git a/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/other.js b/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/other.js new file mode 100644 index 0000000000000..7f4090ad98fc4 --- /dev/null +++ b/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/other.js @@ -0,0 +1 @@ +module.exports = "other"; diff --git a/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/pages/index.ts b/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/pages/index.ts new file mode 100644 index 0000000000000..6b3e26a0a8350 --- /dev/null +++ b/crates/next-dev-tests/tests/integration/next/webpack-loaders/auto-babel-loader/input/pages/index.ts @@ -0,0 +1,17 @@ +import { useEffect } from "react"; +import other from "../other"; + +export default function Home() { + useEffect(() => { + // Only run on client + import("@turbo/pack-test-harness").then(runTests); + }); + + return null; +} + +function runTests() { + it("automatically runs babel-loader if a babel config is present", () => { + expect(other).toBe("foo"); + }); +} diff --git a/crates/next-dev-tests/tests/package.json b/crates/next-dev-tests/tests/package.json index 5b96dc2ec25e8..597412d6563c7 100644 --- a/crates/next-dev-tests/tests/package.json +++ b/crates/next-dev-tests/tests/package.json @@ -2,10 +2,12 @@ "name": "next-dev-tests", "private": true, "devDependencies": { + "@babel/preset-typescript": "7.21.0", "@turbo/pack-test-harness": "file:../test-harness", "@types/jest": "29.4.0", "@types/node": "^18.14.0", "autoprefixer": "^10.4.13", + "babel-loader": "^9.1.2", "loader-runner": "^4.3.0", "next": "13.1.7-canary.25", "postcss": "^8.4.20", diff --git a/crates/turbopack-node/src/transforms/webpack.rs b/crates/turbopack-node/src/transforms/webpack.rs index 8018368608cc9..879f8a46feca0 100644 --- a/crates/turbopack-node/src/transforms/webpack.rs +++ b/crates/turbopack-node/src/transforms/webpack.rs @@ -35,7 +35,7 @@ struct WebpackLoadersProcessingResult { #[derive(Clone, PartialEq, Eq, Debug, TraceRawVcs, Serialize, Deserialize)] #[serde(untagged)] -pub enum WebpackLoaderConfig { +pub enum WebpackLoaderConfigItem { LoaderName(String), LoaderNameWithOptions { loader: String, @@ -45,14 +45,14 @@ pub enum WebpackLoaderConfig { } #[derive(Debug, Clone)] -#[turbo_tasks::value(shared)] -pub struct WebpackLoaderConfigs(Vec); +#[turbo_tasks::value(shared, transparent)] +pub struct WebpackLoaderConfigItems(pub Vec); #[turbo_tasks::value] pub struct WebpackLoaders { evaluate_context: AssetContextVc, execution_context: ExecutionContextVc, - loaders: WebpackLoaderConfigsVc, + loaders: WebpackLoaderConfigItemsVc, } #[turbo_tasks::value_impl] @@ -61,7 +61,7 @@ impl WebpackLoadersVc { pub fn new( evaluate_context: AssetContextVc, execution_context: ExecutionContextVc, - loaders: WebpackLoaderConfigsVc, + loaders: WebpackLoaderConfigItemsVc, ) -> Self { WebpackLoaders { evaluate_context, @@ -91,7 +91,7 @@ impl SourceTransform for WebpackLoaders { struct WebpackLoadersProcessedAsset { evaluate_context: AssetContextVc, execution_context: ExecutionContextVc, - loaders: WebpackLoaderConfigsVc, + loaders: WebpackLoaderConfigItemsVc, source: AssetVc, } diff --git a/crates/turbopack/src/module_options/module_options_context.rs b/crates/turbopack/src/module_options/module_options_context.rs index c391fdfc44fd4..ba1c716b00fb1 100644 --- a/crates/turbopack/src/module_options/module_options_context.rs +++ b/crates/turbopack/src/module_options/module_options_context.rs @@ -4,7 +4,7 @@ use turbo_tasks::trace::TraceRawVcs; use turbopack_core::{environment::EnvironmentVc, resolve::options::ImportMappingVc}; use turbopack_ecmascript::EcmascriptInputTransform; use turbopack_node::{ - execution_context::ExecutionContextVc, transforms::webpack::WebpackLoaderConfigsVc, + execution_context::ExecutionContextVc, transforms::webpack::WebpackLoaderConfigItemsVc, }; use super::ModuleRule; @@ -19,7 +19,7 @@ pub struct PostCssTransformOptions { #[turbo_tasks::value(shared)] #[derive(Default, Clone, Debug)] pub struct WebpackLoadersOptions { - pub extension_to_loaders: IndexMap, + pub extension_to_loaders: IndexMap, pub loader_runner_package: Option, pub placeholder_for_future_extensions: (), } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1efaeaf6e191..62ac7f13ba766 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,10 +172,12 @@ importers: crates/next-dev-tests/tests: specifiers: + '@babel/preset-typescript': 7.21.0 '@turbo/pack-test-harness': file:../test-harness '@types/jest': 29.4.0 '@types/node': ^18.14.0 autoprefixer: ^10.4.13 + babel-loader: ^9.1.2 loader-runner: ^4.3.0 next: 13.1.7-canary.25 postcss: ^8.4.20 @@ -185,10 +187,12 @@ importers: styled-jsx: ^5.1.0 tailwindcss: ^3.2.4 devDependencies: + '@babel/preset-typescript': 7.21.0_@babel+core@7.20.12 '@turbo/pack-test-harness': file:crates/next-dev-tests/test-harness '@types/jest': 29.4.0 '@types/node': 18.14.0 autoprefixer: 10.4.13_postcss@8.4.20 + babel-loader: 9.1.2_la66t7xldg4uecmyawueag5wkm loader-runner: 4.3.0 next: 13.1.7-canary.25_pjwopsidmaokadturxaafygjp4 postcss: 8.4.20 @@ -662,7 +666,7 @@ packages: '@babel/parser': 7.20.7 '@babel/template': 7.20.7 '@babel/traverse': 7.20.12 - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -679,6 +683,13 @@ packages: '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 + /@babel/helper-annotate-as-pure/7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.0 + dev: true + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} engines: {node: '>=6.9.0'} @@ -687,11 +698,30 @@ packages: dependencies: '@babel/compat-data': 7.20.5 '@babel/core': 7.20.12 - '@babel/helper-validator-option': 7.18.6 + '@babel/helper-validator-option': 7.21.0 browserslist: 4.21.4 lru-cache: 5.1.1 semver: 6.3.0 + /@babel/helper-create-class-features-plugin/7.21.0_@babel+core@7.20.12: + resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-member-expression-to-functions': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-split-export-declaration': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} @@ -701,19 +731,34 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.20.7 - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 + + /@babel/helper-function-name/7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.0 + dev: true /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 + + /@babel/helper-member-expression-to-functions/7.21.0: + resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.0 + dev: true /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 /@babel/helper-module-transforms/7.20.11: resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} @@ -730,15 +775,43 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-plugin-utils/7.18.9: - resolution: {integrity: sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==} + /@babel/helper-optimise-call-expression/7.18.6: + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.0 + dev: true + + /@babel/helper-plugin-utils/7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} engines: {node: '>=6.9.0'} + /@babel/helper-replace-supers/7.20.7: + resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-member-expression-to-functions': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.12 + '@babel/types': 7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-simple-access/7.20.2: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 + + /@babel/helper-skip-transparent-expression-wrappers/7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.0 + dev: true /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} @@ -754,8 +827,8 @@ packages: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option/7.18.6: - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + /@babel/helper-validator-option/7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} engines: {node: '>=6.9.0'} /@babel/helpers/7.20.7: @@ -789,7 +862,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} @@ -797,7 +870,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.12: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} @@ -805,7 +878,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.12: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} @@ -813,7 +886,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -821,7 +894,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} @@ -830,7 +903,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.12: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -838,7 +911,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -846,7 +919,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.12: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -854,7 +927,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -862,7 +935,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -870,7 +943,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -878,7 +951,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.12: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} @@ -887,16 +960,44 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} + /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.12: + resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + + /@babel/plugin-transform-typescript/7.21.0_@babel+core@7.20.12: + resolution: {integrity: sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-typescript/7.21.0_@babel+core@7.20.12: + resolution: {integrity: sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-transform-typescript': 7.21.0_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color + dev: true /@babel/runtime-corejs3/7.20.6: resolution: {integrity: sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==} @@ -952,6 +1053,14 @@ packages: '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + /@babel/types/7.21.0: + resolution: {integrity: sha512-uR7NWq2VNFnDi7EYqiRz2Jv/VQIu38tu64Zy8TX2nQFQ6etJ9V/Rr2msW8BS132mum2rL645qpDrLtAJtVpuow==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + /@bcoe/v8-coverage/0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true @@ -2529,7 +2638,7 @@ packages: resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} dependencies: '@babel/parser': 7.20.7 - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.18.1 @@ -2538,20 +2647,20 @@ packages: /@types/babel__generator/7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 dev: true /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: '@babel/parser': 7.20.7 - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 dev: true /@types/babel__traverse/7.18.1: resolution: {integrity: sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA==} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 /@types/chalk-animation/1.6.1: resolution: {integrity: sha512-MSuZqFkBeKcik4oMzd/BjaTRYkLpNftRSYkI/oszmckHAZOTSKslWR1CRdURwsxXBgYHPRlb5JM6Cx+tkyXUAg==} @@ -3138,12 +3247,12 @@ packages: acorn-walk: 7.2.0 dev: true - /acorn-import-assertions/1.8.0_acorn@8.8.0: + /acorn-import-assertions/1.8.0_acorn@8.8.1: resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.8.0 + acorn: 8.8.1 dev: true /acorn-jsx/5.3.2_acorn@7.4.1: @@ -3213,6 +3322,17 @@ packages: indent-string: 4.0.0 dev: true + /ajv-formats/2.1.1_ajv@8.11.0: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.11.0 + dev: true + /ajv-keywords/3.5.2_ajv@6.12.6: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: @@ -3221,6 +3341,15 @@ packages: ajv: 6.12.6 dev: true + /ajv-keywords/5.1.0_ajv@8.11.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + dependencies: + ajv: 8.11.0 + fast-deep-equal: 3.1.3 + dev: true + /ajv/6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -3538,11 +3667,24 @@ packages: - supports-color dev: true + /babel-loader/9.1.2_la66t7xldg4uecmyawueag5wkm: + resolution: {integrity: sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + dependencies: + '@babel/core': 7.20.12 + find-cache-dir: 3.3.2 + schema-utils: 4.0.0 + webpack: 5.75.0 + dev: true + /babel-plugin-istanbul/6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.0 @@ -3555,7 +3697,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@babel/template': 7.20.7 - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 '@types/babel__core': 7.1.19 '@types/babel__traverse': 7.18.1 dev: true @@ -4077,6 +4219,10 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} + /commondir/1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + dev: true + /component-emitter/1.3.0: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} @@ -4503,14 +4649,6 @@ packages: once: 1.4.0 dev: true - /enhanced-resolve/5.10.0: - resolution: {integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==} - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: 4.2.10 - tapable: 2.2.1 - dev: true - /enhanced-resolve/5.12.0: resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} engines: {node: '>=10.13.0'} @@ -6160,6 +6298,15 @@ packages: dependencies: to-regex-range: 5.0.1 + /find-cache-dir/3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + dev: true + /find-up/4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -7903,9 +8050,9 @@ packages: dependencies: '@babel/core': 7.20.12 '@babel/generator': 7.20.7 - '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 '@babel/traverse': 7.20.12 - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 '@types/babel__traverse': 7.18.1 @@ -7934,7 +8081,7 @@ packages: '@babel/core': 7.20.12 '@babel/generator': 7.20.7 '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 '@babel/traverse': 7.20.12 '@babel/types': 7.20.7 '@jest/expect-utils': 29.4.1 @@ -10977,6 +11124,16 @@ packages: ajv-keywords: 3.5.2_ajv@6.12.6 dev: true + /schema-utils/4.0.0: + resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} + engines: {node: '>= 12.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 8.11.0 + ajv-formats: 2.1.1_ajv@8.11.0 + ajv-keywords: 5.1.0_ajv@8.11.0 + dev: true + /scroll-into-view-if-needed/2.2.29: resolution: {integrity: sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==} dependencies: @@ -12619,11 +12776,11 @@ packages: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/wasm-edit': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 - acorn: 8.8.0 - acorn-import-assertions: 1.8.0_acorn@8.8.0 + acorn: 8.8.1 + acorn-import-assertions: 1.8.0_acorn@8.8.1 browserslist: 4.21.4 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.10.0 + enhanced-resolve: 5.12.0 es-module-lexer: 0.9.3 eslint-scope: 5.1.1 events: 3.3.0 From 186b69117e241c070dbeabe665ff6cdd9090ebda Mon Sep 17 00:00:00 2001 From: Thomas Knickman Date: Wed, 22 Feb 2023 14:02:41 -0500 Subject: [PATCH 8/9] feat(blog): 1.8 post (#3913 --- docs/pages/blog/_meta.json | 1 + docs/pages/blog/turbo-1-8-0.mdx | 119 ++++++++++++++++++ .../images/blog/turbo-1-8-0/twitter-card.png | Bin 0 -> 964389 bytes 3 files changed, 120 insertions(+) create mode 100644 docs/pages/blog/turbo-1-8-0.mdx create mode 100644 docs/public/images/blog/turbo-1-8-0/twitter-card.png diff --git a/docs/pages/blog/_meta.json b/docs/pages/blog/_meta.json index 22c77b3037e76..182de050d9176 100644 --- a/docs/pages/blog/_meta.json +++ b/docs/pages/blog/_meta.json @@ -9,6 +9,7 @@ "typesetting": "article" } }, + "turbo-1-8-0": "Turborepo 1.8", "turbo-1-7-0": "Turborepo 1.7", "turbopack-benchmarks": "Turbopack Performance Benchmarks", "turbo-1-6-0": "Turborepo 1.6", diff --git a/docs/pages/blog/turbo-1-8-0.mdx b/docs/pages/blog/turbo-1-8-0.mdx new file mode 100644 index 0000000000000..4f95bd6d4cb9d --- /dev/null +++ b/docs/pages/blog/turbo-1-8-0.mdx @@ -0,0 +1,119 @@ +--- +title: Turborepo 1.8 +date: 2023/02/22 +description: Turborepo 1.8 brings better flexibility and more control to your codebase by improving turbo's understanding of your workspaces. +tag: "web development" +ogImage: /images/blog/turbo-1-8-0/twitter-card.png +--- + +import { Tabs, Tab } from '../../components/Tabs' + +# Turborepo 1.8 + +import { Authors } from '../../components/Authors' +import Badge from '../../components/Badge' +import Date from "../../components/blog/Date"; + + + Wednesday, February 22th, 2023 + + + + +Turborepo 1.8 brings better flexibility and more control to your codebase by improving `turbo`'s understanding of your workspaces. + +- [**Workspace Configurations**](#workspace-configurations): You can now add a `turbo.json` configuration file in a workspace to override the root configuration in your repository. +- [**Automatic Workspace Scoping**](#automatic-workspace-scoping): Global `turbo` now automatically infers your current workspace so that it only runs that workspace’s tasks. +- [**Easier Migrations**](#easier-migrations): Automatically migrate to new versions of `turbo` with `npx @turbo/codemod migrate`. + +Update today by running `npx @turbo/codemod migrate`. + +## Workspace Configurations + +In workspace directories, you can now add a `turbo.json` to: + +- add tasks specific to that workspace +- override configuration for tasks + +This will enable teams to scale ownership of the projects in their monorepos by moving away from global configuration to fine-grain contol over tasks in workspaces. + +For example, imagine your monorepo has a Next.js app and a SvelteKit app, and you want to use Turborepo to cache outputs of the `build` task. The Next.js `build` script creates a `.next` directory, whereas SvelteKit creates a `.svelte-kit` directory. Instead of adding both build directories in your root `outputs`, you can define the `outputs` key in the workspace instead: + +```jsonc filename="turbo.json" +{ + "pipeline": { + "build": { + "dependsOn": ["^codegen"], + // no need to define outputs here! + } + } +} +``` + +```jsonc filename="apps/my-nextjs-app/turbo.json" +{ + "extends": ["//"], + "pipeline": { + "build": { + // dependsOn is inherited from root + "outputs": [".next/**"] + } + } +} +``` + +```jsonc filename="apps/my-sveltekit-app/turbo.json" +{ + "extends": ["//"], + "pipeline": { + "build": { + // dependsOn is inherited from root + "outputs": [".svelte-kit/**"] + } + } +} +``` + +The `extends` key in the Workspace Configurations enables workspace owners to use the best of the root `turbo.json` and customize the parts that makes their app different (The `"//"` sigil will look familiar if you’re used to [defining tasks to run from your root](/repo/docs/core-concepts/monorepos/running-tasks#running-tasks-from-the-root)). + +Keys that **are** declared will replace the key from the root if those keys exist, overriding what is defined in your root configuration. Keys that **are not** declared are inherited from the root config. + +In the example above, `outputs` is customized for both apps, while `dependsOn` is configured by the root `turbo.json` and remains `"^codegen"`. + +[Learn more in the docs](/repo/docs/core-concepts/monorepos/configuring-workspaces). + +## Automatic Workspace Scoping + +In [Turborepo v1.7](/blog/turbo-1-7-0), `turbo` became globally installable, giving you the power to run your tasks from anywhere in your codebase. However, `turbo` would still run tasks from the root, running tasks in other workspaces that you may not have intended to run. + +With 1.8, `turbo` will automatically detect the workspace you are in and generate [the `--filter` syntax](/repo/docs/reference/command-line-reference#--filter) to scope your task to that workspace. + +As an example, if your current directory is `apps/admin` and you use the `turbo build` command, `turbo` will run `turbo build --filter=admin` under the hood, focusing on the workspace that you are working on. + +## Easier Migrations + +Manually running individual codemods in the correct order is no longer required when upgrading Turborepo versions. `@turbo/codemod` now provides a simple `migrate` command which both upgrades your repo to the specified version (`latest` by default) of `turbo`, _and_ runs any codemods required. + +Try it out now with `npx @turbo/codemod migrate`. + +## Community + +Since releasing [Turborepo v1.7](/blog/turbo-1-7-0) we've seen incredible adoption and community growth: + +- [19.6k+ GitHub Stars](https://github.com/vercel/turbo) +- [987k weekly NPM downloads](https://www.npmjs.com/package/turbo) +- 42 years of compute time saved through [Remote Caching on Vercel](https://vercel.com/docs/concepts/monorepos/remote-caching) + +Turborepo is the result of the combined work of all of its contributors, including our core team. + +Thank you for your continued support, feedback, and collaboration to make Turborepo your build tool of choice. diff --git a/docs/public/images/blog/turbo-1-8-0/twitter-card.png b/docs/public/images/blog/turbo-1-8-0/twitter-card.png new file mode 100644 index 0000000000000000000000000000000000000000..e4071b3055765d48a644dca5c980469fd4ede533 GIT binary patch literal 964389 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%0AA2 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

Fu8j0f=A`OLZk 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�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¡^$|gQHxOToynJ*Ykw7Iu5e)ZCShuCYkjEM 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 zξ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%0Ab|w?UM}WMk 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 <8eR7OfPJu2NqRL+uHI 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 b$D!(YDd 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

*LLdm|TqfT+$;Mt9`$8_z|4GJk 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

i2(6tZM){m`u$GtpohjI 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 Date: Wed, 22 Feb 2023 14:06:31 -0500 Subject: [PATCH 9/9] feat(@turbo/workspaces): add new workspaces package (#3818 --- .../migrate/steps/getTurboUpgradeCommand.ts | 8 +- packages/turbo-test-utils/package.json | 2 + packages/turbo-test-utils/src/useFixtures.ts | 38 +- packages/turbo-utils/package.json | 1 + packages/turbo-utils/src/index.ts | 4 + packages/turbo-utils/src/managers.ts | 47 +++ packages/turbo-workspaces/LICENSE | 373 +++++++++++++++++ packages/turbo-workspaces/README.md | 49 +++ .../__fixtures__/invalid/index.js | 1 + .../npm/basic/apps/docs/package.json | 11 + .../npm/basic/apps/web/package.json | 11 + .../__fixtures__/npm/basic/package-lock.json | 385 ++++++++++++++++++ .../__fixtures__/npm/basic/package.json | 14 + .../npm/basic/packages/tsconfig/package.json | 5 + .../npm/basic/packages/ui/package.json | 7 + .../npm/non-monorepo/package-lock.json | 12 + .../npm/non-monorepo/package.json | 6 + .../pnpm/basic/apps/docs/package.json | 11 + .../pnpm/basic/apps/web/package.json | 11 + .../__fixtures__/pnpm/basic/package.json | 10 + .../pnpm/basic/packages/tsconfig/package.json | 5 + .../pnpm/basic/packages/ui/package.json | 7 + .../__fixtures__/pnpm/basic/pnpm-lock.yaml | 33 ++ .../pnpm/basic/pnpm-workspace.yaml | 3 + .../pnpm/non-monorepo/package.json | 8 + .../yarn/basic/apps/docs/package.json | 11 + .../yarn/basic/apps/web/package.json | 11 + .../__fixtures__/yarn/basic/package.json | 14 + .../yarn/basic/packages/tsconfig/package.json | 5 + .../yarn/basic/packages/ui/package.json | 7 + .../__fixtures__/yarn/basic/yarn.lock | 4 + .../yarn/non-monorepo/package.json | 8 + .../turbo-workspaces/__tests__/index.test.ts | 52 +++ .../__tests__/managers/npm.test.ts | 198 +++++++++ .../__tests__/managers/pnpm.test.ts | 249 +++++++++++ .../__tests__/managers/yarn.test.ts | 200 +++++++++ .../turbo-workspaces/__tests__/test-utils.ts | 104 +++++ packages/turbo-workspaces/jest.config.js | 18 + packages/turbo-workspaces/package.json | 62 +++ packages/turbo-workspaces/src/cli.ts | 53 +++ .../src/commands/convert/index.ts | 109 +++++ .../src/commands/convert/types.ts | 6 + .../turbo-workspaces/src/commands/index.ts | 11 + .../src/commands/summary/index.ts | 95 +++++ .../src/commands/summary/types.ts | 1 + packages/turbo-workspaces/src/convert.ts | 61 +++ packages/turbo-workspaces/src/errors.ts | 7 + .../src/getWorkspaceDetails.ts | 29 ++ packages/turbo-workspaces/src/index.ts | 33 ++ packages/turbo-workspaces/src/install.ts | 103 +++++ packages/turbo-workspaces/src/logger.ts | 109 +++++ .../turbo-workspaces/src/managers/index.ts | 11 + packages/turbo-workspaces/src/managers/npm.ts | 189 +++++++++ .../turbo-workspaces/src/managers/pnpm.ts | 211 ++++++++++ .../turbo-workspaces/src/managers/yarn.ts | 198 +++++++++ packages/turbo-workspaces/src/types.ts | 121 ++++++ .../src/updateDependencies.ts | 135 ++++++ packages/turbo-workspaces/src/utils.ts | 165 ++++++++ packages/turbo-workspaces/tsconfig.json | 6 + packages/turbo-workspaces/tsup.config.ts | 9 + pnpm-lock.yaml | 165 +++++++- 61 files changed, 3807 insertions(+), 25 deletions(-) create mode 100644 packages/turbo-utils/src/managers.ts create mode 100644 packages/turbo-workspaces/LICENSE create mode 100644 packages/turbo-workspaces/README.md create mode 100644 packages/turbo-workspaces/__fixtures__/invalid/index.js create mode 100644 packages/turbo-workspaces/__fixtures__/npm/basic/apps/docs/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/npm/basic/apps/web/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/npm/basic/package-lock.json create mode 100644 packages/turbo-workspaces/__fixtures__/npm/basic/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/npm/basic/packages/tsconfig/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/npm/basic/packages/ui/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/npm/non-monorepo/package-lock.json create mode 100644 packages/turbo-workspaces/__fixtures__/npm/non-monorepo/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/pnpm/basic/apps/docs/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/pnpm/basic/apps/web/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/pnpm/basic/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/pnpm/basic/packages/tsconfig/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/pnpm/basic/packages/ui/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/pnpm/basic/pnpm-lock.yaml create mode 100644 packages/turbo-workspaces/__fixtures__/pnpm/basic/pnpm-workspace.yaml create mode 100644 packages/turbo-workspaces/__fixtures__/pnpm/non-monorepo/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/yarn/basic/apps/docs/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/yarn/basic/apps/web/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/yarn/basic/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/yarn/basic/packages/tsconfig/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/yarn/basic/packages/ui/package.json create mode 100644 packages/turbo-workspaces/__fixtures__/yarn/basic/yarn.lock create mode 100644 packages/turbo-workspaces/__fixtures__/yarn/non-monorepo/package.json create mode 100644 packages/turbo-workspaces/__tests__/index.test.ts create mode 100644 packages/turbo-workspaces/__tests__/managers/npm.test.ts create mode 100644 packages/turbo-workspaces/__tests__/managers/pnpm.test.ts create mode 100644 packages/turbo-workspaces/__tests__/managers/yarn.test.ts create mode 100644 packages/turbo-workspaces/__tests__/test-utils.ts create mode 100644 packages/turbo-workspaces/jest.config.js create mode 100644 packages/turbo-workspaces/package.json create mode 100644 packages/turbo-workspaces/src/cli.ts create mode 100644 packages/turbo-workspaces/src/commands/convert/index.ts create mode 100644 packages/turbo-workspaces/src/commands/convert/types.ts create mode 100644 packages/turbo-workspaces/src/commands/index.ts create mode 100644 packages/turbo-workspaces/src/commands/summary/index.ts create mode 100644 packages/turbo-workspaces/src/commands/summary/types.ts create mode 100644 packages/turbo-workspaces/src/convert.ts create mode 100644 packages/turbo-workspaces/src/errors.ts create mode 100644 packages/turbo-workspaces/src/getWorkspaceDetails.ts create mode 100644 packages/turbo-workspaces/src/index.ts create mode 100644 packages/turbo-workspaces/src/install.ts create mode 100644 packages/turbo-workspaces/src/logger.ts create mode 100644 packages/turbo-workspaces/src/managers/index.ts create mode 100644 packages/turbo-workspaces/src/managers/npm.ts create mode 100644 packages/turbo-workspaces/src/managers/pnpm.ts create mode 100644 packages/turbo-workspaces/src/managers/yarn.ts create mode 100644 packages/turbo-workspaces/src/types.ts create mode 100644 packages/turbo-workspaces/src/updateDependencies.ts create mode 100644 packages/turbo-workspaces/src/utils.ts create mode 100644 packages/turbo-workspaces/tsconfig.json create mode 100644 packages/turbo-workspaces/tsup.config.ts diff --git a/packages/turbo-codemod/src/commands/migrate/steps/getTurboUpgradeCommand.ts b/packages/turbo-codemod/src/commands/migrate/steps/getTurboUpgradeCommand.ts index cdba907ae8d55..8fd5972ab8070 100644 --- a/packages/turbo-codemod/src/commands/migrate/steps/getTurboUpgradeCommand.ts +++ b/packages/turbo-codemod/src/commands/migrate/steps/getTurboUpgradeCommand.ts @@ -13,10 +13,10 @@ type InstallType = "dependencies" | "devDependencies"; function getGlobalBinaryPaths(): Record { return { - // we run these from the homedir to avoid corepack interference - yarn: exec(`yarn global bin`, { cwd: os.homedir() }), - npm: exec(`npm bin --global`, { cwd: os.homedir() }), - pnpm: exec(`pnpm bin --global`, { cwd: os.homedir() }), + // we run these from a tmpdir to avoid corepack interference + yarn: exec(`yarn global bin`, { cwd: os.tmpdir() }), + npm: exec(`npm bin --global`, { cwd: os.tmpdir() }), + pnpm: exec(`pnpm bin --global`, { cwd: os.tmpdir() }), }; } diff --git a/packages/turbo-test-utils/package.json b/packages/turbo-test-utils/package.json index 174bd53013436..908d71d4b6655 100644 --- a/packages/turbo-test-utils/package.json +++ b/packages/turbo-test-utils/package.json @@ -23,6 +23,7 @@ "devDependencies": { "@types/fs-extra": "^9.0.13", "@types/jest": "^27.4.0", + "@types/js-yaml": "^4.0.5", "@types/node": "^16.11.12", "@types/uuid": "^9.0.0", "jest": "^27.4.3", @@ -32,6 +33,7 @@ }, "dependencies": { "fs-extra": "^11.1.0", + "js-yaml": "^4.1.0", "uuid": "^9.0.0" } } diff --git a/packages/turbo-test-utils/src/useFixtures.ts b/packages/turbo-test-utils/src/useFixtures.ts index 1753bc23b8a39..aafaec163a940 100644 --- a/packages/turbo-test-utils/src/useFixtures.ts +++ b/packages/turbo-test-utils/src/useFixtures.ts @@ -1,6 +1,7 @@ import { v4 as uuidv4 } from "uuid"; import path from "path"; import fs from "fs-extra"; +import yaml from "js-yaml"; export default function setupTestFixtures({ directory, @@ -23,7 +24,8 @@ export default function setupTestFixtures({ }); const useFixture = ({ fixture }: { fixture: string }) => { - const testDirectory = path.join(parentDirectory, uuidv4()); + const directoryName = uuidv4(); + const testDirectory = path.join(parentDirectory, directoryName); if (!fs.existsSync(testDirectory)) { fs.mkdirSync(testDirectory, { recursive: true }); } @@ -37,24 +39,28 @@ export default function setupTestFixtures({ recursive: true, }); - // helpers - const read = (filename: string) => { - try { - return fs.readFileSync(path.join(testDirectory, filename), "utf8"); - } catch (e) { - return undefined; - } + const readGenerator = (method: (filePath: string) => unknown) => { + return (filename: string) => { + const filePath = path.isAbsolute(filename) + ? filename + : path.join(testDirectory, filename); + try { + return method(filePath) as T; + } catch (e) { + return undefined; + } + }; }; - const readJson = (filename: string) => { - try { - return fs.readJSONSync(path.join(testDirectory, filename), "utf8"); - } catch (e) { - return undefined; - } - }; + const read = readGenerator((filePath) => fs.readFileSync(filePath, "utf8")); + const readJson = readGenerator((filePath) => + fs.readJSONSync(filePath, "utf8") + ); + const readYaml = readGenerator((filePath) => + yaml.load(fs.readFileSync(filePath, "utf8")) + ); - return { root: testDirectory, read, readJson }; + return { root: testDirectory, read, readJson, readYaml, directoryName }; }; return { useFixture }; diff --git a/packages/turbo-utils/package.json b/packages/turbo-utils/package.json index cdff68f908ba6..a7f0bdadde7a5 100644 --- a/packages/turbo-utils/package.json +++ b/packages/turbo-utils/package.json @@ -29,6 +29,7 @@ "@types/js-yaml": "^4.0.5", "@types/node": "^16.11.12", "eslint": "^8.23.0", + "execa": "5.1.1", "globby": "11.1.0", "jest": "^27.4.3", "js-yaml": "^4.1.0", diff --git a/packages/turbo-utils/src/index.ts b/packages/turbo-utils/src/index.ts index 5cc26834259b5..2d865594f79fc 100644 --- a/packages/turbo-utils/src/index.ts +++ b/packages/turbo-utils/src/index.ts @@ -2,3 +2,7 @@ export { default as getTurboRoot } from "./getTurboRoot"; export { default as getTurboConfigs } from "./getTurboConfigs"; export { default as searchUp } from "./searchUp"; +export { getAvailablePackageManagers } from "./managers"; + +// types +export type { PackageManagerAvailable } from "./managers"; diff --git a/packages/turbo-utils/src/managers.ts b/packages/turbo-utils/src/managers.ts new file mode 100644 index 0000000000000..e15bfa9fa110d --- /dev/null +++ b/packages/turbo-utils/src/managers.ts @@ -0,0 +1,47 @@ +import execa from "execa"; +import os from "os"; + +export type PackageManager = "npm" | "yarn" | "pnpm"; +export type PackageManagerAvailable = { available: boolean; version?: string }; + +async function getVersion( + packageManager: string +): Promise { + // run the check from tmpdir to avoid corepack conflicting - + // this is no longer needed as of https://github.com/nodejs/corepack/pull/167 + // but we'll keep the behavior for those on older versions) + const execOptions = { + cwd: os.tmpdir(), + env: { COREPACK_ENABLE_STRICT: "0" }, + }; + + try { + const result = await execa(packageManager, ["--version"], execOptions); + return { + available: true, + version: result.stdout.trim(), + }; + } catch (e) { + return { + available: false, + }; + } +} + +async function getAvailablePackageManagers(): Promise< + Record +> { + const [yarn, pnpm, npm] = await Promise.all([ + getVersion("yarnpkg"), + getVersion("npm"), + getVersion("pnpm"), + ]); + + return { + yarn, + pnpm, + npm, + }; +} + +export { getAvailablePackageManagers }; diff --git a/packages/turbo-workspaces/LICENSE b/packages/turbo-workspaces/LICENSE new file mode 100644 index 0000000000000..fa0086a952236 --- /dev/null +++ b/packages/turbo-workspaces/LICENSE @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. \ No newline at end of file diff --git a/packages/turbo-workspaces/README.md b/packages/turbo-workspaces/README.md new file mode 100644 index 0000000000000..1fcc6876e3757 --- /dev/null +++ b/packages/turbo-workspaces/README.md @@ -0,0 +1,49 @@ +# `@turbo/workspaces` + +Easily convert your monorepo between package managers. Supports monorepos using either npm, yarn, or pnpm workspaces. + +## CLI + +```sh +Usage: @turbo/workspaces [options] [command] + +Tools for working with package manager workspaces + +Options: + -v, --version output the current version + -h, --help display help for command + +Commands: + convert [options] [path] [package-manager] Convert project between workspace managers + summary [path] Display a summary of the specified project + help [command] display help for command +``` + +## Node API + +Methods are also available via the Node API: + +```js +import { convertMonorepo, getWorkspaceDetails } from "@turbo/workspaces"; + +// detect the package manager +const project = getWorkspaceDetails({ + root: process.cwd(), +}); + +// if the package manager is not pnpm, convert to pnpm +if (project.packageManager !== "pnpm") { + await convertMonorepo({ + root: process.cwd(), + to: "pnpm", + options: { + dry: false, + install: true, + }, + }); +} +``` + +--- + +For more information about Turborepo, visit [turbo.build/repo](https://turbo.build/repo) and follow us on Twitter ([@turborepo](https://twitter.com/turborepo))! diff --git a/packages/turbo-workspaces/__fixtures__/invalid/index.js b/packages/turbo-workspaces/__fixtures__/invalid/index.js new file mode 100644 index 0000000000000..cd0183132b864 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/invalid/index.js @@ -0,0 +1 @@ +// nothing here diff --git a/packages/turbo-workspaces/__fixtures__/npm/basic/apps/docs/package.json b/packages/turbo-workspaces/__fixtures__/npm/basic/apps/docs/package.json new file mode 100644 index 0000000000000..e488bc3f07164 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/npm/basic/apps/docs/package.json @@ -0,0 +1,11 @@ +{ + "name": "docs", + "version": "1.0.0", + "private": true, + "dependencies": { + "ui": "*" + }, + "devDependencies": { + "tsconfig": "1.0.0" + } +} diff --git a/packages/turbo-workspaces/__fixtures__/npm/basic/apps/web/package.json b/packages/turbo-workspaces/__fixtures__/npm/basic/apps/web/package.json new file mode 100644 index 0000000000000..163cee3e51e6c --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/npm/basic/apps/web/package.json @@ -0,0 +1,11 @@ +{ + "name": "web", + "version": "0.0.0", + "private": true, + "dependencies": { + "ui": "*" + }, + "devDependencies": { + "tsconfig": "*" + } +} diff --git a/packages/turbo-workspaces/__fixtures__/npm/basic/package-lock.json b/packages/turbo-workspaces/__fixtures__/npm/basic/package-lock.json new file mode 100644 index 0000000000000..a96cc7b78e6a2 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/npm/basic/package-lock.json @@ -0,0 +1,385 @@ +{ + "name": "npm-workspaces", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "npm-workspaces", + "version": "0.0.0", + "workspaces": [ + "apps/*", + "packages/*" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "apps/docs": { + "version": "1.0.0", + "dependencies": { + "ui": "*" + }, + "devDependencies": { + "tsconfig": "1.0.0" + } + }, + "apps/docs/node_modules/tsconfig": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-1.0.0.tgz", + "integrity": "sha512-26lVKF/0MdkCnaU9t45wH8bsVH8nRKRt0zrvku/j/dD5uE+8v9vDfBS8/sVRs6ZjADXbcFvirN93kOpxdIszqQ==", + "dev": true, + "dependencies": { + "globby": "^2.1.0", + "xtend": "^4.0.0" + } + }, + "apps/web": { + "version": "0.0.0", + "dependencies": { + "ui": "*" + }, + "devDependencies": { + "tsconfig": "*" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/docs": { + "resolved": "apps/docs", + "link": true + }, + "node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globby": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-2.1.0.tgz", + "integrity": "sha512-CqRID2dMaN4Zi9PANiQHhmKaGu7ZASehBLnaDogjR9L3L1EqAGFhflafT0IrSN/zm9xFk+KMTXZCN8pUYOiO/Q==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "async": "^1.2.1", + "glob": "^5.0.3", + "object-assign": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tsconfig": { + "resolved": "packages/tsconfig", + "link": true + }, + "node_modules/ui": { + "resolved": "packages/ui", + "link": true + }, + "node_modules/web": { + "resolved": "apps/web", + "link": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "packages/tsconfig": { + "version": "0.0.0" + }, + "packages/ui": { + "version": "0.0.0", + "devDependencies": { + "tsconfig": "*" + } + } + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "docs": { + "version": "file:apps/docs", + "requires": { + "tsconfig": "1.0.0", + "ui": "*" + }, + "dependencies": { + "tsconfig": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-1.0.0.tgz", + "integrity": "sha512-26lVKF/0MdkCnaU9t45wH8bsVH8nRKRt0zrvku/j/dD5uE+8v9vDfBS8/sVRs6ZjADXbcFvirN93kOpxdIszqQ==", + "dev": true, + "requires": { + "globby": "^2.1.0", + "xtend": "^4.0.0" + } + } + } + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globby": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-2.1.0.tgz", + "integrity": "sha512-CqRID2dMaN4Zi9PANiQHhmKaGu7ZASehBLnaDogjR9L3L1EqAGFhflafT0IrSN/zm9xFk+KMTXZCN8pUYOiO/Q==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "async": "^1.2.1", + "glob": "^5.0.3", + "object-assign": "^3.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "tsconfig": { + "version": "file:packages/tsconfig" + }, + "ui": { + "version": "file:packages/ui", + "requires": { + "tsconfig": "*" + } + }, + "web": { + "version": "file:apps/web", + "requires": { + "tsconfig": "*", + "ui": "*" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } +} diff --git a/packages/turbo-workspaces/__fixtures__/npm/basic/package.json b/packages/turbo-workspaces/__fixtures__/npm/basic/package.json new file mode 100644 index 0000000000000..785189c2433e8 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/npm/basic/package.json @@ -0,0 +1,14 @@ +{ + "name": "npm-workspaces", + "version": "0.0.0", + "private": true, + "workspaces": [ + "apps/*", + "packages/*" + ], + "engines": { + "node": ">=14.0.0" + }, + "dependencies": {}, + "packageManager": "npm@8.19.2" +} diff --git a/packages/turbo-workspaces/__fixtures__/npm/basic/packages/tsconfig/package.json b/packages/turbo-workspaces/__fixtures__/npm/basic/packages/tsconfig/package.json new file mode 100644 index 0000000000000..0d32af30031af --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/npm/basic/packages/tsconfig/package.json @@ -0,0 +1,5 @@ +{ + "name": "tsconfig", + "version": "1.0.0", + "private": true +} diff --git a/packages/turbo-workspaces/__fixtures__/npm/basic/packages/ui/package.json b/packages/turbo-workspaces/__fixtures__/npm/basic/packages/ui/package.json new file mode 100644 index 0000000000000..1e05d1a8ecc65 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/npm/basic/packages/ui/package.json @@ -0,0 +1,7 @@ +{ + "name": "ui", + "version": "0.0.0", + "devDependencies": { + "tsconfig": "*" + } +} diff --git a/packages/turbo-workspaces/__fixtures__/npm/non-monorepo/package-lock.json b/packages/turbo-workspaces/__fixtures__/npm/non-monorepo/package-lock.json new file mode 100644 index 0000000000000..df25876b3ae60 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/npm/non-monorepo/package-lock.json @@ -0,0 +1,12 @@ +{ + "name": "web", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "web", + "version": "0.0.0" + } + } +} diff --git a/packages/turbo-workspaces/__fixtures__/npm/non-monorepo/package.json b/packages/turbo-workspaces/__fixtures__/npm/non-monorepo/package.json new file mode 100644 index 0000000000000..08b0ccfe7eb86 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/npm/non-monorepo/package.json @@ -0,0 +1,6 @@ +{ + "name": "web", + "version": "0.0.0", + "private": true, + "packageManager": "npm@8.19.2" +} diff --git a/packages/turbo-workspaces/__fixtures__/pnpm/basic/apps/docs/package.json b/packages/turbo-workspaces/__fixtures__/pnpm/basic/apps/docs/package.json new file mode 100644 index 0000000000000..835a58fb23458 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/pnpm/basic/apps/docs/package.json @@ -0,0 +1,11 @@ +{ + "name": "docs", + "version": "0.0.0", + "private": true, + "dependencies": { + "ui": "workspace:*" + }, + "devDependencies": { + "tsconfig": "workspace:*" + } +} diff --git a/packages/turbo-workspaces/__fixtures__/pnpm/basic/apps/web/package.json b/packages/turbo-workspaces/__fixtures__/pnpm/basic/apps/web/package.json new file mode 100644 index 0000000000000..77c2e0f4bff49 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/pnpm/basic/apps/web/package.json @@ -0,0 +1,11 @@ +{ + "name": "web", + "version": "0.0.0", + "private": true, + "dependencies": { + "ui": "workspace:*" + }, + "devDependencies": { + "tsconfig": "workspace:*" + } +} diff --git a/packages/turbo-workspaces/__fixtures__/pnpm/basic/package.json b/packages/turbo-workspaces/__fixtures__/pnpm/basic/package.json new file mode 100644 index 0000000000000..e3627d8ac2738 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/pnpm/basic/package.json @@ -0,0 +1,10 @@ +{ + "name": "pnpm-workspaces", + "version": "0.0.0", + "private": true, + "engines": { + "node": ">=14.0.0" + }, + "dependencies": {}, + "packageManager": "pnpm@7.12.1" +} diff --git a/packages/turbo-workspaces/__fixtures__/pnpm/basic/packages/tsconfig/package.json b/packages/turbo-workspaces/__fixtures__/pnpm/basic/packages/tsconfig/package.json new file mode 100644 index 0000000000000..3f406290b4667 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/pnpm/basic/packages/tsconfig/package.json @@ -0,0 +1,5 @@ +{ + "name": "tsconfig", + "version": "0.0.0", + "private": true +} diff --git a/packages/turbo-workspaces/__fixtures__/pnpm/basic/packages/ui/package.json b/packages/turbo-workspaces/__fixtures__/pnpm/basic/packages/ui/package.json new file mode 100644 index 0000000000000..601ca4a8381ee --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/pnpm/basic/packages/ui/package.json @@ -0,0 +1,7 @@ +{ + "name": "ui", + "version": "0.0.0", + "devDependencies": { + "tsconfig": "workspace:*" + } +} diff --git a/packages/turbo-workspaces/__fixtures__/pnpm/basic/pnpm-lock.yaml b/packages/turbo-workspaces/__fixtures__/pnpm/basic/pnpm-lock.yaml new file mode 100644 index 0000000000000..84c04af90e76b --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/pnpm/basic/pnpm-lock.yaml @@ -0,0 +1,33 @@ +lockfileVersion: 5.4 + +importers: + + .: + specifiers: {} + + apps/docs: + specifiers: + tsconfig: workspace:* + ui: workspace:* + dependencies: + ui: link:../../packages/ui + devDependencies: + tsconfig: link:../../packages/tsconfig + + apps/web: + specifiers: + tsconfig: workspace:* + ui: workspace:* + dependencies: + ui: link:../../packages/ui + devDependencies: + tsconfig: link:../../packages/tsconfig + + packages/tsconfig: + specifiers: {} + + packages/ui: + specifiers: + tsconfig: workspace:* + devDependencies: + tsconfig: link:../tsconfig diff --git a/packages/turbo-workspaces/__fixtures__/pnpm/basic/pnpm-workspace.yaml b/packages/turbo-workspaces/__fixtures__/pnpm/basic/pnpm-workspace.yaml new file mode 100644 index 0000000000000..3ff5faaaf5f13 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/pnpm/basic/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - "apps/*" + - "packages/*" diff --git a/packages/turbo-workspaces/__fixtures__/pnpm/non-monorepo/package.json b/packages/turbo-workspaces/__fixtures__/pnpm/non-monorepo/package.json new file mode 100644 index 0000000000000..491adc448edef --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/pnpm/non-monorepo/package.json @@ -0,0 +1,8 @@ +{ + "name": "web", + "version": "0.0.0", + "private": true, + "dependencies": {}, + "devDependencies": {}, + "packageManager": "pnpm@7.12.1" +} diff --git a/packages/turbo-workspaces/__fixtures__/yarn/basic/apps/docs/package.json b/packages/turbo-workspaces/__fixtures__/yarn/basic/apps/docs/package.json new file mode 100644 index 0000000000000..d3a490ca892f8 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/yarn/basic/apps/docs/package.json @@ -0,0 +1,11 @@ +{ + "name": "docs", + "version": "0.0.0", + "private": true, + "dependencies": { + "ui": "*" + }, + "devDependencies": { + "tsconfig": "*" + } +} diff --git a/packages/turbo-workspaces/__fixtures__/yarn/basic/apps/web/package.json b/packages/turbo-workspaces/__fixtures__/yarn/basic/apps/web/package.json new file mode 100644 index 0000000000000..163cee3e51e6c --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/yarn/basic/apps/web/package.json @@ -0,0 +1,11 @@ +{ + "name": "web", + "version": "0.0.0", + "private": true, + "dependencies": { + "ui": "*" + }, + "devDependencies": { + "tsconfig": "*" + } +} diff --git a/packages/turbo-workspaces/__fixtures__/yarn/basic/package.json b/packages/turbo-workspaces/__fixtures__/yarn/basic/package.json new file mode 100644 index 0000000000000..002944bd73343 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/yarn/basic/package.json @@ -0,0 +1,14 @@ +{ + "name": "yarn-workspaces", + "version": "0.0.0", + "private": true, + "workspaces": [ + "apps/*", + "packages/*" + ], + "engines": { + "node": ">=14.0.0" + }, + "dependencies": {}, + "packageManager": "yarn@1.22.19" +} diff --git a/packages/turbo-workspaces/__fixtures__/yarn/basic/packages/tsconfig/package.json b/packages/turbo-workspaces/__fixtures__/yarn/basic/packages/tsconfig/package.json new file mode 100644 index 0000000000000..3f406290b4667 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/yarn/basic/packages/tsconfig/package.json @@ -0,0 +1,5 @@ +{ + "name": "tsconfig", + "version": "0.0.0", + "private": true +} diff --git a/packages/turbo-workspaces/__fixtures__/yarn/basic/packages/ui/package.json b/packages/turbo-workspaces/__fixtures__/yarn/basic/packages/ui/package.json new file mode 100644 index 0000000000000..1e05d1a8ecc65 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/yarn/basic/packages/ui/package.json @@ -0,0 +1,7 @@ +{ + "name": "ui", + "version": "0.0.0", + "devDependencies": { + "tsconfig": "*" + } +} diff --git a/packages/turbo-workspaces/__fixtures__/yarn/basic/yarn.lock b/packages/turbo-workspaces/__fixtures__/yarn/basic/yarn.lock new file mode 100644 index 0000000000000..fb57ccd13afbd --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/yarn/basic/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + diff --git a/packages/turbo-workspaces/__fixtures__/yarn/non-monorepo/package.json b/packages/turbo-workspaces/__fixtures__/yarn/non-monorepo/package.json new file mode 100644 index 0000000000000..c1035e5df9706 --- /dev/null +++ b/packages/turbo-workspaces/__fixtures__/yarn/non-monorepo/package.json @@ -0,0 +1,8 @@ +{ + "name": "web", + "version": "0.0.0", + "private": true, + "dependencies": {}, + "devDependencies": {}, + "packageManager": "yarn@1.22.19" +} diff --git a/packages/turbo-workspaces/__tests__/index.test.ts b/packages/turbo-workspaces/__tests__/index.test.ts new file mode 100644 index 0000000000000..53e526bd5d138 --- /dev/null +++ b/packages/turbo-workspaces/__tests__/index.test.ts @@ -0,0 +1,52 @@ +import path from "path"; +import { setupTestFixtures } from "turbo-test-utils"; +import { getWorkspaceDetails, convertMonorepo } from "../src"; +import { generateConvertMatrix } from "./test-utils"; +import execa from "execa"; + +jest.mock("execa", () => jest.fn()); + +describe("Node entrypoint", () => { + const { useFixture } = setupTestFixtures({ + directory: path.join(__dirname, "../"), + test: "npm", + }); + + test.each(generateConvertMatrix())( + "detects project using %s workspaces and converts to %s workspaces | interactive=%s dry=%s skipInstall=%s", + async (from, to, interactive, dry, skipInstall) => { + const { root } = useFixture({ fixture: `../${from}/basic` }); + // read + const details = await getWorkspaceDetails({ root }); + expect(details.packageManager).toBe(from); + + // convert + const convert = () => + convertMonorepo({ + root, + to, + options: { interactive, dry, skipInstall }, + }); + + if (from === to) { + await expect(convert()).rejects.toThrowError( + "You are already using this package manager" + ); + } else { + await expect(convert()).resolves.toBeUndefined(); + // read again + const convertedDetails = await getWorkspaceDetails({ + root, + }); + if (dry) { + expect(convertedDetails.packageManager).toBe(from); + } else { + if (!skipInstall) { + expect(execa).toHaveBeenCalled(); + } + expect(convertedDetails.packageManager).toBe(to); + } + } + } + ); +}); diff --git a/packages/turbo-workspaces/__tests__/managers/npm.test.ts b/packages/turbo-workspaces/__tests__/managers/npm.test.ts new file mode 100644 index 0000000000000..ab76985c1872d --- /dev/null +++ b/packages/turbo-workspaces/__tests__/managers/npm.test.ts @@ -0,0 +1,198 @@ +import path from "path"; +import { setupTestFixtures } from "turbo-test-utils"; +import { Logger } from "../../src/logger"; +import MANAGERS from "../../src/managers"; +import { PackageManager, PackageJson } from "../../src/types"; +import fs from "fs-extra"; +import { + extendMatrix, + generateArgMatrix, + generateTestMatrix, + validateWorkspace, +} from "../test-utils"; + +const npm = MANAGERS.npm; + +describe("npm", () => { + const { useFixture } = setupTestFixtures({ + directory: path.join(__dirname, "../../"), + test: "npm", + }); + + describe("detect", () => { + test.each([ + ["npm", true], + ["yarn", false], + ["pnpm", false], + ])("detects npm workspaces from %s workspaces", async (from, result) => { + const { root } = useFixture({ fixture: `../${from}/basic` }); + + expect( + await npm.detect({ + workspaceRoot: root, + }) + ).toEqual(result); + }); + }); + + describe("create", () => { + test.each(generateTestMatrix())( + "creates yarn workspaces from %s workspaces with interactive=%s and dry=%s", + async (from, interactive, dry) => { + const { root } = useFixture({ fixture: `../${from}/basic` }); + const project = await MANAGERS[from].read({ + workspaceRoot: root, + }); + + // convert to npm + await npm.create({ + project, + to: { name: "npm", version: "8.19.2" }, + logger: new Logger({ interactive, dry }), + options: { + interactive, + dry, + }, + }); + + if (dry) { + expect(await MANAGERS[from].detect({ workspaceRoot: root })).toEqual( + true + ); + } else { + expect(await npm.detect({ workspaceRoot: root })).toEqual(true); + } + } + ); + }); + + describe("remove", () => { + test.each( + extendMatrix([ + ["npm", "8.19.2", undefined], + ["yarn", "1.22.19", ["apps/*", "packages/*"]], + ["pnpm", "7.12.1", undefined], + ]) + )( + "removes npm workspaces when moving to %s@%s | workspaces=%s withNodeModules=%s interactive=%s and dry=%s", + async (to, version, workspaces, withNodeModules, interactive, dry) => { + const { root, readJson } = useFixture({ fixture: "basic" }); + if (withNodeModules) { + fs.ensureDirSync(path.join(root, "node_modules")); + } + + const project = await npm.read({ + workspaceRoot: root, + }); + + await npm.remove({ + project, + to: { name: to, version }, + logger: new Logger({ interactive, dry }), + options: { + interactive, + dry, + }, + }); + + if (dry) { + expect( + readJson(project.paths.packageJson)?.workspaces + ).toEqual(project.workspaceData.globs); + } else { + expect( + readJson(project.paths.packageJson)?.workspaces + ).toEqual(workspaces); + } + } + ); + }); + + describe("read", () => { + test.each<[PackageManager, boolean]>([ + ["yarn", true], + ["npm", false], + ["pnpm", true], + ])( + "reads npm workspaces from %s workspaces (should throw=%s)", + async (from, shouldThrow) => { + const { root, directoryName } = useFixture({ + fixture: `../${from}/basic`, + }); + + const read = async () => npm.read({ workspaceRoot: path.join(root) }); + if (shouldThrow) { + expect(read).rejects.toThrow("Not an npm project"); + return; + } + const project = await npm.read({ + workspaceRoot: path.join(root), + }); + expect(project.name).toEqual("npm-workspaces"); + expect(project.packageManager).toEqual("npm"); + // paths + expect(project.paths.root).toMatch( + new RegExp(`^.*npm\/${directoryName}$`) + ); + expect(project.paths.lockfile).toMatch( + new RegExp(`^.*npm\/${directoryName}\/package-lock.json$`) + ); + expect(project.paths.packageJson).toMatch( + new RegExp(`^.*npm\/${directoryName}\/package.json$`) + ); + // workspaceData + expect(project.workspaceData.globs).toEqual(["apps/*", "packages/*"]); + expect(project.workspaceData.workspaces).toHaveLength(4); + project.workspaceData.workspaces.forEach((workspace) => + validateWorkspace(directoryName, workspace) + ); + } + ); + }); + + describe("convertLock", () => { + test.each<[PackageManager]>([["npm"], ["yarn"], ["pnpm"]])( + "converts %s workspaces lockfile to npm lockfile", + async (from) => { + const { root } = useFixture({ fixture: `../${from}/basic` }); + const project = await MANAGERS[from].read({ + workspaceRoot: root, + }); + + expect( + await npm.convertLock({ + project, + logger: new Logger(), + options: { + interactive: false, + dry: false, + }, + }) + ).toBeUndefined(); + } + ); + }); + + describe("clean", () => { + test.each(generateArgMatrix())( + "cleans %s npm workspaces", + async (interactive, dry) => { + const { root } = useFixture({ fixture: "basic" }); + const project = await npm.read({ + workspaceRoot: root, + }); + + await npm.clean({ + project, + logger: new Logger({ interactive, dry }), + options: { + interactive, + dry, + }, + }); + + expect(fs.existsSync(project.paths.lockfile)).toEqual(dry); + } + ); + }); +}); diff --git a/packages/turbo-workspaces/__tests__/managers/pnpm.test.ts b/packages/turbo-workspaces/__tests__/managers/pnpm.test.ts new file mode 100644 index 0000000000000..ade97d284e554 --- /dev/null +++ b/packages/turbo-workspaces/__tests__/managers/pnpm.test.ts @@ -0,0 +1,249 @@ +import path from "path"; +import { setupTestFixtures } from "turbo-test-utils"; +import { Logger } from "../../src/logger"; +import MANAGERS from "../../src/managers"; +import { PackageManager, Workspace } from "../../src/types"; +import { + extendMatrix, + generateArgMatrix, + generateTestMatrix, + validateWorkspace, +} from "../test-utils"; +import fs from "fs-extra"; +import { existsSync } from "fs-extra"; + +const pnpm = MANAGERS.pnpm; + +describe("pnpm", () => { + const { useFixture } = setupTestFixtures({ + directory: path.join(__dirname, "../../"), + test: "pnpm", + }); + + describe("detect", () => { + test.each([ + ["npm", false], + ["yarn", false], + ["pnpm", true], + ])("detects pnpm workspaces from %s workspaces", async (from, result) => { + const { root } = useFixture({ fixture: `../${from}/basic` }); + + expect( + await pnpm.detect({ + workspaceRoot: root, + }) + ).toEqual(result); + }); + }); + + describe("remove", () => { + test.each( + extendMatrix([ + ["npm", "8.19.2", undefined], + ["yarn", "1.22.19", undefined], + ["pnpm", "7.12.1", undefined], + ]) + )( + "removes pnpm workspaces when moving to %s@%s | workspaces=%s withNodeModules=%s interactive=%s and dry=%s", + async (to, version, workspaces, withNodeModules, interactive, dry) => { + // start with pnpm + const { root, readYaml } = useFixture({ fixture: `basic` }); + if (withNodeModules) { + fs.ensureDirSync(path.join(root, "node_modules")); + } + const project = await pnpm.read({ + workspaceRoot: root, + }); + + // remove yarn + await pnpm.remove({ + project, + to: { name: to, version }, + logger: new Logger({ interactive, dry }), + options: { + interactive, + dry, + }, + }); + + if (dry) { + expect(project.paths.workspaceConfig).toBeDefined(); + if (project.paths.workspaceConfig) { + const workspaceConfig = readYaml<{ packages: Array }>( + project.paths.workspaceConfig + ); + expect(workspaceConfig?.packages).toEqual( + project.workspaceData.globs + ); + } + } else { + expect(project.paths.workspaceConfig).toBeDefined(); + if (project.paths.workspaceConfig) { + expect( + readYaml<{ packages: Array }>( + project.paths.workspaceConfig + ) + ).toEqual(workspaces); + } + } + } + ); + }); + + describe("create", () => { + test.each(generateTestMatrix())( + "creates yarn workspaces from %s workspaces with interactive=%s and dry=%s", + async (from, interactive, dry) => { + const { root } = useFixture({ fixture: `../${from}/basic` }); + const project = await MANAGERS[from].read({ + workspaceRoot: root, + }); + + // convert to pnpm + await pnpm.create({ + project, + to: { name: "pnpm", version: "7.27.0" }, + logger: new Logger({ interactive, dry }), + options: { + interactive, + dry, + }, + }); + + if (dry) { + expect(await MANAGERS[from].detect({ workspaceRoot: root })).toEqual( + true + ); + } else { + expect(await pnpm.detect({ workspaceRoot: root })).toEqual(true); + } + } + ); + }); + + describe("read", () => { + test.each<[PackageManager, boolean]>([ + ["yarn", true], + ["npm", true], + ["pnpm", false], + ])( + "reads pnpm workspaces from %s workspaces (should throw=%s)", + async (from, shouldThrow) => { + const { root, directoryName } = useFixture({ + fixture: `../${from}/basic`, + }); + + const read = async () => pnpm.read({ workspaceRoot: path.join(root) }); + if (shouldThrow) { + expect(read).rejects.toThrow("Not a pnpm project"); + return; + } + const project = await pnpm.read({ + workspaceRoot: path.join(root), + }); + expect(project.name).toEqual("pnpm-workspaces"); + expect(project.packageManager).toEqual("pnpm"); + // paths + expect(project.paths.root).toMatch( + new RegExp(`^.*pnpm\/${directoryName}$`) + ); + expect(project.paths.lockfile).toMatch( + new RegExp(`^.*pnpm\/${directoryName}\/pnpm-lock.yaml$`) + ); + expect(project.paths.packageJson).toMatch( + new RegExp(`^.*pnpm\/${directoryName}\/package.json$`) + ); + // workspaceData + expect(project.workspaceData.globs).toEqual(["apps/*", "packages/*"]); + expect(project.workspaceData.workspaces).toHaveLength(4); + project.workspaceData.workspaces.forEach((workspace) => + validateWorkspace(directoryName, workspace) + ); + } + ); + }); + + describe("convertLock", () => { + test.each<[PackageManager]>([["npm"], ["yarn"], ["pnpm"]])( + "converts %s workspaces lockfile to pnpm lockfile", + async (from) => { + const { root } = useFixture({ fixture: `../${from}/basic` }); + const project = await MANAGERS[from].read({ + workspaceRoot: root, + }); + const interactive = false; + const dry = false; + await pnpm.create({ + project, + to: { name: "pnpm", version: "7.27.0" }, + logger: new Logger({ interactive, dry }), + options: { + interactive, + dry, + }, + }); + + expect(existsSync(project.paths.lockfile)).toBe(true); + + await pnpm.convertLock({ + project, + logger: new Logger(), + options: { + interactive, + dry, + }, + }); + + expect( + existsSync(path.join(project.paths.root, "pnpm-lock.yaml")) + ).toBe(true); + } + ); + + test("fails gracefully when lockfile is missing", async () => { + const { root } = useFixture({ fixture: `../npm/basic` }); + const project = await MANAGERS.npm.read({ + workspaceRoot: root, + }); + fs.rmSync(project.paths.lockfile); + await pnpm.convertLock({ + project, + logger: new Logger(), + options: { + interactive: false, + dry: false, + }, + }); + expect(existsSync(path.join(project.paths.root, "pnpm-lock.yaml"))).toBe( + false + ); + }); + }); + + describe("clean", () => { + test.each(generateArgMatrix())( + "cleans %s pnpm workspaces", + async (interactive, dry) => { + const { root } = useFixture({ fixture: "basic" }); + const project = await pnpm.read({ + workspaceRoot: root, + }); + + await pnpm.clean({ + project, + logger: new Logger({ interactive, dry }), + options: { + interactive, + dry, + }, + }); + + if (dry) { + expect(fs.existsSync(project.paths.lockfile)).toEqual(true); + } else { + expect(fs.existsSync(project.paths.lockfile)).toEqual(false); + } + } + ); + }); +}); diff --git a/packages/turbo-workspaces/__tests__/managers/yarn.test.ts b/packages/turbo-workspaces/__tests__/managers/yarn.test.ts new file mode 100644 index 0000000000000..632671f583216 --- /dev/null +++ b/packages/turbo-workspaces/__tests__/managers/yarn.test.ts @@ -0,0 +1,200 @@ +import path from "path"; +import { setupTestFixtures } from "turbo-test-utils"; +import { Logger } from "../../src/logger"; +import MANAGERS from "../../src/managers"; +import { PackageJson, PackageManager } from "../../src/types"; +import fs from "fs-extra"; +import { + extendMatrix, + generateArgMatrix, + generateTestMatrix, + validateWorkspace, +} from "../test-utils"; + +const yarn = MANAGERS.yarn; + +describe("yarn", () => { + const { useFixture } = setupTestFixtures({ + directory: path.join(__dirname, "../../"), + test: "yarn", + }); + + describe("detect", () => { + test.each([ + ["npm", false], + ["yarn", true], + ["pnpm", false], + ])("detects yarn workspaces from %s workspaces", async (from, result) => { + const { root } = useFixture({ fixture: `../${from}/basic` }); + + expect( + await yarn.detect({ + workspaceRoot: root, + }) + ).toEqual(result); + }); + }); + + describe("remove", () => { + test.each( + extendMatrix([ + ["npm", "8.19.2", ["apps/*", "packages/*"]], + ["yarn", "1.22.19", undefined], + ["pnpm", "7.12.1", undefined], + ]) + )( + "removes yarn workspaces when moving to %s@%s | workspaces=%s withNodeModules=%s interactive=%s and dry=%s", + async (to, version, workspaces, withNodeModules, interactive, dry) => { + // start with yarn + const { root, readJson } = useFixture({ fixture: `basic` }); + if (withNodeModules) { + fs.ensureDirSync(path.join(root, "node_modules")); + } + const project = await yarn.read({ + workspaceRoot: root, + }); + + // remove yarn + await yarn.remove({ + project, + to: { name: to, version }, + logger: new Logger({ interactive, dry }), + options: { + interactive, + dry, + }, + }); + + if (dry) { + expect( + readJson(project.paths.packageJson)?.workspaces + ).toEqual(project.workspaceData.globs); + } else { + expect( + readJson(project.paths.packageJson)?.workspaces + ).toEqual(workspaces); + } + } + ); + }); + + describe("create", () => { + test.each(generateTestMatrix())( + "creates yarn workspaces from %s workspaces with interactive=%s and dry=%s", + async (from, interactive, dry) => { + const { root } = useFixture({ fixture: `../${from}/basic` }); + const project = await MANAGERS[from].read({ + workspaceRoot: root, + }); + + // convert to yarn + await yarn.create({ + project, + to: { name: "yarn", version: "1.22.19" }, + logger: new Logger({ interactive, dry }), + options: { + interactive, + dry, + }, + }); + + if (dry) { + expect(await MANAGERS[from].detect({ workspaceRoot: root })).toEqual( + true + ); + } else { + expect(await yarn.detect({ workspaceRoot: root })).toEqual(true); + } + } + ); + }); + + describe("read", () => { + test.each<[PackageManager, boolean]>([ + ["yarn", false], + ["npm", true], + ["pnpm", true], + ])( + "reads yarn workspaces from %s workspaces (should throw=%s)", + async (from, shouldThrow) => { + const { root, directoryName } = useFixture({ + fixture: `../${from}/basic`, + }); + + const read = async () => yarn.read({ workspaceRoot: path.join(root) }); + if (shouldThrow) { + expect(read).rejects.toThrow("Not a yarn project"); + return; + } + const project = await yarn.read({ + workspaceRoot: path.join(root), + }); + + expect(project.name).toEqual("yarn-workspaces"); + expect(project.packageManager).toEqual("yarn"); + // paths + expect(project.paths.root).toMatch( + new RegExp(`^.*yarn\/${directoryName}$`) + ); + expect(project.paths.lockfile).toMatch( + new RegExp(`^.*yarn\/${directoryName}\/yarn.lock$`) + ); + expect(project.paths.packageJson).toMatch( + new RegExp(`^.*yarn\/${directoryName}\/package.json$`) + ); + // workspaceData + expect(project.workspaceData.globs).toEqual(["apps/*", "packages/*"]); + expect(project.workspaceData.workspaces).toHaveLength(4); + project.workspaceData.workspaces.forEach((workspace) => + validateWorkspace(directoryName, workspace) + ); + } + ); + }); + + describe("convertLock", () => { + test.each<[PackageManager]>([["npm"], ["yarn"], ["pnpm"]])( + "converts %s workspaces lockfile to yarn lockfile", + async (from) => { + const { root } = useFixture({ fixture: `../${from}/basic` }); + const project = await MANAGERS[from].read({ + workspaceRoot: root, + }); + + expect( + await yarn.convertLock({ + project, + logger: new Logger(), + options: { + interactive: false, + dry: false, + }, + }) + ).toBeUndefined(); + } + ); + }); + + describe("clean", () => { + test.each(generateArgMatrix())( + "cleans %s yarn workspaces", + async (interactive, dry) => { + const { root } = useFixture({ fixture: "basic" }); + const project = await yarn.read({ + workspaceRoot: root, + }); + + await yarn.clean({ + project, + logger: new Logger({ interactive, dry }), + options: { + interactive, + dry, + }, + }); + + expect(fs.existsSync(project.paths.lockfile)).toEqual(dry); + } + ); + }); +}); diff --git a/packages/turbo-workspaces/__tests__/test-utils.ts b/packages/turbo-workspaces/__tests__/test-utils.ts new file mode 100644 index 0000000000000..7ad2bb9271956 --- /dev/null +++ b/packages/turbo-workspaces/__tests__/test-utils.ts @@ -0,0 +1,104 @@ +import { PackageManager, Workspace } from "../src/types"; + +export const validateWorkspace = ( + fixtureDirectory: string, + workspace: Workspace +) => { + const type = ["web", "docs"].includes(workspace.name) ? "apps" : "packages"; + expect(workspace.paths.packageJson).toMatch( + new RegExp( + `^.*${fixtureDirectory}\/${type}\/${workspace.name}\/package.json$` + ) + ); + expect(workspace.paths.root).toMatch( + new RegExp(`^.*${fixtureDirectory}\/${type}\/${workspace.name}$`) + ); +}; + +export function extendMatrix( + testCase: Array<[PackageManager, string, Array | undefined]> +): Array< + [PackageManager, string, Array | undefined, boolean, boolean, boolean] +> { + const interactive = [true, false]; + const dryRun = [true, false]; + const withNodeModules = [true, false]; + + const matrix: Array< + [ + PackageManager, + string, + Array | undefined, + boolean, + boolean, + boolean + ] + > = []; + for (const t of testCase) { + for (const i of interactive) { + for (const d of dryRun) { + for (const n of withNodeModules) { + matrix.push([...t, n, i, d]); + } + } + } + } + return matrix; +} + +export function generateTestMatrix(): Array< + [PackageManager, boolean, boolean] +> { + const packageManagers: Array = ["pnpm", "npm", "yarn"]; + const interactive = [true, false]; + const dryRun = [true, false]; + + const matrix: Array<[PackageManager, boolean, boolean]> = []; + for (const p of packageManagers) { + for (const i of interactive) { + for (const d of dryRun) { + matrix.push([p, i, d]); + } + } + } + + return matrix; +} + +export function generateArgMatrix() { + const interactive = [true, false]; + const dryRun = [true, false]; + + const matrix: Array<[boolean, boolean]> = []; + for (const i of interactive) { + for (const d of dryRun) { + matrix.push([i, d]); + } + } + + return matrix; +} + +export function generateConvertMatrix() { + const packageManagers: Array = ["pnpm", "npm", "yarn"]; + const interactive = [true, false]; + const dryRun = [true, false]; + const install = [true, false]; + + const matrix: Array< + [PackageManager, PackageManager, boolean, boolean, boolean] + > = []; + for (const p1 of packageManagers) { + for (const p2 of packageManagers) { + for (const i of interactive) { + for (const d of dryRun) { + for (const inst of install) { + matrix.push([p1, p2, i, d, inst]); + } + } + } + } + } + + return matrix; +} diff --git a/packages/turbo-workspaces/jest.config.js b/packages/turbo-workspaces/jest.config.js new file mode 100644 index 0000000000000..42c0047fb1c11 --- /dev/null +++ b/packages/turbo-workspaces/jest.config.js @@ -0,0 +1,18 @@ +/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ +module.exports = { + preset: "ts-jest/presets/js-with-ts", + testEnvironment: "node", + testPathIgnorePatterns: ["/__fixtures__/", "/__tests__/test-utils.ts"], + coveragePathIgnorePatterns: ["/__fixtures__/", "/__tests__/test-utils.ts"], + transformIgnorePatterns: ["/node_modules/(?!(ansi-regex)/)"], + modulePathIgnorePatterns: ["/node_modules", "/dist"], + collectCoverage: true, + coverageThreshold: { + global: { + branches: 83, + functions: 80, + lines: 86, + statements: 86, + }, + }, +}; diff --git a/packages/turbo-workspaces/package.json b/packages/turbo-workspaces/package.json new file mode 100644 index 0000000000000..cbb6af618a586 --- /dev/null +++ b/packages/turbo-workspaces/package.json @@ -0,0 +1,62 @@ +{ + "name": "@turbo/workspaces", + "version": "0.0.0", + "description": "Tools for working with package manager workspaces", + "homepage": "https://turbo.build/repo", + "license": "MPL-2.0", + "repository": { + "type": "git", + "url": "https://github.com/vercel/turbo", + "directory": "packages/turbo-workspaces" + }, + "bugs": { + "url": "https://github.com/vercel/turbo/issues" + }, + "bin": "dist/cli.js", + "main": "dist/index.js", + "scripts": { + "build": "tsup", + "dev": "tsup --watch", + "test": "jest", + "lint": "eslint src/**/*.ts", + "check-types": "tsc --noEmit" + }, + "dependencies": { + "chalk": "2.4.2", + "commander": "^10.0.0", + "execa": "5.1.1", + "fast-glob": "^3.2.12", + "fs-extra": "^10.1.0", + "gradient-string": "^2.0.0", + "inquirer": "^8.0.0", + "js-yaml": "^4.1.0", + "ora": "4.1.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "turbo-utils": "workspace:*", + "update-check": "^1.5.4" + }, + "devDependencies": { + "@types/chalk-animation": "^1.6.0", + "@types/fs-extra": "^9.0.13", + "@types/gradient-string": "^1.1.2", + "@types/inquirer": "^7.3.1", + "@types/jest": "^27.4.0", + "@types/js-yaml": "^4.0.5", + "@types/node": "^16.11.12", + "@types/rimraf": "^3.0.2", + "@types/semver": "^7.3.9", + "eslint": "^7.23.0", + "jest": "^27.4.3", + "semver": "^7.3.5", + "strip-ansi": "^6.0.1", + "ts-jest": "^27.1.1", + "tsconfig": "workspace:*", + "tsup": "^5.10.3", + "turbo-test-utils": "workspace:*", + "typescript": "^4.5.5" + }, + "files": [ + "dist" + ] +} diff --git a/packages/turbo-workspaces/src/cli.ts b/packages/turbo-workspaces/src/cli.ts new file mode 100644 index 0000000000000..3ae7a4513776f --- /dev/null +++ b/packages/turbo-workspaces/src/cli.ts @@ -0,0 +1,53 @@ +#!/usr/bin/env node + +import chalk from "chalk"; +import { Command } from "commander"; + +import { summary, convert } from "./commands"; +import cliPkg from "../package.json"; +import { ConvertError } from "./errors"; + +const workspacesCli = new Command(); + +workspacesCli + .name("@turbo/workspaces") + .description("Tools for working with package manager workspaces") + .version(cliPkg.version, "-v, --version", "output the current version"); + +// convert +workspacesCli + .command("convert") + .description("Convert project between workspace managers") + .argument("[path]", "Project root") + .argument("[package-manager]", "Package manager to convert to") + .option( + "--skip-install", + "Do not run a package manager install after conversion", + false + ) + .option("--dry", "Dry run (no changes are made to files)", false) + .option( + "--force", + "Bypass Git safety checks and forcibly run conversion", + false + ) + .action(convert); + +// summary +workspacesCli + .command("summary") + .description("Display a summary of the specified project") + .argument("[path]", "Project root") + .action(summary); + +workspacesCli.parseAsync().catch((error) => { + console.log(); + if (error instanceof ConvertError) { + console.log(chalk.red(error.message)); + } else { + console.log(chalk.red("Unexpected error. Please report it as a bug:")); + console.log(error.message); + } + console.log(); + process.exit(1); +}); diff --git a/packages/turbo-workspaces/src/commands/convert/index.ts b/packages/turbo-workspaces/src/commands/convert/index.ts new file mode 100644 index 0000000000000..bcdf5ad3e7f6f --- /dev/null +++ b/packages/turbo-workspaces/src/commands/convert/index.ts @@ -0,0 +1,109 @@ +import { ConvertCommandArgument, ConvertCommandOptions } from "./types"; +import inquirer from "inquirer"; +import { Logger } from "../../logger"; +import chalk from "chalk"; +import { getAvailablePackageManagers } from "turbo-utils"; +import { directoryInfo } from "../../utils"; +import getWorkspaceDetails from "../../getWorkspaceDetails"; +import { PackageManager } from "../../types"; +import convert from "../../convert"; + +function isPackageManagerDisabled({ + packageManager, + currentWorkspaceManger, + availablePackageManagers, +}: { + packageManager: PackageManager; + currentWorkspaceManger: PackageManager; + availablePackageManagers: Record; +}) { + if (currentWorkspaceManger === packageManager) { + return "already in use"; + } + + if (!availablePackageManagers[packageManager].available) { + return "not installed"; + } + + return false; +} + +export default async function convertCommand( + directory: ConvertCommandArgument, + packageManager: ConvertCommandArgument, + options: ConvertCommandOptions +) { + const logger = new Logger(options); + + logger.hero(); + logger.header("Welcome, let's convert your project."); + logger.blankLine(); + + const directoryAnswer = await inquirer.prompt<{ + directoryInput: string; + }>({ + type: "input", + name: "directoryInput", + message: "Where is the root of your repo?", + when: !directory, + default: ".", + validate: (directory: string) => { + const { exists, absolute } = directoryInfo({ directory }); + if (exists) { + return true; + } else { + return `Directory ${chalk.dim(`(${absolute})`)} does not exist`; + } + }, + filter: (directory: string) => directory.trim(), + }); + + const { directoryInput: selectedDirectory = directory } = directoryAnswer; + const { exists, absolute: root } = directoryInfo({ + directory: selectedDirectory, + }); + if (!exists) { + console.error(`Directory ${chalk.dim(`(${root})`)} does not exist`); + return process.exit(1); + } + + const [project, availablePackageManagers] = await Promise.all([ + getWorkspaceDetails({ root }), + getAvailablePackageManagers(), + ]); + + const packageManagerAnswer = await inquirer.prompt<{ + packageManagerInput?: PackageManager; + }>({ + name: "packageManager", + type: "list", + message: `Convert from ${project.packageManager} workspaces to:`, + when: + !packageManager || + !Object.keys(availablePackageManagers).includes(packageManager), + choices: ["npm", "pnpm", "yarn"].map((p) => ({ + name: `${p} workspaces`, + value: p, + disabled: isPackageManagerDisabled({ + packageManager: p as PackageManager, + currentWorkspaceManger: project.packageManager, + availablePackageManagers, + }), + })), + }); + const { + packageManagerInput: + selectedPackageManager = packageManager as PackageManager, + } = packageManagerAnswer; + + await convert({ + project, + to: { + name: selectedPackageManager, + version: availablePackageManagers[selectedPackageManager] + .version as string, + }, + logger, + options, + }); +} diff --git a/packages/turbo-workspaces/src/commands/convert/types.ts b/packages/turbo-workspaces/src/commands/convert/types.ts new file mode 100644 index 0000000000000..a7b9debb0e189 --- /dev/null +++ b/packages/turbo-workspaces/src/commands/convert/types.ts @@ -0,0 +1,6 @@ +export type ConvertCommandArgument = string; +export type ConvertCommandOptions = { + dry: boolean; + force: boolean; + skipInstall: boolean; +}; diff --git a/packages/turbo-workspaces/src/commands/index.ts b/packages/turbo-workspaces/src/commands/index.ts new file mode 100644 index 0000000000000..61b953b7ebdab --- /dev/null +++ b/packages/turbo-workspaces/src/commands/index.ts @@ -0,0 +1,11 @@ +export { default as summary } from "./summary"; +export { default as convert } from "./convert"; + +export type { + SummaryCommandArgument, + SummaryCommandOptions, +} from "./summary/types"; +export type { + ConvertCommandArgument, + ConvertCommandOptions, +} from "./convert/types"; diff --git a/packages/turbo-workspaces/src/commands/summary/index.ts b/packages/turbo-workspaces/src/commands/summary/index.ts new file mode 100644 index 0000000000000..98bbfdc5fa71f --- /dev/null +++ b/packages/turbo-workspaces/src/commands/summary/index.ts @@ -0,0 +1,95 @@ +import inquirer from "inquirer"; +import path from "path"; +import { Logger } from "../../logger"; +import chalk from "chalk"; +import { SummaryCommandArgument } from "./types"; +import { directoryInfo } from "../../utils"; +import getWorkspaceDetails from "../../getWorkspaceDetails"; +import { Workspace } from "../../types"; + +export default async function summary(directory: SummaryCommandArgument) { + const logger = new Logger(); + logger.hero(); + + const answer = await inquirer.prompt<{ + directoryInput?: string; + }>({ + type: "input", + name: "directoryInput", + message: "Where is the root of the repo?", + when: !directory, + default: ".", + validate: (directory: string) => { + const { exists, absolute } = directoryInfo({ directory }); + if (exists) { + return true; + } else { + return `Directory ${chalk.dim(`(${absolute})`)} does not exist`; + } + }, + filter: (directory: string) => directory.trim(), + }); + + const { directoryInput: selectedDirectory = directory as string } = answer; + const { exists, absolute: root } = directoryInfo({ + directory: selectedDirectory, + }); + if (!exists) { + console.error(`Directory ${chalk.dim(`(${root})`)} does not exist`); + return process.exit(1); + } + + const project = await getWorkspaceDetails({ root }); + + const numWorkspaces = project.workspaceData.workspaces.length.toString(); + // group workspaces + const workspacesByDirectory: Record> = {}; + project.workspaceData.workspaces.forEach((workspace) => { + const workspacePath = path.relative(root, workspace.paths.root); + const rootDirectory = workspacePath.split(path.sep)[0]; + if (!workspacesByDirectory[rootDirectory]) { + workspacesByDirectory[rootDirectory] = []; + } + workspacesByDirectory[rootDirectory].push(workspace); + }); + + const renderWorkspace = (w: Workspace) => { + return `${w.name} (${chalk.italic( + `./${path.relative(root, w.paths.root)}` + )})`; + }; + + const renderDirectory = ({ + number, + directory, + workspaces, + }: { + number: number; + directory: string; + workspaces: Array; + }) => { + logger.indented(2, `${number}. ${chalk.bold(directory)}`); + workspaces.forEach((workspace, idx) => { + logger.indented(3, `${idx + 1}. ${renderWorkspace(workspace)}`); + }); + }; + + // repo header + logger.header(`Repository Summary`); + logger.indented(1, `${chalk.underline(project.name)}:`); + // workspace manager header + logger.indented( + 1, + `Workspace Manager: ${chalk.bold(chalk.italic(project.packageManager))}` + ); + // workspaces header + logger.indented(1, `Workspaces (${chalk.bold(numWorkspaces)}):`); + Object.keys(workspacesByDirectory).forEach((directory, idx) => { + renderDirectory({ + number: idx + 1, + directory, + workspaces: workspacesByDirectory[directory], + }); + }); + logger.blankLine(); +} diff --git a/packages/turbo-workspaces/src/commands/summary/types.ts b/packages/turbo-workspaces/src/commands/summary/types.ts new file mode 100644 index 0000000000000..0cc58302e6ecc --- /dev/null +++ b/packages/turbo-workspaces/src/commands/summary/types.ts @@ -0,0 +1 @@ +export type SummaryCommandArgument = string; diff --git a/packages/turbo-workspaces/src/convert.ts b/packages/turbo-workspaces/src/convert.ts new file mode 100644 index 0000000000000..df41620d40586 --- /dev/null +++ b/packages/turbo-workspaces/src/convert.ts @@ -0,0 +1,61 @@ +import chalk from "chalk"; +import managers from "./managers"; +import { Project, Options, PackageManagerDetails } from "./types"; +import install from "./install"; +import { Logger } from "./logger"; +import { ConvertError } from "./errors"; + +/* + * Convert a project using workspaces from one package manager to another. + + Steps are run in the following order: + 1. managerFrom.remove + 2. managerTo.create + 3. managerTo.convertLock + 3. install + 4. managerFrom.clean + +*/ +async function convert({ + project, + to, + logger, + options, +}: { + project: Project; + to: PackageManagerDetails; + logger: Logger; + options?: Options; +}) { + logger.header( + `Converting project from ${project.packageManager} to ${to.name}.` + ); + + if (project.packageManager == to.name) { + throw new ConvertError("You are already using this package manager"); + } + + // remove old workspace data + await managers[project.packageManager].remove({ + project, + to, + logger, + options, + }); + + // create new workspace data + await managers[to.name].create({ project, to, logger, options }); + + logger.mainStep("Installing dependencies"); + if (!options?.skipInstall) { + await managers[to.name].convertLock({ project, logger, options }); + await install({ project, to, logger, options }); + } else { + logger.subStep(chalk.yellow("Skipping install")); + } + + logger.mainStep(`Cleaning up ${project.packageManager} workspaces`); + await managers[project.packageManager].clean({ project, logger }); +} + +export default convert; diff --git a/packages/turbo-workspaces/src/errors.ts b/packages/turbo-workspaces/src/errors.ts new file mode 100644 index 0000000000000..32cbaf3b2d5bf --- /dev/null +++ b/packages/turbo-workspaces/src/errors.ts @@ -0,0 +1,7 @@ +export class ConvertError extends Error { + constructor(message: string) { + super(message); + this.name = "ConvertError"; + Error.captureStackTrace(this, ConvertError); + } +} diff --git a/packages/turbo-workspaces/src/getWorkspaceDetails.ts b/packages/turbo-workspaces/src/getWorkspaceDetails.ts new file mode 100644 index 0000000000000..295ab18c5b24a --- /dev/null +++ b/packages/turbo-workspaces/src/getWorkspaceDetails.ts @@ -0,0 +1,29 @@ +import { ConvertError } from "./errors"; +import managers from "./managers"; +import { Project } from "./types"; +import { directoryInfo } from "./utils"; + +export default async function getWorkspaceDetails({ + root, +}: { + root: string; +}): Promise { + const { exists, absolute: workspaceRoot } = directoryInfo({ + directory: root, + }); + if (!exists) { + throw new ConvertError( + `Could not find directory at ${workspaceRoot}. Ensure the directory exists.` + ); + } + + for (const { detect, read } of Object.values(managers)) { + if (await detect({ workspaceRoot })) { + return read({ workspaceRoot }); + } + } + + throw new ConvertError( + "Could not determine workspace manager. Add `packageManager` to `package.json` or ensure a lockfile is present." + ); +} diff --git a/packages/turbo-workspaces/src/index.ts b/packages/turbo-workspaces/src/index.ts new file mode 100644 index 0000000000000..6c16e7100e629 --- /dev/null +++ b/packages/turbo-workspaces/src/index.ts @@ -0,0 +1,33 @@ +import { getAvailablePackageManagers } from "turbo-utils"; +import getWorkspaceDetails from "./getWorkspaceDetails"; +import { PackageManager, Options } from "./types"; +import { default as convert } from "./convert"; +import { Logger } from "./logger"; + +async function convertMonorepo({ + root, + to, + options, +}: { + root: string; + to: PackageManager; + options?: Options; +}) { + const logger = new Logger({ ...options, interactive: false }); + const [project, availablePackageManagers] = await Promise.all([ + getWorkspaceDetails({ root }), + getAvailablePackageManagers(), + ]); + await convert({ + project, + to: { + name: to, + version: availablePackageManagers[to].version as PackageManager, + }, + logger, + options, + }); +} + +export { convertMonorepo, getWorkspaceDetails }; +export { default as MANAGERS } from "./managers"; diff --git a/packages/turbo-workspaces/src/install.ts b/packages/turbo-workspaces/src/install.ts new file mode 100644 index 0000000000000..313d948533c6b --- /dev/null +++ b/packages/turbo-workspaces/src/install.ts @@ -0,0 +1,103 @@ +import execa from "execa"; +import ora from "ora"; +import { satisfies } from "semver"; +import { ConvertError } from "./errors"; +import { + PackageManager, + PackageManagerInstallDetails, + InstallArgs, +} from "./types"; + +export const PACKAGE_MANAGERS: Record< + PackageManager, + Array +> = { + npm: [ + { + name: "npm", + template: "npm", + command: "npm", + installArgs: ["install"], + version: "latest", + executable: "npx", + semver: "*", + }, + ], + pnpm: [ + { + name: "pnpm6", + template: "pnpm", + command: "pnpm", + installArgs: ["install"], + version: "latest-6", + executable: "pnpx", + semver: "6.x", + }, + { + name: "pnpm", + template: "pnpm", + command: "pnpm", + installArgs: ["install"], + version: "latest", + executable: "pnpm dlx", + semver: ">=7", + }, + ], + yarn: [ + { + name: "yarn", + template: "yarn", + command: "yarn", + installArgs: ["install"], + version: "1.x", + executable: "npx", + semver: "<2", + }, + { + name: "berry", + template: "berry", + command: "yarn", + installArgs: ["install", "--no-immutable"], + version: "stable", + executable: "yarn dlx", + semver: ">=2", + }, + ], +}; + +async function install(args: InstallArgs) { + const { to, logger, options } = args; + let packageManager = PACKAGE_MANAGERS[to.name].find((manager) => + satisfies(to.version, manager.semver) + ); + + if (!packageManager) { + throw new ConvertError("Unsupported package manager version."); + } + + logger.subStep( + `running "${packageManager.command} ${packageManager.installArgs}"` + ); + if (!options?.dry) { + const spinner = ora({ + text: "Installing dependencies...", + spinner: { + frames: logger.installerFrames(), + }, + }).start(); + + try { + await execa(packageManager.command, packageManager.installArgs, { + cwd: args.project.paths.root, + }); + spinner.stop(); + logger.subStep(`dependencies installed`); + } catch (err) { + spinner.stop(); + logger.subStepFailure(`failed to install dependencies`); + throw err; + } + } +} + +export default install; diff --git a/packages/turbo-workspaces/src/logger.ts b/packages/turbo-workspaces/src/logger.ts new file mode 100644 index 0000000000000..222c89a6dbcf7 --- /dev/null +++ b/packages/turbo-workspaces/src/logger.ts @@ -0,0 +1,109 @@ +import chalk from "chalk"; +import gradient from "gradient-string"; + +const INDENTATION = 2; + +export class Logger { + interactive: boolean; + dry: boolean; + step: number; + + constructor({ + interactive, + dry, + }: { interactive?: boolean; dry?: boolean } = {}) { + this.interactive = interactive ?? true; + this.dry = dry ?? false; + this.step = 1; + } + + logger(...args: any[]) { + if (this.interactive) { + console.log(...args); + } + } + + indented(level: number, ...args: any[]) { + this.logger(" ".repeat(INDENTATION * level), ...args); + } + + header(title: string) { + this.blankLine(); + this.logger(chalk.bold(title)); + } + + installerFrames() { + const prefix = `${" ".repeat(INDENTATION)} - ${ + this.dry ? chalk.yellow("SKIPPED | ") : chalk.green("OK | ") + }`; + return [`${prefix} `, `${prefix}> `, `${prefix}>> `, `${prefix}>>>`]; + } + + gradient(text: string | number) { + const turboGradient = gradient("#0099F7", "#F11712"); + return turboGradient(text.toString()); + } + + hero() { + this.logger(chalk.bold(this.gradient(`\n>>> TURBOREPO\n`))); + } + + info(...args: any[]) { + this.logger(...args); + } + + mainStep(title: string) { + this.blankLine(); + this.logger(`${this.step}. ${chalk.underline(title)}`); + this.step += 1; + } + + subStep(...args: any[]) { + this.logger( + " ".repeat(INDENTATION), + `-`, + this.dry ? chalk.yellow("SKIPPED |") : chalk.green("OK |"), + ...args + ); + } + + subStepFailure(...args: any[]) { + this.logger(" ".repeat(INDENTATION), `-`, chalk.red("ERROR |"), ...args); + } + + rootHeader() { + this.blankLine(); + this.indented(2, "Root:"); + } + + rootStep(...args: any[]) { + this.logger( + " ".repeat(INDENTATION * 3), + `-`, + this.dry ? chalk.yellow("SKIPPED |") : chalk.green("OK |"), + ...args + ); + } + + workspaceHeader() { + this.blankLine(); + this.indented(2, "Workspaces:"); + } + + workspaceStep(...args: any[]) { + this.logger( + " ".repeat(INDENTATION * 3), + `-`, + this.dry ? chalk.yellow("SKIPPED |") : chalk.green("OK |"), + ...args + ); + } + + blankLine() { + this.logger(); + } + + error(...args: any[]) { + console.error(...args); + } +} diff --git a/packages/turbo-workspaces/src/managers/index.ts b/packages/turbo-workspaces/src/managers/index.ts new file mode 100644 index 0000000000000..e026aed55b1b1 --- /dev/null +++ b/packages/turbo-workspaces/src/managers/index.ts @@ -0,0 +1,11 @@ +import pnpm from "./pnpm"; +import npm from "./npm"; +import yarn from "./yarn"; +import { ManagerHandler, PackageManager } from "../types"; + +const MANAGERS: Record = { + pnpm, + yarn, + npm, +}; +export default MANAGERS; diff --git a/packages/turbo-workspaces/src/managers/npm.ts b/packages/turbo-workspaces/src/managers/npm.ts new file mode 100644 index 0000000000000..207081db385d6 --- /dev/null +++ b/packages/turbo-workspaces/src/managers/npm.ts @@ -0,0 +1,189 @@ +import fs from "fs-extra"; +import path from "path"; +import { ConvertError } from "../errors"; +import updateDependencies from "../updateDependencies"; +import { + DetectArgs, + ReadArgs, + CreateArgs, + RemoveArgs, + CleanArgs, + Project, + ConvertArgs, + ManagerHandler, +} from "../types"; +import { + getWorkspaceName, + getPackageJson, + expandWorkspaces, + getWorkspacePackageManager, + expandPaths, +} from "../utils"; + +/** + * Check if a given project is using npm workspaces + * Verify by checking for the existence of: + * 1. package-lock.json + * 2. packageManager field in package.json + */ +async function detect(args: DetectArgs): Promise { + const lockFile = path.join(args.workspaceRoot, "package-lock.json"); + const packageManager = getWorkspacePackageManager({ + workspaceRoot: args.workspaceRoot, + }); + return fs.existsSync(lockFile) || packageManager === "npm"; +} + +/** + Read workspace data from npm workspaces into generic format +*/ +async function read(args: ReadArgs): Promise { + const isNpm = await detect(args); + if (!isNpm) { + throw new ConvertError("Not an npm project"); + } + + const packageJson = getPackageJson(args); + return { + name: getWorkspaceName(args), + packageManager: "npm", + paths: expandPaths({ + root: args.workspaceRoot, + lockFile: "package-lock.json", + }), + workspaceData: { + globs: packageJson.workspaces || [], + workspaces: expandWorkspaces({ + workspaceGlobs: packageJson.workspaces, + ...args, + }), + }, + }; +} + +/** + * Create npm workspaces from generic format + * + * Creating npm workspaces involves: + * 1. Adding the workspaces field in package.json + * 2. Setting the packageManager field in package.json + * 3. Updating all workspace package.json dependencies to ensure correct format + */ +async function create(args: CreateArgs): Promise { + const { project, options, to, logger } = args; + + logger.mainStep(`Creating npm workspaces`); + const packageJson = getPackageJson({ workspaceRoot: project.paths.root }); + logger.rootHeader(); + if (project.packageManager !== "yarn") { + logger.rootStep( + `adding "workspaces" field to ${project.name} root "package.json"` + ); + packageJson.workspaces = project.workspaceData.globs; + } + logger.rootStep( + `adding "packageManager" field to ${project.name} root "package.json"` + ); + packageJson.packageManager = `${to.name}@${to.version}`; + + if (!options?.dry) { + fs.writeJSONSync(project.paths.packageJson, packageJson, { spaces: 2 }); + } + + // root dependencies + updateDependencies({ + workspace: { name: "root", paths: project.paths }, + project, + to, + logger, + options, + }); + + // workspace dependencies + logger.workspaceHeader(); + project.workspaceData.workspaces.forEach((workspace) => + updateDependencies({ workspace, project, to, logger, options }) + ); +} + +/** + * Remove npm workspace data + * Removing npm workspaces involves: + * 1. Removing the workspaces field from package.json + * 2. Removing the node_modules directory + */ +async function remove(args: RemoveArgs): Promise { + const { project, options, to, logger } = args; + + logger.mainStep(`Removing npm workspaces`); + if (to.name !== "yarn") { + const packageJson = getPackageJson({ workspaceRoot: project.paths.root }); + delete packageJson.workspaces; + logger.subStep( + `removing "workspaces" field in ${project.name} root "package.json"` + ); + + if (!options?.dry) { + fs.writeJSONSync(project.paths.packageJson, packageJson, { spaces: 2 }); + + // collect all workspace node_modules directories + const allModulesDirs = [ + project.paths.nodeModules, + ...project.workspaceData.workspaces.map((w) => w.paths.nodeModules), + ]; + try { + logger.subStep(`removing "node_modules"`); + await Promise.all( + allModulesDirs.map((dir) => + fs.rm(dir, { recursive: true, force: true }) + ) + ); + } catch (err) { + throw new ConvertError("Failed to remove node_modules"); + } + } + } else { + logger.subStep(`nothing to be done`); + } +} + +/** + * Clean is called post install, and is used to clean up any files + * from this package manager that were needed for install, + * but not required after migration + */ +async function clean(args: CleanArgs): Promise { + const { project, logger, options } = args; + + logger.subStep( + `removing ${path.relative(project.paths.root, project.paths.lockfile)}` + ); + if (!options?.dry) { + fs.rmSync(project.paths.lockfile, { force: true }); + } +} + +/** + * Attempts to convert an existing, non npm lockfile to an npm lockfile + * + * If this is not possible, the non npm lockfile is removed + */ +async function convertLock(args: ConvertArgs): Promise { + const { project, options } = args; + + // remove the lockfile + if (!options?.dry) { + fs.rmSync(project.paths.lockfile, { force: true }); + } +} + +const npm: ManagerHandler = { + detect, + read, + create, + remove, + clean, + convertLock, +}; + +export default npm; diff --git a/packages/turbo-workspaces/src/managers/pnpm.ts b/packages/turbo-workspaces/src/managers/pnpm.ts new file mode 100644 index 0000000000000..f28ef82194a57 --- /dev/null +++ b/packages/turbo-workspaces/src/managers/pnpm.ts @@ -0,0 +1,211 @@ +import fs from "fs-extra"; +import path from "path"; +import execa from "execa"; +import { ConvertError } from "../errors"; +import updateDependencies from "../updateDependencies"; +import { + DetectArgs, + ReadArgs, + CreateArgs, + RemoveArgs, + ConvertArgs, + CleanArgs, + Project, + ManagerHandler, +} from "../types"; +import { + expandPaths, + getWorkspaceName, + expandWorkspaces, + getPnpmWorkspaces, + getPackageJson, + getWorkspacePackageManager, +} from "../utils"; + +/** + * Check if a given project is using pnpm workspaces + * Verify by checking for the existence of: + * 1. pnpm-workspace.yaml + * 2. pnpm-workspace.yaml + */ +async function detect(args: DetectArgs): Promise { + const lockFile = path.join(args.workspaceRoot, "pnpm-lock.yaml"); + const workspaceFile = path.join(args.workspaceRoot, "pnpm-workspace.yaml"); + const packageManager = getWorkspacePackageManager({ + workspaceRoot: args.workspaceRoot, + }); + return ( + fs.existsSync(lockFile) || + fs.existsSync(workspaceFile) || + packageManager === "pnpm" + ); +} + +/** + Read workspace data from pnpm workspaces into generic format +*/ +async function read(args: ReadArgs): Promise { + const isPnpm = await detect(args); + if (!isPnpm) { + throw new ConvertError("Not a pnpm project"); + } + + return { + name: getWorkspaceName(args), + packageManager: "pnpm", + paths: expandPaths({ + root: args.workspaceRoot, + lockFile: "pnpm-lock.yaml", + workspaceConfig: "pnpm-workspace.yaml", + }), + workspaceData: { + globs: getPnpmWorkspaces(args), + workspaces: expandWorkspaces({ + workspaceGlobs: getPnpmWorkspaces(args), + ...args, + }), + }, + }; +} + +/** + * Create pnpm workspaces from generic format + * + * Creating pnpm workspaces involves: + * 1. Create pnpm-workspace.yaml + * 2. Setting the packageManager field in package.json + * 3. Updating all workspace package.json dependencies to ensure correct format + */ +async function create(args: CreateArgs): Promise { + const { project, to, logger, options } = args; + + logger.mainStep(`Creating pnpm workspaces`); + const packageJson = getPackageJson({ workspaceRoot: project.paths.root }); + logger.rootHeader(); + packageJson.packageManager = `${to.name}@${to.version}`; + logger.rootStep( + `adding "packageManager" field to ${project.name} root "package.json"` + ); + logger.rootStep(`adding "pnpm-workspace.yaml"`); + + // write the changes + if (!options?.dry) { + fs.writeJSONSync(project.paths.packageJson, packageJson, { spaces: 2 }); + fs.writeFileSync( + path.join(project.paths.root, "pnpm-workspace.yaml"), + `packages:\n${project.workspaceData.globs + .map((w) => ` - "${w}"`) + .join("\n")}` + ); + } + + // root dependencies + updateDependencies({ + workspace: { name: "root", paths: project.paths }, + project, + to, + logger, + options, + }); + + // workspace dependencies + logger.workspaceHeader(); + project.workspaceData.workspaces.forEach((workspace) => + updateDependencies({ workspace, project, to, logger, options }) + ); +} + +/** + * Remove pnpm workspace data + * + * Cleaning up from pnpm involves: + * 1. Removing the pnpm-workspace.yaml file + * 2. Removing the pnpm-lock.yaml file + * 3. Removing the node_modules directory + */ +async function remove(args: RemoveArgs): Promise { + const { project, logger, options } = args; + + logger.mainStep(`Removing pnpm workspaces`); + if (project.paths.workspaceConfig) { + logger.subStep(`removing "pnpm-workspace.yaml"`); + if (!options?.dry) { + fs.rmSync(project.paths.workspaceConfig, { force: true }); + } + } + + if (!options?.dry) { + // collect all workspace node_modules directories + const allModulesDirs = [ + project.paths.nodeModules, + ...project.workspaceData.workspaces.map((w) => w.paths.nodeModules), + ]; + + try { + logger.subStep(`removing "node_modules"`); + await Promise.all( + allModulesDirs.map((dir) => + fs.rm(dir, { recursive: true, force: true }) + ) + ); + } catch (err) { + throw new ConvertError("Failed to remove node_modules"); + } + } +} + +/** + * Clean is called post install, and is used to clean up any files + * from this package manager that were needed for install, + * but not required after migration + */ +async function clean(args: CleanArgs): Promise { + const { project, logger, options } = args; + + logger.subStep( + `removing ${path.relative(project.paths.root, project.paths.lockfile)}` + ); + if (!options?.dry) { + fs.rmSync(project.paths.lockfile, { force: true }); + } +} + +/** + * Attempts to convert an existing, non pnpm lockfile to a pnpm lockfile + * + * If this is not possible, the non pnpm lockfile is removed + */ +async function convertLock(args: ConvertArgs): Promise { + const { project, logger, options } = args; + + if (project.packageManager !== "pnpm") { + logger.subStep( + `converting ${path.relative( + project.paths.root, + project.paths.lockfile + )} to pnpm-lock.yaml` + ); + if (!options?.dry && fs.existsSync(project.paths.lockfile)) { + try { + await execa("pnpm", ["import"], { + stdio: "ignore", + cwd: project.paths.root, + }); + } catch (err) { + console.error(project.paths.lockfile, err); + fs.rmSync(project.paths.lockfile, { force: true }); + } + } + } +} + +const pnpm: ManagerHandler = { + detect, + read, + create, + remove, + clean, + convertLock, +}; + +export default pnpm; diff --git a/packages/turbo-workspaces/src/managers/yarn.ts b/packages/turbo-workspaces/src/managers/yarn.ts new file mode 100644 index 0000000000000..9972ddbc6c19f --- /dev/null +++ b/packages/turbo-workspaces/src/managers/yarn.ts @@ -0,0 +1,198 @@ +import fs from "fs-extra"; +import path from "path"; +import { ConvertError } from "../errors"; +import updateDependencies from "../updateDependencies"; +import { + DetectArgs, + ReadArgs, + CreateArgs, + RemoveArgs, + ConvertArgs, + CleanArgs, + Project, +} from "../types"; +import { + getWorkspaceName, + getPackageJson, + expandPaths, + expandWorkspaces, + getWorkspacePackageManager, +} from "../utils"; + +/** + * Check if a given project is using yarn workspaces + * Verify by checking for the existence of: + * 1. yarn.lock + * 2. packageManager field in package.json + */ +async function detect(args: DetectArgs): Promise { + const lockFile = path.join(args.workspaceRoot, "yarn.lock"); + const packageManager = getWorkspacePackageManager({ + workspaceRoot: args.workspaceRoot, + }); + return fs.existsSync(lockFile) || packageManager === "yarn"; +} + +/** + Read workspace data from yarn workspaces into generic format +*/ +async function read(args: ReadArgs): Promise { + const isYarn = await detect(args); + if (!isYarn) { + throw new ConvertError("Not a yarn project"); + } + + const packageJson = getPackageJson(args); + return { + name: getWorkspaceName(args), + packageManager: "yarn", + paths: expandPaths({ + root: args.workspaceRoot, + lockFile: "yarn.lock", + }), + workspaceData: { + globs: packageJson.workspaces || [], + workspaces: expandWorkspaces({ + workspaceGlobs: packageJson.workspaces, + ...args, + }), + }, + }; +} + +/** + * Create yarn workspaces from generic format + * + * Creating yarn workspaces involves: + * 1. Adding the workspaces field in package.json + * 2. Setting the packageManager field in package.json + * 3. Updating all workspace package.json dependencies to ensure correct format + */ +async function create(args: CreateArgs): Promise { + const { project, to, logger, options } = args; + + logger.mainStep(`Creating yarn workspaces`); + const packageJson = getPackageJson({ workspaceRoot: project.paths.root }); + logger.rootHeader(); + // workspaces + if (project.packageManager !== "npm") { + logger.rootStep( + `adding "workspaces" field to ${path.relative( + project.paths.root, + project.paths.packageJson + )}` + ); + packageJson.workspaces = project.workspaceData.globs; + } + + // package manager + logger.rootStep( + `adding "packageManager" field to ${path.relative( + project.paths.root, + project.paths.packageJson + )}` + ); + packageJson.packageManager = `${to.name}@${to.version}`; + + if (!options?.dry) { + fs.writeJSONSync(project.paths.packageJson, packageJson, { spaces: 2 }); + } + + // root dependencies + updateDependencies({ + workspace: { name: "root", paths: project.paths }, + project, + to, + logger, + options, + }); + + // workspace dependencies + logger.workspaceHeader(); + project.workspaceData.workspaces.forEach((workspace) => + updateDependencies({ workspace, project, to, logger, options }) + ); +} + +/** + * Remove yarn workspace data + * + * Removing yarn workspaces involves: + * 1. Removing the workspaces field from package.json + * 2. Removing the node_modules directory + */ +async function remove(args: RemoveArgs): Promise { + const { project, to, logger, options } = args; + + logger.mainStep(`Removing yarn workspaces`); + if (to.name !== "npm") { + const packageJson = getPackageJson({ workspaceRoot: project.paths.root }); + delete packageJson.workspaces; + logger.subStep( + `removing "workspaces" field in ${project.name} root "package.json"` + ); + + if (!options?.dry) { + fs.writeJSONSync(project.paths.packageJson, packageJson, { spaces: 2 }); + // collect all workspace node_modules directories + const allModulesDirs = [ + project.paths.nodeModules, + ...project.workspaceData.workspaces.map((w) => w.paths.nodeModules), + ]; + + try { + logger.subStep(`removing "node_modules"`); + await Promise.all( + allModulesDirs.map((dir) => + fs.rm(dir, { recursive: true, force: true }) + ) + ); + } catch (err) { + throw new ConvertError("Failed to remove node_modules"); + } + } + } else { + logger.subStep(`nothing to be done`); + } +} + +/** + * Clean is called post install, and is used to clean up any files + * from this package manager that were needed for install, + * but not required after migration + */ +async function clean(args: CleanArgs): Promise { + const { project, logger, options } = args; + + logger.subStep( + `removing ${path.relative(project.paths.root, project.paths.lockfile)}` + ); + if (!options?.dry) { + fs.rmSync(project.paths.lockfile, { force: true }); + } +} + +/** + * Attempts to convert an existing, non yarn lockfile to a yarn lockfile + * + * If this is not possible, the non yarn lockfile is removed + */ +async function convertLock(args: ConvertArgs): Promise { + const { project, options } = args; + + // remove the lockfile + if (!options?.dry) { + fs.rmSync(project.paths.lockfile, { force: true }); + } +} + +const yarn = { + detect, + read, + create, + remove, + clean, + convertLock, +}; + +export default yarn; diff --git a/packages/turbo-workspaces/src/types.ts b/packages/turbo-workspaces/src/types.ts new file mode 100644 index 0000000000000..dc95abaa50d10 --- /dev/null +++ b/packages/turbo-workspaces/src/types.ts @@ -0,0 +1,121 @@ +import { Logger } from "./logger"; + +export type PackageManager = "npm" | "pnpm" | "yarn"; +export type PackageManagerDetails = { + name: PackageManager; + version: string; +}; + +export type Project = { + name: string; + packageManager: PackageManager; + paths: { + root: string; + packageJson: string; + lockfile: string; + nodeModules: string; + // pnpm workspace config file + workspaceConfig?: string; + }; + workspaceData: { + globs: Array; + workspaces: Array; + }; +}; + +export type Workspace = { + name: string; + paths: { + root: string; + packageJson: string; + nodeModules: string; + }; +}; + +export type DependencyList = Record; + +export type PackageJsonDependencies = { + dependencies?: DependencyList; + devDependencies?: DependencyList; + peerDependencies?: DependencyList; + optionalDependencies?: DependencyList; +}; + +export type PackageJson = PackageJsonDependencies & { + name?: string; + workspaces?: Array; + packageManager?: string; +}; + +export type DetectArgs = { + workspaceRoot: string; +}; + +export type ReadArgs = { + workspaceRoot: string; +}; + +export type CreateArgs = { + project: Project; + to: PackageManagerDetails; + logger: Logger; + options?: Options; +}; + +export type RemoveArgs = { + project: Project; + to: PackageManagerDetails; + logger: Logger; + options?: Options; +}; + +export type CleanArgs = { + project: Project; + logger: Logger; + options?: Options; +}; + +export type ConvertArgs = { + project: Project; + logger: Logger; + options?: Options; +}; + +export type InstallArgs = { + project: Project; + to: PackageManagerDetails; + logger: Logger; + options?: Options; +}; + +export type Options = { + dry?: boolean; + skipInstall?: boolean; + interactive?: boolean; +}; + +export type PackageManagerInstallDetails = { + name: string; + template: string; + command: PackageManager; + installArgs: string[]; + version: string; + executable: string; + semver: string; +}; + +export type ManagerDetect = (args: DetectArgs) => Promise; +export type ManagerRead = (args: ReadArgs) => Promise; +export type ManagerCreate = (args: CreateArgs) => Promise; +export type ManagerRemove = (args: RemoveArgs) => Promise; +export type ManagerClean = (args: CleanArgs) => Promise; +export type ManagerConvert = (args: ConvertArgs) => Promise; + +export type ManagerHandler = { + detect: ManagerDetect; + read: ManagerRead; + create: ManagerCreate; + remove: ManagerRemove; + clean: ManagerClean; + convertLock: ManagerConvert; +}; diff --git a/packages/turbo-workspaces/src/updateDependencies.ts b/packages/turbo-workspaces/src/updateDependencies.ts new file mode 100644 index 0000000000000..5461ed0406081 --- /dev/null +++ b/packages/turbo-workspaces/src/updateDependencies.ts @@ -0,0 +1,135 @@ +import fs from "fs-extra"; +import chalk from "chalk"; +import path from "path"; +import { + Project, + Workspace, + DependencyList, + PackageManagerDetails, + Options, + PackageJsonDependencies, +} from "./types"; +import { Logger } from "./logger"; +import { getPackageJson } from "./utils"; + +function updateDependencyList({ + dependencyList, + project, + to, +}: { + dependencyList: DependencyList; + project: Project; + to: PackageManagerDetails; +}): { dependencyList: DependencyList; updated: Array } { + const updated: Array = []; + project.workspaceData.workspaces.forEach((workspace) => { + const { name } = workspace; + if (dependencyList[name]) { + const workspaceVersion = dependencyList[name]; + const version = workspaceVersion.startsWith("workspace:") + ? workspaceVersion.slice("workspace:".length) + : workspaceVersion; + dependencyList[name] = + to.name === "pnpm" ? `workspace:${version}` : version; + updated.push(name); + } + }); + + return { dependencyList, updated }; +} + +export default function updateDependencies({ + project, + workspace, + to, + logger, + options, +}: { + workspace: Workspace; + project: Project; + to: PackageManagerDetails; + logger: Logger; + options?: Options; +}): void { + // this step isn't required if moving between yarn / npm + if ( + ["yarn", "npm"].includes(to.name) && + ["yarn", "npm"].includes(project.packageManager) + ) { + return; + } + + // update all dependencies + const workspacePackageJson = getPackageJson({ + workspaceRoot: workspace.paths.root, + }); + + // collect stats as we go for consolidated output at the end + const stats: Record> = { + dependencies: [], + devDependencies: [], + peerDependencies: [], + optionalDependencies: [], + }; + + const allDependencyKeys: Array = [ + "dependencies", + "devDependencies", + "peerDependencies", + "optionalDependencies", + ]; + + allDependencyKeys.forEach((depKey) => { + const depList = workspacePackageJson[depKey]; + if (depList) { + const { updated, dependencyList } = updateDependencyList({ + dependencyList: depList, + project, + to, + }); + + workspacePackageJson[depKey] = dependencyList; + stats[depKey] = updated; + } + }); + + const toLog = (key: keyof PackageJsonDependencies) => { + const total = stats[key].length; + if (total > 0) { + return `${chalk.green(total.toString())} ${key}`; + } + return undefined; + }; + + const allChanges = allDependencyKeys.map(toLog).filter(Boolean); + const workspaceLocation = `./${path.relative( + project.paths.root, + workspace.paths.packageJson + )}`; + if (allChanges.length >= 1) { + let logLine = "updating"; + allChanges.forEach((stat, idx) => { + if (allChanges.length === 1) { + logLine += ` ${stat} in ${workspaceLocation}`; + } else { + if (idx === allChanges.length - 1) { + logLine += `and ${stat} in ${workspaceLocation}`; + } else { + logLine += ` ${stat}, `; + } + } + }); + + logger.workspaceStep(logLine); + } else { + logger.workspaceStep( + `no workspace dependencies found in ${workspaceLocation}` + ); + } + + if (!options?.dry) { + fs.writeJSONSync(workspace.paths.packageJson, workspacePackageJson, { + spaces: 2, + }); + } +} diff --git a/packages/turbo-workspaces/src/utils.ts b/packages/turbo-workspaces/src/utils.ts new file mode 100644 index 0000000000000..2c12243b63da3 --- /dev/null +++ b/packages/turbo-workspaces/src/utils.ts @@ -0,0 +1,165 @@ +import fs from "fs-extra"; +import path from "path"; +import glob from "fast-glob"; +import yaml from "js-yaml"; +import semver from "semver"; +import { PackageJson, Project, Workspace } from "./types"; +import { ConvertError } from "./errors"; + +// adapted from https://github.com/nodejs/corepack/blob/cae770694e62f15fed33dd8023649d77d96023c1/sources/specUtils.ts#L14 +const PACKAGE_MANAGER_REGEX = /^(?!_)(.+)@(.+)$/; + +function getPackageJson({ + workspaceRoot, +}: { + workspaceRoot: string; +}): PackageJson { + const packageJsonPath = path.join(workspaceRoot, "package.json"); + try { + return fs.readJsonSync(packageJsonPath, "utf8"); + } catch (err) { + if (err && typeof err === "object" && "code" in err) { + if (err.code === "ENOENT") { + throw new ConvertError(`no "package.json" found at ${workspaceRoot}`); + } + if (err.code === "EJSONPARSE") { + throw new ConvertError( + `failed to parse "package.json" at ${workspaceRoot}` + ); + } + } + throw new Error( + `unexpected error reading "package.json" at ${workspaceRoot}` + ); + } +} + +function getWorkspacePackageManager({ + workspaceRoot, +}: { + workspaceRoot: string; +}): string | undefined { + const { packageManager } = getPackageJson({ workspaceRoot }); + if (packageManager) { + try { + const match = packageManager.match(PACKAGE_MANAGER_REGEX); + if (match) { + const [_, manager] = match; + return manager; + } + } catch (err) { + // this won't always exist. + } + } + return undefined; +} + +function getWorkspaceName({ + workspaceRoot, +}: { + workspaceRoot: string; +}): string { + const packageJson = getPackageJson({ workspaceRoot }); + if (packageJson.name) { + return packageJson.name; + } + const workspaceDirectory = path.basename(workspaceRoot); + return workspaceDirectory; +} + +function getPnpmWorkspaces({ + workspaceRoot, +}: { + workspaceRoot: string; +}): Array { + const workspaceFile = path.join(workspaceRoot, "pnpm-workspace.yaml"); + if (fs.existsSync(workspaceFile)) { + try { + const workspaceConfig = yaml.load(fs.readFileSync(workspaceFile, "utf8")); + // validate it's the type we expect + if ( + workspaceConfig instanceof Object && + "packages" in workspaceConfig && + Array.isArray(workspaceConfig.packages) + ) { + return workspaceConfig.packages as Array; + } + } catch (err) { + throw new ConvertError(`failed to parse ${workspaceFile}`); + } + } + + return []; +} + +function expandPaths({ + root, + lockFile, + workspaceConfig, +}: { + root: string; + lockFile: string; + workspaceConfig?: string; +}) { + const fromRoot = (p: string) => path.join(root, p); + const paths: Project["paths"] = { + root, + lockfile: fromRoot(lockFile), + packageJson: fromRoot("package.json"), + nodeModules: fromRoot("node_modules"), + }; + + if (workspaceConfig) { + paths.workspaceConfig = fromRoot(workspaceConfig); + } + + return paths; +} + +function expandWorkspaces({ + workspaceRoot, + workspaceGlobs, +}: { + workspaceRoot: string; + workspaceGlobs?: string[]; +}): Array { + if (!workspaceGlobs) { + return []; + } + return workspaceGlobs + .flatMap((workspaceGlob) => { + const workspacePackageJsonGlob = `${workspaceGlob}/package.json`; + return glob.sync(workspacePackageJsonGlob, { + onlyFiles: true, + absolute: true, + cwd: workspaceRoot, + }); + }) + .map((workspacePackageJson) => { + const workspaceRoot = path.dirname(workspacePackageJson); + const name = getWorkspaceName({ workspaceRoot }); + return { + name, + paths: { + root: workspaceRoot, + packageJson: workspacePackageJson, + nodeModules: path.join(workspaceRoot, "node_modules"), + }, + }; + }); +} + +function directoryInfo({ directory }: { directory: string }) { + const dir = path.resolve(process.cwd(), directory); + return { exists: fs.existsSync(dir), absolute: dir }; +} + +export { + getPackageJson, + getWorkspacePackageManager, + getWorkspaceName, + expandPaths, + expandWorkspaces, + getPnpmWorkspaces, + directoryInfo, +}; diff --git a/packages/turbo-workspaces/tsconfig.json b/packages/turbo-workspaces/tsconfig.json new file mode 100644 index 0000000000000..99bce823b83b7 --- /dev/null +++ b/packages/turbo-workspaces/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "tsconfig/library.json", + "compilerOptions": { + "rootDir": "." + } +} diff --git a/packages/turbo-workspaces/tsup.config.ts b/packages/turbo-workspaces/tsup.config.ts new file mode 100644 index 0000000000000..e6ece28fffcd6 --- /dev/null +++ b/packages/turbo-workspaces/tsup.config.ts @@ -0,0 +1,9 @@ +import { defineConfig, Options } from "tsup"; + +export default defineConfig((options: Options) => ({ + entry: ["src/index.ts", "src/cli.ts"], + format: ["cjs"], + dts: true, + clean: true, + ...options, +})); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 62ac7f13ba766..ecfbf0c374281 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -491,20 +491,24 @@ importers: specifiers: '@types/fs-extra': ^9.0.13 '@types/jest': ^27.4.0 + '@types/js-yaml': ^4.0.5 '@types/node': ^16.11.12 '@types/uuid': ^9.0.0 fs-extra: ^11.1.0 jest: ^27.4.3 + js-yaml: ^4.1.0 ts-jest: ^27.1.1 tsconfig: workspace:* typescript: ^4.7.4 uuid: ^9.0.0 dependencies: fs-extra: 11.1.0 + js-yaml: 4.1.0 uuid: 9.0.0 devDependencies: '@types/fs-extra': 9.0.13 '@types/jest': 27.5.2 + '@types/js-yaml': 4.0.5 '@types/node': 16.11.56 '@types/uuid': 9.0.0 jest: 27.5.1 @@ -556,6 +560,7 @@ importers: '@types/js-yaml': ^4.0.5 '@types/node': ^16.11.12 eslint: ^8.23.0 + execa: 5.1.1 globby: 11.1.0 jest: ^27.4.3 js-yaml: ^4.1.0 @@ -572,6 +577,7 @@ importers: '@types/js-yaml': 4.0.5 '@types/node': 16.11.44 eslint: 8.23.0 + execa: 5.1.1 globby: 11.1.0 jest: 27.5.1 js-yaml: 4.1.0 @@ -583,6 +589,71 @@ importers: turbo-types: link:../turbo-types typescript: 4.7.4 + packages/turbo-workspaces: + specifiers: + '@types/chalk-animation': ^1.6.0 + '@types/fs-extra': ^9.0.13 + '@types/gradient-string': ^1.1.2 + '@types/inquirer': ^7.3.1 + '@types/jest': ^27.4.0 + '@types/js-yaml': ^4.0.5 + '@types/node': ^16.11.12 + '@types/rimraf': ^3.0.2 + '@types/semver': ^7.3.9 + chalk: 2.4.2 + commander: ^10.0.0 + eslint: ^7.23.0 + execa: 5.1.1 + fast-glob: ^3.2.12 + fs-extra: ^10.1.0 + gradient-string: ^2.0.0 + inquirer: ^8.0.0 + jest: ^27.4.3 + js-yaml: ^4.1.0 + ora: 4.1.1 + rimraf: ^3.0.2 + semver: ^7.3.5 + strip-ansi: ^6.0.1 + ts-jest: ^27.1.1 + tsconfig: workspace:* + tsup: ^5.10.3 + turbo-test-utils: workspace:* + turbo-utils: workspace:* + typescript: ^4.5.5 + update-check: ^1.5.4 + dependencies: + chalk: 2.4.2 + commander: 10.0.0 + execa: 5.1.1 + fast-glob: 3.2.12 + fs-extra: 10.1.0 + gradient-string: 2.0.1 + inquirer: 8.2.4 + js-yaml: 4.1.0 + ora: 4.1.1 + rimraf: 3.0.2 + semver: 7.3.8 + turbo-utils: link:../turbo-utils + update-check: 1.5.4 + devDependencies: + '@types/chalk-animation': 1.6.1 + '@types/fs-extra': 9.0.13 + '@types/gradient-string': 1.1.2 + '@types/inquirer': 7.3.3 + '@types/jest': 27.5.2 + '@types/js-yaml': 4.0.5 + '@types/node': 16.11.56 + '@types/rimraf': 3.0.2 + '@types/semver': 7.3.12 + eslint: 7.32.0 + jest: 27.5.1 + strip-ansi: 6.0.1 + ts-jest: 27.1.5_zlm4upq2etzozjdcmm6nf7lnf4 + tsconfig: link:../tsconfig + tsup: 5.12.9_typescript@4.9.4 + turbo-test-utils: link:../turbo-test-utils + typescript: 4.9.4 + packages/webpack-nmt: specifiers: '@types/webpack': ^5.28.0 @@ -817,7 +888,7 @@ packages: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.0 /@babel/helper-string-parser/7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} @@ -1127,9 +1198,9 @@ packages: dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.4.0 + espree: 9.4.1 globals: 13.19.0 - ignore: 5.2.0 + ignore: 5.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -3873,6 +3944,16 @@ packages: load-tsconfig: 0.2.3 dev: true + /bundle-require/3.1.0_esbuild@0.14.49: + resolution: {integrity: sha512-IIXtAO7fKcwPHNPt9kY/WNVJqy7NDy6YqJvv6ENH0TOZoJ+yjpEsn1w40WKZbR2ibfu5g1rfgJTvmFHpm5aOMA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.13' + dependencies: + esbuild: 0.14.49 + load-tsconfig: 0.2.3 + dev: true + /bundle-require/3.1.0_esbuild@0.15.11: resolution: {integrity: sha512-IIXtAO7fKcwPHNPt9kY/WNVJqy7NDy6YqJvv6ENH0TOZoJ+yjpEsn1w40WKZbR2ibfu5g1rfgJTvmFHpm5aOMA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4207,6 +4288,11 @@ packages: resolution: {integrity: sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==} dev: false + /commander/10.0.0: + resolution: {integrity: sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==} + engines: {node: '>=14'} + dev: false + /commander/2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: true @@ -5982,7 +6068,6 @@ packages: acorn: 8.8.1 acorn-jsx: 5.3.2_acorn@8.8.1 eslint-visitor-keys: 3.3.0 - dev: true /esprima/4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -11013,7 +11098,6 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 - dev: false /rss/1.2.2: resolution: {integrity: sha512-xUhRTgslHeCBeHAqaWSbOYTydN2f0tAzNXvzh3stjz7QDhQMzdgHf3pfgNIngeytQflrFPfy6axHilTETr6gDg==} @@ -12214,6 +12298,42 @@ packages: yargs-parser: 20.2.9 dev: true + /ts-jest/27.1.5_zlm4upq2etzozjdcmm6nf7lnf4: + resolution: {integrity: sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@types/jest': ^27.0.0 + babel-jest: '>=27.0.0 <28' + esbuild: '*' + jest: ^27.0.0 + typescript: '>=3.8 <5.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/jest': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@babel/core': 7.20.12 + '@types/jest': 27.5.2 + bs-logger: 0.2.6 + esbuild: 0.14.49 + fast-json-stable-stringify: 2.1.0 + jest: 27.5.1 + jest-util: 27.5.1 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.3.8 + typescript: 4.9.4 + yargs-parser: 20.2.9 + dev: true + /ts-json-schema-generator/1.1.2: resolution: {integrity: sha512-XMnxvndJFJEYv3NBmW7Po5bGajKdK2qH8Q078eDy60srK9+nEvbT9nLCRKd2IV/RQ7a+oc5FNylvZWveqh7jeQ==} engines: {node: '>=10.0.0'} @@ -12282,6 +12402,41 @@ packages: - ts-node dev: true + /tsup/5.12.9_typescript@4.9.4: + resolution: {integrity: sha512-dUpuouWZYe40lLufo64qEhDpIDsWhRbr2expv5dHEMjwqeKJS2aXA/FPqs1dxO4T6mBojo7rvo3jP9NNzaKyDg==} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: ^4.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 3.1.0_esbuild@0.14.49 + cac: 6.7.12 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.14.49 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 3.1.4 + resolve-from: 5.0.0 + rollup: 2.78.0 + source-map: 0.8.0-beta.0 + sucrase: 3.24.0 + tree-kill: 1.2.2 + typescript: 4.9.4 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + /tsup/6.2.3_typescript@4.7.4: resolution: {integrity: sha512-J5Pu2Dx0E1wlpIEsVFv9ryzP1pZ1OYsJ2cBHZ7GrKteytNdzaSz5hmLX7/nAxtypq+jVkVvA79d7S83ETgHQ5w==} engines: {node: '>=14'}

uAw*8@SPu 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