2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-07-02 13:58:05 +00:00

feat: filter assets in modman (#860)

This commit is contained in:
Jan
2026-06-27 12:06:25 +02:00
committed by GitHub
parent a287947976
commit 256b5a5699
7 changed files with 545 additions and 111 deletions
+100 -97
View File
@@ -721,20 +721,20 @@
"license": "Apache-2.0"
},
"node_modules/@emnapi/core": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
"integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz",
"integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==",
"license": "MIT",
"optional": true,
"dependencies": {
"@emnapi/wasi-threads": "1.2.1",
"@emnapi/wasi-threads": "1.2.2",
"tslib": "^2.4.0"
}
},
"node_modules/@emnapi/runtime": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
"integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz",
"integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -742,9 +742,9 @@
}
},
"node_modules/@emnapi/wasi-threads": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
"integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz",
"integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -1002,13 +1002,13 @@
}
},
"node_modules/@napi-rs/wasm-runtime": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz",
"integrity": "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==",
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz",
"integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==",
"license": "MIT",
"optional": true,
"dependencies": {
"@tybys/wasm-util": "^0.10.2"
"@tybys/wasm-util": "^0.10.3"
},
"funding": {
"type": "github",
@@ -1069,9 +1069,9 @@
"link": true
},
"node_modules/@oxc-project/types": {
"version": "0.133.0",
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz",
"integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==",
"version": "0.137.0",
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.137.0.tgz",
"integrity": "sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA==",
"devOptional": true,
"license": "MIT",
"funding": {
@@ -1505,9 +1505,9 @@
}
},
"node_modules/@rolldown/binding-android-arm64": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz",
"integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.2.tgz",
"integrity": "sha512-2cZ+7xRS+DBcuJBJKnfzsbleumJhBqSlJVpuzHC0nTqfd3QQ7Vx2/x5YR/D7cBamKSeWplwo82Fn9lqYUDEMfA==",
"cpu": [
"arm64"
],
@@ -1521,9 +1521,9 @@
}
},
"node_modules/@rolldown/binding-darwin-arm64": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz",
"integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.2.tgz",
"integrity": "sha512-RkPMJnygxsgOYdkfqgpwY0/Fzm8d0VQe6HGU2/B00Xa9eqdLbrII+DOKAodbJAn3ZL1AJxGHkZRPYazgGY6Ljw==",
"cpu": [
"arm64"
],
@@ -1537,9 +1537,9 @@
}
},
"node_modules/@rolldown/binding-darwin-x64": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz",
"integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.2.tgz",
"integrity": "sha512-Uiczh6vFhwyfd7WNe7Q7mCA4KxAiLdz7jPE/WGizfRpIieoyFuNVMmM8HqZ9HwudTkY6/AeMQwlNJ9NJijguWw==",
"cpu": [
"x64"
],
@@ -1553,9 +1553,9 @@
}
},
"node_modules/@rolldown/binding-freebsd-x64": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz",
"integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.2.tgz",
"integrity": "sha512-+TpdtTRgHiJFjCVFbw311SuLk3KfytPOQQn+VlAEv+gBxYPtL7E6JS9e/tk+8CwxhIZvemJKo4rTKgfWNsKkkA==",
"cpu": [
"x64"
],
@@ -1569,9 +1569,9 @@
}
},
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz",
"integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.2.tgz",
"integrity": "sha512-4lv1/tkmi7ueIVHnyreaOeUpiZP26BH9rRy6hoYfR9310A2B9nUEVRDvBx69vx64Nr3eTPPRkyciqJJs+j9Jmw==",
"cpu": [
"arm"
],
@@ -1585,9 +1585,9 @@
}
},
"node_modules/@rolldown/binding-linux-arm64-gnu": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz",
"integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.2.tgz",
"integrity": "sha512-gBSUVO0eaWgw1JMjK3gB8BMlX2Mk148s2lTiVT3e9vjVxbl7UDfMWWY8CfIaaqiXuM9fVTMxIpUz6CAo/B6Vlw==",
"cpu": [
"arm64"
],
@@ -1604,9 +1604,9 @@
}
},
"node_modules/@rolldown/binding-linux-arm64-musl": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz",
"integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.2.tgz",
"integrity": "sha512-LjQP/iZLBu8o8PjIfk4x3At0/mT6h282pvz8Z5LAyhGbu/kDezyO7ea62rF5uoqmgnIYqbN/MqJ3Si3Aymi7xQ==",
"cpu": [
"arm64"
],
@@ -1623,9 +1623,9 @@
}
},
"node_modules/@rolldown/binding-linux-ppc64-gnu": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz",
"integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.2.tgz",
"integrity": "sha512-X/7bVLWelEsbyWDUSXt7zVsTniLLPIY2n1rH58qr78l9i7MNbbxBWD8gI2vRfBWf4NUXJCUuQnfZDsp32LqsfQ==",
"cpu": [
"ppc64"
],
@@ -1642,9 +1642,9 @@
}
},
"node_modules/@rolldown/binding-linux-s390x-gnu": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz",
"integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.2.tgz",
"integrity": "sha512-gb6dYKW/1KDorGXyy48glEBJs/sxVSC5pcVrox/pFGV4mvwSFeg2sK5L2tRkVsVlh7kueqOgg4GEcuipJcGuKg==",
"cpu": [
"s390x"
],
@@ -1661,9 +1661,9 @@
}
},
"node_modules/@rolldown/binding-linux-x64-gnu": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz",
"integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.2.tgz",
"integrity": "sha512-JY4w85pU3iAiJVMh5nuk4/Mh9GjMsupe8MrIN53rwxAZW64GKrWeJBuN6SxQg9QTU5uB1cxyhDzW8jqRn1EABw==",
"cpu": [
"x64"
],
@@ -1680,9 +1680,9 @@
}
},
"node_modules/@rolldown/binding-linux-x64-musl": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz",
"integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.2.tgz",
"integrity": "sha512-xvpA7o5KCYLB0Rwscmuylb1/zHHSUx4g4xilm4prC5jP76pEUlzBmMbgpbh7bVDbId4NcfT96gN5i6mE6UDaiw==",
"cpu": [
"x64"
],
@@ -1699,9 +1699,9 @@
}
},
"node_modules/@rolldown/binding-openharmony-arm64": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz",
"integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.2.tgz",
"integrity": "sha512-p/ts6KBLjuk49Bp21XH77poQGt02iNz7ChgHep7tudPOaLinR/De/RHdxF8w8Yj4r/bF/bqXwH6PZrB2sA+Nvw==",
"cpu": [
"arm64"
],
@@ -1715,27 +1715,27 @@
}
},
"node_modules/@rolldown/binding-wasm32-wasi": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz",
"integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.2.tgz",
"integrity": "sha512-VMu/wmrZ9hJzYlRhbw7jK5PODlugyKZ5mOdX78+lS8OvuFkWNQdz1pFLrI2p3P0pjXOmUZ7B48o5VnMH9QOGtg==",
"cpu": [
"wasm32"
],
"license": "MIT",
"optional": true,
"dependencies": {
"@emnapi/core": "1.10.0",
"@emnapi/runtime": "1.10.0",
"@napi-rs/wasm-runtime": "^1.1.4"
"@emnapi/core": "1.11.1",
"@emnapi/runtime": "1.11.1",
"@napi-rs/wasm-runtime": "^1.1.5"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-win32-arm64-msvc": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz",
"integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.2.tgz",
"integrity": "sha512-xtUJqs8qEkuSviS0n1tsohaPuz3a1SPhZywOji4Oo+sgrJs8daEDMZ0QtqL0OS7dx8PoVpg2J/ZZycPY5I2+Zg==",
"cpu": [
"arm64"
],
@@ -1749,9 +1749,9 @@
}
},
"node_modules/@rolldown/binding-win32-x64-msvc": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz",
"integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.2.tgz",
"integrity": "sha512-85YiLQqjUKgSO/Zjnf9e0XIn5Ymrh1fLDWBeAkZqpuBR/3R8TpfoHXuyblqyQrftSSgWO9qpcHN8mkyKsLraoA==",
"cpu": [
"x64"
],
@@ -1793,9 +1793,9 @@
"license": "MIT"
},
"node_modules/@tybys/wasm-util": {
"version": "0.10.2",
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz",
"integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==",
"version": "0.10.3",
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz",
"integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -2582,9 +2582,9 @@
}
},
"node_modules/@vue/eslint-config-typescript": {
"version": "14.8.0",
"resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-14.8.0.tgz",
"integrity": "sha512-yIquzhXH7ZsrwSSm+rYvoGCRY6wcuF4qBi76e0l7hHLq7YU0f9aC+RcR5fL+XJNfmBZxgX5cVl4sppt4x7ZCBg==",
"version": "14.9.0",
"resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-14.9.0.tgz",
"integrity": "sha512-E3j9hDlfVf10F30MRcLTPY2IIhWIx1nsvkVukk14kTcuA+oBVot9zsP1hzsO+PAMDxV3Fd9FimBJtUBNBL5KFA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2593,6 +2593,9 @@
"typescript-eslint": "^8.60.0",
"vue-eslint-parser": "^10.4.0"
},
"bin": {
"vue-eslint-config-typescript": "dist/bin.js"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
@@ -5421,13 +5424,13 @@
"license": "MIT"
},
"node_modules/rolldown": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz",
"integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.2.tgz",
"integrity": "sha512-x0CrQQqCXWGeI8dTvFfN/Dnv3yMKT9hv5jFjlOreKAx9wqLq9wz7VvLLHyaAXC90/CpggTu9SisSbsJJTPSjNQ==",
"devOptional": true,
"license": "MIT",
"dependencies": {
"@oxc-project/types": "=0.133.0",
"@oxc-project/types": "=0.137.0",
"@rolldown/pluginutils": "^1.0.0"
},
"bin": {
@@ -5437,21 +5440,21 @@
"node": "^20.19.0 || >=22.12.0"
},
"optionalDependencies": {
"@rolldown/binding-android-arm64": "1.0.3",
"@rolldown/binding-darwin-arm64": "1.0.3",
"@rolldown/binding-darwin-x64": "1.0.3",
"@rolldown/binding-freebsd-x64": "1.0.3",
"@rolldown/binding-linux-arm-gnueabihf": "1.0.3",
"@rolldown/binding-linux-arm64-gnu": "1.0.3",
"@rolldown/binding-linux-arm64-musl": "1.0.3",
"@rolldown/binding-linux-ppc64-gnu": "1.0.3",
"@rolldown/binding-linux-s390x-gnu": "1.0.3",
"@rolldown/binding-linux-x64-gnu": "1.0.3",
"@rolldown/binding-linux-x64-musl": "1.0.3",
"@rolldown/binding-openharmony-arm64": "1.0.3",
"@rolldown/binding-wasm32-wasi": "1.0.3",
"@rolldown/binding-win32-arm64-msvc": "1.0.3",
"@rolldown/binding-win32-x64-msvc": "1.0.3"
"@rolldown/binding-android-arm64": "1.1.2",
"@rolldown/binding-darwin-arm64": "1.1.2",
"@rolldown/binding-darwin-x64": "1.1.2",
"@rolldown/binding-freebsd-x64": "1.1.2",
"@rolldown/binding-linux-arm-gnueabihf": "1.1.2",
"@rolldown/binding-linux-arm64-gnu": "1.1.2",
"@rolldown/binding-linux-arm64-musl": "1.1.2",
"@rolldown/binding-linux-ppc64-gnu": "1.1.2",
"@rolldown/binding-linux-s390x-gnu": "1.1.2",
"@rolldown/binding-linux-x64-gnu": "1.1.2",
"@rolldown/binding-linux-x64-musl": "1.1.2",
"@rolldown/binding-openharmony-arm64": "1.1.2",
"@rolldown/binding-wasm32-wasi": "1.1.2",
"@rolldown/binding-win32-arm64-msvc": "1.1.2",
"@rolldown/binding-win32-x64-msvc": "1.1.2"
}
},
"node_modules/run-applescript": {
@@ -6130,16 +6133,16 @@
"license": "MIT"
},
"node_modules/vite": {
"version": "8.0.16",
"resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz",
"integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==",
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/vite/-/vite-8.1.0.tgz",
"integrity": "sha512-BuJcQK/56NQTWDGn4ABea3q4SSBdNPWwNZKTkkUpcMPnLoquSYH8llRtSUIgoL1KSCpHt5eghLShn50mH36y7Q==",
"devOptional": true,
"license": "MIT",
"dependencies": {
"lightningcss": "^1.32.0",
"picomatch": "^4.0.4",
"postcss": "^8.5.15",
"rolldown": "1.0.3",
"rolldown": "~1.1.2",
"tinyglobby": "^0.2.17"
},
"bin": {
@@ -6156,7 +6159,7 @@
},
"peerDependencies": {
"@types/node": "^20.19.0 || >=22.12.0",
"@vitejs/devtools": "^0.1.18",
"@vitejs/devtools": "^0.3.0",
"esbuild": "^0.27.0 || ^0.28.0",
"jiti": ">=1.21.0",
"less": "^4.0.0",
@@ -7012,7 +7015,7 @@
"@vitejs/plugin-vue": "6.0.7",
"@vitest/eslint-plugin": "1.6.20",
"@vue/eslint-config-prettier": "10.2.0",
"@vue/eslint-config-typescript": "14.8.0",
"@vue/eslint-config-typescript": "14.9.0",
"@vue/test-utils": "2.4.11",
"@vue/tsconfig": "0.9.1",
"@webwindowed/vite-plugin-cpp-header": "1.1.0",
@@ -7025,7 +7028,7 @@
"prettier": "3.8.4",
"sass": "1.101.0",
"typescript": "6.0.3",
"vite": "8.0.16",
"vite": "8.1.0",
"vite-plugin-vue-devtools": "8.1.3",
"vitest": "4.1.9",
"vue-tsc": "3.3.5"
@@ -0,0 +1,9 @@
<template>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640">
<!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.-->
<path
fill="currentColor"
d="M480 272C480 317.9 465.1 360.3 440 394.7L566.6 521.4C579.1 533.9 579.1 554.2 566.6 566.7C554.1 579.2 533.8 579.2 521.3 566.7L394.7 440C360.3 465.1 317.9 480 272 480C157.1 480 64 386.9 64 272C64 157.1 157.1 64 272 64C386.9 64 480 157.1 480 272zM272 416C351.5 416 416 351.5 416 272C416 192.5 351.5 128 272 128C192.5 128 128 192.5 128 272C128 351.5 192.5 416 272 416z"
/>
</svg>
</template>
+281
View File
@@ -0,0 +1,281 @@
import type { GameId } from "@/native/ZoneBinds.ts";
import type { CommonAssetType } from "@/native/AssetBinds.ts";
const ASSET_TYPES_BY_GAME: Record<GameId, CommonAssetType[]> = {
iw3: [
"xmodel_pieces",
"phys_preset",
"xanim",
"xmodel",
"material",
"technique_set",
"image",
"sound",
"sound_curve",
"loaded_sound",
"clip_map",
"clip_map",
"com_world",
"game_world_sp",
"game_world_mp",
"map_ents",
"gfx_world",
"light_def",
"ui_map",
"font",
"menu_list",
"menu",
"localize_entry",
"weapon",
"sound_driver_globals",
"fx",
"impact_fx",
"ai_type",
"mp_type",
"character",
"xmodel_alias",
"raw_file",
"string_table",
],
iw4: [
"phys_preset",
"phys_coll_map",
"xanim",
"xmodel_surfs",
"xmodel",
"material",
"pixel_shader",
"vertex_shader",
"vertex_decl",
"technique_set",
"image",
"sound",
"sound_curve",
"loaded_sound",
"clip_map",
"clip_map",
"com_world",
"game_world_sp",
"game_world_mp",
"map_ents",
"fx_world",
"gfx_world",
"light_def",
"ui_map",
"font",
"menu_list",
"menu",
"localize_entry",
"weapon",
"sound_driver_globals",
"fx",
"impact_fx",
"ai_type",
"mp_type",
"character",
"xmodel_alias",
"raw_file",
"string_table",
"leaderboard",
"structured_data_def",
"tracer",
"vehicle",
"addon_map_ents",
],
iw5: [
"phys_preset",
"phys_coll_map",
"xanim",
"xmodel_surfs",
"xmodel",
"material",
"pixel_shader",
"vertex_shader",
"vertex_decl",
"technique_set",
"image",
"sound",
"sound_curve",
"loaded_sound",
"clip_map",
"com_world",
"glass_world",
"path_data",
"vehicle_track",
"map_ents",
"fx_world",
"gfx_world",
"light_def",
"ui_map",
"font",
"menu_list",
"menu",
"localize_entry",
"attachment",
"weapon",
"sound_driver_globals",
"fx",
"impact_fx",
"surface_fx",
"ai_type",
"mp_type",
"character",
"xmodel_alias",
"raw_file",
"script",
"string_table",
"leaderboard",
"structured_data_def",
"tracer",
"vehicle",
"addon_map_ents",
],
t4: [
"xmodel_pieces",
"phys_preset",
"phys_constraints",
"destructible_def",
"xanim",
"xmodel",
"material",
"technique_set",
"image",
"sound",
"loaded_sound",
"clip_map",
"clip_map",
"com_world",
"game_world_sp",
"game_world_mp",
"map_ents",
"gfx_world",
"light_def",
"ui_map",
"font",
"menu_list",
"menu",
"localize_entry",
"weapon",
"sound_driver_globals",
"fx",
"impact_fx",
"ai_type",
"mp_type",
"character",
"xmodel_alias",
"raw_file",
"string_table",
"pack_index",
],
t5: [
"xmodel_pieces",
"phys_preset",
"phys_constraints",
"destructible_def",
"xanim",
"xmodel",
"material",
"technique_set",
"image",
"sound",
"sound_patch",
"clip_map",
"clip_map",
"com_world",
"game_world_sp",
"game_world_mp",
"map_ents",
"gfx_world",
"light_def",
"ui_map",
"font",
"menu_list",
"menu",
"localize_entry",
"weapon",
"weapon_def",
"weapon_variant",
"sound_driver_globals",
"fx",
"impact_fx",
"ai_type",
"mp_type",
"mp_body",
"mp_head",
"character",
"xmodel_alias",
"raw_file",
"string_table",
"pack_index",
"xglobals",
"ddl",
"glasses",
"emblem_set",
],
t6: [
"xmodel_pieces",
"phys_preset",
"phys_constraints",
"destructible_def",
"xanim",
"xmodel",
"material",
"technique_set",
"image",
"sound",
"sound_patch",
"clip_map",
"clip_map",
"com_world",
"game_world_sp",
"game_world_mp",
"map_ents",
"gfx_world",
"light_def",
"ui_map",
"font",
"font_icon",
"menu_list",
"menu",
"localize_entry",
"weapon",
"weapon_def",
"weapon_variant",
"weapon_full",
"attachment",
"attachment_unique",
"weapon_camo",
"sound_driver_globals",
"fx",
"impact_fx",
"ai_type",
"mp_type",
"mp_body",
"mp_head",
"character",
"xmodel_alias",
"raw_file",
"string_table",
"leaderboard",
"xglobals",
"ddl",
"glasses",
"emblem_set",
"script",
"key_value_pairs",
"vehicle",
"memory_block",
"addon_map_ents",
"tracer",
"skinned_verts",
"qdb",
"slug",
"footstep_table",
"footstep_fx_table",
"zbarrier",
],
};
export function getAssetTypesByGame(game: GameId): CommonAssetType[] {
return ASSET_TYPES_BY_GAME[game] ?? [];
}
-1
View File
@@ -14,7 +14,6 @@
:root {
font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
font-size: 16px;
line-height: 24px;
font-weight: 400;
color: colors.$color-text;
@@ -35,6 +35,7 @@ watch(
<InspectZoneAssets
v-model:selected-asset="selectedAsset"
:assets="assetsOfZone.assets"
:zone-name="zoneName"
class="inspect-area-assets"
/>
</template>
@@ -0,0 +1,109 @@
<script setup lang="ts">
import { computed } from "vue";
import IftaLabel from "primevue/iftalabel";
import InputText from "primevue/inputtext";
import MultiSelect from "primevue/multiselect";
import IconField from "primevue/iconfield";
import InputIcon from "primevue/inputicon";
import IconMagnifyingGlass from "@/components/icons/IconMagnifyingGlass.vue";
import { useZoneStore } from "@/stores/ZoneStore.ts";
import { getAssetTypesByGame } from "@/meta/GameAssetTypes.ts";
import { localizeAssetType } from "@/i18n/i18n.ts";
export interface AssetListFilterData {
searchText?: string;
assetTypeFilter?: string[];
}
const modelValue = defineModel<AssetListFilterData>({ required: true });
const props = defineProps<{
zoneName: string;
}>();
const zoneStore = useZoneStore();
const zone = computed(() => {
const result = zoneStore.getLoadedZoneByName(props.zoneName);
if (!result) throw new Error("Could not find zone");
return result;
});
const gameId = computed(() => zone.value.game);
const availableAssetTypes = computed(() =>
getAssetTypesByGame(gameId.value).map((assetType) => ({
value: assetType,
name: localizeAssetType(assetType),
})),
);
const searchText = computed<string>({
get: () => modelValue.value.searchText ?? "",
set: (value) => {
if (value) {
modelValue.value = { ...modelValue.value, searchText: value };
} else {
modelValue.value = { ...modelValue.value, searchText: undefined };
}
},
});
const assetTypeFilter = computed<string[]>({
get: () => modelValue.value.assetTypeFilter ?? [],
set: (value) => {
if (value.length > 0) {
modelValue.value = { ...modelValue.value, assetTypeFilter: value };
} else {
modelValue.value = { ...modelValue.value, assetTypeFilter: undefined };
}
},
});
</script>
<template>
<div class="filters">
<IftaLabel>
<IconField>
<InputIcon>
<IconMagnifyingGlass class="search-icon" />
</InputIcon>
<InputText v-model="searchText" fluid inputId="alf_search" />
<InputIcon>
<IconMagnifyingGlass class="search-icon" />
</InputIcon>
</IconField>
<label for="alf_search">Asset name</label>
</IftaLabel>
<IftaLabel>
<MultiSelect
v-model="assetTypeFilter"
fluid
inputId="alf_asset_types"
:options="availableAssetTypes"
show-clear
option-label="name"
option-value="value"
:max-selected-labels="2"
filter
variant="filled"
/>
<label for="alf_asset_types">Asset types</label>
</IftaLabel>
</div>
</template>
<style scoped lang="scss">
@use "sass:math";
$FILTER_GAP: 0.5rem;
$FILTER_COL_COUNT: 2;
$FILTER_PAD_MIDDLE: ($FILTER_COL_COUNT - 1) * $FILTER_GAP;
$FILTER_PAD_EDGE: math.div($FILTER_PAD_MIDDLE, 2);
.filters {
display: grid;
grid-template-columns: calc(60% - #{$FILTER_PAD_EDGE}) calc(40% - #{$FILTER_PAD_EDGE});
grid-gap: 0.5rem;
padding-bottom: 0.5rem;
}
.search-icon {
height: 1em;
}
</style>
@@ -2,31 +2,63 @@
import Listbox from "primevue/listbox";
import type { AssetDto } from "@/native/AssetBinds.ts";
import AssetListOption from "@/view/inspect_details/components/AssetListOption.vue";
import { computed, ref } from "vue";
import AssetListFilter, {
type AssetListFilterData,
} from "@/view/inspect_details/components/AssetListFilter.vue";
const selectedAsset = defineModel<AssetDto | undefined>("selectedAsset", { required: true });
defineProps<{
const props = defineProps<{
assets: AssetDto[];
zoneName: string;
}>();
const filter = ref<AssetListFilterData>({});
const filteredAssets = computed(() => {
let result = props.assets;
const nameFilter = filter.value.searchText;
const assetTypesToFilter = filter.value.assetTypeFilter;
if (assetTypesToFilter) {
result = result.filter((asset: AssetDto) => assetTypesToFilter.includes(asset.type));
}
if (nameFilter) {
result = result.filter((asset: AssetDto) => asset.name.indexOf(nameFilter) >= 0);
}
return result;
});
</script>
<template>
<Listbox
v-model="selectedAsset"
class="asset-list"
:options="assets"
option-label="name"
scroll-height="100%"
:virtual-scroller-options="{ itemSize: 24 }"
>
<template #option="{ option }: { option: AssetDto }">
<AssetListOption :asset="option" />
</template>
</Listbox>
<div class="zone-assets">
<AssetListFilter v-model="filter" :zone-name="zoneName" />
<Listbox
v-model="selectedAsset"
class="asset-list"
:options="filteredAssets"
option-label="name"
scroll-height="100%"
:virtual-scroller-options="{ itemSize: 24 }"
>
<template #option="{ option }: { option: AssetDto }">
<AssetListOption :asset="option" />
</template>
</Listbox>
</div>
</template>
<style scoped lang="scss">
.zone-assets {
display: flex;
flex-direction: column;
}
.asset-list {
--p-listbox-option-padding: 0;
flex-grow: 1;
}
:deep(.p-virtualscroller) {