diff --git a/.github/scripts/select-agentic-ts-currentness.sh b/.github/scripts/select-agentic-ts-currentness.sh index b5818b68..c5aed1ff 100755 --- a/.github/scripts/select-agentic-ts-currentness.sh +++ b/.github/scripts/select-agentic-ts-currentness.sh @@ -4,7 +4,7 @@ set -euo pipefail event_name=${1:?usage: select-agentic-ts-currentness.sh [pr-head]} push_before=${2:-} expected_pr_head=${3:-} -source_ref=$(git rev-parse HEAD) +event_source_ref=$(git rev-parse HEAD) diff_base= case "$event_name" in @@ -18,8 +18,8 @@ case "$event_name" in echo "pull-request checkout is not a two-parent synthetic merge" >&2 exit 1 fi - source_ref=$(git rev-parse HEAD^2) - if [[ "$source_ref" != "$(git rev-parse "$expected_pr_head")" ]]; then + event_source_ref=$(git rev-parse HEAD^2) + if [[ "$event_source_ref" != "$(git rev-parse "$expected_pr_head")" ]]; then echo "synthetic merge second parent does not match the pull-request head" >&2 exit 1 fi @@ -40,10 +40,10 @@ case "$event_name" in if [[ ${#head_commit[@]} -eq 3 \ && "$(git rev-parse HEAD^1)" == "$(git rev-parse "$push_before")" ]]; then # A normal PR merge combines an already-advanced main tree with - # the exact measured PR tree. Validate newly introduced reports - # against that PR tree, not unrelated first-parent changes. + # the reviewed PR tree. Select report artifacts from that PR + # side, not unrelated first-parent changes. diff_base=HEAD^1 - source_ref=$(git rev-parse HEAD^2) + event_source_ref=$(git rev-parse HEAD^2) fi fi ;; @@ -53,23 +53,158 @@ case "$event_name" in ;; esac -reports_to_check=() -reports_count=0 +agentic_manifest=tests/agentic_ts/results/current-reports.txt +npm_manifest=tests/npm_metadata/results/current-reports.txt + +validate_manifest() { + local manifest=$1 + local expected_prefix=$2 + local source_ref + local report + local report_source_ref + local extra + local manifest_source_ref= + local seen= + local reports_count=0 + local p2_count=0 + local p3_count=0 + local p2_report= + local p3_report= + while read -r source_ref report extra; do + if [[ ! "$source_ref" =~ ^[0-9a-f]{40}$ || -n "$extra" \ + || -z "$report" || "$report" != "$expected_prefix"*.json ]]; then + echo "invalid current report entry in $manifest: $source_ref $report $extra" >&2 + exit 1 + fi + if [[ ! -f "$report" ]]; then + echo "current report does not exist: $report" >&2 + exit 1 + fi + report_source_ref=$(jq -er '.environment.commitHint' "$report") || { + echo "current report has no commit hint: $report" >&2 + exit 1 + } + if [[ "$report_source_ref" != "$source_ref" ]]; then + echo "current report source does not match $manifest: $report" >&2 + exit 1 + fi + if grep -Fqx "$report" <<<"$seen"; then + echo "duplicate current report in $manifest: $report" >&2 + exit 1 + fi + if [[ -n "$manifest_source_ref" && "$source_ref" != "$manifest_source_ref" ]]; then + echo "current reports in $manifest name different source revisions" >&2 + exit 1 + fi + manifest_source_ref=$source_ref + seen="${seen}${seen:+$'\n'}$report" + reports_count=$((reports_count + 1)) + if [[ "$report" == *-p2-* ]]; then + p2_count=$((p2_count + 1)) + p2_report=$report + fi + if [[ "$report" == *-p3-* ]]; then + p3_count=$((p3_count + 1)) + p3_report=$report + fi + done <"$manifest" + if [[ $reports_count -ne 2 || $p2_count -ne 1 || $p3_count -ne 1 ]]; then + echo "current report manifest must name exactly one P2/P3 pair: $manifest" >&2 + exit 1 + fi + if [[ "${p2_report/-p2-/-p3-}" != "$p3_report" ]]; then + echo "current report manifest does not name a companion P2/P3 pair: $manifest" >&2 + exit 1 + fi + if ! git cat-file -e "$manifest_source_ref^{commit}" 2>/dev/null; then + git fetch --no-tags --depth=1 origin "$manifest_source_ref" >&2 || true + fi + if ! git cat-file -e "$manifest_source_ref^{commit}" 2>/dev/null; then + echo "current report source commit is unavailable: $manifest_source_ref" >&2 + exit 1 + fi + if ! git merge-base --is-ancestor "$manifest_source_ref" HEAD; then + echo "current report source is not an ancestor of the checked-out source: $manifest_source_ref" >&2 + exit 1 + fi + printf '%s\n' "$manifest_source_ref" +} + +agentic_source_ref=$(validate_manifest "$agentic_manifest" tests/agentic_ts/results/) +npm_source_ref=$(validate_manifest "$npm_manifest" tests/npm_metadata/results/) + +manifest_contains() { + local manifest=$1 + local expected_report=$2 + local source_ref + local report + while read -r source_ref report; do + if [[ "$report" == "$expected_report" ]]; then + return 0 + fi + done <"$manifest" + return 1 +} + +agentic_reports_to_check=() +npm_reports_to_check=() +changed_reports_count=0 if [[ -n "$diff_base" ]]; then - report_list=$(mktemp) - trap 'rm -f "$report_list"' EXIT + changed_paths=$(mktemp) + report_candidates=$(mktemp) + trap 'rm -f "$changed_paths" "$report_candidates"' EXIT if ! git diff --name-only --diff-filter=ACMR "$diff_base" HEAD \ - -- 'tests/agentic_ts/results/*.json' >"$report_list"; then - echo "failed to select changed agentic TypeScript reports" >&2 + -- 'tests/agentic_ts/results/*.json' 'tests/npm_metadata/results/*.json' \ + "$agentic_manifest" "$npm_manifest" >"$changed_paths"; then + echo "failed to select changed performance reports" >&2 exit 1 fi + while IFS= read -r path; do + case "$path" in + "$agentic_manifest") + while read -r _ report; do + printf '%s\n' "$report" >>"$report_candidates" + done <"$agentic_manifest" + changed_reports_count=$((changed_reports_count + 1)) + ;; + "$npm_manifest") + while read -r _ report; do + printf '%s\n' "$report" >>"$report_candidates" + done <"$npm_manifest" + changed_reports_count=$((changed_reports_count + 1)) + ;; + tests/agentic_ts/results/*.json|tests/npm_metadata/results/*.json) + printf '%s\n' "$path" >>"$report_candidates" + changed_reports_count=$((changed_reports_count + 1)) + ;; + *) + echo "unexpected currentness input path: $path" >&2 + exit 1 + ;; + esac + done <"$changed_paths" + sort -u -o "$report_candidates" "$report_candidates" while IFS= read -r report; do - reports_to_check+=("$report") - reports_count=$((reports_count + 1)) - done <"$report_list" + case "$report" in + tests/agentic_ts/results/*.json) + if manifest_contains "$agentic_manifest" "$report"; then + agentic_reports_to_check+=("$report") + fi + ;; + tests/npm_metadata/results/*.json) + if manifest_contains "$npm_manifest" "$report"; then + npm_reports_to_check+=("$report") + fi + ;; + *) + echo "unexpected performance report path: $report" >&2 + exit 1 + ;; + esac + done <"$report_candidates" fi -if [[ "$event_name" == push && $reports_count -gt 0 ]]; then +if [[ "$event_name" == push && $changed_reports_count -gt 0 ]]; then read -r -a head_commit <<<"$(git rev-list --parents -n 1 HEAD)" if [[ ${#head_commit[@]} -gt 2 \ && "$(git rev-parse HEAD^1)" != "$(git rev-parse "$push_before")" ]]; then @@ -78,9 +213,16 @@ if [[ "$event_name" == push && $reports_count -gt 0 ]]; then fi fi -echo "source-ref=$source_ref" +echo "source-ref=$event_source_ref" +echo "agentic-source-ref=$agentic_source_ref" +echo "npm-source-ref=$npm_source_ref" echo "reports-to-check<> "$GITHUB_OUTPUT" - - name: Prepare pristine agentic TypeScript hash inputs - run: git worktree add --detach "$RUNNER_TEMP/agentic-ts-source" "${{ steps.agentic-ts-currentness.outputs.source-ref }}" + - name: Prepare pristine performance-report hash inputs + run: | + git worktree add --detach "$RUNNER_TEMP/agentic-ts-source" "${{ steps.agentic-ts-currentness.outputs.agentic-source-ref }}" + git worktree add --detach "$RUNNER_TEMP/npm-metadata-source" "${{ steps.agentic-ts-currentness.outputs.npm-source-ref }}" - name: Enable Golem wasmtime fork run: bash .github/scripts/enable-wasmtime-fork.sh - # Validation mode checks committed report contracts and changed-report - # content hashes; the manual measurement workloads do not run in CI. + # Validation mode checks supported committed report contracts and the content + # hashes of changed reports designated current for each suite, evaluated + # at each manifest's exact measured source; manual workloads do not run. - name: Validate agentic TypeScript reports shell: bash env: @@ -87,6 +90,14 @@ jobs: run: | AGENTIC_TS_VALIDATE_REPORTS=1 \ cargo test --test agentic_ts $CI_WASMTIME_FORK_FEATURES + - name: Validate npm release reports + shell: bash + env: + NPM_METADATA_SOURCE_ROOT: ${{ runner.temp }}/npm-metadata-source + NPM_METADATA_REPORTS_TO_CHECK: ${{ steps.agentic-ts-currentness.outputs.npm-reports-to-check }} + run: | + NPM_METADATA_VALIDATE_REPORTS=1 \ + cargo test --test npm_metadata $CI_WASMTIME_FORK_FEATURES - name: Compilation, DTS and error tests run: cargo test --test compilation --test dts --test errors $CI_WASMTIME_FORK_FEATURES -- --report-time --format ctrf --logfile target/ctrf.json - name: Local test profile contracts diff --git a/Cargo.lock b/Cargo.lock index 124f63e7..670bc923 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3528,6 +3528,7 @@ dependencies = [ "http-body", "http-body-util", "indoc", + "libc", "oxc_allocator", "oxc_ast", "oxc_parser", diff --git a/Cargo.toml b/Cargo.toml index b45dc75e..831e1e32 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,6 +42,7 @@ http = { workspace = true } http-body = { workspace = true } http-body-util = { workspace = true } indoc = { workspace = true } +libc = "0.2" pretty_assertions = "1.4.1" rand = { workspace = true } serde = { workspace = true } @@ -102,10 +103,18 @@ harness = false name = "agentic_ts" harness = false +[[test]] +name = "npm_metadata" +harness = false + [[test]] name = "typescript_transform_latency" harness = false +[[test]] +name = "esm_module_load_phases" +harness = false + [[test]] name = "migrate_config_split" harness = false diff --git a/crates/wasm-rquickjs/skeleton/src/builtin/fs.rs b/crates/wasm-rquickjs/skeleton/src/builtin/fs.rs index fd45d400..73c732ff 100644 --- a/crates/wasm-rquickjs/skeleton/src/builtin/fs.rs +++ b/crates/wasm-rquickjs/skeleton/src/builtin/fs.rs @@ -228,10 +228,20 @@ fn with_fs_mut( } fn invalidate_module_resolution_probes(ctx: &rquickjs::Ctx<'_>) { - ctx.userdata::() - .expect("runtime services not initialized") - .cjs_module_probe_session - .invalidate(); + let services = ctx + .userdata::() + .expect("runtime services not initialized"); + let _missing_package_json = services.cjs_module_probe_session.invalidate(); + #[cfg(feature = "typescript-compiler-profiling")] + if _missing_package_json > 0 + && let Some(profile) = services.execution_profile() + { + profile.increment("modules.packageJson.negativeCacheInvalidations"); + profile.add( + "modules.packageJson.negativeCacheInvalidatedEntries", + _missing_package_json as u64, + ); + } } fn normalize_mode_override(mode: u32) -> u32 { @@ -309,14 +319,99 @@ fn rename_fd_path(ctx: &rquickjs::Ctx<'_>, old_path: &str, new_path: &str) { }); } +#[derive(Clone, Copy)] +pub(crate) enum ModuleLoaderRealpathDomain { + CommonJs, + Esm, +} + pub(super) fn realpath_for_module_resolution( - _ctx: &rquickjs::Ctx<'_>, + ctx: &rquickjs::Ctx<'_>, path: &str, -) -> Option { - canonicalize_guest_path(path).ok() + domain: ModuleLoaderRealpathDomain, +) -> std::io::Result { + // Wizer has no guest preopens. Touching wasi-libc's lazy preopen cache here + // would snapshot the empty build-time filesystem into every runtime. + if crate::internal::is_wizer_active() { + return Err(wizer_enoent_io()); + } + + let services = ctx + .userdata::() + .expect("runtime services not initialized"); + #[cfg(feature = "typescript-compiler-profiling")] + let profile = services.execution_profile(); + #[cfg(feature = "typescript-compiler-profiling")] + if let Some(profile) = &profile { + profile.increment("modules.realpath.calls"); + } + + let cache = match domain { + ModuleLoaderRealpathDomain::CommonJs => &services.cjs_loader_realpath_cache, + ModuleLoaderRealpathDomain::Esm => &services.esm_loader_realpath_cache, + }; + let cached = cache.borrow().get(path).cloned(); + if let Some(resolved) = cached { + #[cfg(feature = "test-observability")] + services.record_loader_realpath_cache_hit(); + #[cfg(feature = "typescript-compiler-profiling")] + if let Some(profile) = &profile { + profile.increment("modules.realpath.cacheHits"); + } + return Ok(resolved); + } + + let resolved = canonicalize_guest_path_with_cache( + path, + Some(cache), + #[cfg(feature = "typescript-compiler-profiling")] + profile.as_deref(), + #[cfg(feature = "test-observability")] + Some(&services), + ); + #[cfg(feature = "test-observability")] + services.record_loader_realpath_system_call(); + #[cfg(feature = "typescript-compiler-profiling")] + if let Some(profile) = &profile { + profile.increment("modules.realpath.systemCalls"); + profile.increment("filesystem.realpath.calls"); + profile.increment(match &resolved { + Ok(_) => "filesystem.realpath.success", + Err(error) if error.kind() == std::io::ErrorKind::NotFound => { + "filesystem.realpath.notFound" + } + Err(_) => "filesystem.realpath.errors", + }); + } + if let Ok(resolved) = &resolved { + cache + .borrow_mut() + .insert(path.to_string(), resolved.clone()); + } + resolved } fn canonicalize_guest_path(path: &str) -> std::io::Result { + canonicalize_guest_path_with_cache( + path, + None, + #[cfg(feature = "typescript-compiler-profiling")] + None, + #[cfg(feature = "test-observability")] + None, + ) +} + +fn canonicalize_guest_path_with_cache( + path: &str, + cache: Option<&std::cell::RefCell>>, + #[cfg(feature = "typescript-compiler-profiling")] profile: Option< + &crate::internal::runtime_services::ExecutionProfile, + >, + #[cfg(feature = "test-observability")] observability: Option< + &crate::internal::runtime_services::RuntimeServices, + >, +) -> std::io::Result { if !path.starts_with('/') { return Err(std::io::Error::new( std::io::ErrorKind::InvalidInput, @@ -349,6 +444,35 @@ fn canonicalize_guest_path(path: &str) -> std::io::Result { } let current = format!("/{}", resolved.join("/")); + // Node's loader-only realpath cache also remembers confirmed non-symlink + // prefixes. Reusing those entries avoids walking shared package-directory + // prefixes for every resolved module while public realpath calls stay fresh. + #[cfg(feature = "typescript-compiler-profiling")] + if let Some(profile) = profile { + profile.increment("modules.realpath.segmentCalls"); + } + let known_hard = cache.is_some_and(|cache| { + cache + .borrow() + .get(¤t) + .is_some_and(|cached| cached == ¤t) + }); + #[cfg(feature = "test-observability")] + if let Some(observability) = observability { + observability.record_loader_realpath_segment(known_hard); + } + if known_hard { + #[cfg(feature = "typescript-compiler-profiling")] + if let Some(profile) = profile { + profile.increment("modules.realpath.prefixCacheHits"); + } + index += 1; + continue; + } + #[cfg(feature = "typescript-compiler-profiling")] + if let Some(profile) = profile { + profile.increment("modules.realpath.segmentSystemCalls"); + } let metadata = std::fs::symlink_metadata(¤t)?; if metadata.is_symlink() { symlink_count += 1; @@ -371,6 +495,9 @@ fn canonicalize_guest_path(path: &str) -> std::io::Result { todo.extend(remaining); index = 0; } else { + if let Some(cache) = cache { + cache.borrow_mut().insert(current.clone(), current); + } index += 1; } } @@ -1472,6 +1599,25 @@ pub mod native_module { } } + #[rquickjs::function] + pub fn fs_loader_realpath(ctx: Ctx<'_>, path: String) -> Object<'_> { + let result = Object::new(ctx.clone()).unwrap(); + match super::realpath_for_module_resolution( + &ctx, + &path, + super::ModuleLoaderRealpathDomain::CommonJs, + ) { + Ok(resolved) => result.set("result", resolved).unwrap(), + Err(error) => result + .set( + "error", + super::make_fs_error(&ctx, &error, "realpath", Some(&path)), + ) + .unwrap(), + } + result + } + #[rquickjs::function] pub fn fs_realpath(ctx: Ctx<'_>, path: String) -> Object<'_> { let result = Object::new(ctx.clone()).unwrap(); diff --git a/crates/wasm-rquickjs/skeleton/src/builtin/mod.rs b/crates/wasm-rquickjs/skeleton/src/builtin/mod.rs index ec837777..8e7fb149 100644 --- a/crates/wasm-rquickjs/skeleton/src/builtin/mod.rs +++ b/crates/wasm-rquickjs/skeleton/src/builtin/mod.rs @@ -111,11 +111,18 @@ mod sqlite { pub use super::sqlite_disabled::*; } -pub(crate) fn realpath_for_module_resolution( +pub(crate) fn realpath_for_cjs_module_resolution( ctx: &rquickjs::Ctx<'_>, path: &str, -) -> Option { - fs::realpath_for_module_resolution(ctx, path) +) -> std::io::Result { + fs::realpath_for_module_resolution(ctx, path, fs::ModuleLoaderRealpathDomain::CommonJs) +} + +pub(crate) fn realpath_for_esm_module_resolution( + ctx: &rquickjs::Ctx<'_>, + path: &str, +) -> std::io::Result { + fs::realpath_for_module_resolution(ctx, path, fs::ModuleLoaderRealpathDomain::Esm) } pub fn add_module_resolvers( diff --git a/crates/wasm-rquickjs/skeleton/src/builtin/module.js b/crates/wasm-rquickjs/skeleton/src/builtin/module.js index d4a64f89..42f69d7e 100644 --- a/crates/wasm-rquickjs/skeleton/src/builtin/module.js +++ b/crates/wasm-rquickjs/skeleton/src/builtin/module.js @@ -2,6 +2,7 @@ import * as pathModule from 'node:path'; import * as pathPosix from 'node:path/posix'; import * as pathWin32 from 'node:path/win32'; import * as fsModule from 'node:fs'; +import * as fsNative from '__wasm_rquickjs_builtin/fs_native'; import * as util from 'node:util'; import * as buffer from 'node:buffer'; import * as os from 'node:os'; @@ -53,6 +54,7 @@ import * as sqlite from 'node:sqlite'; import * as internalHttp from '__wasm_rquickjs_builtin/internal/http'; import { ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS } from '__wasm_rquickjs_builtin/internal/errors'; import * as internalErrors from '__wasm_rquickjs_builtin/internal/errors'; +import { createSystemError as createFsSystemError } from '__wasm_rquickjs_builtin/internal/fs/shared'; import * as internalFsUtils from '__wasm_rquickjs_builtin/internal/fs/utils'; import * as internalUrl from '__wasm_rquickjs_builtin/internal/url'; import * as internalUtil from '__wasm_rquickjs_builtin/internal/util'; @@ -736,7 +738,20 @@ function shouldPreserveSymlinks(isMainModuleLoad) { function toCjsCanonicalFilename(filename, isMainModuleLoad) { if (shouldPreserveSymlinks(isMainModuleLoad)) return filename; - return fsModule.realpathSync.native(filename); + // Node resolves against process.cwd() before consulting its loader realpath + // cache. Keep the native bridge limited to absolute, normalized guest paths. + const normalized = pathModule.resolve(filename); + const outcome = fsNative.fs_loader_realpath(normalized); + if (outcome.error) throw createFsSystemError(outcome.error); + return outcome.result; +} + +if (testObservabilityEnabledNative()) { + Object.defineProperty(globalThis, '__wasm_rquickjs_test_cjs_canonical_filename', { + value: filename => toCjsCanonicalFilename(filename, false), + writable: false, + configurable: false, + }); } function tryReadFile(filename) { @@ -1658,8 +1673,18 @@ function registerSourceMapForCjs(filename, source, moduleObject, options = undef } const sourceText = String(source); - const url = extractSourceMapURL(sourceText); - if (url === undefined) { + if (sourceText.indexOf('sourceMappingURL=') === -1) { + delete registry[filename]; + return; + } + // TypeScript builds already carry SWC, so they use its lexer for exact + // directive detection. Other builds retain the JS scanner rather than + // shipping the TypeScript parser solely for source-map registration. + const nativeExtractor = wasmRquickjsModuleGlobalThis.__wasm_rquickjs_extract_source_map_url; + const url = typeof nativeExtractor === 'function' + ? nativeExtractor(sourceText) + : extractSourceMapURL(sourceText); + if (url === undefined || url === null || url === '') { delete registry[filename]; return; } diff --git a/crates/wasm-rquickjs/skeleton/src/builtin_p3.rs b/crates/wasm-rquickjs/skeleton/src/builtin_p3.rs index 36525516..00523dfa 100644 --- a/crates/wasm-rquickjs/skeleton/src/builtin_p3.rs +++ b/crates/wasm-rquickjs/skeleton/src/builtin_p3.rs @@ -179,11 +179,18 @@ mod zlib { #[path = "builtin/websocket.rs"] mod websocket; -pub(crate) fn realpath_for_module_resolution( +pub(crate) fn realpath_for_cjs_module_resolution( ctx: &rquickjs::Ctx<'_>, path: &str, -) -> Option { - fs::realpath_for_module_resolution(ctx, path) +) -> std::io::Result { + fs::realpath_for_module_resolution(ctx, path, fs::ModuleLoaderRealpathDomain::CommonJs) +} + +pub(crate) fn realpath_for_esm_module_resolution( + ctx: &rquickjs::Ctx<'_>, + path: &str, +) -> std::io::Result { + fs::realpath_for_module_resolution(ctx, path, fs::ModuleLoaderRealpathDomain::Esm) } /// Registers builtin native and JavaScript module names with the resolver. diff --git a/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs b/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs index 8bc1f59e..c4363343 100644 --- a/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs +++ b/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs @@ -1256,12 +1256,14 @@ fn process_import_attrs( continue; } - if let Some(ch) = source[i..].chars().next() { - result.push(ch); - i += ch.len_utf8(); - } else { - break; - } + let start = i; + let next = next_char_boundary(source, i); + i = bytes[next..] + .iter() + .position(|byte| matches!(byte, b'i' | b'\'' | b'"' | b'`' | b'/')) + .map(|offset| next + offset) + .unwrap_or(len); + result.push_str(&source[start..i]); } ProcessedStaticImportAttrs { @@ -2184,6 +2186,10 @@ fn collect_declared_cjs_globals_in_esm(source: &str) -> Vec { let mut i = 0usize; let mut declared = Vec::::new(); while i < bytes.len() { + if bytes[i].is_ascii_whitespace() { + i = skip_ascii_whitespace(source, i); + continue; + } if let Some(next) = skip_esm_cjs_global_scanner_span(source, i) { i = next; continue; @@ -2241,6 +2247,10 @@ fn find_bare_cjs_global_in_esm_among( scopes.pop(); } + if bytes[i].is_ascii_whitespace() { + i = skip_ascii_whitespace(source, i); + continue; + } if let Some(next) = skip_esm_cjs_global_scanner_span(source, i) { i = next; continue; @@ -3338,8 +3348,12 @@ impl Loader for StaticRegisteredFileUrlLoader { return Err(Error::new_loading(path)); }; let fs_path = CjsEvalResolver::normalize_path(std::path::Path::new(&file_path)); - let source_path = crate::builtin::realpath_for_module_resolution(ctx, &fs_path) - .unwrap_or_else(|| fs_path.clone()); + let source_path = if NodeFileResolver::has_exec_argv_flag(ctx, "--preserve-symlinks") { + fs_path.clone() + } else { + crate::builtin::realpath_for_esm_module_resolution(ctx, &fs_path) + .unwrap_or_else(|_| fs_path.clone()) + }; declare_esm_file_module( ctx, path, @@ -3654,8 +3668,8 @@ impl NodeFileResolver { if preserve_symlinks { return normalized.to_string(); } - crate::builtin::realpath_for_module_resolution(ctx, normalized) - .unwrap_or_else(|| normalized.to_string()) + crate::builtin::realpath_for_esm_module_resolution(ctx, normalized) + .unwrap_or_else(|_| normalized.to_string()) } fn module_resolution_is_file(ctx: &Ctx<'_>, normalized: &str) -> bool { @@ -4116,9 +4130,12 @@ enum ModulePathClassification { struct CjsModuleProbeSessionState { depth: usize, entries: HashMap, + missing_package_json: HashSet, #[cfg(feature = "test-observability")] hit_count: u64, #[cfg(feature = "test-observability")] + missing_package_json_hit_count: u64, + #[cfg(feature = "test-observability")] bypass_cache: bool, } @@ -4141,9 +4158,11 @@ impl CjsModuleProbeSessionState { /// outer main-module compile. This runtime also brackets an outer `createRequire()` /// graph so real ESM-to-CJS package workloads benefit, but deliberately invalidates /// observations after filesystem mutations instead of exposing Node's stale result. -/// Missing observations are never retained, and sibling QuickJS runtimes never share -/// this RuntimeServices-owned state. Rust depth keeps the private runner reentrant; -/// the normal JS adapter crosses the bridge only at its own outermost depth. +/// Missing path classifications are never retained. Missing package metadata is retained only +/// for the same outer graph and cleared after filesystem mutations, so packages created by the +/// running program become visible. Sibling QuickJS runtimes never share this RuntimeServices-owned +/// state. Rust depth keeps the private runner reentrant; the normal JS adapter crosses the bridge +/// only at its own outermost depth. #[derive(Clone, Default)] pub(crate) struct CjsModuleProbeSession(Rc>); @@ -4153,14 +4172,19 @@ struct ModulePathProbe { } impl CjsModuleProbeSession { - pub(crate) fn invalidate(&self) { - self.0.borrow_mut().entries.clear(); + pub(crate) fn invalidate(&self) -> usize { + let mut state = self.0.borrow_mut(); + state.entries.clear(); + let missing_package_json = state.missing_package_json.len(); + state.missing_package_json.clear(); + missing_package_json } fn begin(&self) { let mut state = self.0.borrow_mut(); if state.depth == 0 { state.entries.clear(); + state.missing_package_json.clear(); } state.depth = state.depth.saturating_add(1); } @@ -4169,12 +4193,37 @@ impl CjsModuleProbeSession { let mut state = self.0.borrow_mut(); if state.depth == 0 { state.entries.clear(); + state.missing_package_json.clear(); return; } state.depth -= 1; if state.depth == 0 { state.entries.clear(); + state.missing_package_json.clear(); + } + } + + fn missing_package_json_cached(&self, normalized: &str) -> bool { + #[cfg(feature = "test-observability")] + let mut state = self.0.borrow_mut(); + #[cfg(not(feature = "test-observability"))] + let state = self.0.borrow(); + let enabled = state.depth > 0 && state.cache_enabled(); + let hit = enabled && state.missing_package_json.contains(normalized); + #[cfg(feature = "test-observability")] + if hit { + state.missing_package_json_hit_count = + state.missing_package_json_hit_count.saturating_add(1); } + hit + } + + fn remember_missing_package_json(&self, normalized: String) -> bool { + let mut state = self.0.borrow_mut(); + if state.depth == 0 || !state.cache_enabled() { + return false; + } + state.missing_package_json.insert(normalized) } fn probe(&self, normalized: &str) -> ModulePathProbe { @@ -4226,7 +4275,14 @@ impl CjsModuleProbeSession { #[cfg(feature = "test-observability")] fn reset_hit_count(&self) { - self.0.borrow_mut().hit_count = 0; + let mut state = self.0.borrow_mut(); + state.hit_count = 0; + state.missing_package_json_hit_count = 0; + } + + #[cfg(feature = "test-observability")] + fn missing_package_json_hit_count(&self) -> u64 { + self.0.borrow().missing_package_json_hit_count } #[cfg(feature = "test-observability")] @@ -4234,6 +4290,7 @@ impl CjsModuleProbeSession { let mut state = self.0.borrow_mut(); state.bypass_cache = !enabled; state.entries.clear(); + state.missing_package_json.clear(); } } @@ -4376,6 +4433,14 @@ fn reset_cjs_module_probe_session_hit_count(ctx: Ctx<'_>) { .reset_hit_count(); } +#[cfg(feature = "test-observability")] +fn cjs_missing_package_json_cache_hit_count(ctx: Ctx<'_>) -> u64 { + ctx.userdata::() + .expect("runtime services not initialized") + .cjs_module_probe_session + .missing_package_json_hit_count() +} + #[cfg(feature = "test-observability")] fn set_cjs_module_probe_session_enabled(ctx: Ctx<'_>, enabled: bool) { ctx.userdata::() @@ -4384,6 +4449,59 @@ fn set_cjs_module_probe_session_enabled(ctx: Ctx<'_>, enabled: bool) { .set_enabled(enabled); } +#[cfg(feature = "test-observability")] +fn loader_realpath_cache_hit_count(ctx: Ctx<'_>) -> u64 { + ctx.userdata::() + .expect("runtime services not initialized") + .loader_realpath_cache_hit_count() +} + +#[cfg(feature = "test-observability")] +fn reset_loader_realpath_cache_hit_count(ctx: Ctx<'_>) { + ctx.userdata::() + .expect("runtime services not initialized") + .reset_loader_realpath_cache_hit_count(); +} + +#[cfg(feature = "test-observability")] +fn loader_realpath_system_call_count(ctx: Ctx<'_>) -> u64 { + ctx.userdata::() + .expect("runtime services not initialized") + .loader_realpath_system_call_count() +} + +#[cfg(feature = "test-observability")] +fn reset_loader_realpath_system_call_count(ctx: Ctx<'_>) { + ctx.userdata::() + .expect("runtime services not initialized") + .reset_loader_realpath_system_call_count(); +} + +#[cfg(feature = "test-observability")] +fn loader_realpath_segment_counts(ctx: Ctx<'_>) -> rquickjs::Result> { + let counts = ctx + .userdata::() + .expect("runtime services not initialized") + .loader_realpath_segment_counts(); + let result = Object::new(ctx)?; + result.set("calls", counts.0)?; + result.set("prefixCacheHits", counts.1)?; + result.set("systemCalls", counts.2)?; + Ok(result) +} + +#[cfg(feature = "test-observability")] +fn reset_loader_realpath_segment_counts(ctx: Ctx<'_>) { + ctx.userdata::() + .expect("runtime services not initialized") + .reset_loader_realpath_segment_counts(); +} + +#[cfg(feature = "test-observability")] +fn test_esm_canonical_filename(ctx: Ctx<'_>, path: String) -> Option { + crate::builtin::realpath_for_esm_module_resolution(&ctx, &path).ok() +} + struct NodePackageWarning { message: String, code: &'static str, @@ -4774,6 +4892,10 @@ impl NodeModulesResolver { resolution: &NodePackageResolutionContext<'_, '_>, ) -> Result>, NodePackageResolveError> { let cache_key = CjsEvalResolver::normalize_path(pkg_path); + #[cfg(feature = "typescript-compiler-profiling")] + if let Some(profile) = &resolution.profile { + profile.increment("modules.packageJson.calls"); + } if let Some(cached) = resolution.package_json_cache.get(&cache_key) { #[cfg(feature = "typescript-compiler-profiling")] if let Some(profile) = &resolution.profile { @@ -4781,6 +4903,16 @@ impl NodeModulesResolver { } return Ok(Some(cached)); } + if resolution + .probe_session + .missing_package_json_cached(&cache_key) + { + #[cfg(feature = "typescript-compiler-profiling")] + if let Some(profile) = &resolution.profile { + profile.increment("modules.packageJson.negativeCacheHits"); + } + return Ok(None); + } match std::fs::read_to_string(pkg_path) { Ok(pkg_content) => { #[cfg(feature = "typescript-compiler-profiling")] @@ -4799,15 +4931,25 @@ impl NodeModulesResolver { .insert(cache_key, package.clone()); Ok(Some(package)) } - Err(_error) => { + Err(error) => { #[cfg(feature = "typescript-compiler-profiling")] if let Some(profile) = &resolution.profile { - profile.increment(if _error.kind() == std::io::ErrorKind::NotFound { + profile.increment(if error.kind() == std::io::ErrorKind::NotFound { "modules.packageJson.notFound" } else { "modules.packageJson.errors" }); } + if error.kind() == std::io::ErrorKind::NotFound + && resolution + .probe_session + .remember_missing_package_json(cache_key) + { + #[cfg(feature = "typescript-compiler-profiling")] + if let Some(profile) = &resolution.profile { + profile.increment("modules.packageJson.negativeCacheEntries"); + } + } Ok(None) } } @@ -6926,6 +7068,33 @@ impl Resolver for NodeModulesResolver { /// This enables ESM modules to import CJS packages from `node_modules`. struct CjsCompatLoader; +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +enum CjsCompatFormatPolicy { + CommonJs, + Esm, + DetectFromSource, +} + +fn cjs_compat_format_policy( + has_cached_cjs_typescript: bool, + fs_path: &str, + is_cjs_ext: bool, + is_module_package_js: bool, + is_commonjs_package_js: bool, +) -> CjsCompatFormatPolicy { + if has_cached_cjs_typescript || fs_path.ends_with(".cts") || is_cjs_ext { + CjsCompatFormatPolicy::CommonJs + } else if fs_path.ends_with(".mts") { + CjsCompatFormatPolicy::Esm + } else if is_commonjs_package_js { + CjsCompatFormatPolicy::CommonJs + } else if is_module_package_js { + CjsCompatFormatPolicy::Esm + } else { + CjsCompatFormatPolicy::DetectFromSource + } +} + #[cfg(feature = "typescript-runtime")] fn is_typescript_module_path(path: &str) -> bool { matches!( @@ -7100,6 +7269,14 @@ fn skip_ws_comments(source: &str, pos: usize) -> usize { skip_ws_comments_impl::(source, pos).0 } +fn skip_ascii_whitespace(source: &str, mut pos: usize) -> usize { + let bytes = source.as_bytes(); + while pos < bytes.len() && bytes[pos].is_ascii_whitespace() { + pos += 1; + } + pos +} + fn skip_ws_comments_with_line_terminator(source: &str, pos: usize) -> (usize, bool) { skip_ws_comments_impl::(source, pos) } @@ -8951,18 +9128,24 @@ fn analyze_cjs_exports(source: &str) -> CjsExportAnalysis { let mut analysis = CjsExportAnalysis::default(); let mut require_bindings = HashMap::::new(); let statement_starts = statement_starts(source); - let _ = scan_code_positions_with_brace_depth(source, true, |i, _, brace_depth| { - if let Some((name, next)) = parse_export_member(source, i) { + let _ = scan_code_positions_with_brace_depth(source, true, |i, current, brace_depth| { + let starts_export_target = matches!(current, b'e' | b'm'); + if starts_export_target + && let Some((name, next)) = parse_export_member(source, i) + { analysis.is_cjs = true; add_unique(&mut analysis.exports, name); return ControlFlow::Continue(Some(next)); } - if let Some((name, next)) = parse_define_property_export(source, i) { + if current == b'O' + && let Some((name, next)) = parse_define_property_export(source, i) + { analysis.is_cjs = true; add_unique(&mut analysis.exports, name); return ControlFlow::Continue(Some(next)); } if brace_depth == 0 + && matches!(current, b'c' | b'l' | b'v') && statement_starts.get(i).copied().unwrap_or(false) && let Some((binding, specifier, next)) = parse_require_binding(source, i) { @@ -8970,19 +9153,25 @@ fn analyze_cjs_exports(source: &str) -> CjsExportAnalysis { return ControlFlow::Continue(Some(next)); } if brace_depth == 0 + && is_ident_start(current) && let Some((specifier, next)) = parse_export_star_reexport(source, i) { analysis.is_cjs = true; add_unique(&mut analysis.reexports, specifier); return ControlFlow::Continue(Some(next)); } - if let Some((specifier, next)) = parse_module_exports_reexport(source, i) { + if current == b'm' + && let Some((specifier, next)) = parse_module_exports_reexport(source, i) + { analysis.is_cjs = true; analysis.reexports.clear(); add_unique(&mut analysis.reexports, specifier); return ControlFlow::Continue(Some(next)); } - if let Some((exports, reexports, next)) = parse_module_exports_object_literal(source, i) { + if current == b'm' + && let Some((exports, reexports, next)) = + parse_module_exports_object_literal(source, i) + { analysis.is_cjs = true; analysis.reexports.clear(); for name in exports { @@ -8993,11 +9182,14 @@ fn analyze_cjs_exports(source: &str) -> CjsExportAnalysis { } return ControlFlow::Continue(Some(next)); } - if let Some(next) = parse_module_exports_assignment(source, i) { + if current == b'm' + && let Some(next) = parse_module_exports_assignment(source, i) + { analysis.is_cjs = true; return ControlFlow::Continue(Some(next)); } if brace_depth == 0 + && current == b'O' && statement_starts.get(i).copied().unwrap_or(false) && let Some((specifier, next)) = parse_object_keys_reexport(source, i, &require_bindings) @@ -9093,7 +9285,8 @@ fn is_cjs_analysis_source_path(path: &str) -> bool { } fn canonical_cjs_analysis_path(ctx: &Ctx<'_>, path: &str) -> String { - crate::builtin::realpath_for_module_resolution(ctx, path).unwrap_or_else(|| path.to_string()) + crate::builtin::realpath_for_cjs_module_resolution(ctx, path) + .unwrap_or_else(|_| path.to_string()) } #[derive(Clone)] @@ -9640,19 +9833,26 @@ impl Loader for CjsCompatLoader { let url = path_to_file_url(path); let force_module = require_esm_forced_module(ctx, &fs_abs_path, &url); - let cjs_url = url.clone(); - let has_esm_syntax = force_module - || raw_typescript_looks_esm - || (!is_typescript - && (source_looks_like_esm(&source) - || has_cjs_wrapper_lexical_redeclaration(&source))); // .cjs files are always CommonJS; JS-like files outside a module package // remain CommonJS unless syntax detection finds ESM. - let is_cjs = has_cached_cjs_typescript - || fs_path.ends_with(".cts") - || is_cjs_ext - || (!fs_path.ends_with(".mts") - && (is_commonjs_package_js || (!is_module_package_js && !has_esm_syntax))); + let is_cjs = match cjs_compat_format_policy( + has_cached_cjs_typescript, + fs_path, + is_cjs_ext, + is_module_package_js, + is_commonjs_package_js, + ) { + CjsCompatFormatPolicy::CommonJs => true, + CjsCompatFormatPolicy::Esm => false, + CjsCompatFormatPolicy::DetectFromSource => { + let has_esm_syntax = force_module + || raw_typescript_looks_esm + || (!is_typescript + && (source_looks_like_esm(&source) + || has_cjs_wrapper_lexical_redeclaration(&source))); + !has_esm_syntax + } + }; if !is_cjs { let preflight_mode = if fs_path.ends_with(".js") && is_module_package_js { EsmFilePreflightMode::PackageTypeModuleJs @@ -9668,6 +9868,7 @@ impl Loader for CjsCompatLoader { preflight_mode, ); } + let cjs_url = url; let cjs_conditions = NodeModulesResolver::conditions_from_global( ctx, @@ -10057,8 +10258,12 @@ fn module_filesystem_path(path: &str) -> &str { fn module_source_filesystem_path(ctx: &Ctx<'_>, path: &str) -> String { let fs_path = module_filesystem_path(path); - crate::builtin::realpath_for_module_resolution(ctx, fs_path) - .unwrap_or_else(|| fs_path.to_string()) + if NodeFileResolver::has_exec_argv_flag(ctx, "--preserve-symlinks") { + fs_path.to_string() + } else { + crate::builtin::realpath_for_esm_module_resolution(ctx, fs_path) + .unwrap_or_else(|_| fs_path.to_string()) + } } fn read_module_source_or_throw<'js>( @@ -10726,6 +10931,16 @@ fn rewrite_cjs_direct_eval( i = next; continue; } + if bytes[i] != b'e' { + let Some(next) = bytes[i + 1..] + .iter() + .position(|byte| matches!(byte, b'e' | b'\'' | b'"' | b'`' | b'/')) + else { + break; + }; + i += next + 1; + continue; + } let Some(eval_end) = parse_ident_name(source, i, "eval") else { i = next_char_boundary(source, i); continue; @@ -10825,7 +11040,12 @@ fn rewrite_cjs_template_expressions( i = next; continue; } - i = next_char_boundary(source, i); + let next = next_char_boundary(source, i); + i = bytes[next..] + .iter() + .position(|byte| matches!(byte, b'\'' | b'"' | b'`' | b'/')) + .map(|offset| next + offset) + .unwrap_or(bytes.len()); continue; } i += 1; @@ -11532,6 +11752,18 @@ pub(crate) async fn initialize_module_loading(rt: &AsyncRuntime, ctx: &AsyncCont ) .expect("Failed to initialize CJS source preparer"); + #[cfg(feature = "typescript-runtime")] + set_non_replaceable_global( + &global, + "__wasm_rquickjs_extract_source_map_url", + Function::new( + ctx.clone(), + super::typescript::extract_source_map_url, + ) + .expect("Failed to create source map URL extractor"), + ) + .expect("Failed to initialize source map URL extractor"); + set_non_replaceable_global( &global, "__wasm_rquickjs_module_has_exec_argv_flag", @@ -11622,6 +11854,15 @@ pub(crate) async fn initialize_module_loading(rt: &AsyncRuntime, ctx: &AsyncCont ) .expect("Failed to initialize CJS module probe-session hit counter reset"); + #[cfg(feature = "test-observability")] + set_non_replaceable_global( + &global, + "__wasm_rquickjs_get_cjs_missing_package_json_cache_hit_count", + Function::new(ctx.clone(), cjs_missing_package_json_cache_hit_count) + .expect("Failed to create CJS missing package metadata hit counter"), + ) + .expect("Failed to initialize CJS missing package metadata hit counter"); + #[cfg(feature = "test-observability")] set_non_replaceable_global( &global, @@ -11631,6 +11872,69 @@ pub(crate) async fn initialize_module_loading(rt: &AsyncRuntime, ctx: &AsyncCont ) .expect("Failed to initialize CJS module probe-session test control"); + #[cfg(feature = "test-observability")] + set_non_replaceable_global( + &global, + "__wasm_rquickjs_get_loader_realpath_cache_hit_count", + Function::new(ctx.clone(), loader_realpath_cache_hit_count) + .expect("Failed to create loader realpath cache hit counter"), + ) + .expect("Failed to initialize loader realpath cache hit counter"); + + #[cfg(feature = "test-observability")] + set_non_replaceable_global( + &global, + "__wasm_rquickjs_reset_loader_realpath_cache_hit_count", + Function::new(ctx.clone(), reset_loader_realpath_cache_hit_count) + .expect("Failed to create loader realpath cache hit counter reset"), + ) + .expect("Failed to initialize loader realpath cache hit counter reset"); + + #[cfg(feature = "test-observability")] + set_non_replaceable_global( + &global, + "__wasm_rquickjs_get_loader_realpath_system_call_count", + Function::new(ctx.clone(), loader_realpath_system_call_count) + .expect("Failed to create loader realpath system-call counter"), + ) + .expect("Failed to initialize loader realpath system-call counter"); + + #[cfg(feature = "test-observability")] + set_non_replaceable_global( + &global, + "__wasm_rquickjs_reset_loader_realpath_system_call_count", + Function::new(ctx.clone(), reset_loader_realpath_system_call_count) + .expect("Failed to create loader realpath system-call counter reset"), + ) + .expect("Failed to initialize loader realpath system-call counter reset"); + + #[cfg(feature = "test-observability")] + set_non_replaceable_global( + &global, + "__wasm_rquickjs_get_loader_realpath_segment_counts", + Function::new(ctx.clone(), loader_realpath_segment_counts) + .expect("Failed to create loader realpath segment counters"), + ) + .expect("Failed to initialize loader realpath segment counters"); + + #[cfg(feature = "test-observability")] + set_non_replaceable_global( + &global, + "__wasm_rquickjs_reset_loader_realpath_segment_counts", + Function::new(ctx.clone(), reset_loader_realpath_segment_counts) + .expect("Failed to create loader realpath segment counter reset"), + ) + .expect("Failed to initialize loader realpath segment counter reset"); + + #[cfg(feature = "test-observability")] + set_non_replaceable_global( + &global, + "__wasm_rquickjs_test_esm_canonical_filename", + Function::new(ctx.clone(), test_esm_canonical_filename) + .expect("Failed to create ESM canonical filename test helper"), + ) + .expect("Failed to initialize ESM canonical filename test helper"); + set_non_replaceable_global( &global, "__wasm_rquickjs_cjs_resolve_package_self_reference", @@ -11691,6 +11995,9 @@ pub(crate) async fn initialize_module_loading(rt: &AsyncRuntime, ctx: &AsyncCont } fn rewrite_import_meta_main(source: &str, replacement: &str) -> String { + if !source.contains("import") { + return source.to_string(); + } let mut spans = Vec::new(); let _ = scan_code_positions(source, true, |i, _| { if let Some(end) = parse_import_meta_main_span(source, i) { @@ -11931,6 +12238,38 @@ impl Loader for JsonFileLoader { mod cjs_export_analyzer_tests { use super::*; + #[test] + fn cjs_compat_format_policy_preserves_fixed_format_precedence() { + assert_eq!( + cjs_compat_format_policy(true, "/app/value.mts", false, true, false), + CjsCompatFormatPolicy::CommonJs + ); + assert_eq!( + cjs_compat_format_policy(false, "/app/value.cts", false, true, false), + CjsCompatFormatPolicy::CommonJs + ); + assert_eq!( + cjs_compat_format_policy(false, "/app/value.cjs", true, true, false), + CjsCompatFormatPolicy::CommonJs + ); + assert_eq!( + cjs_compat_format_policy(false, "/app/value.mts", false, false, true), + CjsCompatFormatPolicy::Esm + ); + assert_eq!( + cjs_compat_format_policy(false, "/app/value.js", false, false, true), + CjsCompatFormatPolicy::CommonJs + ); + assert_eq!( + cjs_compat_format_policy(false, "/app/value.js", false, true, false), + CjsCompatFormatPolicy::Esm + ); + assert_eq!( + cjs_compat_format_policy(false, "/app/value.js", false, false, false), + CjsCompatFormatPolicy::DetectFromSource + ); + } + #[test] fn data_url_separator_uses_first_comma() { assert_eq!( @@ -12550,6 +12889,19 @@ import "./dep.js" withあ; ); } + #[test] + fn dense_whitespace_keeps_esm_scanner_results() { + let padding = " \n\t\r".repeat(16_384); + let source = format!("{padding}export default 42;"); + + assert_cjs_global(&source, None); + assert!(collect_declared_cjs_globals_in_esm(&source).is_empty()); + assert_eq!(rewrite_import_meta_main(&source, "false"), source); + + let with_require = format!("{padding}export default require;"); + assert_cjs_global(&with_require, Some("require")); + } + #[test] fn package_type_diagnostics_ignore_local_exports_binding() { assert!( diff --git a/crates/wasm-rquickjs/skeleton/src/internal/runtime_services.rs b/crates/wasm-rquickjs/skeleton/src/internal/runtime_services.rs index 050f369c..679033d0 100644 --- a/crates/wasm-rquickjs/skeleton/src/internal/runtime_services.rs +++ b/crates/wasm-rquickjs/skeleton/src/internal/runtime_services.rs @@ -89,6 +89,18 @@ pub(crate) struct RuntimeServices { pub(crate) node_package_deprecation_warnings: RefCell>, pub(crate) package_json_cache: super::module_loading::PackageJsonCache, pub(crate) cjs_module_probe_session: super::module_loading::CjsModuleProbeSession, + pub(crate) cjs_loader_realpath_cache: RefCell>, + pub(crate) esm_loader_realpath_cache: RefCell>, + #[cfg(feature = "test-observability")] + loader_realpath_cache_hit_count: Cell, + #[cfg(feature = "test-observability")] + loader_realpath_system_call_count: Cell, + #[cfg(feature = "test-observability")] + loader_realpath_segment_call_count: Cell, + #[cfg(feature = "test-observability")] + loader_realpath_prefix_cache_hit_count: Cell, + #[cfg(feature = "test-observability")] + loader_realpath_segment_system_call_count: Cell, pub(crate) process: ProcessServices, pub(crate) fs: RefCell, output: RefCell>, @@ -106,6 +118,18 @@ impl Default for RuntimeServices { node_package_deprecation_warnings: RefCell::default(), package_json_cache: Default::default(), cjs_module_probe_session: Default::default(), + cjs_loader_realpath_cache: RefCell::default(), + esm_loader_realpath_cache: RefCell::default(), + #[cfg(feature = "test-observability")] + loader_realpath_cache_hit_count: Cell::new(0), + #[cfg(feature = "test-observability")] + loader_realpath_system_call_count: Cell::new(0), + #[cfg(feature = "test-observability")] + loader_realpath_segment_call_count: Cell::new(0), + #[cfg(feature = "test-observability")] + loader_realpath_prefix_cache_hit_count: Cell::new(0), + #[cfg(feature = "test-observability")] + loader_realpath_segment_system_call_count: Cell::new(0), process: ProcessServices::default(), fs: RefCell::new(FsServices::default()), output: RefCell::new(Rc::new(ComponentOutputSink)), @@ -289,6 +313,72 @@ impl RuntimeOutputSink for ComponentOutputSink { } impl RuntimeServices { + #[cfg(feature = "test-observability")] + pub(crate) fn record_loader_realpath_cache_hit(&self) { + self.loader_realpath_cache_hit_count + .set(self.loader_realpath_cache_hit_count.get().saturating_add(1)); + } + + #[cfg(feature = "test-observability")] + pub(crate) fn loader_realpath_cache_hit_count(&self) -> u64 { + self.loader_realpath_cache_hit_count.get() + } + + #[cfg(feature = "test-observability")] + pub(crate) fn reset_loader_realpath_cache_hit_count(&self) { + self.loader_realpath_cache_hit_count.set(0); + } + + #[cfg(feature = "test-observability")] + pub(crate) fn record_loader_realpath_system_call(&self) { + self.loader_realpath_system_call_count.set( + self.loader_realpath_system_call_count + .get() + .saturating_add(1), + ); + } + + #[cfg(feature = "test-observability")] + pub(crate) fn loader_realpath_system_call_count(&self) -> u64 { + self.loader_realpath_system_call_count.get() + } + + #[cfg(feature = "test-observability")] + pub(crate) fn reset_loader_realpath_system_call_count(&self) { + self.loader_realpath_system_call_count.set(0); + } + + #[cfg(feature = "test-observability")] + pub(crate) fn record_loader_realpath_segment(&self, prefix_cache_hit: bool) { + self.loader_realpath_segment_call_count.set( + self.loader_realpath_segment_call_count + .get() + .saturating_add(1), + ); + let counter = if prefix_cache_hit { + &self.loader_realpath_prefix_cache_hit_count + } else { + &self.loader_realpath_segment_system_call_count + }; + counter.set(counter.get().saturating_add(1)); + } + + #[cfg(feature = "test-observability")] + pub(crate) fn loader_realpath_segment_counts(&self) -> (u64, u64, u64) { + ( + self.loader_realpath_segment_call_count.get(), + self.loader_realpath_prefix_cache_hit_count.get(), + self.loader_realpath_segment_system_call_count.get(), + ) + } + + #[cfg(feature = "test-observability")] + pub(crate) fn reset_loader_realpath_segment_counts(&self) { + self.loader_realpath_segment_call_count.set(0); + self.loader_realpath_prefix_cache_hit_count.set(0); + self.loader_realpath_segment_system_call_count.set(0); + } + pub(crate) fn output_sink(&self) -> Rc { self.output.borrow().clone() } diff --git a/crates/wasm-rquickjs/skeleton/src/internal/typescript.rs b/crates/wasm-rquickjs/skeleton/src/internal/typescript.rs index af275993..2d7e32dd 100644 --- a/crates/wasm-rquickjs/skeleton/src/internal/typescript.rs +++ b/crates/wasm-rquickjs/skeleton/src/internal/typescript.rs @@ -5,6 +5,7 @@ use base64ct::Encoding; use rquickjs::{Ctx, Function as JsFunction}; use swc_common::{ FileName, GLOBALS, Globals, SourceMap, + comments::{CommentKind, SingleThreadedComments}, errors::{HANDLER, Handler}, sync::Lrc, }; @@ -12,7 +13,7 @@ use swc_ecma_ast::{ ArrowExpr, AwaitExpr, Decl, EsVersion, ForOfStmt, Function, MetaPropExpr, MetaPropKind, ModuleDecl, ModuleItem, ObjectPatProp, Pat, Stmt, UsingDecl, VarDeclKind, }; -use swc_ecma_parser::{Parser, StringInput, Syntax, TsSyntax, lexer::Lexer}; +use swc_ecma_parser::{EsSyntax, Parser, StringInput, Syntax, TsSyntax, lexer::Lexer}; use swc_ecma_visit::{Visit, VisitWith}; use swc_ts_fast_strip::{ErrorCode, Mode, Options, operate}; @@ -41,6 +42,69 @@ pub(crate) fn source_maps_enabled(ctx: &Ctx<'_>) -> bool { .unwrap_or(false) } +pub(crate) fn extract_source_map_url(source: String) -> Option { + if !source.contains("sourceMappingURL=") { + return None; + } + + let source_map: Lrc = Default::default(); + let source_file = source_map.new_source_file(FileName::Anon.into(), source); + let comments = SingleThreadedComments::default(); + let lexer = Lexer::new( + Syntax::Es(EsSyntax::default()), + EsVersion::EsNext, + StringInput::from(&*source_file), + Some(&comments), + ); + for _ in lexer {} + + let (leading, trailing) = comments.borrow_all(); + leading + .values() + .chain(trailing.values()) + .flatten() + .filter(|comment| comment.kind == CommentKind::Line) + .filter_map(|comment| { + source_map_url_from_comment(comment.text.as_ref()).map(|url| (comment.span.lo.0, url)) + }) + .max_by_key(|(position, _)| *position) + .map(|(_, url)| url) +} + +fn source_map_url_from_comment(comment: &str) -> Option { + let mut chars = comment.chars(); + if !matches!(chars.next(), Some('#' | '@')) { + return None; + } + if !matches!(chars.next(), Some(separator) if is_ecmascript_whitespace(separator)) { + return None; + } + let rest = chars.as_str(); + let value = rest.strip_prefix("sourceMappingURL=")?; + let value_end = value + .find(is_ecmascript_whitespace_or_line_terminator) + .unwrap_or(value.len()); + if !value[value_end..] + .chars() + .all(is_ecmascript_whitespace_or_line_terminator) + { + return None; + } + Some(value[..value_end].to_string()) +} + +fn is_ecmascript_whitespace(value: char) -> bool { + matches!( + value, + '\u{0009}' | '\u{000b}' | '\u{000c}' | '\u{0020}' | '\u{00a0}' | '\u{1680}' | '\u{2000}' + ..='\u{200a}' | '\u{202f}' | '\u{205f}' | '\u{3000}' | '\u{feff}' + ) +} + +fn is_ecmascript_whitespace_or_line_terminator(value: char) -> bool { + is_ecmascript_whitespace(value) || matches!(value, '\n' | '\r' | '\u{2028}' | '\u{2029}') +} + pub(crate) fn source_uses_esm_format(source: &str, filename: &str) -> Result { let source_map: Lrc = Default::default(); let source_file = source_map.new_source_file( @@ -355,7 +419,52 @@ fn typescript_error_code(code: ErrorCode) -> &'static str { #[cfg(test)] mod tests { - use super::{TypeScriptMode, source_uses_esm_format, transform}; + use super::{TypeScriptMode, extract_source_map_url, source_uses_esm_format, transform}; + + #[test] + fn source_map_url_comes_from_the_last_line_comment() { + assert_eq!( + extract_source_map_url( + "const ignored = '//# sourceMappingURL=string.map';\n//# sourceMappingURL=first.map\n//# sourceMappingURL=last.map" + .to_string() + ), + Some("last.map".to_string()) + ); + assert_eq!( + extract_source_map_url( + "const value = `//# sourceMappingURL=template.map`;".to_string() + ), + None + ); + assert_eq!( + extract_source_map_url("//#\u{2003}sourceMappingURL=unicode.map".to_string()), + Some("unicode.map".to_string()) + ); + assert_eq!( + extract_source_map_url("//#\u{0085}sourceMappingURL=nel.map".to_string()), + None + ); + assert_eq!( + extract_source_map_url("//# sourceMappingURL=valid.map\u{feff}".to_string()), + Some("valid.map".to_string()) + ); + assert_eq!( + extract_source_map_url("//# sourceMappingURL=invalid.map\u{0085}".to_string()), + Some("invalid.map\u{0085}".to_string()) + ); + assert_eq!( + extract_source_map_url( + "//# sourceMappingURL=valid.map\n//# sourceMappingURL=".to_string() + ), + Some(String::new()) + ); + assert_eq!( + extract_source_map_url( + "//# sourceMappingURL=\n//# sourceMappingURL=valid.map".to_string() + ), + Some("valid.map".to_string()) + ); + } #[test] fn module_format_uses_typescript_ast_semantics() { diff --git a/crates/wasm-rquickjs/src/skeleton/module_loader_architecture.rs b/crates/wasm-rquickjs/src/skeleton/module_loader_architecture.rs index 84173e2b..3720bc3a 100644 --- a/crates/wasm-rquickjs/src/skeleton/module_loader_architecture.rs +++ b/crates/wasm-rquickjs/src/skeleton/module_loader_architecture.rs @@ -6,6 +6,7 @@ use quote::ToTokens; const MODULE_JS: &str = include_str!("../../skeleton/src/builtin/module.js"); const MODULE_LOADING_RS: &str = include_str!("../../skeleton/src/internal/module_loading.rs"); const RUNTIME_SERVICES_RS: &str = include_str!("../../skeleton/src/internal/runtime_services.rs"); +const FS_RS: &str = include_str!("../../skeleton/src/builtin/fs.rs"); const P2_RS: &str = include_str!("../../skeleton/src/internal/p2.rs"); const P3_RS: &str = include_str!("../../skeleton/src/internal/p3.rs"); @@ -659,7 +660,12 @@ fn module_loader_architecture() { } for test_bridge in [ "__wasm_rquickjs_get_cjs_module_probe_session_hit_count", + "__wasm_rquickjs_get_cjs_missing_package_json_cache_hit_count", + "__wasm_rquickjs_get_loader_realpath_cache_hit_count", + "__wasm_rquickjs_get_loader_realpath_system_call_count", "__wasm_rquickjs_reset_cjs_module_probe_session_hit_count", + "__wasm_rquickjs_reset_loader_realpath_cache_hit_count", + "__wasm_rquickjs_reset_loader_realpath_system_call_count", "__wasm_rquickjs_set_cjs_module_probe_session_enabled", ] { assert!( @@ -694,6 +700,28 @@ fn module_loader_architecture() { assert_no_import_meta_mutation(&js_tokens); } +#[test] +fn module_loader_realpath_checks_wizer_before_filesystem_access() { + let start = FS_RS + .find("pub(super) fn realpath_for_module_resolution") + .expect("loader realpath helper must exist"); + let body = &FS_RS[start..]; + let end = body + .find("\nfn canonicalize_guest_path(") + .expect("loader realpath helper must have a bounded function body"); + let body = &body[..end]; + let guard = body + .find("crate::internal::is_wizer_active()") + .expect("loader realpath helper must retain the Wizer filesystem guard"); + let filesystem_access = body + .find("canonicalize_guest_path_with_cache(") + .expect("loader realpath helper must canonicalize uncached paths"); + assert!( + guard < filesystem_access, + "loader realpath must check Wizer state before filesystem access" + ); +} + #[test] fn js_tokenizer_skips_non_code_text() { let source = "// function lineComment() {}\n/* const blockComment = 1; */\nconst realDeclaration = \"class stringText {}\";\nconst template = `function templateText() {}`;\nconst regex = /class regexText {}\\//;"; diff --git a/examples/runtime/esm-module-load-phases/src/esm-module-load-phases.js b/examples/runtime/esm-module-load-phases/src/esm-module-load-phases.js new file mode 100644 index 00000000..da0d74ad --- /dev/null +++ b/examples/runtime/esm-module-load-phases/src/esm-module-load-phases.js @@ -0,0 +1,49 @@ +import fs from 'node:fs'; +import { stripTypeScriptTypes } from 'node:module'; +import { runJavaScript } from 'wasm-rquickjs:execution'; + +const ROOT = '/esm-module-load-phases'; + +function typedPrefix(sourceBytes) { + const lines = []; + let length = 0; + for (let index = 0; length < sourceBytes; index++) { + const line = `type Padding${index} = { value: number; next?: Padding${index} };\n`; + lines.push(line); + length += line.length; + } + return lines.join(''); +} + +export async function measureCase(sourceBytes, sample) { + fs.mkdirSync(ROOT, { recursive: true }); + const path = `${ROOT}/prepared-${sourceBytes}-${sample}.mjs`; + const typedSource = `${typedPrefix(Number(sourceBytes))} +globalThis.__esmPhaseMarks.evaluationStart = performance.now(); +export default function run(): number { return 42; } +globalThis.__esmPhaseMarks.evaluationEnd = performance.now();`; + const preparedSource = stripTypeScriptTypes(typedSource, { mode: 'strip' }); + fs.writeFileSync(path, preparedSource); + + const started = performance.now(); + const execution = await runJavaScript({ source: ` + globalThis.__esmPhaseMarks = {}; + globalThis.__esmPhaseMarks.importStart = performance.now(); + const loaded = await import(${JSON.stringify(path)}); + globalThis.__esmPhaseMarks.importResolved = performance.now(); + return { + value: loaded.default(), + marks: globalThis.__esmPhaseMarks, + }; + ` }); + return JSON.stringify({ + requestedSourceBytes: Number(sourceBytes), + actualSourceBytes: typedSource.length, + preparedSourceBytes: preparedSource.length, + elapsedMs: performance.now() - started, + value: execution.value.value, + marks: execution.value.marks, + overflowed: execution.overflowed, + profile: execution.profile, + }); +} diff --git a/examples/runtime/esm-module-load-phases/wit/esm-module-load-phases.wit b/examples/runtime/esm-module-load-phases/wit/esm-module-load-phases.wit new file mode 100644 index 00000000..69ea8371 --- /dev/null +++ b/examples/runtime/esm-module-load-phases/wit/esm-module-load-phases.wit @@ -0,0 +1,5 @@ +package quickjs:esm-module-load-phases; + +world esm-module-load-phases { + export measure-case: func(source-bytes: u64, sample: u64) -> string; +} diff --git a/examples/runtime/module-resolution/src/module-resolution.js b/examples/runtime/module-resolution/src/module-resolution.js index 5e341288..b5e12ec7 100644 --- a/examples/runtime/module-resolution/src/module-resolution.js +++ b/examples/runtime/module-resolution/src/module-resolution.js @@ -6410,6 +6410,8 @@ export const testCjsPackageJsonParseCache = async () => { const probeRoot = '/cjs-probe-session-app'; const probeRequire = createRequire(`${probeRoot}/entry.cjs`); fs.mkdirSync(`${probeRoot}/node_modules/late-pkg`, { recursive: true }); + fs.mkdirSync(`${probeRoot}/node_modules/invalid-pkg`, { recursive: true }); + fs.writeFileSync(`${probeRoot}/node_modules/invalid-pkg/package.json`, '{ invalid json'); fs.writeFileSync(`${probeRoot}/target.js`, 'module.exports = true;'); fs.writeFileSync(`${probeRoot}/nested-target.js`, 'module.exports = true;'); fs.writeFileSync(`${probeRoot}/rename-target.js`, 'module.exports = true;'); @@ -6454,6 +6456,16 @@ export const testCjsPackageJsonParseCache = async () => { ' Module._pathCache = Object.create(null);', ' assert.strictEqual(require.resolve("./late-dir"), "/cjs-probe-session-app/late-dir/index.js");', ' assert.throws(() => require.resolve("late-pkg"), { code: "MODULE_NOT_FOUND" });', + ' Module._pathCache = Object.create(null);', + ' const missingPackageHitsBefore = globalThis.__wasm_rquickjs_get_cjs_missing_package_json_cache_hit_count();', + ' assert.throws(() => require.resolve("late-pkg"), { code: "MODULE_NOT_FOUND" });', + ' assert.ok(', + ' globalThis.__wasm_rquickjs_get_cjs_missing_package_json_cache_hit_count() > missingPackageHitsBefore,', + ' "the repeated missing package metadata lookup must use the outer CommonJS session",', + ' );', + ' assert.throws(() => require.resolve("invalid-pkg"), { code: "ERR_INVALID_PACKAGE_CONFIG" });', + ' Module._pathCache = Object.create(null);', + ' assert.throws(() => require.resolve("invalid-pkg"), { code: "ERR_INVALID_PACKAGE_CONFIG" });', ' fs.writeFileSync("/cjs-probe-session-app/node_modules/late-pkg/package.json", JSON.stringify({ exports: "./entry.js" }));', ' fs.writeFileSync("/cjs-probe-session-app/node_modules/late-pkg/entry.js", "module.exports = true;");', ' Module._pathCache = Object.create(null);', @@ -6474,8 +6486,10 @@ export const testCjsPackageJsonParseCache = async () => { 'module.exports = true;', ].join('\n')); const getProbeSessionHits = globalThis.__wasm_rquickjs_get_cjs_module_probe_session_hit_count; + const getMissingPackageHits = globalThis.__wasm_rquickjs_get_cjs_missing_package_json_cache_hit_count; const resetProbeSessionHits = globalThis.__wasm_rquickjs_reset_cjs_module_probe_session_hit_count; assert.strictEqual(typeof getProbeSessionHits, 'function'); + assert.strictEqual(typeof getMissingPackageHits, 'function'); assert.strictEqual(typeof resetProbeSessionHits, 'function'); resetProbeSessionHits(); assert.strictEqual(getProbeSessionHits(), 0); @@ -6552,6 +6566,157 @@ export const testCjsPackageJsonParseCache = async () => { } }; +export const testCjsLoaderRealpathCache = async () => { + try { + const root = '/cjs-loader-realpath-cache-app'; + const link = `${root}/link.js`; + const firstTarget = `${root}/first.js`; + const secondTarget = `${root}/second.js`; + const lateTarget = `${root}/late.js`; + fs.mkdirSync(root, { recursive: true }); + fs.writeFileSync(firstTarget, 'module.exports = "first";'); + fs.writeFileSync(secondTarget, 'module.exports = "second";'); + fs.symlinkSync('first.js', link); + + const require = createRequire(`${root}/entry.cjs`); + const Module = require('node:module'); + const originalPathCache = Module._pathCache; + const originalExecArgv = process.execArgv.slice(); + const originalCwd = process.cwd(); + const getHits = globalThis.__wasm_rquickjs_get_loader_realpath_cache_hit_count; + const resetHits = globalThis.__wasm_rquickjs_reset_loader_realpath_cache_hit_count; + const getSystemCalls = globalThis.__wasm_rquickjs_get_loader_realpath_system_call_count; + const resetSystemCalls = globalThis.__wasm_rquickjs_reset_loader_realpath_system_call_count; + const getSegmentCounts = globalThis.__wasm_rquickjs_get_loader_realpath_segment_counts; + const resetSegmentCounts = globalThis.__wasm_rquickjs_reset_loader_realpath_segment_counts; + const canonicalizeCjs = globalThis.__wasm_rquickjs_test_cjs_canonical_filename; + const canonicalizeEsm = globalThis.__wasm_rquickjs_test_esm_canonical_filename; + assert.strictEqual(typeof getHits, 'function'); + assert.strictEqual(typeof resetHits, 'function'); + assert.strictEqual(typeof getSystemCalls, 'function'); + assert.strictEqual(typeof resetSystemCalls, 'function'); + assert.strictEqual(typeof getSegmentCounts, 'function'); + assert.strictEqual(typeof resetSegmentCounts, 'function'); + assert.strictEqual(typeof canonicalizeCjs, 'function'); + assert.strictEqual(typeof canonicalizeEsm, 'function'); + try { + const prefixRoot = `${root}/prefix-cache/shared`; + fs.mkdirSync(prefixRoot, { recursive: true }); + for (const name of ['cjs-first.js', 'cjs-second.js', 'esm-first.mjs', 'esm-second.mjs']) { + fs.writeFileSync(`${prefixRoot}/${name}`, ''); + } + + resetSegmentCounts(); + assert.strictEqual(canonicalizeCjs(`${prefixRoot}/cjs-first.js`), `${prefixRoot}/cjs-first.js`); + const cjsFirst = getSegmentCounts(); + assert.ok(cjsFirst.calls > 1, 'a fresh runtime must inspect the first path prefixes'); + assert.strictEqual(cjsFirst.prefixCacheHits, 0, 'the first unique CJS path must not inherit prefix state'); + assert.strictEqual(cjsFirst.calls, cjsFirst.prefixCacheHits + cjsFirst.systemCalls); + + assert.strictEqual(canonicalizeCjs(`${prefixRoot}/cjs-second.js`), `${prefixRoot}/cjs-second.js`); + const cjsSecond = getSegmentCounts(); + const cjsSecondSystemCalls = cjsSecond.systemCalls - cjsFirst.systemCalls; + assert.ok(cjsSecond.prefixCacheHits > cjsFirst.prefixCacheHits, 'a sibling CJS path must reuse confirmed prefixes'); + assert.ok(cjsSecondSystemCalls < cjsFirst.systemCalls, 'prefix reuse must reduce segment metadata calls'); + assert.strictEqual(cjsSecond.calls, cjsSecond.prefixCacheHits + cjsSecond.systemCalls); + + resetSegmentCounts(); + assert.strictEqual(canonicalizeEsm(`${prefixRoot}/esm-first.mjs`), `${prefixRoot}/esm-first.mjs`); + const esmFirst = getSegmentCounts(); + assert.ok(esmFirst.calls > 1); + assert.strictEqual(esmFirst.prefixCacheHits, 0, 'ESM must not reuse CJS prefix entries'); + assert.strictEqual(esmFirst.calls, esmFirst.prefixCacheHits + esmFirst.systemCalls); + + assert.strictEqual(canonicalizeEsm(`${prefixRoot}/esm-second.mjs`), `${prefixRoot}/esm-second.mjs`); + const esmSecond = getSegmentCounts(); + const esmSecondSystemCalls = esmSecond.systemCalls - esmFirst.systemCalls; + assert.ok(esmSecond.prefixCacheHits > esmFirst.prefixCacheHits, 'a sibling ESM path must reuse confirmed prefixes'); + assert.ok(esmSecondSystemCalls < esmFirst.systemCalls, 'ESM prefix reuse must reduce segment metadata calls'); + assert.strictEqual(esmSecond.calls, esmSecond.prefixCacheHits + esmSecond.systemCalls); + + Module._pathCache = Object.create(null); + resetHits(); + assert.strictEqual(require.resolve(link), firstTarget); + fs.unlinkSync(link); + fs.symlinkSync('second.js', link); + Module._pathCache = Object.create(null); + assert.strictEqual(require.resolve(link), firstTarget); + assert.ok(getHits() > 0, 'the repeated loader realpath must use the runtime cache'); + assert.strictEqual(fs.realpathSync.native(link), secondTarget); + + process.execArgv.push('--preserve-symlinks'); + Module._pathCache = Object.create(null); + assert.strictEqual(require.resolve(link), link); + process.execArgv.pop(); + + resetSystemCalls(); + assert.throws( + () => canonicalizeCjs(lateTarget), + error => error && error.code === 'ENOENT' && error.syscall === 'realpath' && error.path === lateTarget, + ); + assert.strictEqual(getSystemCalls(), 1, 'a failed CJS canonicalization must use one physical realpath'); + fs.writeFileSync(lateTarget, 'module.exports = "late";'); + assert.strictEqual(canonicalizeCjs(lateTarget), lateTarget); + assert.strictEqual(getSystemCalls(), 2, 'failed CJS canonicalizations must remain retryable'); + + const relativeRoot = '/loader-realpath-relative-input'; + fs.mkdirSync(relativeRoot, { recursive: true }); + fs.writeFileSync(`${relativeRoot}/target.js`, 'module.exports = true;'); + process.chdir(relativeRoot); + assert.strictEqual( + canonicalizeCjs('./nested/../target.js'), + `${relativeRoot}/target.js`, + 'relative loader paths must resolve against process.cwd() before cache lookup', + ); + process.chdir(originalCwd); + + const esmThenCjsRoot = '/loader-realpath-esm-then-cjs'; + fs.mkdirSync(esmThenCjsRoot, { recursive: true }); + fs.writeFileSync(`${esmThenCjsRoot}/first.mjs`, 'export default "first";'); + fs.writeFileSync(`${esmThenCjsRoot}/second.mjs`, 'export default "second";'); + fs.symlinkSync('first.mjs', `${esmThenCjsRoot}/link.mjs`); + assert.strictEqual((await import(`${esmThenCjsRoot}/link.mjs?esm-first`)).default, 'first'); + fs.unlinkSync(`${esmThenCjsRoot}/link.mjs`); + fs.symlinkSync('second.mjs', `${esmThenCjsRoot}/link.mjs`); + Module._pathCache = Object.create(null); + assert.strictEqual(require.resolve(`${esmThenCjsRoot}/link.mjs`), `${esmThenCjsRoot}/second.mjs`); + + const cjsThenEsmRoot = '/loader-realpath-cjs-then-esm'; + fs.mkdirSync(cjsThenEsmRoot, { recursive: true }); + fs.writeFileSync(`${cjsThenEsmRoot}/first.mjs`, 'export default "first";'); + fs.writeFileSync(`${cjsThenEsmRoot}/second.mjs`, 'export default "second";'); + fs.symlinkSync('first.mjs', `${cjsThenEsmRoot}/link.mjs`); + Module._pathCache = Object.create(null); + assert.strictEqual(require.resolve(`${cjsThenEsmRoot}/link.mjs`), `${cjsThenEsmRoot}/first.mjs`); + fs.unlinkSync(`${cjsThenEsmRoot}/link.mjs`); + fs.symlinkSync('second.mjs', `${cjsThenEsmRoot}/link.mjs`); + assert.strictEqual((await import(`${cjsThenEsmRoot}/link.mjs?esm-second`)).default, 'second'); + + const preserveEsmRoot = '/loader-realpath-preserve-esm'; + fs.mkdirSync(preserveEsmRoot, { recursive: true }); + fs.writeFileSync(`${preserveEsmRoot}/first.mjs`, 'export default "first";'); + fs.writeFileSync(`${preserveEsmRoot}/second.mjs`, 'export default "second";'); + fs.symlinkSync('first.mjs', `${preserveEsmRoot}/link.mjs`); + process.execArgv.push('--preserve-symlinks'); + assert.strictEqual((await import(`${preserveEsmRoot}/link.mjs?preserved-first`)).default, 'first'); + fs.unlinkSync(`${preserveEsmRoot}/link.mjs`); + fs.symlinkSync('second.mjs', `${preserveEsmRoot}/link.mjs`); + assert.strictEqual((await import(`${preserveEsmRoot}/link.mjs?preserved-second`)).default, 'second'); + } finally { + process.chdir(originalCwd); + Module._pathCache = originalPathCache; + process.execArgv.length = 0; + for (const arg of originalExecArgv) { + process.execArgv.push(arg); + } + } + return true; + } catch (error) { + console.error(error); + throw error; + } +}; + export const testCjsPackageReexportNamedExports = async () => { try { fs.mkdirSync('/cjs-package-reexport-app/node_modules/pkg', { recursive: true }); diff --git a/examples/runtime/module-resolution/wit/module-resolution.wit b/examples/runtime/module-resolution/wit/module-resolution.wit index 45c42653..a9e0ff98 100644 --- a/examples/runtime/module-resolution/wit/module-resolution.wit +++ b/examples/runtime/module-resolution/wit/module-resolution.wit @@ -23,6 +23,7 @@ world module-resolution { export test-loader-module-source-validation: func() -> bool; export test-package-custom-conditions: func() -> bool; export test-cjs-package-json-parse-cache: func() -> bool; + export test-cjs-loader-realpath-cache: func() -> bool; export test-sync-builtin-esm-exports: func() -> bool; export test-esm-resolution-error-urls: func() -> bool; export test-cjs-direct-named-exports: func() -> bool; diff --git a/examples/runtime/typescript-transform-runtime/src/typescript-transform-runtime.js b/examples/runtime/typescript-transform-runtime/src/typescript-transform-runtime.js index 2da4d267..db584397 100644 --- a/examples/runtime/typescript-transform-runtime/src/typescript-transform-runtime.js +++ b/examples/runtime/typescript-transform-runtime/src/typescript-transform-runtime.js @@ -279,6 +279,41 @@ export async function run() { `const target = require('./stack-cjs.cts'); module.exports = function callTypeScript() { target.failCjs(); };`, ); + fs.writeFileSync( + '/typescript-transform-runtime/source-map-comments.cjs', + `const stringMarker = '//# sourceMappingURL=ignored-string.map'; + const templateMarker = \`//# sourceMappingURL=ignored-template.map\`; + module.exports = stringMarker.length + templateMarker.length; + // ordinary comment\u2028//#\u2003sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdGl2ZS1leHRyYWN0b3Itb3JpZ2luYWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9`, + ); + require('/typescript-transform-runtime/source-map-comments.cjs'); + const nativeSourceMapCommentFound = + module.findSourceMap('/typescript-transform-runtime/source-map-comments.cjs') !== undefined; + fs.writeFileSync( + '/typescript-transform-runtime/source-map-fake-comments.cjs', + `const stringMarker = '//# sourceMappingURL=ignored-string.map'; + const templateMarker = \`//# sourceMappingURL=ignored-template.map\`; + module.exports = stringMarker.length + templateMarker.length;`, + ); + require('/typescript-transform-runtime/source-map-fake-comments.cjs'); + const nativeSourceMapFakeCommentsIgnored = + module.findSourceMap('/typescript-transform-runtime/source-map-fake-comments.cjs') === undefined; + fs.writeFileSync( + '/typescript-transform-runtime/source-map-no-marker.cjs', + 'module.exports = 42;', + ); + require('/typescript-transform-runtime/source-map-no-marker.cjs'); + const nativeSourceMapNoMarkerIgnored = + module.findSourceMap('/typescript-transform-runtime/source-map-no-marker.cjs') === undefined; + fs.writeFileSync( + '/typescript-transform-runtime/source-map-empty-last.cjs', + `module.exports = 42; + //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdGl2ZS1leHRyYWN0b3Itb3JpZ2luYWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9 + //# sourceMappingURL=`, + ); + require('/typescript-transform-runtime/source-map-empty-last.cjs'); + const nativeSourceMapEmptyLastClears = + module.findSourceMap('/typescript-transform-runtime/source-map-empty-last.cjs') === undefined; let rewrittenCjsRuntimeStack; try { require('/typescript-transform-runtime/stack-caller.cjs')(); @@ -411,6 +446,10 @@ export async function run() { callSites, disabledCallSite, reexportPreparedRuntimeStack, + nativeSourceMapCommentFound, + nativeSourceMapFakeCommentsIgnored, + nativeSourceMapNoMarkerIgnored, + nativeSourceMapEmptyLastClears, cjsSourceMapsReclaimed, retainedCjsSourceMaps, }); diff --git a/tests/agentic_ts.rs b/tests/agentic_ts.rs index 4801f122..04cabd8c 100644 --- a/tests/agentic_ts.rs +++ b/tests/agentic_ts.rs @@ -9,7 +9,9 @@ mod common; use anyhow::Context as _; use camino::Utf8Path; -use common::{CompiledTest, FeatureCombination, TestInstance, copy_dir_recursive, test_target}; +use common::{ + CompiledTest, FeatureCombination, TestInstance, TestTarget, copy_dir_recursive, test_target, +}; use serde_json::{Value, json}; use std::collections::{BTreeMap, BTreeSet}; use std::fs; @@ -39,8 +41,13 @@ async fn main() -> anyhow::Result<()> { "AGENTIC_TS_ITERATIONS must be at least 5 to assess a warmed plateau" ); + let release_baseline = std::env::var_os("AGENTIC_TS_RELEASE_BASELINE").is_some(); let build_started = Instant::now(); - let feature_combination = FeatureCombination::TypeScriptCompilerProfiling; + let feature_combination = if release_baseline { + FeatureCombination::TypeScriptTransformRuntime + } else { + FeatureCombination::TypeScriptCompilerProfiling + }; let compiled = CompiledTest::new_with_features(Utf8Path::new(EXAMPLE_DIR), true, feature_combination) .await?; @@ -52,6 +59,19 @@ async fn main() -> anyhow::Result<()> { let instantiate_elapsed = instantiate_started.elapsed(); prepare_workspace(&instance)?; + if release_baseline { + return run_release_baseline( + &compiled, + &mut instance, + iterations, + build_elapsed, + instantiate_elapsed, + component_size, + feature_combination, + ) + .await; + } + if std::env::var_os("AGENTIC_TS_PROFILE_SMOKE").is_some() { let mut node = Vec::with_capacity(iterations); let mut wasm = Vec::with_capacity(iterations); @@ -499,6 +519,501 @@ async fn main() -> anyhow::Result<()> { Ok(()) } +async fn run_release_baseline( + compiled: &CompiledTest, + instance: &mut TestInstance, + iterations: usize, + build_elapsed: Duration, + instantiate_elapsed: Duration, + component_size: u64, + feature_combination: FeatureCombination, +) -> anyhow::Result<()> { + const CHECK_ARGS: &[&str] = &["--noEmit", "-p", "projects/core/tsconfig.check.json"]; + const INCREMENTAL_ARGS: &[&str] = &[ + "--noEmit", + "--incremental", + "--tsBuildInfoFile", + ".cache/release-baseline.tsbuildinfo", + "-p", + "projects/core/tsconfig.check.json", + ]; + + anyhow::ensure!( + feature_combination.label() == "typescript-transform-runtime", + "release baseline must use the production TypeScript feature" + ); + let node_executable = command_text(Command::new("which").arg("node"))?; + + let mut host_cold = Vec::with_capacity(iterations); + let mut wasm_cold = Vec::with_capacity(iterations); + for iteration in 0..iterations { + if iteration % 2 == 0 { + host_cold.push(fresh_host_tsc(&node_executable, CHECK_ARGS)?); + wasm_cold.push(fresh_wasm_tsc(compiled.wasm_path(), CHECK_ARGS).await?); + } else { + wasm_cold.push(fresh_wasm_tsc(compiled.wasm_path(), CHECK_ARGS).await?); + host_cold.push(fresh_host_tsc(&node_executable, CHECK_ARGS)?); + } + } + + let host_workspace = camino_tempfile::Utf8TempDir::new()?; + prepare_host_workspace(host_workspace.path())?; + let mut host_repeated = Vec::with_capacity(iterations); + let mut wasm_repeated = Vec::with_capacity(iterations); + for iteration in 0..iterations { + if iteration % 2 == 0 { + host_repeated.push(host_tsc( + &node_executable, + host_workspace.path(), + CHECK_ARGS, + )?); + wasm_repeated.push(wasm_tsc(instance, CHECK_ARGS).await?); + } else { + wasm_repeated.push(wasm_tsc(instance, CHECK_ARGS).await?); + host_repeated.push(host_tsc( + &node_executable, + host_workspace.path(), + CHECK_ARGS, + )?); + } + } + + let host_incremental_seed = + host_tsc(&node_executable, host_workspace.path(), INCREMENTAL_ARGS)?; + let wasm_incremental_seed = wasm_tsc(instance, INCREMENTAL_ARGS).await?; + let mut host_incremental = Vec::with_capacity(iterations); + let mut wasm_incremental = Vec::with_capacity(iterations); + for iteration in 0..iterations { + if iteration % 2 == 0 { + host_incremental.push(host_tsc( + &node_executable, + host_workspace.path(), + INCREMENTAL_ARGS, + )?); + wasm_incremental.push(wasm_tsc(instance, INCREMENTAL_ARGS).await?); + } else { + wasm_incremental.push(wasm_tsc(instance, INCREMENTAL_ARGS).await?); + host_incremental.push(host_tsc( + &node_executable, + host_workspace.path(), + INCREMENTAL_ARGS, + )?); + } + } + + let environment = environment(iterations, feature_combination.label())?; + let input_hashes = input_hashes()?; + let report = json!({ + "schema": "agentic-ts-release-baseline-v1", + "environment": environment, + "inputs": { + "algorithm": INPUT_HASH_ALGORITHM, + "buildHash": input_hashes.build, + "benchmarkHash": input_hashes.benchmark, + }, + "target": format!("{:?}", test_target()).to_lowercase(), + "fixture": { + "name": "small", + "project": "projects/core/tsconfig.check.json", + "description": "the checked-in single-source core TypeScript project", + "seriesArguments": { + "coldAndRepeated": CHECK_ARGS, + "incremental": INCREMENTAL_ARGS, + }, + }, + "component": { + "path": compiled.wasm_path().as_str(), + "bytes": component_size, + "blake3": hash_file(compiled.wasm_path())?, + "buildMs": millis(build_elapsed), + "initialPrepareAndInstantiateMs": millis(instantiate_elapsed), + }, + "host": { + "environmentPolicy": { + "mode": "clear", + "provided": ["HOME", "PATH"], + }, + "coldFreshProcessState": summarize(&host_cold), + "repeatedUnchangedFreshProcesses": summarize(&host_repeated), + "incrementalSeed": host_incremental_seed, + "incrementalFreshProcesses": summarize(&host_incremental), + }, + "wasm": { + "coldFreshJobState": summarize(&wasm_cold), + "repeatedUnchangedFreshJobs": summarize(&wasm_repeated), + "incrementalSeed": wasm_incremental_seed, + "incrementalFreshJobs": summarize(&wasm_incremental), + }, + "timingBoundary": { + "host": "Node process spawn through exit; fresh-workspace preparation is excluded", + "wasm": "run-tsc export invocation through result; component instantiation and fresh-workspace preparation are excluded", + }, + "memory": { + "allowedQuickJsHeapVariationBytes": ALLOWED_QUICKJS_HEAP_VARIATION_BYTES, + "repeatedUnchangedQuickJsHeap": quickjs_heap_series(&wasm_repeated)?, + "incrementalQuickJsHeap": quickjs_heap_series(&wasm_incremental)?, + "reusedInstanceLinearMemoryHighWaterBytes": instance.linear_memory_high_water_bytes(), + "interpretation": "fresh-job QuickJS terminal heaps are a reclamation guard; Wasm linear memory is a monotone instance-wide high-water observation", + }, + "notes": [ + "manual local release measurement; no CI timing threshold", + "production TypeScript transform feature; profiling-only filesystem counters disabled", + "host commands use fresh Node processes; Wasm commands use fresh QuickJS jobs", + "cold logical state uses fresh workspaces and Wasm instances outside the timed boundary", + "only the incremental series preserves its explicit .tsbuildinfo", + ], + }); + + validate_release_baseline_report(&report)?; + let formatted = serde_json::to_string_pretty(&report)?; + if let Ok(path) = std::env::var("AGENTIC_TS_REPORT") { + fs::write(path, format!("{formatted}\n"))?; + } + println!("{formatted}"); + Ok(()) +} + +async fn fresh_wasm_tsc(wasm_path: &Utf8Path, args: &[&str]) -> anyhow::Result { + let mut instance = TestInstance::new_with_memory_tracking(wasm_path).await?; + prepare_workspace(&instance)?; + wasm_tsc(&mut instance, args).await +} + +async fn wasm_tsc(instance: &mut TestInstance, args: &[&str]) -> anyhow::Result { + timed_invoke(instance, "run-tsc", &[string_list(args), Val::U64(300_000)]).await +} + +fn fresh_host_tsc(node_executable: &str, args: &[&str]) -> anyhow::Result { + let workspace = camino_tempfile::Utf8TempDir::new()?; + prepare_host_workspace(workspace.path())?; + host_tsc(node_executable, workspace.path(), args) +} + +fn host_tsc(node_executable: &str, workspace: &Utf8Path, args: &[&str]) -> anyhow::Result { + let started = Instant::now(); + let output = Command::new(node_executable) + .current_dir(workspace) + .arg("node_modules/typescript/lib/tsc.js") + .args(args) + .env_clear() + .env("HOME", workspace.join(".home")) + .env("PATH", workspace.join("node_modules/.bin")) + .output()?; + Ok(json!({ + "wallMs": millis(started.elapsed()), + "result": { + "value": { "exitCode": output.status.code() }, + "stdout": String::from_utf8_lossy(&output.stdout), + "stderr": String::from_utf8_lossy(&output.stderr), + "overflowed": false, + }, + })) +} + +fn prepare_host_workspace(workspace: &Utf8Path) -> anyhow::Result<()> { + let source = Utf8Path::new(SUITE_DIR); + fs::create_dir_all(workspace)?; + for file in ["package.json", "package-lock.json", "tsconfig.json"] { + fs::copy(source.join(file), workspace.join(file))?; + } + for directory in ["node_modules", "projects"] { + copy_dir_recursive( + source.join(directory).as_std_path(), + workspace.join(directory).as_std_path(), + )?; + } + fs::create_dir_all(workspace.join(".home"))?; + fs::create_dir_all(workspace.join(".cache"))?; + Ok(()) +} + +fn validate_release_baseline_report(report: &Value) -> anyhow::Result<()> { + anyhow::ensure!( + report["schema"] == "agentic-ts-release-baseline-v1", + "unsupported release baseline schema" + ); + let iterations = report["environment"]["iterations"] + .as_u64() + .filter(|iterations| *iterations >= 5) + .ok_or_else(|| anyhow::anyhow!("release baseline needs at least five iterations"))?; + anyhow::ensure!( + report["fixture"]["name"] == "small" + && report["fixture"]["project"] == "projects/core/tsconfig.check.json" + && report["fixture"]["seriesArguments"]["coldAndRepeated"] + == json!(["--noEmit", "-p", "projects/core/tsconfig.check.json"]) + && report["fixture"]["seriesArguments"]["incremental"] + == json!([ + "--noEmit", + "--incremental", + "--tsBuildInfoFile", + ".cache/release-baseline.tsbuildinfo", + "-p", + "projects/core/tsconfig.check.json" + ]) + && report["environment"]["componentFeatures"] == "typescript-transform-runtime" + && report["environment"]["componentCargoProfile"] == "release" + && report["environment"]["harnessCargoProfile"] == "release" + && report["host"]["environmentPolicy"]["mode"] == "clear" + && report["host"]["environmentPolicy"]["provided"] == json!(["HOME", "PATH"]) + && report["timingBoundary"]["host"] + .as_str() + .is_some_and(|value| value.contains("excluded")) + && report["timingBoundary"]["wasm"] + .as_str() + .is_some_and(|value| value.contains("excluded")), + "release baseline does not identify the small production-profile fixture" + ); + + fn validate_series( + series: &Value, + label: &str, + iterations: u64, + require_linear_memory: bool, + ) -> anyhow::Result<()> { + let samples = series["samples"] + .as_array() + .ok_or_else(|| anyhow::anyhow!("{label} has no samples"))?; + anyhow::ensure!( + series["iterations"] == iterations && samples.len() as u64 == iterations, + "{label} does not contain the declared sample count" + ); + for sample in samples { + anyhow::ensure!( + successful_result(&sample["result"]) + && sample.pointer("/result/value/exitCode") == Some(&json!(0)) + && sample["wallMs"] + .as_f64() + .is_some_and(|duration| duration.is_finite() && duration >= 0.0), + "{label} contains a failed or invalid sample: {sample:#}" + ); + if require_linear_memory { + anyhow::ensure!( + sample["linearMemoryHighWaterBytes"] + .as_u64() + .is_some_and(|bytes| bytes > 0), + "{label} sample has no Wasm memory observation" + ); + } + } + let expected = summarize(samples); + for field in ["medianMs", "p95Ms", "throughputPerSecond"] { + let stored = series[field] + .as_f64() + .ok_or_else(|| anyhow::anyhow!("{label} {field} is not numeric"))?; + let recomputed = expected[field] + .as_f64() + .expect("recomputed release summary field is numeric"); + let tolerance = f64::EPSILON * recomputed.abs().max(1.0) * 8.0; + anyhow::ensure!( + stored.is_finite() && (stored - recomputed).abs() <= tolerance, + "{label} {field} does not reconcile with its samples" + ); + } + Ok(()) + } + + for (path, label, require_linear_memory) in [ + ( + "/host/coldFreshProcessState", + "host cold release series", + false, + ), + ( + "/host/repeatedUnchangedFreshProcesses", + "host repeated release series", + false, + ), + ( + "/host/incrementalFreshProcesses", + "host incremental release series", + false, + ), + ("/wasm/coldFreshJobState", "Wasm cold release series", true), + ( + "/wasm/repeatedUnchangedFreshJobs", + "Wasm repeated release series", + true, + ), + ( + "/wasm/incrementalFreshJobs", + "Wasm incremental release series", + true, + ), + ] { + validate_series( + report + .pointer(path) + .ok_or_else(|| anyhow::anyhow!("missing {label}"))?, + label, + iterations, + require_linear_memory, + )?; + } + + for (path, label, require_linear_memory) in [ + ("/host/incrementalSeed", "host incremental seed", false), + ("/wasm/incrementalSeed", "Wasm incremental seed", true), + ] { + let sample = report + .pointer(path) + .ok_or_else(|| anyhow::anyhow!("missing {label}"))?; + anyhow::ensure!( + successful_result(&sample["result"]) + && sample.pointer("/result/value/exitCode") == Some(&json!(0)) + && sample["wallMs"] + .as_f64() + .is_some_and(|duration| duration.is_finite() && duration >= 0.0), + "{label} failed: {sample:#}" + ); + if require_linear_memory { + anyhow::ensure!( + sample["linearMemoryHighWaterBytes"] + .as_u64() + .is_some_and(|bytes| bytes > 0), + "{label} has no Wasm memory observation" + ); + } + } + + anyhow::ensure!( + report["memory"]["allowedQuickJsHeapVariationBytes"] + == ALLOWED_QUICKJS_HEAP_VARIATION_BYTES, + "release baseline changed the QuickJS heap-variation limit" + ); + for (group, series_path) in [ + ( + "repeatedUnchangedQuickJsHeap", + "/wasm/repeatedUnchangedFreshJobs/samples", + ), + ( + "incrementalQuickJsHeap", + "/wasm/incrementalFreshJobs/samples", + ), + ] { + let samples = report + .pointer(series_path) + .and_then(Value::as_array) + .ok_or_else(|| anyhow::anyhow!("missing release samples for {group}"))?; + anyhow::ensure!( + report["memory"][group] == quickjs_heap_series(samples)?, + "release baseline QuickJS heap summary does not reconcile for {group}" + ); + for point in ["beforeToolLoad", "afterCompiler"] { + anyhow::ensure!( + report["memory"][group][point]["samples"] + .as_array() + .is_some_and(|samples| samples.len() as u64 == iterations) + && report["memory"][group][point]["variationBytes"] + .as_u64() + .is_some_and(|variation| variation <= ALLOWED_QUICKJS_HEAP_VARIATION_BYTES), + "release baseline QuickJS heap varied unexpectedly for {group}/{point}" + ); + } + } + let reused_instance_high_water = [ + "/wasm/repeatedUnchangedFreshJobs/samples", + "/wasm/incrementalFreshJobs/samples", + ] + .into_iter() + .flat_map(|path| { + report + .pointer(path) + .and_then(Value::as_array) + .into_iter() + .flatten() + }) + .chain(std::iter::once(&report["wasm"]["incrementalSeed"])) + .filter_map(|sample| sample["linearMemoryHighWaterBytes"].as_u64()) + .max() + .ok_or_else(|| anyhow::anyhow!("release baseline has no reused-instance memory observation"))?; + anyhow::ensure!( + report["memory"]["reusedInstanceLinearMemoryHighWaterBytes"].as_u64() + == Some(reused_instance_high_water), + "release baseline reused-instance memory high water does not reconcile" + ); + Ok(()) +} + +fn validate_release_baseline_regression_guards(report: &Value) -> anyhow::Result<()> { + let mut failed_host = report.clone(); + failed_host["host"]["coldFreshProcessState"]["samples"][0]["result"]["value"]["exitCode"] = + json!(1); + anyhow::ensure!( + validate_release_baseline_report(&failed_host).is_err(), + "release validator accepted a failed host sample" + ); + + let mut failed_wasm = report.clone(); + failed_wasm["wasm"]["coldFreshJobState"]["samples"][0]["result"]["value"]["exitCode"] = + json!(1); + anyhow::ensure!( + validate_release_baseline_report(&failed_wasm).is_err(), + "release validator accepted a failed Wasm sample" + ); + + let mut missing_sample = report.clone(); + missing_sample["host"]["repeatedUnchangedFreshProcesses"]["samples"] + .as_array_mut() + .expect("validated report has repeated host samples") + .pop(); + anyhow::ensure!( + validate_release_baseline_report(&missing_sample).is_err(), + "release validator accepted a missing sample" + ); + + for field in ["medianMs", "p95Ms", "throughputPerSecond"] { + let mut false_summary = report.clone(); + false_summary["host"]["repeatedUnchangedFreshProcesses"][field] = json!(1); + anyhow::ensure!( + validate_release_baseline_report(&false_summary).is_err(), + "release validator accepted an unreconciled {field}" + ); + } + + let mut adjacent_throughput = report.clone(); + let throughput = + adjacent_throughput["host"]["repeatedUnchangedFreshProcesses"]["throughputPerSecond"] + .as_f64() + .expect("validated report has numeric throughput"); + adjacent_throughput["host"]["repeatedUnchangedFreshProcesses"]["throughputPerSecond"] = + json!(f64::from_bits(throughput.to_bits() + 1)); + anyhow::ensure!( + validate_release_baseline_report(&adjacent_throughput).is_ok(), + "release validator rejected a one-ULP throughput round-trip difference" + ); + + let mut failed_seed = report.clone(); + failed_seed["wasm"]["incrementalSeed"]["result"]["value"]["exitCode"] = json!(1); + anyhow::ensure!( + validate_release_baseline_report(&failed_seed).is_err(), + "release validator accepted a failed incremental seed" + ); + + let mut false_heap = report.clone(); + false_heap["memory"]["incrementalQuickJsHeap"]["afterCompiler"]["variationBytes"] = + json!(u64::MAX); + anyhow::ensure!( + validate_release_baseline_report(&false_heap).is_err(), + "release validator accepted an unreconciled heap summary" + ); + + let mut missing_memory = report.clone(); + missing_memory["wasm"]["coldFreshJobState"]["samples"][0]["linearMemoryHighWaterBytes"] = + Value::Null; + anyhow::ensure!( + validate_release_baseline_report(&missing_memory).is_err(), + "release validator accepted a sample without memory evidence" + ); + + let mut false_memory_high_water = report.clone(); + false_memory_high_water["memory"]["reusedInstanceLinearMemoryHighWaterBytes"] = json!(1); + anyhow::ensure!( + validate_release_baseline_report(&false_memory_high_water).is_err(), + "release validator accepted an unreconciled memory high water" + ); + Ok(()) +} + fn validate_checked_reports(directory: camino::Utf8PathBuf) -> anyhow::Result<()> { validate_composite_hash_contract()?; validate_report_path_contract()?; @@ -512,6 +1027,7 @@ fn validate_checked_reports(directory: camino::Utf8PathBuf) -> anyhow::Result<() }; let mut reports = BTreeMap::new(); let mut cjs_graph_reports = BTreeMap::new(); + let mut release_baseline_reports = BTreeMap::new(); for entry in fs::read_dir(&directory)? { let path = camino::Utf8PathBuf::from_path_buf(entry?.path()) .map_err(|path| anyhow::anyhow!("non-UTF-8 report path: {}", path.display()))?; @@ -524,10 +1040,15 @@ fn validate_checked_reports(directory: camino::Utf8PathBuf) -> anyhow::Result<() .to_string(); let report: Value = serde_json::from_slice(&fs::read(&path)?)?; let is_cjs_graph = report["schema"] == "cjs-graph-smoke-v2"; + let is_release_baseline = report["schema"] == "agentic-ts-release-baseline-v1"; if is_cjs_graph { validate_cjs_graph_report_metadata(&path, &report)?; validate_cjs_graph_report(&report)?; validate_cjs_graph_regression_guards(&report)?; + } else if is_release_baseline { + validate_release_baseline_metadata(&path, &report)?; + validate_release_baseline_report(&report)?; + validate_release_baseline_regression_guards(&report)?; } else { validate_report_metadata(&path, &report)?; validate_report(&report)?; @@ -543,6 +1064,8 @@ fn validate_checked_reports(directory: camino::Utf8PathBuf) -> anyhow::Result<() ); if is_cjs_graph { cjs_graph_reports.insert(filename, report); + } else if is_release_baseline { + release_baseline_reports.insert(filename, report); } else { reports.insert(filename, report); } @@ -596,6 +1119,30 @@ fn validate_checked_reports(directory: camino::Utf8PathBuf) -> anyhow::Result<() paired_cjs_graphs == cjs_graph_reports.len(), "every checked-in CommonJS graph report must belong to a P2/P3 pair" ); + + let mut paired_release_baselines = 0; + for (filename, p2) in release_baseline_reports + .iter() + .filter(|(filename, _)| filename.contains("-p2-")) + { + let p3_filename = filename.replacen("-p2-", "-p3-", 1); + let p3 = release_baseline_reports + .get(&p3_filename) + .ok_or_else(|| anyhow::anyhow!("missing P3 companion for {filename}"))?; + validate_release_baseline_pair(filename, &p3_filename, p2, p3)?; + let mut duplicate_component = p3.clone(); + duplicate_component["component"]["blake3"] = p2["component"]["blake3"].clone(); + anyhow::ensure!( + validate_release_baseline_pair(filename, &p3_filename, p2, &duplicate_component) + .is_err(), + "paired release-baseline guard accepted an identical P2/P3 component digest" + ); + paired_release_baselines += 2; + } + anyhow::ensure!( + paired_release_baselines == release_baseline_reports.len(), + "every checked-in release baseline must belong to a P2/P3 pair" + ); Ok(()) } @@ -616,6 +1163,9 @@ fn validate_report_pair( "/environment/npm", "/environment/typescript", "/environment/componentFeatures", + "/environment/componentCargoProfile", + "/environment/harnessCargoProfile", + "/environment/lockedBuilds", "/environment/rustc", "/environment/cargo", ] { @@ -653,6 +1203,82 @@ fn validate_cjs_graph_report_pair( Ok(()) } +fn validate_release_baseline_pair( + p2_filename: &str, + p3_filename: &str, + p2: &Value, + p3: &Value, +) -> anyhow::Result<()> { + validate_report_pair(p2_filename, p3_filename, p2, p3)?; + for field in ["/schema", "/fixture/name", "/fixture/project"] { + anyhow::ensure!( + p2.pointer(field) == p3.pointer(field), + "paired release baselines {p2_filename} and {p3_filename} disagree at {field}" + ); + } + Ok(()) +} + +fn validate_release_baseline_metadata(path: &Utf8Path, report: &Value) -> anyhow::Result<()> { + let target = report["target"] + .as_str() + .filter(|target| matches!(*target, "p2" | "p3")) + .ok_or_else(|| anyhow::anyhow!("{path} has no supported target"))?; + let os = report["environment"]["os"] + .as_str() + .ok_or_else(|| anyhow::anyhow!("{path} has no OS"))?; + let arch = report["environment"]["arch"] + .as_str() + .ok_or_else(|| anyhow::anyhow!("{path} has no architecture"))?; + let filename = path + .file_name() + .ok_or_else(|| anyhow::anyhow!("{path} has no filename"))?; + anyhow::ensure!( + filename.contains("-release-") + && filename.ends_with(&format!("-{target}-{os}-{arch}.json")), + "{path} filename does not identify a release target and host" + ); + anyhow::ensure!( + report["environment"]["node"] == "22.14.0" + && report["environment"]["npm"] == "10.9.2" + && report["environment"]["typescript"] == "5.8.2" + && report["environment"]["dirty"] == false + && report["environment"]["lockedBuilds"] == "1" + && report["environment"]["artifactCache"].is_null() + && report["environment"]["wasmtimeCache"].is_null() + && report["environment"]["preparedComponentCache"].is_null() + && report["environment"]["unoptimized"].is_null(), + "{path} does not use the pinned clean-state release settings" + ); + let expected_lock_kind = if target == "p2" { + "p2-shadow" + } else { + "workspace" + }; + anyhow::ensure!( + report["inputs"]["algorithm"] == INPUT_HASH_ALGORITHM + && is_blake3_hash(&report["inputs"]["buildHash"]) + && is_blake3_hash(&report["inputs"]["benchmarkHash"]) + && is_blake3_hash(&report["component"]["blake3"]) + && report["component"]["bytes"] + .as_u64() + .is_some_and(|bytes| bytes > 0) + && report["environment"]["hostDependencyGraph"]["kind"] == expected_lock_kind + && is_blake3_hash(&report["environment"]["hostDependencyGraph"]["lockBlake3"]) + && report["environment"]["commitHint"] + .as_str() + .is_some_and(|commit| !commit.is_empty()) + && report["environment"]["rustc"] + .as_str() + .is_some_and(|version| !version.is_empty()) + && report["environment"]["cargo"] + .as_str() + .is_some_and(|version| !version.is_empty()), + "{path} has incomplete release provenance" + ); + Ok(()) +} + fn validate_cjs_graph_report_metadata(path: &Utf8Path, report: &Value) -> anyhow::Result<()> { anyhow::ensure!( report["schema"] == "cjs-graph-smoke-v2", @@ -793,6 +1419,14 @@ fn validate_report_metadata(path: &Utf8Path, report: &Value) -> anyhow::Result<( filename.ends_with(&format!("-{target}-{os}-{arch}.json")), "{path} filename does not match its target and host metadata" ); + if filename.contains("-release-") { + anyhow::ensure!( + report["environment"]["componentCargoProfile"] == "release" + && report["environment"]["harnessCargoProfile"] == "release" + && is_blake3_hash(&report["environment"]["hostDependencyGraph"]["lockBlake3"]), + "{path} is labeled as a release measurement without release profiles and a pinned host graph" + ); + } anyhow::ensure!( report["inputs"]["algorithm"] == INPUT_HASH_ALGORITHM && is_blake3_hash(&report["inputs"]["buildHash"]) @@ -961,6 +1595,36 @@ fn summarize(samples: &[Value]) -> Value { }) } +fn quickjs_heap_series(samples: &[Value]) -> anyhow::Result { + fn values_at(samples: &[Value], point: &str) -> anyhow::Result> { + samples + .iter() + .map(|sample| { + sample + .pointer(&format!("/result/value/quickJsMemory/{point}/heapUsed")) + .and_then(Value::as_u64) + .ok_or_else(|| anyhow::anyhow!("missing QuickJS heap sample at {point}")) + }) + .collect() + } + + fn summarize_values(values: Vec) -> Value { + let minimum = values.iter().copied().min().unwrap_or(0); + let maximum = values.iter().copied().max().unwrap_or(0); + json!({ + "samples": values, + "minimumBytes": minimum, + "maximumBytes": maximum, + "variationBytes": maximum - minimum, + }) + } + + Ok(json!({ + "beforeToolLoad": summarize_values(values_at(samples, "beforeToolLoad")?), + "afterCompiler": summarize_values(values_at(samples, "afterCompiler")?), + })) +} + fn memory_plateau( unchanged: &[Value], incremental: &[Value], @@ -988,36 +1652,6 @@ fn memory_plateau( })) } - fn quickjs_heap_series(samples: &[Value]) -> anyhow::Result { - fn values_at(samples: &[Value], point: &str) -> anyhow::Result> { - samples - .iter() - .map(|sample| { - sample - .pointer(&format!("/result/value/quickJsMemory/{point}/heapUsed")) - .and_then(Value::as_u64) - .ok_or_else(|| anyhow::anyhow!("missing QuickJS heap sample at {point}")) - }) - .collect() - } - - fn summarize_values(values: Vec) -> Value { - let minimum = values.iter().copied().min().unwrap_or(0); - let maximum = values.iter().copied().max().unwrap_or(0); - json!({ - "samples": values, - "minimumBytes": minimum, - "maximumBytes": maximum, - "variationBytes": maximum - minimum, - }) - } - - Ok(json!({ - "beforeToolLoad": summarize_values(values_at(samples, "beforeToolLoad")?), - "afterCompiler": summarize_values(values_at(samples, "afterCompiler")?), - })) - } - let checkpoints = checkpoints .iter() .map(|(label, sample)| { @@ -1362,6 +1996,10 @@ fn prepare_cjs_graph(instance: &TestInstance) -> anyhow::Result<()> { fn environment(iterations: usize, component_features: &str) -> anyhow::Result { let source_root = std::env::var("AGENTIC_TS_SOURCE_ROOT").unwrap_or_else(|_| ".".to_string()); + let host_lock_blake3 = std::env::var("WASM_RQUICKJS_TEST_HOST_LOCKFILE") + .ok() + .map(|path| hash_file(Utf8Path::new(&path))) + .transpose()?; let dirty = !command_text(Command::new("git").args([ "-C", &source_root, @@ -1383,6 +2021,14 @@ fn environment(iterations: usize, component_features: &str) -> anyhow::Result..." >&2 exit 2 fi - reports_to_check=$(printf '%s\n' "$@") + + manifest="$results_dir/current-reports.txt" + source_ref= + reports_to_check= + for report in "$@"; do + manifest_report=${report#"$repo_root"/} + manifest_report=${manifest_report#./} + manifest_entry=$(awk -v report="$manifest_report" '$2 == report { print $0 }' "$manifest") + if [ -z "$manifest_entry" ] || [ "$(printf '%s\n' "$manifest_entry" | wc -l | tr -d ' ')" -ne 1 ]; then + echo "current report is not named exactly once in $manifest: $manifest_report" >&2 + exit 2 + fi + report_source_ref=${manifest_entry%% *} + json_source_ref=$(jq -er '.environment.commitHint' "$report") || { + echo "current report has no commit hint: $report" >&2 + exit 2 + } + if [ "$json_source_ref" != "$report_source_ref" ]; then + echo "current report source does not match $manifest: $report" >&2 + exit 2 + fi + if [ -n "$source_ref" ] && [ "$source_ref" != "$report_source_ref" ]; then + echo "current reports name different source revisions" >&2 + exit 2 + fi + source_ref=$report_source_ref + if [ -n "$reports_to_check" ]; then + reports_to_check="$reports_to_check +$manifest_report" + else + reports_to_check=$manifest_report + fi + done + if ! git -C "$repo_root" cat-file -e "$source_ref^{commit}" 2>/dev/null; then + echo "current report source commit is unavailable: $source_ref" >&2 + exit 2 + fi + + source_parent=$(mktemp -d "${TMPDIR:-/tmp}/agentic-ts-current.XXXXXX") + source_root="$source_parent/source" + cleanup_current_source() { + git -C "$repo_root" worktree remove --force "$source_root" >/dev/null 2>&1 || true + rmdir "$source_parent" >/dev/null 2>&1 || true + } + trap cleanup_current_source EXIT HUP INT TERM + git -C "$repo_root" worktree add --quiet --detach "$source_root" "$source_ref" + ( cd "$repo_root" AGENTIC_TS_VALIDATE_REPORTS=1 \ AGENTIC_TS_REPORTS_TO_CHECK="$reports_to_check" \ - AGENTIC_TS_SOURCE_ROOT="$repo_root" \ + AGENTIC_TS_SOURCE_ROOT="$source_root" \ tools/dev-test.sh p2 standard agentic_ts "" ) exit 0 fi +measurement_profile=standard +report_label= +release_baseline=false +if [ "${1:-}" = "--release" ]; then + measurement_profile=release + report_label=-release + release_baseline=true + shift +fi +if [ "$#" -ne 0 ]; then + echo "usage: tests/agentic_ts/run.sh [--release|--check|--check-current ...]" >&2 + exit 2 +fi + +if [ "$release_baseline" = true ]; then + node_overrides= + for variable in NODE_COMPILE_CACHE NODE_DEBUG NODE_DEBUG_NATIVE NODE_ENV NODE_INSPECT_RESUME_ON_START NODE_OPTIONS NODE_PATH NODE_PENDING_DEPRECATION; do + if printenv "$variable" >/dev/null 2>&1; then + node_overrides="${node_overrides}${node_overrides:+ }$variable" + fi + done + if [ -n "$node_overrides" ]; then + echo "release measurement rejects inherited Node configuration: $node_overrides" >&2 + exit 2 + fi +fi + platform=$(node -p 'process.platform') arch=$(node -p 'process.arch') case "$platform" in @@ -57,15 +130,19 @@ fi ) mkdir -p "$results_dir" +measurement_date=$(date +%Y-%m-%d) generated_reports="" for target in p2 p3; do - report="$results_dir/$(date +%Y-%m-%d)-$target-$platform-$arch.json" + report="$results_dir/${measurement_date}${report_label}-$target-$platform-$arch.json" ( cd "$repo_root" + if [ "$release_baseline" = true ]; then + export AGENTIC_TS_RELEASE_BASELINE=1 + fi AGENTIC_TS_ITERATIONS="$iterations" \ AGENTIC_TS_REPORT="$report" \ AGENTIC_TS_SOURCE_ROOT="$repo_root" \ - tools/dev-test.sh "$target" standard agentic_ts "" + tools/dev-test.sh "$target" "$measurement_profile" agentic_ts "" ) generated_reports="${generated_reports}${report}\n" done diff --git a/tests/agentic_ts/test-select-ci-currentness.sh b/tests/agentic_ts/test-select-ci-currentness.sh index 92d32339..02a79995 100755 --- a/tests/agentic_ts/test-select-ci-currentness.sh +++ b/tests/agentic_ts/test-select-ci-currentness.sh @@ -10,14 +10,49 @@ git -C "$fixture" init -q -b main git -C "$fixture" config user.email ci-test@example.invalid git -C "$fixture" config user.name 'CI contract test' mkdir -p "$fixture/tests/agentic_ts/results" +mkdir -p "$fixture/tests/npm_metadata/results" printf 'base\n' >"$fixture/build-input.txt" git -C "$fixture" add build-input.txt +git -C "$fixture" commit -qm base-source +base_source=$(git -C "$fixture" rev-parse HEAD) +printf '{"environment":{"commitHint":"%s"}}\n' "$base_source" \ + >"$fixture/tests/agentic_ts/results/base-p2-report.json" +printf '{"environment":{"commitHint":"%s"}}\n' "$base_source" \ + >"$fixture/tests/agentic_ts/results/base-p3-report.json" +printf '{"environment":{"commitHint":"%s"}}\n' "$base_source" \ + >"$fixture/tests/npm_metadata/results/base-p2-report.json" +printf '{"environment":{"commitHint":"%s"}}\n' "$base_source" \ + >"$fixture/tests/npm_metadata/results/base-p3-report.json" +printf '%s %s\n' "$base_source" tests/agentic_ts/results/base-p2-report.json \ + "$base_source" tests/agentic_ts/results/base-p3-report.json \ + >"$fixture/tests/agentic_ts/results/current-reports.txt" +printf '%s %s\n' "$base_source" tests/npm_metadata/results/base-p2-report.json \ + "$base_source" tests/npm_metadata/results/base-p3-report.json \ + >"$fixture/tests/npm_metadata/results/current-reports.txt" +git -C "$fixture" add tests git -C "$fixture" commit -qm base base=$(git -C "$fixture" rev-parse HEAD) git -C "$fixture" switch -qc report-branch -printf '{}\n' >"$fixture/tests/agentic_ts/results/report.json" -git -C "$fixture" add tests/agentic_ts/results/report.json +printf 'report source\n' >"$fixture/report-source.txt" +git -C "$fixture" add report-source.txt +git -C "$fixture" commit -qm report-source +report_source=$(git -C "$fixture" rev-parse HEAD) +printf '{"environment":{"commitHint":"%s"}}\n' "$report_source" \ + >"$fixture/tests/agentic_ts/results/report-p2-result.json" +printf '{"environment":{"commitHint":"%s"}}\n' "$report_source" \ + >"$fixture/tests/agentic_ts/results/report-p3-result.json" +printf '{"environment":{"commitHint":"%s"}}\n' "$report_source" \ + >"$fixture/tests/npm_metadata/results/report-p2-result.json" +printf '{"environment":{"commitHint":"%s"}}\n' "$report_source" \ + >"$fixture/tests/npm_metadata/results/report-p3-result.json" +printf '%s %s\n' "$report_source" tests/agentic_ts/results/report-p2-result.json \ + "$report_source" tests/agentic_ts/results/report-p3-result.json \ + >"$fixture/tests/agentic_ts/results/current-reports.txt" +printf '%s %s\n' "$report_source" tests/npm_metadata/results/report-p2-result.json \ + "$report_source" tests/npm_metadata/results/report-p3-result.json \ + >"$fixture/tests/npm_metadata/results/current-reports.txt" +git -C "$fixture" add tests git -C "$fixture" commit -qm report report_head=$(git -C "$fixture" rev-parse HEAD) @@ -30,17 +65,42 @@ git -C "$fixture" merge -q --no-ff report-branch -m merge assert_plan() { local event_name=$1 local before=$2 - local expected_source=$3 - local expected_report=$4 - local expected_pr_head=${5:-} + local expected_event_source=$3 + local expected_measurement_source=$4 + local expected_agentic_p2=$5 + local expected_agentic_p3=$6 + local expected_npm_p2=$7 + local expected_npm_p3=$8 + local expected_pr_head=${9:-} local plan plan=$(cd "$fixture" && "$selector" "$event_name" "$before" "$expected_pr_head") - grep -Fxq "source-ref=$expected_source" <<<"$plan" - grep -Fxq "$expected_report" <<<"$plan" + grep -Fxq "source-ref=$expected_event_source" <<<"$plan" + grep -Fxq "agentic-source-ref=$expected_measurement_source" <<<"$plan" + grep -Fxq "npm-source-ref=$expected_measurement_source" <<<"$plan" + for report in "$expected_agentic_p2" "$expected_agentic_p3" \ + "$expected_npm_p2" "$expected_npm_p3"; do + if [[ -n "$report" ]]; then + grep -Fxq "$report" <<<"$plan" + fi + done } -assert_plan pull_request '' "$report_head" tests/agentic_ts/results/report.json "$report_head" -assert_plan push "$main_parent" "$report_head" tests/agentic_ts/results/report.json +assert_no_report_selection() { + local plan=$1 + [[ "$plan" == *$'reports-to-check</dev/null 2>&1; then echo "mismatched pull-request head unexpectedly passed" >&2 @@ -51,19 +111,125 @@ if (cd "$fixture" && "$selector" pull_request '') >/dev/null 2>&1; then exit 1 fi +initial_merge_head=$(git -C "$fixture" rev-parse HEAD) +git -C "$fixture" switch -qc stale-pr +printf 'stale pull request change\n' >"$fixture/stale-pr.txt" +git -C "$fixture" add stale-pr.txt +git -C "$fixture" commit -qm stale-pr +stale_pr_head=$(git -C "$fixture" rev-parse HEAD) +git -C "$fixture" switch -q main +printf 'new main report source\n' >"$fixture/new-main-report-source.txt" +git -C "$fixture" add new-main-report-source.txt +git -C "$fixture" commit -qm new-main-report-source +new_main_report_source=$(git -C "$fixture" rev-parse HEAD) +for report in \ + tests/agentic_ts/results/report-p2-result.json \ + tests/agentic_ts/results/report-p3-result.json \ + tests/npm_metadata/results/report-p2-result.json \ + tests/npm_metadata/results/report-p3-result.json; do + printf '{"environment":{"commitHint":"%s"}}\n' "$new_main_report_source" \ + >"$fixture/$report" +done +printf '%s %s\n' \ + "$new_main_report_source" tests/agentic_ts/results/report-p2-result.json \ + "$new_main_report_source" tests/agentic_ts/results/report-p3-result.json \ + >"$fixture/tests/agentic_ts/results/current-reports.txt" +printf '%s %s\n' \ + "$new_main_report_source" tests/npm_metadata/results/report-p2-result.json \ + "$new_main_report_source" tests/npm_metadata/results/report-p3-result.json \ + >"$fixture/tests/npm_metadata/results/current-reports.txt" +git -C "$fixture" add tests +git -C "$fixture" commit -qm new-main-reports +new_main_head=$(git -C "$fixture" rev-parse HEAD) +git -C "$fixture" merge -q --no-ff stale-pr -m stale-pr-merge +assert_plan pull_request '' "$stale_pr_head" "$new_main_report_source" '' '' '' '' \ + "$stale_pr_head" +stale_pr_plan=$(cd "$fixture" && "$selector" pull_request '' "$stale_pr_head") +assert_no_report_selection "$stale_pr_plan" +assert_plan push "$new_main_head" "$stale_pr_head" "$new_main_report_source" '' '' '' '' +stale_push_plan=$(cd "$fixture" && "$selector" push "$new_main_head") +assert_no_report_selection "$stale_push_plan" +if git -C "$fixture" merge-base --is-ancestor "$new_main_report_source" "$stale_pr_head"; then + echo "concurrent main report source unexpectedly belongs to the stale PR" >&2 + exit 1 +fi +git -C "$fixture" reset -q --hard "$initial_merge_head" + previous=$(git -C "$fixture" rev-parse HEAD) -printf '{}\n' >"$fixture/tests/agentic_ts/results/direct.json" -git -C "$fixture" add tests/agentic_ts/results/direct.json +printf 'direct source\n' >"$fixture/direct-source.txt" +git -C "$fixture" add direct-source.txt +git -C "$fixture" commit -qm direct-source +direct_source=$(git -C "$fixture" rev-parse HEAD) +printf '{"environment":{"commitHint":"%s"}}\n' "$direct_source" \ + >"$fixture/tests/agentic_ts/results/direct-p2-result.json" +printf '{"environment":{"commitHint":"%s"}}\n' "$direct_source" \ + >"$fixture/tests/agentic_ts/results/direct-p3-result.json" +printf '{"environment":{"commitHint":"%s"}}\n' "$direct_source" \ + >"$fixture/tests/npm_metadata/results/direct-p2-result.json" +printf '{"environment":{"commitHint":"%s"}}\n' "$direct_source" \ + >"$fixture/tests/npm_metadata/results/direct-p3-result.json" +printf '%s %s\n' "$direct_source" tests/agentic_ts/results/direct-p2-result.json \ + "$direct_source" tests/agentic_ts/results/direct-p3-result.json \ + >"$fixture/tests/agentic_ts/results/current-reports.txt" +printf '%s %s\n' "$direct_source" tests/npm_metadata/results/direct-p2-result.json \ + "$direct_source" tests/npm_metadata/results/direct-p3-result.json \ + >"$fixture/tests/npm_metadata/results/current-reports.txt" +git -C "$fixture" add tests git -C "$fixture" commit -qm direct-push direct_head=$(git -C "$fixture" rev-parse HEAD) -assert_plan push "$previous" "$direct_head" tests/agentic_ts/results/direct.json +assert_plan push "$previous" "$direct_head" "$direct_source" \ + tests/agentic_ts/results/direct-p2-result.json \ + tests/agentic_ts/results/direct-p3-result.json \ + tests/npm_metadata/results/direct-p2-result.json \ + tests/npm_metadata/results/direct-p3-result.json zero_plan=$(cd "$fixture" && "$selector" push 0000000000000000000000000000000000000000) grep -Fqx "source-ref=$(git -C "$fixture" rev-parse HEAD)" <<<"$zero_plan" -if grep -Fqx tests/agentic_ts/results/direct.json <<<"$zero_plan"; then +grep -Fqx "agentic-source-ref=$direct_source" <<<"$zero_plan" +grep -Fqx "npm-source-ref=$direct_source" <<<"$zero_plan" +if grep -Fqx tests/agentic_ts/results/direct-p2-result.json <<<"$zero_plan"; then echo "zero-before push unexpectedly selected a current report" >&2 exit 1 fi +if grep -Fqx tests/npm_metadata/results/direct-p2-result.json <<<"$zero_plan"; then + echo "zero-before push unexpectedly selected a current npm report" >&2 + exit 1 +fi + +npm_manifest="$fixture/tests/npm_metadata/results/current-reports.txt" +printf '{"environment":{"commitHint":"%s"}}\n' "$direct_source" \ + >"$fixture/tests/npm_metadata/results/other-p3-result.json" +printf '%s %s\n' "$direct_source" tests/npm_metadata/results/direct-p2-result.json \ + "$direct_source" tests/npm_metadata/results/other-p3-result.json >"$npm_manifest" +if (cd "$fixture" && "$selector" push 0000000000000000000000000000000000000000) \ + >/dev/null 2>&1; then + echo "mixed current-report pair unexpectedly passed" >&2 + exit 1 +fi +printf '%s %s\n' "$base_source" tests/npm_metadata/results/direct-p2-result.json \ + "$base_source" tests/npm_metadata/results/direct-p3-result.json >"$npm_manifest" +if (cd "$fixture" && "$selector" push 0000000000000000000000000000000000000000) \ + >/dev/null 2>&1; then + echo "mismatched current-report source unexpectedly passed" >&2 + exit 1 +fi +printf '%s %s\n' "$direct_source" tests/npm_metadata/results/direct-p2-result.json \ + "$direct_source" tests/npm_metadata/results/direct-p3-result.json >"$npm_manifest" + +historical_base=$(git -C "$fixture" rev-parse HEAD) +printf '{}\n' >"$fixture/tests/agentic_ts/results/historical-p2-result.json" +printf '{}\n' >"$fixture/tests/npm_metadata/results/historical-p2-result.json" +git -C "$fixture" add tests/agentic_ts/results/historical-p2-result.json tests/npm_metadata/results/historical-p2-result.json +git -C "$fixture" commit -qm historical-reports +historical_plan=$(cd "$fixture" && "$selector" push "$historical_base") +if grep -Fqx tests/agentic_ts/results/historical-p2-result.json <<<"$historical_plan"; then + echo "historical agentic report unexpectedly selected for currentness" >&2 + exit 1 +fi +if grep -Fqx tests/npm_metadata/results/historical-p2-result.json <<<"$historical_plan"; then + echo "historical npm report unexpectedly selected for currentness" >&2 + exit 1 +fi git -C "$fixture" branch ambiguous-side "$previous" git -C "$fixture" switch -q ambiguous-side @@ -77,6 +243,39 @@ if (cd "$fixture" && "$selector" push "$previous") >/dev/null 2>&1; then exit 1 fi +main_head=$(git -C "$fixture" rev-parse HEAD) +git -C "$fixture" switch -qc unrelated-report-source "$base" +printf 'unrelated report source\n' >"$fixture/unrelated-report-source.txt" +git -C "$fixture" add unrelated-report-source.txt +git -C "$fixture" commit -qm unrelated-report-source +unrelated_report_source=$(git -C "$fixture" rev-parse HEAD) +git -C "$fixture" switch -q main +for report in \ + tests/agentic_ts/results/direct-p2-result.json \ + tests/agentic_ts/results/direct-p3-result.json \ + tests/npm_metadata/results/direct-p2-result.json \ + tests/npm_metadata/results/direct-p3-result.json; do + printf '{"environment":{"commitHint":"%s"}}\n' "$unrelated_report_source" \ + >"$fixture/$report" +done +printf '%s %s\n' \ + "$unrelated_report_source" tests/agentic_ts/results/direct-p2-result.json \ + "$unrelated_report_source" tests/agentic_ts/results/direct-p3-result.json \ + >"$fixture/tests/agentic_ts/results/current-reports.txt" +printf '%s %s\n' \ + "$unrelated_report_source" tests/npm_metadata/results/direct-p2-result.json \ + "$unrelated_report_source" tests/npm_metadata/results/direct-p3-result.json \ + >"$fixture/tests/npm_metadata/results/current-reports.txt" +if unrelated_error=$(cd "$fixture" && \ + "$selector" push 0000000000000000000000000000000000000000 2>&1); then + echo "unrelated current-report source unexpectedly passed" >&2 + exit 1 +fi +grep -Fq "current report source is not an ancestor of the checked-out source" \ + <<<"$unrelated_error" +git -C "$fixture" restore tests/agentic_ts/results tests/npm_metadata/results +[[ "$(git -C "$fixture" rev-parse HEAD)" == "$main_head" ]] + fake_bin="$fixture/fake-bin" mkdir "$fake_bin" real_git=$(command -v git) diff --git a/tests/common/mod.rs b/tests/common/mod.rs index be559fd0..0a48780d 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -237,6 +237,7 @@ impl ws_mock_p3::golem::websocket::client::HostWebsocketConnectionWithStore bool { truthy_env(TEST_ARTIFACT_CACHE_ENV) } +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +enum TestComponentProfile { + Dev, + Release, +} + +impl TestComponentProfile { + fn from_env() -> anyhow::Result { + match std::env::var(TEST_COMPONENT_PROFILE_ENV) { + Err(std::env::VarError::NotPresent) => Ok(Self::Dev), + Ok(value) if value == "dev" => Ok(Self::Dev), + Ok(value) if value == "release" => Ok(Self::Release), + Ok(value) => Err(anyhow!( + "unsupported {TEST_COMPONENT_PROFILE_ENV} value {value:?}; expected dev or release" + )), + Err(error) => Err(anyhow!( + "could not read {TEST_COMPONENT_PROFILE_ENV}: {error}" + )), + } + } + + fn label(self) -> &'static str { + match self { + Self::Dev => "dev", + Self::Release => "release", + } + } + + fn cargo_output_directory(self) -> &'static str { + match self { + Self::Dev => "debug", + Self::Release => "release", + } + } +} + fn test_drop_cache_enabled() -> bool { truthy_env(TEST_DROP_CACHE_ENV) } @@ -1681,6 +1718,7 @@ fn cache_stamp_signature( "RUSTC", "RUSTFLAGS", "RUSTUP_TOOLCHAIN", + TEST_COMPONENT_PROFILE_ENV, ] { if let Ok(value) = std::env::var(env_name) { signature.push_str(env_name); @@ -3962,6 +4000,19 @@ impl TestInstance { .await } + pub async fn from_prepared_with_memory_tracking( + prepared: &PreparedComponent, + ) -> anyhow::Result { + Self::from_parts( + &prepared.engine, + &prepared.linker, + &prepared.component, + None, + true, + ) + .await + } + pub async fn from_golem_prepared(prepared: &GolemPreparedComponent) -> anyhow::Result { Self::from_parts( &prepared.engine, @@ -4349,6 +4400,7 @@ impl CompiledTest { ) -> anyhow::Result { drop_test_artifact_cache_once(); let target = test_target(); + let component_profile = TestComponentProfile::from_env()?; let name = path.file_name().unwrap(); // P2 and P3 builds of the same example never share an output tree. let feature_label = format!("{}{}", feature_combination.label(), target.dir_suffix()); @@ -4365,16 +4417,17 @@ impl CompiledTest { Utf8Path::new("tmp") .join(&shared_target_name) .join("wasm32-wasip2") - .join("debug") + .join(component_profile.cargo_output_directory()) .join(&wasm_file_name) } else { wrapper_crate_root .join("target") .join("wasm32-wasip2") - .join("debug") + .join(component_profile.cargo_output_directory()) .join(&wasm_file_name) }; - let compile_stamp = test_cache_stamp(name, feature_combination, "compile"); + let compile_cache_kind = format!("compile-{}", component_profile.label()); + let compile_stamp = test_cache_stamp(name, feature_combination, &compile_cache_kind); let compile_inputs = vec![ path.to_path_buf(), Utf8Path::new("crates").join("wasm-rquickjs").join("src"), @@ -4399,6 +4452,7 @@ impl CompiledTest { ("target", "wasm32-wasip2".to_string()), ("generation_target", format!("{target:?}")), ("use_shared_target", use_shared_target.to_string()), + ("component_profile", component_profile.label().to_string()), ( "cargo_args", feature_combination.cargo_args_for_target(target).join("|"), @@ -4433,7 +4487,7 @@ impl CompiledTest { Some(TestCacheLock::acquire(test_cache_lock( name, feature_combination, - "compile", + &compile_cache_kind, ))?) } else { None @@ -4486,13 +4540,18 @@ impl CompiledTest { let build_wrapper = |offline: bool| -> std::io::Result<_> { let mut command = Command::new("cargo"); command.arg("build"); + if component_profile == TestComponentProfile::Release { + command.arg("--release"); + } if locked_build { command.arg("--locked"); } if offline { command.arg("--offline"); } - if feature_combination.includes_crypto_full() { + if component_profile == TestComponentProfile::Dev + && feature_combination.includes_crypto_full() + { command .arg("--config") .arg("profile.dev.package.rsa.opt-level=3") diff --git a/tests/dev_test_profiles.rs b/tests/dev_test_profiles.rs index 58190885..30a31612 100644 --- a/tests/dev_test_profiles.rs +++ b/tests/dev_test_profiles.rs @@ -14,12 +14,57 @@ struct Plan { command_args: Vec, } +fn remove_release_overrides(command: &mut Command) { + for (name, _) in std::env::vars() { + if matches!( + name.as_str(), + "CARGO_BUILD_RUSTFLAGS" + | "CARGO_ENCODED_RUSTFLAGS" + | "CARGO_HOME" + | "RUSTC" + | "RUSTC_WRAPPER" + | "RUSTC_WORKSPACE_WRAPPER" + | "RUSTFLAGS" + ) || name.starts_with("CARGO_PROFILE_RELEASE_") + || (name.starts_with("CARGO_TARGET_") && name.ends_with("_RUSTFLAGS")) + { + command.env_remove(name); + } + } +} + +fn remove_node_overrides(command: &mut Command) { + for name in [ + "NODE_COMPILE_CACHE", + "NODE_DEBUG", + "NODE_DEBUG_NATIVE", + "NODE_ENV", + "NODE_INSPECT_RESUME_ON_START", + "NODE_OPTIONS", + "NODE_PATH", + "NODE_PENDING_DEPRECATION", + ] { + command.env_remove(name); + } +} + fn plan(target: &str, profile: &str) -> Plan { let repo_root = Path::new(env!("CARGO_MANIFEST_DIR")); - let output = Command::new("bash") - .arg(repo_root.join("tools/dev-test.sh")) + let fixture = Utf8TempDir::new().expect("temporary plan fixture should be created"); + let fixture_tools = fixture.path().join("tools"); + fs::create_dir_all(&fixture_tools).expect("temporary tools directory should be created"); + let fixture_script = fixture_tools.join("dev-test.sh"); + fs::copy(repo_root.join("tools/dev-test.sh"), &fixture_script) + .expect("dev-test script should be copied into the isolated fixture"); + let mut command = Command::new("bash"); + command + .arg(fixture_script) .args([target, profile, "runtime", "profile_probe"]) - .env("WASM_RQUICKJS_DEV_TEST_PLAN_ONLY", "1") + .env("WASM_RQUICKJS_DEV_TEST_PLAN_ONLY", "1"); + if profile == "release" { + remove_release_overrides(&mut command); + } + let output = command .output() .expect("dev-test profile planning should run"); @@ -84,6 +129,8 @@ fn dev_test_profile_matrix_preserves_standard_and_fast_semantics() { }; assert_eq!(feature_list(&standard), expected_standard_features); assert_eq!(value(&standard, "artifact_cache"), "0"); + assert_eq!(value(&standard, "component_profile"), "dev"); + assert_eq!(value(&standard, "host_release"), "false"); assert_eq!(value(&standard, "locked_builds"), "0"); assert_eq!(value(&standard, "precompile_component"), "0"); assert_eq!(value(&standard, "prepared_component_cache"), "0"); @@ -97,6 +144,22 @@ fn dev_test_profile_matrix_preserves_standard_and_fast_semantics() { .any(|arg| arg == "--test-threads") ); + let release = plan(target, "release"); + assert_eq!(feature_list(&release), expected_standard_features); + assert_eq!(value(&release, "artifact_cache"), "0"); + assert_eq!(value(&release, "component_profile"), "release"); + assert_eq!(value(&release, "host_release"), "true"); + assert_eq!(value(&release, "locked_builds"), "1"); + assert_eq!(value(&release, "unoptimized"), "0"); + assert!(release.command_args.iter().any(|arg| arg == "--release")); + assert!(release.command_args.iter().any(|arg| arg == "--locked")); + assert!( + !release + .command_args + .iter() + .any(|arg| arg == "--test-threads") + ); + let fast_start = plan(target, "fast-start"); let mut expected_fast_features = vec!["wasm-rquickjs/external-skeleton"]; if target == "p2" { @@ -129,6 +192,177 @@ fn dev_test_profile_matrix_preserves_standard_and_fast_semantics() { } } +#[test] +fn release_profile_rejects_inherited_compiler_overrides() { + let repo_root = Path::new(env!("CARGO_MANIFEST_DIR")); + for (variable, value) in [ + ("CARGO_PROFILE_RELEASE_OPT_LEVEL", "0"), + ("RUSTFLAGS", "-Copt-level=0"), + ] { + let mut command = Command::new("bash"); + command + .arg(repo_root.join("tools/dev-test.sh")) + .args(["p3", "release", "agentic_ts", ""]) + .env("WASM_RQUICKJS_DEV_TEST_PLAN_ONLY", "1"); + remove_release_overrides(&mut command); + let output = command + .env(variable, value) + .output() + .expect("release profile planning should run"); + + assert!( + !output.status.success(), + "{variable} was unexpectedly accepted" + ); + let stderr = String::from_utf8_lossy(&output.stderr); + assert!( + stderr.contains(variable) && stderr.contains("rejects inherited"), + "unexpected rejection for {variable}: {stderr}" + ); + } + + let cargo_home = Utf8TempDir::new().expect("temporary Cargo home should be created"); + fs::write( + cargo_home.path().join("config.toml"), + "[profile.release]\nopt-level = 0\n", + ) + .expect("temporary Cargo config should be written"); + let mut command = Command::new("bash"); + command + .arg(repo_root.join("tools/dev-test.sh")) + .args(["p3", "release", "agentic_ts", ""]) + .env("WASM_RQUICKJS_DEV_TEST_PLAN_ONLY", "1"); + remove_release_overrides(&mut command); + let output = command + .env("CARGO_HOME", cargo_home.path()) + .output() + .expect("release profile planning should run"); + assert!( + !output.status.success(), + "redirected CARGO_HOME was accepted" + ); + assert!( + String::from_utf8_lossy(&output.stderr).contains("CARGO_HOME"), + "redirected Cargo config rejection did not identify CARGO_HOME" + ); + + let mut command = Command::new("bash"); + command + .arg(repo_root.join("tools/dev-test.sh")) + .args(["p3", "release", "agentic_ts", ""]) + .env("WASM_RQUICKJS_DEV_TEST_PLAN_ONLY", "1"); + remove_release_overrides(&mut command); + let output = command + .env("RUSTC", "/tmp/not-the-pinned-rustc") + .output() + .expect("release profile planning should run"); + assert!(!output.status.success(), "alternate RUSTC was accepted"); + assert!( + String::from_utf8_lossy(&output.stderr).contains("RUSTC"), + "alternate compiler rejection did not identify RUSTC" + ); +} + +#[test] +fn agentic_ts_release_runner_rejects_node_environment_overrides() { + let repo_root = Path::new(env!("CARGO_MANIFEST_DIR")); + for (variable, value) in [ + ("NODE_OPTIONS", "--trace-warnings"), + ("NODE_COMPILE_CACHE", "/tmp/node-compile-cache"), + ("NODE_ENV", "production"), + ] { + let mut command = Command::new("sh"); + command + .arg(repo_root.join("tests/agentic_ts/run.sh")) + .arg("--release") + .current_dir(repo_root); + remove_node_overrides(&mut command); + let output = command + .env(variable, value) + .output() + .expect("release runner guard should execute"); + + assert!( + !output.status.success(), + "{variable} was unexpectedly accepted" + ); + let stderr = String::from_utf8_lossy(&output.stderr); + assert!( + stderr.contains(variable) && stderr.contains("rejects inherited Node"), + "unexpected rejection for {variable}: {stderr}" + ); + } +} + +#[test] +fn agentic_ts_runner_uses_one_date_for_the_report_pair() { + let repo_root = Path::new(env!("CARGO_MANIFEST_DIR")); + let runner = fs::read_to_string(repo_root.join("tests/agentic_ts/run.sh")) + .expect("agentic TypeScript runner should be readable"); + + assert_eq!( + runner.matches("measurement_date=$(date +%Y-%m-%d)").count(), + 1, + "the report-pair date should be captured exactly once" + ); + assert!( + runner.contains( + "report=\"$results_dir/${measurement_date}${report_label}-$target-$platform-$arch.json\"" + ), + "both report paths should use the captured measurement date" + ); +} + +#[test] +fn npm_metadata_release_runner_rejects_node_environment_overrides() { + let repo_root = Path::new(env!("CARGO_MANIFEST_DIR")); + for (variable, value) in [ + ("NODE_OPTIONS", "--trace-warnings"), + ("NODE_COMPILE_CACHE", "/tmp/node-compile-cache"), + ("NODE_ENV", "production"), + ] { + let mut command = Command::new("sh"); + command + .arg(repo_root.join("tests/npm_metadata/run.sh")) + .arg("--release") + .current_dir(repo_root); + remove_node_overrides(&mut command); + let output = command + .env(variable, value) + .output() + .expect("release runner guard should execute"); + + assert!( + !output.status.success(), + "{variable} was unexpectedly accepted" + ); + let stderr = String::from_utf8_lossy(&output.stderr); + assert!( + stderr.contains(variable) && stderr.contains("rejects inherited Node"), + "unexpected rejection for {variable}: {stderr}" + ); + } +} + +#[test] +fn npm_metadata_runner_uses_one_date_for_the_report_pair() { + let repo_root = Path::new(env!("CARGO_MANIFEST_DIR")); + let runner = fs::read_to_string(repo_root.join("tests/npm_metadata/run.sh")) + .expect("npm metadata runner should be readable"); + + assert_eq!( + runner.matches("measurement_date=$(date +%Y-%m-%d)").count(), + 1, + "the report-pair date should be captured exactly once" + ); + assert!( + runner.contains( + "report=\"$results_dir/${measurement_date}-release-$target-$platform-$arch.json\"" + ), + "both report paths should use the captured measurement date" + ); +} + #[test] fn wasmtime_fork_transform_supports_copied_manifests_and_new_patch_crates() { let repo_root = Path::new(env!("CARGO_MANIFEST_DIR")); diff --git a/tests/esm_module_load_phases.rs b/tests/esm_module_load_phases.rs new file mode 100644 index 00000000..d8beee60 --- /dev/null +++ b/tests/esm_module_load_phases.rs @@ -0,0 +1,413 @@ +//! Manual phase attribution for the slow strip-mode prepared-ESM path. +//! +//! The default path validates checked-in reports. Set +//! `ESM_MODULE_LOAD_PHASES_MEASURE=1` to execute five fresh-job samples. + +#![allow(dead_code)] + +#[path = "common/mod.rs"] +mod common; + +use camino::Utf8Path; +use common::{CompiledTest, FeatureCombination, TestInstance, test_target}; +use serde_json::{Map, Value, json}; +use std::fs; +use std::process::Command; +use std::time::{Duration, Instant}; +use wasmtime::component::Val; + +const EXAMPLE_DIR: &str = "examples/runtime/esm-module-load-phases"; +const RESULTS_DIR: &str = "tests/esm_module_load_phases/results"; +const SOURCE_BYTES: u64 = 65_536; +const ITERATIONS: usize = 5; +const INVOCATION_DEADLINE_SECONDS: u64 = 120; +const PHASES: &[&str] = &[ + "esm.importMetaLoader.total", + "esm.importMetaLoader.realpath", + "esm.importMetaLoader.sourceRead", + "esm.importMetaLoader.importAttrs", + "esm.importMetaLoader.cjsGlobalPreflight", + "esm.importMetaLoader.namedImportDiagnostics", + "esm.importMetaLoader.topLevelAwaitScan", + "esm.importMetaLoader.prologueInjection", + "esm.importMetaLoader.sourceMapRegistration", + "esm.importMetaLoader.quickjsDeclare", + "esm.importMetaLoader.importMetaInit", + "esm.nodeFileResolve", +]; +const EXCLUSIVE_LOADER_PHASES: &[&str] = &[ + "realpath", + "sourceRead", + "importAttrs", + "cjsGlobalPreflight", + "namedImportDiagnostics", + "topLevelAwaitScan", + "prologueInjection", + "sourceMapRegistration", + "quickjsDeclare", + "importMetaInit", +]; + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + if std::env::var_os("ESM_MODULE_LOAD_PHASES_MEASURE").is_none() { + return validate_checked_reports(); + } + + let build_started = Instant::now(); + let compiled = CompiledTest::new_with_features( + Utf8Path::new(EXAMPLE_DIR), + true, + FeatureCombination::TypeScriptCompilerProfiling, + ) + .await?; + let build_ms = millis(build_started.elapsed()); + let component_bytes = fs::metadata(compiled.wasm_path())?.len(); + let instantiate_started = Instant::now(); + let mut instance = TestInstance::new_with_memory_tracking(compiled.wasm_path()).await?; + let instantiate_ms = millis(instantiate_started.elapsed()); + + let mut samples = Vec::new(); + for sample in 0..ITERATIONS { + eprintln!("measuring prepared ESM phase sample {}", sample + 1); + samples.push( + invoke_json( + &mut instance, + "measure-case", + &[Val::U64(SOURCE_BYTES), Val::U64(sample as u64)], + ) + .await?, + ); + } + + let report = json!({ + "schemaVersion": 1, + "environment": environment()?, + "inputs": { + "instrumentationPatchBlake3": hash_file(Utf8Path::new(&required_env("ESM_MODULE_LOAD_PHASES_PATCH_FILE")?))?, + "patchedFilesHash": patched_files_hash()?, + }, + "target": format!("{:?}", test_target()).to_lowercase(), + "mode": "strip", + "path": "prepared-esm", + "iterations": ITERATIONS, + "sourceBytes": SOURCE_BYTES, + "component": { + "bytes": component_bytes, + "blake3": hash_file(compiled.wasm_path())?, + "buildMs": build_ms, + "instantiateMs": instantiate_ms, + }, + "summary": summarize(&samples), + "samples": samples, + "wasmLinearMemoryHighWaterBytes": instance.linear_memory_high_water_bytes(), + "notes": [ + "manual local attribution; timings are not CI thresholds", + "each sample uses a unique module path and a fresh execution-job QuickJS runtime", + "the component instance is reused within one target report; runtime state is not", + "preEvaluationResidual includes uninstrumented resolver dispatch, QuickJS linking, and promise scheduling", + ], + }); + validate_report(&report)?; + let encoded = serde_json::to_string_pretty(&report)?; + if let Ok(path) = std::env::var("ESM_MODULE_LOAD_PHASES_REPORT") { + fs::write(path, format!("{encoded}\n"))?; + } + println!("{encoded}"); + Ok(()) +} + +async fn invoke_json( + instance: &mut TestInstance, + function: &str, + args: &[Val], +) -> anyhow::Result { + instance.set_epoch_deadline(INVOCATION_DEADLINE_SECONDS); + let started = Instant::now(); + let value = instance.invoke(None, function, args).await?; + let Some(Val::String(encoded)) = value else { + anyhow::bail!("{function} did not return a JSON string") + }; + let result: Value = serde_json::from_str(&encoded)?; + Ok(json!({ + "outerWallMs": millis(started.elapsed()), + "linearMemoryHighWaterBytes": instance.linear_memory_high_water_bytes(), + "derived": derive(&result)?, + "result": result, + })) +} + +fn derive(result: &Value) -> anyhow::Result { + let counters = result["profile"]["counters"] + .as_object() + .ok_or_else(|| anyhow::anyhow!("sample is missing profile counters"))?; + let micros = |phase: &str| -> anyhow::Result { + Ok(counters + .get(&format!("{phase}.micros")) + .and_then(Value::as_u64) + .ok_or_else(|| anyhow::anyhow!("missing {phase}.micros"))? as f64 + / 1000.0) + }; + let loader_total_ms = micros("esm.importMetaLoader.total")?; + let node_file_resolve_ms = micros("esm.nodeFileResolve")?; + let mut exclusive = Map::new(); + let mut known_loader_ms = 0.0; + for phase in EXCLUSIVE_LOADER_PHASES { + let value = micros(&format!("esm.importMetaLoader.{phase}"))?; + known_loader_ms += value; + exclusive.insert(format!("{phase}Ms"), json!(value)); + } + let marks = result["marks"] + .as_object() + .ok_or_else(|| anyhow::anyhow!("sample is missing JS marks"))?; + let mark = |name: &str| -> anyhow::Result { + marks + .get(name) + .and_then(Value::as_f64) + .ok_or_else(|| anyhow::anyhow!("missing {name} mark")) + }; + let import_start = mark("importStart")?; + let evaluation_start = mark("evaluationStart")?; + let evaluation_end = mark("evaluationEnd")?; + let import_resolved = mark("importResolved")?; + let pre_evaluation_ms = evaluation_start - import_start; + Ok(json!({ + "nodeFileResolveMs": node_file_resolve_ms, + "loaderTotalMs": loader_total_ms, + "exclusiveLoaderPhases": exclusive, + "knownLoaderMs": known_loader_ms, + "loaderMiscMs": loader_total_ms - known_loader_ms, + "preEvaluationMs": pre_evaluation_ms, + "preEvaluationResidualMs": pre_evaluation_ms - node_file_resolve_ms - loader_total_ms, + "evaluationMs": evaluation_end - evaluation_start, + "settlementMs": import_resolved - evaluation_end, + "importPromiseMs": import_resolved - import_start, + })) +} + +fn summarize(samples: &[Value]) -> Value { + let mut elapsed = samples + .iter() + .filter_map(|sample| sample.pointer("/result/elapsedMs").and_then(Value::as_f64)) + .collect::>(); + elapsed.sort_by(f64::total_cmp); + let mut pre_evaluation = samples + .iter() + .filter_map(|sample| { + sample + .pointer("/derived/preEvaluationMs") + .and_then(Value::as_f64) + }) + .collect::>(); + pre_evaluation.sort_by(f64::total_cmp); + json!({ + "medianElapsedMs": elapsed[elapsed.len() / 2], + "maximumElapsedMs": elapsed[elapsed.len() - 1], + "medianPreEvaluationMs": pre_evaluation[pre_evaluation.len() / 2], + }) +} + +fn validate_checked_reports() -> anyhow::Result<()> { + let directory = Utf8Path::new(RESULTS_DIR); + anyhow::ensure!(directory.exists(), "checked report directory is missing"); + let mut targets = std::collections::BTreeSet::new(); + for entry in fs::read_dir(directory)? { + let path = entry?.path(); + if path.extension().and_then(|value| value.to_str()) != Some("json") { + continue; + } + let report: Value = serde_json::from_slice(&fs::read(&path)?)?; + validate_report(&report).map_err(|error| anyhow::anyhow!("{}: {error}", path.display()))?; + let target = report["target"].as_str().unwrap().to_string(); + anyhow::ensure!(targets.insert(target), "duplicate target report"); + } + anyhow::ensure!( + targets == ["p2".to_string(), "p3".to_string()].into_iter().collect(), + "checked reports must contain exactly one P2 and one P3 report" + ); + Ok(()) +} + +fn validate_report(report: &Value) -> anyhow::Result<()> { + anyhow::ensure!(report["schemaVersion"] == 1, "unexpected report schema"); + anyhow::ensure!( + matches!(report["target"].as_str(), Some("p2" | "p3")), + "invalid target" + ); + anyhow::ensure!( + report["mode"] == "strip" && report["path"] == "prepared-esm", + "invalid workload" + ); + anyhow::ensure!( + report["iterations"] == ITERATIONS && report["sourceBytes"] == SOURCE_BYTES, + "invalid sample shape" + ); + anyhow::ensure!( + report["environment"]["baseRevision"] + .as_str() + .is_some_and(is_git_sha) + && report["inputs"]["instrumentationPatchBlake3"] + .as_str() + .is_some_and(is_blake3) + && report["inputs"]["patchedFilesHash"] + .as_str() + .is_some_and(is_blake3) + && report["component"]["blake3"] + .as_str() + .is_some_and(is_blake3), + "report source or component identity is incomplete" + ); + let samples = report["samples"] + .as_array() + .ok_or_else(|| anyhow::anyhow!("missing samples"))?; + anyhow::ensure!(samples.len() == ITERATIONS, "wrong sample count"); + let mut elapsed = Vec::new(); + let mut pre_evaluation = Vec::new(); + for sample in samples { + let result = &sample["result"]; + anyhow::ensure!( + result["value"] == 42 && result["overflowed"] == false, + "prepared ESM returned an invalid result" + ); + anyhow::ensure!( + result["requestedSourceBytes"] == SOURCE_BYTES, + "source size differs from report" + ); + anyhow::ensure!( + result["profile"]["version"] == 1, + "missing execution profile" + ); + let counters = result["profile"]["counters"] + .as_object() + .ok_or_else(|| anyhow::anyhow!("missing counters"))?; + for phase in PHASES { + anyhow::ensure!( + counters + .get(&format!("{phase}.calls")) + .and_then(Value::as_u64) + == Some(1), + "{phase} did not run exactly once" + ); + anyhow::ensure!( + counters + .get(&format!("{phase}.micros")) + .and_then(Value::as_u64) + .is_some(), + "{phase} is missing duration" + ); + } + let marks = &result["marks"]; + let ordered = [ + "importStart", + "evaluationStart", + "evaluationEnd", + "importResolved", + ] + .into_iter() + .map(|name| { + marks[name] + .as_f64() + .ok_or_else(|| anyhow::anyhow!("missing {name}")) + }) + .collect::>>()?; + anyhow::ensure!( + ordered.windows(2).all(|pair| pair[0] <= pair[1]), + "JS timestamps are not monotonic" + ); + let loader_total = sample["derived"]["loaderTotalMs"].as_f64().unwrap(); + let known_loader = sample["derived"]["knownLoaderMs"].as_f64().unwrap(); + anyhow::ensure!( + loader_total + 0.050 >= known_loader, + "exclusive loader phases exceed loader total" + ); + let import_promise = sample["derived"]["importPromiseMs"].as_f64().unwrap(); + let user_await = result["profile"]["phasesMs"]["userAwait"] + .as_f64() + .ok_or_else(|| anyhow::anyhow!("missing userAwait"))?; + anyhow::ensure!( + user_await + 1.0 >= import_promise, + "userAwait does not cover the import promise" + ); + elapsed.push(result["elapsedMs"].as_f64().unwrap()); + pre_evaluation.push(sample["derived"]["preEvaluationMs"].as_f64().unwrap()); + } + elapsed.sort_by(f64::total_cmp); + pre_evaluation.sort_by(f64::total_cmp); + anyhow::ensure!( + approximately_equal( + report["summary"]["medianElapsedMs"].as_f64(), + Some(elapsed[2]) + ) && approximately_equal( + report["summary"]["maximumElapsedMs"].as_f64(), + elapsed.last().copied() + ) && approximately_equal( + report["summary"]["medianPreEvaluationMs"].as_f64(), + Some(pre_evaluation[2]) + ), + "summary does not match raw samples" + ); + Ok(()) +} + +fn environment() -> anyhow::Result { + Ok(json!({ + "baseRevision": required_env("ESM_MODULE_LOAD_PHASES_BASE_REVISION")?, + "dirty": !command_text(Command::new("git").args(["status", "--porcelain"]))?.is_empty(), + "os": std::env::consts::OS, + "arch": std::env::consts::ARCH, + "rustc": command_text(Command::new("rustc").arg("--version"))?, + "cargo": command_text(Command::new("cargo").arg("--version"))?, + "artifactCache": std::env::var("WASM_RQUICKJS_TEST_ARTIFACT_CACHE").ok(), + "wasmtimeCache": std::env::var("WASM_RQUICKJS_TEST_WASMTIME_CACHE").ok(), + })) +} + +fn patched_files_hash() -> anyhow::Result { + let mut hasher = blake3::Hasher::new(); + for path in [ + "crates/wasm-rquickjs/skeleton/Cargo.toml_", + "crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs", + ] { + let bytes = fs::read(path)?; + hasher.update(&(path.len() as u64).to_le_bytes()); + hasher.update(path.as_bytes()); + hasher.update(&(bytes.len() as u64).to_le_bytes()); + hasher.update(&bytes); + } + Ok(hasher.finalize().to_hex().to_string()) +} + +fn hash_file(path: &Utf8Path) -> anyhow::Result { + Ok(blake3::hash(&fs::read(path)?).to_hex().to_string()) +} + +fn required_env(name: &str) -> anyhow::Result { + std::env::var(name).map_err(|_| anyhow::anyhow!("{name} is required while measuring")) +} + +fn command_text(command: &mut Command) -> anyhow::Result { + let output = command.output()?; + anyhow::ensure!( + output.status.success(), + "command failed: {}", + String::from_utf8_lossy(&output.stderr) + ); + Ok(String::from_utf8(output.stdout)?.trim().to_string()) +} + +fn millis(duration: Duration) -> f64 { + duration.as_secs_f64() * 1000.0 +} + +fn approximately_equal(left: Option, right: Option) -> bool { + left.zip(right) + .is_some_and(|(left, right)| (left - right).abs() <= f64::EPSILON * 8.0) +} + +fn is_blake3(value: &str) -> bool { + value.len() == 64 && value.bytes().all(|byte| byte.is_ascii_hexdigit()) +} + +fn is_git_sha(value: &str) -> bool { + value.len() == 40 && value.bytes().all(|byte| byte.is_ascii_hexdigit()) +} diff --git a/tests/esm_module_load_phases/2026-09-21-instrumentation.patch b/tests/esm_module_load_phases/2026-09-21-instrumentation.patch new file mode 100644 index 00000000..04e3f848 --- /dev/null +++ b/tests/esm_module_load_phases/2026-09-21-instrumentation.patch @@ -0,0 +1,212 @@ +diff --git a/crates/wasm-rquickjs/skeleton/Cargo.toml_ b/crates/wasm-rquickjs/skeleton/Cargo.toml_ +index a163394d..be9ff9b2 100644 +--- a/crates/wasm-rquickjs/skeleton/Cargo.toml_ ++++ b/crates/wasm-rquickjs/skeleton/Cargo.toml_ +@@ -93,7 +93,7 @@ typescript-transform-runtime = ["typescript-runtime"] + # Private test instrumentation. Individual test combinations opt into the + # capabilities they observe; this umbrella is excluded from every runtime tier. + test-observability = [] +-typescript-compiler-profiling = ["typescript-transform-runtime", "test-observability"] ++typescript-compiler-profiling = ["typescript-runtime", "test-observability"] + + # WebSocket support via the target-specific `golem:websocket@1.5.0` bindings. + websocket = ["dep:golem-websocket"] +diff --git a/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs b/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs +index 85e18a7b..988f3c2b 100644 +--- a/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs ++++ b/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs +@@ -22,8 +22,52 @@ use std::hash::BuildHasher; + use std::ops::ControlFlow; + use std::rc::Rc; + use std::sync::atomic::{AtomicUsize, Ordering}; ++#[cfg(feature = "typescript-compiler-profiling")] ++use std::time::Instant; + use std::time::{SystemTime, UNIX_EPOCH}; + ++#[cfg(feature = "typescript-compiler-profiling")] ++struct EsmPhaseTimer { ++ profile: Option>, ++ phase: &'static str, ++ started: Instant, ++} ++ ++#[cfg(feature = "typescript-compiler-profiling")] ++impl EsmPhaseTimer { ++ fn new(ctx: &Ctx<'_>, phase: &'static str) -> Self { ++ let profile = ctx ++ .userdata::() ++ .expect("runtime services not initialized") ++ .execution_profile(); ++ Self { ++ profile, ++ phase, ++ started: Instant::now(), ++ } ++ } ++} ++ ++#[cfg(feature = "typescript-compiler-profiling")] ++impl Drop for EsmPhaseTimer { ++ fn drop(&mut self) { ++ if let Some(profile) = &self.profile { ++ profile.increment(&format!("{}.calls", self.phase)); ++ profile.add( ++ &format!("{}.micros", self.phase), ++ self.started.elapsed().as_micros().min(u128::from(u64::MAX)) as u64, ++ ); ++ } ++ } ++} ++ ++macro_rules! esm_phase_timer { ++ ($ctx:expr, $phase:literal) => { ++ #[cfg(feature = "typescript-compiler-profiling")] ++ let _esm_phase_timer = EsmPhaseTimer::new($ctx, $phase); ++ }; ++} ++ + pub(crate) const IMPORT_META_RESOLVE_JS: &str = r#"const __wasm_rquickjs_import_meta_resolve_global = globalThis; + function __wasm_rquickjs_import_meta_resolve_impl(baseUrl, specifier) { + baseUrl = String(baseUrl); +@@ -3856,6 +3900,7 @@ impl NodeFileResolver { + + impl Resolver for NodeFileResolver { + fn resolve<'js>(&mut self, ctx: &Ctx<'js>, base: &str, name: &str) -> rquickjs::Result { ++ esm_phase_timer!(ctx, "esm.nodeFileResolve"); + if name.contains("://") || name.starts_with("node:") { + return Err(Error::new_resolving(base, name)); + } +@@ -10178,6 +10223,7 @@ fn read_module_source_or_throw<'js>( + module_id: &str, + source_path: &str, + ) -> rquickjs::Result { ++ esm_phase_timer!(ctx, "esm.importMetaLoader.sourceRead"); + #[cfg(feature = "typescript-compiler-profiling")] + let profile = ctx + .userdata::() +@@ -11934,47 +11980,74 @@ fn declare_esm_file_module_from_source<'js>( + ) -> rquickjs::Result> { + let fs_abs_path = ensure_absolute_path(fs_path); + let module_abs_path = ensure_absolute_path(module_id); +- let processed = process_static_import_attrs(&raw_source, module_id); ++ let processed = { ++ esm_phase_timer!(ctx, "esm.importMetaLoader.importAttrs"); ++ process_static_import_attrs(&raw_source, module_id) ++ }; + let source = &processed.source; + let init = file_import_meta_init(url, fs_abs_path.clone()); +- let raw_cjs_global_messages = require_esm_in_progress(ctx, &fs_abs_path, &init.url); +- + let globals = ctx.globals(); +- if let Ok(cache) = globals.get::<_, Object>("__esm_error_cache") +- && let Ok(cached_error) = cache.get::<_, Value>(module_id) +- && !cached_error.is_undefined() + { +- return Err(ctx.throw(cached_error)); ++ esm_phase_timer!(ctx, "esm.importMetaLoader.cjsGlobalPreflight"); ++ let raw_cjs_global_messages = require_esm_in_progress(ctx, &fs_abs_path, &init.url); ++ if let Ok(cache) = globals.get::<_, Object>("__esm_error_cache") ++ && let Ok(cached_error) = cache.get::<_, Value>(module_id) ++ && !cached_error.is_undefined() ++ { ++ return Err(ctx.throw(cached_error)); ++ } ++ if let Some(error_source) = ++ esm_file_preflight_error_module_source(source, preflight_mode, raw_cjs_global_messages) ++ { ++ return Module::declare(ctx.clone(), module_id, error_source.as_bytes().to_vec()); ++ } + } +- +- if let Some(error_source) = +- esm_file_preflight_error_module_source(source, preflight_mode, raw_cjs_global_messages) + { +- return Module::declare(ctx.clone(), module_id, error_source.as_bytes().to_vec()); +- } +- if let Some(error_source) = cjs_named_import_error_module_source(ctx, &fs_abs_path, source) { +- return Module::declare(ctx.clone(), module_id, error_source.as_bytes().to_vec()); ++ esm_phase_timer!(ctx, "esm.importMetaLoader.namedImportDiagnostics"); ++ if let Some(error_source) = cjs_named_import_error_module_source(ctx, &fs_abs_path, source) { ++ return Module::declare(ctx.clone(), module_id, error_source.as_bytes().to_vec()); ++ } + } + +- let has_top_level_await = source_has_top_level_await(source, true); +- let injected = inject_module_source_prologue( +- init.filename.as_deref(), +- source, +- processed.dynamic_import_binding_names.as_ref(), +- ); +- if let Ok(register_source_map) = +- globals.get::<_, Function>("__wasm_rquickjs_register_transformed_source_map") ++ let has_top_level_await = { ++ esm_phase_timer!(ctx, "esm.importMetaLoader.topLevelAwaitScan"); ++ source_has_top_level_await(source, true) ++ }; ++ let injected = { ++ esm_phase_timer!(ctx, "esm.importMetaLoader.prologueInjection"); ++ inject_module_source_prologue( ++ init.filename.as_deref(), ++ source, ++ processed.dynamic_import_binding_names.as_ref(), ++ ) ++ }; + { +- register_source_map.call::<_, ()>(( +- fs_abs_path.as_str(), +- injected.as_str(), +- module_id, +- 1, +- 0, +- true, +- ))?; ++ esm_phase_timer!(ctx, "esm.importMetaLoader.sourceMapRegistration"); ++ if let Ok(register_source_map) = ++ globals.get::<_, Function>("__wasm_rquickjs_register_transformed_source_map") ++ { ++ register_source_map.call::<_, ()>(( ++ fs_abs_path.as_str(), ++ injected.as_str(), ++ module_id, ++ 1, ++ 0, ++ true, ++ ))?; ++ } + } +- match declare_module_with_import_meta(ctx, module_id, &injected, &init) { ++ let declared = { ++ esm_phase_timer!(ctx, "esm.importMetaLoader.quickjsDeclare"); ++ Module::declare(ctx.clone(), module_id, injected.as_bytes().to_vec()) ++ }; ++ let declared = declared.and_then(|module| { ++ { ++ esm_phase_timer!(ctx, "esm.importMetaLoader.importMetaInit"); ++ initialize_module_import_meta(ctx, &module, &init)?; ++ } ++ Ok(module) ++ }); ++ match declared { + Ok(module) => { + if has_top_level_await { + mark_async_esm_module(ctx, &globals, &module_abs_path, &init.url)?; +@@ -12013,6 +12086,7 @@ impl Loader for ImportMetaLoader { + ctx: &Ctx<'js>, + path: &str, + ) -> rquickjs::Result> { ++ esm_phase_timer!(ctx, "esm.importMetaLoader.total"); + let fs_path = module_filesystem_path(path); + let is_extensionless = std::path::Path::new(fs_path).extension().is_none(); + if !fs_path.ends_with(".mjs") && !is_extensionless { +@@ -12032,7 +12106,10 @@ impl Loader for ImportMetaLoader { + return throw_import_attr_type_incompatible(ctx); + } + +- let source_path = module_source_filesystem_path(ctx, path); ++ let source_path = { ++ esm_phase_timer!(ctx, "esm.importMetaLoader.realpath"); ++ module_source_filesystem_path(ctx, path) ++ }; + declare_esm_file_module( + ctx, + path, diff --git a/tests/esm_module_load_phases/README.md b/tests/esm_module_load_phases/README.md new file mode 100644 index 00000000..6ccd04f5 --- /dev/null +++ b/tests/esm_module_load_phases/README.md @@ -0,0 +1,40 @@ +# ESM module-load phase attribution + +This manual experiment attributes the roughly 11-second strip-mode prepared-ESM +latency reproduced by `tests/typescript_transform_latency`. It runs five serial +64-KiB samples for P2 and P3. Every sample creates a fresh execution-job QuickJS +runtime and a unique `.mjs` path; only the compiled component instance is reused +within a target report. + +The checked-in instrumentation patch is deliberately not applied to production +source. It records exclusive loader subphases and the surrounding resolver time in +the existing private execution profile. Same-runtime JavaScript timestamps locate +evaluation within the import promise. The remaining pre-evaluation interval is +reported as a residual containing unresolved resolver-chain dispatch, QuickJS +linking, and promise scheduling; it is not called an exact link timer. + +Run one target at a time from the repository root: + +```sh +tests/esm_module_load_phases/run.sh p2 +tests/esm_module_load_phases/run.sh p3 +``` + +The runner creates a detached temporary worktree at the current committed source, +verifies and applies the retained patch there, records one report, and removes the +worktree. This keeps the validated transform-latency reports current. Optional +artifact and Wasmtime caches remain disabled. Validate retained reports without +executing workloads with: + +```sh +tests/esm_module_load_phases/run.sh --check +``` + +The 2026-09-21 baseline capture attributed virtually all of the delay to the +CJS-global preflight scan and module-prologue injection. Each consumed about +5.2–5.4 seconds for the whitespace-preserving 64-KiB source, while QuickJS +declaration, filesystem resolution, evaluation, and the unresolved residual were +sub-millisecond. A narrowed production change now bulk-skips contiguous ASCII +whitespace in those scanners. The retained exact-revision candidate reports reduce +the P2/P3 end-to-end medians from 10.66/11.06 seconds to 192/197 milliseconds. See +the results README for the exact medians and interpretation. diff --git a/tests/esm_module_load_phases/results/2026-09-21-p2-macos-aarch64.json b/tests/esm_module_load_phases/results/2026-09-21-p2-macos-aarch64.json new file mode 100644 index 00000000..7d8efa5c --- /dev/null +++ b/tests/esm_module_load_phases/results/2026-09-21-p2-macos-aarch64.json @@ -0,0 +1,552 @@ +{ + "component": { + "blake3": "6afcddfb1cf9a53e60bfaac6ad45d69fa22e7aacd3365ae336eda4d9e2feab45", + "buildMs": 60423.962125000005, + "bytes": 174730364, + "instantiateMs": 14663.023958 + }, + "environment": { + "arch": "aarch64", + "artifactCache": null, + "baseRevision": "7bed8b048cbafc43bc2a300c8d7b48733bf05386", + "cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)", + "dirty": true, + "os": "macos", + "rustc": "rustc 1.98.1 (48a229cea 2026-09-01)", + "wasmtimeCache": null + }, + "inputs": { + "instrumentationPatchBlake3": "9ce449f5620139641768110fbb31f45e8fcf88ba6d8f3c2a891cb74264b8c242", + "patchedFilesHash": "0584982a4064bb630dcd53c1959066421dbeefec8fb906f993ed9d1752d90d68" + }, + "iterations": 5, + "mode": "strip", + "notes": [ + "manual local attribution; timings are not CI thresholds", + "each sample uses a unique module path and a fresh execution-job QuickJS runtime", + "the component instance is reused within one target report; runtime state is not", + "preEvaluationResidual includes uninstrumented resolver dispatch, QuickJS linking, and promise scheduling" + ], + "path": "prepared-esm", + "samples": [ + { + "derived": { + "evaluationMs": 0.003500000000002501, + "exclusiveLoaderPhases": { + "cjsGlobalPreflightMs": 0.43, + "importAttrsMs": 4.239, + "importMetaInitMs": 0.017, + "namedImportDiagnosticsMs": 7.634, + "prologueInjectionMs": 0.499, + "quickjsDeclareMs": 0.156, + "realpathMs": 0.011, + "sourceMapRegistrationMs": 0.169, + "sourceReadMs": 0.894, + "topLevelAwaitScanMs": 0.178 + }, + "importPromiseMs": 15.232499999999959, + "knownLoaderMs": 14.227000000000002, + "loaderMiscMs": 0.17599999999999838, + "loaderTotalMs": 14.403, + "nodeFileResolveMs": 0.568, + "preEvaluationMs": 15.20791699999998, + "preEvaluationResidualMs": 0.2369169999999805, + "settlementMs": 0.021082999999975982 + }, + "linearMemoryHighWaterBytes": 20119552, + "outerWallMs": 347.07687500000003, + "result": { + "actualSourceBytes": 65761, + "elapsedMs": 195.80408299999908, + "marks": { + "evaluationEnd": 185.113625, + "evaluationStart": 185.110125, + "importResolved": 185.134708, + "importStart": 169.90220800000003 + }, + "overflowed": false, + "preparedSourceBytes": 65761, + "profile": { + "counters": { + "esm.importMetaLoader.cjsGlobalPreflight.calls": 1, + "esm.importMetaLoader.cjsGlobalPreflight.micros": 430, + "esm.importMetaLoader.importAttrs.calls": 1, + "esm.importMetaLoader.importAttrs.micros": 4239, + "esm.importMetaLoader.importMetaInit.calls": 1, + "esm.importMetaLoader.importMetaInit.micros": 17, + "esm.importMetaLoader.namedImportDiagnostics.calls": 1, + "esm.importMetaLoader.namedImportDiagnostics.micros": 7634, + "esm.importMetaLoader.prologueInjection.calls": 1, + "esm.importMetaLoader.prologueInjection.micros": 499, + "esm.importMetaLoader.quickjsDeclare.calls": 1, + "esm.importMetaLoader.quickjsDeclare.micros": 156, + "esm.importMetaLoader.realpath.calls": 1, + "esm.importMetaLoader.realpath.micros": 11, + "esm.importMetaLoader.sourceMapRegistration.calls": 1, + "esm.importMetaLoader.sourceMapRegistration.micros": 169, + "esm.importMetaLoader.sourceRead.calls": 1, + "esm.importMetaLoader.sourceRead.micros": 894, + "esm.importMetaLoader.topLevelAwaitScan.calls": 1, + "esm.importMetaLoader.topLevelAwaitScan.micros": 178, + "esm.importMetaLoader.total.calls": 1, + "esm.importMetaLoader.total.micros": 14403, + "esm.nodeFileResolve.calls": 1, + "esm.nodeFileResolve.micros": 568, + "filesystem.realpath.calls": 1, + "filesystem.realpath.success": 1, + "modules.directoryProbe.calls": 1, + "modules.directoryProbe.missing": 1, + "modules.directoryProbe.systemCalls": 1, + "modules.fileProbe.calls": 1, + "modules.fileProbe.found": 1, + "modules.fileProbe.systemCalls": 1, + "modules.pathProbe.systemCalls": 2, + "modules.realpath.cacheHits": 1, + "modules.realpath.calls": 2, + "modules.realpath.systemCalls": 1, + "modules.resolve.calls": 1, + "modules.resolve.missing": 1, + "modules.resolve.specifier.absolute": 1, + "modules.sourceRead.bytes": 65761, + "modules.sourceRead.calls": 1, + "modules.sourceRead.success": 1 + }, + "phasesMs": { + "builtinInitialization": 168.011583, + "initialEvaluation": 0.090666, + "loaderInitialization": 1.457125, + "processConfiguration": 0.173792, + "queueDelay": 1.070833, + "resultFormatting": 0.012, + "runtimeCreation": 0.471083, + "teardown": 7.953666999999999, + "transportWiring": 0.132542, + "userAwait": 15.413125, + "wrapperPreparation": 0.014125 + }, + "totalMs": 194.83175, + "version": 1 + }, + "requestedSourceBytes": 65536, + "value": 42 + } + }, + { + "derived": { + "evaluationMs": 0.0031669999999621723, + "exclusiveLoaderPhases": { + "cjsGlobalPreflightMs": 0.424, + "importAttrsMs": 4.273, + "importMetaInitMs": 0.014, + "namedImportDiagnosticsMs": 7.545, + "prologueInjectionMs": 0.587, + "quickjsDeclareMs": 0.14, + "realpathMs": 0.011, + "sourceMapRegistrationMs": 0.159, + "sourceReadMs": 0.607, + "topLevelAwaitScanMs": 0.178 + }, + "importPromiseMs": 14.852208000000047, + "knownLoaderMs": 13.938, + "loaderMiscMs": 0.17300000000000004, + "loaderTotalMs": 14.111, + "nodeFileResolveMs": 0.55, + "preEvaluationMs": 14.836333000000081, + "preEvaluationResidualMs": 0.17533300000008012, + "settlementMs": 0.012708000000003494 + }, + "linearMemoryHighWaterBytes": 20119552, + "outerWallMs": 335.131916, + "result": { + "actualSourceBytes": 65761, + "elapsedMs": 194.15816600000107, + "marks": { + "evaluationEnd": 184.551083, + "evaluationStart": 184.54791600000004, + "importResolved": 184.563791, + "importStart": 169.71158299999996 + }, + "overflowed": false, + "preparedSourceBytes": 65761, + "profile": { + "counters": { + "esm.importMetaLoader.cjsGlobalPreflight.calls": 1, + "esm.importMetaLoader.cjsGlobalPreflight.micros": 424, + "esm.importMetaLoader.importAttrs.calls": 1, + "esm.importMetaLoader.importAttrs.micros": 4273, + "esm.importMetaLoader.importMetaInit.calls": 1, + "esm.importMetaLoader.importMetaInit.micros": 14, + "esm.importMetaLoader.namedImportDiagnostics.calls": 1, + "esm.importMetaLoader.namedImportDiagnostics.micros": 7545, + "esm.importMetaLoader.prologueInjection.calls": 1, + "esm.importMetaLoader.prologueInjection.micros": 587, + "esm.importMetaLoader.quickjsDeclare.calls": 1, + "esm.importMetaLoader.quickjsDeclare.micros": 140, + "esm.importMetaLoader.realpath.calls": 1, + "esm.importMetaLoader.realpath.micros": 11, + "esm.importMetaLoader.sourceMapRegistration.calls": 1, + "esm.importMetaLoader.sourceMapRegistration.micros": 159, + "esm.importMetaLoader.sourceRead.calls": 1, + "esm.importMetaLoader.sourceRead.micros": 607, + "esm.importMetaLoader.topLevelAwaitScan.calls": 1, + "esm.importMetaLoader.topLevelAwaitScan.micros": 178, + "esm.importMetaLoader.total.calls": 1, + "esm.importMetaLoader.total.micros": 14111, + "esm.nodeFileResolve.calls": 1, + "esm.nodeFileResolve.micros": 550, + "filesystem.realpath.calls": 1, + "filesystem.realpath.success": 1, + "modules.directoryProbe.calls": 1, + "modules.directoryProbe.missing": 1, + "modules.directoryProbe.systemCalls": 1, + "modules.fileProbe.calls": 1, + "modules.fileProbe.found": 1, + "modules.fileProbe.systemCalls": 1, + "modules.pathProbe.systemCalls": 2, + "modules.realpath.cacheHits": 1, + "modules.realpath.calls": 2, + "modules.realpath.systemCalls": 1, + "modules.resolve.calls": 1, + "modules.resolve.missing": 1, + "modules.resolve.specifier.absolute": 1, + "modules.sourceRead.bytes": 65761, + "modules.sourceRead.calls": 1, + "modules.sourceRead.success": 1 + }, + "phasesMs": { + "builtinInitialization": 168.719, + "initialEvaluation": 0.083916, + "loaderInitialization": 0.694209, + "processConfiguration": 0.087958, + "queueDelay": 0.363667, + "resultFormatting": 0.006917, + "runtimeCreation": 0.417666, + "teardown": 7.834458000000001, + "transportWiring": 0.098958, + "userAwait": 15.001, + "wrapperPreparation": 0.017334 + }, + "totalMs": 193.343458, + "version": 1 + }, + "requestedSourceBytes": 65536, + "value": 42 + } + }, + { + "derived": { + "evaluationMs": 0.004165999999969472, + "exclusiveLoaderPhases": { + "cjsGlobalPreflightMs": 0.428, + "importAttrsMs": 4.238, + "importMetaInitMs": 0.015, + "namedImportDiagnosticsMs": 7.557, + "prologueInjectionMs": 0.574, + "quickjsDeclareMs": 0.138, + "realpathMs": 0.011, + "sourceMapRegistrationMs": 0.181, + "sourceReadMs": 0.583, + "topLevelAwaitScanMs": 0.184 + }, + "importPromiseMs": 14.744749999999954, + "knownLoaderMs": 13.908999999999999, + "loaderMiscMs": 0.16900000000000048, + "loaderTotalMs": 14.078, + "nodeFileResolveMs": 0.472, + "preEvaluationMs": 14.72529199999994, + "preEvaluationResidualMs": 0.17529199999994027, + "settlementMs": 0.015292000000044936 + }, + "linearMemoryHighWaterBytes": 20185088, + "outerWallMs": 333.54033300000003, + "result": { + "actualSourceBytes": 65761, + "elapsedMs": 192.27720899999983, + "marks": { + "evaluationEnd": 182.46833299999992, + "evaluationStart": 182.46416699999995, + "importResolved": 182.48362499999996, + "importStart": 167.738875 + }, + "overflowed": false, + "preparedSourceBytes": 65761, + "profile": { + "counters": { + "esm.importMetaLoader.cjsGlobalPreflight.calls": 1, + "esm.importMetaLoader.cjsGlobalPreflight.micros": 428, + "esm.importMetaLoader.importAttrs.calls": 1, + "esm.importMetaLoader.importAttrs.micros": 4238, + "esm.importMetaLoader.importMetaInit.calls": 1, + "esm.importMetaLoader.importMetaInit.micros": 15, + "esm.importMetaLoader.namedImportDiagnostics.calls": 1, + "esm.importMetaLoader.namedImportDiagnostics.micros": 7557, + "esm.importMetaLoader.prologueInjection.calls": 1, + "esm.importMetaLoader.prologueInjection.micros": 574, + "esm.importMetaLoader.quickjsDeclare.calls": 1, + "esm.importMetaLoader.quickjsDeclare.micros": 138, + "esm.importMetaLoader.realpath.calls": 1, + "esm.importMetaLoader.realpath.micros": 11, + "esm.importMetaLoader.sourceMapRegistration.calls": 1, + "esm.importMetaLoader.sourceMapRegistration.micros": 181, + "esm.importMetaLoader.sourceRead.calls": 1, + "esm.importMetaLoader.sourceRead.micros": 583, + "esm.importMetaLoader.topLevelAwaitScan.calls": 1, + "esm.importMetaLoader.topLevelAwaitScan.micros": 184, + "esm.importMetaLoader.total.calls": 1, + "esm.importMetaLoader.total.micros": 14078, + "esm.nodeFileResolve.calls": 1, + "esm.nodeFileResolve.micros": 472, + "filesystem.realpath.calls": 1, + "filesystem.realpath.success": 1, + "modules.directoryProbe.calls": 1, + "modules.directoryProbe.missing": 1, + "modules.directoryProbe.systemCalls": 1, + "modules.fileProbe.calls": 1, + "modules.fileProbe.found": 1, + "modules.fileProbe.systemCalls": 1, + "modules.pathProbe.systemCalls": 2, + "modules.realpath.cacheHits": 1, + "modules.realpath.calls": 2, + "modules.realpath.systemCalls": 1, + "modules.resolve.calls": 1, + "modules.resolve.missing": 1, + "modules.resolve.specifier.absolute": 1, + "modules.sourceRead.bytes": 65761, + "modules.sourceRead.calls": 1, + "modules.sourceRead.success": 1 + }, + "phasesMs": { + "builtinInitialization": 166.773625, + "initialEvaluation": 0.085958, + "loaderInitialization": 0.664208, + "processConfiguration": 0.097083, + "queueDelay": 0.363625, + "resultFormatting": 0.006791, + "runtimeCreation": 0.420042, + "teardown": 7.95475, + "transportWiring": 0.100334, + "userAwait": 14.887584, + "wrapperPreparation": 0.011708 + }, + "totalMs": 191.385625, + "version": 1 + }, + "requestedSourceBytes": 65536, + "value": 42 + } + }, + { + "derived": { + "evaluationMs": 0.003375000000005457, + "exclusiveLoaderPhases": { + "cjsGlobalPreflightMs": 0.441, + "importAttrsMs": 4.266, + "importMetaInitMs": 0.017, + "namedImportDiagnosticsMs": 7.551, + "prologueInjectionMs": 0.572, + "quickjsDeclareMs": 0.179, + "realpathMs": 0.011, + "sourceMapRegistrationMs": 0.169, + "sourceReadMs": 0.6, + "topLevelAwaitScanMs": 0.184 + }, + "importPromiseMs": 15.082332999999863, + "knownLoaderMs": 13.989999999999998, + "loaderMiscMs": 0.45700000000000074, + "loaderTotalMs": 14.447, + "nodeFileResolveMs": 0.454, + "preEvaluationMs": 15.06533300000001, + "preEvaluationResidualMs": 0.16433300000000983, + "settlementMs": 0.013624999999848342 + }, + "linearMemoryHighWaterBytes": 20185088, + "outerWallMs": 332.66704200000004, + "result": { + "actualSourceBytes": 65761, + "elapsedMs": 192.1499580000018, + "marks": { + "evaluationEnd": 182.471542, + "evaluationStart": 182.468167, + "importResolved": 182.48516699999985, + "importStart": 167.40283399999998 + }, + "overflowed": false, + "preparedSourceBytes": 65761, + "profile": { + "counters": { + "esm.importMetaLoader.cjsGlobalPreflight.calls": 1, + "esm.importMetaLoader.cjsGlobalPreflight.micros": 441, + "esm.importMetaLoader.importAttrs.calls": 1, + "esm.importMetaLoader.importAttrs.micros": 4266, + "esm.importMetaLoader.importMetaInit.calls": 1, + "esm.importMetaLoader.importMetaInit.micros": 17, + "esm.importMetaLoader.namedImportDiagnostics.calls": 1, + "esm.importMetaLoader.namedImportDiagnostics.micros": 7551, + "esm.importMetaLoader.prologueInjection.calls": 1, + "esm.importMetaLoader.prologueInjection.micros": 572, + "esm.importMetaLoader.quickjsDeclare.calls": 1, + "esm.importMetaLoader.quickjsDeclare.micros": 179, + "esm.importMetaLoader.realpath.calls": 1, + "esm.importMetaLoader.realpath.micros": 11, + "esm.importMetaLoader.sourceMapRegistration.calls": 1, + "esm.importMetaLoader.sourceMapRegistration.micros": 169, + "esm.importMetaLoader.sourceRead.calls": 1, + "esm.importMetaLoader.sourceRead.micros": 600, + "esm.importMetaLoader.topLevelAwaitScan.calls": 1, + "esm.importMetaLoader.topLevelAwaitScan.micros": 184, + "esm.importMetaLoader.total.calls": 1, + "esm.importMetaLoader.total.micros": 14447, + "esm.nodeFileResolve.calls": 1, + "esm.nodeFileResolve.micros": 454, + "filesystem.realpath.calls": 1, + "filesystem.realpath.success": 1, + "modules.directoryProbe.calls": 1, + "modules.directoryProbe.missing": 1, + "modules.directoryProbe.systemCalls": 1, + "modules.fileProbe.calls": 1, + "modules.fileProbe.found": 1, + "modules.fileProbe.systemCalls": 1, + "modules.pathProbe.systemCalls": 2, + "modules.realpath.cacheHits": 1, + "modules.realpath.calls": 2, + "modules.realpath.systemCalls": 1, + "modules.resolve.calls": 1, + "modules.resolve.missing": 1, + "modules.resolve.specifier.absolute": 1, + "modules.sourceRead.bytes": 65761, + "modules.sourceRead.calls": 1, + "modules.sourceRead.success": 1 + }, + "phasesMs": { + "builtinInitialization": 166.439208, + "initialEvaluation": 0.091083, + "loaderInitialization": 0.6611250000000001, + "processConfiguration": 0.091625, + "queueDelay": 0.32345799999999997, + "resultFormatting": 0.00675, + "runtimeCreation": 0.409917, + "teardown": 7.9635, + "transportWiring": 0.099208, + "userAwait": 15.233833, + "wrapperPreparation": 0.011834 + }, + "totalMs": 191.3495, + "version": 1 + }, + "requestedSourceBytes": 65536, + "value": 42 + } + }, + { + "derived": { + "evaluationMs": 0.002958000000063521, + "exclusiveLoaderPhases": { + "cjsGlobalPreflightMs": 0.428, + "importAttrsMs": 4.248, + "importMetaInitMs": 0.014, + "namedImportDiagnosticsMs": 7.519, + "prologueInjectionMs": 0.577, + "quickjsDeclareMs": 0.183, + "realpathMs": 0.011, + "sourceMapRegistrationMs": 0.161, + "sourceReadMs": 0.596, + "topLevelAwaitScanMs": 0.179 + }, + "importPromiseMs": 14.743375000000015, + "knownLoaderMs": 13.915999999999999, + "loaderMiscMs": 0.1720000000000006, + "loaderTotalMs": 14.088, + "nodeFileResolveMs": 0.476, + "preEvaluationMs": 14.728499999999912, + "preEvaluationResidualMs": 0.16449999999991327, + "settlementMs": 0.01191700000003948 + }, + "linearMemoryHighWaterBytes": 20185088, + "outerWallMs": 332.311625, + "result": { + "actualSourceBytes": 65761, + "elapsedMs": 191.26529200000004, + "marks": { + "evaluationEnd": 181.79545800000005, + "evaluationStart": 181.7925, + "importResolved": 181.8073750000001, + "importStart": 167.06400000000008 + }, + "overflowed": false, + "preparedSourceBytes": 65761, + "profile": { + "counters": { + "esm.importMetaLoader.cjsGlobalPreflight.calls": 1, + "esm.importMetaLoader.cjsGlobalPreflight.micros": 428, + "esm.importMetaLoader.importAttrs.calls": 1, + "esm.importMetaLoader.importAttrs.micros": 4248, + "esm.importMetaLoader.importMetaInit.calls": 1, + "esm.importMetaLoader.importMetaInit.micros": 14, + "esm.importMetaLoader.namedImportDiagnostics.calls": 1, + "esm.importMetaLoader.namedImportDiagnostics.micros": 7519, + "esm.importMetaLoader.prologueInjection.calls": 1, + "esm.importMetaLoader.prologueInjection.micros": 577, + "esm.importMetaLoader.quickjsDeclare.calls": 1, + "esm.importMetaLoader.quickjsDeclare.micros": 183, + "esm.importMetaLoader.realpath.calls": 1, + "esm.importMetaLoader.realpath.micros": 11, + "esm.importMetaLoader.sourceMapRegistration.calls": 1, + "esm.importMetaLoader.sourceMapRegistration.micros": 161, + "esm.importMetaLoader.sourceRead.calls": 1, + "esm.importMetaLoader.sourceRead.micros": 596, + "esm.importMetaLoader.topLevelAwaitScan.calls": 1, + "esm.importMetaLoader.topLevelAwaitScan.micros": 179, + "esm.importMetaLoader.total.calls": 1, + "esm.importMetaLoader.total.micros": 14088, + "esm.nodeFileResolve.calls": 1, + "esm.nodeFileResolve.micros": 476, + "filesystem.realpath.calls": 1, + "filesystem.realpath.success": 1, + "modules.directoryProbe.calls": 1, + "modules.directoryProbe.missing": 1, + "modules.directoryProbe.systemCalls": 1, + "modules.fileProbe.calls": 1, + "modules.fileProbe.found": 1, + "modules.fileProbe.systemCalls": 1, + "modules.pathProbe.systemCalls": 2, + "modules.realpath.cacheHits": 1, + "modules.realpath.calls": 2, + "modules.realpath.systemCalls": 1, + "modules.resolve.calls": 1, + "modules.resolve.missing": 1, + "modules.resolve.specifier.absolute": 1, + "modules.sourceRead.bytes": 65761, + "modules.sourceRead.calls": 1, + "modules.sourceRead.success": 1 + }, + "phasesMs": { + "builtinInitialization": 166.134, + "initialEvaluation": 0.08337499999999999, + "loaderInitialization": 0.6545420000000001, + "processConfiguration": 0.07404100000000001, + "queueDelay": 0.299958, + "resultFormatting": 0.006125, + "runtimeCreation": 0.424083, + "teardown": 7.786375, + "transportWiring": 0.099667, + "userAwait": 14.893584, + "wrapperPreparation": 0.010583 + }, + "totalMs": 190.483833, + "version": 1 + }, + "requestedSourceBytes": 65536, + "value": 42 + } + } + ], + "schemaVersion": 1, + "sourceBytes": 65536, + "summary": { + "maximumElapsedMs": 195.80408299999908, + "medianElapsedMs": 192.27720899999983, + "medianPreEvaluationMs": 14.836333000000081 + }, + "target": "p2", + "wasmLinearMemoryHighWaterBytes": 20185088 +} diff --git a/tests/esm_module_load_phases/results/2026-09-21-p3-macos-aarch64.json b/tests/esm_module_load_phases/results/2026-09-21-p3-macos-aarch64.json new file mode 100644 index 00000000..557e5c2b --- /dev/null +++ b/tests/esm_module_load_phases/results/2026-09-21-p3-macos-aarch64.json @@ -0,0 +1,552 @@ +{ + "component": { + "blake3": "f4556b66cbc73a3a2e7a8f602c393fdcc3c77e5988d8331e4bcb65187c4a21ef", + "buildMs": 57574.76904100001, + "bytes": 173362008, + "instantiateMs": 14410.372458 + }, + "environment": { + "arch": "aarch64", + "artifactCache": null, + "baseRevision": "7bed8b048cbafc43bc2a300c8d7b48733bf05386", + "cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)", + "dirty": true, + "os": "macos", + "rustc": "rustc 1.98.1 (48a229cea 2026-09-01)", + "wasmtimeCache": null + }, + "inputs": { + "instrumentationPatchBlake3": "9ce449f5620139641768110fbb31f45e8fcf88ba6d8f3c2a891cb74264b8c242", + "patchedFilesHash": "0584982a4064bb630dcd53c1959066421dbeefec8fb906f993ed9d1752d90d68" + }, + "iterations": 5, + "mode": "strip", + "notes": [ + "manual local attribution; timings are not CI thresholds", + "each sample uses a unique module path and a fresh execution-job QuickJS runtime", + "the component instance is reused within one target report; runtime state is not", + "preEvaluationResidual includes uninstrumented resolver dispatch, QuickJS linking, and promise scheduling" + ], + "path": "prepared-esm", + "samples": [ + { + "derived": { + "evaluationMs": 0.00304199999999355, + "exclusiveLoaderPhases": { + "cjsGlobalPreflightMs": 0.446, + "importAttrsMs": 4.527, + "importMetaInitMs": 0.045, + "namedImportDiagnosticsMs": 7.799, + "prologueInjectionMs": 0.612, + "quickjsDeclareMs": 0.276, + "realpathMs": 0.013, + "sourceMapRegistrationMs": 0.23, + "sourceReadMs": 0.76, + "topLevelAwaitScanMs": 0.199 + }, + "importPromiseMs": 16.22604099999998, + "knownLoaderMs": 14.907, + "loaderMiscMs": 0.5079999999999991, + "loaderTotalMs": 15.415, + "nodeFileResolveMs": 0.525, + "preEvaluationMs": 16.199333000000024, + "preEvaluationResidualMs": 0.2593330000000247, + "settlementMs": 0.023665999999963105 + }, + "linearMemoryHighWaterBytes": 20119552, + "outerWallMs": 357.622958, + "result": { + "actualSourceBytes": 65761, + "elapsedMs": 205.42295900000315, + "marks": { + "evaluationEnd": 193.67216700000003, + "evaluationStart": 193.66912500000004, + "importResolved": 193.695833, + "importStart": 177.469792 + }, + "overflowed": false, + "preparedSourceBytes": 65761, + "profile": { + "counters": { + "esm.importMetaLoader.cjsGlobalPreflight.calls": 1, + "esm.importMetaLoader.cjsGlobalPreflight.micros": 446, + "esm.importMetaLoader.importAttrs.calls": 1, + "esm.importMetaLoader.importAttrs.micros": 4527, + "esm.importMetaLoader.importMetaInit.calls": 1, + "esm.importMetaLoader.importMetaInit.micros": 45, + "esm.importMetaLoader.namedImportDiagnostics.calls": 1, + "esm.importMetaLoader.namedImportDiagnostics.micros": 7799, + "esm.importMetaLoader.prologueInjection.calls": 1, + "esm.importMetaLoader.prologueInjection.micros": 612, + "esm.importMetaLoader.quickjsDeclare.calls": 1, + "esm.importMetaLoader.quickjsDeclare.micros": 276, + "esm.importMetaLoader.realpath.calls": 1, + "esm.importMetaLoader.realpath.micros": 13, + "esm.importMetaLoader.sourceMapRegistration.calls": 1, + "esm.importMetaLoader.sourceMapRegistration.micros": 230, + "esm.importMetaLoader.sourceRead.calls": 1, + "esm.importMetaLoader.sourceRead.micros": 760, + "esm.importMetaLoader.topLevelAwaitScan.calls": 1, + "esm.importMetaLoader.topLevelAwaitScan.micros": 199, + "esm.importMetaLoader.total.calls": 1, + "esm.importMetaLoader.total.micros": 15415, + "esm.nodeFileResolve.calls": 1, + "esm.nodeFileResolve.micros": 525, + "filesystem.realpath.calls": 1, + "filesystem.realpath.success": 1, + "modules.directoryProbe.calls": 1, + "modules.directoryProbe.missing": 1, + "modules.directoryProbe.systemCalls": 1, + "modules.fileProbe.calls": 1, + "modules.fileProbe.found": 1, + "modules.fileProbe.systemCalls": 1, + "modules.pathProbe.systemCalls": 2, + "modules.realpath.cacheHits": 1, + "modules.realpath.calls": 2, + "modules.realpath.systemCalls": 1, + "modules.resolve.calls": 1, + "modules.resolve.missing": 1, + "modules.resolve.specifier.absolute": 1, + "modules.sourceRead.bytes": 65761, + "modules.sourceRead.calls": 1, + "modules.sourceRead.success": 1 + }, + "phasesMs": { + "builtinInitialization": 175.40900000000002, + "initialEvaluation": 0.103667, + "loaderInitialization": 1.450541, + "processConfiguration": 0.164375, + "queueDelay": 0.877875, + "resultFormatting": 0.017291, + "runtimeCreation": 0.487167, + "teardown": 9.023917, + "transportWiring": 0.295875, + "userAwait": 16.45725, + "wrapperPreparation": 0.017542 + }, + "totalMs": 204.339042, + "version": 1 + }, + "requestedSourceBytes": 65536, + "value": 42 + } + }, + { + "derived": { + "evaluationMs": 0.0027919999999994616, + "exclusiveLoaderPhases": { + "cjsGlobalPreflightMs": 0.442, + "importAttrsMs": 4.355, + "importMetaInitMs": 0.027, + "namedImportDiagnosticsMs": 7.886, + "prologueInjectionMs": 0.508, + "quickjsDeclareMs": 0.219, + "realpathMs": 0.01, + "sourceMapRegistrationMs": 0.224, + "sourceReadMs": 0.626, + "topLevelAwaitScanMs": 0.184 + }, + "importPromiseMs": 15.72020800000007, + "knownLoaderMs": 14.480999999999998, + "loaderMiscMs": 0.4720000000000013, + "loaderTotalMs": 14.953, + "nodeFileResolveMs": 0.549, + "preEvaluationMs": 15.700958000000043, + "preEvaluationResidualMs": 0.1989580000000437, + "settlementMs": 0.016458000000028505 + }, + "linearMemoryHighWaterBytes": 20185088, + "outerWallMs": 347.706833, + "result": { + "actualSourceBytes": 65761, + "elapsedMs": 200.9238330000007, + "marks": { + "evaluationEnd": 189.697167, + "evaluationStart": 189.694375, + "importResolved": 189.71362500000004, + "importStart": 173.99341699999997 + }, + "overflowed": false, + "preparedSourceBytes": 65761, + "profile": { + "counters": { + "esm.importMetaLoader.cjsGlobalPreflight.calls": 1, + "esm.importMetaLoader.cjsGlobalPreflight.micros": 442, + "esm.importMetaLoader.importAttrs.calls": 1, + "esm.importMetaLoader.importAttrs.micros": 4355, + "esm.importMetaLoader.importMetaInit.calls": 1, + "esm.importMetaLoader.importMetaInit.micros": 27, + "esm.importMetaLoader.namedImportDiagnostics.calls": 1, + "esm.importMetaLoader.namedImportDiagnostics.micros": 7886, + "esm.importMetaLoader.prologueInjection.calls": 1, + "esm.importMetaLoader.prologueInjection.micros": 508, + "esm.importMetaLoader.quickjsDeclare.calls": 1, + "esm.importMetaLoader.quickjsDeclare.micros": 219, + "esm.importMetaLoader.realpath.calls": 1, + "esm.importMetaLoader.realpath.micros": 10, + "esm.importMetaLoader.sourceMapRegistration.calls": 1, + "esm.importMetaLoader.sourceMapRegistration.micros": 224, + "esm.importMetaLoader.sourceRead.calls": 1, + "esm.importMetaLoader.sourceRead.micros": 626, + "esm.importMetaLoader.topLevelAwaitScan.calls": 1, + "esm.importMetaLoader.topLevelAwaitScan.micros": 184, + "esm.importMetaLoader.total.calls": 1, + "esm.importMetaLoader.total.micros": 14953, + "esm.nodeFileResolve.calls": 1, + "esm.nodeFileResolve.micros": 549, + "filesystem.realpath.calls": 1, + "filesystem.realpath.success": 1, + "modules.directoryProbe.calls": 1, + "modules.directoryProbe.missing": 1, + "modules.directoryProbe.systemCalls": 1, + "modules.fileProbe.calls": 1, + "modules.fileProbe.found": 1, + "modules.fileProbe.systemCalls": 1, + "modules.pathProbe.systemCalls": 2, + "modules.realpath.cacheHits": 1, + "modules.realpath.calls": 2, + "modules.realpath.systemCalls": 1, + "modules.resolve.calls": 1, + "modules.resolve.missing": 1, + "modules.resolve.specifier.absolute": 1, + "modules.sourceRead.bytes": 65761, + "modules.sourceRead.calls": 1, + "modules.sourceRead.success": 1 + }, + "phasesMs": { + "builtinInitialization": 172.942916, + "initialEvaluation": 0.08875, + "loaderInitialization": 0.692583, + "processConfiguration": 0.123459, + "queueDelay": 0.352208, + "resultFormatting": 0.015625, + "runtimeCreation": 0.447167, + "teardown": 9.28775, + "transportWiring": 0.123584, + "userAwait": 15.903292, + "wrapperPreparation": 0.012041 + }, + "totalMs": 200.019416, + "version": 1 + }, + "requestedSourceBytes": 65536, + "value": 42 + } + }, + { + "derived": { + "evaluationMs": 0.002583000000015545, + "exclusiveLoaderPhases": { + "cjsGlobalPreflightMs": 0.436, + "importAttrsMs": 4.295, + "importMetaInitMs": 0.016, + "namedImportDiagnosticsMs": 7.657, + "prologueInjectionMs": 0.484, + "quickjsDeclareMs": 0.149, + "realpathMs": 0.011, + "sourceMapRegistrationMs": 0.165, + "sourceReadMs": 0.613, + "topLevelAwaitScanMs": 0.189 + }, + "importPromiseMs": 15.191667000000052, + "knownLoaderMs": 14.014999999999999, + "loaderMiscMs": 0.45800000000000196, + "loaderTotalMs": 14.473, + "nodeFileResolveMs": 0.534, + "preEvaluationMs": 15.1764170000001, + "preEvaluationResidualMs": 0.16941700000009874, + "settlementMs": 0.012666999999936479 + }, + "linearMemoryHighWaterBytes": 20185088, + "outerWallMs": 343.66454200000004, + "result": { + "actualSourceBytes": 65761, + "elapsedMs": 197.3629170000022, + "marks": { + "evaluationEnd": 187.598125, + "evaluationStart": 187.595542, + "importResolved": 187.61079199999995, + "importStart": 172.4191249999999 + }, + "overflowed": false, + "preparedSourceBytes": 65761, + "profile": { + "counters": { + "esm.importMetaLoader.cjsGlobalPreflight.calls": 1, + "esm.importMetaLoader.cjsGlobalPreflight.micros": 436, + "esm.importMetaLoader.importAttrs.calls": 1, + "esm.importMetaLoader.importAttrs.micros": 4295, + "esm.importMetaLoader.importMetaInit.calls": 1, + "esm.importMetaLoader.importMetaInit.micros": 16, + "esm.importMetaLoader.namedImportDiagnostics.calls": 1, + "esm.importMetaLoader.namedImportDiagnostics.micros": 7657, + "esm.importMetaLoader.prologueInjection.calls": 1, + "esm.importMetaLoader.prologueInjection.micros": 484, + "esm.importMetaLoader.quickjsDeclare.calls": 1, + "esm.importMetaLoader.quickjsDeclare.micros": 149, + "esm.importMetaLoader.realpath.calls": 1, + "esm.importMetaLoader.realpath.micros": 11, + "esm.importMetaLoader.sourceMapRegistration.calls": 1, + "esm.importMetaLoader.sourceMapRegistration.micros": 165, + "esm.importMetaLoader.sourceRead.calls": 1, + "esm.importMetaLoader.sourceRead.micros": 613, + "esm.importMetaLoader.topLevelAwaitScan.calls": 1, + "esm.importMetaLoader.topLevelAwaitScan.micros": 189, + "esm.importMetaLoader.total.calls": 1, + "esm.importMetaLoader.total.micros": 14473, + "esm.nodeFileResolve.calls": 1, + "esm.nodeFileResolve.micros": 534, + "filesystem.realpath.calls": 1, + "filesystem.realpath.success": 1, + "modules.directoryProbe.calls": 1, + "modules.directoryProbe.missing": 1, + "modules.directoryProbe.systemCalls": 1, + "modules.fileProbe.calls": 1, + "modules.fileProbe.found": 1, + "modules.fileProbe.systemCalls": 1, + "modules.pathProbe.systemCalls": 2, + "modules.realpath.cacheHits": 1, + "modules.realpath.calls": 2, + "modules.realpath.systemCalls": 1, + "modules.resolve.calls": 1, + "modules.resolve.missing": 1, + "modules.resolve.specifier.absolute": 1, + "modules.sourceRead.bytes": 65761, + "modules.sourceRead.calls": 1, + "modules.sourceRead.success": 1 + }, + "phasesMs": { + "builtinInitialization": 171.429041, + "initialEvaluation": 0.08708300000000001, + "loaderInitialization": 0.664083, + "processConfiguration": 0.119084, + "queueDelay": 0.341792, + "resultFormatting": 0.007125, + "runtimeCreation": 0.4255, + "teardown": 7.956167, + "transportWiring": 0.099792, + "userAwait": 15.348042, + "wrapperPreparation": 0.011 + }, + "totalMs": 196.507167, + "version": 1 + }, + "requestedSourceBytes": 65536, + "value": 42 + } + }, + { + "derived": { + "evaluationMs": 0.0024160000000392756, + "exclusiveLoaderPhases": { + "cjsGlobalPreflightMs": 0.423, + "importAttrsMs": 4.3, + "importMetaInitMs": 0.014, + "namedImportDiagnosticsMs": 7.559, + "prologueInjectionMs": 0.57, + "quickjsDeclareMs": 0.181, + "realpathMs": 0.01, + "sourceMapRegistrationMs": 0.163, + "sourceReadMs": 0.619, + "topLevelAwaitScanMs": 0.178 + }, + "importPromiseMs": 15.344833000000108, + "knownLoaderMs": 14.017000000000001, + "loaderMiscMs": 0.44599999999999795, + "loaderTotalMs": 14.463, + "nodeFileResolveMs": 0.681, + "preEvaluationMs": 15.330917, + "preEvaluationResidualMs": 0.18691699999999933, + "settlementMs": 0.011500000000069122 + }, + "linearMemoryHighWaterBytes": 20185088, + "outerWallMs": 333.21508300000005, + "result": { + "actualSourceBytes": 65761, + "elapsedMs": 191.5809999999983, + "marks": { + "evaluationEnd": 182.00016600000004, + "evaluationStart": 181.99775, + "importResolved": 182.0116660000001, + "importStart": 166.666833 + }, + "overflowed": false, + "preparedSourceBytes": 65761, + "profile": { + "counters": { + "esm.importMetaLoader.cjsGlobalPreflight.calls": 1, + "esm.importMetaLoader.cjsGlobalPreflight.micros": 423, + "esm.importMetaLoader.importAttrs.calls": 1, + "esm.importMetaLoader.importAttrs.micros": 4300, + "esm.importMetaLoader.importMetaInit.calls": 1, + "esm.importMetaLoader.importMetaInit.micros": 14, + "esm.importMetaLoader.namedImportDiagnostics.calls": 1, + "esm.importMetaLoader.namedImportDiagnostics.micros": 7559, + "esm.importMetaLoader.prologueInjection.calls": 1, + "esm.importMetaLoader.prologueInjection.micros": 570, + "esm.importMetaLoader.quickjsDeclare.calls": 1, + "esm.importMetaLoader.quickjsDeclare.micros": 181, + "esm.importMetaLoader.realpath.calls": 1, + "esm.importMetaLoader.realpath.micros": 10, + "esm.importMetaLoader.sourceMapRegistration.calls": 1, + "esm.importMetaLoader.sourceMapRegistration.micros": 163, + "esm.importMetaLoader.sourceRead.calls": 1, + "esm.importMetaLoader.sourceRead.micros": 619, + "esm.importMetaLoader.topLevelAwaitScan.calls": 1, + "esm.importMetaLoader.topLevelAwaitScan.micros": 178, + "esm.importMetaLoader.total.calls": 1, + "esm.importMetaLoader.total.micros": 14463, + "esm.nodeFileResolve.calls": 1, + "esm.nodeFileResolve.micros": 681, + "filesystem.realpath.calls": 1, + "filesystem.realpath.success": 1, + "modules.directoryProbe.calls": 1, + "modules.directoryProbe.missing": 1, + "modules.directoryProbe.systemCalls": 1, + "modules.fileProbe.calls": 1, + "modules.fileProbe.found": 1, + "modules.fileProbe.systemCalls": 1, + "modules.pathProbe.systemCalls": 2, + "modules.realpath.cacheHits": 1, + "modules.realpath.calls": 2, + "modules.realpath.systemCalls": 1, + "modules.resolve.calls": 1, + "modules.resolve.missing": 1, + "modules.resolve.specifier.absolute": 1, + "modules.sourceRead.bytes": 65761, + "modules.sourceRead.calls": 1, + "modules.sourceRead.success": 1 + }, + "phasesMs": { + "builtinInitialization": 165.631458, + "initialEvaluation": 0.083125, + "loaderInitialization": 0.681875, + "processConfiguration": 0.15275, + "queueDelay": 0.320791, + "resultFormatting": 0.005375, + "runtimeCreation": 0.413875, + "teardown": 7.878125, + "transportWiring": 0.096917, + "userAwait": 15.493083, + "wrapperPreparation": 0.010125 + }, + "totalMs": 190.783791, + "version": 1 + }, + "requestedSourceBytes": 65536, + "value": 42 + } + }, + { + "derived": { + "evaluationMs": 0.002457999999904814, + "exclusiveLoaderPhases": { + "cjsGlobalPreflightMs": 0.432, + "importAttrsMs": 4.347, + "importMetaInitMs": 0.015, + "namedImportDiagnosticsMs": 7.609, + "prologueInjectionMs": 0.585, + "quickjsDeclareMs": 0.188, + "realpathMs": 0.01, + "sourceMapRegistrationMs": 0.161, + "sourceReadMs": 0.705, + "topLevelAwaitScanMs": 0.179 + }, + "importPromiseMs": 15.298791999999821, + "knownLoaderMs": 14.231000000000002, + "loaderMiscMs": 0.4529999999999976, + "loaderTotalMs": 14.684, + "nodeFileResolveMs": 0.437, + "preEvaluationMs": 15.283500000000004, + "preEvaluationResidualMs": 0.16250000000000497, + "settlementMs": 0.012833999999912749 + }, + "linearMemoryHighWaterBytes": 20185088, + "outerWallMs": 332.01550000000003, + "result": { + "actualSourceBytes": 65761, + "elapsedMs": 191.0237500000003, + "marks": { + "evaluationEnd": 181.483375, + "evaluationStart": 181.4809170000001, + "importResolved": 181.4962089999999, + "importStart": 166.1974170000001 + }, + "overflowed": false, + "preparedSourceBytes": 65761, + "profile": { + "counters": { + "esm.importMetaLoader.cjsGlobalPreflight.calls": 1, + "esm.importMetaLoader.cjsGlobalPreflight.micros": 432, + "esm.importMetaLoader.importAttrs.calls": 1, + "esm.importMetaLoader.importAttrs.micros": 4347, + "esm.importMetaLoader.importMetaInit.calls": 1, + "esm.importMetaLoader.importMetaInit.micros": 15, + "esm.importMetaLoader.namedImportDiagnostics.calls": 1, + "esm.importMetaLoader.namedImportDiagnostics.micros": 7609, + "esm.importMetaLoader.prologueInjection.calls": 1, + "esm.importMetaLoader.prologueInjection.micros": 585, + "esm.importMetaLoader.quickjsDeclare.calls": 1, + "esm.importMetaLoader.quickjsDeclare.micros": 188, + "esm.importMetaLoader.realpath.calls": 1, + "esm.importMetaLoader.realpath.micros": 10, + "esm.importMetaLoader.sourceMapRegistration.calls": 1, + "esm.importMetaLoader.sourceMapRegistration.micros": 161, + "esm.importMetaLoader.sourceRead.calls": 1, + "esm.importMetaLoader.sourceRead.micros": 705, + "esm.importMetaLoader.topLevelAwaitScan.calls": 1, + "esm.importMetaLoader.topLevelAwaitScan.micros": 179, + "esm.importMetaLoader.total.calls": 1, + "esm.importMetaLoader.total.micros": 14684, + "esm.nodeFileResolve.calls": 1, + "esm.nodeFileResolve.micros": 437, + "filesystem.realpath.calls": 1, + "filesystem.realpath.success": 1, + "modules.directoryProbe.calls": 1, + "modules.directoryProbe.missing": 1, + "modules.directoryProbe.systemCalls": 1, + "modules.fileProbe.calls": 1, + "modules.fileProbe.found": 1, + "modules.fileProbe.systemCalls": 1, + "modules.pathProbe.systemCalls": 2, + "modules.realpath.cacheHits": 1, + "modules.realpath.calls": 2, + "modules.realpath.systemCalls": 1, + "modules.resolve.calls": 1, + "modules.resolve.missing": 1, + "modules.resolve.specifier.absolute": 1, + "modules.sourceRead.bytes": 65761, + "modules.sourceRead.calls": 1, + "modules.sourceRead.success": 1 + }, + "phasesMs": { + "builtinInitialization": 165.234583, + "initialEvaluation": 0.084417, + "loaderInitialization": 0.667541, + "processConfiguration": 0.087667, + "queueDelay": 0.305, + "resultFormatting": 0.006333, + "runtimeCreation": 0.401417, + "teardown": 7.88225, + "transportWiring": 0.10425, + "userAwait": 15.450417, + "wrapperPreparation": 0.011875 + }, + "totalMs": 190.252833, + "version": 1 + }, + "requestedSourceBytes": 65536, + "value": 42 + } + } + ], + "schemaVersion": 1, + "sourceBytes": 65536, + "summary": { + "maximumElapsedMs": 205.42295900000315, + "medianElapsedMs": 197.3629170000022, + "medianPreEvaluationMs": 15.330917 + }, + "target": "p3", + "wasmLinearMemoryHighWaterBytes": 20185088 +} diff --git a/tests/esm_module_load_phases/results/README.md b/tests/esm_module_load_phases/results/README.md new file mode 100644 index 00000000..361d7c64 --- /dev/null +++ b/tests/esm_module_load_phases/results/README.md @@ -0,0 +1,34 @@ +# Results + +The retained P2/P3 reports contain the final candidate's five raw samples, exact +base revision and instrumentation identities, component identity, execution +profile counters, and derived reconciliation. These are descriptive local +measurements, not CI thresholds. The baseline raw reports are summarized below +rather than retained sample by sample. + +The baseline capture attributed essentially the entire pre-evaluation interval to +two repository-owned Rust source scans: + +| Target | End-to-end median | Pre-evaluation median | CJS-global preflight median | Prologue injection median | QuickJS declaration median | Residual median | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | +| P2 | 10,657.94 ms | 10,478.13 ms | 5,235.03 ms | 5,225.32 ms | 0.22 ms | 0.25 ms | +| P3 | 11,058.54 ms | 10,867.23 ms | 5,433.22 ms | 5,436.13 ms | 0.27 ms | 0.47 ms | + +Those instrumented end-to-end medians remained close to the immediately preceding +uninstrumented prepared-ESM medians (11,088.28 ms for P2 and 10,859.98 ms for P3). +The evidence rejected QuickJS parsing, linking, evaluation, filesystem resolution, +and source reads as material owners of this workload. + +The final candidate bulk-skips contiguous ASCII whitespace in the two affected +source scanners. Its retained reports were captured from exact revision +`7bed8b048cbafc43bc2a300c8d7b48733bf05386`: + +| Target | End-to-end median | Pre-evaluation median | CJS-global preflight median | Prologue injection median | End-to-end reduction | +| --- | ---: | ---: | ---: | ---: | ---: | +| P2 | 192.28 ms | 14.84 ms | 0.43 ms | 0.57 ms | 98.20% | +| P3 | 197.36 ms | 15.33 ms | 0.44 ms | 0.57 ms | 98.22% | + +The candidate removes the whitespace-size pathology while keeping every sample's +result at 42 and preserving the report's counter and timing reconciliation +invariants. The broader TypeScript latency matrix and focused module-loader tests +provide the end-to-end and semantic checks. diff --git a/tests/esm_module_load_phases/run.sh b/tests/esm_module_load_phases/run.sh new file mode 100755 index 00000000..8ecb29b0 --- /dev/null +++ b/tests/esm_module_load_phases/run.sh @@ -0,0 +1,59 @@ +#!/bin/sh +set -eu + +repo_root=$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd) +results_dir="$repo_root/tests/esm_module_load_phases/results" +patch_rel="tests/esm_module_load_phases/2026-09-21-instrumentation.patch" + +if [ "${1:-}" = "--check" ]; then + cd "$repo_root" + tools/dev-test.sh p2 standard esm_module_load_phases "" + exit 0 +fi + +target=${1:-} +case "$target" in + p2|p3) ;; + *) echo "usage: $0 " >&2; exit 2 ;; +esac + +cd "$repo_root" +git diff --quiet --exit-code +git diff --cached --quiet --exit-code +base_revision=$(git rev-parse HEAD) +worktree_parent=$(mktemp -d "${TMPDIR:-/tmp}/esm-module-load-phases.XXXXXX") +worktree="$worktree_parent/source" + +cleanup() { + git -C "$repo_root" worktree remove --force "$worktree" >/dev/null 2>&1 || true + rmdir "$worktree_parent" >/dev/null 2>&1 || true +} +trap cleanup EXIT HUP INT TERM + +git worktree add --detach "$worktree" "$base_revision" +patch_file="$worktree/$patch_rel" +git -C "$worktree" apply --check "$patch_file" +git -C "$worktree" apply "$patch_file" + +platform=$(node -p 'process.platform') +arch=$(node -p 'process.arch') +case "$platform" in + darwin) platform=macos ;; + win32) platform=windows ;; +esac +case "$arch" in + arm64) arch=aarch64 ;; + x64) arch=x86_64 ;; +esac + +mkdir -p "$results_dir" +default_report="$results_dir/$(date +%Y-%m-%d)-$target-$platform-$arch.json" +report=${ESM_MODULE_LOAD_PHASES_REPORT:-$default_report} +( + cd "$worktree" + ESM_MODULE_LOAD_PHASES_MEASURE=1 \ + ESM_MODULE_LOAD_PHASES_BASE_REVISION="$base_revision" \ + ESM_MODULE_LOAD_PHASES_PATCH_FILE="$patch_file" \ + ESM_MODULE_LOAD_PHASES_REPORT="$report" \ + tools/dev-test.sh "$target" standard esm_module_load_phases "" +) diff --git a/tests/goldenfiles/generated_types_esm-module-load-phases_exports.d.ts b/tests/goldenfiles/generated_types_esm-module-load-phases_exports.d.ts new file mode 100644 index 00000000..c75eea80 --- /dev/null +++ b/tests/goldenfiles/generated_types_esm-module-load-phases_exports.d.ts @@ -0,0 +1,3 @@ +declare module 'esm-module-load-phases' { + export function measureCase(sourceBytes: bigint, sample: bigint): Promise; +} diff --git a/tests/goldenfiles/generated_types_module-resolution_exports.d.ts b/tests/goldenfiles/generated_types_module-resolution_exports.d.ts index 41e4788f..12e277de 100644 --- a/tests/goldenfiles/generated_types_module-resolution_exports.d.ts +++ b/tests/goldenfiles/generated_types_module-resolution_exports.d.ts @@ -21,6 +21,7 @@ declare module 'module-resolution' { export function testLoaderModuleSourceValidation(): Promise; export function testPackageCustomConditions(): Promise; export function testCjsPackageJsonParseCache(): Promise; + export function testCjsLoaderRealpathCache(): Promise; export function testSyncBuiltinEsmExports(): Promise; export function testEsmResolutionErrorUrls(): Promise; export function testCjsDirectNamedExports(): Promise; diff --git a/tests/npm_metadata.rs b/tests/npm_metadata.rs new file mode 100644 index 00000000..7b97c264 --- /dev/null +++ b/tests/npm_metadata.rs @@ -0,0 +1,1824 @@ +//! Manual npm metadata benchmark; no network access or benchmark thresholds in CI. +#![allow(dead_code)] // The shared test host also serves the broader runtime test suite. +#[path = "common/mod.rs"] +mod common; + +use anyhow::{Context, ensure}; +use axum::{ + Router, body::Body, extract::Request, http::StatusCode, middleware::Next, routing::get, +}; +use camino::{Utf8Path, Utf8PathBuf}; +use common::{ + CompiledTest, FeatureCombination, PreparedComponent, TestInstance, TestTarget, + copy_dir_recursive, test_target, +}; +use serde_json::{Value, json}; +use std::{ + collections::{BTreeMap, BTreeSet}, + fs, + io::Read as _, + process::Command, + sync::{ + Arc, + atomic::{AtomicUsize, Ordering}, + }, + time::{Duration, Instant}, +}; +use wasmtime::component::Val; + +const VERSION: &str = "4.17.12"; +const SUITE_DIR: &str = "tests/npm_metadata"; +const EXAMPLE_DIR: &str = "examples/runtime/npm-compat"; +const INPUT_HASH_ALGORITHM: &str = "blake3-composite-v1"; +const HOST_TIMING_BOUNDARY: &str = "Node process spawn through exit; workspace preparation, cache seeding, and install-tree cleanup are excluded"; +const WASM_TIMING_BOUNDARY: &str = "run export invocation through result; component instantiation, workspace preparation, cache seeding, install-tree cleanup, and linear-memory observation are excluded"; +const MEMORY_INTERPRETATION: &str = "per-sample Wasm linear-memory values are monotone instance high-water observations read after the timed invocation"; +const PACKAGES: &[(&str, &str)] = &[ + ("lodash", "@types/lodash"), + ("lodash-es", "@types/lodash-es"), +]; + +fn target_name() -> &'static str { + match test_target() { + TestTarget::P2 => "p2", + TestTarget::P3 => "p3", + } +} + +fn command(command: &mut Command) -> anyhow::Result { + let output = command.output()?; + ensure!( + output.status.success(), + "{}", + String::from_utf8_lossy(&output.stderr) + ); + Ok(String::from_utf8(output.stdout)?.trim().to_owned()) +} + +fn cpu_ms() -> f64 { + let mut usage = std::mem::MaybeUninit::::uninit(); + // SAFETY: getrusage writes the complete rusage on success. + if unsafe { libc::getrusage(libc::RUSAGE_SELF, usage.as_mut_ptr()) } != 0 { + return f64::NAN; + } + let usage = unsafe { usage.assume_init() }; + let micros = |t: libc::timeval| t.tv_sec as f64 * 1_000_000. + t.tv_usec as f64; + (micros(usage.ru_utime) + micros(usage.ru_stime)) / 1000. +} + +fn list(args: &[&str]) -> Val { + Val::List(args.iter().map(|s| Val::String((*s).into())).collect()) +} + +async fn instance(prepared: &PreparedComponent, fixture: bool) -> anyhow::Result { + let instance = TestInstance::from_prepared(prepared).await?; + let root = instance.temp_dir_path(); + for dir in [ + "tool/npm", + "workspace", + "home/npm", + "cache/npm", + "prefix/lib/node_modules", + "prefix/bin", + ] { + fs::create_dir_all(root.join(dir))?; + } + let npm_root = command(Command::new("npm").args(["root", "-g"]))?; + copy_dir_recursive( + Utf8Path::new(&npm_root).join("npm").as_std_path(), + root.join("tool/npm").as_std_path(), + )?; + if fixture { + for file in ["package.json", "package-lock.json"] { + fs::copy( + Utf8Path::new("tests/npm_metadata/real").join(file), + root.join("workspace").join(file), + )?; + } + } + Ok(instance) +} + +fn pack(name: &str, destination: &Utf8Path) -> anyhow::Result> { + let output = command(Command::new("npm").args([ + "pack", + &format!("@types/{name}@{VERSION}"), + "--json", + "--ignore-scripts", + "--registry=https://registry.npmjs.org/", + "--pack-destination", + destination.as_str(), + ]))?; + let value: Value = serde_json::from_str(&output)?; + let filename = value[0]["filename"].as_str().context("npm pack filename")?; + Ok(fs::read(destination.join(filename))?) +} + +async fn local_registry( + root: &Utf8Path, +) -> anyhow::Result<(String, tokio::task::JoinHandle<()>, Arc)> { + let listener = tokio::net::TcpListener::bind("127.0.0.1:0").await?; + let base = format!("http://127.0.0.1:{}", listener.local_addr()?.port()); + let requests = Arc::new(AtomicUsize::new(0)); + let mut router = Router::new(); + for (short, name) in PACKAGES { + let tarball = pack(short, root)?; + let path = format!("/@types/{short}/-/{short}-{VERSION}.tgz"); + let metadata_path = format!("/@types%2f{short}"); + let dependencies = if *short == "lodash-es" { + json!({"@types/lodash": "*"}) + } else { + json!({}) + }; + let mut metadata = json!({"name": name, "dist-tags": {"latest": VERSION}, "versions": {}}); + metadata["versions"][VERSION] = json!({"name": name, "version": VERSION, + "dependencies": dependencies, "dist": {"tarball": format!("{base}{path}")}}); + let counter = requests.clone(); + router = router.route( + &metadata_path, + get(move || { + let counter = counter.clone(); + let metadata = metadata.clone(); + async move { + counter.fetch_add(1, Ordering::Relaxed); + axum::Json(metadata) + } + }), + ); + let counter = requests.clone(); + router = router.route( + &path, + get(move || { + let counter = counter.clone(); + let body = tarball.clone(); + async move { + counter.fetch_add(1, Ordering::Relaxed); + (StatusCode::OK, Body::from(body)) + } + }), + ); + } + let server = tokio::spawn(async move { + axum::serve(listener, router).await.expect("local registry"); + }); + Ok((base, server, requests)) +} + +async fn sample( + prepared: &PreparedComponent, + operation: &str, + registry: &str, + local: bool, + sequence: usize, + requests: Option<&AtomicUsize>, +) -> anyhow::Result> { + let mut instance = instance(prepared, operation == "ci").await?; + if local && operation == "ci" { + let lock_path = instance.temp_dir_path().join("workspace/package-lock.json"); + let mut lock: Value = serde_json::from_slice(&fs::read(&lock_path)?)?; + for (short, _) in PACKAGES { + lock["packages"][format!("node_modules/@types/{short}")]["resolved"] = json!(format!( + "{}/@types/{short}/-/{short}-{VERSION}.tgz", + registry.trim_end_matches('/') + )); + } + fs::write(lock_path, serde_json::to_vec_pretty(&lock)?)?; + } + let registry_arg = format!("--registry={registry}"); + let args: Vec<&str> = match operation { + "version" => vec!["--version"], + "view" => vec![ + "view", + "@types/lodash-es@4.17.12", + "version", + ®istry_arg, + "--loglevel=http", + ], + "ci" => vec![ + "ci", + "--ignore-scripts", + "--no-audit", + "--no-fund", + ®istry_arg, + "--loglevel=http", + ], + _ => anyhow::bail!("unknown operation {operation}"), + }; + let mut samples = vec![ + measure( + &mut instance, + &args, + operation, + local, + "cold", + sequence, + requests, + ) + .await?, + ]; + if operation != "version" { + samples.push( + measure( + &mut instance, + &args, + operation, + local, + "warm", + sequence + 1, + requests, + ) + .await?, + ); + } + Ok(samples) +} + +async fn measure( + instance: &mut TestInstance, + args: &[&str], + operation: &str, + local: bool, + cache: &str, + sequence: usize, + requests: Option<&AtomicUsize>, +) -> anyhow::Result { + let before_http = requests.map(|counter| counter.load(Ordering::Relaxed)); + let before_cpu = cpu_ms(); + let start = Instant::now(); + instance.set_epoch_deadline(180); + let value = instance.invoke(None, "run", &[list(args)]).await?; + let wall_ms = start.elapsed().as_secs_f64() * 1000.; + let cpu_ms = cpu_ms() - before_cpu; + let Some(Val::String(encoded)) = value else { + anyhow::bail!("npm did not return JSON"); + }; + let result: Value = serde_json::from_str(&encoded)?; + let success = result["value"]["exitCode"] == 0 && result.get("runnerError").is_none(); + let installed = if operation == "ci" { + instance + .temp_dir_path() + .join("workspace/node_modules/@types/lodash-es/package.json") + .exists() + } else { + false + }; + let count = requests + .zip(before_http) + .map(|(counter, before)| counter.load(Ordering::Relaxed) - before); + let stderr = result["stderr"].as_str().unwrap_or_default(); + let http_fetches = stderr + .lines() + .filter(|line| line.starts_with("npm http fetch ")) + .count(); + let http_cache_hits = stderr + .lines() + .filter(|line| line.starts_with("npm http cache ")) + .count(); + Ok( + json!({"sequence": sequence, "operation": operation, "registry": if local {"local"} else {"npmjs"}, + "cache": cache, "success": success && (operation != "ci" || installed), "installed": installed, "wallMs": wall_ms, + "processCpuMs": cpu_ms, "localHttpRequests": count, "npmHttpFetchLogLines": http_fetches, + "npmHttpCacheLogLines": http_cache_hits, "result": result}), + ) +} + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + if std::env::var_os("NPM_METADATA_VALIDATE_REPORTS").is_some() { + return validate_checked_release_reports(Utf8Path::new(SUITE_DIR).join("results")); + } + if std::env::var("NPM_METADATA_RUN").as_deref() != Ok("1") { + println!("npm metadata benchmark is manual; set NPM_METADATA_RUN=1 to measure"); + return Ok(()); + } + ensure!( + command(Command::new("node").args(["-p", "process.versions.node"]))? == "22.14.0", + "requires Node 22.14.0" + ); + ensure!( + command(Command::new("npm").arg("--version"))? == "10.9.2", + "requires npm 10.9.2" + ); + let iterations = std::env::var("NPM_METADATA_ITERATIONS") + .ok() + .and_then(|s| s.parse::().ok()) + .unwrap_or(3); + ensure!( + iterations > 0 && iterations <= 20, + "iterations must be 1..=20" + ); + if std::env::var_os("NPM_METADATA_RELEASE_BASELINE").is_some() { + ensure!( + iterations >= 5, + "release baseline requires at least five iterations" + ); + return run_release_baseline(iterations).await; + } + run_legacy_baseline(iterations).await +} + +async fn run_legacy_baseline(iterations: usize) -> anyhow::Result<()> { + let compiled = CompiledTest::new_with_features( + Utf8Path::new("examples/runtime/npm-compat"), + true, + FeatureCombination::TypeScriptCompilerProfiling, + ) + .await?; + // Immutable compilation/linker state is shared; every sample still has a new Store, + // component instance, QuickJS runtime, workspace, and npm cache. + let prepared = PreparedComponent::new(compiled.wasm_path())?; + let pack_dir = camino_tempfile::tempdir()?; + let (local, server, requests) = local_registry(pack_dir.path()).await?; + let mut samples = Vec::new(); + for iteration in 0..iterations { + // Alternate the order to limit drift, never run invocations concurrently. + for local_first in [iteration % 2 == 1, iteration % 2 == 0] { + let (url, count) = if local_first { + (local.as_str(), Some(requests.as_ref())) + } else { + ("https://registry.npmjs.org/", None) + }; + for operation in ["version", "view", "ci"] { + let next = samples.len(); + for value in sample(&prepared, operation, url, local_first, next, count).await? { + eprintln!( + "{} {} {} {}: success={} wall={}ms", + target_name(), + value["registry"], + operation, + value["cache"], + value["success"], + value["wallMs"] + ); + samples.push(value); + } + } + } + } + server.abort(); + let report = json!({"schema": "npm-metadata-v1", "revision": command(Command::new("git").args(["rev-parse", "HEAD"]))?, + "target": target_name(), "node": "22.14.0", "npm": "10.9.2", + "componentFeature": "typescript-compiler-profiling", "iterations": iterations, "samples": samples}); + let output = serde_json::to_string_pretty(&report)?; + if let Ok(path) = std::env::var("NPM_METADATA_REPORT") { + fs::write(path, format!("{output}\n"))?; + } + println!("{output}"); + Ok(()) +} + +#[derive(Clone, Copy, Debug, Default)] +struct RegistrySnapshot { + metadata: usize, + tarballs: usize, + total: usize, +} + +impl RegistrySnapshot { + fn difference(self, before: Self) -> Self { + Self { + metadata: self.metadata - before.metadata, + tarballs: self.tarballs - before.tarballs, + total: self.total - before.total, + } + } + + fn value(self) -> Value { + let classified = self.metadata + self.tarballs; + json!({ + "metadata": self.metadata, + "tarballs": self.tarballs, + "total": self.total, + "unexpected": self.total.saturating_sub(classified), + }) + } +} + +#[derive(Default)] +struct RegistryCounters { + metadata: AtomicUsize, + tarballs: AtomicUsize, + total: AtomicUsize, +} + +impl RegistryCounters { + fn snapshot(&self) -> RegistrySnapshot { + RegistrySnapshot { + metadata: self.metadata.load(Ordering::Relaxed), + tarballs: self.tarballs.load(Ordering::Relaxed), + total: self.total.load(Ordering::Relaxed), + } + } +} + +struct ReleaseRegistry { + base: String, + server: tokio::task::JoinHandle<()>, + counters: Arc, + tarballs: BTreeMap, +} + +async fn release_registry(root: &Utf8Path) -> anyhow::Result { + let listener = tokio::net::TcpListener::bind("127.0.0.1:0").await?; + let base = format!("http://127.0.0.1:{}", listener.local_addr()?.port()); + let counters = Arc::new(RegistryCounters::default()); + let mut tarballs = BTreeMap::new(); + let mut router = Router::new(); + for (short, name) in PACKAGES { + let tarball = pack(short, root)?; + tarballs.insert( + (*name).to_string(), + json!({ + "bytes": tarball.len(), + "blake3": blake3::hash(&tarball).to_hex().to_string(), + }), + ); + let path = format!("/@types/{short}/-/{short}-{VERSION}.tgz"); + let metadata_path = format!("/@types%2f{short}"); + let dependencies = if *short == "lodash-es" { + json!({"@types/lodash": "*"}) + } else { + json!({}) + }; + let mut metadata = json!({"name": name, "dist-tags": {"latest": VERSION}, "versions": {}}); + metadata["versions"][VERSION] = json!({ + "name": name, + "version": VERSION, + "dependencies": dependencies, + "dist": {"tarball": format!("{base}{path}")}, + }); + let route_counters = counters.clone(); + router = router.route( + &metadata_path, + get(move || { + let route_counters = route_counters.clone(); + let metadata = metadata.clone(); + async move { + route_counters.metadata.fetch_add(1, Ordering::Relaxed); + axum::Json(metadata) + } + }), + ); + let route_counters = counters.clone(); + router = router.route( + &path, + get(move || { + let route_counters = route_counters.clone(); + let body = tarball.clone(); + async move { + route_counters.tarballs.fetch_add(1, Ordering::Relaxed); + (StatusCode::OK, Body::from(body)) + } + }), + ); + } + let total_counters = counters.clone(); + let router = router.layer(axum::middleware::from_fn( + move |request: Request, next: Next| { + let total_counters = total_counters.clone(); + async move { + total_counters.total.fetch_add(1, Ordering::Relaxed); + next.run(request).await + } + }, + )); + let server = tokio::spawn(async move { + axum::serve(listener, router) + .await + .expect("release baseline local registry"); + }); + Ok(ReleaseRegistry { + base, + server, + counters, + tarballs, + }) +} + +struct HostNpm { + node: Utf8PathBuf, + npm_cli: Utf8PathBuf, + npm_dir: Utf8PathBuf, +} + +fn resolve_host_npm() -> anyhow::Result { + let node = Utf8PathBuf::from(command(Command::new("which").arg("node"))?); + let npm_dir = Utf8PathBuf::from(command(Command::new("npm").args(["root", "-g"]))?).join("npm"); + let npm_cli = npm_dir.join("bin/npm-cli.js"); + ensure!( + node.is_file(), + "resolved Node executable does not exist: {node}" + ); + ensure!( + npm_cli.is_file(), + "resolved npm CLI does not exist: {npm_cli}" + ); + let package: Value = serde_json::from_slice(&fs::read(npm_dir.join("package.json"))?)?; + ensure!( + package["version"] == "10.9.2", + "resolved npm package is not 10.9.2" + ); + Ok(HostNpm { + node, + npm_cli, + npm_dir, + }) +} + +fn prepare_release_root(root: &Utf8Path, fixture: bool, registry: &str) -> anyhow::Result<()> { + for directory in [ + "workspace", + "home/npm", + "cache/npm", + "prefix/lib/node_modules", + "prefix/bin", + ] { + fs::create_dir_all(root.join(directory))?; + } + if fixture { + for file in ["package.json", "package-lock.json"] { + fs::copy( + Utf8Path::new(SUITE_DIR).join("real").join(file), + root.join("workspace").join(file), + )?; + } + let lock_path = root.join("workspace/package-lock.json"); + let mut lock: Value = serde_json::from_slice(&fs::read(&lock_path)?)?; + for (short, _) in PACKAGES { + lock["packages"][format!("node_modules/@types/{short}")]["resolved"] = json!(format!( + "{}/@types/{short}/-/{short}-{VERSION}.tgz", + registry.trim_end_matches('/') + )); + } + fs::write(lock_path, serde_json::to_vec_pretty(&lock)?)?; + } + Ok(()) +} + +async fn release_instance( + prepared: &PreparedComponent, + npm_dir: &Utf8Path, + fixture: bool, + registry: &str, +) -> anyhow::Result { + let instance = TestInstance::from_prepared_with_memory_tracking(prepared).await?; + prepare_release_root(instance.temp_dir_path(), fixture, registry)?; + fs::create_dir_all(instance.temp_dir_path().join("tool/npm"))?; + copy_dir_recursive( + npm_dir.as_std_path(), + instance.temp_dir_path().join("tool/npm").as_std_path(), + )?; + Ok(instance) +} + +fn metadata_args(registry: &str) -> Vec { + vec![ + "view".to_string(), + format!("@types/lodash-es@{VERSION}"), + "version".to_string(), + format!("--registry={registry}"), + "--prefer-offline".to_string(), + "--loglevel=http".to_string(), + ] +} + +fn seed_ci_args(registry: &str) -> Vec { + vec![ + "ci".to_string(), + "--install-links".to_string(), + "--ignore-scripts".to_string(), + "--no-audit".to_string(), + "--no-fund".to_string(), + format!("--registry={registry}"), + "--loglevel=http".to_string(), + ] +} + +fn warm_ci_args(registry: &str) -> Vec { + vec![ + "ci".to_string(), + "--offline".to_string(), + "--install-links".to_string(), + "--ignore-scripts".to_string(), + "--no-audit".to_string(), + "--no-fund".to_string(), + format!("--registry={registry}"), + "--loglevel=http".to_string(), + ] +} + +fn release_series_arguments(registry: &str) -> Value { + json!({ + "metadata": metadata_args(registry), + "ciSeed": seed_ci_args(registry), + "ciTimed": warm_ci_args(registry), + }) +} + +fn release_timing_boundary() -> Value { + json!({ + "host": HOST_TIMING_BOUNDARY, + "wasm": WASM_TIMING_BOUNDARY, + }) +} + +fn installed_state(root: &Utf8Path) -> Value { + let mut packages = BTreeMap::new(); + let mut complete = true; + for (short, name) in PACKAGES { + let path = root + .join("workspace/node_modules/@types") + .join(short) + .join("package.json"); + let identity = fs::read(&path) + .ok() + .and_then(|bytes| serde_json::from_slice::(&bytes).ok()) + .map(|package| { + json!({ + "name": package["name"], + "version": package["version"], + }) + }); + complete &= identity + .as_ref() + .is_some_and(|identity| identity["name"] == *name && identity["version"] == VERSION); + packages.insert((*name).to_string(), identity); + } + let mut top_level = fs::read_dir(root.join("workspace/node_modules/@types")) + .ok() + .into_iter() + .flatten() + .filter_map(Result::ok) + .filter_map(|entry| entry.file_name().into_string().ok()) + .collect::>(); + top_level.sort(); + complete &= top_level == ["lodash", "lodash-es"]; + json!({"complete": complete, "packages": packages, "topLevel": top_level}) +} + +struct ReleaseSampleContext<'a> { + side: &'a str, + operation: &'a str, + cache: &'a str, + sequence: usize, + root: &'a Utf8Path, + requests: RegistrySnapshot, + linear_memory_high_water_bytes: Option, + lockfile_before: Option, +} + +fn finish_release_sample( + context: ReleaseSampleContext<'_>, + wall_ms: f64, + result: Value, +) -> anyhow::Result { + let ReleaseSampleContext { + side, + operation, + cache, + sequence, + root, + requests, + linear_memory_high_water_bytes, + lockfile_before, + } = context; + let installed = (operation == "ci").then(|| installed_state(root)); + let lockfile_after = if operation == "ci" { + Some(hash_file(root.join("workspace/package-lock.json"))?) + } else { + None + }; + let lockfile_unchanged = lockfile_before + .as_ref() + .zip(lockfile_after.as_ref()) + .map(|(before, after)| before == after); + let expected_output = + operation != "view" || result["stdout"].as_str().unwrap_or_default().trim() == VERSION; + let installed_ok = installed + .as_ref() + .is_none_or(|value| value["complete"] == true); + let success = result["value"]["exitCode"] == 0 + && result["overflowed"] == false + && result.get("runnerError").is_none() + && expected_output + && installed_ok + && lockfile_unchanged.is_none_or(|unchanged| unchanged); + let stderr = result["stderr"].as_str().unwrap_or_default(); + let npm_http_fetch_log_lines = stderr + .lines() + .filter(|line| line.starts_with("npm http fetch ")) + .count(); + let npm_http_cache_log_lines = stderr + .lines() + .filter(|line| line.starts_with("npm http cache ")) + .count(); + Ok(json!({ + "sequence": sequence, + "side": side, + "operation": operation, + "registry": "local", + "cache": cache, + "success": success, + "installed": installed, + "lockfileBlake3": lockfile_after, + "lockfileUnchanged": lockfile_unchanged, + "wallMs": wall_ms, + "localHttpRequests": requests.value(), + "npmHttpFetchLogLines": npm_http_fetch_log_lines, + "npmHttpCacheLogLines": npm_http_cache_log_lines, + "linearMemoryHighWaterBytes": linear_memory_high_water_bytes, + "result": result, + })) +} + +fn host_npm_sample( + host: &HostNpm, + root: &Utf8Path, + args: &[String], + operation: &str, + cache: &str, + sequence: usize, + counters: &RegistryCounters, +) -> anyhow::Result { + let lockfile_before = (operation == "ci") + .then(|| hash_file(root.join("workspace/package-lock.json"))) + .transpose()?; + let before = counters.snapshot(); + let mut command = Command::new(&host.node); + command + .arg(&host.npm_cli) + .args(args) + .current_dir(root.join("workspace")) + .env_clear() + .env("HOME", root.join("home/npm")) + .env("NODE", &host.node) + .env("NPM", &host.npm_cli) + .env("NPM_CONFIG_AUDIT", "false") + .env("NPM_CONFIG_CACHE", root.join("cache/npm")) + .env("NPM_CONFIG_FETCH_RETRIES", "0") + .env("NPM_CONFIG_FUND", "false") + .env("NPM_CONFIG_PREFIX", root.join("prefix")) + .env("NPM_CONFIG_UPDATE_NOTIFIER", "false") + .env("PATH", ""); + let started = Instant::now(); + let output = command.output()?; + let wall_ms = millis(started.elapsed()); + let result = json!({ + "value": {"exitCode": output.status.code().unwrap_or(-1)}, + "stdout": String::from_utf8_lossy(&output.stdout), + "stderr": String::from_utf8_lossy(&output.stderr), + "overflowed": false, + }); + finish_release_sample( + ReleaseSampleContext { + side: "host", + operation, + cache, + sequence, + root, + requests: counters.snapshot().difference(before), + linear_memory_high_water_bytes: None, + lockfile_before, + }, + wall_ms, + result, + ) +} + +async fn wasm_npm_sample( + instance: &mut TestInstance, + args: &[String], + operation: &str, + cache: &str, + sequence: usize, + counters: &RegistryCounters, +) -> anyhow::Result { + let lockfile_before = (operation == "ci") + .then(|| hash_file(instance.temp_dir_path().join("workspace/package-lock.json"))) + .transpose()?; + let before = counters.snapshot(); + instance.set_epoch_deadline(180); + let arguments = [Val::List( + args.iter() + .map(|value| Val::String(value.clone())) + .collect(), + )]; + let started = Instant::now(); + let value = instance.invoke(None, "run", &arguments).await?; + let wall_ms = millis(started.elapsed()); + let Some(Val::String(encoded)) = value else { + anyhow::bail!("measured npm did not return JSON") + }; + let result: Value = serde_json::from_str(&encoded)?; + finish_release_sample( + ReleaseSampleContext { + side: "wasm", + operation, + cache, + sequence, + root: instance.temp_dir_path(), + requests: counters.snapshot().difference(before), + linear_memory_high_water_bytes: Some(instance.linear_memory_high_water_bytes()), + lockfile_before, + }, + wall_ms, + result, + ) +} + +struct ReleaseIteration { + metadata_cold: Value, + ci_seed: Value, + ci_warm: Value, +} + +fn host_release_iteration( + host: &HostNpm, + registry: &ReleaseRegistry, + sequence: usize, +) -> anyhow::Result { + let metadata_root = camino_tempfile::Utf8TempDir::new()?; + prepare_release_root(metadata_root.path(), false, ®istry.base)?; + let metadata_args = metadata_args(®istry.base); + let metadata_cold = host_npm_sample( + host, + metadata_root.path(), + &metadata_args, + "view", + "cold", + sequence, + ®istry.counters, + )?; + let ci_root = camino_tempfile::Utf8TempDir::new()?; + prepare_release_root(ci_root.path(), true, ®istry.base)?; + let ci_seed = host_npm_sample( + host, + ci_root.path(), + &seed_ci_args(®istry.base), + "ci", + "seed", + sequence, + ®istry.counters, + )?; + ensure!(ci_seed["success"] == true, "host npm ci cache seed failed"); + fs::remove_dir_all(ci_root.path().join("workspace/node_modules"))?; + let ci_warm = host_npm_sample( + host, + ci_root.path(), + &warm_ci_args(®istry.base), + "ci", + "warm-tarball", + sequence, + ®istry.counters, + )?; + Ok(ReleaseIteration { + metadata_cold, + ci_seed, + ci_warm, + }) +} + +async fn wasm_release_iteration( + prepared: &PreparedComponent, + npm_dir: &Utf8Path, + registry: &ReleaseRegistry, + sequence: usize, +) -> anyhow::Result { + let mut metadata_instance = release_instance(prepared, npm_dir, false, ®istry.base).await?; + let metadata_args = metadata_args(®istry.base); + let metadata_cold = wasm_npm_sample( + &mut metadata_instance, + &metadata_args, + "view", + "cold", + sequence, + ®istry.counters, + ) + .await?; + let mut ci_instance = release_instance(prepared, npm_dir, true, ®istry.base).await?; + let ci_seed = wasm_npm_sample( + &mut ci_instance, + &seed_ci_args(®istry.base), + "ci", + "seed", + sequence, + ®istry.counters, + ) + .await?; + ensure!(ci_seed["success"] == true, "Wasm npm ci cache seed failed"); + fs::remove_dir_all(ci_instance.temp_dir_path().join("workspace/node_modules"))?; + let ci_warm = wasm_npm_sample( + &mut ci_instance, + &warm_ci_args(®istry.base), + "ci", + "warm-tarball", + sequence, + ®istry.counters, + ) + .await?; + Ok(ReleaseIteration { + metadata_cold, + ci_seed, + ci_warm, + }) +} + +#[derive(Default)] +struct ReleaseSeries { + metadata_cold: Vec, + ci_seeds: Vec, + ci_warm: Vec, +} + +impl ReleaseSeries { + fn push(&mut self, iteration: ReleaseIteration) { + self.metadata_cold.push(iteration.metadata_cold); + self.ci_seeds.push(iteration.ci_seed); + self.ci_warm.push(iteration.ci_warm); + } + + fn value(&self) -> Value { + json!({ + "metadata": { + "cold": summarize_release(&self.metadata_cold), + }, + "warmTarballCi": { + "seeds": summarize_release(&self.ci_seeds), + "timed": summarize_release(&self.ci_warm), + }, + }) + } + + fn samples(&self) -> impl Iterator { + self.metadata_cold + .iter() + .chain(&self.ci_seeds) + .chain(&self.ci_warm) + } +} + +async fn run_release_baseline(iterations: usize) -> anyhow::Result<()> { + let host = resolve_host_npm()?; + let build_started = Instant::now(); + let feature_combination = FeatureCombination::Normal; + let compiled = + CompiledTest::new_with_features(Utf8Path::new(EXAMPLE_DIR), true, feature_combination) + .await?; + let build_elapsed = build_started.elapsed(); + let component_size = fs::metadata(compiled.wasm_path())?.len(); + let prepare_started = Instant::now(); + let prepared = PreparedComponent::new(compiled.wasm_path())?; + let prepare_elapsed = prepare_started.elapsed(); + let pack_dir = camino_tempfile::tempdir()?; + let registry = release_registry(pack_dir.path()).await?; + + let mut host_series = ReleaseSeries::default(); + let mut wasm_series = ReleaseSeries::default(); + for iteration in 0..iterations { + if iteration % 2 == 0 { + host_series.push(host_release_iteration(&host, ®istry, iteration)?); + wasm_series.push( + wasm_release_iteration(&prepared, &host.npm_dir, ®istry, iteration).await?, + ); + } else { + wasm_series.push( + wasm_release_iteration(&prepared, &host.npm_dir, ®istry, iteration).await?, + ); + host_series.push(host_release_iteration(&host, ®istry, iteration)?); + } + } + registry.server.abort(); + + let environment = release_environment(iterations, feature_combination.label())?; + let input_hashes = npm_input_hashes()?; + let npm_tool = directory_hash_evidence(&host.npm_dir)?; + let max_linear_memory = wasm_series + .samples() + .filter_map(|sample| sample["linearMemoryHighWaterBytes"].as_u64()) + .max() + .unwrap_or(0); + let report = json!({ + "schema": "npm-metadata-v2", + "environment": environment, + "inputs": { + "algorithm": INPUT_HASH_ALGORITHM, + "buildHash": input_hashes.build, + "benchmarkHash": input_hashes.benchmark, + }, + "target": target_name(), + "fixture": { + "name": "small-local-registry", + "packages": PACKAGES.iter().map(|(_, name)| *name).collect::>(), + "version": VERSION, + "packageJsonBlake3": hash_file(Utf8Path::new(SUITE_DIR).join("real/package.json"))?, + "packageLockBlake3": hash_file(Utf8Path::new(SUITE_DIR).join("real/package-lock.json"))?, + "npmTool": npm_tool, + "tarballs": registry.tarballs, + "seriesArguments": release_series_arguments(""), + }, + "component": { + "path": compiled.wasm_path().as_str(), + "bytes": component_size, + "blake3": hash_file(compiled.wasm_path())?, + "buildMs": millis(build_elapsed), + "initialPrepareMs": millis(prepare_elapsed), + }, + "host": host_series.value(), + "wasm": wasm_series.value(), + "timingBoundary": release_timing_boundary(), + "memory": { + "maxWasmLinearMemoryHighWaterBytes": max_linear_memory, + "series": { + "metadataCold": release_memory_series(&wasm_series.metadata_cold)?, + "ciSeeds": release_memory_series(&wasm_series.ci_seeds)?, + "ciWarmTarball": release_memory_series(&wasm_series.ci_warm)?, + }, + "interpretation": MEMORY_INTERPRETATION, + }, + "notes": [ + "manual local release measurement; no CI timing threshold", + "production normal feature; profiling-only instrumentation disabled", + "host and Wasm use the same loopback registry and pinned tarball bytes", + "each iteration has independent host and Wasm workspaces and caches", + "timed npm ci runs offline after an untimed local-registry seed and external node_modules removal", + ], + }); + validate_release_report(&report)?; + validate_release_regression_guards(&report)?; + let formatted = serde_json::to_string_pretty(&report)?; + if let Ok(path) = std::env::var("NPM_METADATA_REPORT") { + fs::write(path, format!("{formatted}\n"))?; + } + println!("{formatted}"); + Ok(()) +} + +fn millis(duration: Duration) -> f64 { + duration.as_secs_f64() * 1000.0 +} + +fn summarize_release(samples: &[Value]) -> Value { + let mut wall_ms = samples + .iter() + .filter_map(|sample| sample["wallMs"].as_f64()) + .collect::>(); + wall_ms.sort_by(f64::total_cmp); + let median_ms = wall_ms[wall_ms.len() / 2]; + let p95_index = ((wall_ms.len() as f64 * 0.95).ceil() as usize) + .saturating_sub(1) + .min(wall_ms.len() - 1); + let total_ms = wall_ms.iter().sum::(); + json!({ + "iterations": samples.len(), + "medianMs": median_ms, + "p95Ms": wall_ms[p95_index], + "throughputPerSecond": 1000.0 * samples.len() as f64 / total_ms, + "samples": samples, + }) +} + +fn integer_series(values: Vec) -> Value { + let minimum = values.iter().copied().min().unwrap_or(0); + let maximum = values.iter().copied().max().unwrap_or(0); + json!({ + "minimumBytes": minimum, + "maximumBytes": maximum, + "variationBytes": maximum - minimum, + "samples": values, + }) +} + +fn release_memory_series(samples: &[Value]) -> anyhow::Result { + let linear = samples + .iter() + .map(|sample| { + sample["linearMemoryHighWaterBytes"] + .as_u64() + .context("missing npm linear-memory sample") + }) + .collect::>>()?; + Ok(json!({ + "linearMemoryHighWater": integer_series(linear), + })) +} + +struct NpmInputHashes { + build: String, + benchmark: String, +} + +struct CurrentReleaseInputs { + hashes: NpmInputHashes, + package_json: String, + package_lock: String, +} + +fn npm_source_root() -> anyhow::Result { + let current_directory = Utf8PathBuf::from_path_buf(std::env::current_dir()?) + .map_err(|path| anyhow::anyhow!("non-UTF-8 current directory: {}", path.display()))?; + let configured = Utf8PathBuf::from( + std::env::var("NPM_METADATA_SOURCE_ROOT").unwrap_or_else(|_| ".".to_string()), + ); + Ok(if configured == Utf8Path::new(".") { + current_directory + } else if configured.is_absolute() { + configured + } else { + current_directory.join(configured) + }) +} + +fn npm_input_hashes() -> anyhow::Result { + let source_root = npm_source_root()?; + let source_root = source_root.as_path(); + let mut build_files = npm_input_files(&[ + "Cargo.toml", + "Cargo.lock", + ".github/scripts/enable-wasmtime-fork.sh", + "crates/golem-context/Cargo.toml", + "crates/golem-websocket/Cargo.toml", + "crates/wasi-logging/Cargo.toml", + "crates/wasm-rquickjs/Cargo.toml", + "crates/wasm-rquickjs/skeleton/Cargo.toml_", + "crates/wasm-rquickjs/skeleton/Cargo.lock", + ]); + for directory in [ + "crates/wasi-logging/src", + "crates/wasm-rquickjs/src", + "crates/wasm-rquickjs/skeleton/src", + EXAMPLE_DIR, + ] { + collect_npm_input_files(source_root, Utf8Path::new(directory), &mut build_files)?; + } + let mut benchmark_files = npm_input_files(&[ + "tests/npm_metadata.rs", + "tests/npm_metadata/real/package.json", + "tests/npm_metadata/real/package-lock.json", + "tests/npm_metadata/run.sh", + "tools/dev-test.sh", + ]); + for directory in [ + "tests/common", + "crates/golem-websocket/wit", + "crates/golem-websocket/wit-p3", + ] { + collect_npm_input_files(source_root, Utf8Path::new(directory), &mut benchmark_files)?; + } + Ok(NpmInputHashes { + build: npm_composite_hash(source_root, "build", &build_files)?, + benchmark: npm_composite_hash(source_root, "benchmark", &benchmark_files)?, + }) +} + +fn current_release_inputs() -> anyhow::Result { + let source_root = npm_source_root()?; + Ok(CurrentReleaseInputs { + hashes: npm_input_hashes()?, + package_json: hash_file(source_root.join(SUITE_DIR).join("real/package.json"))?, + package_lock: hash_file(source_root.join(SUITE_DIR).join("real/package-lock.json"))?, + }) +} + +fn npm_input_files(paths: &[&str]) -> BTreeSet { + paths.iter().map(Utf8PathBuf::from).collect() +} + +fn collect_npm_input_files( + source_root: &Utf8Path, + directory: &Utf8Path, + files: &mut BTreeSet, +) -> anyhow::Result<()> { + for entry in fs::read_dir(source_root.join(directory))? { + let entry = entry?; + let name = entry + .file_name() + .into_string() + .map_err(|name| anyhow::anyhow!("non-UTF-8 input name: {}", name.to_string_lossy()))?; + let path = directory.join(name); + let metadata = fs::symlink_metadata(source_root.join(&path))?; + ensure!( + !metadata.file_type().is_symlink(), + "input symlinks are unsupported: {path}" + ); + if metadata.is_dir() { + collect_npm_input_files(source_root, &path, files)?; + } else { + ensure!(metadata.is_file(), "unsupported input type: {path}"); + files.insert(path); + } + } + Ok(()) +} + +fn npm_composite_hash( + source_root: &Utf8Path, + domain: &str, + files: &BTreeSet, +) -> anyhow::Result { + ensure!(!files.is_empty(), "{domain} input set is empty"); + let mut hasher = blake3::Hasher::new(); + hash_part(&mut hasher, INPUT_HASH_ALGORITHM.as_bytes()); + hash_part(&mut hasher, domain.as_bytes()); + for path in files { + ensure!( + path.is_relative() + && !path + .components() + .any(|component| component.as_str() == ".."), + "input path escapes the source root: {path}" + ); + let metadata = fs::symlink_metadata(source_root.join(path))?; + ensure!( + metadata.is_file() && !metadata.file_type().is_symlink(), + "input is not a regular file: {path}" + ); + let components = path.components().collect::>(); + hasher.update(&(components.len() as u64).to_le_bytes()); + for component in components { + hash_part(&mut hasher, component.as_str().as_bytes()); + } + hash_part(&mut hasher, &fs::read(source_root.join(path))?); + } + Ok(hasher.finalize().to_hex().to_string()) +} + +fn hash_part(hasher: &mut blake3::Hasher, bytes: &[u8]) { + hasher.update(&(bytes.len() as u64).to_le_bytes()); + hasher.update(bytes); +} + +fn hash_file(path: impl AsRef) -> anyhow::Result { + let mut file = fs::File::open(path.as_ref())?; + let mut hasher = blake3::Hasher::new(); + let mut buffer = [0_u8; 64 * 1024]; + loop { + let read = file.read(&mut buffer)?; + if read == 0 { + break; + } + hasher.update(&buffer[..read]); + } + Ok(hasher.finalize().to_hex().to_string()) +} + +fn directory_hash_evidence(root: &Utf8Path) -> anyhow::Result { + let mut files = BTreeSet::new(); + collect_npm_input_files(root, Utf8Path::new(""), &mut files)?; + let bytes = files.iter().try_fold(0_u64, |total, path| { + Ok::<_, anyhow::Error>(total + fs::metadata(root.join(path))?.len()) + })?; + Ok(json!({ + "algorithm": INPUT_HASH_ALGORITHM, + "blake3": npm_composite_hash(root, "npm-tool", &files)?, + "files": files.len(), + "bytes": bytes, + })) +} + +fn release_environment(iterations: usize, component_features: &str) -> anyhow::Result { + let source_root = npm_source_root()?; + let host_lock_blake3 = std::env::var("WASM_RQUICKJS_TEST_HOST_LOCKFILE") + .ok() + .map(hash_file) + .transpose()?; + let dirty = !command(Command::new("git").args([ + "-C", + source_root.as_str(), + "status", + "--porcelain", + "--", + ".", + ":(exclude)tests/npm_metadata/results/*.json", + ]))? + .is_empty(); + Ok(json!({ + "commitHint": command(Command::new("git").args(["-C", source_root.as_str(), "rev-parse", "HEAD"]))?, + "dirty": dirty, + "os": std::env::consts::OS, + "arch": std::env::consts::ARCH, + "rustc": command(Command::new("rustc").arg("--version"))?, + "cargo": command(Command::new("cargo").arg("--version"))?, + "node": command(Command::new("node").args(["-p", "process.versions.node"]))?, + "npm": command(Command::new("npm").arg("--version"))?, + "componentFeatures": component_features, + "componentCargoProfile": std::env::var("WASM_RQUICKJS_TEST_COMPONENT_PROFILE") + .unwrap_or_else(|_| "dev".to_string()), + "harnessCargoProfile": if cfg!(debug_assertions) { "dev" } else { "release" }, + "lockedBuilds": std::env::var("WASM_RQUICKJS_TEST_LOCKED_BUILDS").ok(), + "hostDependencyGraph": { + "kind": if test_target() == TestTarget::P2 { "p2-shadow" } else { "workspace" }, + "lockBlake3": host_lock_blake3, + }, + "iterations": iterations, + "artifactCache": std::env::var("WASM_RQUICKJS_TEST_ARTIFACT_CACHE").ok(), + "wasmtimeCache": std::env::var("WASM_RQUICKJS_TEST_WASMTIME_CACHE").ok(), + "preparedComponentCache": std::env::var("WASM_RQUICKJS_TEST_PREPARED_COMPONENT_CACHE").ok(), + "unoptimized": std::env::var("WASM_RQUICKJS_TEST_UNOPTIMIZED").ok(), + })) +} + +fn validate_release_report(report: &Value) -> anyhow::Result<()> { + ensure!( + report["schema"] == "npm-metadata-v2", + "unsupported npm release schema" + ); + let iterations = report["environment"]["iterations"] + .as_u64() + .filter(|value| *value >= 5) + .context("npm release report needs at least five iterations")? + as usize; + ensure!( + report["fixture"]["name"] == "small-local-registry" + && report["fixture"]["version"] == VERSION + && report["fixture"]["packages"] == json!(["@types/lodash", "@types/lodash-es"]) + && report["fixture"]["seriesArguments"] == release_series_arguments("") + && report["inputs"]["algorithm"] == INPUT_HASH_ALGORITHM + && report["timingBoundary"] == release_timing_boundary() + && report["memory"]["interpretation"] == MEMORY_INTERPRETATION + && report["environment"]["componentFeatures"] == "normal" + && report["environment"]["componentCargoProfile"] == "release" + && report["environment"]["harnessCargoProfile"] == "release" + && report["environment"]["lockedBuilds"] == "1", + "npm release report does not identify the production small fixture" + ); + let expected = [ + ( + "metadata", "cold", "view", "cold", 1_u64, 0_u64, 1_u64, 0_u64, + ), + ("warmTarballCi", "seeds", "ci", "seed", 0, 2, 2, 2), + ("warmTarballCi", "timed", "ci", "warm-tarball", 0, 0, 0, 2), + ]; + let mut max_linear_memory = 0; + for side in ["host", "wasm"] { + for ( + group, + series_name, + operation, + cache, + metadata_requests, + tarball_requests, + fetch_log_lines, + cache_log_lines, + ) in expected + { + let series = &report[side][group][series_name]; + let samples = series["samples"] + .as_array() + .with_context(|| format!("missing {side} {group}/{series_name} samples"))?; + let summary = summarize_release(samples); + let summary_fields_match = ["medianMs", "p95Ms", "throughputPerSecond"] + .into_iter() + .all(|field| { + let Some(stored) = series[field].as_f64() else { + return false; + }; + let expected = summary[field] + .as_f64() + .expect("recomputed npm summary field is numeric"); + let tolerance = f64::EPSILON * expected.abs().max(1.0) * 8.0; + stored.is_finite() && (stored - expected).abs() <= tolerance + }); + ensure!( + samples.len() == iterations + && series.as_object().is_some_and(|series| series.len() == 5) + && series["iterations"] == summary["iterations"] + && summary_fields_match, + "{side} {group}/{series_name} summary does not reconcile" + ); + for sample in samples { + let wall_ms = sample["wallMs"] + .as_f64() + .filter(|value| value.is_finite() && *value > 0.0); + ensure!( + sample["side"] == side + && sample["operation"] == operation + && sample["cache"] == cache + && sample["registry"] == "local" + && sample["success"] == true + && sample["result"]["value"]["exitCode"] == 0 + && sample["result"]["overflowed"] == false + && wall_ms.is_some() + && sample["localHttpRequests"]["metadata"] == metadata_requests + && sample["localHttpRequests"]["tarballs"] == tarball_requests + && sample["localHttpRequests"]["total"] + == metadata_requests + tarball_requests + && sample["localHttpRequests"]["unexpected"] == 0 + && sample["npmHttpFetchLogLines"] == fetch_log_lines + && sample["npmHttpCacheLogLines"] == cache_log_lines, + "invalid {side} {group}/{series_name} sample: {sample}" + ); + if operation == "view" { + ensure!( + sample["result"]["stdout"] + .as_str() + .is_some_and(|stdout| stdout.trim() == VERSION) + && sample["installed"].is_null(), + "metadata sample has incorrect output or install state" + ); + } else { + ensure!( + sample["installed"]["complete"] == true + && sample["installed"]["packages"]["@types/lodash"]["name"] + == "@types/lodash" + && sample["installed"]["packages"]["@types/lodash"]["version"] + == VERSION + && sample["installed"]["packages"]["@types/lodash-es"]["name"] + == "@types/lodash-es" + && sample["installed"]["packages"]["@types/lodash-es"]["version"] + == VERSION + && sample["installed"]["topLevel"] == json!(["lodash", "lodash-es"]) + && sample["lockfileUnchanged"] == true + && is_blake3_value(&sample["lockfileBlake3"]), + "npm ci sample did not install the pinned fixture" + ); + } + if side == "wasm" { + let linear = sample["linearMemoryHighWaterBytes"] + .as_u64() + .filter(|value| *value > 0) + .context("Wasm npm sample has no linear-memory evidence")?; + max_linear_memory = max_linear_memory.max(linear); + } else { + ensure!( + sample["linearMemoryHighWaterBytes"].is_null(), + "host npm sample unexpectedly has Wasm memory" + ); + } + } + } + } + ensure!( + max_linear_memory > 0 + && report["memory"]["maxWasmLinearMemoryHighWaterBytes"] == max_linear_memory, + "npm release memory summary does not reconcile" + ); + for (name, path) in [ + ("metadataCold", "/wasm/metadata/cold/samples"), + ("ciSeeds", "/wasm/warmTarballCi/seeds/samples"), + ("ciWarmTarball", "/wasm/warmTarballCi/timed/samples"), + ] { + let samples = report + .pointer(path) + .and_then(Value::as_array) + .with_context(|| format!("missing Wasm npm memory source series {name}"))?; + ensure!( + report["memory"]["series"][name] == release_memory_series(samples)?, + "npm release memory series does not reconcile for {name}" + ); + } + Ok(()) +} + +fn validate_release_regression_guards(report: &Value) -> anyhow::Result<()> { + let mut false_arguments = report.clone(); + false_arguments["fixture"]["seriesArguments"]["ciTimed"][1] = json!("--online"); + ensure!( + validate_release_report(&false_arguments).is_err(), + "npm release validator accepted incorrect command arguments" + ); + let mut false_timing = report.clone(); + false_timing["timingBoundary"]["wasm"] = json!("component build through result"); + ensure!( + validate_release_report(&false_timing).is_err(), + "npm release validator accepted an incorrect timing boundary" + ); + let mut false_algorithm = report.clone(); + false_algorithm["inputs"]["algorithm"] = json!("unversioned"); + ensure!( + validate_release_report(&false_algorithm).is_err(), + "npm release validator accepted an incorrect input hash algorithm" + ); + let mut false_summary = report.clone(); + false_summary["host"]["metadata"]["cold"]["throughputPerSecond"] = json!(1.0); + ensure!( + validate_release_report(&false_summary).is_err(), + "npm release validator accepted an incorrect throughput summary" + ); + let mut failed = report.clone(); + failed["host"]["metadata"]["cold"]["samples"][0]["success"] = json!(false); + ensure!( + validate_release_report(&failed).is_err(), + "npm release validator accepted a failed sample" + ); + let mut false_http = report.clone(); + false_http["wasm"]["warmTarballCi"]["timed"]["samples"][0]["localHttpRequests"]["tarballs"] = + json!(1); + ensure!( + validate_release_report(&false_http).is_err(), + "npm release validator accepted unexpected warm-cache HTTP" + ); + let mut unclassified_http = report.clone(); + unclassified_http["wasm"]["warmTarballCi"]["timed"]["samples"][0]["localHttpRequests"]["total"] = + json!(1); + unclassified_http["wasm"]["warmTarballCi"]["timed"]["samples"][0]["localHttpRequests"]["unexpected"] = + json!(1); + ensure!( + validate_release_report(&unclassified_http).is_err(), + "npm release validator accepted an unclassified registry request" + ); + let mut missing_install = report.clone(); + missing_install["host"]["warmTarballCi"]["timed"]["samples"][0]["installed"]["complete"] = + json!(false); + ensure!( + validate_release_report(&missing_install).is_err(), + "npm release validator accepted an incomplete install" + ); + let mut missing_memory = report.clone(); + missing_memory["wasm"]["metadata"]["cold"]["samples"][0]["linearMemoryHighWaterBytes"] = + Value::Null; + ensure!( + validate_release_report(&missing_memory).is_err(), + "npm release validator accepted missing memory evidence" + ); + Ok(()) +} + +fn validate_release_metadata(path: &Utf8Path, report: &Value) -> anyhow::Result<()> { + let target = report["target"] + .as_str() + .filter(|target| matches!(*target, "p2" | "p3")) + .context("npm release report has no supported target")?; + let os = report["environment"]["os"] + .as_str() + .context("npm release report has no OS")?; + let arch = report["environment"]["arch"] + .as_str() + .context("npm release report has no architecture")?; + let filename = path + .file_name() + .context("npm release report has no filename")?; + ensure!( + filename.contains("-release-") + && filename.ends_with(&format!("-{target}-{os}-{arch}.json")), + "{path} filename does not identify a release target and host" + ); + let expected_lock_kind = if target == "p2" { + "p2-shadow" + } else { + "workspace" + }; + ensure!( + report["environment"]["node"] == "22.14.0" + && report["environment"]["npm"] == "10.9.2" + && report["environment"]["dirty"] == false + && report["environment"]["artifactCache"].is_null() + && report["environment"]["wasmtimeCache"].is_null() + && report["environment"]["preparedComponentCache"].is_null() + && report["environment"]["unoptimized"].is_null() + && report["environment"]["hostDependencyGraph"]["kind"] == expected_lock_kind + && report["inputs"]["algorithm"] == INPUT_HASH_ALGORITHM + && is_blake3_value(&report["environment"]["hostDependencyGraph"]["lockBlake3"]) + && is_blake3_value(&report["inputs"]["buildHash"]) + && is_blake3_value(&report["inputs"]["benchmarkHash"]) + && is_blake3_value(&report["component"]["blake3"]) + && is_blake3_value(&report["fixture"]["packageJsonBlake3"]) + && is_blake3_value(&report["fixture"]["packageLockBlake3"]) + && is_blake3_value(&report["fixture"]["npmTool"]["blake3"]) + && report["fixture"]["npmTool"]["algorithm"] == INPUT_HASH_ALGORITHM + && report["fixture"]["npmTool"]["files"] + .as_u64() + .is_some_and(|value| value > 0) + && report["fixture"]["npmTool"]["bytes"] + .as_u64() + .is_some_and(|value| value > 0) + && report["component"]["bytes"] + .as_u64() + .is_some_and(|value| value > 0) + && report["environment"]["commitHint"] + .as_str() + .is_some_and(|value| !value.is_empty()) + && report["environment"]["rustc"] + .as_str() + .is_some_and(|value| !value.is_empty()) + && report["environment"]["cargo"] + .as_str() + .is_some_and(|value| !value.is_empty()), + "{path} has incomplete npm release provenance" + ); + for (_, name) in PACKAGES { + ensure!( + is_blake3_value(&report["fixture"]["tarballs"][*name]["blake3"]) + && report["fixture"]["tarballs"][*name]["bytes"] + .as_u64() + .is_some_and(|value| value > 0), + "{path} has incomplete tarball provenance for {name}" + ); + } + Ok(()) +} + +fn validate_release_currentness( + report: &Value, + current: &CurrentReleaseInputs, +) -> anyhow::Result<()> { + ensure!( + report["inputs"]["buildHash"] == current.hashes.build + && report["inputs"]["benchmarkHash"] == current.hashes.benchmark + && report["fixture"]["packageJsonBlake3"] == current.package_json + && report["fixture"]["packageLockBlake3"] == current.package_lock, + "npm release report does not match the current source inputs" + ); + Ok(()) +} + +fn validate_release_currentness_regression_guards( + report: &Value, + current: &CurrentReleaseInputs, +) -> anyhow::Result<()> { + let mut false_package = report.clone(); + false_package["fixture"]["packageJsonBlake3"] = json!("0".repeat(64)); + ensure!( + validate_release_currentness(&false_package, current).is_err(), + "npm currentness validator accepted an incorrect package.json digest" + ); + let mut false_lock = report.clone(); + false_lock["fixture"]["packageLockBlake3"] = json!("0".repeat(64)); + ensure!( + validate_release_currentness(&false_lock, current).is_err(), + "npm currentness validator accepted an incorrect package-lock.json digest" + ); + Ok(()) +} + +fn validate_release_pair( + p2_filename: &str, + p3_filename: &str, + p2: &Value, + p3: &Value, +) -> anyhow::Result<()> { + for field in [ + "/schema", + "/environment/commitHint", + "/environment/node", + "/environment/npm", + "/environment/rustc", + "/environment/cargo", + "/environment/iterations", + "/inputs/algorithm", + "/inputs/buildHash", + "/inputs/benchmarkHash", + "/fixture", + ] { + ensure!( + p2.pointer(field) == p3.pointer(field), + "paired npm release reports {p2_filename} and {p3_filename} disagree at {field}" + ); + } + ensure!( + p2["target"] == "p2" + && p3["target"] == "p3" + && p2["component"]["blake3"] != p3["component"]["blake3"], + "paired npm release reports do not identify distinct P2/P3 components" + ); + Ok(()) +} + +fn validate_checked_release_reports(directory: Utf8PathBuf) -> anyhow::Result<()> { + validate_npm_composite_hash_contract()?; + validate_npm_report_path_contract()?; + let readme = fs::read_to_string(Utf8Path::new(SUITE_DIR).join("results/README.md"))?; + let allow_untracked = std::env::var_os("NPM_METADATA_ALLOW_UNTRACKED_REPORTS").is_some(); + let mut requested = npm_reports_to_check()?; + let current_inputs = if requested.is_empty() { + None + } else { + Some(current_release_inputs()?) + }; + let mut reports = BTreeMap::new(); + for entry in fs::read_dir(&directory)? { + let path = Utf8PathBuf::from_path_buf(entry?.path()) + .map_err(|path| anyhow::anyhow!("non-UTF-8 report path: {}", path.display()))?; + if path.extension() != Some("json") { + continue; + } + let report: Value = serde_json::from_slice(&fs::read(&path)?)?; + if report["schema"] != "npm-metadata-v2" { + continue; + } + validate_release_metadata(&path, &report)?; + validate_release_report(&report)?; + validate_release_regression_guards(&report)?; + let check_current = requested.remove(&path); + if check_current { + let current = current_inputs.as_ref().expect("current inputs exist"); + validate_release_currentness(&report, current) + .with_context(|| format!("{path} does not match current npm release inputs"))?; + validate_release_currentness_regression_guards(&report, current)?; + } + let filename = path + .file_name() + .context("report has no filename")? + .to_string(); + ensure!( + readme.contains(&filename) || (allow_untracked && check_current), + "results/README.md does not reference {filename}" + ); + reports.insert(filename, report); + } + ensure!( + requested.is_empty(), + "requested npm release reports were not found: {requested:?}" + ); + let mut paired = 0; + for (filename, p2) in reports + .iter() + .filter(|(filename, _)| filename.contains("-p2-")) + { + let p3_filename = filename.replacen("-p2-", "-p3-", 1); + let p3 = reports + .get(&p3_filename) + .with_context(|| format!("missing P3 companion for {filename}"))?; + validate_release_pair(filename, &p3_filename, p2, p3)?; + let mut duplicate = p3.clone(); + duplicate["component"]["blake3"] = p2["component"]["blake3"].clone(); + ensure!( + validate_release_pair(filename, &p3_filename, p2, &duplicate).is_err(), + "npm pair validator accepted identical component digests" + ); + paired += 2; + } + ensure!( + paired == reports.len(), + "every checked npm release report must belong to a P2/P3 pair" + ); + Ok(()) +} + +fn npm_reports_to_check() -> anyhow::Result> { + let results_directory = Utf8Path::new(SUITE_DIR).join("results"); + let source_root = npm_source_root()?; + std::env::var("NPM_METADATA_REPORTS_TO_CHECK") + .unwrap_or_default() + .lines() + .filter(|line| !line.trim().is_empty()) + .map(|line| normalize_npm_report_path(line.trim(), &source_root, &results_directory)) + .collect() +} + +fn normalize_npm_report_path( + value: &str, + source_root: &Utf8Path, + results_directory: &Utf8Path, +) -> anyhow::Result { + let path = Utf8Path::new(value); + let path = if path.is_absolute() { + path.strip_prefix(source_root) + .map_err(|_| anyhow::anyhow!("report path is outside {source_root}: {value}"))? + } else { + path + }; + ensure!( + path.parent() == Some(results_directory) + && path.extension() == Some("json") + && !path + .components() + .any(|component| component.as_str() == ".."), + "report path is outside {results_directory}: {value}" + ); + Ok(path.to_path_buf()) +} + +fn validate_npm_report_path_contract() -> anyhow::Result<()> { + let root = camino_tempfile::Utf8TempDir::new()?; + let results = Utf8Path::new(SUITE_DIR).join("results"); + let relative = results.join("report.json"); + ensure!( + normalize_npm_report_path(relative.as_str(), root.path(), &results)? == relative, + "relative npm report path was not preserved" + ); + let absolute = root.path().join(&relative); + ensure!( + normalize_npm_report_path(absolute.as_str(), root.path(), &results)? == relative, + "absolute npm report path was not normalized" + ); + ensure!( + normalize_npm_report_path("../report.json", root.path(), &results).is_err(), + "escaping npm report path was accepted" + ); + Ok(()) +} + +fn validate_npm_composite_hash_contract() -> anyhow::Result<()> { + let root = camino_tempfile::Utf8TempDir::new()?; + fs::create_dir(root.path().join("inputs"))?; + fs::write(root.path().join("inputs/a.txt"), b"alpha")?; + let mut files = BTreeSet::new(); + collect_npm_input_files(root.path(), Utf8Path::new("inputs"), &mut files)?; + let original = npm_composite_hash(root.path(), "test", &files)?; + ensure!( + original == npm_composite_hash(root.path(), "test", &files)?, + "npm composite hashes are not deterministic" + ); + fs::write(root.path().join("inputs/a.txt"), b"changed")?; + ensure!( + original != npm_composite_hash(root.path(), "test", &files)?, + "changed npm input did not change its composite hash" + ); + Ok(()) +} + +fn is_blake3_value(value: &Value) -> bool { + value.as_str().is_some_and(|value| { + value.len() == 64 && value.bytes().all(|byte| byte.is_ascii_hexdigit()) + }) +} diff --git a/tests/npm_metadata/real/package-lock.json b/tests/npm_metadata/real/package-lock.json new file mode 100644 index 00000000..cf8f085a --- /dev/null +++ b/tests/npm_metadata/real/package-lock.json @@ -0,0 +1,31 @@ +{ + "name": "npm-metadata-real", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "npm-metadata-real", + "version": "1.0.0", + "dependencies": { + "@types/lodash": "4.17.12", + "@types/lodash-es": "4.17.12" + } + }, + "node_modules/@types/lodash": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz", + "integrity": "sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + } + } +} diff --git a/tests/npm_metadata/real/package.json b/tests/npm_metadata/real/package.json new file mode 100644 index 00000000..bbf1cd12 --- /dev/null +++ b/tests/npm_metadata/real/package.json @@ -0,0 +1,9 @@ +{ + "name": "npm-metadata-real", + "version": "1.0.0", + "private": true, + "dependencies": { + "@types/lodash": "4.17.12", + "@types/lodash-es": "4.17.12" + } +} diff --git a/tests/npm_metadata/results/2026-09-18-p2.json b/tests/npm_metadata/results/2026-09-18-p2.json new file mode 100644 index 00000000..fa4ee9f8 --- /dev/null +++ b/tests/npm_metadata/results/2026-09-18-p2.json @@ -0,0 +1,2873 @@ +{ + "componentFeature": "typescript-compiler-profiling", + "iterations": 3, + "node": "22.14.0", + "npm": "10.9.2", + "revision": "f684fffb023011a428649cfb85f06a01bf22c96d", + "samples": [ + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 1127.3250000000116, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 190.0035, + "initialEvaluation": 0.162875, + "loaderInitialization": 3.389542, + "processConfiguration": 2.835791, + "queueDelay": 0.8190419999999999, + "resultFormatting": 0.02425, + "runtimeCreation": 0.579708, + "teardown": 12.143833, + "transportWiring": 0.243167, + "userAwait": 1143.656959, + "wrapperPreparation": 0.027708 + }, + "totalMs": 1353.933208, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "success": true, + "wallMs": 1358.106375 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 10100.742000000027, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 396.949125, + "initialEvaluation": 0.160583, + "loaderInitialization": 2.9190829999999997, + "processConfiguration": 0.6611250000000001, + "queueDelay": 0.637625, + "resultFormatting": 0.065667, + "runtimeCreation": 0.495792, + "teardown": 33.16425, + "transportWiring": 0.170209, + "userAwait": 25104.888042, + "wrapperPreparation": 0.024208 + }, + "totalMs": 25540.214958, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 484ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "success": true, + "wallMs": 25546.284750000003 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 7193.499000000011, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 215.428916, + "initialEvaluation": 0.21375, + "loaderInitialization": 3.836333, + "processConfiguration": 0.6834589999999999, + "queueDelay": 0.671542, + "resultFormatting": 0.026958, + "runtimeCreation": 0.495917, + "teardown": 23.010917, + "transportWiring": 0.427542, + "userAwait": 8007.219167, + "wrapperPreparation": 0.062958 + }, + "totalMs": 8252.127375, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 122ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "success": true, + "wallMs": 8254.769458 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 12279.934999999998, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 188.84825, + "initialEvaluation": 0.15812500000000002, + "loaderInitialization": 2.0060830000000003, + "processConfiguration": 0.271625, + "queueDelay": 0.654333, + "resultFormatting": 0.08254099999999999, + "runtimeCreation": 0.607833, + "teardown": 42.823459, + "transportWiring": 0.183042, + "userAwait": 13552.301, + "wrapperPreparation": 0.024542 + }, + "totalMs": 13788.033833, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 782ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 2760ms (cache miss)\n", + "stdout": "\nadded 2 packages in 13s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "success": true, + "wallMs": 13791.517875 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 11237.565999999992, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 179.93954100000002, + "initialEvaluation": 0.139708, + "loaderInitialization": 1.802792, + "processConfiguration": 0.210667, + "queueDelay": 0.5429579999999999, + "resultFormatting": 0.026584, + "runtimeCreation": 0.449666, + "teardown": 38.164916, + "transportWiring": 0.17825, + "userAwait": 12269.354083, + "wrapperPreparation": 0.019084 + }, + "totalMs": 12490.874041, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 12s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "success": true, + "wallMs": 12495.044458 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 747.8500000000349, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 174.161, + "initialEvaluation": 0.151917, + "loaderInitialization": 1.77225, + "processConfiguration": 0.232166, + "queueDelay": 0.528416, + "resultFormatting": 0.02675, + "runtimeCreation": 0.452792, + "teardown": 11.596916, + "transportWiring": 0.140459, + "userAwait": 550.935667, + "wrapperPreparation": 0.020041 + }, + "totalMs": 740.105791, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 5, + "success": true, + "wallMs": 742.436125 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 7726.6660000000265, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 173.50075, + "initialEvaluation": 0.15379099999999998, + "loaderInitialization": 1.7418749999999998, + "processConfiguration": 0.195542, + "queueDelay": 0.546333, + "resultFormatting": 0.055333, + "runtimeCreation": 0.490125, + "teardown": 27.496208000000003, + "transportWiring": 0.16525, + "userAwait": 11315.158209, + "wrapperPreparation": 0.024375 + }, + "totalMs": 11519.631291, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types%2flodash-es 27ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 6, + "success": true, + "wallMs": 11525.197584000001 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 10170.130999999994, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 186.969875, + "initialEvaluation": 0.14675, + "loaderInitialization": 2.4428750000000004, + "processConfiguration": 0.234792, + "queueDelay": 0.862583, + "resultFormatting": 0.03675, + "runtimeCreation": 0.459542, + "teardown": 26.444459, + "transportWiring": 0.15170799999999998, + "userAwait": 16333.46925, + "wrapperPreparation": 0.020458 + }, + "totalMs": 16551.294958, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types%2flodash-es 88ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 7, + "success": true, + "wallMs": 16554.981291 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 14015.04800000001, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 182.095167, + "initialEvaluation": 0.16104100000000002, + "loaderInitialization": 1.919, + "processConfiguration": 0.29329099999999997, + "queueDelay": 0.826125, + "resultFormatting": 0.579, + "runtimeCreation": 0.494542, + "teardown": 48.114, + "transportWiring": 0.177292, + "userAwait": 16852.403584, + "wrapperPreparation": 0.021875 + }, + "totalMs": 17087.161167000002, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:61508/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:61508/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types/lodash-es/-/lodash-es-4.17.12.tgz 1421ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types/lodash/-/lodash-4.17.12.tgz 4155ms (cache miss)\n", + "stdout": "\nadded 2 packages in 16s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 8, + "success": true, + "wallMs": 17091.047875 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 15323.728999999992, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 180.988875, + "initialEvaluation": 0.150375, + "loaderInitialization": 2.377792, + "processConfiguration": 0.379333, + "queueDelay": 0.634958, + "resultFormatting": 0.091, + "runtimeCreation": 0.521833, + "teardown": 47.202667, + "transportWiring": 0.216708, + "userAwait": 19042.145333, + "wrapperPreparation": 0.021959 + }, + "totalMs": 19275.745958000003, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:61508/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:61508/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 18s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 9, + "success": true, + "wallMs": 19285.035958 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 884.4079999999958, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 183.585708, + "initialEvaluation": 0.156625, + "loaderInitialization": 2.0775, + "processConfiguration": 0.266208, + "queueDelay": 0.818708, + "resultFormatting": 0.022959, + "runtimeCreation": 0.842334, + "teardown": 11.997541, + "transportWiring": 0.227792, + "userAwait": 692.256916, + "wrapperPreparation": 0.022542 + }, + "totalMs": 892.317625, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 10, + "success": true, + "wallMs": 895.359708 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 7715.972999999998, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 183.214167, + "initialEvaluation": 0.16699999999999998, + "loaderInitialization": 1.957, + "processConfiguration": 0.361167, + "queueDelay": 0.589291, + "resultFormatting": 0.315125, + "runtimeCreation": 0.4805, + "teardown": 33.492167, + "transportWiring": 0.444875, + "userAwait": 11083.339, + "wrapperPreparation": 0.025541 + }, + "totalMs": 11304.447875, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types%2flodash-es 35ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 11, + "success": true, + "wallMs": 11307.395083 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 8441.255000000005, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 206.506458, + "initialEvaluation": 0.167083, + "loaderInitialization": 2.179125, + "processConfiguration": 0.364542, + "queueDelay": 0.5181250000000001, + "resultFormatting": 0.040333, + "runtimeCreation": 0.673542, + "teardown": 26.984292, + "transportWiring": 0.214958, + "userAwait": 11381.188834, + "wrapperPreparation": 0.023167 + }, + "totalMs": 11618.920625, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types%2flodash-es 27ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 12, + "success": true, + "wallMs": 11622.335083 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 12908.321999999986, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 184.941208, + "initialEvaluation": 0.14400000000000002, + "loaderInitialization": 2.2639169999999997, + "processConfiguration": 0.29674999999999996, + "queueDelay": 0.564291, + "resultFormatting": 0.08512499999999999, + "runtimeCreation": 0.469333, + "teardown": 42.357459, + "transportWiring": 0.152542, + "userAwait": 13862.490083, + "wrapperPreparation": 0.022083 + }, + "totalMs": 14093.867375, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:61508/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:61508/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types/lodash-es/-/lodash-es-4.17.12.tgz 949ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types/lodash/-/lodash-4.17.12.tgz 3696ms (cache miss)\n", + "stdout": "\nadded 2 packages in 13s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 13, + "success": true, + "wallMs": 14097.620208 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 11590.489000000001, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 185.723917, + "initialEvaluation": 0.183959, + "loaderInitialization": 3.117459, + "processConfiguration": 0.206958, + "queueDelay": 0.513333, + "resultFormatting": 0.032, + "runtimeCreation": 0.456083, + "teardown": 42.665875, + "transportWiring": 0.52425, + "userAwait": 11546.981333, + "wrapperPreparation": 0.057041 + }, + "totalMs": 11780.513792000002, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:61508/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:61508/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 11s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 14, + "success": true, + "wallMs": 11783.196958 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 1149.8439999999828, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 194.870959, + "initialEvaluation": 0.228709, + "loaderInitialization": 2.3050840000000004, + "processConfiguration": 0.226541, + "queueDelay": 0.593584, + "resultFormatting": 0.034041999999999996, + "runtimeCreation": 0.493708, + "teardown": 16.332958, + "transportWiring": 0.7151660000000001, + "userAwait": 1597.8154579999998, + "wrapperPreparation": 0.03975 + }, + "totalMs": 1813.723959, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 15, + "success": true, + "wallMs": 1816.783917 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 10583.385999999999, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 178.4255, + "initialEvaluation": 0.145792, + "loaderInitialization": 1.896291, + "processConfiguration": 0.400917, + "queueDelay": 0.64, + "resultFormatting": 0.2175, + "runtimeCreation": 0.469667, + "teardown": 30.386666, + "transportWiring": 0.156208, + "userAwait": 18905.638541999997, + "wrapperPreparation": 0.021 + }, + "totalMs": 19118.479625, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 171ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 16, + "success": true, + "wallMs": 19122.001292 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 9292.217999999993, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 203.746375, + "initialEvaluation": 0.155833, + "loaderInitialization": 2.292792, + "processConfiguration": 0.233208, + "queueDelay": 0.5215839999999999, + "resultFormatting": 0.027333, + "runtimeCreation": 0.528458, + "teardown": 48.578208999999994, + "transportWiring": 0.192333, + "userAwait": 14327.413917, + "wrapperPreparation": 0.022542 + }, + "totalMs": 14583.980334, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 143ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 17, + "success": true, + "wallMs": 14607.486667 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 15535.642999999982, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 192.76674999999997, + "initialEvaluation": 0.161833, + "loaderInitialization": 3.3765, + "processConfiguration": 0.46075, + "queueDelay": 2.18875, + "resultFormatting": 0.401208, + "runtimeCreation": 0.538791, + "teardown": 165.876042, + "transportWiring": 0.26079199999999997, + "userAwait": 24783.351417, + "wrapperPreparation": 0.023292 + }, + "totalMs": 25150.389832999997, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 2262ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 3473ms (cache miss)\n", + "stdout": "\nadded 2 packages in 24s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 18, + "success": true, + "wallMs": 25222.891042 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 14739.24900000001, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 288.752542, + "initialEvaluation": 0.159667, + "loaderInitialization": 11.401708, + "processConfiguration": 4.156083, + "queueDelay": 0.714375, + "resultFormatting": 1.03, + "runtimeCreation": 0.781875, + "teardown": 147.67025, + "transportWiring": 0.310792, + "userAwait": 26381.875875, + "wrapperPreparation": 0.029166 + }, + "totalMs": 26837.970958, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 23s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 19, + "success": true, + "wallMs": 26843.002334 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 1589.2770000000019, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 278.657292, + "initialEvaluation": 0.186, + "loaderInitialization": 7.344583, + "processConfiguration": 0.732333, + "queueDelay": 1.824291, + "resultFormatting": 0.025291, + "runtimeCreation": 0.851292, + "teardown": 26.984917, + "transportWiring": 0.383583, + "userAwait": 3101.671417, + "wrapperPreparation": 0.029667 + }, + "totalMs": 3418.75, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 20, + "success": true, + "wallMs": 3434.935375 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 9630.130000000005, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 392.418833, + "initialEvaluation": 0.16520900000000002, + "loaderInitialization": 2.572083, + "processConfiguration": 3.168709, + "queueDelay": 0.649917, + "resultFormatting": 0.036042, + "runtimeCreation": 0.503958, + "teardown": 24.027125, + "transportWiring": 0.383458, + "userAwait": 13027.355458, + "wrapperPreparation": 0.0265 + }, + "totalMs": 13451.373292, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 343ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 21, + "success": true, + "wallMs": 13455.375417000001 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 8395.983000000007, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 179.9845, + "initialEvaluation": 0.1605, + "loaderInitialization": 1.56375, + "processConfiguration": 0.200833, + "queueDelay": 0.307083, + "resultFormatting": 0.027375, + "runtimeCreation": 0.416917, + "teardown": 23.864583000000003, + "transportWiring": 0.193875, + "userAwait": 10509.434625000002, + "wrapperPreparation": 0.023625 + }, + "totalMs": 10716.262875, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 126ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 22, + "success": true, + "wallMs": 10718.651291 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 10840.870999999926, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 180.557167, + "initialEvaluation": 0.149667, + "loaderInitialization": 1.919792, + "processConfiguration": 0.313875, + "queueDelay": 0.5335420000000001, + "resultFormatting": 0.035209000000000004, + "runtimeCreation": 0.460541, + "teardown": 42.372708, + "transportWiring": 0.138291, + "userAwait": 10639.851916, + "wrapperPreparation": 0.021542 + }, + "totalMs": 10866.399708, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 720ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 2749ms (cache miss)\n", + "stdout": "\nadded 2 packages in 10s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 23, + "success": true, + "wallMs": 10869.997125 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 12730.101999999955, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 251.435333, + "initialEvaluation": 0.166875, + "loaderInitialization": 1.892666, + "processConfiguration": 0.201209, + "queueDelay": 0.36925, + "resultFormatting": 0.07225, + "runtimeCreation": 0.447959, + "teardown": 54.366791, + "transportWiring": 0.338542, + "userAwait": 14696.267917, + "wrapperPreparation": 0.028208 + }, + "totalMs": 15006.123917, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 1ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 13s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 24, + "success": true, + "wallMs": 15015.863707999999 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 1480.6929999999702, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 663.704083, + "initialEvaluation": 0.276541, + "loaderInitialization": 45.979459, + "processConfiguration": 7.353958, + "queueDelay": 25.128167, + "resultFormatting": 0.056833, + "runtimeCreation": 4.568083, + "teardown": 14.060833, + "transportWiring": 5.3683749999999995, + "userAwait": 4493.771709, + "wrapperPreparation": 0.054833999999999994 + }, + "totalMs": 5260.544375, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 25, + "success": true, + "wallMs": 5298.139875000001 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 6459.39599999995, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 201.463625, + "initialEvaluation": 0.166458, + "loaderInitialization": 1.971875, + "processConfiguration": 0.32875, + "queueDelay": 0.6253749999999999, + "resultFormatting": 0.028291, + "runtimeCreation": 0.6802079999999999, + "teardown": 23.911917000000003, + "transportWiring": 0.198417, + "userAwait": 6282.3719169999995, + "wrapperPreparation": 0.025 + }, + "totalMs": 6511.8126250000005, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types%2flodash-es 19ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 26, + "success": true, + "wallMs": 6514.50375 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 7890.861999999965, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 179.62579200000002, + "initialEvaluation": 0.148334, + "loaderInitialization": 1.294208, + "processConfiguration": 0.12175, + "queueDelay": 0.293708, + "resultFormatting": 0.030833000000000003, + "runtimeCreation": 0.411459, + "teardown": 26.101917, + "transportWiring": 0.15295799999999998, + "userAwait": 9741.44775, + "wrapperPreparation": 0.019958 + }, + "totalMs": 9949.704208, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types%2flodash-es 30ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 27, + "success": true, + "wallMs": 9951.793833 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 11334.777000000002, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 190.580792, + "initialEvaluation": 0.169375, + "loaderInitialization": 2.057417, + "processConfiguration": 0.640458, + "queueDelay": 0.642375, + "resultFormatting": 0.06125, + "runtimeCreation": 0.496167, + "teardown": 37.545583, + "transportWiring": 0.212, + "userAwait": 11338.417792, + "wrapperPreparation": 0.027458 + }, + "totalMs": 11570.977125, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:61508/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:61508/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types/lodash-es/-/lodash-es-4.17.12.tgz 892ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:61508/@types/lodash/-/lodash-4.17.12.tgz 2588ms (cache miss)\n", + "stdout": "\nadded 2 packages in 10s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 28, + "success": true, + "wallMs": 11574.547959 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 12169.076999999932, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 176.37812499999998, + "initialEvaluation": 0.139166, + "loaderInitialization": 1.444792, + "processConfiguration": 0.193375, + "queueDelay": 0.334833, + "resultFormatting": 0.049208, + "runtimeCreation": 0.431917, + "teardown": 37.994042, + "transportWiring": 0.144958, + "userAwait": 13083.108584, + "wrapperPreparation": 0.018292 + }, + "totalMs": 13300.3075, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:61508/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:61508/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 13s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 29, + "success": true, + "wallMs": 13303.488292 + } + ], + "schema": "npm-metadata-v1", + "target": "p2" +} diff --git a/tests/npm_metadata/results/2026-09-18-p3.json b/tests/npm_metadata/results/2026-09-18-p3.json new file mode 100644 index 00000000..4c83e449 --- /dev/null +++ b/tests/npm_metadata/results/2026-09-18-p3.json @@ -0,0 +1,2873 @@ +{ + "componentFeature": "typescript-compiler-profiling", + "iterations": 3, + "node": "22.14.0", + "npm": "10.9.2", + "revision": "f684fffb023011a428649cfb85f06a01bf22c96d", + "samples": [ + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 843.6539999999804, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 181.960208, + "initialEvaluation": 0.185708, + "loaderInitialization": 2.252459, + "processConfiguration": 4.567375, + "queueDelay": 0.841125, + "resultFormatting": 0.022291, + "runtimeCreation": 0.521041, + "teardown": 11.3495, + "transportWiring": 0.28225, + "userAwait": 647.983584, + "wrapperPreparation": 0.02325 + }, + "totalMs": 850.033542, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "success": true, + "wallMs": 857.296792 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 6661.893999999971, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 185.849042, + "initialEvaluation": 0.164542, + "loaderInitialization": 1.787875, + "processConfiguration": 0.315583, + "queueDelay": 0.594459, + "resultFormatting": 0.103916, + "runtimeCreation": 0.483333, + "teardown": 23.64825, + "transportWiring": 0.206875, + "userAwait": 6951.995792, + "wrapperPreparation": 0.025583 + }, + "totalMs": 7165.224584, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 208ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "success": true, + "wallMs": 7167.973583 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 9088.418000000005, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 202.602667, + "initialEvaluation": 0.153875, + "loaderInitialization": 1.87875, + "processConfiguration": 0.1935, + "queueDelay": 0.425541, + "resultFormatting": 0.138041, + "runtimeCreation": 0.440417, + "teardown": 41.728542, + "transportWiring": 0.19025, + "userAwait": 16274.246, + "wrapperPreparation": 0.01975 + }, + "totalMs": 16522.096791, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 151ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "success": true, + "wallMs": 16526.484292 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 11651.015000000014, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 347.136292, + "initialEvaluation": 0.35775, + "loaderInitialization": 100.603542, + "processConfiguration": 12.363666, + "queueDelay": 0.775416, + "resultFormatting": 0.095875, + "runtimeCreation": 0.487167, + "teardown": 41.652083, + "transportWiring": 0.324167, + "userAwait": 12577.930917, + "wrapperPreparation": 0.203708 + }, + "totalMs": 13081.989833, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 3201ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 3211ms (cache miss)\n", + "stdout": "\nadded 2 packages in 11s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "success": true, + "wallMs": 13085.186333 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 10625.410000000033, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 183.163625, + "initialEvaluation": 0.147833, + "loaderInitialization": 2.291625, + "processConfiguration": 0.16124999999999998, + "queueDelay": 0.49175, + "resultFormatting": 0.078292, + "runtimeCreation": 0.434875, + "teardown": 39.209374999999994, + "transportWiring": 0.164791, + "userAwait": 10513.340833, + "wrapperPreparation": 0.019084 + }, + "totalMs": 10739.541083, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 10s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "success": true, + "wallMs": 10742.886457999999 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 803.380999999994, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 189.883334, + "initialEvaluation": 0.163583, + "loaderInitialization": 1.62525, + "processConfiguration": 0.202708, + "queueDelay": 0.456666, + "resultFormatting": 0.023916, + "runtimeCreation": 0.457542, + "teardown": 11.883709, + "transportWiring": 0.142791, + "userAwait": 595.5181670000001, + "wrapperPreparation": 0.018209000000000003 + }, + "totalMs": 800.396083, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 5, + "success": true, + "wallMs": 802.5990830000001 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 7676.724999999977, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 179.74916599999997, + "initialEvaluation": 0.151458, + "loaderInitialization": 1.763417, + "processConfiguration": 0.26625, + "queueDelay": 0.577709, + "resultFormatting": 0.091084, + "runtimeCreation": 0.463292, + "teardown": 23.474458, + "transportWiring": 0.142709, + "userAwait": 8201.045750000001, + "wrapperPreparation": 0.018958 + }, + "totalMs": 8407.862417, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types%2flodash-es 19ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 6, + "success": true, + "wallMs": 8410.399792 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 6101.535000000033, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 177.0155, + "initialEvaluation": 0.142792, + "loaderInitialization": 1.418292, + "processConfiguration": 0.117708, + "queueDelay": 0.305958, + "resultFormatting": 0.100625, + "runtimeCreation": 0.424875, + "teardown": 22.905834, + "transportWiring": 0.151208, + "userAwait": 5980.175958, + "wrapperPreparation": 0.0195 + }, + "totalMs": 6182.817083, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types%2flodash-es 21ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 7, + "success": true, + "wallMs": 6184.54975 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 12026.148000000045, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 182.134166, + "initialEvaluation": 0.161667, + "loaderInitialization": 1.890833, + "processConfiguration": 0.29145899999999997, + "queueDelay": 0.610291, + "resultFormatting": 0.213375, + "runtimeCreation": 0.479375, + "teardown": 40.822958, + "transportWiring": 0.171209, + "userAwait": 12452.599125, + "wrapperPreparation": 0.020541 + }, + "totalMs": 12679.436458, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:63064/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:63064/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types/lodash/-/lodash-4.17.12.tgz 3385ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types/lodash-es/-/lodash-es-4.17.12.tgz 3396ms (cache miss)\n", + "stdout": "\nadded 2 packages in 12s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 8, + "success": true, + "wallMs": 12682.029999999999 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 10506.576000000001, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 179.433792, + "initialEvaluation": 0.164625, + "loaderInitialization": 1.581125, + "processConfiguration": 0.15912500000000002, + "queueDelay": 0.305958, + "resultFormatting": 0.033833, + "runtimeCreation": 0.420333, + "teardown": 39.324959, + "transportWiring": 0.2195, + "userAwait": 10215.62725, + "wrapperPreparation": 0.027208 + }, + "totalMs": 10437.32825, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:63064/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:63064/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 10s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 9, + "success": true, + "wallMs": 10440.117125 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 992.6969999999856, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 185.045125, + "initialEvaluation": 0.167916, + "loaderInitialization": 3.432792, + "processConfiguration": 0.365083, + "queueDelay": 0.601333, + "resultFormatting": 0.022125, + "runtimeCreation": 0.470291, + "teardown": 11.3315, + "transportWiring": 0.177, + "userAwait": 809.4449999999999, + "wrapperPreparation": 0.023084 + }, + "totalMs": 1011.110833, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 10, + "success": true, + "wallMs": 1013.441625 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 7769.89300000004, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 253.28908300000003, + "initialEvaluation": 1.374, + "loaderInitialization": 7.1545000000000005, + "processConfiguration": 3.849167, + "queueDelay": 0.640584, + "resultFormatting": 0.096042, + "runtimeCreation": 0.677708, + "teardown": 25.003041, + "transportWiring": 0.206042, + "userAwait": 8416.348958, + "wrapperPreparation": 0.023 + }, + "totalMs": 8708.709541999999, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types%2flodash-es 22ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 11, + "success": true, + "wallMs": 8712.33025 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 6176.571999999986, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 177.846833, + "initialEvaluation": 0.158416, + "loaderInitialization": 1.566584, + "processConfiguration": 0.14837499999999998, + "queueDelay": 0.37625, + "resultFormatting": 0.075917, + "runtimeCreation": 0.429375, + "teardown": 22.734042, + "transportWiring": 0.208917, + "userAwait": 5925.731625, + "wrapperPreparation": 0.025875 + }, + "totalMs": 6129.339042, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types%2flodash-es 22ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 12, + "success": true, + "wallMs": 6131.114125 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 15738.678000000014, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 181.7375, + "initialEvaluation": 0.151416, + "loaderInitialization": 1.883583, + "processConfiguration": 0.269625, + "queueDelay": 0.597125, + "resultFormatting": 0.133125, + "runtimeCreation": 0.505417, + "teardown": 51.518875, + "transportWiring": 0.146375, + "userAwait": 36515.09625, + "wrapperPreparation": 0.018584 + }, + "totalMs": 36752.13174999999, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:63064/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:63064/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types/lodash-es/-/lodash-es-4.17.12.tgz 8622ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types/lodash/-/lodash-4.17.12.tgz 8653ms (cache miss)\n", + "stdout": "\nadded 2 packages in 36s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 13, + "success": true, + "wallMs": 36755.423624999996 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 13921.57799999998, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 281.147, + "initialEvaluation": 0.159417, + "loaderInitialization": 2.7392499999999997, + "processConfiguration": 0.621958, + "queueDelay": 0.555542, + "resultFormatting": 0.070417, + "runtimeCreation": 0.510542, + "teardown": 39.566790999999995, + "transportWiring": 0.250375, + "userAwait": 20572.03825, + "wrapperPreparation": 0.019833 + }, + "totalMs": 20897.731417, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:63064/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:63064/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 18s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 14, + "success": true, + "wallMs": 20901.698959 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 793.4330000000191, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 181.083666, + "initialEvaluation": 0.14308300000000002, + "loaderInitialization": 2.069416, + "processConfiguration": 0.237834, + "queueDelay": 0.5862499999999999, + "resultFormatting": 0.021917, + "runtimeCreation": 0.572875, + "teardown": 11.585583, + "transportWiring": 0.14195899999999995, + "userAwait": 592.33, + "wrapperPreparation": 0.01925 + }, + "totalMs": 788.826542, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 15, + "success": true, + "wallMs": 791.2162910000001 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 7468.902999999991, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 180.220666, + "initialEvaluation": 0.15175, + "loaderInitialization": 1.738125, + "processConfiguration": 0.198834, + "queueDelay": 0.5664170000000001, + "resultFormatting": 0.089625, + "runtimeCreation": 0.473041, + "teardown": 27.838749999999997, + "transportWiring": 0.152334, + "userAwait": 8173.222834, + "wrapperPreparation": 0.020665999999999997 + }, + "totalMs": 8384.707292, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 470ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 16, + "success": true, + "wallMs": 8389.459292 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 6261.281000000017, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 212.256125, + "initialEvaluation": 0.148875, + "loaderInitialization": 2.0574999999999997, + "processConfiguration": 0.257541, + "queueDelay": 0.540416, + "resultFormatting": 0.063542, + "runtimeCreation": 0.435959, + "teardown": 23.401666, + "transportWiring": 0.162125, + "userAwait": 6262.936625, + "wrapperPreparation": 0.020292 + }, + "totalMs": 6502.325790999999, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 118ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 17, + "success": true, + "wallMs": 6504.222791 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 10855.112000000023, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 176.370541, + "initialEvaluation": 0.14766700000000002, + "loaderInitialization": 1.806291, + "processConfiguration": 0.17583400000000002, + "queueDelay": 0.5957910000000001, + "resultFormatting": 0.104125, + "runtimeCreation": 0.452625, + "teardown": 41.331917, + "transportWiring": 0.12820900000000002, + "userAwait": 12200.641541, + "wrapperPreparation": 0.021333 + }, + "totalMs": 12421.82525, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 1ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 3071ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 3082ms (cache miss)\n", + "stdout": "\nadded 2 packages in 12s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 18, + "success": true, + "wallMs": 12424.581042 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 10785.50099999999, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 178.955333, + "initialEvaluation": 0.14675, + "loaderInitialization": 1.746958, + "processConfiguration": 0.196834, + "queueDelay": 0.338042, + "resultFormatting": 0.055, + "runtimeCreation": 0.544375, + "teardown": 40.179333, + "transportWiring": 0.190042, + "userAwait": 11952.531417, + "wrapperPreparation": 0.018291 + }, + "totalMs": 12174.962167, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 1ms (cache hit)\n", + "stdout": "\nadded 2 packages in 10s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 19, + "success": true, + "wallMs": 12178.287457999999 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 735.9670000000042, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 173.722291, + "initialEvaluation": 0.142583, + "loaderInitialization": 1.796625, + "processConfiguration": 0.202667, + "queueDelay": 0.5972500000000001, + "resultFormatting": 0.039292, + "runtimeCreation": 0.46325, + "teardown": 12.352041, + "transportWiring": 0.119375, + "userAwait": 538.318792, + "wrapperPreparation": 0.017667 + }, + "totalMs": 727.811041, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 20, + "success": true, + "wallMs": 730.050166 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 6732.406000000017, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 174.44825, + "initialEvaluation": 0.153084, + "loaderInitialization": 1.755667, + "processConfiguration": 0.194667, + "queueDelay": 0.5658329999999999, + "resultFormatting": 0.086417, + "runtimeCreation": 0.457125, + "teardown": 22.099458, + "transportWiring": 0.118083, + "userAwait": 6886.249916, + "wrapperPreparation": 0.017583 + }, + "totalMs": 7086.178, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 149ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 21, + "success": true, + "wallMs": 7088.604666 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 5624.777000000002, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 173.044375, + "initialEvaluation": 0.130917, + "loaderInitialization": 1.459583, + "processConfiguration": 0.12025, + "queueDelay": 0.323875, + "resultFormatting": 0.061083, + "runtimeCreation": 0.424667, + "teardown": 24.063792, + "transportWiring": 0.119875, + "userAwait": 5439.299875, + "wrapperPreparation": 0.015208 + }, + "totalMs": 5639.1035839999995, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 113ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 22, + "success": true, + "wallMs": 5640.844084 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 10215.282999999996, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 174.927042, + "initialEvaluation": 0.138917, + "loaderInitialization": 1.735667, + "processConfiguration": 0.273625, + "queueDelay": 0.51625, + "resultFormatting": 0.089292, + "runtimeCreation": 0.455375, + "teardown": 39.672916, + "transportWiring": 0.120708, + "userAwait": 10133.794375, + "wrapperPreparation": 0.017207999999999998 + }, + "totalMs": 10351.776584, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 2717ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 2726ms (cache miss)\n", + "stdout": "\nadded 2 packages in 10s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 23, + "success": true, + "wallMs": 10354.501875 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 9722.407999999996, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 179.84108300000003, + "initialEvaluation": 0.13554100000000002, + "loaderInitialization": 1.39, + "processConfiguration": 0.168917, + "queueDelay": 0.325542, + "resultFormatting": 0.019792, + "runtimeCreation": 0.443666, + "teardown": 39.574667, + "transportWiring": 0.14583400000000002, + "userAwait": 9434.76325, + "wrapperPreparation": 0.016125 + }, + "totalMs": 9656.871084, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 9s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 24, + "success": true, + "wallMs": 9659.172999999999 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 807.484999999986, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 178.54362500000002, + "initialEvaluation": 0.157291, + "loaderInitialization": 1.811792, + "processConfiguration": 0.184125, + "queueDelay": 0.570917, + "resultFormatting": 0.02325, + "runtimeCreation": 0.467791, + "teardown": 11.440208, + "transportWiring": 0.142958, + "userAwait": 609.349292, + "wrapperPreparation": 0.018834 + }, + "totalMs": 802.7470840000001, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 25, + "success": true, + "wallMs": 805.030875 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 7026.625, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 178.40783299999998, + "initialEvaluation": 0.16004100000000002, + "loaderInitialization": 1.832792, + "processConfiguration": 0.18075, + "queueDelay": 0.787334, + "resultFormatting": 0.083459, + "runtimeCreation": 0.474208, + "teardown": 22.010791, + "transportWiring": 0.176875, + "userAwait": 6996.680125, + "wrapperPreparation": 0.020834 + }, + "totalMs": 7200.8702920000005, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types%2flodash-es 17ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 26, + "success": true, + "wallMs": 7203.4695 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 5664.739000000001, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 176.290625, + "initialEvaluation": 0.140167, + "loaderInitialization": 1.455125, + "processConfiguration": 0.12, + "queueDelay": 0.292208, + "resultFormatting": 0.063541, + "runtimeCreation": 0.41425, + "teardown": 21.854834, + "transportWiring": 0.125916, + "userAwait": 5399.8276670000005, + "wrapperPreparation": 0.017 + }, + "totalMs": 5600.633458, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types%2flodash-es 20ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 27, + "success": true, + "wallMs": 5602.2813750000005 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 11718.125, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 174.162917, + "initialEvaluation": 0.15087499999999998, + "loaderInitialization": 1.824167, + "processConfiguration": 0.165, + "queueDelay": 0.515, + "resultFormatting": 0.117167, + "runtimeCreation": 0.454666, + "teardown": 40.880208, + "transportWiring": 0.137083, + "userAwait": 11789.950875, + "wrapperPreparation": 0.019208 + }, + "totalMs": 12008.431583, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:63064/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:63064/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types/lodash-es/-/lodash-es-4.17.12.tgz 2738ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:63064/@types/lodash/-/lodash-4.17.12.tgz 2749ms (cache miss)\n", + "stdout": "\nadded 2 packages in 11s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 28, + "success": true, + "wallMs": 12011.149292 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 10178.679000000004, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 182.331458, + "initialEvaluation": 0.142125, + "loaderInitialization": 1.667708, + "processConfiguration": 0.140125, + "queueDelay": 0.343208, + "resultFormatting": 0.077584, + "runtimeCreation": 0.461459, + "teardown": 40.733125, + "transportWiring": 0.17550000000000002, + "userAwait": 10613.34175, + "wrapperPreparation": 0.017124999999999998 + }, + "totalMs": 10839.512333, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:63064/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:63064/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 10s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 29, + "success": true, + "wallMs": 10842.987625 + } + ], + "schema": "npm-metadata-v1", + "target": "p3" +} diff --git a/tests/npm_metadata/results/2026-09-18-report.md b/tests/npm_metadata/results/2026-09-18-report.md new file mode 100644 index 00000000..48512d33 --- /dev/null +++ b/tests/npm_metadata/results/2026-09-18-report.md @@ -0,0 +1,140 @@ +# npm metadata baseline — 2026-09-18 + +This is a measurement, not a cache change or a candidate speedup claim. The +source revision was `f684fffb023011a428649cfb85f06a01bf22c96d` (current +`origin/main` when fetched). The measurement harness and pinned fixture were +uncommitted additions; no skeleton or public API code was changed. The exact +optimized components had SHA-256 hashes `b8f35406af0b28653a025def530e15cc5eded66ef0799bcf5e5a9c877600dc07` +(P2/Golem Wasmtime) and `2d43f9c862a879eab905ac1c97c29444a5b76e20583682538d3f6d41a6329c30` +(P3/stock Wasmtime). Harness, lockfile, and npm entry-point SHA-256 hashes were +`c356156f58ebb67c72e064bb51e482c2e54e14e23486b409da43704963d5222d`, +`1fcc846ffbb76c3f801053ab0bb46adc2260bdd525bde55e95b81d3c9c50d359`, +and `7c4ebc63316ed5d9ce9a584cfe51d8f3442787a8d0ac435ed626b3cce46eec0f`. +After measurement, the harness gained a manual-run environment guard +(`NPM_METADATA_RUN=1`) so ordinary CI never contacts npmjs.org, plus a +no-behavior-change lint cleanup; the final harness hash is +`5296260f3c18d2f31bc2446ae72b5f2ec45dcd3502a92798d09312fcf9c35a8a`. + +The host used Node 22.14.0/npm 10.9.2. The component used the non-default +`typescript-compiler-profiling` feature to capture native counters, so these +are instrumented dev-profile timings, not production throughput. Three cold +samples per command/registry/profile used separate Wasmtime stores, component +instances, QuickJS jobs, workspaces, npm caches, and guest filesystem state. +Each `view` and `ci` also has an explicitly labeled warm repeat in a fresh job +on the same instance/workspace/cache. Only immutable component preparation was +shared; it was outside the timed region. One invocation ran at a time, with +one runner worker and no physical-core pinning or concurrent builds by this +session. Registry order alternated by iteration. There is **no candidate +revision** to compare against; the A/B here is public versus deterministic +local transport, not baseline versus a cache implementation. + +`npm ci` used a lockfile pinning both `@types/lodash-es@4.17.12` and its +`@types/lodash@4.17.12` dependency, with integrity-checked downloads and +actual extraction into `node_modules`. Public runs fetched from npmjs.org; +the deterministic registry served the *same tarballs* from a local HTTP +server. All 60 measured invocations succeeded; every `ci` verified the +installed package manifest. Each local cold `view` made one HTTP request, +each local cold `ci` made two, and each local warm `ci` made zero. npm's HTTP +log likewise showed one public metadata fetch on `view` and two public +tarball fetches on cold `ci`; warm public `ci` fetched no tarballs. + +## Cold command baseline + +Times below are median [minimum–maximum] in seconds, three samples each. +CPU is host **process** user+system time in seconds, sampled around invocation; +it includes host Wasmtime work and may include background host threads. It is +not guest CPU accounting. The call counts were identical for P2 and P3, all +three repetitions, and both registries for a given command. + +| Command / registry | P2 wall | P2 CPU median | P3 wall | P3 CPU median | Physical module path probes | Direct fs realpath / stat | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | +| `npm --version` / npmjs | 1.82 [1.36–3.43] | 1.15 | 0.79 [0.73–0.86] | 0.79 | 470 | 412 / 11 | +| `npm --version` / local | 0.90 [0.74–5.30] | 0.88 | 0.81 [0.80–1.01] | 0.81 | 470 | 412 / 11 | +| `npm view` / npmjs | 19.12 [13.46–25.55] | 10.10 | 7.17 [7.09–8.39] | 6.73 | 4,922 | 3,530 / 55 | +| `npm view` / local | 11.31 [6.51–11.53] | 7.72 | 8.41 [7.20–8.71] | 7.68 | 4,922 | 3,530 / 55 | +| cold `npm ci` / npmjs | 13.79 [10.87–25.22] | 12.28 | 12.42 [10.35–13.09] | 10.86 | 7,386 | 4,992 / 89 | +| cold `npm ci` / local | 14.10 [11.57–17.09] | 12.91 | 12.68 [12.01–36.76] | 12.03 | 7,386 | 4,992 / 89 | + +The P2 public `npm view` range exceeds 12 seconds; even a local P3 cold +`npm ci` ranged from 12 to 37 seconds. Warm-cache rows sometimes ran slower +than cold rows. Machine contention could not be quantified here, and public +network variance adds another uncontrolled factor. Thus timing is +**inconclusive** for a speedup or a P2/P3 comparison. Public-network latency +must not become a CI threshold. P2 and P3 also differ in Wasmtime distribution +as well as preview level. + +## Attribution and next decision + +For cold `ci`, the module loader classified 10,144 file candidates: 7,377 +physical file probes and 2,767 cache hits, plus nine physical directory +probes. The profiling counter for optional package metadata reported 2,645 +missing `package.json` reads, 139 successful reads and 1,298 positive cache +hits. Its missing reads are not negatively cached in this path. By comparison, +`view` made 6,667 file classifications, 4,913 physical file probes, and +1,768 missing package reads; `--version` made 600, 461, and 204 respectively. + +Those counts are recorded in the module-resolution instrumentation itself, +not inferred from wall time or the two HTTP downloads. The separate +`filesystem.realpath.calls` (4,992 on `ci`) and `filesystem.stat.calls` (89) +are direct `node:fs` bridge counters; they should not be added to the module +probe count as if they represented the same call site. The repeated missing +package reads and file classifications implicate loader metadata lookup as +the first place to investigate. Direct realpath bridge calls are also +substantial, but these aggregate counters do not establish whether their +caller is npm or loader-side JavaScript, nor how many are redundant without a +path-level trace. Preserve the existing deterministic npm compatibility +checks in CI. Any negative-cache lifetime/invalidation design should follow a +targeted trace or candidate A/B with these *physical call counts* as its +primary success measure, not these noisy timings. + +Raw per-invocation outcomes, process CPU, wall time, HTTP logs, full resolver +and native filesystem counters, and separately labeled warm rows are in +[P2](2026-09-18-p2.json) and [P3](2026-09-18-p3.json). + +## Cold path-frequency trace + +After committing the baseline as `e3d055468ae146d2db8c68728550c9132d9e147a`, +the one-off [trace patch](2026-09-18-trace.patch) counted path frequencies at +the physical module probe, missing optional `package.json` read, native +`node:fs` realpath, and CommonJS canonicalization call sites. Each category +retained at most 16,384 distinct paths per execution job and emitted only +aggregate counts. All trace rows reported zero overflow. The patch is **not +applied** to the checked-in skeleton or harness. + +The trace used the same pinned Node/npm installation, profiling feature, +fixture, and local registry as the baseline. P2 and P3 each ran three serial +fresh-state cold samples of `--version`, `view`, and `ci`; there were no warm +or public-registry trace samples. All 18 commands succeeded. Every `ci` +installed both pinned packages and made two local tarball requests; each +`view` made one local metadata request. The counts below were identical in +all three repetitions and on both targets. Each cell is **physical calls / +distinct paths / repeat calls**, where a repeat is any call after the first +to the same path within one job. + +| Call site | `--version` | `view` | `ci` | +| --- | ---: | ---: | ---: | +| Physical module file or directory probe | 470 / 426 / 44 | 4,922 / 4,131 / 791 | 7,386 / 5,951 / 1,435 | +| Missing optional `package.json` read | 204 / 64 / 140 | 1,768 / 545 / 1,223 | 2,645 / 791 / 1,854 | +| Native `node:fs` realpath | 412 / 72 / 340 | 3,530 / 471 / 3,059 | 4,992 / 610 / 4,382 | +| CommonJS canonicalization | 412 / 72 / 340 | 3,530 / 471 / 3,059 | 4,992 / 610 / 4,382 | + +Physical module probes are mostly unique paths: repeats account for 9%, 16%, +and 19% of calls respectively. Missing package reads revisit paths on about +69–70% of calls; realpath revisits paths on 83–88%. The CommonJS +canonicalization counts and path frequencies equal the native realpath counts +in every sample. Each canonicalization call invokes `realpathSync.native` in +this loader path, so the observed realpath activity is attributable to that +call site for these workloads. The trace does not establish an allocation or +runtime speedup from suppressing any of those calls. + +Before considering a negative package-metadata lookup or realpath result +cache, the remaining question is how long a result stays valid when the same +runtime creates, removes, renames, or changes a package manifest, file, or +symlink. This matters for `npm ci`, which mutates its workspace while it runs. +No cache policy is selected here. [GOL-348](https://linear.app/golem-cloud/issue/GOL-348/module-followup-cache-negative-packagejson-lookups) +and [GOL-350](https://linear.app/golem-cloud/issue/GOL-350/module-followup-reduce-cold-module-resolution-filesystem-probes) +remain related follow-ups, not resolved by this measurement. + +The separate raw [P2 trace](2026-09-18-trace-p2.json) and +[P3 trace](2026-09-18-trace-p3.json) include trace-run timings; those timings +are not combined with the original baseline or used for a P2/P3 speed claim. diff --git a/tests/npm_metadata/results/2026-09-18-trace-p2.json b/tests/npm_metadata/results/2026-09-18-trace-p2.json new file mode 100644 index 00000000..b16f329d --- /dev/null +++ b/tests/npm_metadata/results/2026-09-18-trace-p2.json @@ -0,0 +1,902 @@ +{ + "componentFeature": "typescript-compiler-profiling", + "iterations": 3, + "node": "22.14.0", + "npm": "10.9.2", + "revision": "e3d055468ae146d2db8c68728550c9132d9e147a", + "samples": [ + { + "cache": "cold", + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 0, + "operation": "version", + "pathTrace": { + "cjsCanonicalization": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "fsRealpath": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "missingPackageJson": { + "calls": 204, + "distinctPaths": 64, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 140, + "revisitedPaths": 47 + }, + "physicalModuleProbe": { + "calls": 470, + "distinctPaths": 426, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 44, + "revisitedPaths": 28 + } + }, + "processCpuMs": 699.0079999999725, + "registry": "local", + "sequence": 0, + "success": true, + "wallMs": 691.118083 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 1, + "operation": "view", + "pathTrace": { + "cjsCanonicalization": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "fsRealpath": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "missingPackageJson": { + "calls": 1768, + "distinctPaths": 545, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1223, + "revisitedPaths": 501 + }, + "physicalModuleProbe": { + "calls": 4922, + "distinctPaths": 4131, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 791, + "revisitedPaths": 532 + } + }, + "processCpuMs": 5819.847999999998, + "registry": "local", + "sequence": 1, + "success": true, + "wallMs": 5773.364875 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": true, + "localHttpRequests": 2, + "operation": "ci", + "pathTrace": { + "cjsCanonicalization": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "fsRealpath": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "missingPackageJson": { + "calls": 2645, + "distinctPaths": 791, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1854, + "revisitedPaths": 746 + }, + "physicalModuleProbe": { + "calls": 7386, + "distinctPaths": 5951, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1435, + "revisitedPaths": 940 + } + }, + "processCpuMs": 9275.014999999956, + "registry": "local", + "sequence": 2, + "success": true, + "wallMs": 9207.373958 + }, + { + "cache": "cold", + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 0, + "operation": "version", + "pathTrace": { + "cjsCanonicalization": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "fsRealpath": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "missingPackageJson": { + "calls": 204, + "distinctPaths": 64, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 140, + "revisitedPaths": 47 + }, + "physicalModuleProbe": { + "calls": 470, + "distinctPaths": 426, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 44, + "revisitedPaths": 28 + } + }, + "processCpuMs": 707.2129999999888, + "registry": "local", + "sequence": 3, + "success": true, + "wallMs": 699.755916 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 1, + "operation": "view", + "pathTrace": { + "cjsCanonicalization": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "fsRealpath": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "missingPackageJson": { + "calls": 1768, + "distinctPaths": 545, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1223, + "revisitedPaths": 501 + }, + "physicalModuleProbe": { + "calls": 4922, + "distinctPaths": 4131, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 791, + "revisitedPaths": 532 + } + }, + "processCpuMs": 5351.824999999953, + "registry": "local", + "sequence": 4, + "success": true, + "wallMs": 5282.495958 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": true, + "localHttpRequests": 2, + "operation": "ci", + "pathTrace": { + "cjsCanonicalization": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "fsRealpath": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "missingPackageJson": { + "calls": 2645, + "distinctPaths": 791, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1854, + "revisitedPaths": 746 + }, + "physicalModuleProbe": { + "calls": 7386, + "distinctPaths": 5951, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1435, + "revisitedPaths": 940 + } + }, + "processCpuMs": 9438.282999999996, + "registry": "local", + "sequence": 5, + "success": true, + "wallMs": 9348.458792000001 + }, + { + "cache": "cold", + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 0, + "operation": "version", + "pathTrace": { + "cjsCanonicalization": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "fsRealpath": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "missingPackageJson": { + "calls": 204, + "distinctPaths": 64, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 140, + "revisitedPaths": 47 + }, + "physicalModuleProbe": { + "calls": 470, + "distinctPaths": 426, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 44, + "revisitedPaths": 28 + } + }, + "processCpuMs": 733.5279999999912, + "registry": "local", + "sequence": 6, + "success": true, + "wallMs": 729.7820830000001 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 1, + "operation": "view", + "pathTrace": { + "cjsCanonicalization": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "fsRealpath": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "missingPackageJson": { + "calls": 1768, + "distinctPaths": 545, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1223, + "revisitedPaths": 501 + }, + "physicalModuleProbe": { + "calls": 4922, + "distinctPaths": 4131, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 791, + "revisitedPaths": 532 + } + }, + "processCpuMs": 5447.385000000009, + "registry": "local", + "sequence": 7, + "success": true, + "wallMs": 5397.811084 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": true, + "localHttpRequests": 2, + "operation": "ci", + "pathTrace": { + "cjsCanonicalization": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "fsRealpath": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "missingPackageJson": { + "calls": 2645, + "distinctPaths": 791, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1854, + "revisitedPaths": 746 + }, + "physicalModuleProbe": { + "calls": 7386, + "distinctPaths": 5951, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1435, + "revisitedPaths": 940 + } + }, + "processCpuMs": 9190.580000000016, + "registry": "local", + "sequence": 8, + "success": true, + "wallMs": 9130.839957999999 + } + ], + "schema": "npm-metadata-path-trace-v1", + "target": "p2" +} diff --git a/tests/npm_metadata/results/2026-09-18-trace-p3.json b/tests/npm_metadata/results/2026-09-18-trace-p3.json new file mode 100644 index 00000000..3a9c9bee --- /dev/null +++ b/tests/npm_metadata/results/2026-09-18-trace-p3.json @@ -0,0 +1,902 @@ +{ + "componentFeature": "typescript-compiler-profiling", + "iterations": 3, + "node": "22.14.0", + "npm": "10.9.2", + "revision": "e3d055468ae146d2db8c68728550c9132d9e147a", + "samples": [ + { + "cache": "cold", + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 0, + "operation": "version", + "pathTrace": { + "cjsCanonicalization": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "fsRealpath": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "missingPackageJson": { + "calls": 204, + "distinctPaths": 64, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 140, + "revisitedPaths": 47 + }, + "physicalModuleProbe": { + "calls": 470, + "distinctPaths": 426, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 44, + "revisitedPaths": 28 + } + }, + "processCpuMs": 751.9079999999958, + "registry": "local", + "sequence": 0, + "success": true, + "wallMs": 748.642875 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 1, + "operation": "view", + "pathTrace": { + "cjsCanonicalization": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "fsRealpath": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "missingPackageJson": { + "calls": 1768, + "distinctPaths": 545, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1223, + "revisitedPaths": 501 + }, + "physicalModuleProbe": { + "calls": 4922, + "distinctPaths": 4131, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 791, + "revisitedPaths": 532 + } + }, + "processCpuMs": 5648.06799999997, + "registry": "local", + "sequence": 1, + "success": true, + "wallMs": 5622.799583 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": true, + "localHttpRequests": 2, + "operation": "ci", + "pathTrace": { + "cjsCanonicalization": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "fsRealpath": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "missingPackageJson": { + "calls": 2645, + "distinctPaths": 791, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1854, + "revisitedPaths": 746 + }, + "physicalModuleProbe": { + "calls": 7386, + "distinctPaths": 5951, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1435, + "revisitedPaths": 940 + } + }, + "processCpuMs": 9896.074999999953, + "registry": "local", + "sequence": 2, + "success": true, + "wallMs": 9836.841959000001 + }, + { + "cache": "cold", + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 0, + "operation": "version", + "pathTrace": { + "cjsCanonicalization": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "fsRealpath": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "missingPackageJson": { + "calls": 204, + "distinctPaths": 64, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 140, + "revisitedPaths": 47 + }, + "physicalModuleProbe": { + "calls": 470, + "distinctPaths": 426, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 44, + "revisitedPaths": 28 + } + }, + "processCpuMs": 758.8239999999641, + "registry": "local", + "sequence": 3, + "success": true, + "wallMs": 756.028917 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 1, + "operation": "view", + "pathTrace": { + "cjsCanonicalization": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "fsRealpath": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "missingPackageJson": { + "calls": 1768, + "distinctPaths": 545, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1223, + "revisitedPaths": 501 + }, + "physicalModuleProbe": { + "calls": 4922, + "distinctPaths": 4131, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 791, + "revisitedPaths": 532 + } + }, + "processCpuMs": 6111.700000000012, + "registry": "local", + "sequence": 4, + "success": true, + "wallMs": 6142.533542 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": true, + "localHttpRequests": 2, + "operation": "ci", + "pathTrace": { + "cjsCanonicalization": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "fsRealpath": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "missingPackageJson": { + "calls": 2645, + "distinctPaths": 791, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1854, + "revisitedPaths": 746 + }, + "physicalModuleProbe": { + "calls": 7386, + "distinctPaths": 5951, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1435, + "revisitedPaths": 940 + } + }, + "processCpuMs": 10079.569000000018, + "registry": "local", + "sequence": 5, + "success": true, + "wallMs": 10079.21125 + }, + { + "cache": "cold", + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 412, + "filesystem.realpath.success": 412, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.notFound": 204, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 0, + "operation": "version", + "pathTrace": { + "cjsCanonicalization": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "fsRealpath": { + "calls": 412, + "distinctPaths": 72, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 340, + "revisitedPaths": 72 + }, + "missingPackageJson": { + "calls": 204, + "distinctPaths": 64, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 140, + "revisitedPaths": 47 + }, + "physicalModuleProbe": { + "calls": 470, + "distinctPaths": 426, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 44, + "revisitedPaths": 28 + } + }, + "processCpuMs": 752.4109999999637, + "registry": "local", + "sequence": 6, + "success": true, + "wallMs": 748.34525 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 3530, + "filesystem.realpath.success": 3530, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.notFound": 1768, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": false, + "localHttpRequests": 1, + "operation": "view", + "pathTrace": { + "cjsCanonicalization": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "fsRealpath": { + "calls": 3530, + "distinctPaths": 471, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 3059, + "revisitedPaths": 471 + }, + "missingPackageJson": { + "calls": 1768, + "distinctPaths": 545, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1223, + "revisitedPaths": 501 + }, + "physicalModuleProbe": { + "calls": 4922, + "distinctPaths": 4131, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 791, + "revisitedPaths": 532 + } + }, + "processCpuMs": 6093.625999999989, + "registry": "local", + "sequence": 7, + "success": true, + "wallMs": 6081.437375 + }, + { + "cache": "cold", + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 4992, + "filesystem.realpath.success": 4992, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.notFound": 2645, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "installed": true, + "localHttpRequests": 2, + "operation": "ci", + "pathTrace": { + "cjsCanonicalization": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "fsRealpath": { + "calls": 4992, + "distinctPaths": 610, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 4382, + "revisitedPaths": 610 + }, + "missingPackageJson": { + "calls": 2645, + "distinctPaths": 791, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1854, + "revisitedPaths": 746 + }, + "physicalModuleProbe": { + "calls": 7386, + "distinctPaths": 5951, + "overflowCalls": 0, + "pathLimit": 16384, + "repeatCalls": 1435, + "revisitedPaths": 940 + } + }, + "processCpuMs": 9718.294999999984, + "registry": "local", + "sequence": 8, + "success": true, + "wallMs": 9653.968 + } + ], + "schema": "npm-metadata-path-trace-v1", + "target": "p3" +} diff --git a/tests/npm_metadata/results/2026-09-18-trace.patch b/tests/npm_metadata/results/2026-09-18-trace.patch new file mode 100644 index 00000000..fc6ebe64 --- /dev/null +++ b/tests/npm_metadata/results/2026-09-18-trace.patch @@ -0,0 +1,330 @@ +diff --git a/crates/wasm-rquickjs/skeleton/src/builtin/fs.rs b/crates/wasm-rquickjs/skeleton/src/builtin/fs.rs +index fd45d400..f804b0f8 100644 +--- a/crates/wasm-rquickjs/skeleton/src/builtin/fs.rs ++++ b/crates/wasm-rquickjs/skeleton/src/builtin/fs.rs +@@ -644,6 +644,20 @@ pub mod native_module { + const MAX_STACK_DEPTH_FOR_READDIR: isize = 384; + const STACK_DEPTH_SCAN_LIMIT: isize = 1024; + ++ #[rquickjs::function] ++ pub fn trace_cjs_canonicalization(ctx: Ctx<'_>, path: String) { ++ #[cfg(feature = "typescript-compiler-profiling")] ++ if let Some(profile) = ctx ++ .userdata::() ++ .expect("runtime services not initialized") ++ .execution_profile() ++ { ++ profile.trace_path("cjsCanonicalization", &path); ++ } ++ #[cfg(not(feature = "typescript-compiler-profiling"))] ++ let _ = (ctx, path); ++ } ++ + #[cfg(feature = "typescript-compiler-profiling")] + fn profile_fs(ctx: &Ctx<'_>, operation: &str, outcome: Option<&str>, bytes: usize) { + let profile = ctx +@@ -1492,6 +1506,14 @@ pub mod native_module { + } + + let absolute_path = runtime_path(&ctx, &path); ++ #[cfg(feature = "typescript-compiler-profiling")] ++ if let Some(profile) = ctx ++ .userdata::() ++ .expect("runtime services not initialized") ++ .execution_profile() ++ { ++ profile.trace_path("fsRealpath", &absolute_path); ++ } + match super::canonicalize_guest_path(&absolute_path) { + Ok(resolved_path) => { + #[cfg(feature = "typescript-compiler-profiling")] +diff --git a/crates/wasm-rquickjs/skeleton/src/builtin/module.js b/crates/wasm-rquickjs/skeleton/src/builtin/module.js +index d4a64f89..e02c4256 100644 +--- a/crates/wasm-rquickjs/skeleton/src/builtin/module.js ++++ b/crates/wasm-rquickjs/skeleton/src/builtin/module.js +@@ -63,6 +63,7 @@ import * as internalStreamsState from '__wasm_rquickjs_builtin/internal/streams/ + import * as internalTestBinding from '__wasm_rquickjs_builtin/internal/test/binding'; + import { extractSourceMapURL } from '__wasm_rquickjs_builtin/internal/source_map_url'; + import { eval_with_filename as _evalWithFilename, require_esm as _requireEsm } from '__wasm_rquickjs_builtin/vm_native'; ++import { trace_cjs_canonicalization as traceCjsCanonicalization } from '__wasm_rquickjs_builtin/fs_native'; + import { + transform_typescript as transformTypeScriptNative, + transform_typescript_module as transformTypeScriptModuleNative, +@@ -736,6 +737,7 @@ function shouldPreserveSymlinks(isMainModuleLoad) { + + function toCjsCanonicalFilename(filename, isMainModuleLoad) { + if (shouldPreserveSymlinks(isMainModuleLoad)) return filename; ++ traceCjsCanonicalization(filename); + return fsModule.realpathSync.native(filename); + } + +diff --git a/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs b/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs +index 8bc1f59e..c1e955b6 100644 +--- a/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs ++++ b/crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs +@@ -4294,6 +4294,12 @@ fn module_resolution_path_probe( + } else { + profile.increment(&format!("{prefix}.systemCalls")); + profile.increment("modules.pathProbe.systemCalls"); ++ if matches!( ++ _kind, ++ ModulePathProbeKind::File | ModulePathProbeKind::Directory ++ ) { ++ profile.trace_path("physicalModuleProbe", normalized); ++ } + } + } + +@@ -4807,6 +4813,9 @@ impl NodeModulesResolver { + } else { + "modules.packageJson.errors" + }); ++ if _error.kind() == std::io::ErrorKind::NotFound { ++ profile.trace_path("missingPackageJson", &cache_key); ++ } + } + Ok(None) + } +diff --git a/crates/wasm-rquickjs/skeleton/src/internal/runtime_services.rs b/crates/wasm-rquickjs/skeleton/src/internal/runtime_services.rs +index 050f369c..8d22e200 100644 +--- a/crates/wasm-rquickjs/skeleton/src/internal/runtime_services.rs ++++ b/crates/wasm-rquickjs/skeleton/src/internal/runtime_services.rs +@@ -21,6 +21,30 @@ pub(crate) struct ExecutionProfileSnapshot { + pub(crate) phases_ms: BTreeMap, + pub(crate) total_ms: f64, + pub(crate) counters: BTreeMap, ++ pub(crate) path_trace: BTreeMap, ++} ++ ++#[cfg(feature = "typescript-compiler-profiling")] ++const PATH_TRACE_LIMIT: usize = 16_384; ++ ++#[cfg(feature = "typescript-compiler-profiling")] ++#[derive(Default)] ++struct PathTrace { ++ calls: u64, ++ overflow_calls: u64, ++ paths: BTreeMap, ++} ++ ++#[cfg(feature = "typescript-compiler-profiling")] ++#[derive(serde::Serialize)] ++#[serde(rename_all = "camelCase")] ++pub(crate) struct PathTraceSummary { ++ calls: u64, ++ distinct_paths: usize, ++ repeat_calls: u64, ++ revisited_paths: usize, ++ overflow_calls: u64, ++ path_limit: usize, + } + + #[cfg(feature = "typescript-compiler-profiling")] +@@ -29,6 +53,7 @@ pub(crate) struct ExecutionProfile { + last_phase: Cell, + phases: RefCell>, + counters: RefCell>, ++ path_trace: RefCell>, + } + + #[cfg(feature = "typescript-compiler-profiling")] +@@ -39,6 +64,7 @@ impl ExecutionProfile { + last_phase: Cell::new(Instant::now()), + phases: RefCell::default(), + counters: RefCell::default(), ++ path_trace: RefCell::default(), + } + } + +@@ -64,6 +90,19 @@ impl ExecutionProfile { + *counter = counter.saturating_add(value); + } + ++ pub(crate) fn trace_path(&self, category: &'static str, path: &str) { ++ let mut trace = self.path_trace.borrow_mut(); ++ let entry = trace.entry(category).or_default(); ++ entry.calls = entry.calls.saturating_add(1); ++ if let Some(count) = entry.paths.get_mut(path) { ++ *count = count.saturating_add(1); ++ } else if entry.paths.len() < PATH_TRACE_LIMIT { ++ entry.paths.insert(path.to_owned(), 1); ++ } else { ++ entry.overflow_calls = entry.overflow_calls.saturating_add(1); ++ } ++ } ++ + pub(crate) fn snapshot(&self) -> ExecutionProfileSnapshot { + let phases = self.phases.borrow(); + let queue_delay = phases.get("queueDelay").copied().unwrap_or_default(); +@@ -75,6 +114,28 @@ impl ExecutionProfile { + .collect(), + total_ms: (queue_delay + self.started.elapsed()).as_secs_f64() * 1000.0, + counters: self.counters.borrow().clone(), ++ path_trace: self ++ .path_trace ++ .borrow() ++ .iter() ++ .map(|(category, trace)| { ++ ( ++ category.to_string(), ++ PathTraceSummary { ++ calls: trace.calls, ++ distinct_paths: trace.paths.len(), ++ repeat_calls: trace.paths.values().map(|count| count - 1).sum(), ++ revisited_paths: trace ++ .paths ++ .values() ++ .filter(|count| **count > 1) ++ .count(), ++ overflow_calls: trace.overflow_calls, ++ path_limit: PATH_TRACE_LIMIT, ++ }, ++ ) ++ }) ++ .collect(), + } + } + } +diff --git a/tests/npm_metadata.rs b/tests/npm_metadata.rs +index 6a24a1d6..895c8660 100644 +--- a/tests/npm_metadata.rs ++++ b/tests/npm_metadata.rs +@@ -35,6 +35,10 @@ fn target_name() -> &'static str { + } + } + ++fn trace_mode() -> bool { ++ std::env::var("NPM_METADATA_TRACE").as_deref() == Ok("1") ++} ++ + fn command(command: &mut Command) -> anyhow::Result { + let output = command.output()?; + ensure!( +@@ -206,7 +210,7 @@ async fn sample( + ) + .await?, + ]; +- if operation != "version" { ++ if operation != "version" && !trace_mode() { + samples.push( + measure( + &mut instance, +@@ -245,10 +249,14 @@ async fn measure( + let result: Value = serde_json::from_str(&encoded)?; + let success = result["value"]["exitCode"] == 0 && result.get("runnerError").is_none(); + let installed = if operation == "ci" { +- instance +- .temp_dir_path() +- .join("workspace/node_modules/@types/lodash-es/package.json") +- .exists() ++ PACKAGES.iter().all(|(short, _)| { ++ instance ++ .temp_dir_path() ++ .join(format!( ++ "workspace/node_modules/@types/{short}/package.json" ++ )) ++ .exists() ++ }) + } else { + false + }; +@@ -264,6 +272,49 @@ async fn measure( + .lines() + .filter(|line| line.starts_with("npm http cache ")) + .count(); ++ if trace_mode() { ++ ensure!(success, "npm {operation} failed"); ++ ensure!( ++ operation != "ci" || installed, ++ "npm ci did not install both packages" ++ ); ++ let profile = &result["profile"]; ++ let counters = &profile["counters"]; ++ let trace = &profile["pathTrace"]; ++ let calls = |category: &str| trace[category]["calls"].as_u64().unwrap_or_default(); ++ let counter = |name: &str| counters[name].as_u64().unwrap_or_default(); ++ ensure!( ++ calls("physicalModuleProbe") ++ == counter("modules.fileProbe.systemCalls") ++ + counter("modules.directoryProbe.systemCalls"), ++ "module probes did not reconcile" ++ ); ++ ensure!( ++ calls("missingPackageJson") == counter("modules.packageJson.notFound"), ++ "missing package reads did not reconcile" ++ ); ++ ensure!( ++ calls("fsRealpath") == counter("filesystem.realpath.calls"), ++ "realpath calls did not reconcile" ++ ); ++ for category in [ ++ "physicalModuleProbe", ++ "missingPackageJson", ++ "fsRealpath", ++ "cjsCanonicalization", ++ ] { ++ ensure!( ++ trace[category]["overflowCalls"] == 0, ++ "trace overflow in {category}" ++ ); ++ } ++ return Ok( ++ json!({"sequence": sequence, "operation": operation, "registry": "local", ++ "cache": "cold", "success": true, "installed": installed, "wallMs": wall_ms, ++ "processCpuMs": cpu_ms, "localHttpRequests": count, ++ "counters": counters, "pathTrace": trace}), ++ ); ++ } + Ok( + json!({"sequence": sequence, "operation": operation, "registry": if local {"local"} else {"npmjs"}, + "cache": cache, "success": success && (operation != "ci" || installed), "installed": installed, "wallMs": wall_ms, +@@ -294,6 +345,9 @@ async fn main() -> anyhow::Result<()> { + iterations > 0 && iterations <= 20, + "iterations must be 1..=20" + ); ++ if trace_mode() { ++ ensure!(iterations == 3, "trace requires three iterations"); ++ } + let compiled = CompiledTest::new_with_features( + Utf8Path::new("examples/runtime/npm-compat"), + true, +@@ -307,6 +361,30 @@ async fn main() -> anyhow::Result<()> { + let (local, server, requests) = local_registry(pack_dir.path()).await?; + let mut samples = Vec::new(); + for iteration in 0..iterations { ++ if trace_mode() { ++ for operation in ["version", "view", "ci"] { ++ let next = samples.len(); ++ let value = sample( ++ &prepared, ++ operation, ++ &local, ++ true, ++ next, ++ Some(requests.as_ref()), ++ ) ++ .await? ++ .remove(0); ++ eprintln!( ++ "{} local {} cold: success={} wall={}ms", ++ target_name(), ++ operation, ++ value["success"], ++ value["wallMs"] ++ ); ++ samples.push(value); ++ } ++ continue; ++ } + // Alternate the order to limit drift, never run invocations concurrently. + for local_first in [iteration % 2 == 1, iteration % 2 == 0] { + let (url, count) = if local_first { +@@ -332,7 +410,7 @@ async fn main() -> anyhow::Result<()> { + } + } + server.abort(); +- let report = json!({"schema": "npm-metadata-v1", "revision": command(Command::new("git").args(["rev-parse", "HEAD"]))?, ++ let report = json!({"schema": if trace_mode() {"npm-metadata-path-trace-v1"} else {"npm-metadata-v1"}, "revision": command(Command::new("git").args(["rev-parse", "HEAD"]))?, + "target": target_name(), "node": "22.14.0", "npm": "10.9.2", + "componentFeature": "typescript-compiler-profiling", "iterations": iterations, "samples": samples}); + let output = serde_json::to_string_pretty(&report)?; diff --git a/tests/npm_metadata/results/2026-09-21-cache-experiments.md b/tests/npm_metadata/results/2026-09-21-cache-experiments.md new file mode 100644 index 00000000..5840389c --- /dev/null +++ b/tests/npm_metadata/results/2026-09-21-cache-experiments.md @@ -0,0 +1,144 @@ +# npm loader cache experiments — 2026-09-21 + +The path-frequency trace from 2026-09-18 showed material repetition in two +loader call sites: 69–70% of missing optional `package.json` reads and 83–88% +of CommonJS canonicalization realpaths revisited a path within one execution +job. This follow-up tested each cache independently, retained both candidates, +and measured the combined production behavior. + +The initial production commits are `6897f208` for graph-scoped missing package +metadata and `fc42de34` for runtime-scoped positive loader realpaths. Combined +HEAD was `a492849a`. Each experiment temporarily added a profiling-only switch +to compare control and candidate in the same optimized component. Those +switches and their npm fixture exports were removed after measurement. + +Review then identified that Node keeps CommonJS and ESM realpath state +separate, and that ESM source reads must continue to bypass canonicalization +under `--preserve-symlinks`. Commit `f88f62e8` split the cache domains, fixed +the preserve path, and removed a duplicate physical realpath on failed +CommonJS canonicalization. Commit `8d030cf7` then restored build-time Wizer +filesystem isolation, normalized relative CommonJS loader inputs against the +working directory, and added the missing DTS export. The final candidate was +measured again at that exact commit. + +## Method + +Each target ran five alternating control/candidate pairs for `npm --version`, +`npm view`, and cold `npm ci`. Runs were serial and used Node 22.14.0/npm +10.9.2, the deterministic local registry, and a fresh Wasmtime store, +component instance, QuickJS runtime, workspace, and npm cache per invocation. +Every command succeeded. Every `ci` installed both pinned packages and made +two local tarball requests; every `view` made one metadata request. No trace +overflow or raw path was emitted. + +The timings use the instrumented development component and host process CPU, +so the filesystem call counts are the primary decision signal. Times below +are five-sample medians in seconds. + +## Independent negative package metadata cache + +Missing metadata is cached only while an outer CommonJS resolution graph is +active. It is cleared when the graph returns or throws and after guest +filesystem mutations. Only `NotFound` is retained; parse errors and other I/O +errors are retried. The shorter lifetime explains why the remaining physical +misses are slightly above the distinct-path counts from the earlier whole-job +trace. + +| Target / command | Missing reads control → candidate | Wall control → candidate | CPU control → candidate | +| --- | ---: | ---: | ---: | +| P2 `--version` | 204 → 96 (-52.9%) | 0.781 → 0.774 | 0.788 → 0.782 | +| P2 `view` | 1,768 → 596 (-66.3%) | 5.948 → 5.906 | 6.032 → 5.991 | +| P2 `ci` | 2,645 → 847 (-68.0%) | 10.091 → 9.864 | 10.152 → 9.944 | +| P3 `--version` | 204 → 96 (-52.9%) | 0.826 → 0.801 | 0.833 → 0.807 | +| P3 `view` | 1,768 → 596 (-66.3%) | 6.296 → 6.234 | 6.318 → 6.283 | +| P3 `ci` | 2,645 → 847 (-68.0%) | 10.864 → 10.541 | 10.705 → 10.454 | + +The candidate exceeded the 50% `view`/`ci` call-reduction gate on both targets +and had no median CPU regression. + +## Independent loader realpath cache + +Successful loader canonicalizations are cached for one QuickJS runtime, which +matches Node 22.14's stale positive realpath behavior. Failed canonicalizations +are not cached. `--preserve-symlinks` bypasses both loader caches, while +`--preserve-symlinks-main` bypasses CommonJS main-module canonicalization. +Public `node:fs` realpath APIs remain uncached and observe current filesystem +state. ESM main-entry handling for `--preserve-symlinks-main` remains a known +gap. + +The control counts are 14–15 calls above the older trace because the candidate +routes previously uncounted Rust loader canonicalizations through the same +owner as CommonJS JavaScript. In every sample, +`modules.realpath.calls = cacheHits + systemCalls`, and physical +`filesystem.realpath.calls` equals `modules.realpath.systemCalls`. + +| Target / command | Physical realpaths control → candidate | Wall control → candidate | CPU control → candidate | +| --- | ---: | ---: | ---: | +| P2 `--version` | 426 → 77 (-81.9%) | 0.804 → 0.591 | 0.810 → 0.585 | +| P2 `view` | 3,545 → 475 (-86.6%) | 6.610 → 3.969 | 6.335 → 3.965 | +| P2 `ci` | 5,007 → 614 (-87.7%) | 11.323 → 7.828 | 11.115 → 7.652 | +| P3 `--version` | 426 → 77 (-81.9%) | 0.947 → 0.621 | 0.897 → 0.613 | +| P3 `view` | 3,545 → 475 (-86.6%) | 6.294 → 5.001 | 6.261 → 4.405 | +| P3 `ci` | 5,007 → 614 (-87.7%) | 12.314 → 7.665 | 11.782 → 7.511 | + +The candidate exceeded the 75% physical-call reduction gate for every command +and improved median CPU by 27.8–37.4% on P2 and 29.6–36.3% on P3. + +## Initial combined prototype + +| Target / command | Missing reads control → candidate | Physical realpaths control → candidate | Wall control → candidate | CPU control → candidate | +| --- | ---: | ---: | ---: | ---: | +| P2 `--version` | 204 → 96 | 426 → 77 | 0.848 → 0.626 | 0.836 → 0.612 | +| P2 `view` | 1,768 → 596 | 3,545 → 475 | 7.195 → 4.756 | 7.061 → 4.549 | +| P2 `ci` | 2,645 → 847 | 5,007 → 614 | 13.468 → 8.004 | 12.390 → 7.763 | +| P3 `--version` | 204 → 96 | 426 → 77 | 0.886 → 0.736 | 0.865 → 0.707 | +| P3 `view` | 1,768 → 596 | 3,545 → 475 | 6.259 → 4.158 | 6.187 → 4.099 | +| P3 `ci` | 2,645 → 847 | 5,007 → 614 | 11.423 → 7.570 | 11.314 → 7.507 | + +The combined candidates preserve the independent call reductions. Median CPU +improved 35.6% for P2 `view`, 37.3% for P2 `ci`, 33.7% for P3 `view`, and +33.6% for P3 `ci`. + +## Reviewed production candidate + +After the cache-domain correction, each target ran three more iterations with +the standard harness at exact revision `8d030cf7`. The table below uses only +the serial, fresh-state, cold local-registry rows. The standard reports also +retain their public-registry and warm observations, but those are outside this +comparison. Every local command succeeded, every `ci` installed both pinned +packages, HTTP counts were 0/1/2 as expected, no trace overflow occurred, and +both package-metadata and realpath counter equations reconciled. + +| Target / command | Missing reads control → final | Physical realpaths control → final | Final wall median | Final CPU median | +| --- | ---: | ---: | ---: | ---: | +| P2 `--version` | 204 → 96 (-52.9%) | 426 → 78 (-81.7%) | 0.582 | 0.570 | +| P2 `view` | 1,768 → 596 (-66.3%) | 3,545 → 477 (-86.5%) | 3.963 | 3.923 | +| P2 `ci` | 2,645 → 847 (-68.0%) | 5,007 → 616 (-87.7%) | 6.974 | 6.944 | +| P3 `--version` | 204 → 96 (-52.9%) | 426 → 78 (-81.7%) | 0.592 | 0.590 | +| P3 `view` | 1,768 → 596 (-66.3%) | 3,545 → 477 (-86.5%) | 4.376 | 4.233 | +| P3 `ci` | 2,645 → 847 (-68.0%) | 5,007 → 616 (-87.7%) | 7.965 | 7.533 | + +Separating the two Node loader domains costs one physical realpath for +`--version` and two for `view`/`ci` compared with the initial combined +prototype. The final candidate still clears the 75% realpath reduction gate +for every command and the 50% missing-metadata reduction gate for `view` and +`ci`. Timing is reported as an observation from the final run; the physical +call counts remain the comparison invariant. + +## Node compatibility candidates + +No node-compat inventory entry changes in this work. The runnable +`es-module/test-esm-preserve-symlinks-not-found*.mjs` and +`parallel/test-module-main-{extension-lookup,fail,preserve-symlinks-fail}.js` +cases remain enabled. The ESM preserve-symlinks, symlink-main, circular +symlink, and symlinked-peer-module cases remain known gaps because their +vendored fixtures require rooted symlink targets that cannot be resolved +inside a WASI preopen. Persistent relative symlinks, cache-domain isolation, +retargeting, and retry behavior are covered by the module-resolution runtime +test instead. + +Retained raw reports: reviewed candidate +[P2](2026-09-21-loader-caches-final-p2.json) and +[P3](2026-09-21-loader-caches-final-p3.json). The intermediate prototype +samples are summarized in the aggregate tables above rather than retained +sample by sample. diff --git a/tests/npm_metadata/results/2026-09-21-loader-caches-final-p2.json b/tests/npm_metadata/results/2026-09-21-loader-caches-final-p2.json new file mode 100644 index 00000000..867b3237 --- /dev/null +++ b/tests/npm_metadata/results/2026-09-21-loader-caches-final-p2.json @@ -0,0 +1,3053 @@ +{ + "componentFeature": "typescript-compiler-profiling", + "iterations": 3, + "node": "22.14.0", + "npm": "10.9.2", + "revision": "8d030cf70b48555dd2d42e3574482664a8e33ecf", + "samples": [ + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 563.2519999999786, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 174.565125, + "initialEvaluation": 0.15125, + "loaderInitialization": 1.825166, + "processConfiguration": 0.756, + "queueDelay": 0.576667, + "resultFormatting": 0.020416, + "runtimeCreation": 0.496875, + "teardown": 10.863834, + "transportWiring": 0.184417, + "userAwait": 371.944084, + "wrapperPreparation": 0.023958 + }, + "totalMs": 561.447125, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "success": true, + "wallMs": 566.3212090000001 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3759.7300000000396, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 178.299375, + "initialEvaluation": 0.191208, + "loaderInitialization": 1.71, + "processConfiguration": 0.186208, + "queueDelay": 0.471583, + "resultFormatting": 0.031124999999999996, + "runtimeCreation": 0.464, + "teardown": 21.864291, + "transportWiring": 0.35550000000000004, + "userAwait": 3811.694667, + "wrapperPreparation": 0.045042 + }, + "totalMs": 4015.344708, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 277ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "success": true, + "wallMs": 4017.544125 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 4006.3310000000056, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 177.222959, + "initialEvaluation": 0.14754199999999998, + "loaderInitialization": 1.716583, + "processConfiguration": 0.140958, + "queueDelay": 0.317458, + "resultFormatting": 0.023041, + "runtimeCreation": 0.424792, + "teardown": 23.492542, + "transportWiring": 0.155458, + "userAwait": 3828.049792, + "wrapperPreparation": 0.018958 + }, + "totalMs": 4031.759292, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 102ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "success": true, + "wallMs": 4033.484084 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 7816.402999999991, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 178.856875, + "initialEvaluation": 0.142667, + "loaderInitialization": 1.920958, + "processConfiguration": 0.2365, + "queueDelay": 0.553875, + "resultFormatting": 0.033541999999999995, + "runtimeCreation": 0.479334, + "teardown": 42.462208, + "transportWiring": 0.14400000000000002, + "userAwait": 7928.880708000001, + "wrapperPreparation": 0.02125 + }, + "totalMs": 8153.811875, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 992ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 3184ms (cache miss)\n", + "stdout": "\nadded 2 packages in 8s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "success": true, + "wallMs": 8157.126957999999 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 6823.329000000027, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 174.825375, + "initialEvaluation": 0.149917, + "loaderInitialization": 1.372916, + "processConfiguration": 0.145542, + "queueDelay": 0.311584, + "resultFormatting": 0.016125, + "runtimeCreation": 0.426584, + "teardown": 37.2035, + "transportWiring": 0.12687500000000002, + "userAwait": 6598.194833, + "wrapperPreparation": 0.018000000000000002 + }, + "totalMs": 6812.824084, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 6s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "success": true, + "wallMs": 6815.299084 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 570.4440000000177, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 174.725042, + "initialEvaluation": 0.16799999999999998, + "loaderInitialization": 1.75325, + "processConfiguration": 0.189458, + "queueDelay": 0.6815, + "resultFormatting": 0.048584, + "runtimeCreation": 0.510584, + "teardown": 11.783583, + "transportWiring": 0.211208, + "userAwait": 388.80175, + "wrapperPreparation": 0.030833000000000003 + }, + "totalMs": 578.9477499999999, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 5, + "success": true, + "wallMs": 581.77775 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3922.706999999995, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 173.707791, + "initialEvaluation": 0.151917, + "loaderInitialization": 1.880666, + "processConfiguration": 0.197709, + "queueDelay": 0.488625, + "resultFormatting": 0.030417, + "runtimeCreation": 0.438875, + "teardown": 22.135792, + "transportWiring": 0.144125, + "userAwait": 3765.523083, + "wrapperPreparation": 0.021 + }, + "totalMs": 3964.7585, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types%2flodash-es 23ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 6, + "success": true, + "wallMs": 3967.0769999999998 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 4264.449000000022, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 176.332875, + "initialEvaluation": 0.13520900000000002, + "loaderInitialization": 1.381208, + "processConfiguration": 0.190792, + "queueDelay": 0.32370800000000005, + "resultFormatting": 0.026875, + "runtimeCreation": 0.4294170000000001, + "teardown": 25.076833, + "transportWiring": 0.137083, + "userAwait": 4053.234958, + "wrapperPreparation": 0.019125 + }, + "totalMs": 4257.355208, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types%2flodash-es 26ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 7, + "success": true, + "wallMs": 4259.113917 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 7130.6570000000065, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 185.745667, + "initialEvaluation": 0.15437499999999998, + "loaderInitialization": 1.696875, + "processConfiguration": 0.199458, + "queueDelay": 0.708875, + "resultFormatting": 0.027917, + "runtimeCreation": 0.47175, + "teardown": 37.217041, + "transportWiring": 0.16316599999999998, + "userAwait": 6974.561417, + "wrapperPreparation": 0.022375 + }, + "totalMs": 7201.002958, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:53956/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:53956/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types/lodash-es/-/lodash-es-4.17.12.tgz 842ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types/lodash/-/lodash-4.17.12.tgz 2311ms (cache miss)\n", + "stdout": "\nadded 2 packages in 6s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 8, + "success": true, + "wallMs": 7203.844667 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 6860.250999999989, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 171.857666, + "initialEvaluation": 0.14720799999999998, + "loaderInitialization": 1.436042, + "processConfiguration": 0.126792, + "queueDelay": 0.34299999999999997, + "resultFormatting": 0.019334, + "runtimeCreation": 0.490333, + "teardown": 35.626625000000004, + "transportWiring": 0.156375, + "userAwait": 6573.530833, + "wrapperPreparation": 0.019584 + }, + "totalMs": 6783.786333, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:53956/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:53956/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 6s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 9, + "success": true, + "wallMs": 6785.748250000001 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 598.3209999999963, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 182.176709, + "initialEvaluation": 0.138875, + "loaderInitialization": 1.515, + "processConfiguration": 0.406958, + "queueDelay": 0.377084, + "resultFormatting": 0.031167, + "runtimeCreation": 0.416708, + "teardown": 13.158417, + "transportWiring": 0.13004100000000002, + "userAwait": 402.125291, + "wrapperPreparation": 0.019084 + }, + "totalMs": 600.5319999999999, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 10, + "success": true, + "wallMs": 602.41575 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3941.517999999982, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 180.884625, + "initialEvaluation": 0.170167, + "loaderInitialization": 1.91125, + "processConfiguration": 0.200292, + "queueDelay": 0.5143749999999999, + "resultFormatting": 0.030125, + "runtimeCreation": 0.458208, + "teardown": 23.575083, + "transportWiring": 0.197666, + "userAwait": 3752.701292, + "wrapperPreparation": 0.026375 + }, + "totalMs": 3960.708459, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types%2flodash-es 18ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 11, + "success": true, + "wallMs": 3963.251209 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 4028.426999999967, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 180.780167, + "initialEvaluation": 0.1575, + "loaderInitialization": 1.370833, + "processConfiguration": 0.12025, + "queueDelay": 0.317458, + "resultFormatting": 0.02125, + "runtimeCreation": 0.443167, + "teardown": 22.452083, + "transportWiring": 0.17533300000000002, + "userAwait": 3834.195167, + "wrapperPreparation": 0.021375 + }, + "totalMs": 4040.0885, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types%2flodash-es 19ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 12, + "success": true, + "wallMs": 4041.7587089999997 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 6891.167000000016, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 180.302041, + "initialEvaluation": 0.187834, + "loaderInitialization": 1.644791, + "processConfiguration": 0.196084, + "queueDelay": 0.5215000000000001, + "resultFormatting": 0.035542, + "runtimeCreation": 0.450834, + "teardown": 39.79125, + "transportWiring": 0.228792, + "userAwait": 6710.846041, + "wrapperPreparation": 0.029708 + }, + "totalMs": 6934.273834, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:53956/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:53956/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types/lodash-es/-/lodash-es-4.17.12.tgz 813ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types/lodash/-/lodash-4.17.12.tgz 2271ms (cache miss)\n", + "stdout": "\nadded 2 packages in 6s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 13, + "success": true, + "wallMs": 6937.129583 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 7824.3829999999725, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 169.88508399999998, + "initialEvaluation": 0.1285, + "loaderInitialization": 1.349125, + "processConfiguration": 0.129583, + "queueDelay": 0.285208, + "resultFormatting": 0.015792, + "runtimeCreation": 0.404625, + "teardown": 40.520541, + "transportWiring": 0.183958, + "userAwait": 7638.300583, + "wrapperPreparation": 0.017292 + }, + "totalMs": 7851.29025, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:53956/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:53956/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 7s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 14, + "success": true, + "wallMs": 7854.136917 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 652.679999999993, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 189.149916, + "initialEvaluation": 0.14870899999999998, + "loaderInitialization": 2.488625, + "processConfiguration": 0.389459, + "queueDelay": 0.643458, + "resultFormatting": 0.021083, + "runtimeCreation": 0.500791, + "teardown": 12.891584, + "transportWiring": 0.157792, + "userAwait": 463.747208, + "wrapperPreparation": 0.021208 + }, + "totalMs": 670.203333, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 15, + "success": true, + "wallMs": 672.518208 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3918.3189999999595, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 185.937583, + "initialEvaluation": 0.232125, + "loaderInitialization": 1.678584, + "processConfiguration": 0.4235, + "queueDelay": 0.578375, + "resultFormatting": 0.02925, + "runtimeCreation": 0.487916, + "teardown": 22.371167, + "transportWiring": 0.483125, + "userAwait": 3783.944875, + "wrapperPreparation": 0.048333 + }, + "totalMs": 3996.257083, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 102ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 16, + "success": true, + "wallMs": 3998.672459 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3730.487999999954, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 173.487375, + "initialEvaluation": 0.131791, + "loaderInitialization": 1.411667, + "processConfiguration": 0.14962499999999998, + "queueDelay": 0.311333, + "resultFormatting": 0.034292, + "runtimeCreation": 0.433375, + "teardown": 25.311583, + "transportWiring": 0.123958, + "userAwait": 3710.320292, + "wrapperPreparation": 0.019709 + }, + "totalMs": 3911.808958, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 268ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 17, + "success": true, + "wallMs": 3913.976709 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 6900.478999999992, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 175.314584, + "initialEvaluation": 0.156625, + "loaderInitialization": 1.489916, + "processConfiguration": 0.211875, + "queueDelay": 0.398375, + "resultFormatting": 0.031375, + "runtimeCreation": 0.43925, + "teardown": 40.457, + "transportWiring": 0.139166, + "userAwait": 6767.655041, + "wrapperPreparation": 0.020459 + }, + "totalMs": 6986.356, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 669ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 2487ms (cache miss)\n", + "stdout": "\nadded 2 packages in 6s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 18, + "success": true, + "wallMs": 6988.945000000001 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 7594.427000000025, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 179.740459, + "initialEvaluation": 0.144333, + "loaderInitialization": 1.312416, + "processConfiguration": 0.206, + "queueDelay": 0.283125, + "resultFormatting": 0.0165, + "runtimeCreation": 0.402625, + "teardown": 35.260875, + "transportWiring": 0.148708, + "userAwait": 7437.220167, + "wrapperPreparation": 0.017875000000000002 + }, + "totalMs": 7654.784667000001, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 7s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 19, + "success": true, + "wallMs": 7657.044584 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 565.3870000000461, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 172.5345, + "initialEvaluation": 0.1505, + "loaderInitialization": 1.973875, + "processConfiguration": 0.208208, + "queueDelay": 0.545334, + "resultFormatting": 0.037042000000000005, + "runtimeCreation": 0.467959, + "teardown": 11.358125, + "transportWiring": 0.142125, + "userAwait": 379.221875, + "wrapperPreparation": 0.0215 + }, + "totalMs": 566.686709, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 20, + "success": true, + "wallMs": 568.778791 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3713.920999999973, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 171.465375, + "initialEvaluation": 0.153834, + "loaderInitialization": 1.739, + "processConfiguration": 0.298666, + "queueDelay": 0.519, + "resultFormatting": 0.048333, + "runtimeCreation": 0.5005419999999999, + "teardown": 22.162375, + "transportWiring": 0.158959, + "userAwait": 3586.332, + "wrapperPreparation": 0.025041 + }, + "totalMs": 3783.443417, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 105ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 21, + "success": true, + "wallMs": 3785.887959 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3669.0619999999763, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 170.392708, + "initialEvaluation": 0.12787500000000002, + "loaderInitialization": 1.54525, + "processConfiguration": 0.114708, + "queueDelay": 0.33183399999999996, + "resultFormatting": 0.036334, + "runtimeCreation": 0.5359590000000001, + "teardown": 22.854708, + "transportWiring": 0.112125, + "userAwait": 3494.74925, + "wrapperPreparation": 0.016375 + }, + "totalMs": 3690.854834, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 98ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 22, + "success": true, + "wallMs": 3693.1622920000004 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 8298.507000000041, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 178.627875, + "initialEvaluation": 0.1545, + "loaderInitialization": 1.7554999999999998, + "processConfiguration": 0.198084, + "queueDelay": 0.561583, + "resultFormatting": 0.030292, + "runtimeCreation": 0.461291, + "teardown": 38.978625, + "transportWiring": 0.15125, + "userAwait": 8241.865083, + "wrapperPreparation": 0.020083 + }, + "totalMs": 8462.844125, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 858ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 2873ms (cache miss)\n", + "stdout": "\nadded 2 packages in 8s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 23, + "success": true, + "wallMs": 8465.342458000001 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 6849.5620000000345, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 170.056542, + "initialEvaluation": 0.137041, + "loaderInitialization": 1.377417, + "processConfiguration": 0.231791, + "queueDelay": 0.30120800000000003, + "resultFormatting": 0.01675, + "runtimeCreation": 0.427958, + "teardown": 37.679542000000005, + "transportWiring": 0.119958, + "userAwait": 6603.78675, + "wrapperPreparation": 0.016959000000000002 + }, + "totalMs": 6814.185625, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 6s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 24, + "success": true, + "wallMs": 6816.190458 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 557.9349999999977, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 174.036792, + "initialEvaluation": 0.140042, + "loaderInitialization": 2.109, + "processConfiguration": 0.211208, + "queueDelay": 0.568583, + "resultFormatting": 0.020334, + "runtimeCreation": 0.439375, + "teardown": 10.609583, + "transportWiring": 0.124875, + "userAwait": 370.513833, + "wrapperPreparation": 0.019083 + }, + "totalMs": 558.8189169999999, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 25, + "success": true, + "wallMs": 560.776917 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3671.103000000003, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 171.38825, + "initialEvaluation": 0.14837499999999998, + "loaderInitialization": 1.526834, + "processConfiguration": 0.192416, + "queueDelay": 0.416209, + "resultFormatting": 0.032125, + "runtimeCreation": 0.446916, + "teardown": 22.700208999999997, + "transportWiring": 0.134292, + "userAwait": 3492.63025, + "wrapperPreparation": 0.020208 + }, + "totalMs": 3689.663542, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types%2flodash-es 17ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 26, + "success": true, + "wallMs": 3691.774375 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 4125.460000000021, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 177.173958, + "initialEvaluation": 0.152125, + "loaderInitialization": 1.3659169999999998, + "processConfiguration": 0.207, + "queueDelay": 0.306208, + "resultFormatting": 0.028167, + "runtimeCreation": 0.399833, + "teardown": 24.808166999999997, + "transportWiring": 0.156792, + "userAwait": 3956.304458, + "wrapperPreparation": 0.022458 + }, + "totalMs": 4160.963833000001, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types%2flodash-es 25ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 27, + "success": true, + "wallMs": 4162.67025 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 6943.5869999999995, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 185.829125, + "initialEvaluation": 0.159875, + "loaderInitialization": 2.1111250000000004, + "processConfiguration": 0.5639580000000001, + "queueDelay": 0.53475, + "resultFormatting": 0.032167, + "runtimeCreation": 0.465584, + "teardown": 37.63699999999999, + "transportWiring": 0.172083, + "userAwait": 6743.29875, + "wrapperPreparation": 0.022375 + }, + "totalMs": 6970.925208, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:53956/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:53956/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types/lodash-es/-/lodash-es-4.17.12.tgz 825ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:53956/@types/lodash/-/lodash-4.17.12.tgz 2281ms (cache miss)\n", + "stdout": "\nadded 2 packages in 6s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 28, + "success": true, + "wallMs": 6974.262624999999 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 6985.489000000001, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 171.71208299999998, + "initialEvaluation": 0.133125, + "loaderInitialization": 1.452833, + "processConfiguration": 0.13504200000000002, + "queueDelay": 0.34254100000000004, + "resultFormatting": 0.033125, + "runtimeCreation": 0.445125, + "teardown": 40.390375, + "transportWiring": 0.1195, + "userAwait": 6789.268959, + "wrapperPreparation": 0.017124999999999998 + }, + "totalMs": 7004.129458, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:53956/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:53956/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 6s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 29, + "success": true, + "wallMs": 7006.688875 + } + ], + "schema": "npm-metadata-v1", + "target": "p2" +} diff --git a/tests/npm_metadata/results/2026-09-21-loader-caches-final-p3.json b/tests/npm_metadata/results/2026-09-21-loader-caches-final-p3.json new file mode 100644 index 00000000..b73aeba4 --- /dev/null +++ b/tests/npm_metadata/results/2026-09-21-loader-caches-final-p3.json @@ -0,0 +1,3053 @@ +{ + "componentFeature": "typescript-compiler-profiling", + "iterations": 3, + "node": "22.14.0", + "npm": "10.9.2", + "revision": "8d030cf70b48555dd2d42e3574482664a8e33ecf", + "samples": [ + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 564.1770000000251, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 176.998959, + "initialEvaluation": 0.17225, + "loaderInitialization": 1.79, + "processConfiguration": 0.994791, + "queueDelay": 0.646625, + "resultFormatting": 0.047959, + "runtimeCreation": 0.510542, + "teardown": 12.349125, + "transportWiring": 0.291041, + "userAwait": 369.896416, + "wrapperPreparation": 0.025084 + }, + "totalMs": 563.847958, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "success": true, + "wallMs": 567.799792 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3795.1020000000135, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 176.99875, + "initialEvaluation": 0.17275, + "loaderInitialization": 1.79225, + "processConfiguration": 0.210083, + "queueDelay": 0.5183749999999999, + "resultFormatting": 0.099709, + "runtimeCreation": 0.440625, + "teardown": 24.187541, + "transportWiring": 0.261792, + "userAwait": 3850.551458, + "wrapperPreparation": 0.030583000000000003 + }, + "totalMs": 4055.294042, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 290ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "success": true, + "wallMs": 4057.6557080000002 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3825.3009999999776, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 176.286584, + "initialEvaluation": 0.141417, + "loaderInitialization": 1.365, + "processConfiguration": 0.150791, + "queueDelay": 0.295958, + "resultFormatting": 0.082333, + "runtimeCreation": 0.41925, + "teardown": 22.767292, + "transportWiring": 0.113833, + "userAwait": 3632.645042, + "wrapperPreparation": 0.016958 + }, + "totalMs": 3834.312041, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 95ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "success": true, + "wallMs": 3835.989458 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 8194.418999999994, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 179.4135, + "initialEvaluation": 0.15083300000000002, + "loaderInitialization": 1.541, + "processConfiguration": 0.187625, + "queueDelay": 0.561417, + "resultFormatting": 0.086917, + "runtimeCreation": 0.4615, + "teardown": 42.204417, + "transportWiring": 0.148166, + "userAwait": 8155.744374999999, + "wrapperPreparation": 0.018917 + }, + "totalMs": 8380.558167000001, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 2713ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 2724ms (cache miss)\n", + "stdout": "\nadded 2 packages in 8s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "success": true, + "wallMs": 8383.130583 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 6963.364000000001, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 177.578, + "initialEvaluation": 0.14650000000000002, + "loaderInitialization": 2.355541, + "processConfiguration": 0.221959, + "queueDelay": 0.450042, + "resultFormatting": 0.016333, + "runtimeCreation": 0.522875, + "teardown": 36.444958, + "transportWiring": 0.16674999999999998, + "userAwait": 6725.601541999999, + "wrapperPreparation": 0.017082999999999997 + }, + "totalMs": 6943.554833, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 6s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "success": true, + "wallMs": 6945.942917 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 553.6219999999739, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 172.338166, + "initialEvaluation": 0.14125, + "loaderInitialization": 1.648667, + "processConfiguration": 0.34099999999999997, + "queueDelay": 0.410125, + "resultFormatting": 0.0245, + "runtimeCreation": 0.455292, + "teardown": 11.2655, + "transportWiring": 0.12774999999999995, + "userAwait": 368.977875, + "wrapperPreparation": 0.019834 + }, + "totalMs": 555.776584, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 5, + "success": true, + "wallMs": 557.591083 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3726.981000000029, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 181.116416, + "initialEvaluation": 0.156125, + "loaderInitialization": 2.0041249999999997, + "processConfiguration": 0.2615, + "queueDelay": 0.570875, + "resultFormatting": 0.098042, + "runtimeCreation": 0.5107090000000001, + "teardown": 23.048958, + "transportWiring": 0.175209, + "userAwait": 3526.508, + "wrapperPreparation": 0.019791 + }, + "totalMs": 3734.499834, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types%2flodash-es 17ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 6, + "success": true, + "wallMs": 3736.813417 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3833.1089999999967, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 173.132042, + "initialEvaluation": 0.128083, + "loaderInitialization": 1.255167, + "processConfiguration": 0.15312499999999998, + "queueDelay": 0.281542, + "resultFormatting": 0.079916, + "runtimeCreation": 0.396083, + "teardown": 24.257334, + "transportWiring": 0.106541, + "userAwait": 3590.873834, + "wrapperPreparation": 0.013917 + }, + "totalMs": 3790.712084, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types%2flodash-es 21ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 7, + "success": true, + "wallMs": 3792.516333 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 7533.299999999988, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 182.365542, + "initialEvaluation": 0.13975, + "loaderInitialization": 1.875042, + "processConfiguration": 0.236083, + "queueDelay": 0.506458, + "resultFormatting": 0.087, + "runtimeCreation": 0.5998330000000001, + "teardown": 38.219459, + "transportWiring": 0.13475, + "userAwait": 7484.276208, + "wrapperPreparation": 0.017583 + }, + "totalMs": 7708.527666, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:54166/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:54166/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types/lodash-es/-/lodash-es-4.17.12.tgz 2307ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types/lodash/-/lodash-4.17.12.tgz 2317ms (cache miss)\n", + "stdout": "\nadded 2 packages in 7s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 8, + "success": true, + "wallMs": 7711.276041 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 7052.2119999999995, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 177.482917, + "initialEvaluation": 0.14666700000000002, + "loaderInitialization": 1.55225, + "processConfiguration": 0.111292, + "queueDelay": 0.403208, + "resultFormatting": 0.0185, + "runtimeCreation": 0.421125, + "teardown": 43.333917, + "transportWiring": 0.154875, + "userAwait": 6872.247416, + "wrapperPreparation": 0.018583 + }, + "totalMs": 7095.92475, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:54166/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:54166/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 7s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 9, + "success": true, + "wallMs": 7098.557084 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 589.6049999999814, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 181.358833, + "initialEvaluation": 0.151208, + "loaderInitialization": 1.836584, + "processConfiguration": 0.221625, + "queueDelay": 0.684709, + "resultFormatting": 0.021958, + "runtimeCreation": 0.553791, + "teardown": 11.527292, + "transportWiring": 0.160833, + "userAwait": 393.786167, + "wrapperPreparation": 0.020041999999999997 + }, + "totalMs": 590.3530420000001, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 10, + "success": true, + "wallMs": 592.3425 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 4232.996999999974, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 179.917459, + "initialEvaluation": 0.201584, + "loaderInitialization": 1.783166, + "processConfiguration": 0.223125, + "queueDelay": 0.5695840000000001, + "resultFormatting": 0.09775, + "runtimeCreation": 0.465709, + "teardown": 30.258417, + "transportWiring": 0.400958, + "userAwait": 4363.169790999999, + "wrapperPreparation": 0.035958 + }, + "totalMs": 4577.165459, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types%2flodash-es 43ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 11, + "success": true, + "wallMs": 4580.651334 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 4091.6020000000135, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 188.466084, + "initialEvaluation": 0.14958300000000002, + "loaderInitialization": 1.378417, + "processConfiguration": 0.386041, + "queueDelay": 0.32066700000000004, + "resultFormatting": 0.031833, + "runtimeCreation": 0.429583, + "teardown": 22.904, + "transportWiring": 0.17758300000000002, + "userAwait": 3911.508917, + "wrapperPreparation": 0.019792 + }, + "totalMs": 4125.80325, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types%2flodash-es 19ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 12, + "success": true, + "wallMs": 4127.508 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 6878.4070000000065, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 171.264958, + "initialEvaluation": 0.136292, + "loaderInitialization": 1.880166, + "processConfiguration": 0.176459, + "queueDelay": 0.542167, + "resultFormatting": 0.080125, + "runtimeCreation": 0.457584, + "teardown": 36.698459, + "transportWiring": 0.116792, + "userAwait": 7751.144541000001, + "wrapperPreparation": 0.017333 + }, + "totalMs": 7962.544875, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:54166/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:54166/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types/lodash-es/-/lodash-es-4.17.12.tgz 2273ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types/lodash/-/lodash-4.17.12.tgz 2280ms (cache miss)\n", + "stdout": "\nadded 2 packages in 7s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 13, + "success": true, + "wallMs": 7965.0105 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 7299.42300000001, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 170.78887500000002, + "initialEvaluation": 0.129, + "loaderInitialization": 1.2993329999999998, + "processConfiguration": 0.126, + "queueDelay": 0.301917, + "resultFormatting": 0.016416999999999998, + "runtimeCreation": 0.460375, + "teardown": 38.321, + "transportWiring": 0.119917, + "userAwait": 7168.602792, + "wrapperPreparation": 0.014041 + }, + "totalMs": 7380.211125, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:54166/@types/lodash-es/-/lodash-es-4.17.12.tgz 1ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:54166/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 7s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 14, + "success": true, + "wallMs": 7382.467917 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 551.0740000000224, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 171.835292, + "initialEvaluation": 0.13674999999999998, + "loaderInitialization": 1.695542, + "processConfiguration": 0.171333, + "queueDelay": 0.527292, + "resultFormatting": 0.021209, + "runtimeCreation": 0.440958, + "teardown": 11.00275, + "transportWiring": 0.131958, + "userAwait": 366.121375, + "wrapperPreparation": 0.016625 + }, + "totalMs": 552.128125, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 15, + "success": true, + "wallMs": 554.087625 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3693.6230000000214, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 171.998375, + "initialEvaluation": 0.139625, + "loaderInitialization": 1.662458, + "processConfiguration": 0.192084, + "queueDelay": 0.673791, + "resultFormatting": 0.07675, + "runtimeCreation": 0.433375, + "teardown": 21.979917, + "transportWiring": 0.119916, + "userAwait": 3565.3514579999996, + "wrapperPreparation": 0.016708999999999998 + }, + "totalMs": 3762.677166, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 104ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 16, + "success": true, + "wallMs": 3765.877875 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3666.539000000048, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 172.892708, + "initialEvaluation": 0.15420899999999998, + "loaderInitialization": 1.330875, + "processConfiguration": 0.11225, + "queueDelay": 0.441667, + "resultFormatting": 0.06175, + "runtimeCreation": 0.4825, + "teardown": 21.967457999999997, + "transportWiring": 0.16825, + "userAwait": 3486.141333, + "wrapperPreparation": 0.018708 + }, + "totalMs": 3683.846667, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 95ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 17, + "success": true, + "wallMs": 3685.854292 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 7430.130000000005, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 174.38554100000002, + "initialEvaluation": 0.140208, + "loaderInitialization": 1.9405, + "processConfiguration": 0.238625, + "queueDelay": 0.7164159999999999, + "resultFormatting": 0.081375, + "runtimeCreation": 0.567417, + "teardown": 42.017667, + "transportWiring": 0.122167, + "userAwait": 7362.439, + "wrapperPreparation": 0.017042 + }, + "totalMs": 7582.7, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 2872ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 2883ms (cache miss)\n", + "stdout": "\nadded 2 packages in 7s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 18, + "success": true, + "wallMs": 7585.777375000001 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 7083.583000000042, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 177.820792, + "initialEvaluation": 0.138625, + "loaderInitialization": 1.4185, + "processConfiguration": 0.165833, + "queueDelay": 0.34520900000000004, + "resultFormatting": 0.016541, + "runtimeCreation": 0.462459, + "teardown": 36.233334, + "transportWiring": 0.130875, + "userAwait": 6829.136375, + "wrapperPreparation": 0.0165 + }, + "totalMs": 7045.922874999999, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 7s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 19, + "success": true, + "wallMs": 7048.09325 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 569.9869999999646, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 178.886084, + "initialEvaluation": 0.144416, + "loaderInitialization": 1.750375, + "processConfiguration": 0.199083, + "queueDelay": 0.546583, + "resultFormatting": 0.02025, + "runtimeCreation": 0.462917, + "teardown": 11.24625, + "transportWiring": 0.147541, + "userAwait": 379.086459, + "wrapperPreparation": 0.018834 + }, + "totalMs": 572.53725, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 20, + "success": true, + "wallMs": 574.7305419999999 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 3750.585000000021, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 173.71525, + "initialEvaluation": 0.215709, + "loaderInitialization": 1.708083, + "processConfiguration": 0.176084, + "queueDelay": 0.47075, + "resultFormatting": 0.077709, + "runtimeCreation": 0.450417, + "teardown": 24.5495, + "transportWiring": 0.214375, + "userAwait": 3629.894541, + "wrapperPreparation": 0.021916 + }, + "totalMs": 3831.528333, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 100ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 21, + "success": true, + "wallMs": 3833.868041 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 4051.896000000008, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 39058, + "filesystem.read.calls": 3, + "filesystem.read.success": 3, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 46, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 40, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 179.75945800000002, + "initialEvaluation": 0.139791, + "loaderInitialization": 1.539084, + "processConfiguration": 0.260375, + "queueDelay": 0.311459, + "resultFormatting": 0.113209, + "runtimeCreation": 0.452083, + "teardown": 22.271666, + "transportWiring": 0.142875, + "userAwait": 3925.351375, + "wrapperPreparation": 0.015291999999999998 + }, + "totalMs": 4130.387875, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types%2flodash-es 96ms (cache revalidated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 22, + "success": true, + "wallMs": 4132.063959 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 7038.107999999949, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2760, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 182.143084, + "initialEvaluation": 0.161666, + "loaderInitialization": 1.667042, + "processConfiguration": 0.396666, + "queueDelay": 0.519916, + "resultFormatting": 0.0725, + "runtimeCreation": 0.46, + "teardown": 38.110291, + "transportWiring": 0.178875, + "userAwait": 6940.039084, + "wrapperPreparation": 0.0205 + }, + "totalMs": 7163.799166000001, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at request (node:https:17:21)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 2397ms (cache miss)\nnpm http fetch GET 200 https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 2406ms (cache miss)\n", + "stdout": "\nadded 2 packages in 7s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 23, + "success": true, + "wallMs": 7166.185375 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": null, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 6953.048999999999, + "registry": "npmjs", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124211, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 171.812875, + "initialEvaluation": 0.131125, + "loaderInitialization": 1.371, + "processConfiguration": 0.10425, + "queueDelay": 0.28025, + "resultFormatting": 0.017082999999999997, + "runtimeCreation": 0.410541, + "teardown": 42.505042, + "transportWiring": 0.125209, + "userAwait": 6658.521417, + "wrapperPreparation": 0.014458 + }, + "totalMs": 6875.331417, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 6s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 24, + "success": true, + "wallMs": 6877.419583 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 0, + "operation": "version", + "processCpuMs": 600.5960000000196, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.open.calls": 4, + "filesystem.open.notFound": 4, + "filesystem.readFileNative.bytes": 372791, + "filesystem.readFileNative.calls": 77, + "filesystem.readFileNative.notFound": 6, + "filesystem.readFileNative.success": 71, + "filesystem.realpath.calls": 78, + "filesystem.realpath.success": 78, + "filesystem.stat.calls": 11, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 5, + "modules.directoryProbe.calls": 9, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 7, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 139, + "modules.fileProbe.cacheHitsMissing": 129, + "modules.fileProbe.calls": 600, + "modules.fileProbe.found": 90, + "modules.fileProbe.missing": 510, + "modules.fileProbe.sessionCacheHits": 10, + "modules.fileProbe.sessionCacheHitsFound": 8, + "modules.fileProbe.sessionCacheHitsMissing": 2, + "modules.fileProbe.systemCalls": 461, + "modules.packageJson.bytes": 30087, + "modules.packageJson.cacheHits": 116, + "modules.packageJson.calls": 341, + "modules.packageJson.negativeCacheEntries": 61, + "modules.packageJson.negativeCacheHits": 108, + "modules.packageJson.notFound": 96, + "modules.packageJson.reads": 21, + "modules.pathProbe.sessionHits": 10, + "modules.pathProbe.systemCalls": 470, + "modules.realpath.cacheHits": 348, + "modules.realpath.calls": 426, + "modules.realpath.systemCalls": 78, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 179.938042, + "initialEvaluation": 0.15079199999999998, + "loaderInitialization": 1.565458, + "processConfiguration": 0.285, + "queueDelay": 0.4465, + "resultFormatting": 0.022833, + "runtimeCreation": 0.463209, + "teardown": 11.516667, + "transportWiring": 0.239833, + "userAwait": 408.5785, + "wrapperPreparation": 0.019458 + }, + "totalMs": 603.254792, + "version": 1 + }, + "stderr": "", + "stdout": "10.9.2\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 25, + "success": true, + "wallMs": 605.124042 + }, + { + "cache": "cold", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 4278.277000000002, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 2, + "filesystem.close.success": 2, + "filesystem.open.calls": 8, + "filesystem.open.notFound": 6, + "filesystem.open.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 1, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 55, + "filesystem.stat.notFound": 16, + "filesystem.stat.success": 39, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 182.820375, + "initialEvaluation": 0.156708, + "loaderInitialization": 1.8025, + "processConfiguration": 0.213459, + "queueDelay": 0.486958, + "resultFormatting": 0.101375, + "runtimeCreation": 0.515916, + "teardown": 24.854791, + "transportWiring": 0.161333, + "userAwait": 4162.305792, + "wrapperPreparation": 0.019667 + }, + "totalMs": 4373.472707999999, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types%2flodash-es 19ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 26, + "success": true, + "wallMs": 4375.674625000001 + }, + { + "cache": "warm", + "installed": false, + "localHttpRequests": 1, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "processCpuMs": 4093.161999999953, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 4, + "filesystem.close.success": 4, + "filesystem.fstat.calls": 1, + "filesystem.fstat.success": 1, + "filesystem.open.calls": 9, + "filesystem.open.notFound": 5, + "filesystem.open.success": 4, + "filesystem.read.bytes": 510, + "filesystem.read.calls": 2, + "filesystem.read.success": 2, + "filesystem.readFileNative.bytes": 2247677, + "filesystem.readFileNative.calls": 543, + "filesystem.readFileNative.notFound": 67, + "filesystem.readFileNative.success": 476, + "filesystem.readdir.calls": 1, + "filesystem.readdir.entries": 2, + "filesystem.readdir.success": 1, + "filesystem.realpath.calls": 477, + "filesystem.realpath.success": 477, + "filesystem.stat.calls": 47, + "filesystem.stat.notFound": 6, + "filesystem.stat.success": 41, + "modules.classificationProbe.cacheHits": 25, + "modules.classificationProbe.calls": 25, + "modules.classificationProbe.found": 25, + "modules.classificationProbe.sessionCacheHits": 25, + "modules.classificationProbe.sessionCacheHitsFound": 25, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 1754, + "modules.fileProbe.cacheHitsMissing": 1512, + "modules.fileProbe.calls": 6667, + "modules.fileProbe.found": 679, + "modules.fileProbe.missing": 5988, + "modules.fileProbe.sessionCacheHits": 242, + "modules.fileProbe.sessionCacheHitsFound": 168, + "modules.fileProbe.sessionCacheHitsMissing": 74, + "modules.fileProbe.systemCalls": 4913, + "modules.packageJson.bytes": 141249, + "modules.packageJson.cacheHits": 943, + "modules.packageJson.calls": 2828, + "modules.packageJson.negativeCacheEntries": 554, + "modules.packageJson.negativeCacheHits": 1172, + "modules.packageJson.notFound": 596, + "modules.packageJson.reads": 117, + "modules.pathProbe.sessionHits": 268, + "modules.pathProbe.systemCalls": 4922, + "modules.realpath.cacheHits": 3068, + "modules.realpath.calls": 3545, + "modules.realpath.systemCalls": 477, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 177.553417, + "initialEvaluation": 0.141333, + "loaderInitialization": 1.8705, + "processConfiguration": 0.276916, + "queueDelay": 0.302041, + "resultFormatting": 0.083625, + "runtimeCreation": 0.467417, + "teardown": 27.625, + "transportWiring": 0.15170799999999998, + "userAwait": 4072.275, + "wrapperPreparation": 0.018334 + }, + "totalMs": 4280.802624999999, + "version": 1 + }, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types%2flodash-es 24ms (cache updated)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 27, + "success": true, + "wallMs": 4282.550292 + }, + { + "cache": "cold", + "installed": true, + "localHttpRequests": 2, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "processCpuMs": 7624.069000000018, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1037, + "filesystem.open.calls": 1056, + "filesystem.open.notFound": 13, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 2742, + "filesystem.read.calls": 14, + "filesystem.read.success": 14, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 1, + "filesystem.readdir.notFound": 2, + "filesystem.readdir.success": 3, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 89, + "filesystem.stat.notFound": 24, + "filesystem.stat.success": 65, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 182.13725, + "initialEvaluation": 0.171666, + "loaderInitialization": 1.749417, + "processConfiguration": 0.28729200000000005, + "queueDelay": 0.522167, + "resultFormatting": 0.280917, + "runtimeCreation": 0.444541, + "teardown": 44.715958, + "transportWiring": 0.232916, + "userAwait": 8385.572667, + "wrapperPreparation": 0.028459 + }, + "totalMs": 8616.250333, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:54166/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:54166/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types/lodash-es/-/lodash-es-4.17.12.tgz 4000ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:54166/@types/lodash/-/lodash-4.17.12.tgz 4015ms (cache miss)\n", + "stdout": "\nadded 2 packages in 8s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 28, + "success": true, + "wallMs": 8619.312709000002 + }, + { + "cache": "warm", + "installed": true, + "localHttpRequests": 0, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "processCpuMs": 8524.055999999982, + "registry": "local", + "result": { + "overflowed": false, + "profile": { + "counters": { + "filesystem.close.calls": 1043, + "filesystem.close.success": 1043, + "filesystem.fstat.calls": 7, + "filesystem.fstat.success": 7, + "filesystem.lstat.calls": 1037, + "filesystem.lstat.notFound": 1035, + "filesystem.lstat.success": 2, + "filesystem.open.calls": 1054, + "filesystem.open.notFound": 11, + "filesystem.open.success": 1043, + "filesystem.read.bytes": 124193, + "filesystem.read.calls": 17, + "filesystem.read.success": 17, + "filesystem.readFileNative.bytes": 2947289, + "filesystem.readFileNative.calls": 688, + "filesystem.readFileNative.notFound": 73, + "filesystem.readFileNative.success": 615, + "filesystem.readdir.calls": 5, + "filesystem.readdir.entries": 4, + "filesystem.readdir.success": 5, + "filesystem.realpath.calls": 616, + "filesystem.realpath.success": 616, + "filesystem.stat.calls": 66, + "filesystem.stat.notFound": 7, + "filesystem.stat.success": 59, + "modules.classificationProbe.cacheHits": 28, + "modules.classificationProbe.calls": 28, + "modules.classificationProbe.found": 28, + "modules.classificationProbe.sessionCacheHits": 28, + "modules.classificationProbe.sessionCacheHitsFound": 28, + "modules.directoryProbe.cacheHits": 1, + "modules.directoryProbe.calls": 10, + "modules.directoryProbe.found": 2, + "modules.directoryProbe.missing": 8, + "modules.directoryProbe.sessionCacheHits": 1, + "modules.directoryProbe.sessionCacheHitsMissing": 1, + "modules.directoryProbe.systemCalls": 9, + "modules.fileProbe.cacheHits": 2767, + "modules.fileProbe.cacheHitsMissing": 2376, + "modules.fileProbe.calls": 10144, + "modules.fileProbe.found": 908, + "modules.fileProbe.missing": 9236, + "modules.fileProbe.sessionCacheHits": 391, + "modules.fileProbe.sessionCacheHitsFound": 258, + "modules.fileProbe.sessionCacheHitsMissing": 133, + "modules.fileProbe.systemCalls": 7377, + "modules.packageJson.bytes": 170644, + "modules.packageJson.cacheHits": 1298, + "modules.packageJson.calls": 4082, + "modules.packageJson.negativeCacheEntries": 799, + "modules.packageJson.negativeCacheHits": 1798, + "modules.packageJson.notFound": 847, + "modules.packageJson.reads": 139, + "modules.pathProbe.sessionHits": 420, + "modules.pathProbe.systemCalls": 7386, + "modules.realpath.cacheHits": 4391, + "modules.realpath.calls": 5007, + "modules.realpath.systemCalls": 616, + "modules.resolve.calls": 7, + "modules.resolve.missing": 3, + "modules.resolve.specifier.absolute": 1, + "modules.resolve.specifier.package": 2, + "modules.resolve.specifier.packageImport": 2, + "modules.resolve.specifier.relative": 2, + "modules.resolve.success": 4, + "modules.sourceRead.bytes": 20272, + "modules.sourceRead.calls": 6, + "modules.sourceRead.success": 6 + }, + "phasesMs": { + "builtinInitialization": 204.386125, + "initialEvaluation": 0.147292, + "loaderInitialization": 1.419542, + "processConfiguration": 0.233333, + "queueDelay": 0.332875, + "resultFormatting": 0.01675, + "runtimeCreation": 0.4415, + "teardown": 38.119125, + "transportWiring": 0.156833, + "userAwait": 10454.547458, + "wrapperPreparation": 0.01975 + }, + "totalMs": 10699.854167, + "version": 1 + }, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:54166/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:54166/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 9s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 29, + "success": true, + "wallMs": 10702.096459 + } + ], + "schema": "npm-metadata-v1", + "target": "p3" +} diff --git a/tests/npm_metadata/results/2026-09-24-release-cache-followups.md b/tests/npm_metadata/results/2026-09-24-release-cache-followups.md new file mode 100644 index 00000000..79eb016e --- /dev/null +++ b/tests/npm_metadata/results/2026-09-24-release-cache-followups.md @@ -0,0 +1,242 @@ +# npm release-cache follow-ups — 2026-09-24 + +This report continues the loader-cache work documented in +`2026-09-21-cache-experiments.md`, but evaluates production `normal` components +with matched host/P2/P3 release builds. Only the final raw P2/P3 pair is +retained. Intermediate and rejected candidates are summarized here rather than +kept sample by sample. + +The pre-optimization release pair was measured at `fae34bd9`. The retained +source revision is `831632c61e49eedb69b635f25f75f5bf5c89f6b3`. + +## Retained loader realpath directory prefixes + +Revision `831632c6` extends the loader-only positive realpath cache with known +non-symlink directory prefixes. Repeated module resolutions can start below +already confirmed package-directory ancestors instead of walking every segment +again. Public `node:fs` realpath APIs remain uncached, CommonJS and ESM retain +separate loader cache domains, and preserve-symlink paths continue to bypass +canonicalization. + +Five-sample release measurements against the original production pair showed: + +| Target / workload | Original Wasm median | Prefix-cache Wasm median | Change | +| --- | ---: | ---: | ---: | +| P2 cold metadata | 1,332.059 ms | 1,069.307 ms | -262.752 ms (-19.7%) | +| P3 cold metadata | 1,277.538 ms | 1,052.270 ms | -225.268 ms (-17.6%) | +| P2 warm-tarball `npm ci` | 2,718.971 ms | 2,272.384 ms | -446.587 ms (-16.4%) | +| P3 warm-tarball `npm ci` | 2,503.777 ms | 2,360.249 ms | -143.528 ms (-5.7%) | + +The original and prefix-cache pairs were collected in separate measurement +sessions rather than as an interleaved control/candidate A/B, so these changes +are directional across-session evidence rather than a causal speedup estimate. +A contemporaneous TypeScript production pair also drifted upward: after host +time was subtracted, P2/P3 increased by 146/306 ms cold, 68/68 ms repeated, +and 28/154 ms incremental. The realpath-prefix cache was the only intervening +production change, but the separate-session design cannot distinguish a +workload effect from machine drift. The cache's deterministic path-work +reduction and regression coverage remain valid independently of wall time. + +Peak observed linear memory was 55.25 MiB for P2 and 48.25 MiB for P3, or ++4.7% and +0.3% against the original production anchors. Both remain within +the 10% memory gate. + +The runtime regression test verifies reuse for both CommonJS and ESM, separate +cache domains, exact counter reconciliation, fresh Wizer/runtime state, failed +lookup retries, symlink retargeting, preserve-symlink behavior, and uncached +public realpath calls. + +## Final matched release pair + +The retained reports use five iterations, the pinned Node 22.14.0/npm 10.9.2 +tool tree, one deterministic loopback registry, isolated caches and workspaces, +fresh QuickJS execution jobs, and release builds for both host harness and +guest component. A timed warm-tarball job reuses the component instance that +ran its untimed seed; its reported linear-memory high water therefore includes +the seed peak. + +| Target / workload | Host median | Wasm median | Goal status | +| --- | ---: | ---: | --- | +| P2 cold metadata | 156.724 ms | 1,069.307 ms | misses `3x + 0.5s` by 99.136 ms | +| P3 cold metadata | 149.442 ms | 1,052.270 ms | misses `3x + 0.5s` by 103.942 ms | +| P2 warm-tarball `npm ci` | 248.087 ms | 2,272.384 ms | misses `2x + 1s` by 776.209 ms | +| P3 warm-tarball `npm ci` | 231.195 ms | 2,360.249 ms | misses `2x + 1s` by 897.859 ms | + +All 60 host/Wasm samples succeeded without overflow. Local HTTP totals, npm +HTTP log counts, exit status, metadata output, install identities, and unchanged +lockfiles reconciled. The repository report validator accepted the pair against +the retained source inputs. + +Retained raw reports: +[P2](2026-09-24-release-p2-macos-aarch64.json) and +[P3](2026-09-24-release-p3-macos-aarch64.json). + +## Native filesystem attribution + +A temporary P2 diagnostic timed the bodies of the public native filesystem +operations without retaining instrumentation in the product. In the +counter-heavy profiling build, warm-tarball `npm ci` spent 806.419 ms of a +6,373.474 ms wall time (12.7%) inside those bodies; the cold local-registry seed +spent 907.101 ms of 6,477.023 ms (14.0%). The warm breakdown was 326.493 ms in +675 whole-file reads, 195.741 ms in 1,054 opens, 109.207 ms in 1,037 `lstat` +calls, 107.938 ms in 1,058 writes, 46.618 ms in 1,043 closes, and 20.423 ms in +the remaining timed operations. The 941,466 written bytes and 2,911,600 read +bytes were modest; loader realpath calls were outside these timers. + +The instrumented wall times are not comparable with the production release +rows. Within this diagnostic, the public native filesystem-operation bodies +were a minority of warm-`ci` wall time. That observation does not establish an +attainable production speedup or assign the remaining time to a specific +subsystem; it only deprioritizes isolated operation-body tuning relative to +broader execution and cross-layer candidates. The temporary counters and raw +diagnostic report are not retained. + +## Production CommonJS loading attribution + +A second temporary P2 diagnostic kept the production `normal` capability set +and added aggregate timers around CommonJS source preparation, QuickJS wrapper +compilation, and the synchronous module-loading call tree. Five matched release +iterations loaded 461 wrappers (2,182,287 source bytes) for cold metadata and +599 wrappers (2,899,812 bytes) for warm-tarball `npm ci`. Median wrapper +compilation was 111.432/151.372 ms and the Rust source-rewrite pass was only +23.938/31.945 ms for metadata/`ci` respectively. + +The instrumented medians were 1,169.805 ms for metadata and 2,568.851 ms for +warm-tarball `ci`, so they are not substituted for the retained production +rows. Within those runs, builtin initialization was about 97--99 ms and the +user-work phase was 1,052.916/2,441.290 ms. The synchronous CommonJS-loading +envelope accounted for 1,003.031 ms on metadata and 1,441.491 ms on `ci`. +Because a parent frame includes a child's rewrite and compile work before the +child execution frame begins, that envelope is deliberately treated as a +module-graph total rather than added to the separate compile/rewrite figures. + +The work was broad rather than dominated by one source file: the largest +per-file loading charge was 46.487 ms for `debug/src/node.js` on metadata and +42.810 ms for a nested `pacote/lib/fetcher.js` on `ci`; the largest individual +wrapper compilation was only 3.176/3.078 ms. No single source file dominates; +excluding package-level concentration would require separate per-package +aggregation. The total compilation time also bounds a perfect external-module +compile cache at roughly 111/151 ms on these fixtures: potentially enough to +close the small metadata target miss, but not the remaining `npm ci` gap by +itself. The instrumentation and raw diagnostic report were removed. + +## Current-release npm phase attribution + +A temporary production-component P2 pass paired five traced and five untraced +warm-tarball `npm ci` samples. npm's own `--timing --silent` report placed the +untraced median at 2,389.985 ms versus 279.652 ms on the host. The npm-owned +timer covered 2,157 ms versus 225 ms on the host. Within it, `command:ci` was +947 ms versus 104 ms, `reify` was 940 ms versus 97 ms, and `reify:unpack` was +930 ms versus 93 ms. The inner pre/post-npm residual was 115.973 ms and the +outer execution/export envelope was 117.739 ms. Both are below the roughly +194-ms 25%-of-gap screening value and well below the separate roughly 400-ms +actionable-owner gate for `ci`. + +The existing synchronous `module.require` diagnostics channel observed exactly +1,727 calls per traced sample with zero stack mismatches or unfinished frames. +The median root CommonJS graph envelope was 1,387.716 ms. Trace-on median wall +time was 7.8% above the paired control, low enough to use the trace for +directional package ranking but not as a replacement baseline. Package +ownership was broad: the largest median additive self charges +were `sigstore` at 122.3 ms, `semver` at 79.2 ms, and +`@npmcli/arborist` at 67.3 ms. No package crossed even the 194-ms screening +value. +This deprioritizes another package-specific loader change while confirming that +broad CommonJS module loading and npm's `reify`/`unpack` work are large measured +envelopes. The trace did not separate startup from command-time lazy loads, and +the npm timers did not split archive processing from filesystem work. + +One follow-up tested the hottest cheap-looking extraction hypothesis. It kept +public asynchronous `fs.lstat` behavior but delivered native `ENOENT` results +to the callback without throwing and catching a synchronous JavaScript +exception first. The adjacent five-sample P2 comparison worsened host-adjusted +warm-`ci` median overhead from 2,148 to 2,287 ms and widened the tails, so the +candidate was rejected and reverted. The diagnostic code and raw reports were +not retained. + +## Deferred Binaryen post-link candidate + +A temporary P2 prototype ran Binaryen `wasm-opt -O3` over the large embedded +core module after Wizer, limited to four workers. Relative to an immediately +adjacent five-sample control, it reduced the optimized npm component from +13,635,445 to 12,571,350 bytes (-7.8%). Host-adjusted metadata overhead +improved from 897.689 to 881.841 ms (-15.847 ms, -1.8%), and warm-tarball +`npm ci` overhead improved from 2,352.390 to 2,250.215 ms (-102.175 ms, +-4.3%). The candidate did not increase the observed memory high-water mark. + +The optimization is not retained because the prototype depended on a system +`wasm-opt` binary that the CLI, CI, and release artifacts do not currently +provide. A production version needs an explicit cross-platform integration and +distribution decision, P2/P3 semantic coverage, and release-binary size/build +cost evaluation; GOL-661 tracks that work. The temporary implementation and raw +reports were removed. + +## Rejected candidates + +### Missing CommonJS path classifications + +Candidate `59146d15` let an outer CommonJS resolution graph retain missing file +classifications. It reduced native file probes by 3.7% for `npm --version`, +13.5% for `npm view`, and 17.4% for `npm ci`. An immediate P2 control showed a +35 ms metadata-overhead reduction and a neutral `npm ci` median. + +The candidate was nevertheless rejected after source review. Node 22.14's CJS +loader stores a `Module._stat` result only when the filesystem probe succeeds; +missing results are deliberately retried. Our graph cache was owned by one +`RuntimeServices`, while filesystem invalidation also reached only that runtime. +A file created by the host or a sibling runtime sharing the same mount could +therefore remain invisible to the first runtime until its outer graph ended. +The local write/retry test could not detect this because the same runtime's +`node:fs` mutation cleared its own cache. + +The source and candidate-specific evidence were reverted with normal commits. +The measured SHA remains in history, but its raw reports are not retained. + +### Other rejected experiments + +- Precompiling the full built-in JavaScript graph reduced initialization from + about 90 ms to 12–14 ms, but embedded about 4.23 MiB of bytecode and raised + observed metadata memory from about 25.9 MiB to 35 MiB and warm-`ci` memory + from about 57.9 MiB to 67.9 MiB. That exceeded the memory gate. +- An arbitrary top-ten bytecode subset was not dependency-closed. A valid + single-module streams subset added about 186 KiB without a meaningful + initialization improvement. +- Lazily registering built-ins reduced initial setup to roughly 63–65 ms, but + npm still loaded 7 modules for `--version` and 20–22 for `view`/`ci`. The + work moved into the measured hot path, and the TypeScript release candidate + failed its memory contract. +- Disabling QuickJS C assertions and dump scaffolding made TypeScript 2–6% + faster in an adjacent P2 comparison and reduced component size, but the clean + npm A/B/A leg increased host-adjusted metadata overhead from 966.626 to + 1,072.388 ms (+105.762 ms, +10.9%). Warm-tarball `npm ci` was neutral + (2,265.541 versus 2,253.981 ms overhead). The global feature was reverted + because the metadata regression consumes the remaining target margin. +- An upstream-isolated variant removed only inactive QuickJS dump code while + retaining every assertion. It kept the TypeScript and size improvements but + made npm metadata overhead 159 ms slower than the same adjacent control; + warm-tarball `npm ci` remained neutral within noise. This narrows the split + to dump-code removal/code layout rather than assertion evaluation. +- Borrowing already normalized absolute paths avoided some Rust allocation, but + the correctness candidate was flat to slower in one-sample npm measurements. + +All rejected prototypes were absent from the retained revision. + +## Reproduction + +From a clean checkout of `831632c6` with the pinned Node/npm toolchain on +`PATH`: + +```sh +CARGO_BUILD_JOBS=4 NPM_METADATA_RUN=1 NPM_METADATA_RELEASE_BASELINE=1 \ + NPM_METADATA_ITERATIONS=5 NPM_METADATA_REPORT=/tmp/npm-release-p2.json \ + NPM_METADATA_SOURCE_ROOT="$PWD" \ + tools/dev-test.sh p2 release npm_metadata '' + +CARGO_BUILD_JOBS=4 NPM_METADATA_RUN=1 NPM_METADATA_RELEASE_BASELINE=1 \ + NPM_METADATA_ITERATIONS=5 NPM_METADATA_REPORT=/tmp/npm-release-p3.json \ + NPM_METADATA_SOURCE_ROOT="$PWD" \ + tools/dev-test.sh p3 release npm_metadata '' +``` + +Run the commands serially. The local coordination wrapper used during +development also serialized Cargo execution; it did not change test semantics. diff --git a/tests/npm_metadata/results/2026-09-24-release-p2-macos-aarch64.json b/tests/npm_metadata/results/2026-09-24-release-p2-macos-aarch64.json new file mode 100644 index 00000000..fceff2fc --- /dev/null +++ b/tests/npm_metadata/results/2026-09-24-release-p2-macos-aarch64.json @@ -0,0 +1,1403 @@ +{ + "component": { + "blake3": "2ecec79431ab31ba172c1fba78beea000af12d6e1b23ffe97ebc94ac41c77125", + "buildMs": 16425.686875, + "bytes": 13635500, + "initialPrepareMs": 245.510958, + "path": "tmp/rt-target/wasm32-wasip2/release/npm_compat.optimized.wasm" + }, + "environment": { + "arch": "aarch64", + "artifactCache": null, + "cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)", + "commitHint": "831632c61e49eedb69b635f25f75f5bf5c89f6b3", + "componentCargoProfile": "release", + "componentFeatures": "normal", + "dirty": false, + "harnessCargoProfile": "release", + "hostDependencyGraph": { + "kind": "p2-shadow", + "lockBlake3": "ff03c4e062c993240170d442de1c18d6cb17f5f85cea7d65950b884bbb9f84af" + }, + "iterations": 5, + "lockedBuilds": "1", + "node": "22.14.0", + "npm": "10.9.2", + "os": "macos", + "preparedComponentCache": null, + "rustc": "rustc 1.98.1 (48a229cea 2026-09-01)", + "unoptimized": null, + "wasmtimeCache": null + }, + "fixture": { + "name": "small-local-registry", + "npmTool": { + "algorithm": "blake3-composite-v1", + "blake3": "5a2e6099c2717eef30fa0467936a7be99b9e7de63eb8c33281684b3e37eae3dc", + "bytes": 11690702, + "files": 2379 + }, + "packageJsonBlake3": "1fc7663bd0103a1e80d907f780d65fc513d2dc2295060687628ca3213351fdfa", + "packageLockBlake3": "ce2ad9fa112f0336d059e41e8f7e5e81446a4ca93678b68252545683c094fa03", + "packages": [ + "@types/lodash", + "@types/lodash-es" + ], + "seriesArguments": { + "ciSeed": [ + "ci", + "--install-links", + "--ignore-scripts", + "--no-audit", + "--no-fund", + "--registry=", + "--loglevel=http" + ], + "ciTimed": [ + "ci", + "--offline", + "--install-links", + "--ignore-scripts", + "--no-audit", + "--no-fund", + "--registry=", + "--loglevel=http" + ], + "metadata": [ + "view", + "@types/lodash-es@4.17.12", + "version", + "--registry=", + "--prefer-offline", + "--loglevel=http" + ] + }, + "tarballs": { + "@types/lodash": { + "blake3": "e66545d6cdbf39beefffca3ca2abf2fdd632ae1cf77e2126adf7741e2a0075f2", + "bytes": 101949 + }, + "@types/lodash-es": { + "blake3": "490761bfe4d298251c68a944859dc730fb76f986a624544693290104464ca050", + "bytes": 19502 + } + }, + "version": "4.17.12" + }, + "host": { + "metadata": { + "cold": { + "iterations": 5, + "medianMs": 156.7235, + "p95Ms": 194.663833, + "samples": [ + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http fetch GET 200 http://127.0.0.1:51066/@types%2flodash-es 12ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "host", + "success": true, + "wallMs": 194.663833 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http fetch GET 200 http://127.0.0.1:51066/@types%2flodash-es 13ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "host", + "success": true, + "wallMs": 149.434083 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http fetch GET 200 http://127.0.0.1:51066/@types%2flodash-es 12ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "host", + "success": true, + "wallMs": 144.748875 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http fetch GET 200 http://127.0.0.1:51066/@types%2flodash-es 11ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "host", + "success": true, + "wallMs": 162.459667 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http fetch GET 200 http://127.0.0.1:51066/@types%2flodash-es 12ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "host", + "success": true, + "wallMs": 156.7235 + } + ], + "throughputPerSecond": 6.187889385160642 + } + }, + "warmTarballCi": { + "seeds": { + "iterations": 5, + "medianMs": 247.97549999999998, + "p95Ms": 263.932791, + "samples": [ + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 1ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 30ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 75ms (cache miss)\n", + "stdout": "\nadded 2 packages in 212ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "host", + "success": true, + "wallMs": 263.932791 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 28ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 66ms (cache miss)\n", + "stdout": "\nadded 2 packages in 184ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "host", + "success": true, + "wallMs": 231.875708 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 1ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 28ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 64ms (cache miss)\n", + "stdout": "\nadded 2 packages in 180ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "host", + "success": true, + "wallMs": 227.741625 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 31ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 70ms (cache miss)\n", + "stdout": "\nadded 2 packages in 199ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "host", + "success": true, + "wallMs": 247.97549999999998 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 31ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 71ms (cache miss)\n", + "stdout": "\nadded 2 packages in 205ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "host", + "success": true, + "wallMs": 254.894875 + } + ], + "throughputPerSecond": 4.076905110504027 + }, + "timed": { + "iterations": 5, + "medianMs": 248.08725, + "p95Ms": 251.227208, + "samples": [ + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 199ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "host", + "success": true, + "wallMs": 251.227208 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 181ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "host", + "success": true, + "wallMs": 232.750333 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 177ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "host", + "success": true, + "wallMs": 226.661709 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 199ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "host", + "success": true, + "wallMs": 250.811666 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 195ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "host", + "success": true, + "wallMs": 248.08725 + } + ], + "throughputPerSecond": 4.133809201354296 + } + } + }, + "inputs": { + "algorithm": "blake3-composite-v1", + "benchmarkHash": "435283613a522c3b8097d7688192712458b1095ed8400f7e4b83236e487e2c9f", + "buildHash": "4ca764fa04184ebf0072026d3f32fea65da05868f3d4ab43359ec3cb30dc6d88" + }, + "memory": { + "interpretation": "per-sample Wasm linear-memory values are monotone instance high-water observations read after the timed invocation", + "maxWasmLinearMemoryHighWaterBytes": 57933824, + "series": { + "ciSeeds": { + "linearMemoryHighWater": { + "maximumBytes": 37748736, + "minimumBytes": 37748736, + "samples": [ + 37748736, + 37748736, + 37748736, + 37748736, + 37748736 + ], + "variationBytes": 0 + } + }, + "ciWarmTarball": { + "linearMemoryHighWater": { + "maximumBytes": 57933824, + "minimumBytes": 52887552, + "samples": [ + 57933824, + 57933824, + 52887552, + 52887552, + 57933824 + ], + "variationBytes": 5046272 + } + }, + "metadataCold": { + "linearMemoryHighWater": { + "maximumBytes": 25886720, + "minimumBytes": 25886720, + "samples": [ + 25886720, + 25886720, + 25886720, + 25886720, + 25886720 + ], + "variationBytes": 0 + } + } + } + }, + "notes": [ + "manual local release measurement; no CI timing threshold", + "production normal feature; profiling-only instrumentation disabled", + "host and Wasm use the same loopback registry and pinned tarball bytes", + "each iteration has independent host and Wasm workspaces and caches", + "timed npm ci runs offline after an untimed local-registry seed and external node_modules removal" + ], + "schema": "npm-metadata-v2", + "target": "p2", + "timingBoundary": { + "host": "Node process spawn through exit; workspace preparation, cache seeding, and install-tree cleanup are excluded", + "wasm": "run export invocation through result; component instantiation, workspace preparation, cache seeding, install-tree cleanup, and linear-memory observation are excluded" + }, + "wasm": { + "metadata": { + "cold": { + "iterations": 5, + "medianMs": 1069.3069580000001, + "p95Ms": 1230.496958, + "samples": [ + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": 25886720, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types%2flodash-es 8ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "wasm", + "success": true, + "wallMs": 1106.537292 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": 25886720, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types%2flodash-es 7ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "wasm", + "success": true, + "wallMs": 1014.0134999999999 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": 25886720, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types%2flodash-es 7ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "wasm", + "success": true, + "wallMs": 1013.053958 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": 25886720, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types%2flodash-es 8ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "wasm", + "success": true, + "wallMs": 1230.496958 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": 25886720, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types%2flodash-es 7ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "wasm", + "success": true, + "wallMs": 1069.3069580000001 + } + ], + "throughputPerSecond": 0.920232639832139 + } + }, + "warmTarballCi": { + "seeds": { + "iterations": 5, + "medianMs": 2398.153083, + "p95Ms": 2756.751958, + "samples": [ + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 37748736, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 330ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 899ms (cache miss)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "wasm", + "success": true, + "wallMs": 2306.6340419999997 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 37748736, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 316ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 862ms (cache miss)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "wasm", + "success": true, + "wallMs": 2213.4701250000003 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 37748736, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 1ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 364ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 1039ms (cache miss)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "wasm", + "success": true, + "wallMs": 2496.1249580000003 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 37748736, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 389ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 1039ms (cache miss)\n", + "stdout": "\nadded 2 packages in 3s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "wasm", + "success": true, + "wallMs": 2756.751958 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 37748736, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 339ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 903ms (cache miss)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "wasm", + "success": true, + "wallMs": 2398.153083 + } + ], + "throughputPerSecond": 0.4108080587894162 + }, + "timed": { + "iterations": 5, + "medianMs": 2272.384, + "p95Ms": 2594.0852090000003, + "samples": [ + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 57933824, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "wasm", + "success": true, + "wallMs": 2272.384 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 57933824, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "wasm", + "success": true, + "wallMs": 2203.51 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 52887552, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "wasm", + "success": true, + "wallMs": 2594.0852090000003 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 52887552, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "wasm", + "success": true, + "wallMs": 2536.117791 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 57933824, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "874dc797172a1dd99f70457cd0aa7757916030dc154e7258df5dd1bbbde58c53", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51066/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51066/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "wasm", + "success": true, + "wallMs": 2266.711959 + } + ], + "throughputPerSecond": 0.421130333796016 + } + } + } +} diff --git a/tests/npm_metadata/results/2026-09-24-release-p3-macos-aarch64.json b/tests/npm_metadata/results/2026-09-24-release-p3-macos-aarch64.json new file mode 100644 index 00000000..0dfce541 --- /dev/null +++ b/tests/npm_metadata/results/2026-09-24-release-p3-macos-aarch64.json @@ -0,0 +1,1403 @@ +{ + "component": { + "blake3": "abfe2cd97d981ac37bfe053538a05452df76b04884ff9b7739fb8efb99c45b7a", + "buildMs": 15563.222749999999, + "bytes": 13567671, + "initialPrepareMs": 246.506375, + "path": "tmp/rt-target-p3/wasm32-wasip2/release/npm_compat.optimized.wasm" + }, + "environment": { + "arch": "aarch64", + "artifactCache": null, + "cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)", + "commitHint": "831632c61e49eedb69b635f25f75f5bf5c89f6b3", + "componentCargoProfile": "release", + "componentFeatures": "normal", + "dirty": false, + "harnessCargoProfile": "release", + "hostDependencyGraph": { + "kind": "workspace", + "lockBlake3": "3720211627f9e5727495f9adaea5bb2a1cae8d885b31c3c7bb86aa6a51493d73" + }, + "iterations": 5, + "lockedBuilds": "1", + "node": "22.14.0", + "npm": "10.9.2", + "os": "macos", + "preparedComponentCache": null, + "rustc": "rustc 1.98.1 (48a229cea 2026-09-01)", + "unoptimized": null, + "wasmtimeCache": null + }, + "fixture": { + "name": "small-local-registry", + "npmTool": { + "algorithm": "blake3-composite-v1", + "blake3": "5a2e6099c2717eef30fa0467936a7be99b9e7de63eb8c33281684b3e37eae3dc", + "bytes": 11690702, + "files": 2379 + }, + "packageJsonBlake3": "1fc7663bd0103a1e80d907f780d65fc513d2dc2295060687628ca3213351fdfa", + "packageLockBlake3": "ce2ad9fa112f0336d059e41e8f7e5e81446a4ca93678b68252545683c094fa03", + "packages": [ + "@types/lodash", + "@types/lodash-es" + ], + "seriesArguments": { + "ciSeed": [ + "ci", + "--install-links", + "--ignore-scripts", + "--no-audit", + "--no-fund", + "--registry=", + "--loglevel=http" + ], + "ciTimed": [ + "ci", + "--offline", + "--install-links", + "--ignore-scripts", + "--no-audit", + "--no-fund", + "--registry=", + "--loglevel=http" + ], + "metadata": [ + "view", + "@types/lodash-es@4.17.12", + "version", + "--registry=", + "--prefer-offline", + "--loglevel=http" + ] + }, + "tarballs": { + "@types/lodash": { + "blake3": "e66545d6cdbf39beefffca3ca2abf2fdd632ae1cf77e2126adf7741e2a0075f2", + "bytes": 101949 + }, + "@types/lodash-es": { + "blake3": "490761bfe4d298251c68a944859dc730fb76f986a624544693290104464ca050", + "bytes": 19502 + } + }, + "version": "4.17.12" + }, + "host": { + "metadata": { + "cold": { + "iterations": 5, + "medianMs": 149.442458, + "p95Ms": 176.056458, + "samples": [ + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http fetch GET 200 http://127.0.0.1:51244/@types%2flodash-es 11ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "host", + "success": true, + "wallMs": 176.056458 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http fetch GET 200 http://127.0.0.1:51244/@types%2flodash-es 11ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "host", + "success": true, + "wallMs": 152.185792 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http fetch GET 200 http://127.0.0.1:51244/@types%2flodash-es 11ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "host", + "success": true, + "wallMs": 149.442458 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http fetch GET 200 http://127.0.0.1:51244/@types%2flodash-es 11ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "host", + "success": true, + "wallMs": 145.456375 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http fetch GET 200 http://127.0.0.1:51244/@types%2flodash-es 11ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "host", + "success": true, + "wallMs": 143.175584 + } + ], + "throughputPerSecond": 6.524717803116762 + } + }, + "warmTarballCi": { + "seeds": { + "iterations": 5, + "medianMs": 242.757208, + "p95Ms": 244.091917, + "samples": [ + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 29ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 68ms (cache miss)\n", + "stdout": "\nadded 2 packages in 195ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "host", + "success": true, + "wallMs": 241.58225 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 29ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 70ms (cache miss)\n", + "stdout": "\nadded 2 packages in 194ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "host", + "success": true, + "wallMs": 242.757208 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 29ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 67ms (cache miss)\n", + "stdout": "\nadded 2 packages in 196ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "host", + "success": true, + "wallMs": 244.091917 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 1ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 28ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 76ms (cache miss)\n", + "stdout": "\nadded 2 packages in 197ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "host", + "success": true, + "wallMs": 244.02475 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 30ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 67ms (cache miss)\n", + "stdout": "\nadded 2 packages in 186ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "host", + "success": true, + "wallMs": 234.122042 + } + ], + "throughputPerSecond": 4.143950335544236 + }, + "timed": { + "iterations": 5, + "medianMs": 231.194834, + "p95Ms": 251.44191700000002, + "samples": [ + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 1ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 186ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "host", + "success": true, + "wallMs": 236.385792 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 201ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "host", + "success": true, + "wallMs": 251.44191700000002 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 176ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "host", + "success": true, + "wallMs": 225.16958300000002 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 180ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "host", + "success": true, + "wallMs": 228.966917 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": null, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 180ms\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "host", + "success": true, + "wallMs": 231.194834 + } + ], + "throughputPerSecond": 4.261996725707377 + } + } + }, + "inputs": { + "algorithm": "blake3-composite-v1", + "benchmarkHash": "435283613a522c3b8097d7688192712458b1095ed8400f7e4b83236e487e2c9f", + "buildHash": "4ca764fa04184ebf0072026d3f32fea65da05868f3d4ab43359ec3cb30dc6d88" + }, + "memory": { + "interpretation": "per-sample Wasm linear-memory values are monotone instance high-water observations read after the timed invocation", + "maxWasmLinearMemoryHighWaterBytes": 50593792, + "series": { + "ciSeeds": { + "linearMemoryHighWater": { + "maximumBytes": 42401792, + "minimumBytes": 42401792, + "samples": [ + 42401792, + 42401792, + 42401792, + 42401792, + 42401792 + ], + "variationBytes": 0 + } + }, + "ciWarmTarball": { + "linearMemoryHighWater": { + "maximumBytes": 50593792, + "minimumBytes": 50593792, + "samples": [ + 50593792, + 50593792, + 50593792, + 50593792, + 50593792 + ], + "variationBytes": 0 + } + }, + "metadataCold": { + "linearMemoryHighWater": { + "maximumBytes": 25952256, + "minimumBytes": 25952256, + "samples": [ + 25952256, + 25952256, + 25952256, + 25952256, + 25952256 + ], + "variationBytes": 0 + } + } + } + }, + "notes": [ + "manual local release measurement; no CI timing threshold", + "production normal feature; profiling-only instrumentation disabled", + "host and Wasm use the same loopback registry and pinned tarball bytes", + "each iteration has independent host and Wasm workspaces and caches", + "timed npm ci runs offline after an untimed local-registry seed and external node_modules removal" + ], + "schema": "npm-metadata-v2", + "target": "p3", + "timingBoundary": { + "host": "Node process spawn through exit; workspace preparation, cache seeding, and install-tree cleanup are excluded", + "wasm": "run export invocation through result; component instantiation, workspace preparation, cache seeding, install-tree cleanup, and linear-memory observation are excluded" + }, + "wasm": { + "metadata": { + "cold": { + "iterations": 5, + "medianMs": 1052.269709, + "p95Ms": 1812.72775, + "samples": [ + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": 25952256, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types%2flodash-es 9ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "wasm", + "success": true, + "wallMs": 1011.9325830000001 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": 25952256, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types%2flodash-es 9ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "wasm", + "success": true, + "wallMs": 1812.72775 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": 25952256, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types%2flodash-es 7ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "wasm", + "success": true, + "wallMs": 1052.269709 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": 25952256, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types%2flodash-es 8ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "wasm", + "success": true, + "wallMs": 1218.3826660000002 + }, + { + "cache": "cold", + "installed": null, + "linearMemoryHighWaterBytes": 25952256, + "localHttpRequests": { + "metadata": 1, + "tarballs": 0, + "total": 1, + "unexpected": 0 + }, + "lockfileBlake3": null, + "lockfileUnchanged": null, + "npmHttpCacheLogLines": 0, + "npmHttpFetchLogLines": 1, + "operation": "view", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "Warning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types%2flodash-es 8ms (cache miss)\n", + "stdout": "4.17.12\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "wasm", + "success": true, + "wallMs": 1018.736708 + } + ], + "throughputPerSecond": 0.8177886143535873 + } + }, + "warmTarballCi": { + "seeds": { + "iterations": 5, + "medianMs": 2342.0755, + "p95Ms": 2550.099375, + "samples": [ + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 42401792, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 871ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 875ms (cache miss)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "wasm", + "success": true, + "wallMs": 2222.9368329999998 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 42401792, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 914ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 918ms (cache miss)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "wasm", + "success": true, + "wallMs": 2342.0755 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 42401792, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 1ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 970ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 975ms (cache miss)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "wasm", + "success": true, + "wallMs": 2360.2480840000003 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 42401792, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 982ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 989ms (cache miss)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "wasm", + "success": true, + "wallMs": 2550.099375 + }, + { + "cache": "seed", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 42401792, + "localHttpRequests": { + "metadata": 0, + "tarballs": 2, + "total": 2, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 2, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\nWarning [WASM_RQUICKJS_HTTP_AGENT_TRANSPORT]: Custom node:http Agent createConnection hooks are ignored; outbound requests use wasi:http\n at emitWarning (node:process:873:19)\n at _initializeCustomConnection (node:http:1624:17)\n at ClientRequest (node:http:1542:42)\n at request (node:http:2264:16)\n at /tool/npm/node_modules/minipass-fetch/lib/index.js:98:22\n at Promise (native)\n at fetch (/tool/npm/node_modules/minipass-fetch/lib/index.js:55:14)\n at /tool/npm/node_modules/make-fetch-happen/lib/remote.js:59:29\n at /tool/npm/node_modules/promise-retry/index.js:29:27\n at apply (native)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 872ms (cache miss)\nnpm http fetch GET 200 http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 876ms (cache miss)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "wasm", + "success": true, + "wallMs": 2246.158167 + } + ], + "throughputPerSecond": 0.42656591215311895 + }, + "timed": { + "iterations": 5, + "medianMs": 2360.2491250000003, + "p95Ms": 2451.358042, + "samples": [ + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 50593792, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 0, + "side": "wasm", + "success": true, + "wallMs": 2221.401541 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 50593792, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 1, + "side": "wasm", + "success": true, + "wallMs": 2445.707708 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 50593792, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 2, + "side": "wasm", + "success": true, + "wallMs": 2451.358042 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 50593792, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 1ms (cache hit)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 3, + "side": "wasm", + "success": true, + "wallMs": 2360.2491250000003 + }, + { + "cache": "warm-tarball", + "installed": { + "complete": true, + "packages": { + "@types/lodash": { + "name": "@types/lodash", + "version": "4.17.12" + }, + "@types/lodash-es": { + "name": "@types/lodash-es", + "version": "4.17.12" + } + }, + "topLevel": [ + "lodash", + "lodash-es" + ] + }, + "linearMemoryHighWaterBytes": 50593792, + "localHttpRequests": { + "metadata": 0, + "tarballs": 0, + "total": 0, + "unexpected": 0 + }, + "lockfileBlake3": "75a4fc5579ef39e1d6a513df48660592a762f57e8ddf19743f9b4fea78c3211c", + "lockfileUnchanged": true, + "npmHttpCacheLogLines": 2, + "npmHttpFetchLogLines": 0, + "operation": "ci", + "registry": "local", + "result": { + "overflowed": false, + "stderr": "npm http cache @types/lodash-es@http://127.0.0.1:51244/@types/lodash-es/-/lodash-es-4.17.12.tgz 0ms (cache hit)\nnpm http cache @types/lodash@http://127.0.0.1:51244/@types/lodash/-/lodash-4.17.12.tgz 0ms (cache hit)\n", + "stdout": "\nadded 2 packages in 2s\n", + "value": { + "exitCode": 0 + } + }, + "sequence": 4, + "side": "wasm", + "success": true, + "wallMs": 2257.9275000000002 + } + ], + "throughputPerSecond": 0.4260161623531699 + } + } + } +} diff --git a/tests/npm_metadata/results/README.md b/tests/npm_metadata/results/README.md new file mode 100644 index 00000000..9a4bfffc --- /dev/null +++ b/tests/npm_metadata/results/README.md @@ -0,0 +1,154 @@ +# Manual npm metadata measurements + +## Matched production release baseline + +`tests/npm_metadata/run.sh --release` produces the checked production evidence +pair. It uses the pinned Node 22.14.0/npm 10.9.2 toolchain, locked host and guest +release builds, and the production `normal` component feature. Five iterations +compare the same deterministic loopback registry on host Node and Wasm: + +- a fresh-root, fresh-cache `npm view @types/lodash-es@4.17.12 version`; and +- `npm ci --offline` after an untimed seed populated an otherwise isolated + tarball cache, with `node_modules` removed outside the timed boundary. + +Each sample records exact output, success/overflow state, authoritative local +registry request counts, npm HTTP log counts, install identities, unchanged +lockfile evidence, and (for Wasm) linear-memory high-water observations captured +outside the timed invocation. Reports also fingerprint the copied npm tool tree, +fixture and tarball bytes, source/build inputs, host dependency graph, component, +profiles, toolchain, and cache settings. Public npmjs.org timings and npm +`--version` startup rows are intentionally excluded from the v2 release schema. + +Run the contract without workloads or network access with: + +```sh +tests/npm_metadata/run.sh --check +tests/npm_metadata/run.sh --check-current \ + tests/npm_metadata/results/2026-09-24-release-p2-macos-aarch64.json \ + tests/npm_metadata/results/2026-09-24-release-p3-macos-aarch64.json +``` + +The currentness command requires Git and `jq`; it recomputes source hashes from +a temporary pristine worktree at the exact revision in `current-reports.txt`. +That revision must already exist in the local clone; the command does not fetch +missing history. + +No `npm-metadata-v2` report is accepted as current unless both target reports +match the source input hashes and form one distinct P2/P3 pair. The dated final +pair and its measured goal status are documented here only after that validation +passes from a clean source commit. `current-reports.txt` pairs that latest pair +with its exact measured source revision for CI currentness selection; +superseded `npm-metadata-v2` pairs remain contract-validated without being +treated as evidence for a later source tree. Earlier v1 and path-trace JSON +remain historical evidence outside this v2 currentness contract. + +### 2026-09-24 retained small-fixture measurement + +The final [P2](2026-09-24-release-p2-macos-aarch64.json) and +[P3](2026-09-24-release-p3-macos-aarch64.json) reports measure exact clean +source revision `831632c61e49eedb69b635f25f75f5bf5c89f6b3`. All 60 host/Wasm +samples succeeded; none overflowed, every registry counter reconciled with zero +unexpected requests, and every `npm ci` produced the exact install tree without +changing the rewritten lockfile. + +| Target / workload | Host median | Wasm median | Wasm / host | Goal ceiling | Status | +| --- | ---: | ---: | ---: | ---: | --- | +| P2 cold metadata | 156.724 ms | 1,069.307 ms | 6.82x | 970.171 ms (`3x + 0.5s`) | misses by 99.136 ms | +| P3 cold metadata | 149.442 ms | 1,052.270 ms | 7.04x | 948.327 ms (`3x + 0.5s`) | misses by 103.942 ms | +| P2 warm-tarball `npm ci` | 248.087 ms | 2,272.384 ms | 9.16x | 1,496.175 ms (`2x + 1s`) | misses by 776.209 ms | +| P3 warm-tarball `npm ci` | 231.195 ms | 2,360.249 ms | 10.21x | 1,462.390 ms (`2x + 1s`) | misses by 897.859 ms | + +Peak observed Wasm linear-memory high-water was 55.25 MiB for P2 and +48.25 MiB for P3. Compared with the pre-optimization production anchors at +revision `fae34bd9` (52.75 MiB and 48.125 MiB), that is +4.7% for P2 and +0.3% +for P3, within the 10% regression gate. The +[follow-up report](2026-09-24-release-cache-followups.md) records the retained +directory-prefix optimization and the measured candidates rejected on memory, +timing, or Node-fidelity grounds. + +## Historical diagnostics + +The dated JSON files are raw observations, not CI pass/fail thresholds. Run one +target at a time with the pinned Node 22.14.0/npm 10.9.2 installation: + +```sh +NPM_METADATA_RUN=1 NPM_METADATA_ITERATIONS=3 NPM_METADATA_REPORT=tests/npm_metadata/results/YYYY-MM-DD-p2.json \ + tools/dev-test.sh p2 standard npm_metadata '' +NPM_METADATA_RUN=1 NPM_METADATA_ITERATIONS=3 NPM_METADATA_REPORT=tests/npm_metadata/results/YYYY-MM-DD-p3.json \ + tools/dev-test.sh p3 standard npm_metadata '' +``` + +Use the explicit `release` profile for a local production-build diagnostic. It +compiles both the host benchmark harness and generated guest component with +Cargo's release profile while retaining the same fresh-state measurement +semantics: + +```sh +NPM_METADATA_RUN=1 NPM_METADATA_ITERATIONS=5 NPM_METADATA_REPORT=/tmp/npm-release-p2.json \ + tools/dev-test.sh p2 release npm_metadata '' +NPM_METADATA_RUN=1 NPM_METADATA_ITERATIONS=5 NPM_METADATA_REPORT=/tmp/npm-release-p3.json \ + tools/dev-test.sh p3 release npm_metadata '' +``` + +The current `npm-metadata-v1` schema does not record enough build provenance to +serve as the checked release baseline. Do not check in or compare these +diagnostic outputs as release evidence until the report records and validates +the host/component profiles, component digest, and build inputs. + +Set `PATH` to the pinned Node installation first. The runner fetches the two +lockfile-pinned tarballs once before timing and serves the same bytes from the +local registry. Each cold invocation gets a fresh component instance, guest +runtime, workspace, and npm cache. Warm rows repeat a fresh execution job with +the same workspace/cache and are always labeled separately. Immutable +Wasmtime component preparation is shared but excluded from per-command timing. +The local registry is a controlled HTTP transport, not a network latency +baseline. Without `NPM_METADATA_RUN=1`, the test target exits without building +the component or using the network. Public npmjs.org results must never be used +as CI timing gates. + +## Reproduce the cold path trace + +The dated trace patch is a measurement tool, not a runtime change. It applies +to the 2026-09-18 baseline revision `9619718a1c444dd490d6075494de91918c712734`, +not to the current branch head. Create a clean worktree at that revision, use +the pinned Node/npm installation, and apply it only for the measurement. It +adds bounded per-job path-frequency counters and emits aggregate counts +without path strings. + +```sh +git worktree add --detach ../wasm-rquickjs-npm-trace-baseline 9619718a1c444dd490d6075494de91918c712734 +cd ../wasm-rquickjs-npm-trace-baseline +git apply --check tests/npm_metadata/results/2026-09-18-trace.patch +git apply tests/npm_metadata/results/2026-09-18-trace.patch +NPM_METADATA_RUN=1 NPM_METADATA_TRACE=1 NPM_METADATA_ITERATIONS=3 \ + NPM_METADATA_REPORT=/tmp/npm-metadata-trace-p2.json \ + tools/dev-test.sh p2 standard npm_metadata '' +NPM_METADATA_RUN=1 NPM_METADATA_TRACE=1 NPM_METADATA_ITERATIONS=3 \ + NPM_METADATA_REPORT=/tmp/npm-metadata-trace-p3.json \ + tools/dev-test.sh p3 standard npm_metadata '' +git apply --reverse tests/npm_metadata/results/2026-09-18-trace.patch +git diff --exit-code -- crates/wasm-rquickjs/skeleton tests/npm_metadata.rs +cd - +git worktree remove ../wasm-rquickjs-npm-trace-baseline +``` + +The two reproduction commands write separate `/tmp` files and do not +overwrite the checked-in observations. Both targets require a local loopback +listener and one pre-timing fetch of the pinned tarballs. The trace has no warm +or public-registry rows, and its timings should not be mixed with the original +baseline. + +## Cache experiments + +The follow-up [cache experiment report](2026-09-21-cache-experiments.md) +records independent and combined five-pair measurements for the graph-scoped +missing `package.json` cache and runtime-scoped positive loader realpath cache. +It also records the final three-iteration P2/P3 candidate after review split +the CommonJS and ESM cache domains. Only the final reviewed P2/P3 raw reports +are retained; the prototype samples remain summarized in the report's +aggregate tables. + +The later [release-cache follow-up](2026-09-24-release-cache-followups.md) +records directory-prefix realpath reuse, the final matched release pair, and +the bytecode/lazy-loading/path-normalization/negative-probe experiments that +were measured and rejected. diff --git a/tests/npm_metadata/results/current-reports.txt b/tests/npm_metadata/results/current-reports.txt new file mode 100644 index 00000000..2ec926d2 --- /dev/null +++ b/tests/npm_metadata/results/current-reports.txt @@ -0,0 +1,2 @@ +831632c61e49eedb69b635f25f75f5bf5c89f6b3 tests/npm_metadata/results/2026-09-24-release-p2-macos-aarch64.json +831632c61e49eedb69b635f25f75f5bf5c89f6b3 tests/npm_metadata/results/2026-09-24-release-p3-macos-aarch64.json diff --git a/tests/npm_metadata/run.sh b/tests/npm_metadata/run.sh new file mode 100755 index 00000000..25b27b2c --- /dev/null +++ b/tests/npm_metadata/run.sh @@ -0,0 +1,141 @@ +#!/bin/sh +set -eu + +repo_root=$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd) +suite_dir="$repo_root/tests/npm_metadata" +results_dir="$suite_dir/results" +iterations=${NPM_METADATA_ITERATIONS:-5} + +if [ "${1:-}" = "--check" ]; then + ( + cd "$repo_root" + NPM_METADATA_VALIDATE_REPORTS=1 \ + NPM_METADATA_SOURCE_ROOT="$repo_root" \ + tools/dev-test.sh p2 standard npm_metadata "" + ) + exit 0 +fi + +if [ "${1:-}" = "--check-current" ]; then + shift + if [ "$#" -eq 0 ]; then + echo "usage: tests/npm_metadata/run.sh --check-current ..." >&2 + exit 2 + fi + + manifest="$results_dir/current-reports.txt" + source_ref= + reports_to_check= + for report in "$@"; do + manifest_report=${report#"$repo_root"/} + manifest_report=${manifest_report#./} + manifest_entry=$(awk -v report="$manifest_report" '$2 == report { print $0 }' "$manifest") + if [ -z "$manifest_entry" ] || [ "$(printf '%s\n' "$manifest_entry" | wc -l | tr -d ' ')" -ne 1 ]; then + echo "current report is not named exactly once in $manifest: $manifest_report" >&2 + exit 2 + fi + report_source_ref=${manifest_entry%% *} + json_source_ref=$(jq -er '.environment.commitHint' "$report") || { + echo "current report has no commit hint: $report" >&2 + exit 2 + } + if [ "$json_source_ref" != "$report_source_ref" ]; then + echo "current report source does not match $manifest: $report" >&2 + exit 2 + fi + if [ -n "$source_ref" ] && [ "$source_ref" != "$report_source_ref" ]; then + echo "current reports name different source revisions" >&2 + exit 2 + fi + source_ref=$report_source_ref + if [ -n "$reports_to_check" ]; then + reports_to_check="$reports_to_check +$manifest_report" + else + reports_to_check=$manifest_report + fi + done + if ! git -C "$repo_root" cat-file -e "$source_ref^{commit}" 2>/dev/null; then + echo "current report source commit is unavailable: $source_ref" >&2 + exit 2 + fi + + source_parent=$(mktemp -d "${TMPDIR:-/tmp}/npm-metadata-current.XXXXXX") + source_root="$source_parent/source" + cleanup_current_source() { + git -C "$repo_root" worktree remove --force "$source_root" >/dev/null 2>&1 || true + rmdir "$source_parent" >/dev/null 2>&1 || true + } + trap cleanup_current_source EXIT HUP INT TERM + git -C "$repo_root" worktree add --quiet --detach "$source_root" "$source_ref" + + ( + cd "$repo_root" + NPM_METADATA_VALIDATE_REPORTS=1 \ + NPM_METADATA_REPORTS_TO_CHECK="$reports_to_check" \ + NPM_METADATA_SOURCE_ROOT="$source_root" \ + tools/dev-test.sh p2 standard npm_metadata "" + ) + exit 0 +fi + +if [ "${1:-}" != "--release" ] || [ "$#" -ne 1 ]; then + echo "usage: tests/npm_metadata/run.sh --release|--check|--check-current ..." >&2 + exit 2 +fi + +node_overrides= +for variable in NODE_COMPILE_CACHE NODE_DEBUG NODE_DEBUG_NATIVE NODE_ENV NODE_INSPECT_RESUME_ON_START NODE_OPTIONS NODE_PATH NODE_PENDING_DEPRECATION; do + if printenv "$variable" >/dev/null 2>&1; then + node_overrides="${node_overrides}${node_overrides:+ }$variable" + fi +done +if [ -n "$node_overrides" ]; then + echo "release measurement rejects inherited Node configuration: $node_overrides" >&2 + exit 2 +fi + +platform=$(node -p 'process.platform') +arch=$(node -p 'process.arch') +case "$platform" in + darwin) platform=macos ;; + win32) platform=windows ;; +esac +case "$arch" in + arm64) arch=aarch64 ;; + x64) arch=x86_64 ;; +esac + +node_version=$(node -p 'process.versions.node') +npm_version=$(npm --version) +if [ "$node_version" != "22.14.0" ] || [ "$npm_version" != "10.9.2" ]; then + echo "npm_metadata requires Node 22.14.0/npm 10.9.2; found $node_version/$npm_version" >&2 + exit 1 +fi + +mkdir -p "$results_dir" +measurement_date=$(date +%Y-%m-%d) +generated_reports="" +for target in p2 p3; do + report="$results_dir/${measurement_date}-release-$target-$platform-$arch.json" + ( + cd "$repo_root" + NPM_METADATA_RUN=1 \ + NPM_METADATA_RELEASE_BASELINE=1 \ + NPM_METADATA_ITERATIONS="$iterations" \ + NPM_METADATA_REPORT="$report" \ + NPM_METADATA_SOURCE_ROOT="$repo_root" \ + tools/dev-test.sh "$target" release npm_metadata "" + ) + generated_reports="${generated_reports}${report}\n" +done + +reports_to_check=$(printf '%b' "$generated_reports") +( + cd "$repo_root" + NPM_METADATA_VALIDATE_REPORTS=1 \ + NPM_METADATA_ALLOW_UNTRACKED_REPORTS=1 \ + NPM_METADATA_REPORTS_TO_CHECK="$reports_to_check" \ + NPM_METADATA_SOURCE_ROOT="$repo_root" \ + tools/dev-test.sh p2 standard npm_metadata "" +) diff --git a/tests/runtime/module_resolution.rs b/tests/runtime/module_resolution.rs index 29b3f596..71e58b29 100644 --- a/tests/runtime/module_resolution.rs +++ b/tests/runtime/module_resolution.rs @@ -385,6 +385,23 @@ async fn cjs_package_json_parse_cache( Ok(()) } +#[test] +async fn cjs_loader_realpath_cache( + #[tagged_as("module_resolution")] compiled_test: &CompiledTest, +) -> anyhow::Result<()> { + let (r, output) = invoke_and_capture_output( + compiled_test.wasm_path(), + None, + "test-cjs-loader-realpath-cache", + &[], + ) + .await; + let r = r?; + println!("Output:\n{}", output); + assert_eq!(r, Some(Val::Bool(true))); + Ok(()) +} + #[test] async fn sync_builtin_esm_exports( #[tagged_as("module_resolution")] compiled_test: &CompiledTest, diff --git a/tests/runtime/typescript_runtime.rs b/tests/runtime/typescript_runtime.rs index a684478e..5eb96d30 100644 --- a/tests/runtime/typescript_runtime.rs +++ b/tests/runtime/typescript_runtime.rs @@ -394,6 +394,10 @@ async fn typescript_transform_runtime_is_immutable( "disabled source-map support unexpectedly remapped the stack: {disabled_stack}" ); assert_eq!(report["errorConstructorsStable"], true); + assert_eq!(report["nativeSourceMapCommentFound"], true); + assert_eq!(report["nativeSourceMapFakeCommentsIgnored"], true); + assert_eq!(report["nativeSourceMapNoMarkerIgnored"], true); + assert_eq!(report["nativeSourceMapEmptyLastClears"], true); assert_eq!( report["cjsSourceMapsReclaimed"], true, "CJS source maps were retained after their modules were reclaimed: retained={}", diff --git a/tests/typescript_transform_latency/README.md b/tests/typescript_transform_latency/README.md index 13e4e992..c35b4e9f 100644 --- a/tests/typescript_transform_latency/README.md +++ b/tests/typescript_transform_latency/README.md @@ -39,17 +39,12 @@ sample uses a fresh execution job and, where filesystem-backed, a unique module path; direct API samples run in the report's outer runtime. No QuickJS runtime, Wasmtime store, or component instance is reused across reports. -The documented native-transform bound is deliberately narrow: the direct public -API samples cover dense requested-size profiles through 64 KiB on the recorded -three-sample macOS arm64 host and target combinations. The calibration observed the -requested 64-KiB direct-API maxima at or below 21 ms in all four P2/P3 -strip/transform profiles; a conservative 25 ms maximum is the accepted local bound -for those exact profiles. This is evidence, not a CI threshold or a general upper -bound. On those same profiles, the strip-mode prepared-ESM case reproduces nearly -all of the roughly 11-second ESM module latency after transformation, while inputs -from the same requested 64-KiB profile with dense stripped padding complete inline -in about 203 ms and through CommonJS in about 370 ms. This localizes the separate -bottleneck to the ESM module-loading path rather than generic compilation of -whitespace-preserving output. GOL-347 owns phase-level profiling and any measured -optimization for that path; end-to-end strip-mode ESM latency is not considered -acceptable here. +The direct public API samples cover dense requested-size profiles through 64 KiB on +the recorded three-sample macOS arm64 host and target combinations. The current +requested 64-KiB direct-API maxima range from 17.65 to 19.19 ms. This is descriptive +evidence, not a CI threshold or a general upper bound. Earlier strip-mode captures +showed roughly 11-second ESM module latency after transformation. GOL-347 localized +that delay to two repository-owned source scanners and changed them to bulk-skip +contiguous ASCII whitespace. The refreshed matrix now completes the requested +64-KiB strip-mode prepared-ESM case in 189–191 ms and ordinary ESM in 325–329 ms on +P2/P3, removing the whitespace-size pathology without changing the transform API. diff --git a/tests/typescript_transform_latency/results/2026-09-01-p2-strip-macos-aarch64.json b/tests/typescript_transform_latency/results/2026-09-21-p2-strip-macos-aarch64.json similarity index 66% rename from tests/typescript_transform_latency/results/2026-09-01-p2-strip-macos-aarch64.json rename to tests/typescript_transform_latency/results/2026-09-21-p2-strip-macos-aarch64.json index 407d4105..484212b6 100644 --- a/tests/typescript_transform_latency/results/2026-09-01-p2-strip-macos-aarch64.json +++ b/tests/typescript_transform_latency/results/2026-09-21-p2-strip-macos-aarch64.json @@ -5,15 +5,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 2.8770839999997406, - "medianMs": 1.3828749999993306, + "maximumMs": 2.7161250000026484, + "medianMs": 1.2831669999977748, "samples": [ { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 8.154791, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 6.736666, "result": { "actualSourceBytes": 4190, - "elapsedMs": 2.8770839999997406, + "elapsedMs": 2.7161250000026484, "kind": "api", "outputBytes": 4190, "overflowed": false, @@ -21,11 +21,11 @@ } }, { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 2.213417, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 1.808875, "result": { "actualSourceBytes": 4190, - "elapsedMs": 1.3828749999993306, + "elapsedMs": 1.2831669999977748, "kind": "api", "outputBytes": 4190, "overflowed": false, @@ -33,11 +33,11 @@ } }, { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 1.8682919999999998, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 1.700292, "result": { "actualSourceBytes": 4190, - "elapsedMs": 1.3636659999974654, + "elapsedMs": 1.255666999997629, "kind": "api", "outputBytes": 4190, "overflowed": false, @@ -52,15 +52,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 194.06300000000192, - "medianMs": 192.77816600000008, + "maximumMs": 182.10212500000125, + "medianMs": 176.81483300000036, "samples": [ { - "linearMemoryHighWaterBytes": 19660800, - "outerWallMs": 193.096458, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 182.760709, "result": { "actualSourceBytes": 4158, - "elapsedMs": 192.4394580000007, + "elapsedMs": 182.10212500000125, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -68,11 +68,11 @@ } }, { - "linearMemoryHighWaterBytes": 19660800, - "outerWallMs": 193.626458, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 177.57475, "result": { "actualSourceBytes": 4158, - "elapsedMs": 192.77816600000008, + "elapsedMs": 176.81483300000036, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -80,11 +80,11 @@ } }, { - "linearMemoryHighWaterBytes": 19660800, - "outerWallMs": 194.94245800000002, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 176.485708, "result": { "actualSourceBytes": 4158, - "elapsedMs": 194.06300000000192, + "elapsedMs": 175.78520800000115, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -99,15 +99,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 253.28641700000296, - "medianMs": 245.84083400000236, + "maximumMs": 187.94545799999833, + "medianMs": 187.8135829999992, "samples": [ { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 254.263083, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 188.545208, "result": { "actualSourceBytes": 4190, - "elapsedMs": 253.28641700000296, + "elapsedMs": 187.8135829999992, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -115,11 +115,11 @@ } }, { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 246.843875, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 188.61291599999998, "result": { "actualSourceBytes": 4190, - "elapsedMs": 245.84083400000236, + "elapsedMs": 187.94545799999833, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -127,11 +127,11 @@ } }, { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 240.106042, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 186.791833, "result": { "actualSourceBytes": 4190, - "elapsedMs": 238.86912500000108, + "elapsedMs": 186.1688340000001, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -146,15 +146,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 245.45366600000125, - "medianMs": 241.39141599999857, + "maximumMs": 186.37550000000192, + "medianMs": 186.1263340000005, "samples": [ { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 242.37225, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 187.034208, "result": { "actualSourceBytes": 4190, - "elapsedMs": 241.39141599999857, + "elapsedMs": 186.37550000000192, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -162,11 +162,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 239.502667, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 186.769667, "result": { "actualSourceBytes": 4190, - "elapsedMs": 238.65441699999792, + "elapsedMs": 186.1263340000005, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -174,11 +174,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 246.2065, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 186.193458, "result": { "actualSourceBytes": 4190, - "elapsedMs": 245.45366600000125, + "elapsedMs": 185.55595800000083, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -193,15 +193,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 234.70866699999897, - "medianMs": 232.65387499999997, + "maximumMs": 182.97166600000128, + "medianMs": 180.33200000000215, "samples": [ { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 243.39112500000002, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 186.488, "result": { "actualSourceBytes": 4190, - "elapsedMs": 232.65387499999997, + "elapsedMs": 176.41791699999885, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -209,11 +209,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 240.644208, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 192.952125, "result": { "actualSourceBytes": 4190, - "elapsedMs": 230.24625000000017, + "elapsedMs": 182.97166600000128, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -221,11 +221,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 245.64575, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 190.226708, "result": { "actualSourceBytes": 4190, - "elapsedMs": 234.70866699999897, + "elapsedMs": 180.33200000000215, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -240,15 +240,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 198.59424999999828, - "medianMs": 193.80566700000057, + "maximumMs": 191.26029199999903, + "medianMs": 190.5872079999972, "samples": [ { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 199.41412499999998, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 191.97166700000002, "result": { "actualSourceBytes": 4190, - "elapsedMs": 198.59424999999828, + "elapsedMs": 191.26029199999903, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -256,11 +256,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 194.713166, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 191.295, "result": { "actualSourceBytes": 4190, - "elapsedMs": 193.80566700000057, + "elapsedMs": 190.5872079999972, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -268,11 +268,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 191.956709, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 190.425458, "result": { "actualSourceBytes": 4190, - "elapsedMs": 190.83379200000127, + "elapsedMs": 189.74937499999945, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -287,15 +287,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 5.550125000001572, - "medianMs": 5.103583999996772, + "maximumMs": 5.240916000000652, + "medianMs": 4.87749999999869, "samples": [ { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 6.145875, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 6.53125, "result": { "actualSourceBytes": 16464, - "elapsedMs": 4.948041999999987, + "elapsedMs": 5.240916000000652, "kind": "api", "outputBytes": 16464, "overflowed": false, @@ -303,11 +303,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 6.574958, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 5.694542, "result": { "actualSourceBytes": 16464, - "elapsedMs": 5.550125000001572, + "elapsedMs": 4.87749999999869, "kind": "api", "outputBytes": 16464, "overflowed": false, @@ -315,11 +315,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 6.2955, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 5.60175, "result": { "actualSourceBytes": 16464, - "elapsedMs": 5.103583999996772, + "elapsedMs": 4.841834000000745, "kind": "api", "outputBytes": 16464, "overflowed": false, @@ -334,15 +334,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 185.0116249999992, - "medianMs": 183.74716700000135, + "maximumMs": 184.52249999999913, + "medianMs": 184.19916600000033, "samples": [ { - "linearMemoryHighWaterBytes": 20250624, - "outerWallMs": 184.83787500000003, + "linearMemoryHighWaterBytes": 20381696, + "outerWallMs": 181.272667, "result": { "actualSourceBytes": 16432, - "elapsedMs": 183.74716700000135, + "elapsedMs": 180.3247080000001, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -350,11 +350,11 @@ } }, { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 181.9545, + "linearMemoryHighWaterBytes": 20381696, + "outerWallMs": 185.555, "result": { "actualSourceBytes": 16432, - "elapsedMs": 180.8371670000015, + "elapsedMs": 184.52249999999913, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -362,11 +362,11 @@ } }, { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 186.215125, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 185.274459, "result": { "actualSourceBytes": 16432, - "elapsedMs": 185.0116249999992, + "elapsedMs": 184.19916600000033, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -381,15 +381,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 904.0727079999996, - "medianMs": 903.2578329999996, + "maximumMs": 215.20095799999945, + "medianMs": 215.03737499999988, "samples": [ { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 904.04975, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 216.45245799999998, "result": { "actualSourceBytes": 16464, - "elapsedMs": 902.6623330000002, + "elapsedMs": 215.20095799999945, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -397,11 +397,11 @@ } }, { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 904.3656249999999, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 216.042625, "result": { "actualSourceBytes": 16464, - "elapsedMs": 903.2578329999996, + "elapsedMs": 215.03737499999988, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -409,11 +409,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 905.286834, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 216.055916, "result": { "actualSourceBytes": 16464, - "elapsedMs": 904.0727079999996, + "elapsedMs": 215.03337499999907, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -428,15 +428,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 901.8379999999996, - "medianMs": 900.909125, + "maximumMs": 214.60150000000067, + "medianMs": 214.5589170000003, "samples": [ { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 902.977458, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 215.60000000000002, "result": { "actualSourceBytes": 16464, - "elapsedMs": 901.8379999999996, + "elapsedMs": 214.5589170000003, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -444,11 +444,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 902.081834, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 215.56375, "result": { "actualSourceBytes": 16464, - "elapsedMs": 900.909125, + "elapsedMs": 214.55879099999947, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -456,11 +456,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 899.258375, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 215.7665, "result": { "actualSourceBytes": 16464, - "elapsedMs": 898.0517080000009, + "elapsedMs": 214.60150000000067, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -475,15 +475,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 873.9858750000003, - "medianMs": 867.5398330000007, + "maximumMs": 180.02854200000002, + "medianMs": 179.7952499999992, "samples": [ { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 904.250542, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 216.322208, "result": { "actualSourceBytes": 16464, - "elapsedMs": 866.2756250000002, + "elapsedMs": 180.02854200000002, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -491,11 +491,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 904.9795, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 216.02558299999998, "result": { "actualSourceBytes": 16464, - "elapsedMs": 867.5398330000007, + "elapsedMs": 179.7952499999992, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -503,11 +503,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 910.8125419999999, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 215.14075, "result": { "actualSourceBytes": 16464, - "elapsedMs": 873.9858750000003, + "elapsedMs": 179.1251250000023, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -522,15 +522,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 232.2219580000001, - "medianMs": 230.6682499999988, + "maximumMs": 219.04391699999903, + "medianMs": 217.5386669999989, "samples": [ { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 231.842125, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 215.882916, "result": { "actualSourceBytes": 16464, - "elapsedMs": 230.6682499999988, + "elapsedMs": 214.8938330000019, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -538,11 +538,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 228.680083, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 218.62395800000002, "result": { "actualSourceBytes": 16464, - "elapsedMs": 227.61162499999955, + "elapsedMs": 217.5386669999989, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -550,11 +550,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 233.565458, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 220.150291, "result": { "actualSourceBytes": 16464, - "elapsedMs": 232.2219580000001, + "elapsedMs": 219.04391699999903, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -569,15 +569,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 20.5020829999994, - "medianMs": 19.45629200000076, + "maximumMs": 18.95104100000026, + "medianMs": 18.881250000000364, "samples": [ { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 23.202375, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 21.220708000000002, "result": { "actualSourceBytes": 65634, - "elapsedMs": 20.5020829999994, + "elapsedMs": 18.95104100000026, "kind": "api", "outputBytes": 65634, "overflowed": false, @@ -585,11 +585,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 21.745125, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 21.043334, "result": { "actualSourceBytes": 65634, - "elapsedMs": 19.236041999998633, + "elapsedMs": 18.881250000000364, "kind": "api", "outputBytes": 65634, "overflowed": false, @@ -597,11 +597,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 21.904417, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 20.986458, "result": { "actualSourceBytes": 65634, - "elapsedMs": 19.45629200000076, + "elapsedMs": 18.86854100000164, "kind": "api", "outputBytes": 65634, "overflowed": false, @@ -616,15 +616,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 203.19824999999943, - "medianMs": 202.9507080000003, + "maximumMs": 195.06083300000137, + "medianMs": 193.5243330000012, "samples": [ { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 205.596542, + "linearMemoryHighWaterBytes": 22216704, + "outerWallMs": 195.591458, "result": { "actualSourceBytes": 65602, - "elapsedMs": 202.9507080000003, + "elapsedMs": 193.28900000000067, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -632,11 +632,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 205.92779099999998, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 197.48612500000002, "result": { "actualSourceBytes": 65602, - "elapsedMs": 203.19824999999943, + "elapsedMs": 195.06083300000137, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -644,11 +644,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 205.387334, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 195.956, "result": { "actualSourceBytes": 65602, - "elapsedMs": 202.466124999999, + "elapsedMs": 193.5243330000012, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -663,15 +663,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 11136.495791, - "medianMs": 11040.891541999998, + "maximumMs": 326.51791700000103, + "medianMs": 325.43154199999844, "samples": [ { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11043.846833, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 327.705083, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11040.891541999998, + "elapsedMs": 325.1125000000011, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -679,11 +679,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11139.602417, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 327.98233300000004, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11136.495791, + "elapsedMs": 325.43154199999844, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -691,11 +691,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11009.125083, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 328.87899999999996, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11006.025999999998, + "elapsedMs": 326.51791700000103, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -710,15 +710,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 11248.11499999999, - "medianMs": 11094.260749999989, + "maximumMs": 338.10100000000057, + "medianMs": 329.12633300000016, "samples": [ { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 10995.456415999999, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 340.569833, "result": { "actualSourceBytes": 65634, - "elapsedMs": 10992.569957999996, + "elapsedMs": 338.10100000000057, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -726,11 +726,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11251.577583, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 329.371375, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11248.11499999999, + "elapsedMs": 326.7248749999999, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -738,11 +738,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11097.703333, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 331.517625, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11094.260749999989, + "elapsedMs": 329.12633300000016, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -757,15 +757,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 10978.504750000007, - "medianMs": 10944.886209000004, + "maximumMs": 194.10108299999956, + "medianMs": 190.6754170000004, "samples": [ { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11088.633333, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 334.79724999999996, "result": { "actualSourceBytes": 65634, - "elapsedMs": 10944.886209000004, + "elapsedMs": 194.10108299999956, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -773,11 +773,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11045.548208, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 331.266875, "result": { "actualSourceBytes": 65634, - "elapsedMs": 10901.547749999998, + "elapsedMs": 190.6754170000004, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -785,11 +785,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11126.390417, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 330.914208, "result": { "actualSourceBytes": 65634, - "elapsedMs": 10978.504750000007, + "elapsedMs": 190.5682909999996, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -804,15 +804,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 378.5278340000077, - "medianMs": 372.50912499999686, + "maximumMs": 331.898541999999, + "medianMs": 331.21450000000004, "samples": [ { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 375.700875, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 333.62016700000004, "result": { "actualSourceBytes": 65634, - "elapsedMs": 372.50912499999686, + "elapsedMs": 331.21450000000004, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -820,11 +820,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 381.13741699999997, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 332.496625, "result": { "actualSourceBytes": 65634, - "elapsedMs": 378.5278340000077, + "elapsedMs": 330.135542, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -832,11 +832,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 373.97925, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 334.38849999999996, "result": { "actualSourceBytes": 65634, - "elapsedMs": 371.2287500000093, + "elapsedMs": 331.898541999999, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -848,37 +848,37 @@ } ], "component": { - "blake3": "ccd30094b61e69913d54118a37495463d7ba24e9aa43fdc7085ec024ccdbf162", - "buildMs": 30495.357584, - "bytes": 154624624, - "instantiateMs": 16082.761792 + "blake3": "b05ffc3d9402c570641732c046b02ffcfdf3841a2483fa3af8673f4cf8b39661", + "buildMs": 29736.530833, + "bytes": 174182374, + "instantiateMs": 15200.170458 }, "concurrencyAtLargestSize": { - "linearMemoryHighWaterBytes": 22413312, - "outerWallMs": 28.767834, + "linearMemoryHighWaterBytes": 22478848, + "outerWallMs": 26.375084, "result": { - "baselineTimerMs": 2.6537919999973383, - "elapsedMs": 23.72329200000968, - "incrementalSiblingDelayMs": 21.039750000010827, + "baselineTimerMs": 2.7142910000002303, + "elapsedMs": 21.660375000001295, + "incrementalSiblingDelayMs": 18.93466799999987, "outputBytes": 65634, "requestedMs": 1, - "siblingIssuedMs": 23.693542000008165, - "transformMs": 20.779667000009795 + "siblingIssuedMs": 21.648959000000104, + "transformMs": 18.94304099999863 } }, "controlsAtLargestSize": { - "linearMemoryHighWaterBytes": 22413312, - "outerWallMs": 418.829791, + "linearMemoryHighWaterBytes": 22478848, + "outerWallMs": 388.525083, "result": { "cancellation": { "cancelled": true, - "completedMs": 207.7271250000049, - "issuedMs": 198.6288329999952, + "completedMs": 193.9515420000007, + "issuedMs": 185.90062500000025, "message": "execution job cancelled", "requestedMs": 1 }, "timeout": { - "completedMs": 208.5919160000049, + "completedMs": 192.4424169999984, "message": "execution job timed out", "timedOut": true } @@ -887,17 +887,17 @@ "environment": { "arch": "aarch64", "artifactCache": null, - "cargo": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)", - "commitHint": "058b904201154bd2f89e1d07dd56629cbbcfbe67", + "cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)", + "commitHint": "012a07cc553ec91ab308e071ab8622358f5cfec1", "dirty": false, "os": "macos", - "rustc": "rustc 1.95.0 (59807616e 2026-04-14)", + "rustc": "rustc 1.98.1 (48a229cea 2026-09-01)", "unoptimized": null, "wasmtimeCache": null }, "inputs": { - "benchmarkHash": "9c271ca9f5517af7f4b5cc7638d3398b2a844e94e85c9e6775382aa0b1bc0a8f", - "runtimeHash": "791eeb5d424bbd485542532b553a58c7ecd7fc63d50c25921724032f95f17ccb" + "benchmarkHash": "bccc8d574c50193654300d836469eb52a13a895f08860614ec07f523e2f3630c", + "runtimeHash": "242cc8726fad9a244984ee6a65ef40e05a648ffdb3d191fba426affff17a0e65" }, "iterations": 3, "mode": "strip", @@ -914,5 +914,5 @@ 65536 ], "target": "p2", - "wasmLinearMemoryHighWaterBytes": 22413312 + "wasmLinearMemoryHighWaterBytes": 22478848 } diff --git a/tests/typescript_transform_latency/results/2026-09-01-p2-transform-macos-aarch64.json b/tests/typescript_transform_latency/results/2026-09-21-p2-transform-macos-aarch64.json similarity index 67% rename from tests/typescript_transform_latency/results/2026-09-01-p2-transform-macos-aarch64.json rename to tests/typescript_transform_latency/results/2026-09-21-p2-transform-macos-aarch64.json index e0047508..45fb1dcc 100644 --- a/tests/typescript_transform_latency/results/2026-09-01-p2-transform-macos-aarch64.json +++ b/tests/typescript_transform_latency/results/2026-09-21-p2-transform-macos-aarch64.json @@ -5,15 +5,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 4.1852079999989655, - "medianMs": 1.6069160000006375, + "maximumMs": 4.0132919999996375, + "medianMs": 1.4411670000008598, "samples": [ { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 7.698333, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 7.080542, "result": { "actualSourceBytes": 4190, - "elapsedMs": 4.1852079999989655, + "elapsedMs": 4.0132919999996375, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -21,11 +21,11 @@ } }, { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 1.9805000000000001, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 1.944291, "result": { "actualSourceBytes": 4190, - "elapsedMs": 1.31329199999891, + "elapsedMs": 1.4411670000008598, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -33,11 +33,11 @@ } }, { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 2.337792, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 1.8124580000000001, "result": { "actualSourceBytes": 4190, - "elapsedMs": 1.6069160000006375, + "elapsedMs": 1.337999999999738, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -52,15 +52,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 203.51545799999803, - "medianMs": 191.10612499999843, + "maximumMs": 191.29862499999945, + "medianMs": 187.75491599999805, "samples": [ { - "linearMemoryHighWaterBytes": 19660800, - "outerWallMs": 204.272291, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 191.87912500000002, "result": { "actualSourceBytes": 4158, - "elapsedMs": 203.51545799999803, + "elapsedMs": 191.29862499999945, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -68,11 +68,11 @@ } }, { - "linearMemoryHighWaterBytes": 19660800, - "outerWallMs": 191.364708, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 188.56924999999998, "result": { "actualSourceBytes": 4158, - "elapsedMs": 190.3869579999991, + "elapsedMs": 187.75491599999805, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -80,11 +80,11 @@ } }, { - "linearMemoryHighWaterBytes": 19660800, - "outerWallMs": 191.950583, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 187.839708, "result": { "actualSourceBytes": 4158, - "elapsedMs": 191.10612499999843, + "elapsedMs": 186.7964589999974, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -99,15 +99,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 202.3740829999988, - "medianMs": 199.81837499999892, + "maximumMs": 198.21870899999703, + "medianMs": 197.890707999999, "samples": [ { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 203.596041, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 198.584667, "result": { "actualSourceBytes": 4190, - "elapsedMs": 202.3740829999988, + "elapsedMs": 197.890707999999, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -115,11 +115,11 @@ } }, { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 200.71529099999998, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 197.48012500000002, "result": { "actualSourceBytes": 4190, - "elapsedMs": 199.81837499999892, + "elapsedMs": 196.8244169999998, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -127,11 +127,11 @@ } }, { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 199.675667, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 198.889125, "result": { "actualSourceBytes": 4190, - "elapsedMs": 198.67820899999788, + "elapsedMs": 198.21870899999703, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -146,15 +146,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 199.1080839999995, - "medianMs": 196.4955829999999, + "maximumMs": 200.2625420000004, + "medianMs": 200.03429200000028, "samples": [ { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 194.449792, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 200.853584, "result": { "actualSourceBytes": 4190, - "elapsedMs": 193.77391699999865, + "elapsedMs": 200.03429200000028, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -162,11 +162,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 199.864833, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 196.633166, "result": { "actualSourceBytes": 4190, - "elapsedMs": 199.1080839999995, + "elapsedMs": 195.95999999999913, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -174,11 +174,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 197.574666, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 200.993041, "result": { "actualSourceBytes": 4190, - "elapsedMs": 196.4955829999999, + "elapsedMs": 200.2625420000004, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -193,15 +193,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 192.5927499999998, - "medianMs": 186.1592500000006, + "maximumMs": 186.9182080000028, + "medianMs": 185.9215000000004, "samples": [ { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 189.1675, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 188.93183299999998, "result": { "actualSourceBytes": 4190, - "elapsedMs": 186.1592500000006, + "elapsedMs": 185.88083299999928, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -209,11 +209,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 195.872792, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 188.850167, "result": { "actualSourceBytes": 4190, - "elapsedMs": 192.5927499999998, + "elapsedMs": 185.9215000000004, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -221,11 +221,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 186.966667, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 190.352458, "result": { "actualSourceBytes": 4190, - "elapsedMs": 184.03466599999956, + "elapsedMs": 186.9182080000028, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -240,15 +240,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 195.84325000000172, - "medianMs": 195.7699590000011, + "maximumMs": 198.67137500000172, + "medianMs": 197.27400000000125, "samples": [ { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 196.5605, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 198.03037500000002, "result": { "actualSourceBytes": 4190, - "elapsedMs": 195.7699590000011, + "elapsedMs": 197.27400000000125, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -256,11 +256,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 195.550916, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 199.578709, "result": { "actualSourceBytes": 4190, - "elapsedMs": 194.7901249999995, + "elapsedMs": 198.67137500000172, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -268,11 +268,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 196.568084, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 188.970208, "result": { "actualSourceBytes": 4190, - "elapsedMs": 195.84325000000172, + "elapsedMs": 188.31383300000016, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -287,15 +287,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 185.82458300000144, - "medianMs": 183.89858399999864, + "maximumMs": 188.12329200000025, + "medianMs": 181.31904199999917, "samples": [ { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 184.80966600000002, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 189.015625, "result": { "actualSourceBytes": 4193, - "elapsedMs": 183.89858399999864, + "elapsedMs": 188.12329200000025, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 4096, @@ -303,11 +303,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 181.712959, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 181.63191600000002, "result": { "actualSourceBytes": 4193, - "elapsedMs": 180.84258399999817, + "elapsedMs": 180.4454999999998, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 4096, @@ -315,11 +315,11 @@ } }, { - "linearMemoryHighWaterBytes": 19922944, - "outerWallMs": 186.63708400000002, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 182.150708, "result": { "actualSourceBytes": 4193, - "elapsedMs": 185.82458300000144, + "elapsedMs": 181.31904199999917, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 4096, @@ -334,15 +334,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 4.916124999999738, - "medianMs": 4.893166999998357, + "maximumMs": 4.761749999999665, + "medianMs": 4.634374999999636, "samples": [ { - "linearMemoryHighWaterBytes": 19922944, - "outerWallMs": 6.031625, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 5.800291, "result": { "actualSourceBytes": 16464, - "elapsedMs": 4.916124999999738, + "elapsedMs": 4.761749999999665, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -350,11 +350,11 @@ } }, { - "linearMemoryHighWaterBytes": 19922944, - "outerWallMs": 5.785958, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 5.456542, "result": { "actualSourceBytes": 16464, - "elapsedMs": 4.893166999998357, + "elapsedMs": 4.634374999999636, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -362,11 +362,11 @@ } }, { - "linearMemoryHighWaterBytes": 19922944, - "outerWallMs": 5.725458, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 5.295459, "result": { "actualSourceBytes": 16464, - "elapsedMs": 4.816291999999521, + "elapsedMs": 4.533417000000554, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -381,15 +381,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 197.08241700000144, - "medianMs": 192.2531250000029, + "maximumMs": 183.86074999999985, + "medianMs": 183.2894580000011, "samples": [ { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 191.59475, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 184.741458, "result": { "actualSourceBytes": 16432, - "elapsedMs": 190.4947919999977, + "elapsedMs": 183.86074999999985, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -397,11 +397,11 @@ } }, { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 193.41445900000002, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 182.95979200000002, "result": { "actualSourceBytes": 16432, - "elapsedMs": 192.2531250000029, + "elapsedMs": 181.69233299999905, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -409,11 +409,11 @@ } }, { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 198.30175, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 184.361416, "result": { "actualSourceBytes": 16432, - "elapsedMs": 197.08241700000144, + "elapsedMs": 183.2894580000011, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -428,15 +428,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 299.0376670000005, - "medianMs": 283.86162500000137, + "maximumMs": 215.90687499999876, + "medianMs": 212.4577500000014, "samples": [ { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 285.292541, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 216.93075000000002, "result": { "actualSourceBytes": 16464, - "elapsedMs": 283.86162500000137, + "elapsedMs": 215.90687499999876, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -444,11 +444,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 300.725959, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 212.874792, "result": { "actualSourceBytes": 16464, - "elapsedMs": 299.0376670000005, + "elapsedMs": 211.79570799999783, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -456,11 +456,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 264.205292, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 213.47133300000002, "result": { "actualSourceBytes": 16464, - "elapsedMs": 262.80204200000117, + "elapsedMs": 212.4577500000014, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -475,15 +475,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 302.8170000000009, - "medianMs": 250.72099999999955, + "maximumMs": 214.80545899999925, + "medianMs": 213.77566699999988, "samples": [ { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 252.31058299999998, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 214.852167, "result": { "actualSourceBytes": 16464, - "elapsedMs": 250.72099999999955, + "elapsedMs": 213.77566699999988, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -491,11 +491,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 304.090167, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 214.5445, "result": { "actualSourceBytes": 16464, - "elapsedMs": 302.8170000000009, + "elapsedMs": 213.46133299999929, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -503,11 +503,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 239.793833, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 215.883625, "result": { "actualSourceBytes": 16464, - "elapsedMs": 238.4511249999996, + "elapsedMs": 214.80545899999925, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -522,15 +522,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 202.5224160000016, - "medianMs": 193.8763340000005, + "maximumMs": 177.12441699999908, + "medianMs": 175.49166699999842, "samples": [ { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 210.150584, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 181.686375, "result": { "actualSourceBytes": 16464, - "elapsedMs": 202.5224160000016, + "elapsedMs": 175.24058400000104, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -538,11 +538,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 200.706167, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 183.327416, "result": { "actualSourceBytes": 16464, - "elapsedMs": 193.8763340000005, + "elapsedMs": 177.12441699999908, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -550,11 +550,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 196.37754199999998, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 181.80599999999998, "result": { "actualSourceBytes": 16464, - "elapsedMs": 188.17225000000144, + "elapsedMs": 175.49166699999842, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -569,15 +569,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 236.5767080000005, - "medianMs": 234.20395800000188, + "maximumMs": 215.6640420000003, + "medianMs": 212.3291250000002, "samples": [ { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 236.208084, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 213.508916, "result": { "actualSourceBytes": 16464, - "elapsedMs": 234.20395800000188, + "elapsedMs": 212.3291250000002, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -585,11 +585,11 @@ } }, { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 234.74962499999998, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 213.34366699999998, "result": { "actualSourceBytes": 16464, - "elapsedMs": 233.2535829999997, + "elapsedMs": 212.124834000002, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -597,11 +597,11 @@ } }, { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 237.769, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 216.683666, "result": { "actualSourceBytes": 16464, - "elapsedMs": 236.5767080000005, + "elapsedMs": 215.6640420000003, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -616,15 +616,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 200.28300000000127, - "medianMs": 198.62562500000055, + "maximumMs": 184.63979199999991, + "medianMs": 184.4547079999993, "samples": [ { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 201.653458, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 185.835834, "result": { "actualSourceBytes": 16467, - "elapsedMs": 200.28300000000127, + "elapsedMs": 184.63979199999991, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 16384, @@ -632,11 +632,11 @@ } }, { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 199.982375, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 185.742333, "result": { "actualSourceBytes": 16467, - "elapsedMs": 198.62562500000055, + "elapsedMs": 184.4547079999993, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 16384, @@ -644,11 +644,11 @@ } }, { - "linearMemoryHighWaterBytes": 20578304, - "outerWallMs": 197.55249999999998, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 183.233833, "result": { "actualSourceBytes": 16467, - "elapsedMs": 196.27620900000147, + "elapsedMs": 182.20704199999815, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 16384, @@ -663,15 +663,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 19.03204200000073, - "medianMs": 18.98729099999946, + "maximumMs": 17.64587500000016, + "medianMs": 17.63154200000099, "samples": [ { - "linearMemoryHighWaterBytes": 20578304, - "outerWallMs": 20.914458, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 19.949833, "result": { "actualSourceBytes": 65634, - "elapsedMs": 18.31462499999907, + "elapsedMs": 17.64587500000016, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -679,11 +679,11 @@ } }, { - "linearMemoryHighWaterBytes": 20578304, - "outerWallMs": 21.393834000000002, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 19.651334, "result": { "actualSourceBytes": 65634, - "elapsedMs": 19.03204200000073, + "elapsedMs": 17.514040999998542, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -691,11 +691,11 @@ } }, { - "linearMemoryHighWaterBytes": 20578304, - "outerWallMs": 21.513541, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 19.767, "result": { "actualSourceBytes": 65634, - "elapsedMs": 18.98729099999946, + "elapsedMs": 17.63154200000099, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -710,15 +710,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 209.92562499999983, - "medianMs": 200.90462500000103, + "maximumMs": 196.25133300000016, + "medianMs": 196.2233750000014, "samples": [ { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 212.909, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 198.354583, "result": { "actualSourceBytes": 65602, - "elapsedMs": 209.92562499999983, + "elapsedMs": 196.02441700000057, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -726,11 +726,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 203.43275, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 198.635791, "result": { "actualSourceBytes": 65602, - "elapsedMs": 200.90462500000103, + "elapsedMs": 196.25133300000016, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -738,11 +738,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 200.232833, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 198.601042, "result": { "actualSourceBytes": 65602, - "elapsedMs": 197.71662500000093, + "elapsedMs": 196.2233750000014, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -757,15 +757,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 323.21979199999987, - "medianMs": 322.43195800000103, + "maximumMs": 316.4423330000009, + "medianMs": 315.6650410000002, "samples": [ { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 325.039875, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 317.5595, "result": { "actualSourceBytes": 65634, - "elapsedMs": 322.43195800000103, + "elapsedMs": 315.1889169999995, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -773,11 +773,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 325.76375, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 318.816292, "result": { "actualSourceBytes": 65634, - "elapsedMs": 323.21979199999987, + "elapsedMs": 316.4423330000009, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -785,11 +785,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 324.50183300000003, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 318.009084, "result": { "actualSourceBytes": 65634, - "elapsedMs": 322.0746659999986, + "elapsedMs": 315.6650410000002, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -804,15 +804,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 331.0949579999997, - "medianMs": 323.79745899999944, + "maximumMs": 317.89258399999926, + "medianMs": 315.024875000001, "samples": [ { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 333.487209, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 317.450167, "result": { "actualSourceBytes": 65634, - "elapsedMs": 331.0949579999997, + "elapsedMs": 315.024875000001, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -820,11 +820,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 326.21245799999997, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 317.01162500000004, "result": { "actualSourceBytes": 65634, - "elapsedMs": 323.79745899999944, + "elapsedMs": 314.3341249999994, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -832,11 +832,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 324.130625, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 320.472583, "result": { "actualSourceBytes": 65634, - "elapsedMs": 321.55624999999964, + "elapsedMs": 317.89258399999926, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -851,15 +851,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 224.52995799999917, - "medianMs": 198.7046250000003, + "maximumMs": 176.59295799999927, + "medianMs": 176.34858300000087, "samples": [ { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 220.52508300000002, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 197.873167, "result": { "actualSourceBytes": 65634, - "elapsedMs": 198.7046250000003, + "elapsedMs": 176.34858300000087, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -867,11 +867,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 253.093083, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 197.51208300000002, "result": { "actualSourceBytes": 65634, - "elapsedMs": 224.52995799999917, + "elapsedMs": 176.59295799999927, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -879,11 +879,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 211.7245, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 196.773583, "result": { "actualSourceBytes": 65634, - "elapsedMs": 189.0867500000004, + "elapsedMs": 175.917958, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -898,15 +898,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 346.4256659999992, - "medianMs": 343.44066700000076, + "maximumMs": 317.23545899999954, + "medianMs": 313.66829099999995, "samples": [ { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 342.675208, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 315.459459, "result": { "actualSourceBytes": 65634, - "elapsedMs": 340.1129579999997, + "elapsedMs": 313.1439169999994, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -914,11 +914,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 348.89300000000003, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 316.037375, "result": { "actualSourceBytes": 65634, - "elapsedMs": 346.4256659999992, + "elapsedMs": 313.66829099999995, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -926,11 +926,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 346.138, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 319.59754200000003, "result": { "actualSourceBytes": 65634, - "elapsedMs": 343.44066700000076, + "elapsedMs": 317.23545899999954, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -945,15 +945,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 204.24629099999947, - "medianMs": 203.6168340000004, + "maximumMs": 197.6933750000007, + "medianMs": 197.56762499999968, "samples": [ { - "linearMemoryHighWaterBytes": 22413312, - "outerWallMs": 206.18525, + "linearMemoryHighWaterBytes": 22544384, + "outerWallMs": 199.547459, "result": { "actualSourceBytes": 65637, - "elapsedMs": 203.6168340000004, + "elapsedMs": 197.09187500000007, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 65536, @@ -961,11 +961,11 @@ } }, { - "linearMemoryHighWaterBytes": 22413312, - "outerWallMs": 203.041125, + "linearMemoryHighWaterBytes": 22544384, + "outerWallMs": 200.30825, "result": { "actualSourceBytes": 65637, - "elapsedMs": 200.10629199999855, + "elapsedMs": 197.56762499999968, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 65536, @@ -973,11 +973,11 @@ } }, { - "linearMemoryHighWaterBytes": 22413312, - "outerWallMs": 206.909375, + "linearMemoryHighWaterBytes": 22544384, + "outerWallMs": 200.11066699999998, "result": { "actualSourceBytes": 65637, - "elapsedMs": 204.24629099999947, + "elapsedMs": 197.6933750000007, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 65536, @@ -989,37 +989,37 @@ } ], "component": { - "blake3": "f7864a6858df32e93357f04ed97bc6479f897db74c806e1661abdfbf7a63a493", - "buildMs": 30107.629041, - "bytes": 154665477, - "instantiateMs": 15407.022916 + "blake3": "dff386197ed6d8480d634ae031ebf7005e878d52dc6cfef06bb14e6ab796bc44", + "buildMs": 29196.833167, + "bytes": 174087724, + "instantiateMs": 14413.66825 }, "concurrencyAtLargestSize": { - "linearMemoryHighWaterBytes": 22544384, - "outerWallMs": 26.568624999999997, + "linearMemoryHighWaterBytes": 22609920, + "outerWallMs": 23.9365, "result": { - "baselineTimerMs": 2.631500000001324, - "elapsedMs": 21.58454199999869, - "incrementalSiblingDelayMs": 18.926666999997902, + "baselineTimerMs": 2.7172500000015134, + "elapsedMs": 19.24250000000029, + "incrementalSiblingDelayMs": 16.514624999997977, "outputBytes": 49, "requestedMs": 1, - "siblingIssuedMs": 21.55816699999923, - "transformMs": 18.74179200000071 + "siblingIssuedMs": 19.23187499999949, + "transformMs": 17.720541999999114 } }, "controlsAtLargestSize": { - "linearMemoryHighWaterBytes": 22544384, - "outerWallMs": 414.14504200000005, + "linearMemoryHighWaterBytes": 22609920, + "outerWallMs": 394.290708, "result": { "cancellation": { "cancelled": true, - "completedMs": 205.5602080000008, - "issuedMs": 195.56233299999985, + "completedMs": 197.88545800000065, + "issuedMs": 189.82574999999997, "message": "execution job cancelled", "requestedMs": 1 }, "timeout": { - "completedMs": 205.9060840000002, + "completedMs": 194.3070829999997, "message": "execution job timed out", "timedOut": true } @@ -1028,17 +1028,17 @@ "environment": { "arch": "aarch64", "artifactCache": null, - "cargo": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)", - "commitHint": "058b904201154bd2f89e1d07dd56629cbbcfbe67", + "cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)", + "commitHint": "012a07cc553ec91ab308e071ab8622358f5cfec1", "dirty": false, "os": "macos", - "rustc": "rustc 1.95.0 (59807616e 2026-04-14)", + "rustc": "rustc 1.98.1 (48a229cea 2026-09-01)", "unoptimized": null, "wasmtimeCache": null }, "inputs": { - "benchmarkHash": "9c271ca9f5517af7f4b5cc7638d3398b2a844e94e85c9e6775382aa0b1bc0a8f", - "runtimeHash": "791eeb5d424bbd485542532b553a58c7ecd7fc63d50c25921724032f95f17ccb" + "benchmarkHash": "bccc8d574c50193654300d836469eb52a13a895f08860614ec07f523e2f3630c", + "runtimeHash": "242cc8726fad9a244984ee6a65ef40e05a648ffdb3d191fba426affff17a0e65" }, "iterations": 3, "mode": "transform", @@ -1055,5 +1055,5 @@ 65536 ], "target": "p2", - "wasmLinearMemoryHighWaterBytes": 22544384 + "wasmLinearMemoryHighWaterBytes": 22609920 } diff --git a/tests/typescript_transform_latency/results/2026-09-01-p3-strip-macos-aarch64.json b/tests/typescript_transform_latency/results/2026-09-21-p3-strip-macos-aarch64.json similarity index 65% rename from tests/typescript_transform_latency/results/2026-09-01-p3-strip-macos-aarch64.json rename to tests/typescript_transform_latency/results/2026-09-21-p3-strip-macos-aarch64.json index 672be6db..8d0e3ec3 100644 --- a/tests/typescript_transform_latency/results/2026-09-01-p3-strip-macos-aarch64.json +++ b/tests/typescript_transform_latency/results/2026-09-21-p3-strip-macos-aarch64.json @@ -5,15 +5,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 3.4715829999986454, - "medianMs": 1.3589590000010503, + "maximumMs": 2.858874999998079, + "medianMs": 1.363666999997804, "samples": [ { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 8.856375, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 6.832625, "result": { "actualSourceBytes": 4190, - "elapsedMs": 3.4715829999986454, + "elapsedMs": 2.858874999998079, "kind": "api", "outputBytes": 4190, "overflowed": false, @@ -21,11 +21,11 @@ } }, { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 1.9580829999999998, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 1.804209, "result": { "actualSourceBytes": 4190, - "elapsedMs": 1.3589590000010503, + "elapsedMs": 1.363666999997804, "kind": "api", "outputBytes": 4190, "overflowed": false, @@ -33,11 +33,11 @@ } }, { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 1.7829169999999999, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 1.690666, "result": { "actualSourceBytes": 4190, - "elapsedMs": 1.320292000000336, + "elapsedMs": 1.3262499999982538, "kind": "api", "outputBytes": 4190, "overflowed": false, @@ -52,15 +52,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 177.4370839999974, - "medianMs": 176.4188749999994, + "maximumMs": 186.213541000001, + "medianMs": 185.17562499999983, "samples": [ { - "linearMemoryHighWaterBytes": 19660800, - "outerWallMs": 177.989416, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 186.773709, "result": { "actualSourceBytes": 4158, - "elapsedMs": 177.4370839999974, + "elapsedMs": 186.213541000001, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -68,11 +68,11 @@ } }, { - "linearMemoryHighWaterBytes": 19660800, - "outerWallMs": 177.073958, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 185.827875, "result": { "actualSourceBytes": 4158, - "elapsedMs": 176.4188749999994, + "elapsedMs": 185.17562499999983, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -80,11 +80,11 @@ } }, { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 175.799458, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 185.498583, "result": { "actualSourceBytes": 4158, - "elapsedMs": 175.15533399999913, + "elapsedMs": 184.8742080000011, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -99,15 +99,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 231.9571250000008, - "medianMs": 230.77879100000064, + "maximumMs": 201.1929999999993, + "medianMs": 195.9875839999986, "samples": [ { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 232.687708, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 196.028916, "result": { "actualSourceBytes": 4190, - "elapsedMs": 231.9571250000008, + "elapsedMs": 195.3485830000027, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -115,11 +115,11 @@ } }, { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 231.412792, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 196.60091599999998, "result": { "actualSourceBytes": 4190, - "elapsedMs": 230.77879100000064, + "elapsedMs": 195.9875839999986, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -127,11 +127,11 @@ } }, { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 231.452125, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 202.064875, "result": { "actualSourceBytes": 4190, - "elapsedMs": 230.74108299999716, + "elapsedMs": 201.1929999999993, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -146,15 +146,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 255.97087499999907, - "medianMs": 233.8927919999987, + "maximumMs": 197.1912500000035, + "medianMs": 196.89695899999788, "samples": [ { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 234.30954100000002, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 198.204458, "result": { "actualSourceBytes": 4190, - "elapsedMs": 233.4382079999996, + "elapsedMs": 197.1912500000035, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -162,11 +162,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 234.560792, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 197.61525, "result": { "actualSourceBytes": 4190, - "elapsedMs": 233.8927919999987, + "elapsedMs": 196.89695899999788, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -174,11 +174,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 256.68649999999997, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 196.92570800000001, "result": { "actualSourceBytes": 4190, - "elapsedMs": 255.97087499999907, + "elapsedMs": 196.16649999999936, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -193,15 +193,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 245.9720419999976, - "medianMs": 243.6025840000002, + "maximumMs": 186.82470900000044, + "medianMs": 186.5649999999987, "samples": [ { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 263.94266700000003, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 197.422166, "result": { "actualSourceBytes": 4190, - "elapsedMs": 245.9720419999976, + "elapsedMs": 186.82470900000044, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -209,11 +209,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 253.34637500000002, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 197.552875, "result": { "actualSourceBytes": 4190, - "elapsedMs": 240.82445899999948, + "elapsedMs": 186.5649999999987, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -221,11 +221,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 255.2665, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 196.12937499999998, "result": { "actualSourceBytes": 4190, - "elapsedMs": 243.6025840000002, + "elapsedMs": 185.66233400000056, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -240,15 +240,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 209.9944170000017, - "medianMs": 209.5323749999989, + "maximumMs": 200.5219589999997, + "medianMs": 196.3740829999988, "samples": [ { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 210.787125, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 197.1715, "result": { "actualSourceBytes": 4190, - "elapsedMs": 209.5323749999989, + "elapsedMs": 196.3740829999988, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -256,11 +256,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 211.13750000000002, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 196.74712499999998, "result": { "actualSourceBytes": 4190, - "elapsedMs": 209.9944170000017, + "elapsedMs": 195.99879200000032, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -268,11 +268,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 205.245167, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 201.514958, "result": { "actualSourceBytes": 4190, - "elapsedMs": 204.31866699999773, + "elapsedMs": 200.5219589999997, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -287,15 +287,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 5.438958000000639, - "medianMs": 5.377207999999882, + "maximumMs": 5.212916999998924, + "medianMs": 5.17174999999952, "samples": [ { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 7.213584, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 6.464292, "result": { "actualSourceBytes": 16464, - "elapsedMs": 5.438958000000639, + "elapsedMs": 5.17174999999952, "kind": "api", "outputBytes": 16464, "overflowed": false, @@ -303,11 +303,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 6.514542, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 6.270084000000001, "result": { "actualSourceBytes": 16464, - "elapsedMs": 5.218834000001152, + "elapsedMs": 5.212916999998924, "kind": "api", "outputBytes": 16464, "overflowed": false, @@ -315,11 +315,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 6.632542, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 6.345375000000001, "result": { "actualSourceBytes": 16464, - "elapsedMs": 5.377207999999882, + "elapsedMs": 5.128875000000335, "kind": "api", "outputBytes": 16464, "overflowed": false, @@ -334,15 +334,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 196.6645830000016, - "medianMs": 196.53862499999923, + "maximumMs": 183.96645799999897, + "medianMs": 180.6208749999987, "samples": [ { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 197.602667, + "linearMemoryHighWaterBytes": 20381696, + "outerWallMs": 185.076417, "result": { "actualSourceBytes": 16432, - "elapsedMs": 196.53862499999923, + "elapsedMs": 183.96645799999897, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -350,11 +350,11 @@ } }, { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 197.806667, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 181.654708, "result": { "actualSourceBytes": 16432, - "elapsedMs": 196.6645830000016, + "elapsedMs": 180.6208749999987, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -362,11 +362,11 @@ } }, { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 192.875666, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 180.852125, "result": { "actualSourceBytes": 16432, - "elapsedMs": 191.5420410000006, + "elapsedMs": 179.86099999999897, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -381,15 +381,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 916.054250000001, - "medianMs": 915.741, + "maximumMs": 213.65304200000173, + "medianMs": 213.5292499999996, "samples": [ { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 916.927333, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 214.213083, "result": { "actualSourceBytes": 16464, - "elapsedMs": 915.741, + "elapsedMs": 213.1588329999995, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -397,11 +397,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 917.2905000000001, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 214.44116599999998, "result": { "actualSourceBytes": 16464, - "elapsedMs": 916.054250000001, + "elapsedMs": 213.5292499999996, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -409,11 +409,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 908.597125, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 214.623292, "result": { "actualSourceBytes": 16464, - "elapsedMs": 907.4824589999988, + "elapsedMs": 213.65304200000173, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -428,15 +428,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 909.4808329999996, - "medianMs": 908.7662500000006, + "maximumMs": 215.6702499999992, + "medianMs": 214.360541, "samples": [ { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 910.032875, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 214.45558400000002, "result": { "actualSourceBytes": 16464, - "elapsedMs": 908.7662500000006, + "elapsedMs": 213.49608300000185, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -444,11 +444,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 910.682291, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 216.70837500000002, "result": { "actualSourceBytes": 16464, - "elapsedMs": 909.4808329999996, + "elapsedMs": 215.6702499999992, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -456,11 +456,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 906.067541, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 215.506708, "result": { "actualSourceBytes": 16464, - "elapsedMs": 904.9943749999984, + "elapsedMs": 214.360541, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -475,15 +475,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 877.1025419999987, - "medianMs": 873.3861660000002, + "maximumMs": 180.1694580000003, + "medianMs": 180.11474999999882, "samples": [ { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 905.736083, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 217.99420899999998, "result": { "actualSourceBytes": 16464, - "elapsedMs": 868.3579999999984, + "elapsedMs": 180.1694580000003, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -491,11 +491,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 911.434083, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 216.46320899999998, "result": { "actualSourceBytes": 16464, - "elapsedMs": 873.3861660000002, + "elapsedMs": 180.11474999999882, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -503,11 +503,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 915.203875, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 216.1195, "result": { "actualSourceBytes": 16464, - "elapsedMs": 877.1025419999987, + "elapsedMs": 180.05662499999926, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -522,15 +522,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 239.75629200000003, - "medianMs": 237.40016599999944, + "maximumMs": 219.82745799999975, + "medianMs": 216.8705000000009, "samples": [ { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 238.712709, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 216.780833, "result": { "actualSourceBytes": 16464, - "elapsedMs": 237.40016599999944, + "elapsedMs": 215.71737500000015, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -538,11 +538,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 240.863458, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 220.79475000000002, "result": { "actualSourceBytes": 16464, - "elapsedMs": 239.75629200000003, + "elapsedMs": 219.82745799999975, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -550,11 +550,11 @@ } }, { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 233.033958, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 217.842625, "result": { "actualSourceBytes": 16464, - "elapsedMs": 231.9375830000008, + "elapsedMs": 216.8705000000009, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -569,15 +569,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 20.77395799999977, - "medianMs": 19.615875000001324, + "maximumMs": 19.18933300000208, + "medianMs": 19.111957999999504, "samples": [ { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 21.614541000000003, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 21.431792, "result": { "actualSourceBytes": 65634, - "elapsedMs": 19.26679200000035, + "elapsedMs": 19.18933300000208, "kind": "api", "outputBytes": 65634, "overflowed": false, @@ -585,11 +585,11 @@ } }, { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 23.082166, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 21.001792, "result": { "actualSourceBytes": 65634, - "elapsedMs": 20.77395799999977, + "elapsedMs": 18.864665999999488, "kind": "api", "outputBytes": 65634, "overflowed": false, @@ -597,11 +597,11 @@ } }, { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 22.470875, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 21.210666, "result": { "actualSourceBytes": 65634, - "elapsedMs": 19.615875000001324, + "elapsedMs": 19.111957999999504, "kind": "api", "outputBytes": 65634, "overflowed": false, @@ -616,15 +616,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 212.32816599999933, - "medianMs": 207.63245800000004, + "maximumMs": 193.58237500000175, + "medianMs": 192.8331249999992, "samples": [ { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 214.81074999999998, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 195.815792, "result": { "actualSourceBytes": 65602, - "elapsedMs": 212.32816599999933, + "elapsedMs": 193.58237500000175, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -632,11 +632,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 210.43212499999998, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 195.342542, "result": { "actualSourceBytes": 65602, - "elapsedMs": 207.63245800000004, + "elapsedMs": 192.8331249999992, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -644,11 +644,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 203.678791, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 195.226208, "result": { "actualSourceBytes": 65602, - "elapsedMs": 201.06620900000053, + "elapsedMs": 192.68662500000028, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -663,15 +663,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 11052.629749999996, - "medianMs": 11036.760375000003, + "maximumMs": 329.61004200000025, + "medianMs": 325.9599999999991, "samples": [ { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11024.233208, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 328.297791, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11021.145042000002, + "elapsedMs": 325.9599999999991, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -679,11 +679,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11055.771917, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 327.084958, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11052.629749999996, + "elapsedMs": 324.82383299999856, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -691,11 +691,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11039.583416, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 331.909375, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11036.760375000003, + "elapsedMs": 329.61004200000025, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -710,15 +710,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 11351.273542000004, - "medianMs": 11169.502832999991, + "maximumMs": 328.9059589999997, + "medianMs": 325.08408299999974, "samples": [ { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11042.731625, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 326.91225000000003, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11040.134917000005, + "elapsedMs": 324.44887500000186, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -726,11 +726,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11353.985166999999, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 331.535333, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11351.273542000004, + "elapsedMs": 328.9059589999997, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -738,11 +738,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11172.074375, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 327.50600000000003, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11169.502832999991, + "elapsedMs": 325.08408299999974, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -757,15 +757,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 11024.513082999998, - "medianMs": 10934.687334000002, + "maximumMs": 189.1610000000001, + "medianMs": 188.89304099999936, "samples": [ { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11170.195749999999, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 328.701458, "result": { "actualSourceBytes": 65634, - "elapsedMs": 11024.513082999998, + "elapsedMs": 188.88533300000017, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -773,11 +773,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11058.882209, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 329.77991699999995, "result": { "actualSourceBytes": 65634, - "elapsedMs": 10913.332916, + "elapsedMs": 189.1610000000001, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -785,11 +785,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 11083.307584, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 329.266292, "result": { "actualSourceBytes": 65634, - "elapsedMs": 10934.687334000002, + "elapsedMs": 188.89304099999936, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -804,15 +804,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 370.36125000000175, - "medianMs": 366.0301670000045, + "maximumMs": 331.2283329999991, + "medianMs": 330.9397919999992, "samples": [ { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 365.47533300000003, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 333.57966700000003, "result": { "actualSourceBytes": 65634, - "elapsedMs": 362.4177079999936, + "elapsedMs": 331.2283329999991, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -820,11 +820,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 373.14825, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 333.245625, "result": { "actualSourceBytes": 65634, - "elapsedMs": 370.36125000000175, + "elapsedMs": 330.9397919999992, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -832,11 +832,11 @@ } }, { - "linearMemoryHighWaterBytes": 22151168, - "outerWallMs": 368.5005, + "linearMemoryHighWaterBytes": 22282240, + "outerWallMs": 331.83750000000003, "result": { "actualSourceBytes": 65634, - "elapsedMs": 366.0301670000045, + "elapsedMs": 329.5143339999995, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -848,37 +848,37 @@ } ], "component": { - "blake3": "a18b24b2270bbde1ff5f16e2ba31b637ec476043f6b0d05ae6f8cebdb71edaf7", - "buildMs": 29196.525708, - "bytes": 152426759, - "instantiateMs": 14863.789999999999 + "blake3": "9e7ff11ea1f2c832fb57eeb06aeb9a0e1e18fa13f22b9f63035ab5f97e121740", + "buildMs": 29495.421625, + "bytes": 172175994, + "instantiateMs": 14294.210416 }, "concurrencyAtLargestSize": { - "linearMemoryHighWaterBytes": 22413312, - "outerWallMs": 29.148833999999997, + "linearMemoryHighWaterBytes": 22544384, + "outerWallMs": 26.96975, "result": { - "baselineTimerMs": 2.43241599999601, - "elapsedMs": 24.54570899999817, - "incrementalSiblingDelayMs": 22.0964590000076, + "baselineTimerMs": 2.691665999998804, + "elapsedMs": 22.169207999999344, + "incrementalSiblingDelayMs": 19.465167000000292, "outputBytes": 65634, "requestedMs": 1, - "siblingIssuedMs": 24.52887500000361, - "transformMs": 21.92041700000118 + "siblingIssuedMs": 22.156832999999097, + "transformMs": 19.48108299999876 } }, "controlsAtLargestSize": { - "linearMemoryHighWaterBytes": 22413312, - "outerWallMs": 411.56100000000004, + "linearMemoryHighWaterBytes": 22544384, + "outerWallMs": 390.371125, "result": { "cancellation": { "cancelled": true, - "completedMs": 203.83533299999544, - "issuedMs": 194.94354100000055, + "completedMs": 195.88845899999976, + "issuedMs": 187.035167, "message": "execution job cancelled", "requestedMs": 1 }, "timeout": { - "completedMs": 205.5270840000012, + "completedMs": 192.2898750000004, "message": "execution job timed out", "timedOut": true } @@ -887,17 +887,17 @@ "environment": { "arch": "aarch64", "artifactCache": null, - "cargo": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)", - "commitHint": "058b904201154bd2f89e1d07dd56629cbbcfbe67", + "cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)", + "commitHint": "012a07cc553ec91ab308e071ab8622358f5cfec1", "dirty": false, "os": "macos", - "rustc": "rustc 1.95.0 (59807616e 2026-04-14)", + "rustc": "rustc 1.98.1 (48a229cea 2026-09-01)", "unoptimized": null, "wasmtimeCache": null }, "inputs": { - "benchmarkHash": "9c271ca9f5517af7f4b5cc7638d3398b2a844e94e85c9e6775382aa0b1bc0a8f", - "runtimeHash": "791eeb5d424bbd485542532b553a58c7ecd7fc63d50c25921724032f95f17ccb" + "benchmarkHash": "bccc8d574c50193654300d836469eb52a13a895f08860614ec07f523e2f3630c", + "runtimeHash": "242cc8726fad9a244984ee6a65ef40e05a648ffdb3d191fba426affff17a0e65" }, "iterations": 3, "mode": "strip", @@ -914,5 +914,5 @@ 65536 ], "target": "p3", - "wasmLinearMemoryHighWaterBytes": 22413312 + "wasmLinearMemoryHighWaterBytes": 22544384 } diff --git a/tests/typescript_transform_latency/results/2026-09-01-p3-transform-macos-aarch64.json b/tests/typescript_transform_latency/results/2026-09-21-p3-transform-macos-aarch64.json similarity index 66% rename from tests/typescript_transform_latency/results/2026-09-01-p3-transform-macos-aarch64.json rename to tests/typescript_transform_latency/results/2026-09-21-p3-transform-macos-aarch64.json index a7d61a5f..e7e46168 100644 --- a/tests/typescript_transform_latency/results/2026-09-01-p3-transform-macos-aarch64.json +++ b/tests/typescript_transform_latency/results/2026-09-21-p3-transform-macos-aarch64.json @@ -5,15 +5,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 4.92329200000313, - "medianMs": 1.7232499999990978, + "maximumMs": 3.355125000001862, + "medianMs": 1.3375000000014552, "samples": [ { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 9.066416, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 6.297750000000001, "result": { "actualSourceBytes": 4190, - "elapsedMs": 4.92329200000313, + "elapsedMs": 3.355125000001862, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -21,11 +21,11 @@ } }, { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 2.255667, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 1.858792, "result": { "actualSourceBytes": 4190, - "elapsedMs": 1.5434999999997672, + "elapsedMs": 1.3375000000014552, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -33,11 +33,11 @@ } }, { - "linearMemoryHighWaterBytes": 12648448, - "outerWallMs": 2.445792, + "linearMemoryHighWaterBytes": 12713984, + "outerWallMs": 1.690167, "result": { "actualSourceBytes": 4190, - "elapsedMs": 1.7232499999990978, + "elapsedMs": 1.2469170000003942, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -52,15 +52,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 196.0192090000019, - "medianMs": 193.28579199999876, + "maximumMs": 182.63562500000265, + "medianMs": 179.19895799999722, "samples": [ { - "linearMemoryHighWaterBytes": 19660800, - "outerWallMs": 196.69229199999998, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 183.211125, "result": { "actualSourceBytes": 4158, - "elapsedMs": 196.0192090000019, + "elapsedMs": 182.63562500000265, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -68,11 +68,11 @@ } }, { - "linearMemoryHighWaterBytes": 19660800, - "outerWallMs": 192.868208, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 179.884, "result": { "actualSourceBytes": 4158, - "elapsedMs": 191.63033399999767, + "elapsedMs": 179.19895799999722, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -80,11 +80,11 @@ } }, { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 194.077084, + "linearMemoryHighWaterBytes": 19791872, + "outerWallMs": 179.5455, "result": { "actualSourceBytes": 4158, - "elapsedMs": 193.28579199999876, + "elapsedMs": 178.88724999999977, "kind": "inline", "overflowed": false, "requestedSourceBytes": 4096, @@ -99,15 +99,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 203.46879199999967, - "medianMs": 203.02408400000056, + "maximumMs": 189.4549169999991, + "medianMs": 188.75408400000015, "samples": [ { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 203.376542, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 190.262833, "result": { "actualSourceBytes": 4190, - "elapsedMs": 202.2744160000002, + "elapsedMs": 189.4549169999991, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -115,11 +115,11 @@ } }, { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 203.80083299999998, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 189.571, "result": { "actualSourceBytes": 4190, - "elapsedMs": 203.02408400000056, + "elapsedMs": 188.75408400000015, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -127,11 +127,11 @@ } }, { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 204.26587500000002, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 188.431084, "result": { "actualSourceBytes": 4190, - "elapsedMs": 203.46879199999967, + "elapsedMs": 187.80637500000012, "kind": "entry", "overflowed": false, "requestedSourceBytes": 4096, @@ -146,15 +146,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 202.54300000000148, - "medianMs": 201.89691700000185, + "maximumMs": 190.9185409999991, + "medianMs": 188.3441669999993, "samples": [ { - "linearMemoryHighWaterBytes": 19726336, - "outerWallMs": 203.558708, + "linearMemoryHighWaterBytes": 19857408, + "outerWallMs": 191.574208, "result": { "actualSourceBytes": 4190, - "elapsedMs": 202.54300000000148, + "elapsedMs": 190.9185409999991, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -162,11 +162,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 202.74975, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 188.935708, "result": { "actualSourceBytes": 4190, - "elapsedMs": 201.89691700000185, + "elapsedMs": 188.3441669999993, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -174,11 +174,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 202.349625, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 188.245542, "result": { "actualSourceBytes": 4190, - "elapsedMs": 201.5948339999995, + "elapsedMs": 187.5882500000007, "kind": "esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -193,15 +193,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 190.83241700000144, - "medianMs": 190.47520799999984, + "maximumMs": 178.9862920000014, + "medianMs": 176.3634579999998, "samples": [ { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 194.08149999999998, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 178.830541, "result": { "actualSourceBytes": 4190, - "elapsedMs": 190.83241700000144, + "elapsedMs": 176.3634579999998, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -209,11 +209,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 193.3505, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 178.548667, "result": { "actualSourceBytes": 4190, - "elapsedMs": 190.47520799999984, + "elapsedMs": 175.95008299999972, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -221,11 +221,11 @@ } }, { - "linearMemoryHighWaterBytes": 19791872, - "outerWallMs": 193.434375, + "linearMemoryHighWaterBytes": 19922944, + "outerWallMs": 181.569875, "result": { "actualSourceBytes": 4190, - "elapsedMs": 190.3537499999984, + "elapsedMs": 178.9862920000014, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 4096, @@ -240,15 +240,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 202.91345800000272, - "medianMs": 202.61854200000016, + "maximumMs": 189.0903330000001, + "medianMs": 188.17375000000175, "samples": [ { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 203.983834, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 188.393375, "result": { "actualSourceBytes": 4190, - "elapsedMs": 202.91345800000272, + "elapsedMs": 187.7307499999988, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -256,11 +256,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 201.590125, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 188.784875, "result": { "actualSourceBytes": 4190, - "elapsedMs": 200.40329199999903, + "elapsedMs": 188.17375000000175, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -268,11 +268,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 203.408708, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 189.896916, "result": { "actualSourceBytes": 4190, - "elapsedMs": 202.61854200000016, + "elapsedMs": 189.0903330000001, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 4096, @@ -287,15 +287,15 @@ "sourceBytes": 4096, "summary": { "iterations": 3, - "maximumMs": 201.20429199999853, - "medianMs": 199.2011249999996, + "maximumMs": 179.54566599999998, + "medianMs": 178.54929099999936, "samples": [ { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 196.18075, + "linearMemoryHighWaterBytes": 19988480, + "outerWallMs": 180.244417, "result": { "actualSourceBytes": 4193, - "elapsedMs": 195.18920900000012, + "elapsedMs": 179.54566599999998, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 4096, @@ -303,11 +303,11 @@ } }, { - "linearMemoryHighWaterBytes": 19857408, - "outerWallMs": 200.205041, + "linearMemoryHighWaterBytes": 20054016, + "outerWallMs": 179.183875, "result": { "actualSourceBytes": 4193, - "elapsedMs": 199.2011249999996, + "elapsedMs": 178.54929099999936, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 4096, @@ -315,11 +315,11 @@ } }, { - "linearMemoryHighWaterBytes": 19922944, - "outerWallMs": 202.59925, + "linearMemoryHighWaterBytes": 20054016, + "outerWallMs": 179.155709, "result": { "actualSourceBytes": 4193, - "elapsedMs": 201.20429199999853, + "elapsedMs": 178.48466700000063, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 4096, @@ -334,15 +334,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 5.607958000000508, - "medianMs": 5.453207999998995, + "maximumMs": 4.771542000000409, + "medianMs": 4.554208000001381, "samples": [ { - "linearMemoryHighWaterBytes": 19922944, - "outerWallMs": 6.664459, + "linearMemoryHighWaterBytes": 20054016, + "outerWallMs": 5.686916999999999, "result": { "actualSourceBytes": 16464, - "elapsedMs": 5.453207999998995, + "elapsedMs": 4.771542000000409, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -350,11 +350,11 @@ } }, { - "linearMemoryHighWaterBytes": 19922944, - "outerWallMs": 6.846459, + "linearMemoryHighWaterBytes": 20054016, + "outerWallMs": 5.334333, "result": { "actualSourceBytes": 16464, - "elapsedMs": 5.607958000000508, + "elapsedMs": 4.554208000001381, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -362,11 +362,11 @@ } }, { - "linearMemoryHighWaterBytes": 19922944, - "outerWallMs": 6.4479999999999995, + "linearMemoryHighWaterBytes": 20054016, + "outerWallMs": 5.2387500000000005, "result": { "actualSourceBytes": 16464, - "elapsedMs": 5.161916999997629, + "elapsedMs": 4.477875000000495, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -381,15 +381,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 202.21366599999965, - "medianMs": 200.90179200000057, + "maximumMs": 182.55354200000147, + "medianMs": 182.3759170000012, "samples": [ { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 202.11337500000002, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 182.897667, "result": { "actualSourceBytes": 16432, - "elapsedMs": 200.90179200000057, + "elapsedMs": 181.97287499999948, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -397,11 +397,11 @@ } }, { - "linearMemoryHighWaterBytes": 20316160, - "outerWallMs": 203.498375, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 183.528042, "result": { "actualSourceBytes": 16432, - "elapsedMs": 202.21366599999965, + "elapsedMs": 182.55354200000147, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -409,11 +409,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 198.9045, + "linearMemoryHighWaterBytes": 20447232, + "outerWallMs": 183.38483399999998, "result": { "actualSourceBytes": 16432, - "elapsedMs": 197.7479170000006, + "elapsedMs": 182.3759170000012, "kind": "inline", "overflowed": false, "requestedSourceBytes": 16384, @@ -428,15 +428,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 231.24175000000105, - "medianMs": 229.840833000002, + "maximumMs": 225.97362499999872, + "medianMs": 222.46249999999964, "samples": [ { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 232.443459, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 221.023583, "result": { "actualSourceBytes": 16464, - "elapsedMs": 231.24175000000105, + "elapsedMs": 219.8508750000001, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -444,11 +444,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 229.22525, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 223.896125, "result": { "actualSourceBytes": 16464, - "elapsedMs": 228.17908399999945, + "elapsedMs": 222.46249999999964, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -456,11 +456,11 @@ } }, { - "linearMemoryHighWaterBytes": 20381696, - "outerWallMs": 230.959208, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 227.090791, "result": { "actualSourceBytes": 16464, - "elapsedMs": 229.840833000002, + "elapsedMs": 225.97362499999872, "kind": "entry", "overflowed": false, "requestedSourceBytes": 16384, @@ -475,15 +475,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 238.63079199999993, - "medianMs": 232.05412500000057, + "maximumMs": 227.45087499999863, + "medianMs": 226.72879100000137, "samples": [ { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 233.403083, + "linearMemoryHighWaterBytes": 20512768, + "outerWallMs": 226.253291, "result": { "actualSourceBytes": 16464, - "elapsedMs": 232.05412500000057, + "elapsedMs": 225.18745800000033, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -491,11 +491,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 233.108958, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 227.94174999999998, "result": { "actualSourceBytes": 16464, - "elapsedMs": 231.8668749999997, + "elapsedMs": 226.72879100000137, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -503,11 +503,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 239.961791, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 228.732125, "result": { "actualSourceBytes": 16464, - "elapsedMs": 238.63079199999993, + "elapsedMs": 227.45087499999863, "kind": "esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -522,15 +522,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 189.19083299999875, - "medianMs": 187.62770900000032, + "maximumMs": 192.91412499999933, + "medianMs": 187.20250000000124, "samples": [ { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 193.056208, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 193.42279200000002, "result": { "actualSourceBytes": 16464, - "elapsedMs": 185.9352910000016, + "elapsedMs": 186.8053749999999, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -538,11 +538,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 197.659667, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 200.49724999999998, "result": { "actualSourceBytes": 16464, - "elapsedMs": 189.19083299999875, + "elapsedMs": 192.91412499999933, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -550,11 +550,11 @@ } }, { - "linearMemoryHighWaterBytes": 20447232, - "outerWallMs": 194.73237500000002, + "linearMemoryHighWaterBytes": 20578304, + "outerWallMs": 194.251375, "result": { "actualSourceBytes": 16464, - "elapsedMs": 187.62770900000032, + "elapsedMs": 187.20250000000124, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 16384, @@ -569,15 +569,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 270.4706669999996, - "medianMs": 244.5450409999994, + "maximumMs": 225.5429999999997, + "medianMs": 224.1025410000002, "samples": [ { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 244.533625, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 226.653667, "result": { "actualSourceBytes": 16464, - "elapsedMs": 243.10345900000175, + "elapsedMs": 225.5429999999997, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -585,11 +585,11 @@ } }, { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 246.090375, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 223.770375, "result": { "actualSourceBytes": 16464, - "elapsedMs": 244.5450409999994, + "elapsedMs": 222.41654200000085, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -597,11 +597,11 @@ } }, { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 273.56629100000004, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 225.333125, "result": { "actualSourceBytes": 16464, - "elapsedMs": 270.4706669999996, + "elapsedMs": 224.1025410000002, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 16384, @@ -616,15 +616,15 @@ "sourceBytes": 16384, "summary": { "iterations": 3, - "maximumMs": 202.29983400000128, - "medianMs": 198.75395799999933, + "maximumMs": 193.62745799999905, + "medianMs": 193.10166599999863, "samples": [ { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 200.13879200000002, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 195.108084, "result": { "actualSourceBytes": 16467, - "elapsedMs": 198.75395799999933, + "elapsedMs": 193.62745799999905, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 16384, @@ -632,11 +632,11 @@ } }, { - "linearMemoryHighWaterBytes": 20512768, - "outerWallMs": 203.715709, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 194.166625, "result": { "actualSourceBytes": 16467, - "elapsedMs": 202.29983400000128, + "elapsedMs": 193.10166599999863, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 16384, @@ -644,11 +644,11 @@ } }, { - "linearMemoryHighWaterBytes": 20578304, - "outerWallMs": 196.558208, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 189.596791, "result": { "actualSourceBytes": 16467, - "elapsedMs": 195.0536250000005, + "elapsedMs": 188.4573330000003, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 16384, @@ -663,15 +663,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 18.78083399999923, - "medianMs": 18.279375000000073, + "maximumMs": 17.850374999998166, + "medianMs": 17.650541000000885, "samples": [ { - "linearMemoryHighWaterBytes": 20578304, - "outerWallMs": 21.547916999999998, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 20.254708, "result": { "actualSourceBytes": 65634, - "elapsedMs": 18.78083399999923, + "elapsedMs": 17.850374999998166, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -679,11 +679,11 @@ } }, { - "linearMemoryHighWaterBytes": 20578304, - "outerWallMs": 20.910999999999998, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 19.820625, "result": { "actualSourceBytes": 65634, - "elapsedMs": 18.279375000000073, + "elapsedMs": 17.650541000000885, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -691,11 +691,11 @@ } }, { - "linearMemoryHighWaterBytes": 20578304, - "outerWallMs": 20.532584, + "linearMemoryHighWaterBytes": 20643840, + "outerWallMs": 19.842624999999998, "result": { "actualSourceBytes": 65634, - "elapsedMs": 18.072040999999444, + "elapsedMs": 17.643874999999753, "kind": "api", "outputBytes": 49, "overflowed": false, @@ -710,15 +710,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 210.63966700000128, - "medianMs": 210.56608400000005, + "maximumMs": 196.84170900000024, + "medianMs": 196.12575000000103, "samples": [ { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 212.900917, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 199.15333299999998, "result": { "actualSourceBytes": 65602, - "elapsedMs": 210.56608400000005, + "elapsedMs": 196.84170900000024, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -726,11 +726,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 213.15004100000002, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 198.46983300000002, "result": { "actualSourceBytes": 65602, - "elapsedMs": 210.63966700000128, + "elapsedMs": 196.0890410000011, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -738,11 +738,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 213.08829200000002, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 198.510917, "result": { "actualSourceBytes": 65602, - "elapsedMs": 210.5042089999988, + "elapsedMs": 196.12575000000103, "kind": "inline", "overflowed": false, "requestedSourceBytes": 65536, @@ -757,15 +757,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 385.0064160000002, - "medianMs": 356.6277919999993, + "maximumMs": 316.73041699999885, + "medianMs": 316.0995409999996, "samples": [ { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 341.85725, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 319.102125, "result": { "actualSourceBytes": 65634, - "elapsedMs": 338.8820830000004, + "elapsedMs": 316.73041699999885, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -773,11 +773,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 388.886208, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 318.399625, "result": { "actualSourceBytes": 65634, - "elapsedMs": 385.0064160000002, + "elapsedMs": 316.07274999999936, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -785,11 +785,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 360.003833, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 318.42058299999997, "result": { "actualSourceBytes": 65634, - "elapsedMs": 356.6277919999993, + "elapsedMs": 316.0995409999996, "kind": "entry", "overflowed": false, "requestedSourceBytes": 65536, @@ -804,15 +804,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 342.3850419999999, - "medianMs": 341.15016599999944, + "maximumMs": 314.81354199999987, + "medianMs": 314.38533299999835, "samples": [ { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 344.210167, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 316.762834, "result": { "actualSourceBytes": 65634, - "elapsedMs": 341.15016599999944, + "elapsedMs": 314.38533299999835, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -820,11 +820,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 338.565416, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 316.524917, "result": { "actualSourceBytes": 65634, - "elapsedMs": 335.91749999999956, + "elapsedMs": 314.1324999999997, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -832,11 +832,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 345.238417, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 317.138416, "result": { "actualSourceBytes": 65634, - "elapsedMs": 342.3850419999999, + "elapsedMs": 314.81354199999987, "kind": "esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -851,15 +851,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 198.4002079999991, - "medianMs": 191.90791700000045, + "maximumMs": 177.8785829999997, + "medianMs": 175.94166700000096, "samples": [ { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 221.176459, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 194.53799999999998, "result": { "actualSourceBytes": 65634, - "elapsedMs": 198.4002079999991, + "elapsedMs": 174.09987499999988, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -867,11 +867,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 212.95837500000002, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 196.44400000000002, "result": { "actualSourceBytes": 65634, - "elapsedMs": 190.12862499999935, + "elapsedMs": 175.94166700000096, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -879,11 +879,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 214.98775, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 198.589125, "result": { "actualSourceBytes": 65634, - "elapsedMs": 191.90791700000045, + "elapsedMs": 177.8785829999997, "kind": "prepared-esm", "overflowed": false, "requestedSourceBytes": 65536, @@ -898,15 +898,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 362.0872500000005, - "medianMs": 355.45387499999924, + "maximumMs": 314.9001250000001, + "medianMs": 313.01941700000134, "samples": [ { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 364.90450000000004, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 315.589834, "result": { "actualSourceBytes": 65634, - "elapsedMs": 362.0872500000005, + "elapsedMs": 313.01941700000134, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -914,11 +914,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 357.782292, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 317.20225, "result": { "actualSourceBytes": 65634, - "elapsedMs": 354.8786249999994, + "elapsedMs": 314.9001250000001, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -926,11 +926,11 @@ } }, { - "linearMemoryHighWaterBytes": 22216704, - "outerWallMs": 358.012375, + "linearMemoryHighWaterBytes": 22347776, + "outerWallMs": 315.427042, "result": { "actualSourceBytes": 65634, - "elapsedMs": 355.45387499999924, + "elapsedMs": 313.0187500000011, "kind": "cjs", "overflowed": false, "requestedSourceBytes": 65536, @@ -945,15 +945,15 @@ "sourceBytes": 65536, "summary": { "iterations": 3, - "maximumMs": 215.04500000000007, - "medianMs": 212.55233399999997, + "maximumMs": 197.9337090000008, + "medianMs": 197.1626670000005, "samples": [ { - "linearMemoryHighWaterBytes": 22413312, - "outerWallMs": 217.54758299999997, + "linearMemoryHighWaterBytes": 22544384, + "outerWallMs": 199.638625, "result": { "actualSourceBytes": 65637, - "elapsedMs": 215.04500000000007, + "elapsedMs": 197.1626670000005, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 65536, @@ -961,11 +961,11 @@ } }, { - "linearMemoryHighWaterBytes": 22413312, - "outerWallMs": 215.097875, + "linearMemoryHighWaterBytes": 22544384, + "outerWallMs": 199.125916, "result": { "actualSourceBytes": 65637, - "elapsedMs": 212.55233399999997, + "elapsedMs": 196.73670799999857, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 65536, @@ -973,11 +973,11 @@ } }, { - "linearMemoryHighWaterBytes": 22413312, - "outerWallMs": 214.226167, + "linearMemoryHighWaterBytes": 22544384, + "outerWallMs": 200.287959, "result": { "actualSourceBytes": 65637, - "elapsedMs": 211.3668749999997, + "elapsedMs": 197.9337090000008, "kind": "transform-only", "overflowed": false, "requestedSourceBytes": 65536, @@ -989,37 +989,37 @@ } ], "component": { - "blake3": "08f8e8e6b6a771a133177dbbe29cca0e8cc85fd9c345b4c6228741df9a5cb450", - "buildMs": 30544.315458, - "bytes": 152440084, - "instantiateMs": 18173.024709 + "blake3": "fb925514a84741670490da6a63420b1eb6ad66967d0b8e18e86e560e670e39b7", + "buildMs": 29128.630333, + "bytes": 172146164, + "instantiateMs": 14446.916583 }, "concurrencyAtLargestSize": { - "linearMemoryHighWaterBytes": 22544384, - "outerWallMs": 27.138833, + "linearMemoryHighWaterBytes": 22609920, + "outerWallMs": 25.007708, "result": { - "baselineTimerMs": 2.9557500000009895, - "elapsedMs": 21.873999999999796, - "incrementalSiblingDelayMs": 18.900666999998062, + "baselineTimerMs": 2.647624999999607, + "elapsedMs": 20.379665999998902, + "incrementalSiblingDelayMs": 17.723165999999765, "outputBytes": 49, "requestedMs": 1, - "siblingIssuedMs": 21.856416999999055, - "transformMs": 19.132125000000087 + "siblingIssuedMs": 20.37079099999937, + "transformMs": 17.735000000000582 } }, "controlsAtLargestSize": { - "linearMemoryHighWaterBytes": 22544384, - "outerWallMs": 424.425, + "linearMemoryHighWaterBytes": 22609920, + "outerWallMs": 394.746583, "result": { "cancellation": { "cancelled": true, - "completedMs": 214.18362500000148, - "issuedMs": 204.99483300000065, + "completedMs": 198.23020799999904, + "issuedMs": 190.02629200000047, "message": "execution job cancelled", "requestedMs": 1 }, "timeout": { - "completedMs": 207.7208329999994, + "completedMs": 194.3871250000011, "message": "execution job timed out", "timedOut": true } @@ -1028,17 +1028,17 @@ "environment": { "arch": "aarch64", "artifactCache": null, - "cargo": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)", - "commitHint": "058b904201154bd2f89e1d07dd56629cbbcfbe67", + "cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)", + "commitHint": "012a07cc553ec91ab308e071ab8622358f5cfec1", "dirty": false, "os": "macos", - "rustc": "rustc 1.95.0 (59807616e 2026-04-14)", + "rustc": "rustc 1.98.1 (48a229cea 2026-09-01)", "unoptimized": null, "wasmtimeCache": null }, "inputs": { - "benchmarkHash": "9c271ca9f5517af7f4b5cc7638d3398b2a844e94e85c9e6775382aa0b1bc0a8f", - "runtimeHash": "791eeb5d424bbd485542532b553a58c7ecd7fc63d50c25921724032f95f17ccb" + "benchmarkHash": "bccc8d574c50193654300d836469eb52a13a895f08860614ec07f523e2f3630c", + "runtimeHash": "242cc8726fad9a244984ee6a65ef40e05a648ffdb3d191fba426affff17a0e65" }, "iterations": 3, "mode": "transform", @@ -1055,5 +1055,5 @@ 65536 ], "target": "p3", - "wasmLinearMemoryHighWaterBytes": 22544384 + "wasmLinearMemoryHighWaterBytes": 22609920 } diff --git a/tests/typescript_transform_latency/results/README.md b/tests/typescript_transform_latency/results/README.md index fd195b04..592cc163 100644 --- a/tests/typescript_transform_latency/results/README.md +++ b/tests/typescript_transform_latency/results/README.md @@ -10,11 +10,9 @@ Each configured size is a requested source-byte target. Generated declarations a case-specific suffixes can make the actual source slightly larger; samples in the requested 64-KiB profile contain 65,602–65,637 source bytes. -The reports' `environment.commitHint` records the checkout used for the workload -capture (`058b9042`), while the input hashes are the currentness keys. The -`benchmarkHash` was refreshed after capture only because `run.sh` gained -validation-only source-root wiring; the recorded timings and component artifacts -still come from the `058b9042` capture. +The reports' `environment.commitHint` records the exact ESM whitespace-scan +candidate used for the workload capture (`012a07cc`), while the runtime and +benchmark input hashes are the currentness keys. `run.sh --check` validates the checked-in report schema and complete P2/P3 by strip/transform matrix without claiming that historical timings describe the @@ -22,29 +20,33 @@ current runtime. `run.sh --check-current` additionally compares the stored input hashes with the checkout. A failure there requires a deliberate new measurement capture, not validation-only replacement of the runtime hash. -## 2026-09-01 macOS arm64 baseline +## 2026-09-21 macOS arm64 candidate All values below are milliseconds for the requested 64-KiB profile unless noted otherwise. | Target/mode | Direct API median / max | Inline median | Entry median | ESM median | Prepared ESM median | CJS median | |---|---:|---:|---:|---:|---:|---:| -| P2 strip | 19.46 / 20.50 | 202.95 | 11,040.89 | 11,094.26 | 10,944.89 | 372.51 | -| P2 transform | 18.99 / 19.03 | 200.90 | 322.43 | 323.80 | 198.70 | 343.44 | -| P3 strip | 19.62 / 20.77 | 207.63 | 11,036.76 | 11,169.50 | 10,934.69 | 366.03 | -| P3 transform | 18.28 / 18.78 | 210.57 | 356.63 | 341.15 | 191.91 | 355.45 | - -The same-runtime 1 ms timer was delayed by 18.90–22.10 ms while the synchronous -public transform API ran. A 1 ms execution timeout completed in 205.53–208.59 ms; -the cancellation callback was issued in 194.94–204.99 ms and completed in -203.84–214.18 ms. Those execution-control values include fresh runtime startup and +| P2 strip | 18.88 / 18.95 | 193.52 | 325.43 | 329.13 | 190.68 | 331.21 | +| P2 transform | 17.63 / 17.65 | 196.22 | 315.67 | 315.02 | 176.35 | 313.67 | +| P3 strip | 19.11 / 19.19 | 192.83 | 325.96 | 325.08 | 188.89 | 330.94 | +| P3 transform | 17.65 / 17.85 | 196.13 | 316.10 | 314.39 | 175.94 | 313.02 | + +The same-runtime 1 ms timer was delayed by 16.51–19.47 ms while the synchronous +public transform API ran. A 1 ms execution timeout completed in 192.29–194.39 ms; +the cancellation callback was issued in 185.90–190.03 ms and completed in +193.95–198.23 ms. Those execution-control values include fresh runtime startup and must not be described as native-transform time or preemption. -The highest observed guest linear-memory reservation was 22,544,384 bytes. This is -an instance-wide monotone high-water mark, not retained memory. Strip-mode prepared -ESM reproduces nearly all of the end-to-end ESM delay after transformation has -already finished, while similarly sized inputs with the same dense stripped padding -complete inline in about 203 ms and through CommonJS in about 370 ms. The separate -bottleneck is therefore in the ESM module-loading path, not generic compilation of -whitespace-preserving output; GOL-347 owns its phase-level profiling and measured -mitigation. +The highest observed guest linear-memory reservation was 22,609,920 bytes. This is +an instance-wide monotone high-water mark, not retained memory. The preceding +uninstrumented 2026-09-21 re-capture at pre-fix revision `90629f25` supplied +the requested 64-KiB strip-mode prepared-ESM medians: 11,088.28 ms for P2 +and 10,859.98 ms for P3. Its raw reports were replaced by the post-fix capture; +the [phase experiment results](../../esm_module_load_phases/results/README.md) +also record these baseline medians. After the whitespace-scan change they are +190.68 ms and 188.89 ms, reductions of 98.28% and 98.26%. Entry and ordinary +ESM paths now track the approximately 313–331 ms CommonJS range instead of +taking roughly 11 seconds. +The phase experiment retains the raw P2/P3 attribution samples and documents the +two source scanners responsible for the baseline delay. diff --git a/tools/dev-test.sh b/tools/dev-test.sh index e5a1b1ad..77ecbaa7 100755 --- a/tools/dev-test.sh +++ b/tools/dev-test.sh @@ -3,12 +3,13 @@ set -euo pipefail usage() { cat <<'EOF' -Usage: tools/dev-test.sh [test-r args...] +Usage: tools/dev-test.sh [test-r args...] Examples: tools/dev-test.sh p2 fast-start runtime module_resolution::esm_package_map_edge_cases tools/dev-test.sh p2 fast-run runtime module_resolution::esm_ tools/dev-test.sh p3 standard node_compat es_module__test_esm_pkgname_mjs + tools/dev-test.sh p2 release agentic_ts "" EOF } @@ -41,9 +42,9 @@ case "$target" in esac case "$profile" in - fast-start | fast-run | standard) ;; + fast-start | fast-run | standard | release) ;; *) - echo "Unknown profile '$profile'; expected fast-start, fast-run, or standard." >&2 + echo "Unknown profile '$profile'; expected fast-start, fast-run, standard, or release." >&2 exit 2 ;; esac @@ -52,6 +53,7 @@ repo_root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) cd "$repo_root" unset WASM_RQUICKJS_TEST_ARTIFACT_CACHE +unset WASM_RQUICKJS_TEST_COMPONENT_PROFILE unset WASM_RQUICKJS_TEST_DROP_CACHE unset WASM_RQUICKJS_TEST_LOCKED_BUILDS unset WASM_RQUICKJS_TEST_PRECOMPILE_COMPONENT @@ -62,6 +64,7 @@ unset WASM_RQUICKJS_TEST_WASMTIME_CACHE unset CARGO_NET_OFFLINE features="" +host_release=false test_r_args=() plan_only=${WASM_RQUICKJS_DEV_TEST_PLAN_ONLY:-0} @@ -90,8 +93,44 @@ case "$profile" in fi ;; standard) ;; + release) + export WASM_RQUICKJS_TEST_COMPONENT_PROFILE=release + export WASM_RQUICKJS_TEST_LOCKED_BUILDS=1 + host_release=true + ;; esac +if [[ "$profile" == release ]]; then + release_overrides=() + while IFS= read -r variable; do + case "$variable" in + CARGO_BUILD_RUSTFLAGS | CARGO_ENCODED_RUSTFLAGS | CARGO_HOME | CARGO_PROFILE_RELEASE_* | CARGO_TARGET_*_RUSTFLAGS | RUSTC | RUSTC_WRAPPER | RUSTC_WORKSPACE_WRAPPER | RUSTFLAGS) + release_overrides+=("$variable") + ;; + esac + done < <(compgen -e) + if ((${#release_overrides[@]})); then + echo "The release profile rejects inherited Cargo/Rust optimization overrides: ${release_overrides[*]}" >&2 + exit 2 + fi + + cargo_configs=() + config_root=$repo_root + while [[ "$config_root" != / ]]; do + for config_name in config config.toml; do + config_path="$config_root/.cargo/$config_name" + if [[ -f "$config_path" ]]; then + cargo_configs+=("$config_path") + fi + done + config_root=$(dirname "$config_root") + done + if ((${#cargo_configs[@]})); then + echo "The release profile rejects external Cargo configuration: ${cargo_configs[*]}" >&2 + exit 2 + fi +fi + prepare_p2_workspace() { local shadow="$repo_root/tmp/p2-dev-workspace" if [[ "$plan_only" == 1 ]]; then @@ -149,6 +188,7 @@ prepare_p2_workspace() { if [[ "$target" == p2 ]]; then prepare_p2_workspace + export WASM_RQUICKJS_TEST_HOST_LOCKFILE="$repo_root/tmp/p2-dev-workspace/Cargo.lock" if [[ -n "$features" ]]; then features="use-golem-wasmtime,$features" else @@ -156,6 +196,7 @@ if [[ "$target" == p2 ]]; then fi else export WASM_RQUICKJS_TEST_TARGET=p3 + export WASM_RQUICKJS_TEST_HOST_LOCKFILE="$repo_root/Cargo.lock" fi if [[ "$target" == p2 ]]; then @@ -168,7 +209,10 @@ else cargo_command=(cargo test --target-dir "$repo_root/target") fi -if [[ "$profile" != standard ]]; then +if [[ "$host_release" == true ]]; then + cargo_command+=(--release) +fi +if [[ "${WASM_RQUICKJS_TEST_LOCKED_BUILDS:-0}" == 1 ]]; then cargo_command+=(--locked) fi cargo_command+=(--test "$test_target") @@ -184,6 +228,9 @@ cargo_command+=("$@") if [[ "$plan_only" == 1 ]]; then printf 'features=%s\n' "$features" printf 'artifact_cache=%s\n' "${WASM_RQUICKJS_TEST_ARTIFACT_CACHE:-0}" + printf 'component_profile=%s\n' "${WASM_RQUICKJS_TEST_COMPONENT_PROFILE:-dev}" + printf 'host_release=%s\n' "$host_release" + printf 'host_lockfile=%s\n' "$WASM_RQUICKJS_TEST_HOST_LOCKFILE" printf 'locked_builds=%s\n' "${WASM_RQUICKJS_TEST_LOCKED_BUILDS:-0}" printf 'precompile_component=%s\n' "${WASM_RQUICKJS_TEST_PRECOMPILE_COMPONENT:-0}" printf 'prepared_component_cache=%s\n' "${WASM_RQUICKJS_TEST_PREPARED_COMPONENT_CACHE:-0}"