Merge "tp: rework version detection logic in startup metric" into main
diff --git a/src/trace_processor/perfetto_sql/stdlib/wattson/cpu_split.sql b/src/trace_processor/perfetto_sql/stdlib/wattson/cpu_split.sql
index b4988b7..8c496d9 100644
--- a/src/trace_processor/perfetto_sql/stdlib/wattson/cpu_split.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/wattson/cpu_split.sql
@@ -73,8 +73,8 @@
-- Left join since some CPUs may only match the 2D LUT
LEFT JOIN _filtered_curves_1d lut ON
iff.policy = lut.policy AND
- iff.idle = lut.idle AND
- iff.freq = lut.freq_khz;
+ iff.freq = lut.freq_khz AND
+ iff.idle = lut.idle;
CREATE PERFETTO TABLE _stats_cpu0
AS
diff --git a/src/trace_processor/perfetto_sql/stdlib/wattson/curves/ungrouped.sql b/src/trace_processor/perfetto_sql/stdlib/wattson/curves/ungrouped.sql
index 307025d..ca678a7 100644
--- a/src/trace_processor/perfetto_sql/stdlib/wattson/curves/ungrouped.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/wattson/curves/ungrouped.sql
@@ -73,23 +73,23 @@
FROM _idle_freq_l3_hit_l3_miss_slice as base
LEFT JOIN _filtered_curves_2d lut4 ON
base.freq_0 = lut4.freq_khz AND
- base.freq_4 = lut4.other_freq_khz AND
base.policy_4 = lut4.other_policy AND
+ base.freq_4 = lut4.other_freq_khz AND
lut4.idle = 255
LEFT JOIN _filtered_curves_2d lut5 ON
base.freq_0 = lut5.freq_khz AND
- base.freq_5 = lut5.other_freq_khz AND
base.policy_5 = lut5.other_policy AND
+ base.freq_5 = lut5.other_freq_khz AND
lut5.idle = 255
LEFT JOIN _filtered_curves_2d lut6 ON
base.freq_0 = lut6.freq_khz AND
- base.freq_6 = lut6.other_freq_khz AND
base.policy_6 = lut6.other_policy AND
+ base.freq_6 = lut6.other_freq_khz AND
lut6.idle = 255
LEFT JOIN _filtered_curves_2d lut7 ON
base.freq_0 = lut7.freq_khz AND
- base.freq_7 = lut7.other_freq_khz AND
base.policy_7 = lut7.other_policy AND
+ base.freq_7 = lut7.other_freq_khz AND
lut7.idle = 255
-- Needs to be at least 1us to reduce inconsequential rows.
WHERE dur > time_from_us(1);
@@ -169,44 +169,44 @@
FROM _get_max_vote as base
-- LUT for 2D dependencies
LEFT JOIN _filtered_curves_2d lut0 ON
- lut0.idle = base.idle_0 AND
lut0.freq_khz = base.freq_0 AND
+ lut0.other_policy = base.max_policy_vote AND
lut0.other_freq_khz = base.max_freq_vote AND
- lut0.other_policy = base.max_policy_vote
+ lut0.idle = base.idle_0
LEFT JOIN _filtered_curves_2d lut1 ON
- lut1.idle = base.idle_1 AND
lut1.freq_khz = base.freq_1 AND
+ lut1.other_policy = base.max_policy_vote AND
lut1.other_freq_khz = base.max_freq_vote AND
- lut1.other_policy = base.max_policy_vote
+ lut1.idle = base.idle_1
LEFT JOIN _filtered_curves_2d lut2 ON
- lut2.idle = base.idle_2 AND
lut2.freq_khz = base.freq_2 AND
+ lut2.other_policy = base.max_policy_vote AND
lut2.other_freq_khz = base.max_freq_vote AND
- lut2.other_policy = base.max_policy_vote
+ lut2.idle = base.idle_2
LEFT JOIN _filtered_curves_2d lut3 ON
- lut3.idle = base.idle_3 AND
lut3.freq_khz = base.freq_3 AND
+ lut3.other_policy = base.max_policy_vote AND
lut3.other_freq_khz = base.max_freq_vote AND
- lut3.other_policy = base.max_policy_vote
+ lut3.idle = base.idle_3
-- LUT for static curve lookup
LEFT JOIN _filtered_curves_2d static_2d ON
static_2d.freq_khz = base.freq_0 AND
- static_2d.other_freq_khz = base.max_freq_vote AND
static_2d.other_policy = base.max_policy_vote AND
+ static_2d.other_freq_khz = base.max_freq_vote AND
static_2d.idle = 255
LEFT JOIN _filtered_curves_1d static_1d ON
- static_1d.freq_khz = base.freq_0 AND
static_1d.policy = 0 AND
+ static_1d.freq_khz = base.freq_0 AND
static_1d.idle = 255
-- LUT joins for L3 cache
LEFT JOIN _filtered_curves_l3 l3_hit_lut ON
- l3_hit_lut.action= 'hit' AND
l3_hit_lut.freq_khz = base.freq_0 AND
+ l3_hit_lut.other_policy = base.max_policy_vote AND
l3_hit_lut.other_freq_khz = base.max_freq_vote AND
- l3_hit_lut.other_policy = base.max_policy_vote
+ l3_hit_lut.action = 'hit'
LEFT JOIN _filtered_curves_l3 l3_miss_lut ON
- l3_miss_lut.action = 'miss' AND
l3_miss_lut.freq_khz = base.freq_0 AND
+ l3_miss_lut.other_policy = base.max_policy_vote AND
l3_miss_lut.other_freq_khz = base.max_freq_vote AND
- l3_miss_lut.other_policy = base.max_policy_vote;
+ l3_miss_lut.action = 'miss';
diff --git a/src/trace_processor/tables/winscope_tables.py b/src/trace_processor/tables/winscope_tables.py
index 1562eb9..245c072 100644
--- a/src/trace_processor/tables/winscope_tables.py
+++ b/src/trace_processor/tables/winscope_tables.py
@@ -26,7 +26,7 @@
class_name='InputMethodClientsTable',
sql_name='__intrinsic_inputmethod_clients',
columns=[
- C('ts', CppInt64()),
+ C('ts', CppInt64(), ColumnFlag.SORTED),
C('arg_set_id', CppUint32()),
],
tabledoc=TableDoc(
@@ -42,7 +42,7 @@
class_name='InputMethodManagerServiceTable',
sql_name='__intrinsic_inputmethod_manager_service',
columns=[
- C('ts', CppInt64()),
+ C('ts', CppInt64(), ColumnFlag.SORTED),
C('arg_set_id', CppUint32()),
],
tabledoc=TableDoc(
@@ -58,7 +58,7 @@
class_name='InputMethodServiceTable',
sql_name='__intrinsic_inputmethod_service',
columns=[
- C('ts', CppInt64()),
+ C('ts', CppInt64(), ColumnFlag.SORTED),
C('arg_set_id', CppUint32()),
],
tabledoc=TableDoc(
@@ -74,7 +74,7 @@
class_name='SurfaceFlingerLayersSnapshotTable',
sql_name='surfaceflinger_layers_snapshot',
columns=[
- C('ts', CppInt64()),
+ C('ts', CppInt64(), ColumnFlag.SORTED),
C('arg_set_id', CppUint32()),
],
tabledoc=TableDoc(
@@ -106,7 +106,7 @@
class_name='SurfaceFlingerTransactionsTable',
sql_name='surfaceflinger_transactions',
columns=[
- C('ts', CppInt64()),
+ C('ts', CppInt64(), ColumnFlag.SORTED),
C('arg_set_id', CppUint32()),
],
tabledoc=TableDoc(
@@ -123,7 +123,7 @@
class_name='ViewCaptureTable',
sql_name='__intrinsic_viewcapture',
columns=[
- C('ts', CppInt64()),
+ C('ts', CppInt64(), ColumnFlag.SORTED),
C('arg_set_id', CppUint32()),
],
tabledoc=TableDoc(
@@ -140,7 +140,7 @@
sql_name='window_manager_shell_transitions',
columns=[
C('ts', CppInt64()),
- C('transition_id', CppInt64()),
+ C('transition_id', CppInt64(), ColumnFlag.SORTED),
C('arg_set_id', CppUint32()),
],
tabledoc=TableDoc(
diff --git a/src/traceconv/pprof_builder.cc b/src/traceconv/pprof_builder.cc
index 4018776..130399c 100644
--- a/src/traceconv/pprof_builder.cc
+++ b/src/traceconv/pprof_builder.cc
@@ -974,7 +974,7 @@
// Find parent of the parent
auto parent_id_it = parents.find(current_parent_id);
- PERFETTO_CHECK(parent_id_it != interned_ids.end());
+ PERFETTO_CHECK(parent_id_it != parents.end());
current_parent_id = parent_id_it->second;
}
diff --git a/ui/build.js b/ui/build.js
index c6fecd0..2df02c3 100644
--- a/ui/build.js
+++ b/ui/build.js
@@ -740,7 +740,8 @@
const absDir = path.isAbsolute(dir) ? dir : pjoin(ROOT_DIR, dir);
// Add a fs watch if in watch mode.
if (cfg.watch) {
- fs.watch(absDir, {recursive: true}, (_eventType, filePath) => {
+ fs.watch(absDir, {recursive: true}, (_eventType, relFilePath) => {
+ const filePath = pjoin(absDir, relFilePath);
if (!filterFn(filePath)) return;
if (cfg.verbose) {
console.log('File change detected', _eventType, filePath);
diff --git a/ui/package.json b/ui/package.json
index d04ed9f..8d1c489 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -69,7 +69,7 @@
"pngjs": "^7.0.0",
"prettier": "^3.3.2",
"puppeteer": "^22.12.1",
- "rollup": "^4.18.0",
+ "rollup": "^2.79.1",
"rollup-plugin-re": "^1.0.7",
"rollup-plugin-sourcemaps": "^0.6.3",
"rollup-plugin-uglify": "^6.0.4",
diff --git a/ui/pnpm-lock.yaml b/ui/pnpm-lock.yaml
index c360716..328c796 100644
--- a/ui/pnpm-lock.yaml
+++ b/ui/pnpm-lock.yaml
@@ -129,10 +129,10 @@
version: 9.6.0
'@rollup/plugin-commonjs':
specifier: ^26.0.1
- version: 26.0.1(rollup@4.18.0)
+ version: 26.0.1(rollup@2.79.1)
'@rollup/plugin-node-resolve':
specifier: ^15.2.3
- version: 15.2.3(rollup@4.18.0)
+ version: 15.2.3(rollup@2.79.1)
'@types/jest':
specifier: ^29.5.12
version: 29.5.12
@@ -188,17 +188,17 @@
specifier: ^22.12.1
version: 22.12.1(typescript@5.5.2)
rollup:
- specifier: ^4.18.0
- version: 4.18.0
+ specifier: ^2.79.1
+ version: 2.79.1
rollup-plugin-re:
specifier: ^1.0.7
version: 1.0.7
rollup-plugin-sourcemaps:
specifier: ^0.6.3
- version: 0.6.3(@types/node@20.14.9)(rollup@4.18.0)
+ version: 0.6.3(@types/node@20.14.9)(rollup@2.79.1)
rollup-plugin-uglify:
specifier: ^6.0.4
- version: 6.0.4(rollup@4.18.0)
+ version: 6.0.4(rollup@2.79.1)
sass:
specifier: ^1.77.6
version: 1.77.6
@@ -1521,7 +1521,7 @@
- supports-color
dev: true
- /@rollup/plugin-commonjs@26.0.1(rollup@4.18.0):
+ /@rollup/plugin-commonjs@26.0.1(rollup@2.79.1):
resolution: {integrity: sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==}
engines: {node: '>=16.0.0 || 14 >= 14.17'}
peerDependencies:
@@ -1530,16 +1530,16 @@
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.0.2(rollup@4.18.0)
+ '@rollup/pluginutils': 5.0.2(rollup@2.79.1)
commondir: 1.0.1
estree-walker: 2.0.2
glob: 10.4.2
is-reference: 1.2.1
magic-string: 0.30.10
- rollup: 4.18.0
+ rollup: 2.79.1
dev: true
- /@rollup/plugin-node-resolve@15.2.3(rollup@4.18.0):
+ /@rollup/plugin-node-resolve@15.2.3(rollup@2.79.1):
resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -1548,16 +1548,16 @@
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.0.2(rollup@4.18.0)
+ '@rollup/pluginutils': 5.0.2(rollup@2.79.1)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-builtin-module: 3.2.1
is-module: 1.0.0
resolve: 1.22.2
- rollup: 4.18.0
+ rollup: 2.79.1
dev: true
- /@rollup/pluginutils@3.1.0(rollup@4.18.0):
+ /@rollup/pluginutils@3.1.0(rollup@2.79.1):
resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
engines: {node: '>= 8.0.0'}
peerDependencies:
@@ -1566,10 +1566,10 @@
'@types/estree': 0.0.39
estree-walker: 1.0.1
picomatch: 2.3.1
- rollup: 4.18.0
+ rollup: 2.79.1
dev: true
- /@rollup/pluginutils@5.0.2(rollup@4.18.0):
+ /@rollup/pluginutils@5.0.2(rollup@2.79.1):
resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -1581,137 +1581,9 @@
'@types/estree': 1.0.5
estree-walker: 2.0.2
picomatch: 2.3.1
- rollup: 4.18.0
+ rollup: 2.79.1
dev: true
- /@rollup/rollup-android-arm-eabi@4.18.0:
- resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-android-arm64@4.18.0:
- resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-darwin-arm64@4.18.0:
- resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-darwin-x64@4.18.0:
- resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-arm-gnueabihf@4.18.0:
- resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-arm-musleabihf@4.18.0:
- resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-arm64-gnu@4.18.0:
- resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-arm64-musl@4.18.0:
- resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-powerpc64le-gnu@4.18.0:
- resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-riscv64-gnu@4.18.0:
- resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-s390x-gnu@4.18.0:
- resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-x64-gnu@4.18.0:
- resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-x64-musl@4.18.0:
- resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-win32-arm64-msvc@4.18.0:
- resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-win32-ia32-msvc@4.18.0:
- resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-win32-x64-msvc@4.18.0:
- resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/@sinclair/typebox@0.27.8:
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
dev: true
@@ -5198,7 +5070,7 @@
rollup-pluginutils: 2.8.2
dev: true
- /rollup-plugin-sourcemaps@0.6.3(@types/node@20.14.9)(rollup@4.18.0):
+ /rollup-plugin-sourcemaps@0.6.3(@types/node@20.14.9)(rollup@2.79.1):
resolution: {integrity: sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==}
engines: {node: '>=10.0.0'}
peerDependencies:
@@ -5208,20 +5080,20 @@
'@types/node':
optional: true
dependencies:
- '@rollup/pluginutils': 3.1.0(rollup@4.18.0)
+ '@rollup/pluginutils': 3.1.0(rollup@2.79.1)
'@types/node': 20.14.9
- rollup: 4.18.0
+ rollup: 2.79.1
source-map-resolve: 0.6.0
dev: true
- /rollup-plugin-uglify@6.0.4(rollup@4.18.0):
+ /rollup-plugin-uglify@6.0.4(rollup@2.79.1):
resolution: {integrity: sha512-ddgqkH02klveu34TF0JqygPwZnsbhHVI6t8+hGTcYHngPkQb5MIHI0XiztXIN/d6V9j+efwHAqEL7LspSxQXGw==}
peerDependencies:
rollup: '>=0.66.0 <2'
dependencies:
'@babel/code-frame': 7.22.5
jest-worker: 24.9.0
- rollup: 4.18.0
+ rollup: 2.79.1
serialize-javascript: 2.1.2
uglify-js: 3.17.4
dev: true
@@ -5232,29 +5104,11 @@
estree-walker: 0.6.1
dev: true
- /rollup@4.18.0:
- resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ /rollup@2.79.1:
+ resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
+ engines: {node: '>=10.0.0'}
hasBin: true
- dependencies:
- '@types/estree': 1.0.5
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.18.0
- '@rollup/rollup-android-arm64': 4.18.0
- '@rollup/rollup-darwin-arm64': 4.18.0
- '@rollup/rollup-darwin-x64': 4.18.0
- '@rollup/rollup-linux-arm-gnueabihf': 4.18.0
- '@rollup/rollup-linux-arm-musleabihf': 4.18.0
- '@rollup/rollup-linux-arm64-gnu': 4.18.0
- '@rollup/rollup-linux-arm64-musl': 4.18.0
- '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0
- '@rollup/rollup-linux-riscv64-gnu': 4.18.0
- '@rollup/rollup-linux-s390x-gnu': 4.18.0
- '@rollup/rollup-linux-x64-gnu': 4.18.0
- '@rollup/rollup-linux-x64-musl': 4.18.0
- '@rollup/rollup-win32-arm64-msvc': 4.18.0
- '@rollup/rollup-win32-ia32-msvc': 4.18.0
- '@rollup/rollup-win32-x64-msvc': 4.18.0
fsevents: 2.3.3
dev: true