diff --git a/package.json b/package.json
index dfb5f438..d7ea6824 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "beatmapper",
- "version": "0.5.2",
+ "version": "0.5.3",
"type": "module",
"private": true,
"packageManager": "pnpm@11.5.2",
@@ -41,7 +41,7 @@
"@zag-js/file-utils": "^1.37.0",
"@zag-js/react": "^1.37.0",
"@zag-js/utils": "^1.37.0",
- "bsmap": "^3.0.0",
+ "bsmap": "^3.1.4",
"date-fns": "^4.1.0",
"fflate": "^0.8.2",
"file-saver": "^2.0.5",
diff --git a/patches/bsmap@3.0.0.patch b/patches/bsmap@3.0.0.patch
deleted file mode 100644
index 4a7fd937..00000000
--- a/patches/bsmap@3.0.0.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/esm/beatmap/mapping/converter.js b/esm/beatmap/mapping/converter.js
-index 0cdd9261759ec36f0a3820c84b0209f0b7fdec9c..e821dacf2b71dc1f94fb1884e4f59185ac522511 100644
---- a/esm/beatmap/mapping/converter.js
-+++ b/esm/beatmap/mapping/converter.js
-@@ -51,7 +51,7 @@ export function convertBeatmap(type, targetVersion, data, sourceVersion) {
- throw new Error(`Unsupported ${type} beatmap version ${String(targetVersion)}.`);
- }
- if (sourceVersion !== undefined &&
-- !isSupportedMajorVersion(type, sourceVersion)) {
-+ !isSupportedMajorVersion(type === "lightshow" ? "difficulty" : type, sourceVersion)) {
- throw new Error(`Unsupported ${type} source beatmap version ${String(sourceVersion)}.`);
- }
- logger?.tInfo(tag('convertBeatmap'), `Converting wrapper contents for ${type} to version ${targetVersion}`);
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ecc00e3b..e0b78bca 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4,9 +4,6 @@ settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
-patchedDependencies:
- bsmap@3.0.0: 6cfaacd3d5eadb931916451fc8b85a511b9a095d091d9031127a781ca189c509
-
importers:
.:
@@ -96,8 +93,8 @@ importers:
specifier: ^1.37.0
version: 1.41.2
bsmap:
- specifier: ^3.0.0
- version: 3.0.0(patch_hash=6cfaacd3d5eadb931916451fc8b85a511b9a095d091d9031127a781ca189c509)(typescript@6.0.3)
+ specifier: ^3.1.4
+ version: 3.1.4(typescript@6.0.3)
date-fns:
specifier: ^4.1.0
version: 4.4.0
@@ -271,6 +268,10 @@ packages:
resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==}
engines: {node: '>=6.9.0'}
+ '@babel/generator@7.29.8':
+ resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-annotate-as-pure@7.29.7':
resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==}
engines: {node: '>=6.9.0'}
@@ -285,8 +286,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-create-regexp-features-plugin@7.29.7':
- resolution: {integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==}
+ '@babel/helper-create-regexp-features-plugin@7.29.10':
+ resolution: {integrity: sha512-/YY9soQuWa8TURtHXHT+GbklpbAA+dZErxFGHIr6qgDg96xuGWrTAs1+MfjgVJPF0YLQsOVsOYs8lhgsPbOinQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -338,6 +339,10 @@ packages:
resolution: {integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-string-parser@7.29.11':
+ resolution: {integrity: sha512-snZbO7MEDOof+hvNa97EjEY7qD7h2kwvQr5AJC3ZhQudKW5dnej6k3kP9NQV88hJwaS8vDqRLFo9rivLEhle2g==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-string-parser@7.29.7':
resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
engines: {node: '>=6.9.0'}
@@ -358,6 +363,11 @@ packages:
resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==}
engines: {node: '>=6.9.0'}
+ '@babel/parser@7.29.11':
+ resolution: {integrity: sha512-OZ6+oaK7GMyg3IfCpj8JOmn8n+w2rJbDT0LLfVDTLb1ZFeKDh3AiNELgCMUw175IJHSkLl74hG0M0VLsvx+gag==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
'@babel/parser@7.29.7':
resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==}
engines: {node: '>=6.0.0'}
@@ -447,8 +457,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-block-scoping@7.29.7':
- resolution: {integrity: sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==}
+ '@babel/plugin-transform-block-scoping@7.29.11':
+ resolution: {integrity: sha512-iARF4jjHSM0v8DImCACPXrwEltBP3DgqDpXTvjAMBAVpyEY0LiGss78wvI+KtmW+IJNEvZ5sOhPDCsOsXsIybA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -465,8 +475,8 @@ packages:
peerDependencies:
'@babel/core': ^7.12.0
- '@babel/plugin-transform-classes@7.29.7':
- resolution: {integrity: sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==}
+ '@babel/plugin-transform-classes@7.29.11':
+ resolution: {integrity: sha512-f8kTDM/nTvpLeafb+TJ4jboFr/Y3BbC+QzgPpPGzSKJqWLnj9LW0WLqv4XKA11LX5sr+EgvLE6Ix3YsCEusodw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -573,8 +583,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-systemjs@7.29.7':
- resolution: {integrity: sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==}
+ '@babel/plugin-transform-modules-systemjs@7.29.8':
+ resolution: {integrity: sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -657,8 +667,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-regenerator@7.29.7':
- resolution: {integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==}
+ '@babel/plugin-transform-regenerator@7.29.8':
+ resolution: {integrity: sha512-0UpIXPtdDtMXfnV2OJAVMLpj3H/92vmkA6lpSRakmycJvj3VUy6Xs1dM8tXRugupykr5WB+LpiVl0J8LMVg2mg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -681,8 +691,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-spread@7.29.7':
- resolution: {integrity: sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==}
+ '@babel/plugin-transform-spread@7.29.11':
+ resolution: {integrity: sha512-5xWGhfuMgbOfIjsk/I2c4uMnoqRwQdKYi4QjvybQrcEVE0G9/p3qmIkp2Sxe8YF8DGNNVs5whfwNqIM5684XoQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -740,6 +750,10 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
+ '@babel/runtime@7.29.10':
+ resolution: {integrity: sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/runtime@7.29.7':
resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==}
engines: {node: '>=6.9.0'}
@@ -748,10 +762,18 @@ packages:
resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==}
engines: {node: '>=6.9.0'}
+ '@babel/traverse@7.29.10':
+ resolution: {integrity: sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/traverse@7.29.7':
resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==}
engines: {node: '>=6.9.0'}
+ '@babel/types@7.29.11':
+ resolution: {integrity: sha512-WCsemW40Cpc6gouC1SrY6PBaZ+oLRlEVY9XBvZBI7il/HyUrb2nJ505wE1MHEFyDZNnrWDEuy4jL50WVHfTTSQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/types@7.29.7':
resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
engines: {node: '>=6.9.0'}
@@ -1329,6 +1351,13 @@ packages:
peerDependencies:
three: '>= 0.159.0'
+ '@napi-rs/lzma-linux-x64-gnu@1.5.1':
+ resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==}
+ engines: {node: ^22.20 || ^24.12 || >=25}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
'@napi-rs/wasm-runtime@1.1.4':
resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==}
peerDependencies:
@@ -1654,8 +1683,8 @@ packages:
rollup:
optional: true
- '@rollup/plugin-terser@1.0.0':
- resolution: {integrity: sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==}
+ '@rollup/plugin-terser@1.0.2':
+ resolution: {integrity: sha512-+UihHnuLnQDQ/9wog7ym+7oawCXkjTIo0WwkK7s//0mkktTN0VhYk6fGVxH+NtGzW064w5RCGgreMDxRVhHCzw==}
engines: {node: '>=20.0.0'}
peerDependencies:
rollup: ^2.0.0||^3.0.0||^4.0.0
@@ -1663,8 +1692,8 @@ packages:
rollup:
optional: true
- '@rollup/pluginutils@5.4.0':
- resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==}
+ '@rollup/pluginutils@5.5.1':
+ resolution: {integrity: sha512-P9ZvnfouRu4MSC+ilERaw6FmZs8zqKhpHxEs4aGDGWQAMzQGXnhvCSvoNwokfNvdt7t3Y5Y4p6gStQgezeIqug==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
@@ -1672,141 +1701,141 @@ packages:
rollup:
optional: true
- '@rollup/rollup-android-arm-eabi@4.61.1':
- resolution: {integrity: sha512-JnBB8MdXj45cajvTuO5FmPlvFVJRQgvrz1uSEl3NwqFnReAPGwb8EanbGi4z2nRaqLzjJSv5/JmycoTKlRZxHA==}
+ '@rollup/rollup-android-arm-eabi@4.66.0':
+ resolution: {integrity: sha512-7y4XeoUHPecjfUDRmap8U0q6bjfLAPn7uOGT8BKyqy8uNDOjsGS8rlBhOx6sZLVwwjN6hapvGl2mW9/IS6UNww==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.61.1':
- resolution: {integrity: sha512-Jx2g7iSjw4AOT0HDPHM9RV3GNjRXwybWtSFZiZAYUTjUwjVrYIwq3kBf+LnhqJlzXFAqTAh2F7IGI+O568exPw==}
+ '@rollup/rollup-android-arm64@4.66.0':
+ resolution: {integrity: sha512-e8WugYZXpgqrlMXLCudYVRAxAcK7AIY36JxRDwFRD38L9q62G1VsEUW6ijXxzjxYjNB8i1zo3B/ycIQ/qjLC/Q==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.61.1':
- resolution: {integrity: sha512-0F1L/Z3Eqv8mT2n3dCpeO8GcTvHvVqkP5/t6DMsn0KzhYVcg+s7Ncl5DS8qjKYEeio6Az0Gt6nyBORay5qIlCA==}
+ '@rollup/rollup-darwin-arm64@4.66.0':
+ resolution: {integrity: sha512-6vkDCfyDjNLokh+Rt1D2KtNgFFMEPdkWha/mbtP4cSjh9xiN8T/JBS/A7nDYKjmMAXHrvR9J3AzUk2LtFbIBLg==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.61.1':
- resolution: {integrity: sha512-qLttcH871ujY4YcVfUSShhOw+CsoTatYz8gRbHO7Bb92QH059/P0y5do1KMs41fY0BpD2x4AJH/gID0zFiqVKQ==}
+ '@rollup/rollup-darwin-x64@4.66.0':
+ resolution: {integrity: sha512-/mzZAX0+Q6eXxvkR0HB0RZCCrsbmFD8DpsvCQoMYABDfq/DjqkbfytuJ7GvZ4AhR/Mgis2fXbZrGqfbcK2Z5fA==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.61.1':
- resolution: {integrity: sha512-fUI4RapGE0Oh3mb8mgfvC1O2nU1RpDZUKnDQm3xB1Ipg7C2wTs5Kstz7G2uWK99a8S2yTMq8/P4uycwNa0nJyw==}
+ '@rollup/rollup-freebsd-arm64@4.66.0':
+ resolution: {integrity: sha512-JQJx9E8tUjGqed1RevDmoHaS3V30ODdV8uyvGxlwd4K5se6bkPrMeltSybqAtpJ+ltDRfo7FORQaJG2Hd5nGog==}
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.61.1':
- resolution: {integrity: sha512-H5YrdvJaDtI/U9/emrD4b++xkvp3y/JvOe4rizHbxvkyMfRS/CiRYdji+Pl8D0brEaNFWUh1drQxgAGIl6Xudw==}
+ '@rollup/rollup-freebsd-x64@4.66.0':
+ resolution: {integrity: sha512-GEaUQQjMaG7X1304qMgqLjzCKv6CdDirzJSS+UqUs3xhJ9X2Kjzu0JDbLoUU42FWxwmZqz+SsgU1SlQv9GNRVA==}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.61.1':
- resolution: {integrity: sha512-Q8CBCCQtDFrYtXoeUXSrnFXKOnyUhx6bz+SkL6A0E7V8kAiCJ5pamq1WtbfpVGhR5TSpXY6ak3avmDc5fHTyJA==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.66.0':
+ resolution: {integrity: sha512-DgmAU9N0NhDQDzHgFUocDio7zRO8jR/nY/obDGvCR8zbJ6J77Fg6X49yPuExJUpYPbC82EOaRhG969pWzUSnHQ==}
cpu: [arm]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-arm-musleabihf@4.61.1':
- resolution: {integrity: sha512-nwnhk1581l0FBVellGcVCAT0Oi06onEA3WB53sf01VO3I0UPBkMH9sXONYME2K0ovXcNayJfNtHfm6mpJElatQ==}
+ '@rollup/rollup-linux-arm-musleabihf@4.66.0':
+ resolution: {integrity: sha512-zG09YZ+sk/HoHq+P9gYB0EseQ3M20RbDuKGWey6fbiMDV1LxfXvhgSW9jDaCcvFPMgfLXpimzXY+UYvA8R2mLQ==}
cpu: [arm]
os: [linux]
libc: [musl]
- '@rollup/rollup-linux-arm64-gnu@4.61.1':
- resolution: {integrity: sha512-x5Xr49hwt3hdW75UOZm3395YwwzPyauktslv29KpWL/T+vVAzoT3azLcTWv0eMciBNrx+DYjH4paehHoLpPvpg==}
+ '@rollup/rollup-linux-arm64-gnu@4.66.0':
+ resolution: {integrity: sha512-vlArhgyXbcVc1D4WZPoiYuqJIaMiSHBj6etRXua0KlfjlZeuiQyVAPYi0/N49O4mSp3u1iGUBLEjNa8ec81XZg==}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-arm64-musl@4.61.1':
- resolution: {integrity: sha512-unMS3H73DpaoPyyEVPjGKleM/s0mkmsauTENpw4INQY8y4+IuLNjkueQ5QCtC0D3N38Y38yhAU8OoZ20S2Tm6w==}
+ '@rollup/rollup-linux-arm64-musl@4.66.0':
+ resolution: {integrity: sha512-RxJZtk0G87YPotDaRDvRqStV8cbqLSC5TroHvQHHKsqBg0ok64RxKgtXeFsa7FBcy7mb4crBrG3xK8USWIqWNA==}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@rollup/rollup-linux-loong64-gnu@4.61.1':
- resolution: {integrity: sha512-zNZzGRnAhwjFEYmvphJRV5XaQGjs62cCmeYYHUT//NbvEnHauw+I85nGG+SiVg5ld4GX8D1IbKIX+ozITQnhMQ==}
+ '@rollup/rollup-linux-loong64-gnu@4.66.0':
+ resolution: {integrity: sha512-qlGcw959PrLLkZhiBxF3OZ6SQvj+OKY85mCqGNgSRs4LZlDJ6ICqmz6UdxtINdhcXYwNIbZoapQVBAmZlD2hUQ==}
cpu: [loong64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-loong64-musl@4.61.1':
- resolution: {integrity: sha512-LdpWGL8X209B2SIvWjqlc8VZgM6PKfontSerGepuldQmHYrAOtnMCXeJkxXGbC+PPZVOuu5czJo7fNV6aeW8rQ==}
+ '@rollup/rollup-linux-loong64-musl@4.66.0':
+ resolution: {integrity: sha512-TvTI/7Cy0WvRA1SXgwzu6bwXBnMpmeT/ln5q7WvSpqmXy1VbmEnY8HVIDQNBiaHJvoWqRr0M4FNo7qiqtyMaFw==}
cpu: [loong64]
os: [linux]
libc: [musl]
- '@rollup/rollup-linux-ppc64-gnu@4.61.1':
- resolution: {integrity: sha512-EC5kTtNaNGOmbMGqar8dvJy6y/hg99GAwjfBz++pxZhQATXGcRjd6c5en5wcbru0vkRmiMGsQKdMJOOf6sza4g==}
+ '@rollup/rollup-linux-ppc64-gnu@4.66.0':
+ resolution: {integrity: sha512-UZEDkSoDRZ50NyLj70nO6mpIK3dvs2cPTTvQb1bA/PBDmr9fvn5KiESuGfh6srd7Zi6Lt9Sv2sVrFr1QoHLvPQ==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-ppc64-musl@4.61.1':
- resolution: {integrity: sha512-8hiwp6D4acEcNK78I4rP0/XtS1sknWIAMJBPdR4l6zUtyTm5KiTDr5bXmWt4foY7nAN7AThDHgkLIEZOWKbzWw==}
+ '@rollup/rollup-linux-ppc64-musl@4.66.0':
+ resolution: {integrity: sha512-VRbxTvagLh3HRcysx1CNq+HHcvJbSebNI6fCbk7jwmmWHkXjrSIV3igXBpRHUTFdg0pagWGu50xoSZXnrZHjVQ==}
cpu: [ppc64]
os: [linux]
libc: [musl]
- '@rollup/rollup-linux-riscv64-gnu@4.61.1':
- resolution: {integrity: sha512-10dh/h/BqA7DuMPWSxkR8uks18FRwnwOEqr5zOTEl+NOwP/OMzKX8OFR/Of9xxDA7D5qef1Nzar5WDD2kCCr1g==}
+ '@rollup/rollup-linux-riscv64-gnu@4.66.0':
+ resolution: {integrity: sha512-uWdJpvYqh0LE/i+YBL3sMX0a2kUkICENjmrPmyBmMOFc3jMrs6MSQH/pMD+VIpGEoUcr3XkHGLLfymzIqPSRRg==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-riscv64-musl@4.61.1':
- resolution: {integrity: sha512-YKJ5lg35DP17gcAOggnihe+APw9HLyj1Xn7gsmGumBJAUDa6NGXNixJzmkWLhcK9TOuuyQjdamzvJefkO7qHZQ==}
+ '@rollup/rollup-linux-riscv64-musl@4.66.0':
+ resolution: {integrity: sha512-3FUd88pxgWAjK60OgCrika1AcNG+u8zaCdWjg4TlcZTDkt5TGyci8ZU64l3OJ9ax0MEjw3P80B/3PoSQDCLwJQ==}
cpu: [riscv64]
os: [linux]
libc: [musl]
- '@rollup/rollup-linux-s390x-gnu@4.61.1':
- resolution: {integrity: sha512-Mlil5G2Jj6a7B3LWGctg+XPL9vdXYuzCtNXfxOQ0nPjc2m6ueUktocPGH9bnAM0bNRKb/bAWTujUU7IJQdQA+g==}
+ '@rollup/rollup-linux-s390x-gnu@4.66.0':
+ resolution: {integrity: sha512-qT2rMmgyej62g5AdwktK+Bt2lBu497pzWZe12TTQ5JmZjOYPnEwcPEAOSLTBxBV+6gIES75rXm219v/QkT397A==}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-x64-gnu@4.61.1':
- resolution: {integrity: sha512-bVWIOIk6pV01p4CdUbPP7CJ/434z+OooYjDuFcR+44N35YvKUC66G8MGnvcWx5mWKW3g61J+t74l3Kj15Kwn2Q==}
+ '@rollup/rollup-linux-x64-gnu@4.66.0':
+ resolution: {integrity: sha512-E46rnZgp7J84Qwe8RMlF+rgimnDo/9fuiGbUArGB0ZkMWf97O7yeSCfKls5x/YJOF0RcuSe9RctuKe1hlxICiA==}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-x64-musl@4.61.1':
- resolution: {integrity: sha512-qy5pBvZbqNFheBz61R1rzsezjm0J7O2oNGoWtGoY89SZYLUfxAJTBAqDChqAIdB4rCiIbi9nF7yZ83GnNiLwSw==}
+ '@rollup/rollup-linux-x64-musl@4.66.0':
+ resolution: {integrity: sha512-Uz1HiZe+qBzqgdPsON+z0wRx3WdATuyzwvGT6cr2VZVrqqko0ZJVfkrQJtwDMuDcAfXYdo7XucaxJ7lTLjEcgg==}
cpu: [x64]
os: [linux]
libc: [musl]
- '@rollup/rollup-openbsd-x64@4.61.1':
- resolution: {integrity: sha512-E83TXjI4zm0+5f2qO+UOudaCYIhYwpJ5jq6YCZNIZ+6CbfhKrkAGezeiASBL9ElxAxFsRS9ZhESv8mfnj6TKeg==}
+ '@rollup/rollup-openbsd-x64@4.66.0':
+ resolution: {integrity: sha512-Ph7TX3Ex5qdfcb7Tc6eEPugVkRfJ501eTovO4T5029YObfpZ7dzn3RiwpFvGp50nk2QUhvBMZ0PFGlEj6pOYTg==}
cpu: [x64]
os: [openbsd]
- '@rollup/rollup-openharmony-arm64@4.61.1':
- resolution: {integrity: sha512-fbWnKqVkjrJN38vNe3ahkbk6iejS/3b0Nt7EEtPpE6RBacZcGXNKbzfHN3GUUlXOPghUg0j6XUGrtjX9z1sIvA==}
+ '@rollup/rollup-openharmony-arm64@4.66.0':
+ resolution: {integrity: sha512-nZYPEya7ZkeNxUEiF7qmNZbyLTyRN3MK5cO22KqsaoneUzXJuzBIQRw+7BEQy9LGj2O5vrCE9V3EpK06FYo1tQ==}
cpu: [arm64]
os: [openharmony]
- '@rollup/rollup-win32-arm64-msvc@4.61.1':
- resolution: {integrity: sha512-ArMl38iVAbk0New1ogihQNY6iphLi4ZaRsa037gUzv5yeKPY8TD3Dmy4x2RNC1VztU/uqm+G+/RwFrSka3Oy2g==}
+ '@rollup/rollup-win32-arm64-msvc@4.66.0':
+ resolution: {integrity: sha512-u7aTfS3R6C4hRsqXSzaO6qLZYLVuMkHMvcWlux4IM8IJif1VCl2cgPBSo5gSNoFoStQypQP+qwq8W1IyFBf1QQ==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.61.1':
- resolution: {integrity: sha512-0mYtjHS9ucAbcATycCNK9IGBk/cCe/ma7EmSLGZdsxnOA8cjRIyU04wDpVAD9NiOfLUR9KTxdiO53uOkherqjQ==}
+ '@rollup/rollup-win32-ia32-msvc@4.66.0':
+ resolution: {integrity: sha512-e+i9ueHrH1Bafb0cf0woAIVJbYcoC8vRaD+vz+Xi8w6jz9cYJSV3vyKO6ELGSZ6g4W4MJOm2WPLN4/nQf77h7w==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-gnu@4.61.1':
- resolution: {integrity: sha512-gK1iCEPfpoSG9wfBihXxvBMi8ZfcWffYkEsC/Eih+iFENTaewvNcrEQ69lIOWYO5pePHKLHHO7nq5AILGO/HQQ==}
+ '@rollup/rollup-win32-x64-gnu@4.66.0':
+ resolution: {integrity: sha512-KfTCbrtr2zXTqH2E1F+uYlFTrYibxHKqPAHobpd8Kfg49cEHmuHebOidCTDRgqG1suaPFX7oejFQeGE71zWKfA==}
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.61.1':
- resolution: {integrity: sha512-X+zaP2x+j4RXGfbp/seSoRHWnPxzApilDszisZxbYH5C/jTxFhCtDNdPGZb9lJyYPs24wGxruPF7Y+sIXt9Gzw==}
+ '@rollup/rollup-win32-x64-msvc@4.66.0':
+ resolution: {integrity: sha512-xA+neBh1bqkqaS3b48T2UHZnDsTIpb9B0h+TdBzynjF/ymCpYndhfY10RqW0qSKB1HqqQA83mINVhAdwA+mETg==}
cpu: [x64]
os: [win32]
@@ -2543,6 +2572,11 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
+ acorn@8.19.0:
+ resolution: {integrity: sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
ajv-formats@3.0.1:
resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==}
peerDependencies:
@@ -2649,6 +2683,11 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
+ baseline-browser-mapping@2.11.34:
+ resolution: {integrity: sha512-Aqr8mA1kIvyJ3UY5YAY7ib8LSo1DmDMbMnVqGPtsKW1LxaFQFwn9Eb3yvq2fUKJsRvaXjnAV7R5osqETapzNiA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
bcp-47-match@2.0.3:
resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==}
@@ -2669,8 +2708,12 @@ packages:
brace-expansion@1.1.15:
resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==}
- brace-expansion@2.1.1:
- resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==}
+ brace-expansion@2.1.7:
+ resolution: {integrity: sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==}
+
+ brace-expansion@5.0.12:
+ resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==}
+ engines: {node: 20 || >=22}
brace-expansion@5.0.6:
resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==}
@@ -2696,8 +2739,13 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
- bsmap@3.0.0:
- resolution: {integrity: sha512-ILjvIqykVBlxwt51/yn5dRxWevTApytVRkM0voEKEA326ObO3s5i6O5d8nATM3uTyFsX8JWOs368Lt68nqI96A==}
+ browserslist@4.29.5:
+ resolution: {integrity: sha512-khTmKu5NGYTotqcYo8Bew2k4RAE9PuXRSFRXG2lQBrCEQHyeQ/vX6gKMxfokwywBsLiXZMnHsmWMG1pnO8J7uQ==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ bsmap@3.1.4:
+ resolution: {integrity: sha512-v+KP4J2b19gqFH6UyKVn0b5L9QTMkn2yFbmn8XDRmKfQXyRt2Lx6bKG2P79O+rASmZBb3gveNB7BGTeRgp9j8w==}
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@@ -2742,6 +2790,9 @@ packages:
caniuse-lite@1.0.30001797:
resolution: {integrity: sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w==}
+ caniuse-lite@1.0.30001819:
+ resolution: {integrity: sha512-LFUqIIAwpzsIuevnKnsR9qnStBcgzPShTX61lBwN9uFkkf8o8zLiebEjbW8AYtZiF+1YKDWfdt/pWDtMuG8Xwg==}
+
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -2853,8 +2904,9 @@ packages:
resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
engines: {node: '>= 0.6'}
- core-js-compat@3.49.0:
- resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==}
+ core-js-compat@3.51.0:
+ resolution: {integrity: sha512-52r6fkXgxv4GLMjmFcMWRx7X9bw071xTTdrDcdyPGRqU2oE+9pCG0bAOMifSBdLw0JRBZKEF0q3B55qPlLuE8g==}
+ engines: {node: '>=6.4.0'}
cors@2.8.6:
resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==}
@@ -2998,6 +3050,9 @@ packages:
electron-to-chromium@1.5.368:
resolution: {integrity: sha512-7RckJJK4uESJF9PxvfMWd3TGqIiieUTG4HxnKaKuIpGbcr+r2ZEB3g2gAhCP3Fqm42vJSzLfgab9eva/C4/XVw==}
+ electron-to-chromium@1.5.467:
+ resolution: {integrity: sha512-Nw9X371rtZmYcBSnEijnCDONILjs93biCZO34juC7MBOmK8E+GFnyD4T/WvyrlJkppul7oxg6TwvtKst9SODTw==}
+
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -3016,6 +3071,10 @@ packages:
error-ex@1.3.4:
resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
+ es-abstract-get@1.0.0:
+ resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==}
+ engines: {node: '>= 0.4'}
+
es-abstract@1.24.2:
resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==}
engines: {node: '>= 0.4'}
@@ -3039,8 +3098,8 @@ packages:
resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
engines: {node: '>= 0.4'}
- es-to-primitive@1.3.0:
- resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
+ es-to-primitive@1.3.4:
+ resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==}
engines: {node: '>= 0.4'}
esast-util-from-estree@2.0.0:
@@ -3216,8 +3275,8 @@ packages:
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
- function.prototype.name@1.1.8:
- resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
+ function.prototype.name@1.2.0:
+ resolution: {integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==}
engines: {node: '>= 0.4'}
functions-have-names@1.2.3:
@@ -3481,6 +3540,10 @@ packages:
resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==}
engines: {node: '>= 0.4'}
+ is-core-module@2.17.0:
+ resolution: {integrity: sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==}
+ engines: {node: '>= 0.4'}
+
is-data-view@1.0.2:
resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
engines: {node: '>= 0.4'}
@@ -3492,6 +3555,10 @@ packages:
is-decimal@2.0.1:
resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
+ is-document.all@1.0.0:
+ resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==}
+ engines: {node: '>= 0.4'}
+
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -3834,9 +3901,6 @@ packages:
lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
- lodash.sortby@4.7.0:
- resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
-
lodash.truncate@4.4.2:
resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
@@ -3854,6 +3918,10 @@ packages:
resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==}
engines: {node: 20 || >=22}
+ lru-cache@11.5.3:
+ resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==}
+ engines: {node: 20 || >=22}
+
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -4098,6 +4166,10 @@ packages:
resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
engines: {node: 18 || 20 || >=22}
+ minimatch@10.2.6:
+ resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==}
+ engines: {node: 18 || 20 || >=22}
+
minimatch@3.1.5:
resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
@@ -4148,6 +4220,10 @@ packages:
resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==}
engines: {node: '>=18'}
+ node-releases@2.0.60:
+ resolution: {integrity: sha512-OmO8+GM1JUZqXET720VrJCwkjUCXmCMQm0Z3UDDRbfNLHS4NEAvY60j5jiFv0tkKw2PNNlqOLhahVmwJIOLDIQ==}
+ engines: {node: '>=18'}
+
normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
@@ -4208,8 +4284,8 @@ packages:
outdent@0.8.0:
resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==}
- own-keys@1.0.1:
- resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
+ own-keys@1.0.2:
+ resolution: {integrity: sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==}
engines: {node: '>= 0.4'}
p-limit@5.0.0:
@@ -4285,6 +4361,10 @@ packages:
resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
engines: {node: '>=12'}
+ picomatch@4.0.7:
+ resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==}
+ engines: {node: '>=12'}
+
pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
@@ -4409,10 +4489,6 @@ packages:
proxy-memoize@3.0.1:
resolution: {integrity: sha512-VDdG/VYtOgdGkWJx7y0o7p+zArSf2383Isci8C+BP3YXgMYDoPd3cCBjw0JdWb6YBb9sFiOPbAADDVTPJnh+9g==}
- punycode@2.3.1:
- resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
- engines: {node: '>=6'}
-
qs@6.15.2:
resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==}
engines: {node: '>=0.6'}
@@ -4522,12 +4598,12 @@ packages:
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
engines: {node: '>= 0.4'}
- regenerate-unicode-properties@10.2.2:
- resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==}
+ regenerate-unicode-properties@10.3.0:
+ resolution: {integrity: sha512-9ns8odR8e9q3otKeHj3DE80jZYKg6zVeZKE+zQmRKXFoVUcuiTGeO6iusDhPRoIQQPVPRvH+SfBhrTud4eczuw==}
engines: {node: '>=4'}
- regenerate@1.4.2:
- resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+ regenerate@1.5.0:
+ resolution: {integrity: sha512-1s+CxXjJ71i7LNVy8nYwg47XV4y6lAnOEhsMtSKq3WpmPfhl9LuKlTqKIn/3yUpE8lBz+W+TT88Bxyhnr0U4yw==}
regex-recursion@6.0.2:
resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
@@ -4542,15 +4618,15 @@ packages:
resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines: {node: '>= 0.4'}
- regexpu-core@6.4.0:
- resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==}
+ regexpu-core@6.5.3:
+ resolution: {integrity: sha512-E8VgUoSK+LMQrLboDxavm76MTBGrQhx9RiNuomRmYnZ10Uw12HrI8fkxOOncktb2hBpzIZ9SV/347euQHG5z+g==}
engines: {node: '>=4'}
regjsgen@0.8.0:
resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==}
- regjsparser@0.13.1:
- resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==}
+ regjsparser@0.13.4:
+ resolution: {integrity: sha512-EWV80YgFaVgFrjGCAsV7oybp4GOxbls5RzBg8OB0nKEVXsBJR1JlV8Di1JhCROg3MzTfe1RI8yitIm1eOs68iA==}
hasBin: true
rehype-expressive-code@0.41.7:
@@ -4603,6 +4679,11 @@ packages:
engines: {node: '>= 0.4'}
hasBin: true
+ resolve@1.22.13:
+ resolution: {integrity: sha512-Dj/cW9zBV2aRj6XzCxuGIs3ESZKv02jixne3q6jFZYZ3/Tg09gHHviSMDL4kObh9pqSahdRHEnDoaP2gn8YLhA==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
reusify@1.1.0:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
@@ -4622,8 +4703,8 @@ packages:
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
- rollup@4.61.1:
- resolution: {integrity: sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA==}
+ rollup@4.66.0:
+ resolution: {integrity: sha512-Onq6/qO4ARhxIs+jYiHE0pYehadLyMECAiGEqQ+0/aWND3+2PmifJIIqBLYtuBODqHTlOUEQFtIVPyCy0Lck7A==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -4669,8 +4750,8 @@ packages:
resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==}
engines: {node: '>= 18'}
- serialize-javascript@7.0.5:
- resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==}
+ serialize-javascript@7.1.4:
+ resolution: {integrity: sha512-FqlEuoTq/zRmA4Lg6aOqyH3lCHbUtCB0bmHCeFniX2GBdDqMJM3FwdvEhlE5Pim1dlt2FfBdVPmUNNiGhhKqpw==}
engines: {node: '>=20.0.0'}
seroval-plugins@1.5.4:
@@ -4744,6 +4825,10 @@ packages:
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
engines: {node: '>= 0.4'}
+ side-channel@1.1.1:
+ resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==}
+ engines: {node: '>= 0.4'}
+
siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
@@ -4786,10 +4871,9 @@ packages:
resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
engines: {node: '>= 12'}
- source-map@0.8.0-beta.0:
- resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
- engines: {node: '>= 8'}
- deprecated: The work that was done in this beta branch won't be included in future versions
+ source-map@0.8.0:
+ resolution: {integrity: sha512-d8EqvL+k/SOXCreS/SUzg2ciyHqBBLcN/yuRjFsbvVhHTE2pgei7oAhmPM7kWFbkX6OSMQfUq4KbkF3au9lhYQ==}
+ engines: {node: '>= 12'}
space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
@@ -4833,8 +4917,8 @@ packages:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
- string.prototype.matchall@4.0.12:
- resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
+ string.prototype.matchall@4.1.0:
+ resolution: {integrity: sha512-tHNHTxInrYLCga9O9YGxWA3G9/nnzQw8UGAyqGx3Ar1pSTTzIuM4woFSq4SowkXCjJIwq5sIiQvEfRI9tCH1qQ==}
engines: {node: '>= 0.4'}
string.prototype.trim@1.2.11:
@@ -4905,6 +4989,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ terser@5.51.2:
+ resolution: {integrity: sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==}
+ engines: {node: '>=10'}
+ hasBin: true
+
three-mesh-bvh@0.8.3:
resolution: {integrity: sha512-4G5lBaF+g2auKX3P0yqx+MJC6oVt6sB5k+CchS6Ob0qvH0YIhuUk1eYr7ktsIpY+albCqE80/FVQGV190PmiAg==}
peerDependencies:
@@ -4944,9 +5033,6 @@ packages:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
- tr46@1.0.1:
- resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
-
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
@@ -5008,8 +5094,8 @@ packages:
resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
engines: {node: '>= 0.4'}
- typed-array-byte-offset@1.0.4:
- resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+ typed-array-byte-offset@1.0.5:
+ resolution: {integrity: sha512-0FHJvLPqZ7KJzp17O13jfsAjsqazgrxBu2zEK95PmUz8lv2+GjRuxUInCr2Rk9Dms3ihN21zJ929ZO43yJ95QQ==}
engines: {node: '>= 0.4'}
typed-array-length@1.0.8:
@@ -5176,6 +5262,12 @@ packages:
peerDependencies:
browserslist: '>= 4.21.0'
+ update-browserslist-db@1.3.4:
+ resolution: {integrity: sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
uqr@0.1.3:
resolution: {integrity: sha512-0rjE8iEJe4YmT9TOhwsZtqCMRLc5DXZUI2UEYUUg63ikBkqqE5EYWaI0etFe/5KUcmcYwLih2RND1kq+hrUJXA==}
@@ -5199,6 +5291,14 @@ packages:
typescript:
optional: true
+ valibot@1.5.0:
+ resolution: {integrity: sha512-nil6AkP2TChWL43Z5uJ6GTxX01CUA+g8LWUM+N/rB9NBbkUMaUsi9PUNzlUPgoKASgmx9f7eGOYpJ04/fSa6FQ==}
+ peerDependencies:
+ typescript: '>=5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
@@ -5328,15 +5428,9 @@ packages:
webgl-sdf-generator@1.1.1:
resolution: {integrity: sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==}
- webidl-conversions@4.0.2:
- resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
-
webpack-virtual-modules@0.6.2:
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
- whatwg-url@7.1.0:
- resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
-
which-boxed-primitive@1.1.1:
resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
engines: {node: '>= 0.4'}
@@ -5349,8 +5443,8 @@ packages:
resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
engines: {node: '>= 0.4'}
- which-typed-array@1.1.22:
- resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==}
+ which-typed-array@1.1.24:
+ resolution: {integrity: sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ==}
engines: {node: '>= 0.4'}
which@2.0.2:
@@ -5614,9 +5708,17 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.31
jsesc: 3.1.0
+ '@babel/generator@7.29.8':
+ dependencies:
+ '@babel/parser': 7.29.11
+ '@babel/types': 7.29.11
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+ jsesc: 3.1.0
+
'@babel/helper-annotate-as-pure@7.29.7':
dependencies:
- '@babel/types': 7.29.7
+ '@babel/types': 7.29.11
'@babel/helper-compilation-targets@7.29.7':
dependencies:
@@ -5634,16 +5736,16 @@ snapshots:
'@babel/helper-optimise-call-expression': 7.29.7
'@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7)
'@babel/helper-skip-transparent-expression-wrappers': 7.29.7
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.10
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.7)':
+ '@babel/helper-create-regexp-features-plugin@7.29.10(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
'@babel/helper-annotate-as-pure': 7.29.7
- regexpu-core: 6.4.0
+ regexpu-core: 6.5.3
semver: 6.3.1
'@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.7)':
@@ -5653,7 +5755,7 @@ snapshots:
'@babel/helper-plugin-utils': 7.29.7
debug: 4.4.3
lodash.debounce: 4.0.8
- resolve: 1.22.12
+ resolve: 1.22.13
transitivePeerDependencies:
- supports-color
@@ -5661,8 +5763,8 @@ snapshots:
'@babel/helper-member-expression-to-functions@7.29.7':
dependencies:
- '@babel/traverse': 7.29.7
- '@babel/types': 7.29.7
+ '@babel/traverse': 7.29.10
+ '@babel/types': 7.29.11
transitivePeerDependencies:
- supports-color
@@ -5684,7 +5786,7 @@ snapshots:
'@babel/helper-optimise-call-expression@7.29.7':
dependencies:
- '@babel/types': 7.29.7
+ '@babel/types': 7.29.11
'@babel/helper-plugin-utils@7.29.7': {}
@@ -5693,7 +5795,7 @@ snapshots:
'@babel/core': 7.29.7
'@babel/helper-annotate-as-pure': 7.29.7
'@babel/helper-wrap-function': 7.29.7
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.10
transitivePeerDependencies:
- supports-color
@@ -5702,17 +5804,19 @@ snapshots:
'@babel/core': 7.29.7
'@babel/helper-member-expression-to-functions': 7.29.7
'@babel/helper-optimise-call-expression': 7.29.7
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.10
transitivePeerDependencies:
- supports-color
'@babel/helper-skip-transparent-expression-wrappers@7.29.7':
dependencies:
- '@babel/traverse': 7.29.7
- '@babel/types': 7.29.7
+ '@babel/traverse': 7.29.10
+ '@babel/types': 7.29.11
transitivePeerDependencies:
- supports-color
+ '@babel/helper-string-parser@7.29.11': {}
+
'@babel/helper-string-parser@7.29.7': {}
'@babel/helper-validator-identifier@7.29.7': {}
@@ -5722,8 +5826,8 @@ snapshots:
'@babel/helper-wrap-function@7.29.7':
dependencies:
'@babel/template': 7.29.7
- '@babel/traverse': 7.29.7
- '@babel/types': 7.29.7
+ '@babel/traverse': 7.29.10
+ '@babel/types': 7.29.11
transitivePeerDependencies:
- supports-color
@@ -5732,6 +5836,10 @@ snapshots:
'@babel/template': 7.29.7
'@babel/types': 7.29.7
+ '@babel/parser@7.29.11':
+ dependencies:
+ '@babel/types': 7.29.11
+
'@babel/parser@7.29.7':
dependencies:
'@babel/types': 7.29.7
@@ -5740,7 +5848,7 @@ snapshots:
dependencies:
'@babel/core': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.10
transitivePeerDependencies:
- supports-color
@@ -5775,7 +5883,7 @@ snapshots:
dependencies:
'@babel/core': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.10
transitivePeerDependencies:
- supports-color
@@ -5796,7 +5904,7 @@ snapshots:
'@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
- '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-create-regexp-features-plugin': 7.29.10(@babel/core@7.29.7)
'@babel/helper-plugin-utils': 7.29.7
'@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.7)':
@@ -5809,7 +5917,7 @@ snapshots:
'@babel/core': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
'@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7)
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.10
transitivePeerDependencies:
- supports-color
@@ -5827,7 +5935,7 @@ snapshots:
'@babel/core': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7)':
+ '@babel/plugin-transform-block-scoping@7.29.11(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
@@ -5848,7 +5956,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-classes@7.29.7(@babel/core@7.29.7)':
+ '@babel/plugin-transform-classes@7.29.11(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
'@babel/helper-annotate-as-pure': 7.29.7
@@ -5856,7 +5964,7 @@ snapshots:
'@babel/helper-globals': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
'@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7)
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.10
transitivePeerDependencies:
- supports-color
@@ -5870,14 +5978,14 @@ snapshots:
dependencies:
'@babel/core': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.10
transitivePeerDependencies:
- supports-color
'@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
- '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-create-regexp-features-plugin': 7.29.10(@babel/core@7.29.7)
'@babel/helper-plugin-utils': 7.29.7
'@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.7)':
@@ -5888,7 +5996,7 @@ snapshots:
'@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
- '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-create-regexp-features-plugin': 7.29.10(@babel/core@7.29.7)
'@babel/helper-plugin-utils': 7.29.7
'@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.7)':
@@ -5927,7 +6035,7 @@ snapshots:
'@babel/core': 7.29.7
'@babel/helper-compilation-targets': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.10
transitivePeerDependencies:
- supports-color
@@ -5967,13 +6075,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-systemjs@7.29.7(@babel/core@7.29.7)':
+ '@babel/plugin-transform-modules-systemjs@7.29.8(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
'@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7)
'@babel/helper-plugin-utils': 7.29.7
'@babel/helper-validator-identifier': 7.29.7
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.10
transitivePeerDependencies:
- supports-color
@@ -5988,7 +6096,7 @@ snapshots:
'@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
- '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-create-regexp-features-plugin': 7.29.10(@babel/core@7.29.7)
'@babel/helper-plugin-utils': 7.29.7
'@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.7)':
@@ -6013,7 +6121,7 @@ snapshots:
'@babel/helper-plugin-utils': 7.29.7
'@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7)
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.10
transitivePeerDependencies:
- supports-color
@@ -6065,7 +6173,7 @@ snapshots:
'@babel/core': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.7)':
+ '@babel/plugin-transform-regenerator@7.29.8(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
@@ -6073,7 +6181,7 @@ snapshots:
'@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
- '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-create-regexp-features-plugin': 7.29.10(@babel/core@7.29.7)
'@babel/helper-plugin-utils': 7.29.7
'@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.7)':
@@ -6086,7 +6194,7 @@ snapshots:
'@babel/core': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-transform-spread@7.29.7(@babel/core@7.29.7)':
+ '@babel/plugin-transform-spread@7.29.11(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
@@ -6117,19 +6225,19 @@ snapshots:
'@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
- '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-create-regexp-features-plugin': 7.29.10(@babel/core@7.29.7)
'@babel/helper-plugin-utils': 7.29.7
'@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
- '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-create-regexp-features-plugin': 7.29.10(@babel/core@7.29.7)
'@babel/helper-plugin-utils': 7.29.7
'@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
- '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-create-regexp-features-plugin': 7.29.10(@babel/core@7.29.7)
'@babel/helper-plugin-utils': 7.29.7
'@babel/preset-env@7.29.7(@babel/core@7.29.7)':
@@ -6153,10 +6261,10 @@ snapshots:
'@babel/plugin-transform-async-generator-functions': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-async-to-generator': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-block-scoped-functions': 7.29.7(@babel/core@7.29.7)
- '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-block-scoping': 7.29.11(@babel/core@7.29.7)
'@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.7)
- '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-classes': 7.29.11(@babel/core@7.29.7)
'@babel/plugin-transform-computed-properties': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@7.29.7)
@@ -6174,7 +6282,7 @@ snapshots:
'@babel/plugin-transform-member-expression-literals': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7)
- '@babel/plugin-transform-modules-systemjs': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-modules-systemjs': 7.29.8(@babel/core@7.29.7)
'@babel/plugin-transform-modules-umd': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-new-target': 7.29.7(@babel/core@7.29.7)
@@ -6188,11 +6296,11 @@ snapshots:
'@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-property-literals': 7.29.7(@babel/core@7.29.7)
- '@babel/plugin-transform-regenerator': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-regenerator': 7.29.8(@babel/core@7.29.7)
'@babel/plugin-transform-regexp-modifiers': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-reserved-words': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.29.7)
- '@babel/plugin-transform-spread': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-spread': 7.29.11(@babel/core@7.29.7)
'@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-template-literals': 7.29.7(@babel/core@7.29.7)
'@babel/plugin-transform-typeof-symbol': 7.29.7(@babel/core@7.29.7)
@@ -6204,7 +6312,7 @@ snapshots:
babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7)
babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.7)
babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7)
- core-js-compat: 3.49.0
+ core-js-compat: 3.51.0
semver: 6.3.1
transitivePeerDependencies:
- supports-color
@@ -6213,9 +6321,11 @@ snapshots:
dependencies:
'@babel/core': 7.29.7
'@babel/helper-plugin-utils': 7.29.7
- '@babel/types': 7.29.7
+ '@babel/types': 7.29.11
esutils: 2.0.3
+ '@babel/runtime@7.29.10': {}
+
'@babel/runtime@7.29.7': {}
'@babel/template@7.29.7':
@@ -6224,6 +6334,18 @@ snapshots:
'@babel/parser': 7.29.7
'@babel/types': 7.29.7
+ '@babel/traverse@7.29.10':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/generator': 7.29.8
+ '@babel/helper-globals': 7.29.7
+ '@babel/parser': 7.29.11
+ '@babel/template': 7.29.7
+ '@babel/types': 7.29.11
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/traverse@7.29.7':
dependencies:
'@babel/code-frame': 7.29.7
@@ -6236,6 +6358,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/types@7.29.11':
+ dependencies:
+ '@babel/helper-string-parser': 7.29.11
+ '@babel/helper-validator-identifier': 7.29.7
+
'@babel/types@7.29.7':
dependencies:
'@babel/helper-string-parser': 7.29.7
@@ -6695,6 +6822,9 @@ snapshots:
promise-worker-transferable: 1.0.4
three: 0.183.2
+ '@napi-rs/lzma-linux-x64-gnu@1.5.1':
+ optional: true
+
'@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
dependencies:
'@emnapi/core': 1.10.0
@@ -7099,122 +7229,122 @@ snapshots:
'@rolldown/pluginutils@1.0.1': {}
- '@rollup/plugin-babel@6.1.0(@babel/core@7.29.7)(rollup@4.61.1)':
+ '@rollup/plugin-babel@6.1.0(@babel/core@7.29.7)(rollup@4.66.0)':
dependencies:
'@babel/core': 7.29.7
'@babel/helper-module-imports': 7.29.7
- '@rollup/pluginutils': 5.4.0(rollup@4.61.1)
+ '@rollup/pluginutils': 5.5.1(rollup@4.66.0)
optionalDependencies:
- rollup: 4.61.1
+ rollup: 4.66.0
transitivePeerDependencies:
- supports-color
- '@rollup/plugin-node-resolve@16.0.3(rollup@4.61.1)':
+ '@rollup/plugin-node-resolve@16.0.3(rollup@4.66.0)':
dependencies:
- '@rollup/pluginutils': 5.4.0(rollup@4.61.1)
+ '@rollup/pluginutils': 5.5.1(rollup@4.66.0)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-module: 1.0.0
- resolve: 1.22.12
+ resolve: 1.22.13
optionalDependencies:
- rollup: 4.61.1
+ rollup: 4.66.0
- '@rollup/plugin-replace@6.0.3(rollup@4.61.1)':
+ '@rollup/plugin-replace@6.0.3(rollup@4.66.0)':
dependencies:
- '@rollup/pluginutils': 5.4.0(rollup@4.61.1)
+ '@rollup/pluginutils': 5.5.1(rollup@4.66.0)
magic-string: 0.30.21
optionalDependencies:
- rollup: 4.61.1
+ rollup: 4.66.0
- '@rollup/plugin-terser@1.0.0(rollup@4.61.1)':
+ '@rollup/plugin-terser@1.0.2(rollup@4.66.0)':
dependencies:
- serialize-javascript: 7.0.5
+ serialize-javascript: 7.1.4
smob: 1.6.2
- terser: 5.48.0
+ terser: 5.51.2
optionalDependencies:
- rollup: 4.61.1
+ rollup: 4.66.0
- '@rollup/pluginutils@5.4.0(rollup@4.61.1)':
+ '@rollup/pluginutils@5.5.1(rollup@4.66.0)':
dependencies:
'@types/estree': 1.0.9
estree-walker: 2.0.2
- picomatch: 4.0.4
+ picomatch: 4.0.7
optionalDependencies:
- rollup: 4.61.1
+ rollup: 4.66.0
- '@rollup/rollup-android-arm-eabi@4.61.1':
+ '@rollup/rollup-android-arm-eabi@4.66.0':
optional: true
- '@rollup/rollup-android-arm64@4.61.1':
+ '@rollup/rollup-android-arm64@4.66.0':
optional: true
- '@rollup/rollup-darwin-arm64@4.61.1':
+ '@rollup/rollup-darwin-arm64@4.66.0':
optional: true
- '@rollup/rollup-darwin-x64@4.61.1':
+ '@rollup/rollup-darwin-x64@4.66.0':
optional: true
- '@rollup/rollup-freebsd-arm64@4.61.1':
+ '@rollup/rollup-freebsd-arm64@4.66.0':
optional: true
- '@rollup/rollup-freebsd-x64@4.61.1':
+ '@rollup/rollup-freebsd-x64@4.66.0':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.61.1':
+ '@rollup/rollup-linux-arm-gnueabihf@4.66.0':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.61.1':
+ '@rollup/rollup-linux-arm-musleabihf@4.66.0':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.61.1':
+ '@rollup/rollup-linux-arm64-gnu@4.66.0':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.61.1':
+ '@rollup/rollup-linux-arm64-musl@4.66.0':
optional: true
- '@rollup/rollup-linux-loong64-gnu@4.61.1':
+ '@rollup/rollup-linux-loong64-gnu@4.66.0':
optional: true
- '@rollup/rollup-linux-loong64-musl@4.61.1':
+ '@rollup/rollup-linux-loong64-musl@4.66.0':
optional: true
- '@rollup/rollup-linux-ppc64-gnu@4.61.1':
+ '@rollup/rollup-linux-ppc64-gnu@4.66.0':
optional: true
- '@rollup/rollup-linux-ppc64-musl@4.61.1':
+ '@rollup/rollup-linux-ppc64-musl@4.66.0':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.61.1':
+ '@rollup/rollup-linux-riscv64-gnu@4.66.0':
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.61.1':
+ '@rollup/rollup-linux-riscv64-musl@4.66.0':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.61.1':
+ '@rollup/rollup-linux-s390x-gnu@4.66.0':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.61.1':
+ '@rollup/rollup-linux-x64-gnu@4.66.0':
optional: true
- '@rollup/rollup-linux-x64-musl@4.61.1':
+ '@rollup/rollup-linux-x64-musl@4.66.0':
optional: true
- '@rollup/rollup-openbsd-x64@4.61.1':
+ '@rollup/rollup-openbsd-x64@4.66.0':
optional: true
- '@rollup/rollup-openharmony-arm64@4.61.1':
+ '@rollup/rollup-openharmony-arm64@4.66.0':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.61.1':
+ '@rollup/rollup-win32-arm64-msvc@4.66.0':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.61.1':
+ '@rollup/rollup-win32-ia32-msvc@4.66.0':
optional: true
- '@rollup/rollup-win32-x64-gnu@4.61.1':
+ '@rollup/rollup-win32-x64-gnu@4.66.0':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.61.1':
+ '@rollup/rollup-win32-x64-msvc@4.66.0':
optional: true
'@shikijs/core@3.23.0':
@@ -7604,7 +7734,7 @@ snapshots:
ejs: 3.1.10
json5: 2.2.3
magic-string: 0.30.21
- string.prototype.matchall: 4.0.12
+ string.prototype.matchall: 4.1.0
'@ts-morph/common@0.29.0':
dependencies:
@@ -8382,6 +8512,8 @@ snapshots:
acorn@8.16.0: {}
+ acorn@8.19.0: {}
+
ajv-formats@3.0.1(ajv@8.20.0):
optionalDependencies:
ajv: 8.20.0
@@ -8463,7 +8595,7 @@ snapshots:
dependencies:
'@babel/core': 7.29.7
'@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7)
- core-js-compat: 3.49.0
+ core-js-compat: 3.51.0
transitivePeerDependencies:
- supports-color
@@ -8484,6 +8616,8 @@ snapshots:
baseline-browser-mapping@2.10.34: {}
+ baseline-browser-mapping@2.11.34: {}
+
bcp-47-match@2.0.3: {}
bidi-js@1.0.3:
@@ -8513,10 +8647,14 @@ snapshots:
balanced-match: 1.0.2
concat-map: 0.0.1
- brace-expansion@2.1.1:
+ brace-expansion@2.1.7:
dependencies:
balanced-match: 1.0.2
+ brace-expansion@5.0.12:
+ dependencies:
+ balanced-match: 4.0.4
+
brace-expansion@5.0.6:
dependencies:
balanced-match: 4.0.4
@@ -8562,10 +8700,18 @@ snapshots:
node-releases: 2.0.47
update-browserslist-db: 1.2.3(browserslist@4.28.2)
- bsmap@3.0.0(patch_hash=6cfaacd3d5eadb931916451fc8b85a511b9a095d091d9031127a781ca189c509)(typescript@6.0.3):
+ browserslist@4.29.5:
+ dependencies:
+ baseline-browser-mapping: 2.11.34
+ caniuse-lite: 1.0.30001819
+ electron-to-chromium: 1.5.467
+ node-releases: 2.0.60
+ update-browserslist-db: 1.3.4(browserslist@4.29.5)
+
+ bsmap@3.1.4(typescript@6.0.3):
dependencies:
'@standard-schema/spec': 1.1.0
- valibot: 1.4.1(typescript@6.0.3)
+ valibot: 1.5.0(typescript@6.0.3)
transitivePeerDependencies:
- typescript
@@ -8610,6 +8756,8 @@ snapshots:
caniuse-lite@1.0.30001797: {}
+ caniuse-lite@1.0.30001819: {}
+
ccount@2.0.1: {}
chai@6.2.2: {}
@@ -8690,9 +8838,9 @@ snapshots:
cookie@0.7.2: {}
- core-js-compat@3.49.0:
+ core-js-compat@3.51.0:
dependencies:
- browserslist: 4.28.2
+ browserslist: 4.29.5
cors@2.8.6:
dependencies:
@@ -8824,6 +8972,8 @@ snapshots:
electron-to-chromium@1.5.368: {}
+ electron-to-chromium@1.5.467: {}
+
emoji-regex@8.0.0: {}
encodeurl@2.0.0: {}
@@ -8836,6 +8986,13 @@ snapshots:
dependencies:
is-arrayish: 0.2.1
+ es-abstract-get@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.2
+ is-callable: 1.2.7
+ object-inspect: 1.13.4
+
es-abstract@1.24.2:
dependencies:
array-buffer-byte-length: 1.0.2
@@ -8850,8 +9007,8 @@ snapshots:
es-errors: 1.3.0
es-object-atoms: 1.1.2
es-set-tostringtag: 2.1.0
- es-to-primitive: 1.3.0
- function.prototype.name: 1.1.8
+ es-to-primitive: 1.3.4
+ function.prototype.name: 1.2.0
get-intrinsic: 1.3.0
get-proto: 1.0.1
get-symbol-description: 1.1.0
@@ -8876,7 +9033,7 @@ snapshots:
object-inspect: 1.13.4
object-keys: 1.1.1
object.assign: 4.1.7
- own-keys: 1.0.1
+ own-keys: 1.0.2
regexp.prototype.flags: 1.5.4
safe-array-concat: 1.1.4
safe-push-apply: 1.0.0
@@ -8888,10 +9045,10 @@ snapshots:
string.prototype.trimstart: 1.0.8
typed-array-buffer: 1.0.3
typed-array-byte-length: 1.0.3
- typed-array-byte-offset: 1.0.4
+ typed-array-byte-offset: 1.0.5
typed-array-length: 1.0.8
unbox-primitive: 1.1.0
- which-typed-array: 1.1.22
+ which-typed-array: 1.1.24
es-define-property@1.0.1: {}
@@ -8910,8 +9067,11 @@ snapshots:
has-tostringtag: 1.0.2
hasown: 2.0.4
- es-to-primitive@1.3.0:
+ es-to-primitive@1.3.4:
dependencies:
+ es-abstract-get: 1.0.0
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
is-callable: 1.2.7
is-date-object: 1.1.0
is-symbol: 1.1.1
@@ -9148,14 +9308,17 @@ snapshots:
function-bind@1.1.2: {}
- function.prototype.name@1.1.8:
+ function.prototype.name@1.2.0:
dependencies:
call-bind: 1.0.9
call-bound: 1.0.4
- define-properties: 1.2.1
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
hasown: 2.0.4
is-callable: 1.2.7
+ is-document.all: 1.0.0
functions-have-names@1.2.3: {}
@@ -9211,7 +9374,7 @@ snapshots:
dependencies:
foreground-child: 3.3.1
jackspeak: 4.2.3
- minimatch: 10.2.5
+ minimatch: 10.2.6
minipass: 7.1.3
package-json-from-dist: 1.0.1
path-scurry: 2.0.2
@@ -9461,7 +9624,7 @@ snapshots:
dependencies:
es-errors: 1.3.0
hasown: 2.0.4
- side-channel: 1.1.0
+ side-channel: 1.1.1
ip-address@10.2.0: {}
@@ -9509,6 +9672,10 @@ snapshots:
dependencies:
hasown: 2.0.4
+ is-core-module@2.17.0:
+ dependencies:
+ hasown: 2.0.4
+
is-data-view@1.0.2:
dependencies:
call-bound: 1.0.4
@@ -9522,6 +9689,10 @@ snapshots:
is-decimal@2.0.1: {}
+ is-document.all@1.0.0:
+ dependencies:
+ call-bound: 1.0.4
+
is-extglob@2.1.1: {}
is-finalizationregistry@1.1.1:
@@ -9597,7 +9768,7 @@ snapshots:
is-typed-array@1.1.15:
dependencies:
- which-typed-array: 1.1.22
+ which-typed-array: 1.1.24
is-utf8@0.2.1: {}
@@ -9784,8 +9955,6 @@ snapshots:
lodash.merge@4.6.2: {}
- lodash.sortby@4.7.0: {}
-
lodash.truncate@4.4.2: {}
longest-streak@3.1.0: {}
@@ -9799,6 +9968,8 @@ snapshots:
lru-cache@11.5.1: {}
+ lru-cache@11.5.3: {}
+
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@@ -10307,13 +10478,17 @@ snapshots:
dependencies:
brace-expansion: 5.0.6
+ minimatch@10.2.6:
+ dependencies:
+ brace-expansion: 5.0.12
+
minimatch@3.1.5:
dependencies:
brace-expansion: 1.1.15
minimatch@5.1.9:
dependencies:
- brace-expansion: 2.1.1
+ brace-expansion: 2.1.7
minimist@1.2.8: {}
@@ -10342,6 +10517,8 @@ snapshots:
node-releases@2.0.47: {}
+ node-releases@2.0.60: {}
+
normalize-package-data@2.5.0:
dependencies:
hosted-git-info: 2.8.9
@@ -10402,8 +10579,9 @@ snapshots:
outdent@0.8.0: {}
- own-keys@1.0.1:
+ own-keys@1.0.2:
dependencies:
+ call-bound: 1.0.4
get-intrinsic: 1.3.0
object-keys: 1.1.1
safe-push-apply: 1.0.0
@@ -10450,7 +10628,7 @@ snapshots:
path-scurry@2.0.2:
dependencies:
- lru-cache: 11.5.1
+ lru-cache: 11.5.3
minipass: 7.1.3
path-to-regexp@8.4.2: {}
@@ -10473,6 +10651,8 @@ snapshots:
picomatch@4.0.4: {}
+ picomatch@4.0.7: {}
+
pify@2.3.0: {}
pinkie-promise@2.0.1:
@@ -10578,8 +10758,6 @@ snapshots:
dependencies:
proxy-compare: 3.0.1
- punycode@2.3.1: {}
-
qs@6.15.2:
dependencies:
side-channel: 1.1.0
@@ -10699,11 +10877,11 @@ snapshots:
get-proto: 1.0.1
which-builtin-type: 1.2.1
- regenerate-unicode-properties@10.2.2:
+ regenerate-unicode-properties@10.3.0:
dependencies:
- regenerate: 1.4.2
+ regenerate: 1.5.0
- regenerate@1.4.2: {}
+ regenerate@1.5.0: {}
regex-recursion@6.0.2:
dependencies:
@@ -10724,18 +10902,18 @@ snapshots:
gopd: 1.2.0
set-function-name: 2.0.2
- regexpu-core@6.4.0:
+ regexpu-core@6.5.3:
dependencies:
- regenerate: 1.4.2
- regenerate-unicode-properties: 10.2.2
+ regenerate: 1.5.0
+ regenerate-unicode-properties: 10.3.0
regjsgen: 0.8.0
- regjsparser: 0.13.1
+ regjsparser: 0.13.4
unicode-match-property-ecmascript: 2.0.0
unicode-match-property-value-ecmascript: 2.2.1
regjsgen@0.8.0: {}
- regjsparser@0.13.1:
+ regjsparser@0.13.4:
dependencies:
jsesc: 3.1.0
@@ -10826,6 +11004,13 @@ snapshots:
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
+ resolve@1.22.13:
+ dependencies:
+ es-errors: 1.3.0
+ is-core-module: 2.17.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
reusify@1.1.0: {}
rimraf@2.6.3:
@@ -10857,35 +11042,36 @@ snapshots:
'@rolldown/binding-win32-arm64-msvc': 1.0.3
'@rolldown/binding-win32-x64-msvc': 1.0.3
- rollup@4.61.1:
+ rollup@4.66.0:
dependencies:
'@types/estree': 1.0.9
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.61.1
- '@rollup/rollup-android-arm64': 4.61.1
- '@rollup/rollup-darwin-arm64': 4.61.1
- '@rollup/rollup-darwin-x64': 4.61.1
- '@rollup/rollup-freebsd-arm64': 4.61.1
- '@rollup/rollup-freebsd-x64': 4.61.1
- '@rollup/rollup-linux-arm-gnueabihf': 4.61.1
- '@rollup/rollup-linux-arm-musleabihf': 4.61.1
- '@rollup/rollup-linux-arm64-gnu': 4.61.1
- '@rollup/rollup-linux-arm64-musl': 4.61.1
- '@rollup/rollup-linux-loong64-gnu': 4.61.1
- '@rollup/rollup-linux-loong64-musl': 4.61.1
- '@rollup/rollup-linux-ppc64-gnu': 4.61.1
- '@rollup/rollup-linux-ppc64-musl': 4.61.1
- '@rollup/rollup-linux-riscv64-gnu': 4.61.1
- '@rollup/rollup-linux-riscv64-musl': 4.61.1
- '@rollup/rollup-linux-s390x-gnu': 4.61.1
- '@rollup/rollup-linux-x64-gnu': 4.61.1
- '@rollup/rollup-linux-x64-musl': 4.61.1
- '@rollup/rollup-openbsd-x64': 4.61.1
- '@rollup/rollup-openharmony-arm64': 4.61.1
- '@rollup/rollup-win32-arm64-msvc': 4.61.1
- '@rollup/rollup-win32-ia32-msvc': 4.61.1
- '@rollup/rollup-win32-x64-gnu': 4.61.1
- '@rollup/rollup-win32-x64-msvc': 4.61.1
+ '@napi-rs/lzma-linux-x64-gnu': 1.5.1
+ '@rollup/rollup-android-arm-eabi': 4.66.0
+ '@rollup/rollup-android-arm64': 4.66.0
+ '@rollup/rollup-darwin-arm64': 4.66.0
+ '@rollup/rollup-darwin-x64': 4.66.0
+ '@rollup/rollup-freebsd-arm64': 4.66.0
+ '@rollup/rollup-freebsd-x64': 4.66.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.66.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.66.0
+ '@rollup/rollup-linux-arm64-gnu': 4.66.0
+ '@rollup/rollup-linux-arm64-musl': 4.66.0
+ '@rollup/rollup-linux-loong64-gnu': 4.66.0
+ '@rollup/rollup-linux-loong64-musl': 4.66.0
+ '@rollup/rollup-linux-ppc64-gnu': 4.66.0
+ '@rollup/rollup-linux-ppc64-musl': 4.66.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.66.0
+ '@rollup/rollup-linux-riscv64-musl': 4.66.0
+ '@rollup/rollup-linux-s390x-gnu': 4.66.0
+ '@rollup/rollup-linux-x64-gnu': 4.66.0
+ '@rollup/rollup-linux-x64-musl': 4.66.0
+ '@rollup/rollup-openbsd-x64': 4.66.0
+ '@rollup/rollup-openharmony-arm64': 4.66.0
+ '@rollup/rollup-win32-arm64-msvc': 4.66.0
+ '@rollup/rollup-win32-ia32-msvc': 4.66.0
+ '@rollup/rollup-win32-x64-gnu': 4.66.0
+ '@rollup/rollup-win32-x64-msvc': 4.66.0
fsevents: 2.3.3
router@2.2.0:
@@ -10947,7 +11133,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- serialize-javascript@7.0.5: {}
+ serialize-javascript@7.1.4: {}
seroval-plugins@1.5.4(seroval@1.5.4):
dependencies:
@@ -11098,6 +11284,14 @@ snapshots:
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
+ side-channel@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.1
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
siginfo@2.0.0: {}
signal-exit@3.0.7: {}
@@ -11135,9 +11329,7 @@ snapshots:
source-map@0.7.6: {}
- source-map@0.8.0-beta.0:
- dependencies:
- whatwg-url: 7.1.0
+ source-map@0.8.0: {}
space-separated-tokens@2.0.2: {}
@@ -11179,7 +11371,7 @@ snapshots:
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
- string.prototype.matchall@4.0.12:
+ string.prototype.matchall@4.1.0:
dependencies:
call-bind: 1.0.9
call-bound: 1.0.4
@@ -11193,7 +11385,7 @@ snapshots:
internal-slot: 1.1.0
regexp.prototype.flags: 1.5.4
set-function-name: 2.0.2
- side-channel: 1.1.0
+ side-channel: 1.1.1
string.prototype.trim@1.2.11:
dependencies:
@@ -11282,6 +11474,13 @@ snapshots:
commander: 2.20.3
source-map-support: 0.5.21
+ terser@5.51.2:
+ dependencies:
+ '@jridgewell/source-map': 0.3.11
+ acorn: 8.19.0
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
three-mesh-bvh@0.8.3(three@0.183.2):
dependencies:
three: 0.183.2
@@ -11317,10 +11516,6 @@ snapshots:
toidentifier@1.0.1: {}
- tr46@1.0.1:
- dependencies:
- punycode: 2.3.1
-
trim-lines@3.0.1: {}
trim-newlines@1.0.0: {}
@@ -11387,13 +11582,12 @@ snapshots:
has-proto: 1.2.0
is-typed-array: 1.1.15
- typed-array-byte-offset@1.0.4:
+ typed-array-byte-offset@1.0.5:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.9
for-each: 0.3.5
gopd: 1.2.0
- has-proto: 1.2.0
is-typed-array: 1.1.15
reflect.getprototypeof: 1.0.10
@@ -11533,6 +11727,12 @@ snapshots:
escalade: 3.2.0
picocolors: 1.1.1
+ update-browserslist-db@1.3.4(browserslist@4.29.5):
+ dependencies:
+ browserslist: 4.29.5
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
uqr@0.1.3: {}
use-sync-external-store@1.6.0(react@19.2.7):
@@ -11547,6 +11747,10 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
+ valibot@1.5.0(typescript@6.0.3):
+ optionalDependencies:
+ typescript: 6.0.3
+
validate-npm-package-license@3.0.4:
dependencies:
spdx-correct: 3.2.0
@@ -11639,16 +11843,8 @@ snapshots:
webgl-sdf-generator@1.1.1: {}
- webidl-conversions@4.0.2: {}
-
webpack-virtual-modules@0.6.2: {}
- whatwg-url@7.1.0:
- dependencies:
- lodash.sortby: 4.7.0
- tr46: 1.0.1
- webidl-conversions: 4.0.2
-
which-boxed-primitive@1.1.1:
dependencies:
is-bigint: 1.1.0
@@ -11660,7 +11856,7 @@ snapshots:
which-builtin-type@1.2.1:
dependencies:
call-bound: 1.0.4
- function.prototype.name: 1.1.8
+ function.prototype.name: 1.2.0
has-tostringtag: 1.0.2
is-async-function: 2.1.1
is-date-object: 1.1.0
@@ -11671,7 +11867,7 @@ snapshots:
isarray: 2.0.5
which-boxed-primitive: 1.1.1
which-collection: 1.0.2
- which-typed-array: 1.1.22
+ which-typed-array: 1.1.24
which-collection@1.0.2:
dependencies:
@@ -11680,7 +11876,7 @@ snapshots:
is-weakmap: 2.0.2
is-weakset: 2.0.4
- which-typed-array@1.1.22:
+ which-typed-array@1.1.24:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.9
@@ -11715,11 +11911,11 @@ snapshots:
'@apideck/better-ajv-errors': 0.3.7(ajv@8.20.0)
'@babel/core': 7.29.7
'@babel/preset-env': 7.29.7(@babel/core@7.29.7)
- '@babel/runtime': 7.29.7
- '@rollup/plugin-babel': 6.1.0(@babel/core@7.29.7)(rollup@4.61.1)
- '@rollup/plugin-node-resolve': 16.0.3(rollup@4.61.1)
- '@rollup/plugin-replace': 6.0.3(rollup@4.61.1)
- '@rollup/plugin-terser': 1.0.0(rollup@4.61.1)
+ '@babel/runtime': 7.29.10
+ '@rollup/plugin-babel': 6.1.0(@babel/core@7.29.7)(rollup@4.66.0)
+ '@rollup/plugin-node-resolve': 16.0.3(rollup@4.66.0)
+ '@rollup/plugin-replace': 6.0.3(rollup@4.66.0)
+ '@rollup/plugin-terser': 1.0.2(rollup@4.66.0)
'@trickfilm400/rollup-plugin-off-main-thread': 3.0.0-pre1
ajv: 8.20.0
common-tags: 1.8.2
@@ -11728,8 +11924,8 @@ snapshots:
fs-extra: 9.1.0
glob: 11.1.0
pretty-bytes: 5.6.0
- rollup: 4.61.1
- source-map: 0.8.0-beta.0
+ rollup: 4.66.0
+ source-map: 0.8.0
stringify-object: 3.3.0
strip-comments: 2.0.1
tempy: 0.6.0
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 13c9b695..d3954f31 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -5,8 +5,5 @@ allowBuilds:
minimumReleaseAgeExclude:
- bsmap
-patchedDependencies:
- bsmap@3.0.0: patches/bsmap@3.0.0.patch
-
publicHoistPattern:
- "*workbox*"
diff --git a/src/components/app/forms/settings/advanced.tsx b/src/components/app/forms/settings/advanced.tsx
index 8fef216c..88589673 100644
--- a/src/components/app/forms/settings/advanced.tsx
+++ b/src/components/app/forms/settings/advanced.tsx
@@ -12,7 +12,7 @@ function AppAdvancedSettings() {
- dispatch(updatePacerWait({ value: x.valueAsNumber }))} />
+ dispatch(updatePacerWait(x.valueAsNumber))} />
diff --git a/src/components/app/layouts/event-grid/machine.ts b/src/components/app/layouts/event-grid/machine.ts
index c584ad89..34f5bf04 100644
--- a/src/components/app/layouts/event-grid/machine.ts
+++ b/src/components/app/layouts/event-grid/machine.ts
@@ -269,6 +269,9 @@ export function connect({ scope, send, prop, context, refs, computed }: Service<
return normalize.element({
...getProps(scope, "trigger"),
onPointerDown: (event) => {
+ if (!isPlaceMode) {
+ event.currentTarget.setPointerCapture(event.pointerId);
+ }
const rect = event.currentTarget.getBoundingClientRect();
return send({ type: "trigger/down", x: event.clientX - rect.left, y: event.clientY - rect.top, button: event.button });
},
diff --git a/src/components/app/templates/editor/song-info.tsx b/src/components/app/templates/editor/song-info.tsx
index c7d9b3f5..f33bf239 100644
--- a/src/components/app/templates/editor/song-info.tsx
+++ b/src/components/app/templates/editor/song-info.tsx
@@ -13,15 +13,7 @@ import { useAppDispatch, useAppSelector } from "$/store/hooks";
import { selectBeatmaps, selectSelectedBeatmap, selectSongMetadata } from "$/store/selectors";
import { HStack, Stack, styled, Text } from "$:styled-system/jsx";
-const COVER_ART_SIZES = {
- medium: 75,
- small: 50,
-};
-
-interface Props {
- showDifficultySelector: boolean;
-}
-function EditorSongInfo({ showDifficultySelector }: Props) {
+function EditorSongInfo() {
const { sid } = useParams({ from: "/_/edit/$sid/$bid/_" });
const { view } = useRouteContext({ from: "/_/edit/$sid/$bid/_" });
@@ -48,7 +40,7 @@ function EditorSongInfo({ showDifficultySelector }: Props) {
return (
-
+
@@ -58,26 +50,24 @@ function EditorSongInfo({ showDifficultySelector }: Props) {
{metadata.artist}
- {showDifficultySelector && (
-
-
-
-
- )}
+
+
+
+
);
diff --git a/src/components/app/templates/error-boundary.tsx b/src/components/app/templates/error-boundary.tsx
index 7d2807a0..11e0e434 100644
--- a/src/components/app/templates/error-boundary.tsx
+++ b/src/components/app/templates/error-boundary.tsx
@@ -16,12 +16,12 @@ function ErrorBoundary({ error, interactive = true, reset }: Props) {
- {error.name}
- {error.message}
+ {error instanceof Error && {error.name}}
+ {error instanceof Error && {error.message}}
Stack Trace
- {error.stack && (
+ {error instanceof Error && (
{error.stack}
diff --git a/src/components/hooks/use-parent-dimensions.ts b/src/components/hooks/use-parent-dimensions.ts
index 4fa3c635..1e5e0249 100644
--- a/src/components/hooks/use-parent-dimensions.ts
+++ b/src/components/hooks/use-parent-dimensions.ts
@@ -1,6 +1,6 @@
import { type RefObject, useCallback, useEffect, useRef, useState } from "react";
-export function useParentDimensions(): [ref: RefObject, dimensions: { width: number; height: number }] {
+export function useParentDimensions(): [ref: RefObject, dimensions: { width: number; height: number }] {
const ref = useRef(null);
const [dimensions, setDimensions] = useState<{ width: number | null; height: number | null }>({ width: null, height: null });
diff --git a/src/components/scene/hooks/use-object-placement.ts b/src/components/scene/hooks/use-object-placement.ts
index 6a21110c..7888ffd8 100644
--- a/src/components/scene/hooks/use-object-placement.ts
+++ b/src/components/scene/hooks/use-object-placement.ts
@@ -1,10 +1,12 @@
+import type { ThreeEvent } from "@react-three/fiber";
import type { EntityId } from "@reduxjs/toolkit";
+import { useThrottledCallback } from "@tanstack/react-pacer/throttler";
import { useCallback, useRef } from "react";
import { useGlobalEventListener } from "$/components/hooks/use-global-event-listener";
import { finishManagingNoteSelection, startManagingNoteSelection } from "$/store/actions";
import { useAppDispatch, useAppSelector } from "$/store/hooks";
-import { selectNotesEditorSelectionMode } from "$/store/selectors";
+import { selectNotesEditorSelectionMode, selectPacerWait } from "$/store/selectors";
import { type App, ObjectSelectionMode } from "$/types";
interface UseObjectSelectionOptions {
@@ -20,17 +22,18 @@ interface UseObjectSelectionOptions {
export function useObjectPlacement({ interactive, selectId, onItemSelect, onItemDeselect, onItemDelete, onItemModify, onItemWheel }: UseObjectSelectionOptions) {
const dispatch = useAppDispatch();
const selectionMode = useAppSelector(selectNotesEditorSelectionMode);
+ const wait = useAppSelector(selectPacerWait);
const activePointerIdRef = useRef(null);
const handlePointerDown = useCallback(
- (event: PointerEvent, data: T) => {
+ (event: ThreeEvent, data: T) => {
if (!interactive) return;
if (activePointerIdRef.current === event.pointerId) return;
activePointerIdRef.current = event.pointerId;
- event.stopPropagation();
+ event.nativeEvent.stopPropagation();
const id = selectId(data);
let newSelectionMode: ObjectSelectionMode | null = null;
@@ -81,9 +84,9 @@ export function useObjectPlacement({ interactive, s
useGlobalEventListener("pointercancel", handlePointerUp, { shouldFire: !!selectionMode || activePointerIdRef.current !== null });
const handlePointerOver = useCallback(
- (event: PointerEvent, data: T) => {
+ (event: ThreeEvent, data: T) => {
if (!interactive) return;
- event.stopPropagation();
+ event.nativeEvent.stopPropagation();
if (!selectionMode) return;
@@ -112,15 +115,15 @@ export function useObjectPlacement({ interactive, s
);
const handlePointerOut = useCallback(
- (event: PointerEvent, _data: T) => {
+ (event: ThreeEvent, _data: T) => {
if (!interactive) return;
- event.stopPropagation();
+ event.nativeEvent.stopPropagation();
},
[interactive],
);
- const resolveWheelAction = useCallback(
- (event: WheelEvent, data: T) => {
+ const resolveWheelAction = useThrottledCallback(
+ (event: ThreeEvent, data: T) => {
if (!interactive) return;
event.stopPropagation();
@@ -129,12 +132,13 @@ export function useObjectPlacement({ interactive, s
onItemWheel?.(data, id, delta);
},
- [interactive, selectId, onItemWheel],
+ { wait: wait },
);
const handleWheel = useCallback(
- (event: WheelEvent, data: T) => {
+ (event: ThreeEvent, data: T) => {
if (event.altKey) {
+ event.nativeEvent.stopPropagation();
resolveWheelAction(event, data);
}
},
diff --git a/src/components/scene/layouts/visualization/for.tsx b/src/components/scene/layouts/visualization/for.tsx
index 71c1ed4d..35217c25 100644
--- a/src/components/scene/layouts/visualization/for.tsx
+++ b/src/components/scene/layouts/visualization/for.tsx
@@ -1,3 +1,4 @@
+import type { EntityId } from "@reduxjs/toolkit";
import type { IWrapGridObject } from "bsmap";
import { type ComponentProps, type ReactNode, useMemo } from "react";
import type { Vector3Tuple } from "three";
@@ -7,13 +8,14 @@ import type { ObjectResolverOptions } from "$/components/scene/helpers";
import { HIGHEST_PRECISION } from "$/constants";
import { useVisualizationContext } from "./context";
-interface Props {
+interface Props {
objects: T[];
+ resolveId: (model: T) => Id;
resolvePosition: (model: T, ctx: ObjectResolverOptions) => Vector3Tuple;
resolveColor: (model: T) => string;
- children: (model: T, ctx: Pick, "position" | "layers"> & { data: T; transparent: boolean; color: string }) => ReactNode;
+ children: (model: T, id: Id, ctx: Pick, "position" | "layers"> & { data: T; transparent: boolean; color: string }) => ReactNode;
}
-function VisualizationForGridObjects({ objects, resolvePosition, resolveColor, children }: Props) {
+function VisualizationForGridObjects({ objects, resolveId, resolvePosition, resolveColor, children }: Props) {
const { cursorPosition, timescale, beatDepth } = useVisualizationContext();
const zPosition = useMemo(() => -SONG_OFFSET + (cursorPosition ?? 0) * beatDepth, [cursorPosition, beatDepth]);
@@ -21,9 +23,10 @@ function VisualizationForGridObjects({ objects, resol
const adjustment = useMemo(() => beatDepth * HIGHEST_PRECISION, [beatDepth]);
return objects.map((data) => {
+ const id = resolveId(data);
const position = resolvePosition(data, { timescale, beatDepth });
const noteZPosition = zPosition + position[2] - adjustment;
- return children(data, {
+ return children(data, id, {
data,
position,
layers: 1,
diff --git a/src/components/scene/templates/visualization.tsx b/src/components/scene/templates/visualization.tsx
index 7365dcc0..cddb83a6 100644
--- a/src/components/scene/templates/visualization.tsx
+++ b/src/components/scene/templates/visualization.tsx
@@ -1,7 +1,8 @@
-import { type ThreeEvent, useThree } from "@react-three/fiber";
+import type { ThreeEvent } from "@react-three/fiber";
+import type { EntityId } from "@reduxjs/toolkit";
import { useParams } from "@tanstack/react-router";
import { type IWrapBombNote, type IWrapColorNote, type IWrapObstacle, mirrorNoteColor, NoteDirection } from "bsmap";
-import { memo, useCallback, useMemo, useRef } from "react";
+import { memo, useCallback, useMemo, useRef, useState } from "react";
import type { Object3D } from "three";
import { BombNote, ColorNote, Obstacle } from "$/components/scene/compositions";
@@ -10,6 +11,7 @@ import { calculateInlineRotations, resolvePositionForGridObject, resolvePosition
import { useControls } from "$/components/scene/hooks/use-controls";
import { useObjectPlacement } from "$/components/scene/hooks/use-object-placement";
import { Visualization } from "$/components/scene/layouts";
+import { HIGHEST_PRECISION } from "$/constants";
import { resolveColorForItem } from "$/helpers/colors.helpers";
import { isBombNote, isColorNote, resolveNoteId } from "$/helpers/notes.helpers";
import { isObstacle, resolveObstacleId } from "$/helpers/obstacles.helpers";
@@ -17,6 +19,7 @@ import { deselectBombNote, deselectColorNote, deselectObstacle, removeBombNote,
import { useAppDispatch, useAppSelector } from "$/store/hooks";
import { selectAllVisibleBombs, selectAllVisibleNotes, selectAllVisibleObstacles, selectAnimateTrack, selectColorScheme, selectCursorPositionInBeats, selectNotesEditorSelectionMode, selectSnap } from "$/store/selectors";
import { type App, ObjectTool } from "$/types";
+import { roundToNearest } from "$/utils";
import EditorBeatMarkers from "./beat-markers";
import EditorPlacementGrid from "./placement-grid";
@@ -36,9 +39,8 @@ function MapVisualization({ timescale, beatDepth, surfaceDepth, interactive }: P
useControls();
- const { raycaster, scene } = useThree((state) => state);
-
const isDispatchingEvent = useRef(false);
+
const dispatch = useAppDispatch();
const snapTo = useAppSelector(selectSnap);
const selectionMode = useAppSelector(selectNotesEditorSelectionMode);
@@ -82,10 +84,9 @@ function MapVisualization({ timescale, beatDepth, surfaceDepth, interactive }: P
onItemDeselect: (_, id) => dispatch(deselectObstacle({ id })),
onItemDelete: (_, id) => dispatch(removeObstacle({ id })),
onItemWheel: (x, id, delta) => {
- const newDuration = x.duration + snapTo * delta;
+ const newDuration = roundToNearest(x.duration + snapTo * delta, HIGHEST_PRECISION);
// the new duration value should never create an invalid obstacle.
- if (newDuration <= 0 || Math.abs(newDuration) < 0.01) return;
- dispatch(updateObstacle({ id, changes: { duration: x.duration + snapTo * delta } }));
+ dispatch(updateObstacle({ id, changes: { duration: Math.max(newDuration, HIGHEST_PRECISION) } }));
},
});
@@ -107,23 +108,21 @@ function MapVisualization({ timescale, beatDepth, surfaceDepth, interactive }: P
// ignore left click, since we don't want passthrough to take priority over placements
if (event.button === 0) return;
- const intersects = raycaster.intersectObjects(scene.children, true);
-
- if (intersects.length > 1) {
- const target = intersects[1].object;
+ const target = event.intersections.find(({ object }) => isColorNote(object.userData) || isBombNote(object.userData) || isObstacle(object.userData));
+ if (target) {
isDispatchingEvent.current = true;
try {
- const data = deriveUserDataFromTarget(target);
- if (isColorNote(data)) return noteActions.handlePointerDown(event.nativeEvent, data);
- if (isBombNote(data)) return bombActions.handlePointerDown(event.nativeEvent, data);
- if (isObstacle(data)) return obstacleActions.handlePointerDown(event.nativeEvent, data);
+ const data = deriveUserDataFromTarget(target.object);
+ if (isColorNote(data)) return noteActions.handlePointerDown(event, data);
+ if (isBombNote(data)) return bombActions.handlePointerDown(event, data);
+ if (isObstacle(data)) return obstacleActions.handlePointerDown(event, data);
} finally {
isDispatchingEvent.current = false;
}
}
},
- [raycaster, scene, selectionMode, deriveUserDataFromTarget, noteActions.handlePointerDown, bombActions.handlePointerDown, obstacleActions.handlePointerDown],
+ [selectionMode, deriveUserDataFromTarget, noteActions.handlePointerDown, bombActions.handlePointerDown, obstacleActions.handlePointerDown],
);
const handleCellWheel = useCallback(
@@ -131,74 +130,113 @@ function MapVisualization({ timescale, beatDepth, surfaceDepth, interactive }: P
if (selectionMode) return;
if (isDispatchingEvent.current) return;
- const intersects = raycaster.intersectObjects(scene.children, true);
-
- if (intersects.length > 1) {
- const target = intersects[1].object;
+ const target = event.intersections.find(({ object }) => isColorNote(object.userData) || isBombNote(object.userData) || isObstacle(object.userData));
+ if (target) {
isDispatchingEvent.current = true;
try {
- const data = deriveUserDataFromTarget(target);
- if (isColorNote(data)) return noteActions.handleWheel(event.nativeEvent, data);
- if (isBombNote(data)) return bombActions.handleWheel(event.nativeEvent, data);
- if (isObstacle(data)) return obstacleActions.handleWheel(event.nativeEvent, data);
+ const data = deriveUserDataFromTarget(target.object);
+ if (isColorNote(data)) return noteActions.handleWheel(event, data);
+ if (isBombNote(data)) return bombActions.handleWheel(event, data);
+ if (isObstacle(data)) return obstacleActions.handleWheel(event, data);
return;
} finally {
isDispatchingEvent.current = false;
}
}
},
- [raycaster, scene, selectionMode, deriveUserDataFromTarget, noteActions.handleWheel, bombActions.handleWheel, obstacleActions.handleWheel],
+ [selectionMode, deriveUserDataFromTarget, noteActions.handleWheel, bombActions.handleWheel, obstacleActions.handleWheel],
);
const rotationOverrides = useMemo(() => {
if (interactive) {
- return new Map();
+ return new Map();
}
return calculateInlineRotations(notes);
}, [notes, interactive]);
+ const [hoveredId, setHoveredId] = useState(null);
+
return (
{interactive && }
- resolveColorForItem(Object.values(ObjectTool)[data.color], { colorScheme })}>
- {(data, props) => (
+ resolveColorForItem(Object.values(ObjectTool)[data.color], { colorScheme })}>
+ {(data, id, props) => (
noteActions.handlePointerDown(e.nativeEvent, data)}
- onPointerOver={(e) => noteActions.handlePointerOver(e.nativeEvent, data)}
- onPointerOut={(e) => noteActions.handlePointerOut(e.nativeEvent, data)}
- onWheel={(e) => noteActions.handleWheel(e.nativeEvent, data)}
+ rotationOffset={rotationOverrides.get(id)}
+ onPointerOver={(e) => {
+ e.stopPropagation();
+ setHoveredId(id);
+ noteActions.handlePointerOver(e, data);
+ }}
+ onPointerOut={(e) => {
+ setHoveredId(null);
+ noteActions.handlePointerOut(e, data);
+ }}
+ onPointerDown={(e) => {
+ if (hoveredId !== id) return;
+ noteActions.handlePointerDown(e, data);
+ }}
+ onWheel={(e) => {
+ if (hoveredId !== id) return;
+ noteActions.handleWheel(e, data);
+ }}
/>
)}
- resolveColorForItem(ObjectTool.BOMB_NOTE, { colorScheme })}>
- {(data, props) => (
+ resolveColorForItem(ObjectTool.BOMB_NOTE, { colorScheme })}>
+ {(data, id, props) => (
bombActions.handlePointerDown(e.nativeEvent, data)}
- onPointerOver={(e) => bombActions.handlePointerOver(e.nativeEvent, data)}
- onPointerOut={(e) => bombActions.handlePointerOut(e.nativeEvent, data)}
- onWheel={(e) => bombActions.handleWheel(e.nativeEvent, data)}
+ onPointerOver={(e) => {
+ e.stopPropagation();
+ setHoveredId(id);
+ bombActions.handlePointerOver(e, data);
+ }}
+ onPointerOut={(e) => {
+ setHoveredId(null);
+ bombActions.handlePointerOut(e, data);
+ }}
+ onPointerDown={(e) => {
+ if (hoveredId !== id) return;
+ bombActions.handlePointerDown(e, data);
+ }}
+ onWheel={(e) => {
+ if (hoveredId !== id) return;
+ bombActions.handleWheel(e, data);
+ }}
/>
)}
- resolveColorForItem(ObjectTool.OBSTACLE, { colorScheme })}>
- {(data, props) => (
+ resolveColorForItem(ObjectTool.OBSTACLE, { colorScheme })}>
+ {(data, id, props) => (
obstacleActions.handlePointerDown(e.nativeEvent, data)}
- onPointerOver={(e) => obstacleActions.handlePointerOver(e.nativeEvent, data)}
- onPointerOut={(e) => obstacleActions.handlePointerOut(e.nativeEvent, data)}
- onWheel={(e) => obstacleActions.handleWheel(e.nativeEvent, data)}
+ onPointerOver={(e) => {
+ e.stopPropagation();
+ setHoveredId(id);
+ obstacleActions.handlePointerOver(e, data);
+ }}
+ onPointerOut={(e) => {
+ setHoveredId(null);
+ obstacleActions.handlePointerOut(e, data);
+ }}
+ onPointerDown={(e) => {
+ if (hoveredId !== id) return;
+ obstacleActions.handlePointerDown(e, data);
+ }}
+ onWheel={(e) => {
+ if (hoveredId !== id) return;
+ obstacleActions.handleWheel(e, data);
+ }}
/>
)}
diff --git a/src/routes/editor/page/layout.tsx b/src/routes/editor/page/layout.tsx
index 15952959..622b62d0 100644
--- a/src/routes/editor/page/layout.tsx
+++ b/src/routes/editor/page/layout.tsx
@@ -10,12 +10,10 @@ export const Route = createFileRoute("/_/edit/$sid/$bid/_/_page")({
});
function RouteComponent() {
- const { sid } = Route.useParams();
-
const dispatch = useAppDispatch();
useMount(() => {
- dispatch(pausePlayback({ songId: sid }));
+ dispatch(pausePlayback());
});
return (
diff --git a/src/routes/editor/scene/layout.tsx b/src/routes/editor/scene/layout.tsx
index 19e86522..a1247a1c 100644
--- a/src/routes/editor/scene/layout.tsx
+++ b/src/routes/editor/scene/layout.tsx
@@ -3,7 +3,6 @@ import { createFileRoute, Outlet } from "@tanstack/react-router";
import { NavigationPanel } from "$/components/app/layouts";
import { EditorAudioVisualizer, EditorNavigationControls, EditorSongInfo, EditorStatusBar } from "$/components/app/templates/editor";
import { DefaultEditorShortcuts } from "$/components/app/templates/shortcuts";
-import { View } from "$/types";
import { styled } from "$:styled-system/jsx";
export const Route = createFileRoute("/_/edit/$sid/$bid/_/_scene")({
@@ -15,7 +14,7 @@ function RouteComponent() {
return (
-
+
diff --git a/src/store/_setup.ts b/src/store/_setup.ts
index 91a88c9d..728b8a18 100644
--- a/src/store/_setup.ts
+++ b/src/store/_setup.ts
@@ -4,7 +4,7 @@ import { initStateWithPrevTab } from "redux-state-sync";
import { init, tick, updateEventsEditorCursor } from "./actions";
import { createAppEnhancers } from "./enhancers/_setup";
import { default as reducer } from "./features/_setup";
-import { hydrateSongs } from "./features/songs.slice";
+// import { hydrateSongs } from "./features/songs.slice";
import { createAppMiddleware } from "./middleware/_setup";
import type { AppExtraArgs } from "./types";
diff --git a/src/store/features/entities.thunks.ts b/src/store/features/entities.thunks.ts
index b5c437e9..b0114f20 100644
--- a/src/store/features/entities.thunks.ts
+++ b/src/store/features/entities.thunks.ts
@@ -1,9 +1,10 @@
import { deselectAllEntities, mirrorAllSelectedObjects, nudgeAllSelectedEvents, nudgeAllSelectedObjects, removeAllSelectedEvents, removeAllSelectedObjects, selectAllEntities, selectAllEntitiesInRange, setClipboardData, upsertEvents, upsertObjects } from "$/store/actions";
import { selectActiveSongId, selectActiveView } from "$/store/helpers/route.helpers";
-import { selectAnySelectedEvents, selectAnySelectedObjects, selectClipboardData, selectCursorPositionInBeats, selectEarliestBeat, selectEventsEditorCursor, selectEventsEditorStartAndEndBeat, selectGridSize, selectSelectedBeatmapEntities, selectSnap } from "$/store/selectors";
+import { selectAnySelectedEvents, selectAnySelectedObjects, selectClipboardData, selectCursorPositionInBeats, selectEarliestBeat, selectEventsEditorCursor, selectEventsEditorStartAndEndBeat, selectSelectedBeatmapEntities, selectSnap } from "$/store/selectors";
import type { AppThunkApiConfig } from "$/store/types";
import { createThunk, type GetShallowThunkAPI } from "$/store/utils/thunk.utils";
import { View } from "$/types";
+import { selectNoteGridSize, selectObstacleGridSize } from "./selectors";
export const toggleSelectAllEntities = createThunk("toggleSelectAllEntities", (_, api: GetShallowThunkAPI>) => {
const songId = selectActiveSongId(api.extra.getRouter());
@@ -32,8 +33,9 @@ export const mirrorSelection = createThunk("mirrorSelection", (args: { axis: "ho
switch (view) {
case View.BEATMAP: {
- const grid = selectGridSize(api.getState(), songId);
- return api.dispatch(mirrorAllSelectedObjects({ ...args, grid }));
+ const noteGrid = selectNoteGridSize(api.getState(), songId);
+ const obstacleGrid = selectObstacleGridSize(api.getState(), songId);
+ return api.dispatch(mirrorAllSelectedObjects({ ...args, noteGrid, obstacleGrid }));
}
}
});
diff --git a/src/store/features/lightshow.slice.ts b/src/store/features/lightshow.slice.ts
index 9fe70156..577efdc0 100644
--- a/src/store/features/lightshow.slice.ts
+++ b/src/store/features/lightshow.slice.ts
@@ -119,7 +119,7 @@ export const incrementEventsEditorZoomLevel = createThunk("incrementZoomLevel",
return createIncrementByValuePayloadActionCreator([ZOOM_LEVEL_MIN, ZOOM_LEVEL_MAX], selectEventsEditorZoomLevel, updateEventsEditorZoomLevel)({ delta: 1 }, api);
});
export const decrementEventsEditorZoomLevel = createThunk("decrementZoomLevel", (_, api: GetShallowThunkAPI) => {
- return createIncrementByValuePayloadActionCreator([ZOOM_LEVEL_MIN, ZOOM_LEVEL_MAX], selectEventsEditorZoomLevel, updateEventsEditorZoomLevel)({ delta: 1 }, api);
+ return createIncrementByValuePayloadActionCreator([ZOOM_LEVEL_MIN, ZOOM_LEVEL_MAX], selectEventsEditorZoomLevel, updateEventsEditorZoomLevel)({ delta: -1 }, api);
});
export default slice;
diff --git a/src/store/features/objects.slice.ts b/src/store/features/objects.slice.ts
index 6fe2f207..90afec83 100644
--- a/src/store/features/objects.slice.ts
+++ b/src/store/features/objects.slice.ts
@@ -162,14 +162,14 @@ const slice = createSlice({
}
}),
),
- mirrorAllSelectedObjects: api.reducer<{ axis: "horizontal" | "vertical"; grid?: IGrid }>(
+ mirrorAllSelectedObjects: api.reducer<{ axis: "horizontal" | "vertical"; noteGrid?: IGrid; obstacleGrid?: IGrid }>(
history.undoable((state, action) => {
- const { axis, grid } = action.payload;
- noteReducers.replaceAllSelected(state.notes, mirrorGridObjectProperties(axis, grid, 0));
+ const { axis, noteGrid, obstacleGrid } = action.payload;
+ noteReducers.replaceAllSelected(state.notes, mirrorGridObjectProperties(axis, noteGrid, 0));
noteReducers.replaceAllSelected(state.notes, mirrorBaseNoteProperties(axis));
- bombReducers.replaceAllSelected(state.bombs, mirrorGridObjectProperties(axis, grid, 0));
+ bombReducers.replaceAllSelected(state.bombs, mirrorGridObjectProperties(axis, noteGrid, 0));
if (axis === "horizontal") {
- obstacleReducers.replaceAllSelected(state.obstacles, mirrorGridObjectProperties(axis, grid, 0));
+ obstacleReducers.replaceAllSelected(state.obstacles, mirrorGridObjectProperties(axis, obstacleGrid, 0));
}
}),
),
diff --git a/src/store/features/selectors.ts b/src/store/features/selectors.ts
index c6edfac0..c5ca3b5c 100644
--- a/src/store/features/selectors.ts
+++ b/src/store/features/selectors.ts
@@ -51,15 +51,22 @@ export const selectObstaclePlacementMode = createAppSelector(selectSongById, sel
return userPlacementMode;
});
-export const selectGridSize = createAppSelector(selectSongById, selectNotesEditorTool, selectObstaclePlacementMode, (song, tool, obstaclePlacementMode) => {
+export const selectNoteGridSize = createAppSelector(selectSongById, (song) => {
+ return getGridSize(song);
+});
+export const selectObstacleGridSize = createAppSelector(selectSongById, selectObstaclePlacementMode, (song, obstaclePlacementMode) => {
+ const visualGridSize = { ...DEFAULT_GRID, numCols: 8, numRows: 5, rowOffset: -0.5 };
+ if (obstaclePlacementMode === ObstaclePlacementMode.VISUAL) return getGridSize(song, visualGridSize);
+ return getGridSize(song);
+});
+
+export const selectGridSize = createAppSelector(selectNotesEditorTool, selectNoteGridSize, selectObstacleGridSize, (tool, noteGrid, obstacleGrid) => {
switch (tool) {
case ObjectTool.OBSTACLE: {
- const visualGridSize = { ...DEFAULT_GRID, numCols: 8, numRows: 5, rowOffset: -0.5 };
- if (obstaclePlacementMode === ObstaclePlacementMode.VISUAL) return getGridSize(song, visualGridSize);
- return getGridSize(song);
+ return obstacleGrid;
}
default: {
- return getGridSize(song);
+ return noteGrid;
}
}
});
diff --git a/src/store/middleware/history.middleware.ts b/src/store/middleware/history.middleware.ts
index c163b80d..0c5f64c2 100644
--- a/src/store/middleware/history.middleware.ts
+++ b/src/store/middleware/history.middleware.ts
@@ -27,21 +27,23 @@ import type { App } from "$/types";
import { difference } from "$/utils";
function jumpToEarliestObject(api: ListenerEffectAPI, args: { [K in "notes" | "bombs" | "obstacles"]: { before: App.IBeatmapEntities[K]; after: App.IBeatmapEntities[K] } }) {
- const relevantNotes = difference(args.notes.before, args.notes.after, resolveNoteId);
- const relevantBombs = difference(args.bombs.before, args.bombs.after, resolveNoteId);
- const relevantObstacles = difference(args.obstacles.before, args.obstacles.after, resolveObstacleId);
+ const relevantNotes = difference(args.notes.before, args.notes.after);
+ const relevantBombs = difference(args.bombs.before, args.bombs.after);
+ const relevantObstacles = difference(args.obstacles.before, args.obstacles.after);
const relevantEntities = [...relevantNotes, ...relevantBombs, ...relevantObstacles].sort(sortObjectFn);
+ if (!relevantEntities.length) return;
const earliestBeat = relevantEntities.reduce((beat, entity) => Math.min(beat, entity.time), relevantEntities[0].time);
api.dispatch(jumpToBeat({ value: earliestBeat }));
}
function jumpToEarliestEvent(api: ListenerEffectAPI, args: { [K in "basicEvents" | "boostEvents"]: { before: App.IBeatmapEntities[K]; after: App.IBeatmapEntities[K] } }) {
- const relevantBasicEvents = difference(args.basicEvents.before, args.basicEvents.after, resolveEventId);
- const relevantBoostEvents = difference(args.boostEvents.before, args.boostEvents.after, resolveEventId);
+ const relevantBasicEvents = difference(args.basicEvents.before, args.basicEvents.after);
+ const relevantBoostEvents = difference(args.boostEvents.before, args.boostEvents.after);
const relevantEntities = [...relevantBasicEvents, ...relevantBoostEvents].sort(sortObjectFn);
+ if (!relevantEntities.length) return;
const earliestBeat = relevantEntities.reduce((beat, entity) => Math.min(beat, entity.time), relevantEntities[0].time);
api.dispatch(jumpToBeat({ value: earliestBeat }));
diff --git a/tsconfig.node.json b/tsconfig.node.json
index e75109e0..e2ef385b 100644
--- a/tsconfig.node.json
+++ b/tsconfig.node.json
@@ -22,5 +22,5 @@
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true
},
- "include": ["vite.config.ts"]
+ "include": ["vite.config.ts", "velite.config.ts"]
}