mirror of
https://github.com/molstar/molstar.git
synced 2026-06-07 07:04:22 +08:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0e843c20cc | ||
|
|
ecaf19c5fb | ||
|
|
f024aeef2c | ||
|
|
9d9985f117 | ||
|
|
a0f7349ef6 | ||
|
|
01407427d2 | ||
|
|
3dee03d9b6 | ||
|
|
737f6593be | ||
|
|
068e10dd40 | ||
|
|
c1ba5248b0 | ||
|
|
4af0f22ac0 | ||
|
|
25a67e1176 | ||
|
|
a8fcd501d6 | ||
|
|
573ee92889 | ||
|
|
2558d6fada | ||
|
|
2cf3f8d62b | ||
|
|
589d89b0d5 | ||
|
|
7cc7b77460 | ||
|
|
e8a9995bef |
@@ -5,6 +5,10 @@ Note that since we don't clearly distinguish between a public and private interf
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [v5.4.2] - 2025-12-07
|
||||
- Fix postprocessing issues with SSAO and outlines for large structures (#1387)
|
||||
- Reduce automatic quality on standalone HMD devices
|
||||
|
||||
## [v5.4.1] - 2025-11-16
|
||||
- Fix ugly camera clipping in snapshot transitions
|
||||
- Add viewport button to toggle illumination mode
|
||||
@@ -27,7 +31,7 @@ Note that since we don't clearly distinguish between a public and private interf
|
||||
- Add support for Input Method Editor (IME) to text params input
|
||||
- Update `guessCifVariant` to detect density files not generated by the VolumeServer
|
||||
|
||||
## [v5.3.0] - 2025-11-5
|
||||
## [v5.3.0] - 2025-11-05
|
||||
- Update loading message in MVS Stories Viewer
|
||||
- Add `Canvas3D.setAttribs`
|
||||
- Fix `normalizeWheel` "spin" calculation fallback
|
||||
|
||||
556
package-lock.json
generated
556
package-lock.json
generated
@@ -1,25 +1,25 @@
|
||||
{
|
||||
"name": "molstar",
|
||||
"version": "5.4.1",
|
||||
"version": "5.4.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "molstar",
|
||||
"version": "5.4.1",
|
||||
"version": "5.4.2",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/argparse": "^2.0.17",
|
||||
"@types/benchmark": "^2.1.5",
|
||||
"@types/compression": "1.8.1",
|
||||
"@types/express": "^5.0.5",
|
||||
"@types/express": "^5.0.6",
|
||||
"@types/node": "^20.19.25",
|
||||
"@types/node-fetch": "^2.6.13",
|
||||
"@types/swagger-ui-dist": "3.30.6",
|
||||
"argparse": "^2.0.1",
|
||||
"compression": "^1.8.1",
|
||||
"cors": "^2.8.5",
|
||||
"express": "^5.1.0",
|
||||
"express": "^5.2.1",
|
||||
"h264-mp4-encoder": "^1.0.12",
|
||||
"immutable": "^5.1.4",
|
||||
"io-ts": "^2.2.22",
|
||||
@@ -28,7 +28,7 @@
|
||||
"react-markdown": "^10.1.0",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"rxjs": "^7.8.2",
|
||||
"swagger-ui-dist": "^5.30.2",
|
||||
"swagger-ui-dist": "^5.30.3",
|
||||
"tslib": "^2.8.1",
|
||||
"util.promisify": "^1.1.3"
|
||||
},
|
||||
@@ -53,13 +53,13 @@
|
||||
"@types/react": "^18.3.26",
|
||||
"@types/react-dom": "^18.3.7",
|
||||
"@types/webxr": "^0.5.24",
|
||||
"@typescript-eslint/eslint-plugin": "^8.46.4",
|
||||
"@typescript-eslint/parser": "^8.46.4",
|
||||
"@typescript-eslint/eslint-plugin": "^8.48.1",
|
||||
"@typescript-eslint/parser": "^8.48.1",
|
||||
"benchmark": "^2.1.4",
|
||||
"concurrently": "^9.2.1",
|
||||
"cpx2": "^8.0.0",
|
||||
"css-loader": "^7.1.2",
|
||||
"esbuild": "^0.27.0",
|
||||
"esbuild": "^0.27.1",
|
||||
"esbuild-jest-transform": "^2.0.1",
|
||||
"esbuild-sass-plugin": "^3.3.1",
|
||||
"eslint": "^9.39.1",
|
||||
@@ -69,7 +69,7 @@
|
||||
"jpeg-js": "^0.4.4",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"sass": "^1.94.0",
|
||||
"sass": "^1.94.2",
|
||||
"simple-git": "^3.30.0",
|
||||
"tsc-alias": "^1.8.16",
|
||||
"typescript": "^5.9.3"
|
||||
@@ -663,9 +663,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/aix-ppc64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.0.tgz",
|
||||
"integrity": "sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz",
|
||||
"integrity": "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
@@ -680,9 +680,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.0.tgz",
|
||||
"integrity": "sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.1.tgz",
|
||||
"integrity": "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -697,9 +697,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.0.tgz",
|
||||
"integrity": "sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz",
|
||||
"integrity": "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -714,9 +714,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-x64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.0.tgz",
|
||||
"integrity": "sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.1.tgz",
|
||||
"integrity": "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -731,9 +731,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-arm64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.0.tgz",
|
||||
"integrity": "sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz",
|
||||
"integrity": "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -748,9 +748,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-x64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.0.tgz",
|
||||
"integrity": "sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz",
|
||||
"integrity": "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -765,9 +765,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-arm64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.0.tgz",
|
||||
"integrity": "sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz",
|
||||
"integrity": "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -782,9 +782,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-x64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.0.tgz",
|
||||
"integrity": "sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz",
|
||||
"integrity": "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -799,9 +799,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.0.tgz",
|
||||
"integrity": "sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz",
|
||||
"integrity": "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -816,9 +816,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.0.tgz",
|
||||
"integrity": "sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz",
|
||||
"integrity": "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -833,9 +833,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ia32": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.0.tgz",
|
||||
"integrity": "sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz",
|
||||
"integrity": "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -850,9 +850,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-loong64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.0.tgz",
|
||||
"integrity": "sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz",
|
||||
"integrity": "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
@@ -867,9 +867,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-mips64el": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.0.tgz",
|
||||
"integrity": "sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz",
|
||||
"integrity": "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==",
|
||||
"cpu": [
|
||||
"mips64el"
|
||||
],
|
||||
@@ -884,9 +884,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ppc64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.0.tgz",
|
||||
"integrity": "sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz",
|
||||
"integrity": "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
@@ -901,9 +901,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-riscv64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.0.tgz",
|
||||
"integrity": "sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz",
|
||||
"integrity": "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@@ -918,9 +918,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-s390x": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.0.tgz",
|
||||
"integrity": "sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz",
|
||||
"integrity": "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
@@ -935,9 +935,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-x64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.0.tgz",
|
||||
"integrity": "sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz",
|
||||
"integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -952,9 +952,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/netbsd-arm64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.0.tgz",
|
||||
"integrity": "sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz",
|
||||
"integrity": "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -969,9 +969,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/netbsd-x64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.0.tgz",
|
||||
"integrity": "sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz",
|
||||
"integrity": "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -986,9 +986,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/openbsd-arm64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.0.tgz",
|
||||
"integrity": "sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz",
|
||||
"integrity": "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1003,9 +1003,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/openbsd-x64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.0.tgz",
|
||||
"integrity": "sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz",
|
||||
"integrity": "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1020,9 +1020,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/openharmony-arm64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.0.tgz",
|
||||
"integrity": "sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz",
|
||||
"integrity": "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1037,9 +1037,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/sunos-x64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.0.tgz",
|
||||
"integrity": "sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz",
|
||||
"integrity": "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1054,9 +1054,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-arm64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.0.tgz",
|
||||
"integrity": "sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz",
|
||||
"integrity": "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1071,9 +1071,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-ia32": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.0.tgz",
|
||||
"integrity": "sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz",
|
||||
"integrity": "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -1088,9 +1088,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-x64": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.0.tgz",
|
||||
"integrity": "sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz",
|
||||
"integrity": "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1724,9 +1724,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@jest/reporters/node_modules/glob": {
|
||||
"version": "10.4.5",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
|
||||
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
|
||||
"version": "10.5.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
||||
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
@@ -2524,14 +2524,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/express": {
|
||||
"version": "5.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.5.tgz",
|
||||
"integrity": "sha512-LuIQOcb6UmnF7C1PCFmEU1u2hmiHL43fgFQX67sN3H4Z+0Yk0Neo++mFsBjhOAuLzvlQeqAAkeDOZrJs9rzumQ==",
|
||||
"version": "5.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz",
|
||||
"integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/body-parser": "*",
|
||||
"@types/express-serve-static-core": "^5.0.0",
|
||||
"@types/serve-static": "^1"
|
||||
"@types/serve-static": "^2"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/express-serve-static-core": {
|
||||
@@ -2622,12 +2622,6 @@
|
||||
"@types/unist": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/mime": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
|
||||
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/ms": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
|
||||
@@ -2712,23 +2706,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/serve-static": {
|
||||
"version": "1.15.10",
|
||||
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz",
|
||||
"integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==",
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz",
|
||||
"integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/http-errors": "*",
|
||||
"@types/node": "*",
|
||||
"@types/send": "<1"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/serve-static/node_modules/@types/send": {
|
||||
"version": "0.17.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz",
|
||||
"integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/mime": "^1",
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
@@ -2776,17 +2759,17 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||
"version": "8.46.4",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.4.tgz",
|
||||
"integrity": "sha512-R48VhmTJqplNyDxCyqqVkFSZIx1qX6PzwqgcXn1olLrzxcSBDlOsbtcnQuQhNtnNiJ4Xe5gREI1foajYaYU2Vg==",
|
||||
"version": "8.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.1.tgz",
|
||||
"integrity": "sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@eslint-community/regexpp": "^4.10.0",
|
||||
"@typescript-eslint/scope-manager": "8.46.4",
|
||||
"@typescript-eslint/type-utils": "8.46.4",
|
||||
"@typescript-eslint/utils": "8.46.4",
|
||||
"@typescript-eslint/visitor-keys": "8.46.4",
|
||||
"@typescript-eslint/scope-manager": "8.48.1",
|
||||
"@typescript-eslint/type-utils": "8.48.1",
|
||||
"@typescript-eslint/utils": "8.48.1",
|
||||
"@typescript-eslint/visitor-keys": "8.48.1",
|
||||
"graphemer": "^1.4.0",
|
||||
"ignore": "^7.0.0",
|
||||
"natural-compare": "^1.4.0",
|
||||
@@ -2800,23 +2783,23 @@
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@typescript-eslint/parser": "^8.46.4",
|
||||
"@typescript-eslint/parser": "^8.48.1",
|
||||
"eslint": "^8.57.0 || ^9.0.0",
|
||||
"typescript": ">=4.8.4 <6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser": {
|
||||
"version": "8.46.4",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.4.tgz",
|
||||
"integrity": "sha512-tK3GPFWbirvNgsNKto+UmB/cRtn6TZfyw0D6IKrW55n6Vbs7KJoZtI//kpTKzE/DUmmnAFD8/Ca46s7Obs92/w==",
|
||||
"version": "8.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.1.tgz",
|
||||
"integrity": "sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "8.46.4",
|
||||
"@typescript-eslint/types": "8.46.4",
|
||||
"@typescript-eslint/typescript-estree": "8.46.4",
|
||||
"@typescript-eslint/visitor-keys": "8.46.4",
|
||||
"@typescript-eslint/scope-manager": "8.48.1",
|
||||
"@typescript-eslint/types": "8.48.1",
|
||||
"@typescript-eslint/typescript-estree": "8.48.1",
|
||||
"@typescript-eslint/visitor-keys": "8.48.1",
|
||||
"debug": "^4.3.4"
|
||||
},
|
||||
"engines": {
|
||||
@@ -2832,14 +2815,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/project-service": {
|
||||
"version": "8.46.4",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.4.tgz",
|
||||
"integrity": "sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ==",
|
||||
"version": "8.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.1.tgz",
|
||||
"integrity": "sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/tsconfig-utils": "^8.46.4",
|
||||
"@typescript-eslint/types": "^8.46.4",
|
||||
"@typescript-eslint/tsconfig-utils": "^8.48.1",
|
||||
"@typescript-eslint/types": "^8.48.1",
|
||||
"debug": "^4.3.4"
|
||||
},
|
||||
"engines": {
|
||||
@@ -2854,14 +2837,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/scope-manager": {
|
||||
"version": "8.46.4",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz",
|
||||
"integrity": "sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==",
|
||||
"version": "8.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.1.tgz",
|
||||
"integrity": "sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.46.4",
|
||||
"@typescript-eslint/visitor-keys": "8.46.4"
|
||||
"@typescript-eslint/types": "8.48.1",
|
||||
"@typescript-eslint/visitor-keys": "8.48.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
@@ -2872,9 +2855,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/tsconfig-utils": {
|
||||
"version": "8.46.4",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz",
|
||||
"integrity": "sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==",
|
||||
"version": "8.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.1.tgz",
|
||||
"integrity": "sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -2889,15 +2872,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils": {
|
||||
"version": "8.46.4",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.4.tgz",
|
||||
"integrity": "sha512-V4QC8h3fdT5Wro6vANk6eojqfbv5bpwHuMsBcJUJkqs2z5XnYhJzyz9Y02eUmF9u3PgXEUiOt4w4KHR3P+z0PQ==",
|
||||
"version": "8.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.48.1.tgz",
|
||||
"integrity": "sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.46.4",
|
||||
"@typescript-eslint/typescript-estree": "8.46.4",
|
||||
"@typescript-eslint/utils": "8.46.4",
|
||||
"@typescript-eslint/types": "8.48.1",
|
||||
"@typescript-eslint/typescript-estree": "8.48.1",
|
||||
"@typescript-eslint/utils": "8.48.1",
|
||||
"debug": "^4.3.4",
|
||||
"ts-api-utils": "^2.1.0"
|
||||
},
|
||||
@@ -2914,9 +2897,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/types": {
|
||||
"version": "8.46.4",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.4.tgz",
|
||||
"integrity": "sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==",
|
||||
"version": "8.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.1.tgz",
|
||||
"integrity": "sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -2928,21 +2911,20 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree": {
|
||||
"version": "8.46.4",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz",
|
||||
"integrity": "sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==",
|
||||
"version": "8.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.1.tgz",
|
||||
"integrity": "sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/project-service": "8.46.4",
|
||||
"@typescript-eslint/tsconfig-utils": "8.46.4",
|
||||
"@typescript-eslint/types": "8.46.4",
|
||||
"@typescript-eslint/visitor-keys": "8.46.4",
|
||||
"@typescript-eslint/project-service": "8.48.1",
|
||||
"@typescript-eslint/tsconfig-utils": "8.48.1",
|
||||
"@typescript-eslint/types": "8.48.1",
|
||||
"@typescript-eslint/visitor-keys": "8.48.1",
|
||||
"debug": "^4.3.4",
|
||||
"fast-glob": "^3.3.2",
|
||||
"is-glob": "^4.0.3",
|
||||
"minimatch": "^9.0.4",
|
||||
"semver": "^7.6.0",
|
||||
"tinyglobby": "^0.2.15",
|
||||
"ts-api-utils": "^2.1.0"
|
||||
},
|
||||
"engines": {
|
||||
@@ -2957,16 +2939,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/utils": {
|
||||
"version": "8.46.4",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.4.tgz",
|
||||
"integrity": "sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==",
|
||||
"version": "8.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.1.tgz",
|
||||
"integrity": "sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.7.0",
|
||||
"@typescript-eslint/scope-manager": "8.46.4",
|
||||
"@typescript-eslint/types": "8.46.4",
|
||||
"@typescript-eslint/typescript-estree": "8.46.4"
|
||||
"@typescript-eslint/scope-manager": "8.48.1",
|
||||
"@typescript-eslint/types": "8.48.1",
|
||||
"@typescript-eslint/typescript-estree": "8.48.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
@@ -2981,13 +2963,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/visitor-keys": {
|
||||
"version": "8.46.4",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz",
|
||||
"integrity": "sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==",
|
||||
"version": "8.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.1.tgz",
|
||||
"integrity": "sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.46.4",
|
||||
"@typescript-eslint/types": "8.48.1",
|
||||
"eslint-visitor-keys": "^4.2.1"
|
||||
},
|
||||
"engines": {
|
||||
@@ -3691,23 +3673,43 @@
|
||||
}
|
||||
},
|
||||
"node_modules/body-parser": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz",
|
||||
"integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==",
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.1.tgz",
|
||||
"integrity": "sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"bytes": "^3.1.2",
|
||||
"content-type": "^1.0.5",
|
||||
"debug": "^4.4.0",
|
||||
"debug": "^4.4.3",
|
||||
"http-errors": "^2.0.0",
|
||||
"iconv-lite": "^0.6.3",
|
||||
"iconv-lite": "^0.7.0",
|
||||
"on-finished": "^2.4.1",
|
||||
"qs": "^6.14.0",
|
||||
"raw-body": "^3.0.0",
|
||||
"type-is": "^2.0.0"
|
||||
"raw-body": "^3.0.1",
|
||||
"type-is": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/express"
|
||||
}
|
||||
},
|
||||
"node_modules/body-parser/node_modules/iconv-lite": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz",
|
||||
"integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"safer-buffer": ">= 2.1.2 < 3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/express"
|
||||
}
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
@@ -4898,9 +4900,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.0.tgz",
|
||||
"integrity": "sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==",
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz",
|
||||
"integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
@@ -4912,32 +4914,32 @@
|
||||
"node": ">=18"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/aix-ppc64": "0.27.0",
|
||||
"@esbuild/android-arm": "0.27.0",
|
||||
"@esbuild/android-arm64": "0.27.0",
|
||||
"@esbuild/android-x64": "0.27.0",
|
||||
"@esbuild/darwin-arm64": "0.27.0",
|
||||
"@esbuild/darwin-x64": "0.27.0",
|
||||
"@esbuild/freebsd-arm64": "0.27.0",
|
||||
"@esbuild/freebsd-x64": "0.27.0",
|
||||
"@esbuild/linux-arm": "0.27.0",
|
||||
"@esbuild/linux-arm64": "0.27.0",
|
||||
"@esbuild/linux-ia32": "0.27.0",
|
||||
"@esbuild/linux-loong64": "0.27.0",
|
||||
"@esbuild/linux-mips64el": "0.27.0",
|
||||
"@esbuild/linux-ppc64": "0.27.0",
|
||||
"@esbuild/linux-riscv64": "0.27.0",
|
||||
"@esbuild/linux-s390x": "0.27.0",
|
||||
"@esbuild/linux-x64": "0.27.0",
|
||||
"@esbuild/netbsd-arm64": "0.27.0",
|
||||
"@esbuild/netbsd-x64": "0.27.0",
|
||||
"@esbuild/openbsd-arm64": "0.27.0",
|
||||
"@esbuild/openbsd-x64": "0.27.0",
|
||||
"@esbuild/openharmony-arm64": "0.27.0",
|
||||
"@esbuild/sunos-x64": "0.27.0",
|
||||
"@esbuild/win32-arm64": "0.27.0",
|
||||
"@esbuild/win32-ia32": "0.27.0",
|
||||
"@esbuild/win32-x64": "0.27.0"
|
||||
"@esbuild/aix-ppc64": "0.27.1",
|
||||
"@esbuild/android-arm": "0.27.1",
|
||||
"@esbuild/android-arm64": "0.27.1",
|
||||
"@esbuild/android-x64": "0.27.1",
|
||||
"@esbuild/darwin-arm64": "0.27.1",
|
||||
"@esbuild/darwin-x64": "0.27.1",
|
||||
"@esbuild/freebsd-arm64": "0.27.1",
|
||||
"@esbuild/freebsd-x64": "0.27.1",
|
||||
"@esbuild/linux-arm": "0.27.1",
|
||||
"@esbuild/linux-arm64": "0.27.1",
|
||||
"@esbuild/linux-ia32": "0.27.1",
|
||||
"@esbuild/linux-loong64": "0.27.1",
|
||||
"@esbuild/linux-mips64el": "0.27.1",
|
||||
"@esbuild/linux-ppc64": "0.27.1",
|
||||
"@esbuild/linux-riscv64": "0.27.1",
|
||||
"@esbuild/linux-s390x": "0.27.1",
|
||||
"@esbuild/linux-x64": "0.27.1",
|
||||
"@esbuild/netbsd-arm64": "0.27.1",
|
||||
"@esbuild/netbsd-x64": "0.27.1",
|
||||
"@esbuild/openbsd-arm64": "0.27.1",
|
||||
"@esbuild/openbsd-x64": "0.27.1",
|
||||
"@esbuild/openharmony-arm64": "0.27.1",
|
||||
"@esbuild/sunos-x64": "0.27.1",
|
||||
"@esbuild/win32-arm64": "0.27.1",
|
||||
"@esbuild/win32-ia32": "0.27.1",
|
||||
"@esbuild/win32-x64": "0.27.1"
|
||||
}
|
||||
},
|
||||
"node_modules/esbuild-jest-transform": {
|
||||
@@ -5310,18 +5312,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/express": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz",
|
||||
"integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==",
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
|
||||
"integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"accepts": "^2.0.0",
|
||||
"body-parser": "^2.2.0",
|
||||
"body-parser": "^2.2.1",
|
||||
"content-disposition": "^1.0.0",
|
||||
"content-type": "^1.0.5",
|
||||
"cookie": "^0.7.1",
|
||||
"cookie-signature": "^1.2.1",
|
||||
"debug": "^4.4.0",
|
||||
"depd": "^2.0.0",
|
||||
"encodeurl": "^2.0.0",
|
||||
"escape-html": "^1.0.3",
|
||||
"etag": "^1.8.1",
|
||||
@@ -5826,15 +5829,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/glob": {
|
||||
"version": "11.0.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz",
|
||||
"integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==",
|
||||
"version": "11.1.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz",
|
||||
"integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"license": "BlueOak-1.0.0",
|
||||
"dependencies": {
|
||||
"foreground-child": "^3.3.1",
|
||||
"jackspeak": "^4.1.1",
|
||||
"minimatch": "^10.0.3",
|
||||
"minimatch": "^10.1.1",
|
||||
"minipass": "^7.1.2",
|
||||
"package-json-from-dist": "^1.0.0",
|
||||
"path-scurry": "^2.0.0"
|
||||
@@ -6151,28 +6154,23 @@
|
||||
}
|
||||
},
|
||||
"node_modules/http-errors": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
|
||||
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
|
||||
"integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"depd": "2.0.0",
|
||||
"inherits": "2.0.4",
|
||||
"setprototypeof": "1.2.0",
|
||||
"statuses": "2.0.1",
|
||||
"toidentifier": "1.0.1"
|
||||
"depd": "~2.0.0",
|
||||
"inherits": "~2.0.4",
|
||||
"setprototypeof": "~1.2.0",
|
||||
"statuses": "~2.0.2",
|
||||
"toidentifier": "~1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/http-errors/node_modules/statuses": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
|
||||
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/express"
|
||||
}
|
||||
},
|
||||
"node_modules/http-proxy": {
|
||||
@@ -6232,6 +6230,7 @@
|
||||
"version": "0.6.3",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
||||
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"safer-buffer": ">= 2.1.2 < 3.0.0"
|
||||
@@ -7131,9 +7130,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/jest-config/node_modules/glob": {
|
||||
"version": "10.4.5",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
|
||||
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
|
||||
"version": "10.5.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
||||
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
@@ -7478,9 +7477,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/jest-runtime/node_modules/glob": {
|
||||
"version": "10.4.5",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
|
||||
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
|
||||
"version": "10.5.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
||||
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
@@ -8139,9 +8138,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/mdast-util-to-hast": {
|
||||
"version": "13.2.0",
|
||||
"resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
|
||||
"integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
|
||||
"version": "13.2.1",
|
||||
"resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz",
|
||||
"integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/hast": "^3.0.0",
|
||||
@@ -9807,15 +9806,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/raw-body": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.1.tgz",
|
||||
"integrity": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==",
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
|
||||
"integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"bytes": "3.1.2",
|
||||
"http-errors": "2.0.0",
|
||||
"iconv-lite": "0.7.0",
|
||||
"unpipe": "1.0.0"
|
||||
"bytes": "~3.1.2",
|
||||
"http-errors": "~2.0.1",
|
||||
"iconv-lite": "~0.7.0",
|
||||
"unpipe": "~1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10"
|
||||
@@ -10247,9 +10246,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/sass": {
|
||||
"version": "1.94.0",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.94.0.tgz",
|
||||
"integrity": "sha512-Dqh7SiYcaFtdv5Wvku6QgS5IGPm281L+ZtVD1U2FJa7Q0EFRlq8Z3sjYtz6gYObsYThUOz9ArwFqPZx+1azILQ==",
|
||||
"version": "1.94.2",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.94.2.tgz",
|
||||
"integrity": "sha512-N+7WK20/wOr7CzA2snJcUSSNTCzeCGUTFY3OgeQP3mZ1aj9NMQ0mSTXwlrnd89j33zzQJGqIN52GIOmYrfq46A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -11322,9 +11321,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/swagger-ui-dist": {
|
||||
"version": "5.30.2",
|
||||
"resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.30.2.tgz",
|
||||
"integrity": "sha512-HWCg1DTNE/Nmapt+0m2EPXFwNKNeKK4PwMjkwveN/zn1cV2Kxi9SURd+m0SpdcSgWEK/O64sf8bzXdtUhigtHA==",
|
||||
"version": "5.30.3",
|
||||
"resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.30.3.tgz",
|
||||
"integrity": "sha512-giQl7/ToPxCqnUAx2wpnSnDNGZtGzw1LyUw6ZitIpTmdrvpxKFY/94v1hihm0zYNpgp1/VY0jTDk//R0BBgnRQ==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@scarf/scarf": "=1.4.0"
|
||||
@@ -11430,6 +11429,55 @@
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/tinyglobby": {
|
||||
"version": "0.2.15",
|
||||
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
|
||||
"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fdir": "^6.5.0",
|
||||
"picomatch": "^4.0.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/SuperchupuDev"
|
||||
}
|
||||
},
|
||||
"node_modules/tinyglobby/node_modules/fdir": {
|
||||
"version": "6.5.0",
|
||||
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
|
||||
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"picomatch": "^3 || ^4"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"picomatch": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/tinyglobby/node_modules/picomatch": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
|
||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/tmpl": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
|
||||
|
||||
16
package.json
16
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "molstar",
|
||||
"version": "5.4.1",
|
||||
"version": "5.4.2",
|
||||
"description": "A comprehensive macromolecular library.",
|
||||
"homepage": "https://github.com/molstar/molstar#readme",
|
||||
"repository": {
|
||||
@@ -134,13 +134,13 @@
|
||||
"@types/react": "^18.3.26",
|
||||
"@types/react-dom": "^18.3.7",
|
||||
"@types/webxr": "^0.5.24",
|
||||
"@typescript-eslint/eslint-plugin": "^8.46.4",
|
||||
"@typescript-eslint/parser": "^8.46.4",
|
||||
"@typescript-eslint/eslint-plugin": "^8.48.1",
|
||||
"@typescript-eslint/parser": "^8.48.1",
|
||||
"benchmark": "^2.1.4",
|
||||
"concurrently": "^9.2.1",
|
||||
"cpx2": "^8.0.0",
|
||||
"css-loader": "^7.1.2",
|
||||
"esbuild": "^0.27.0",
|
||||
"esbuild": "^0.27.1",
|
||||
"esbuild-jest-transform": "^2.0.1",
|
||||
"esbuild-sass-plugin": "^3.3.1",
|
||||
"eslint": "^9.39.1",
|
||||
@@ -150,7 +150,7 @@
|
||||
"jpeg-js": "^0.4.4",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"sass": "^1.94.0",
|
||||
"sass": "^1.94.2",
|
||||
"simple-git": "^3.30.0",
|
||||
"tsc-alias": "^1.8.16",
|
||||
"typescript": "^5.9.3"
|
||||
@@ -159,14 +159,14 @@
|
||||
"@types/argparse": "^2.0.17",
|
||||
"@types/benchmark": "^2.1.5",
|
||||
"@types/compression": "1.8.1",
|
||||
"@types/express": "^5.0.5",
|
||||
"@types/express": "^5.0.6",
|
||||
"@types/node": "^20.19.25",
|
||||
"@types/node-fetch": "^2.6.13",
|
||||
"@types/swagger-ui-dist": "3.30.6",
|
||||
"argparse": "^2.0.1",
|
||||
"compression": "^1.8.1",
|
||||
"cors": "^2.8.5",
|
||||
"express": "^5.1.0",
|
||||
"express": "^5.2.1",
|
||||
"h264-mp4-encoder": "^1.0.12",
|
||||
"immutable": "^5.1.4",
|
||||
"io-ts": "^2.2.22",
|
||||
@@ -175,7 +175,7 @@
|
||||
"react-markdown": "^10.1.0",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"rxjs": "^7.8.2",
|
||||
"swagger-ui-dist": "^5.30.2",
|
||||
"swagger-ui-dist": "^5.30.3",
|
||||
"tslib": "^2.8.1",
|
||||
"util.promisify": "^1.1.3"
|
||||
},
|
||||
|
||||
@@ -5,13 +5,16 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { Mat4, Vec3, Vec4, EPSILON } from '../mol-math/linear-algebra';
|
||||
import { Viewport, cameraProject, cameraUnproject } from './camera/util';
|
||||
import { CameraTransitionManager } from './camera/transition';
|
||||
import { BehaviorSubject } from 'rxjs';
|
||||
import { Scene } from '../mol-gl/scene';
|
||||
import { assertUnreachable } from '../mol-util/type-helpers';
|
||||
import { Ray3D } from '../mol-math/geometry/primitives/ray3d';
|
||||
import { Mat4 } from '../mol-math/linear-algebra/3d/mat4';
|
||||
import { Vec4 } from '../mol-math/linear-algebra/3d/vec4';
|
||||
import { Vec3 } from '../mol-math/linear-algebra/3d/vec3';
|
||||
import { EPSILON } from '../mol-math/linear-algebra/3d/common';
|
||||
|
||||
export type { ICamera };
|
||||
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
*/
|
||||
|
||||
import { Camera } from '../camera';
|
||||
import { Quat, Vec3 } from '../../mol-math/linear-algebra';
|
||||
import { lerp } from '../../mol-math/interpolate';
|
||||
import { Quat } from '../../mol-math/linear-algebra/3d/quat';
|
||||
import { Vec3 } from '../../mol-math/linear-algebra/3d/vec3';
|
||||
|
||||
export { CameraTransitionManager };
|
||||
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { Mat4, Vec3, Vec4 } from '../../mol-math/linear-algebra';
|
||||
import { Mat4 } from '../../mol-math/linear-algebra/3d/mat4';
|
||||
import { Vec3 } from '../../mol-math/linear-algebra/3d/vec3';
|
||||
import { Vec4 } from '../../mol-math/linear-algebra/3d/vec4';
|
||||
|
||||
export { Viewport };
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* @author David Sehnal <david.sehnal@gmail.com>
|
||||
*/
|
||||
|
||||
import { EquivalenceClasses } from '../util';
|
||||
import { EquivalenceClasses } from '../util/equivalence-classes';
|
||||
|
||||
describe('equiv-classes', () => {
|
||||
it('integer mod classes', () => {
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
*/
|
||||
|
||||
import * as ColumnHelpers from './column-helpers';
|
||||
import { Tensor as Tensors } from '../../mol-math/linear-algebra';
|
||||
import { Tokens } from '../../mol-io/reader/common/text/tokenizer';
|
||||
import { Tensor as Tensors } from '../../mol-math/linear-algebra/tensor';
|
||||
import type { Tokens } from '../../mol-io/reader/common/text/tokenizer';
|
||||
import { parseInt as fastParseInt, parseFloat as fastParseFloat } from '../../mol-io/reader/common/text/number-parser';
|
||||
|
||||
interface Column<T> {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
import { Column } from './column';
|
||||
import { sortArray } from '../util/sort';
|
||||
import { StringBuilder } from '../../mol-util';
|
||||
import { StringBuilder } from '../../mol-util/string-builder';
|
||||
|
||||
/** A collection of columns */
|
||||
type Table<Schema extends Table.Schema = any> = {
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
* @author Adam Midlik <midlik@gmail.com>
|
||||
*/
|
||||
|
||||
import { sortArray, hash3, hash4, createRangeArray } from '../../util';
|
||||
import { createRangeArray } from '../../util/array';
|
||||
import { hash3, hash4 } from '../../util/hash-functions';
|
||||
import { sortArray } from '../../util/sort';
|
||||
import { Interval } from '../interval';
|
||||
|
||||
type Nums = ArrayLike<number>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* @author David Sehnal <david.sehnal@gmail.com>
|
||||
*/
|
||||
|
||||
import { iterableToArray } from '../util';
|
||||
import { iterableToArray } from '../util/array';
|
||||
|
||||
// TODO: rename to "linear map" and just do key value mapping from index?
|
||||
|
||||
|
||||
@@ -4,8 +4,11 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { Segmentation, OrderedSet, SortedArray, Interval } from '../int';
|
||||
import { Iterator as _Iterator } from '../iterator';
|
||||
import { Interval } from './interval';
|
||||
import { OrderedSet } from './ordered-set';
|
||||
import { Segmentation } from './segmentation';
|
||||
import { SortedArray } from './sorted-array';
|
||||
|
||||
/** Pairs of min and max indices of sorted, non-overlapping ranges */
|
||||
type SortedRanges<T extends number = number> = SortedArray<T>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* @author David Sehnal <david.sehnal@gmail.com>
|
||||
*/
|
||||
|
||||
import { hash2 } from '../util';
|
||||
import { hash2 } from '../util/hash-functions';
|
||||
|
||||
/**
|
||||
* Represents a pair of two integers as a double,
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { Interval, OrderedSet, SortedArray } from '../../int';
|
||||
import { Interval } from '../../int/interval';
|
||||
import { OrderedSet } from '../../int/ordered-set';
|
||||
import { SortedArray } from '../../int/sorted-array';
|
||||
import { IntervalIterator } from '../interval-iterator';
|
||||
|
||||
describe('interval', () => {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* @author David Sehnal <david.sehnal@gmail.com>
|
||||
*/
|
||||
|
||||
import { Column } from '../db';
|
||||
import { Column } from '../db/column';
|
||||
|
||||
export interface Grouping<V, K> {
|
||||
map: Map<K, V[]>,
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { Interval } from '../int/interval';
|
||||
import { OrderedSet } from '../int/ordered-set';
|
||||
import { Segmentation } from '../int/segmentation';
|
||||
import { Iterator } from '../iterator';
|
||||
import { OrderedSet, Interval, Segmentation } from '../int';
|
||||
|
||||
/** Emits a segment of length one for each element in the interval that is also in the set */
|
||||
export class IntervalIterator<I extends number = number> implements Iterator<Segmentation.Segment<I>> {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
import { hashFnv32a } from '../../../mol-data/util';
|
||||
import { LocationIterator, PositionLocation } from '../../../mol-geo/util/location-iterator';
|
||||
import { LocationIterator, PositionLocation } from '../../util/location-iterator';
|
||||
import { RenderableState } from '../../../mol-gl/renderable';
|
||||
import { DirectVolumeValues } from '../../../mol-gl/renderable/direct-volume';
|
||||
import { calculateTransformBoundingSphere } from '../../../mol-gl/renderable/util';
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
import { hashFnv32a } from '../../../mol-data/util';
|
||||
import { LocationIterator } from '../../../mol-geo/util/location-iterator';
|
||||
import { LocationIterator } from '../../util/location-iterator';
|
||||
import { RenderableState } from '../../../mol-gl/renderable';
|
||||
import { calculateTransformBoundingSphere, createTextureImage, TextureImage } from '../../../mol-gl/renderable/util';
|
||||
import { Sphere3D } from '../../../mol-math/geometry';
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
import { ChunkedArray } from '../../../mol-data/util';
|
||||
import { Lines } from './lines';
|
||||
import { Mat4, Vec3 } from '../../../mol-math/linear-algebra';
|
||||
import { Cage } from '../../../mol-geo/primitive/cage';
|
||||
import { Cage } from '../../primitive/cage';
|
||||
|
||||
export interface LinesBuilder {
|
||||
add(startX: number, startY: number, startZ: number, endX: number, endY: number, endZ: number, group: number): void
|
||||
|
||||
@@ -8,7 +8,7 @@ import { Vec3, Mat4, Mat3 } from '../../../mol-math/linear-algebra';
|
||||
import { ChunkedArray } from '../../../mol-data/util';
|
||||
import { Mesh } from './mesh';
|
||||
import { Primitive } from '../../primitive/primitive';
|
||||
import { Cage } from '../../../mol-geo/primitive/cage';
|
||||
import { Cage } from '../../primitive/cage';
|
||||
import { addSphere } from './builder/sphere';
|
||||
import { addCylinder } from './builder/cylinder';
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import { ValueCell } from '../../../mol-util';
|
||||
import { GeometryUtils } from '../geometry';
|
||||
import { ParamDefinition as PD } from '../../../mol-util/param-definition';
|
||||
import { TransformData } from '../transform-data';
|
||||
import { LocationIterator, PositionLocation } from '../../../mol-geo/util/location-iterator';
|
||||
import { LocationIterator, PositionLocation } from '../../util/location-iterator';
|
||||
import { Theme } from '../../../mol-theme/theme';
|
||||
import { SpheresValues } from '../../../mol-gl/renderable/spheres';
|
||||
import { createColors } from '../color-data';
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
import { ParamDefinition as PD } from '../../../mol-util/param-definition';
|
||||
import { ValueCell } from '../../../mol-util';
|
||||
import { GeometryUtils } from '../geometry';
|
||||
import { LocationIterator, PositionLocation } from '../../../mol-geo/util/location-iterator';
|
||||
import { LocationIterator, PositionLocation } from '../../util/location-iterator';
|
||||
import { TransformData } from '../transform-data';
|
||||
import { Theme } from '../../../mol-theme/theme';
|
||||
import { createColors } from '../color-data';
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
import { ValueCell } from '../../../mol-util';
|
||||
import { Sphere3D } from '../../../mol-math/geometry';
|
||||
import { ParamDefinition as PD } from '../../../mol-util/param-definition';
|
||||
import { LocationIterator, PositionLocation } from '../../../mol-geo/util/location-iterator';
|
||||
import { LocationIterator, PositionLocation } from '../../util/location-iterator';
|
||||
import { TransformData } from '../transform-data';
|
||||
import { createColors } from '../color-data';
|
||||
import { createMarkers } from '../marker-data';
|
||||
|
||||
@@ -786,5 +786,6 @@ export function createGl(width: number, height: number, contextAttributes: WebGL
|
||||
stencilOp: function () { },
|
||||
stencilOpSeparate: function () { },
|
||||
unpackColorSpace: 'srgb',
|
||||
makeXRCompatible: async function () { },
|
||||
};
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
* @author David Sehnal <david.sehnal@gmail.com>
|
||||
*/
|
||||
|
||||
import { LinkedList } from '../mol-data/generic';
|
||||
import { LinkedList } from '../mol-data/generic/linked-list';
|
||||
import { GraphicsRenderObject } from './render-object';
|
||||
|
||||
type N = LinkedList.Node<GraphicsRenderObject>
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { Vec3, Mat4 } from '../mol-math/linear-algebra';
|
||||
import { Mat4 } from '../mol-math/linear-algebra/3d/mat4';
|
||||
import { Vec3 } from '../mol-math/linear-algebra/3d/vec3';
|
||||
|
||||
export interface Object3D {
|
||||
readonly view: Mat4
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
import { Program } from './webgl/program';
|
||||
import { RenderableValues, Values, RenderableSchema, BaseValues } from './renderable/schema';
|
||||
import { GraphicsRenderItem, ComputeRenderItem, GraphicsRenderVariant, MultiDrawBaseData, Transparency } from './webgl/render-item';
|
||||
import { ValueCell } from '../mol-util';
|
||||
import { ValueCell } from '../mol-util/value-cell';
|
||||
import { idFactory } from '../mol-util/id-factory';
|
||||
import { clamp } from '../mol-math/interpolate';
|
||||
import { Frustum3D } from '../mol-math/geometry/primitives/frustum3d';
|
||||
import { Plane3D } from '../mol-math/geometry/primitives/plane3d';
|
||||
import { Sphere3D } from '../mol-math/geometry';
|
||||
import { Sphere3D } from '../mol-math/geometry/primitives/sphere3d';
|
||||
import { Vec4 } from '../mol-math/linear-algebra/3d/vec4';
|
||||
import { WebGLStats } from './webgl/context';
|
||||
import { isTimingMode } from '../mol-util/debug';
|
||||
|
||||
@@ -9,8 +9,7 @@ import { WebGLContext } from '../webgl/context';
|
||||
import { createGraphicsRenderItem, Transparency } from '../webgl/render-item';
|
||||
import { AttributeSpec, Values, GlobalUniformSchema, InternalSchema, TextureSpec, ElementsSpec, DefineSpec, InternalValues, BaseSchema, UniformSpec, GlobalTextureSchema, GlobalDefineValues, GlobalDefines, GlobalDefineSchema } from './schema';
|
||||
import { ImageShaderCode } from '../shader-code';
|
||||
import { ValueCell } from '../../mol-util';
|
||||
import { InterpolationTypeNames } from '../../mol-geo/geometry/image/image';
|
||||
import { ValueCell } from '../../mol-util/value-cell';
|
||||
|
||||
export const ImageSchema = {
|
||||
...BaseSchema,
|
||||
@@ -33,7 +32,8 @@ export const ImageSchema = {
|
||||
|
||||
uIsoLevel: UniformSpec('f'),
|
||||
|
||||
dInterpolation: DefineSpec('string', InterpolationTypeNames),
|
||||
/** Same as `InterpolationTypeNames` in '../../mol-geo/geometry/image/image' */
|
||||
dInterpolation: DefineSpec('string', ['nearest', 'catmulrom', 'mitchell', 'bspline']),
|
||||
};
|
||||
export type ImageSchema = typeof ImageSchema
|
||||
export type ImageValues = Values<ImageSchema>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Copyright (c) 2019-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
* Copyright (c) 2019-2025 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
*
|
||||
* @author Áron Samuel Kovács <aron.kovacs@mail.muni.cz>
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
@@ -48,7 +48,7 @@ vec2 getDepthTransparentWithAlpha(const in vec2 coords) {
|
||||
}
|
||||
|
||||
bool isBackground(const in float depth) {
|
||||
return depth > 0.9999;
|
||||
return depth == 1.0;
|
||||
}
|
||||
|
||||
float getPixelSize(const in vec2 coords, const in float depth) {
|
||||
@@ -108,8 +108,8 @@ void main(void) {
|
||||
transparentOutlineFlag = 0.0;
|
||||
bestTransparentAlpha = 0.0;
|
||||
}
|
||||
|
||||
vec2 depthPacked; // Pack depth in G/B channels
|
||||
|
||||
vec2 depthPacked; // Pack depth in G/B channels
|
||||
float outlineTypeFlag = 0.0;
|
||||
if (opaqueOutlineFlag > 0.0 && transparentOutlineFlag > 0.0) {
|
||||
outlineTypeFlag = 0.75; // Both
|
||||
@@ -121,7 +121,7 @@ void main(void) {
|
||||
outlineTypeFlag = 0.25; // Opaque only
|
||||
depthPacked = packUnitIntervalToRG(bestOpaqueDepth);
|
||||
}
|
||||
|
||||
|
||||
float alpha = clamp(bestTransparentAlpha, 0.0, 0.5) * 2.0; // limiting to range [0.0, 0.5] to improve alpha precision since we don't need a wider range
|
||||
float packedFlagWithAlpha = pack2x4(vec2(outlineTypeFlag, alpha)); // pack outlineType with alpha
|
||||
gl_FragColor = vec4(packedFlagWithAlpha, depthPacked.x, depthPacked.y, bestTransparentDepth);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Copyright (c) 2019-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
* Copyright (c) 2019-2025 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
*
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
* @author Áron Samuel Kovács <aron.kovacs@mail.muni.cz>
|
||||
@@ -54,13 +54,13 @@ float getDepthTransparent(const in vec2 coords) {
|
||||
}
|
||||
|
||||
bool isBackground(const in float depth) {
|
||||
return depth > 0.9999; // handle depth packing precision issues
|
||||
return depth == 1.0;
|
||||
}
|
||||
|
||||
int squaredOutlineScale = dOutlineScale * dOutlineScale;
|
||||
void getOutline(const in vec2 coords, out bool hasOpaque, out bool hasTransparent, out float opaqueDepth, out float transparentDepth, out float alpha) {
|
||||
vec2 invTexSize = 1.0 / uTexSize;
|
||||
|
||||
|
||||
hasOpaque = false;
|
||||
hasTransparent = false;
|
||||
opaqueDepth = 1.0;
|
||||
@@ -81,14 +81,14 @@ void getOutline(const in vec2 coords, out bool hasOpaque, out bool hasTransparen
|
||||
|
||||
float sampleFlag = sampleFlagWithAlpha.x;
|
||||
float sampleAlpha = clamp(sampleFlagWithAlpha.y * 0.5, 0.01, 1.0);
|
||||
|
||||
|
||||
if ((sampleFlag > 0.20 && sampleFlag < 0.30) || (sampleFlag > 0.70 && sampleFlag < 0.80)) { // transparent || both
|
||||
if (sampleOpaqueDepth < opaqueDepth) {
|
||||
hasOpaque = true;
|
||||
opaqueDepth = sampleOpaqueDepth;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ((((sampleFlag > 0.45 && sampleFlag < 0.55) || (sampleFlag > 0.70 && sampleFlag < 0.80))) && sampleTransparentDepth < transparentDepth) { // transparent || both
|
||||
hasTransparent = true;
|
||||
transparentDepth = sampleTransparentDepth;
|
||||
@@ -184,15 +184,15 @@ void main(void) {
|
||||
if (hasOpaque) {
|
||||
float viewDist = abs(getViewZ(outlineOpaqueDepth));
|
||||
float fogFactor = smoothstep(uFogNear, uFogFar, viewDist);
|
||||
if (!uTransparentBackground) {
|
||||
if (!uTransparentBackground) {
|
||||
color.rgb = mix(uOutlineColor, uFogColor, fogFactor);
|
||||
} else {
|
||||
color.a = 1.0 - fogFactor;
|
||||
color.rgb = mix(uOutlineColor, vec3(0.0), fogFactor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef dBlendTransparency
|
||||
#ifdef dBlendTransparency
|
||||
if (hasTransparent) {
|
||||
if (hasOpaque && outlineOpaqueDepth < outlineTransparentDepth) {
|
||||
blendTransparency = false;
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/**
|
||||
* Copyright (c) 2019-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
* Copyright (c) 2019-2025 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
*
|
||||
* @author Áron Samuel Kovács <aron.kovacs@mail.muni.cz>
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
* @author Ludovic Autin <ludovic.autin@gmail.com>
|
||||
* @author Gianluca Tomasello <giagitom@gmail.com>
|
||||
*/
|
||||
|
||||
export const ssaoBlur_frag = `
|
||||
@@ -36,8 +37,7 @@ float getViewZ(const in float depth) {
|
||||
}
|
||||
|
||||
bool isBackground(const in float depth) {
|
||||
// checking for 1.0 is not enough, because of precision issues
|
||||
return depth >= 0.999;
|
||||
return depth == 1.0;
|
||||
}
|
||||
|
||||
bool isNearClip(const in float depth) {
|
||||
@@ -78,8 +78,9 @@ void main(void) {
|
||||
|
||||
float sum = 0.0;
|
||||
float kernelSum = 0.0;
|
||||
int halfKernelSize = dOcclusionKernelSize / 2;
|
||||
// only if kernelSize is odd
|
||||
for (int i = -dOcclusionKernelSize / 2; i <= dOcclusionKernelSize / 2; i++) {
|
||||
for (int i = -halfKernelSize; i <= halfKernelSize; i++) {
|
||||
if (abs(float(i)) > 1.0 && abs(float(i)) * pixelSize > 0.8) continue;
|
||||
|
||||
vec2 sampleCoords = coords + float(i) * offset;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Copyright (c) 2019-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
* Copyright (c) 2019-2025 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
*
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
* @author Áron Samuel Kovács <aron.kovacs@mail.muni.cz>
|
||||
@@ -64,7 +64,7 @@ vec2 getNoiseVec2(const in vec2 coords) {
|
||||
}
|
||||
|
||||
bool isBackground(const in float depth) {
|
||||
return depth > 0.999; // handle precision issues with packed depth
|
||||
return depth == 1.0;
|
||||
}
|
||||
|
||||
float getDepth(const in vec2 coords, const in int transparentFlag) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
*
|
||||
* Code-generated 'BIRD' schema file. Dictionary versions: mmCIF 5.407, IHM 1.28, MA 1.4.8.
|
||||
* Code-generated 'BIRD' schema file. Dictionary versions: mmCIF 5.408, IHM 1.28, MA 1.4.8.
|
||||
*
|
||||
* @author molstar/ciftools package
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
*
|
||||
* Code-generated 'CCD' schema file. Dictionary versions: mmCIF 5.407, IHM 1.28, MA 1.4.8.
|
||||
* Code-generated 'CCD' schema file. Dictionary versions: mmCIF 5.408, IHM 1.28, MA 1.4.8.
|
||||
*
|
||||
* @author molstar/ciftools package
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
*
|
||||
* Code-generated 'mmCIF' schema file. Dictionary versions: mmCIF 5.407, IHM 1.28, MA 1.4.8.
|
||||
* Code-generated 'mmCIF' schema file. Dictionary versions: mmCIF 5.408, IHM 1.28, MA 1.4.8.
|
||||
*
|
||||
* @author molstar/ciftools package
|
||||
*/
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { chunkedSubtask, RuntimeContext } from '../../../../mol-task';
|
||||
import { RuntimeContext } from '../../../../mol-task/execution/runtime-context';
|
||||
import { chunkedSubtask } from '../../../../mol-task/util/chunked';
|
||||
import { StringLike } from '../../../common/string-like';
|
||||
|
||||
export { Tokenizer };
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
*/
|
||||
|
||||
import { GridLookup3D } from '../../geometry';
|
||||
import { sortArray } from '../../../mol-data/util';
|
||||
import { OrderedSet } from '../../../mol-data/int';
|
||||
import { sortArray } from '../../../mol-data/util/sort';
|
||||
import { OrderedSet } from '../../../mol-data/int/ordered-set';
|
||||
import { getBoundary } from '../boundary';
|
||||
|
||||
const xs = [0, 0, 1];
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
import { PositionData } from './common';
|
||||
import { Vec3 } from '../linear-algebra';
|
||||
import { OrderedSet } from '../../mol-data/int';
|
||||
import { OrderedSet } from '../../mol-data/int/ordered-set';
|
||||
import { BoundaryHelper } from './boundary-helper';
|
||||
import { Box3D } from '../geometry/primitives/box3d';
|
||||
import { Sphere3D } from '../geometry/primitives/sphere3d';
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { Vec3 } from '../../mol-math/linear-algebra/3d/vec3';
|
||||
import { Vec3 } from '../linear-algebra/3d/vec3';
|
||||
import { Sphere3D } from './primitives/sphere3d';
|
||||
|
||||
// avoiding namespace lookup improved performance in Chrome (Aug 2020)
|
||||
|
||||
@@ -5,10 +5,11 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { OrderedSet } from '../../mol-data/int';
|
||||
import { Mat4, Tensor, Vec3, Vec2 } from '../linear-algebra';
|
||||
import { OrderedSet } from '../../mol-data/int/ordered-set';
|
||||
import { Mat4 } from '../linear-algebra/3d/mat4';
|
||||
import { Vec3 } from '../linear-algebra/3d/vec3';
|
||||
import { Tensor } from '../linear-algebra/tensor';
|
||||
import { Box3D } from './primitives/box3d';
|
||||
import { Texture } from '../../mol-gl/webgl/texture';
|
||||
|
||||
export interface PositionData {
|
||||
x: ArrayLike<number>,
|
||||
@@ -30,16 +31,6 @@ export type DensityData = {
|
||||
maxRadius: number,
|
||||
}
|
||||
|
||||
export type DensityTextureData = {
|
||||
transform: Mat4,
|
||||
texture: Texture,
|
||||
bbox: Box3D,
|
||||
gridDim: Vec3,
|
||||
gridTexDim: Vec3
|
||||
gridDataDim: Vec3
|
||||
gridTexScale: Vec2
|
||||
}
|
||||
|
||||
export interface RegularGrid3d {
|
||||
box: Box3D,
|
||||
dimensions: Vec3
|
||||
|
||||
@@ -4,13 +4,16 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { Box3D, DensityData, DensityTextureData } from '../geometry';
|
||||
import { Box3D, DensityData } from '../geometry';
|
||||
import { PositionData } from './common';
|
||||
import { WebGLContext } from '../../mol-gl/webgl/context';
|
||||
import { Texture } from '../../mol-gl/webgl/texture';
|
||||
import { GaussianDensityTexture2d, GaussianDensityTexture3d } from './gaussian-density/gpu';
|
||||
import { Task } from '../../mol-task/task';
|
||||
import { GaussianDensityCPU } from './gaussian-density/cpu';
|
||||
import { Mat4 } from '../linear-algebra/3d/mat4';
|
||||
import { Vec3 } from '../linear-algebra/3d/vec3';
|
||||
import { Vec2 } from '../linear-algebra/3d/vec2';
|
||||
|
||||
export const DefaultGaussianDensityProps = {
|
||||
resolution: 1,
|
||||
@@ -27,7 +30,14 @@ export type GaussianDensityTextureData = {
|
||||
radiusFactor: number
|
||||
resolution: number
|
||||
maxRadius: number
|
||||
} & DensityTextureData
|
||||
transform: Mat4,
|
||||
texture: Texture,
|
||||
bbox: Box3D,
|
||||
gridDim: Vec3,
|
||||
gridTexDim: Vec3
|
||||
gridDataDim: Vec3
|
||||
gridTexScale: Vec2
|
||||
}
|
||||
|
||||
export function computeGaussianDensity(position: PositionData, box: Box3D, radius: (index: number) => number, props: GaussianDensityProps) {
|
||||
return Task.create('Gaussian Density', async ctx => {
|
||||
|
||||
@@ -4,13 +4,15 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { Box3D, fillGridDim } from '../../geometry';
|
||||
import { Vec3, Mat4, Tensor } from '../../linear-algebra';
|
||||
import { RuntimeContext } from '../../../mol-task';
|
||||
import { PositionData } from '../common';
|
||||
import { OrderedSet } from '../../../mol-data/int';
|
||||
import { fillGridDim, PositionData } from '../common';
|
||||
import { OrderedSet } from '../../../mol-data/int/ordered-set';
|
||||
import { GaussianDensityProps, GaussianDensityData } from '../gaussian-density';
|
||||
import { fasterExp } from '../../approx';
|
||||
import { Box3D } from '../primitives/box3d';
|
||||
import { Vec3 } from '../../linear-algebra/3d/vec3';
|
||||
import { Tensor } from '../../linear-algebra/tensor';
|
||||
import { Mat4 } from '../../linear-algebra/3d/mat4';
|
||||
|
||||
export async function GaussianDensityCPU(ctx: RuntimeContext, position: PositionData, box: Box3D, radius: (index: number) => number, props: GaussianDensityProps): Promise<GaussianDensityData> {
|
||||
const { resolution, radiusOffset, smoothness } = props;
|
||||
|
||||
@@ -7,15 +7,16 @@
|
||||
* ported from NGL (https://github.com/arose/ngl), licensed under MIT
|
||||
*/
|
||||
|
||||
import { Vec3, Tensor } from '../../mol-math/linear-algebra';
|
||||
import { ParamDefinition as PD } from '../../mol-util/param-definition';
|
||||
import { RuntimeContext } from '../../mol-task';
|
||||
import { OrderedSet } from '../../mol-data/int';
|
||||
import { PositionData } from './common';
|
||||
import { Mat4 } from '../../mol-math/linear-algebra/3d/mat4';
|
||||
import { Box3D, GridLookup3D, fillGridDim } from '../../mol-math/geometry';
|
||||
import { BaseGeometry } from '../../mol-geo/geometry/base';
|
||||
import { OrderedSet } from '../../mol-data/int/ordered-set';
|
||||
import { fillGridDim, PositionData } from './common';
|
||||
import { Boundary } from './boundary';
|
||||
import { GridLookup3D } from './lookup3d/grid';
|
||||
import { Box3D } from './primitives/box3d';
|
||||
import { Vec3 } from '../linear-algebra/3d/vec3';
|
||||
import { Tensor } from '../linear-algebra/tensor';
|
||||
import { Mat4 } from '../linear-algebra/3d/mat4';
|
||||
|
||||
function normalToLine(out: Vec3, p: Vec3) {
|
||||
out[0] = out[1] = out[2] = 1.0;
|
||||
@@ -48,8 +49,8 @@ function getAngleTables(probePositions: number): AnglesTables {
|
||||
|
||||
export const MolecularSurfaceCalculationParams = {
|
||||
probeRadius: PD.Numeric(1.4, { min: 0, max: 10, step: 0.1 }, { description: 'Radius of the probe tracing the molecular surface.' }),
|
||||
resolution: PD.Numeric(0.5, { min: 0.01, max: 20, step: 0.01 }, { description: 'Grid resolution/cell spacing.', ...BaseGeometry.CustomQualityParamInfo }),
|
||||
probePositions: PD.Numeric(36, { min: 12, max: 90, step: 1 }, { description: 'Number of positions tested for probe target intersection.', ...BaseGeometry.CustomQualityParamInfo }),
|
||||
resolution: PD.Numeric(0.5, { min: 0.01, max: 20, step: 0.01 }, { description: 'Grid resolution/cell spacing.' }),
|
||||
probePositions: PD.Numeric(36, { min: 12, max: 90, step: 1 }, { description: 'Number of positions tested for probe target intersection.' }),
|
||||
};
|
||||
export const DefaultMolecularSurfaceCalculationProps = PD.getDefaultValues(MolecularSurfaceCalculationParams);
|
||||
export type MolecularSurfaceCalculationProps = typeof DefaultMolecularSurfaceCalculationProps
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
import { PositionData } from '../common';
|
||||
import { OrderedSet } from '../../../mol-data/int';
|
||||
import { OrderedSet } from '../../../mol-data/int/ordered-set';
|
||||
import { Sphere3D } from './sphere3d';
|
||||
import { Vec3 } from '../../linear-algebra/3d/vec3';
|
||||
import { Mat4 } from '../../linear-algebra/3d/mat4';
|
||||
|
||||
@@ -5,13 +5,15 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { Vec3, Mat4, EPSILON } from '../../linear-algebra';
|
||||
import { PositionData } from '../common';
|
||||
import { OrderedSet } from '../../../mol-data/int';
|
||||
import { OrderedSet } from '../../../mol-data/int/ordered-set';
|
||||
import { NumberArray, PickRequired } from '../../../mol-util/type-helpers';
|
||||
import { Box3D } from './box3d';
|
||||
import { Axes3D } from './axes3d';
|
||||
import { PrincipalAxes } from '../../linear-algebra/matrix/principal-axes';
|
||||
import { Vec3 } from '../../linear-algebra/3d/vec3';
|
||||
import { Mat4 } from '../../linear-algebra/3d/mat4';
|
||||
import { EPSILON } from '../../linear-algebra/3d/common';
|
||||
|
||||
interface Sphere3D {
|
||||
center: Vec3,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { lerp as scalar_lerp } from '../../mol-math/interpolate';
|
||||
import { lerp as scalar_lerp } from '../interpolate';
|
||||
import { Mat3 } from '../linear-algebra/3d/mat3';
|
||||
import { Mat4 } from '../linear-algebra/3d/mat4';
|
||||
import { Quat } from '../linear-algebra/3d/quat';
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
import { Mat4 } from './mat4';
|
||||
import { Vec3 } from './vec3';
|
||||
import { EVD } from '../matrix/evd';
|
||||
import { CentroidHelper } from '../../../mol-math/geometry/centroid-helper';
|
||||
import { Matrix } from '../matrix/matrix';
|
||||
import { Sphere3D } from '../../geometry/primitives/sphere3d';
|
||||
import { CentroidHelper } from '../../geometry/centroid-helper';
|
||||
|
||||
export { MinimizeRmsd };
|
||||
namespace MinimizeRmsd {
|
||||
|
||||
@@ -19,9 +19,10 @@
|
||||
|
||||
import { Mat4 } from './mat4';
|
||||
import { NumberArray } from '../../../mol-util/type-helpers';
|
||||
import { Sphere3D } from '../../geometry/primitives/sphere3d';
|
||||
import { EPSILON } from './common';
|
||||
|
||||
type SphereLike = { center: number[], radius: number };
|
||||
|
||||
interface Vec4 extends Array<number> { [d: number]: number, '@type': 'vec4', length: 4 }
|
||||
|
||||
function Vec4() {
|
||||
@@ -54,7 +55,7 @@ namespace Vec4 {
|
||||
return out;
|
||||
}
|
||||
|
||||
export function fromSphere(out: Vec4, sphere: Sphere3D) {
|
||||
export function fromSphere(out: Vec4, sphere: SphereLike) {
|
||||
out[0] = sphere.center[0];
|
||||
out[1] = sphere.center[1];
|
||||
out[2] = sphere.center[2];
|
||||
@@ -62,7 +63,7 @@ namespace Vec4 {
|
||||
return out;
|
||||
}
|
||||
|
||||
export function ofSphere(sphere: Sphere3D) {
|
||||
export function ofSphere(sphere: SphereLike) {
|
||||
return fromSphere(zero(), sphere);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { Mat3 } from './3d/mat3';
|
||||
/**
|
||||
* Copyright (c) 2017-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
*
|
||||
@@ -9,6 +8,7 @@ import { Mat3 } from './3d/mat3';
|
||||
import { Mat4 } from './3d/mat4';
|
||||
import { Vec3 } from './3d/vec3';
|
||||
import { Vec4 } from './3d/vec4';
|
||||
import { Mat3 } from './3d/mat3';
|
||||
|
||||
export interface Tensor { data: Tensor.Data, space: Tensor.Space }
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
* @author Yana Rose <yana.v.rose@gmail.com>
|
||||
*/
|
||||
|
||||
import { substringStartsWith } from '../../../mol-util/string';
|
||||
import { CifCategory, CifField, CifFrame } from '../../../mol-io/reader/cif';
|
||||
import { Tokenizer } from '../../../mol-io/reader/common/text/tokenizer';
|
||||
import { PdbFile } from '../../../mol-io/reader/pdb/schema';
|
||||
@@ -23,6 +22,16 @@ import { parseConect } from './conect';
|
||||
import { isDebugMode } from '../../../mol-util/debug';
|
||||
import { PdbHeaderData, addHeader } from './header';
|
||||
import { mmCIF_Schema } from '../../../mol-io/reader/cif/schema/mmcif';
|
||||
import { StringLike } from '../../../mol-io/common/string-like';
|
||||
|
||||
function substringStartsWith(str: StringLike, start: number, end: number, target: string) {
|
||||
const len = target.length;
|
||||
if (len > end - start) return false;
|
||||
for (let i = 0; i < len; i++) {
|
||||
if (str.charCodeAt(start + i) !== target.charCodeAt(i)) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function pdbToMmCif(pdb: PdbFile): Promise<CifFrame> {
|
||||
const { lines } = pdb;
|
||||
|
||||
@@ -21,13 +21,19 @@ import { MeshValues } from '../../../mol-gl/renderable/mesh';
|
||||
import { Texture } from '../../../mol-gl/webgl/texture';
|
||||
import { WebGLContext } from '../../../mol-gl/webgl/context';
|
||||
import { applyMeshColorSmoothing } from '../../../mol-geo/geometry/mesh/color-smoothing';
|
||||
import { ColorSmoothingParams, getColorSmoothingProps } from '../../../mol-geo/geometry/base';
|
||||
import { BaseGeometry, ColorSmoothingParams, getColorSmoothingProps } from '../../../mol-geo/geometry/base';
|
||||
import { ValueCell } from '../../../mol-util';
|
||||
import { ComplexMeshVisual, ComplexVisual } from '../complex-visual';
|
||||
|
||||
const CommonMolecularSurfaceCalculationParams = {
|
||||
...MolecularSurfaceCalculationParams,
|
||||
resolution: { ...MolecularSurfaceCalculationParams.resolution, ...BaseGeometry.CustomQualityParamInfo },
|
||||
probePositions: { ...MolecularSurfaceCalculationParams.probePositions, ...BaseGeometry.CustomQualityParamInfo },
|
||||
};
|
||||
|
||||
export const MolecularSurfaceMeshParams = {
|
||||
...UnitsMeshParams,
|
||||
...MolecularSurfaceCalculationParams,
|
||||
...CommonMolecularSurfaceCalculationParams,
|
||||
...CommonSurfaceParams,
|
||||
...ColorSmoothingParams,
|
||||
};
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
import { Segmentation } from '../../../../../mol-data/int';
|
||||
import { Segmentation } from '../../../../../mol-data/int/segmentation';
|
||||
import { SortedRanges } from '../../../../../mol-data/int/sorted-ranges';
|
||||
import { ElementIndex, ResidueIndex, Unit } from '../../../../../mol-model/structure';
|
||||
import { MoleculeType } from '../../../../../mol-model/structure/model/types';
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
*/
|
||||
|
||||
import { Unit, StructureElement, ElementIndex, ResidueIndex, Structure } from '../../../../../mol-model/structure';
|
||||
import { Segmentation, SortedArray } from '../../../../../mol-data/int';
|
||||
import { MoleculeType, SecondaryStructureType } from '../../../../../mol-model/structure/model/types';
|
||||
import { Iterator } from '../../../../../mol-data/iterator';
|
||||
import { Vec3 } from '../../../../../mol-math/linear-algebra';
|
||||
@@ -17,6 +16,8 @@ import { AtomicConformation } from '../../../../../mol-model/structure/model/pro
|
||||
import { SecondaryStructureProvider } from '../../../../../mol-model-props/computed/secondary-structure';
|
||||
import { HelixOrientationProvider } from '../../../../../mol-model-props/computed/helix-orientation';
|
||||
import { SecondaryStructure } from '../../../../../mol-model/structure/model/properties/secondary-structure';
|
||||
import { Segmentation } from '../../../../../mol-data/int/segmentation';
|
||||
import { SortedArray } from '../../../../../mol-data/int/sorted-array';
|
||||
|
||||
function isHelixSS(ss: SecondaryStructureType.Flag) {
|
||||
return SecondaryStructureType.is(ss, SecondaryStructureType.Flag.Helix);
|
||||
|
||||
@@ -11,6 +11,7 @@ import { Box3D, SpacegroupCell } from '../mol-math/geometry';
|
||||
import { ModelSymmetry } from '../mol-model-formats/structure/property/symmetry';
|
||||
import { Volume } from '../mol-model/volume';
|
||||
import { Location } from '../mol-model/location';
|
||||
import { isStandaloneHmd } from '../mol-util/browser';
|
||||
|
||||
export interface VisualUpdateState {
|
||||
updateTransform: boolean
|
||||
@@ -76,6 +77,28 @@ export const DefaultQualityThresholds = {
|
||||
};
|
||||
export type QualityThresholds = typeof DefaultQualityThresholds
|
||||
|
||||
enum QualityLevel {
|
||||
Lowest,
|
||||
Lower,
|
||||
Low,
|
||||
Medium,
|
||||
High,
|
||||
Higher,
|
||||
Highest
|
||||
}
|
||||
|
||||
function visualQualityToLevel(quality: Exclude<VisualQuality, 'auto' | 'custom'>): QualityLevel {
|
||||
switch (quality) {
|
||||
case 'lowest': return QualityLevel.Lowest;
|
||||
case 'lower': return QualityLevel.Lower;
|
||||
case 'low': return QualityLevel.Low;
|
||||
case 'medium': return QualityLevel.Medium;
|
||||
case 'high': return QualityLevel.High;
|
||||
case 'higher': return QualityLevel.Higher;
|
||||
case 'highest': return QualityLevel.Highest;
|
||||
}
|
||||
}
|
||||
|
||||
export function getStructureQuality(structure: Structure, tresholds: Partial<QualityThresholds> = {}): VisualQuality {
|
||||
const t = { ...DefaultQualityThresholds, ...tresholds };
|
||||
let score = structure.elementCount * t.elementCountFactor;
|
||||
@@ -132,73 +155,77 @@ export function getQualityProps(props: Partial<QualityProps>, data?: any) {
|
||||
}
|
||||
}
|
||||
|
||||
switch (quality) {
|
||||
case 'highest':
|
||||
detail = 3;
|
||||
radialSegments = 36;
|
||||
linearSegments = 18;
|
||||
resolution = 0.1;
|
||||
imageResolution = 0.01;
|
||||
probePositions = 72;
|
||||
doubleSided = true;
|
||||
break;
|
||||
case 'higher':
|
||||
detail = 3;
|
||||
radialSegments = 28;
|
||||
linearSegments = 14;
|
||||
resolution = 0.3;
|
||||
imageResolution = 0.05;
|
||||
probePositions = 48;
|
||||
doubleSided = true;
|
||||
break;
|
||||
case 'high':
|
||||
detail = 2;
|
||||
radialSegments = 20;
|
||||
linearSegments = 10;
|
||||
resolution = 0.5;
|
||||
imageResolution = 0.1;
|
||||
probePositions = 36;
|
||||
doubleSided = true;
|
||||
break;
|
||||
case 'medium':
|
||||
detail = 1;
|
||||
radialSegments = 12;
|
||||
linearSegments = 8;
|
||||
resolution = 0.8;
|
||||
imageResolution = 0.2;
|
||||
probePositions = 24;
|
||||
doubleSided = true;
|
||||
break;
|
||||
case 'low':
|
||||
detail = 0;
|
||||
radialSegments = 8;
|
||||
linearSegments = 3;
|
||||
resolution = 1.3;
|
||||
imageResolution = 0.4;
|
||||
probePositions = 24;
|
||||
doubleSided = false;
|
||||
break;
|
||||
case 'lower':
|
||||
detail = 0;
|
||||
radialSegments = 4;
|
||||
linearSegments = 2;
|
||||
resolution = 3;
|
||||
imageResolution = 0.7;
|
||||
probePositions = 12;
|
||||
doubleSided = false;
|
||||
break;
|
||||
case 'lowest':
|
||||
detail = 0;
|
||||
radialSegments = 2;
|
||||
linearSegments = 1;
|
||||
resolution = 8;
|
||||
imageResolution = 1;
|
||||
probePositions = 12;
|
||||
doubleSided = false;
|
||||
break;
|
||||
case 'custom':
|
||||
// use defaults or given props as set above
|
||||
break;
|
||||
if (quality !== 'custom' && quality !== 'auto') {
|
||||
let level = visualQualityToLevel(quality);
|
||||
if (isStandaloneHmd()) {
|
||||
level = Math.max(level - 1, QualityLevel.Lowest);
|
||||
}
|
||||
|
||||
switch (level) {
|
||||
case QualityLevel.Highest:
|
||||
detail = 3;
|
||||
radialSegments = 36;
|
||||
linearSegments = 18;
|
||||
resolution = 0.1;
|
||||
imageResolution = 0.01;
|
||||
probePositions = 72;
|
||||
doubleSided = true;
|
||||
break;
|
||||
case QualityLevel.Higher:
|
||||
detail = 3;
|
||||
radialSegments = 28;
|
||||
linearSegments = 14;
|
||||
resolution = 0.3;
|
||||
imageResolution = 0.05;
|
||||
probePositions = 48;
|
||||
doubleSided = true;
|
||||
break;
|
||||
case QualityLevel.High:
|
||||
detail = 2;
|
||||
radialSegments = 20;
|
||||
linearSegments = 10;
|
||||
resolution = 0.5;
|
||||
imageResolution = 0.1;
|
||||
probePositions = 36;
|
||||
doubleSided = true;
|
||||
break;
|
||||
case QualityLevel.Medium:
|
||||
detail = 1;
|
||||
radialSegments = 12;
|
||||
linearSegments = 8;
|
||||
resolution = 0.8;
|
||||
imageResolution = 0.2;
|
||||
probePositions = 24;
|
||||
doubleSided = true;
|
||||
break;
|
||||
case QualityLevel.Low:
|
||||
detail = 0;
|
||||
radialSegments = 8;
|
||||
linearSegments = 3;
|
||||
resolution = 1.3;
|
||||
imageResolution = 0.4;
|
||||
probePositions = 24;
|
||||
doubleSided = false;
|
||||
break;
|
||||
case QualityLevel.Lower:
|
||||
detail = 0;
|
||||
radialSegments = 4;
|
||||
linearSegments = 2;
|
||||
resolution = 3;
|
||||
imageResolution = 0.7;
|
||||
probePositions = 12;
|
||||
doubleSided = false;
|
||||
break;
|
||||
case QualityLevel.Lowest:
|
||||
detail = 0;
|
||||
radialSegments = 2;
|
||||
linearSegments = 1;
|
||||
resolution = 8;
|
||||
imageResolution = 1;
|
||||
probePositions = 12;
|
||||
doubleSided = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// max resolution based on volume (for 'auto' quality)
|
||||
|
||||
@@ -18,7 +18,7 @@ import { calculateTransformBoundingSphere } from '../mol-gl/renderable/util';
|
||||
import { ValueCell } from '../mol-util';
|
||||
import { Overpaint } from '../mol-theme/overpaint';
|
||||
import { createOverpaint, clearOverpaint, applyOverpaintColor } from '../mol-geo/geometry/overpaint-data';
|
||||
import { Interval } from '../mol-data/int';
|
||||
import { Interval } from '../mol-data/int/interval';
|
||||
import { Transparency } from '../mol-theme/transparency';
|
||||
import { createTransparency, clearTransparency, applyTransparencyValue, getTransparencyAverage, getTransparencyMin } from '../mol-geo/geometry/transparency-data';
|
||||
import { Clipping } from '../mol-theme/clipping';
|
||||
|
||||
@@ -16,11 +16,12 @@ import { Theme, ThemeRegistryContext } from '../../mol-theme/theme';
|
||||
import { VolumeVisual, VolumeRepresentation, VolumeRepresentationProvider } from './representation';
|
||||
import { VisualUpdateState } from '../util';
|
||||
import { RepresentationContext, RepresentationParamsGetter } from '../representation';
|
||||
import { Interval, OrderedSet } from '../../mol-data/int';
|
||||
import { Loci, EmptyLoci } from '../../mol-model/loci';
|
||||
import { PickingId } from '../../mol-geo/geometry/picking';
|
||||
import { createVolumeCellLocationIterator, createVolumeTexture2d, createVolumeTexture3d, eachVolumeLoci, getVolumeTexture2dLayout } from './util';
|
||||
import { Texture } from '../../mol-gl/webgl/texture';
|
||||
import { Interval } from '../../mol-data/int/interval';
|
||||
import { OrderedSet } from '../../mol-data/int/ordered-set';
|
||||
|
||||
function getBoundingBox(gridDimension: Vec3, transform: Mat4) {
|
||||
const bbox = Box3D();
|
||||
|
||||
@@ -15,7 +15,6 @@ import { VisualUpdateState } from '../util';
|
||||
import { RepresentationContext, RepresentationParamsGetter, Representation } from '../representation';
|
||||
import { PickingId } from '../../mol-geo/geometry/picking';
|
||||
import { EmptyLoci, Loci } from '../../mol-model/loci';
|
||||
import { Interval, OrderedSet } from '../../mol-data/int';
|
||||
import { createVolumeCellLocationIterator, eachVolumeLoci } from './util';
|
||||
import { WebGLContext } from '../../mol-gl/webgl/context';
|
||||
import { BaseGeometry } from '../../mol-geo/geometry/base';
|
||||
@@ -28,6 +27,8 @@ import { sphereVertexCount } from '../../mol-geo/primitive/sphere';
|
||||
import { Points } from '../../mol-geo/geometry/points/points';
|
||||
import { PointsBuilder } from '../../mol-geo/geometry/points/points-builder';
|
||||
import { Mat4 } from '../../mol-math/linear-algebra';
|
||||
import { Interval } from '../../mol-data/int/interval';
|
||||
import { OrderedSet } from '../../mol-data/int/ordered-set';
|
||||
|
||||
export const VolumeDotParams = {
|
||||
isoValue: Volume.IsoValueParam,
|
||||
|
||||
@@ -17,7 +17,6 @@ import { Lines } from '../../mol-geo/geometry/lines/lines';
|
||||
import { RepresentationContext, RepresentationParamsGetter, Representation } from '../representation';
|
||||
import { PickingId } from '../../mol-geo/geometry/picking';
|
||||
import { EmptyLoci, Loci } from '../../mol-model/loci';
|
||||
import { Interval, OrderedSet } from '../../mol-data/int';
|
||||
import { Tensor, Vec2, Vec3 } from '../../mol-math/linear-algebra';
|
||||
import { fillSerial } from '../../mol-util/array';
|
||||
import { createVolumeCellLocationIterator, createVolumeTexture2d, createWrappedVolume, eachVolumeLoci, getVolumeTexture2dLayout } from './util';
|
||||
@@ -28,6 +27,8 @@ import { CustomPropertyDescriptor } from '../../mol-model/custom-property';
|
||||
import { Texture } from '../../mol-gl/webgl/texture';
|
||||
import { BaseGeometry } from '../../mol-geo/geometry/base';
|
||||
import { ValueCell } from '../../mol-util/value-cell';
|
||||
import { Interval } from '../../mol-data/int/interval';
|
||||
import { OrderedSet } from '../../mol-data/int/ordered-set';
|
||||
|
||||
export const VolumeIsosurfaceParams = {
|
||||
isoValue: Volume.IsoValueParam,
|
||||
|
||||
@@ -14,7 +14,6 @@ import { createTransform, TransformData } from '../../mol-geo/geometry/transform
|
||||
import { createRenderObject, getNextMaterialId, GraphicsRenderObject } from '../../mol-gl/render-object';
|
||||
import { PickingId } from '../../mol-geo/geometry/picking';
|
||||
import { Loci, isEveryLoci, EmptyLoci, isEmptyLoci } from '../../mol-model/loci';
|
||||
import { Interval, OrderedSet } from '../../mol-data/int';
|
||||
import { getQualityProps, LocationCallback, VisualUpdateState } from '../util';
|
||||
import { ColorTheme } from '../../mol-theme/color';
|
||||
import { ValueCell } from '../../mol-util';
|
||||
@@ -37,6 +36,8 @@ import { createMarkers } from '../../mol-geo/geometry/marker-data';
|
||||
import { Emissive } from '../../mol-theme/emissive';
|
||||
import { SizeTheme } from '../../mol-theme/size';
|
||||
import { Sphere3D } from '../../mol-math/geometry/primitives/sphere3d';
|
||||
import { Interval } from '../../mol-data/int/interval';
|
||||
import { OrderedSet } from '../../mol-data/int/ordered-set';
|
||||
|
||||
export type VolumeKey = { volume: Volume, key: number }
|
||||
export interface VolumeVisual<P extends VolumeParams> extends Visual<VolumeKey, P> { }
|
||||
|
||||
@@ -16,7 +16,6 @@ import { VisualUpdateState } from '../util';
|
||||
import { RepresentationContext, RepresentationParamsGetter, Representation } from '../representation';
|
||||
import { PickingId } from '../../mol-geo/geometry/picking';
|
||||
import { EmptyLoci, Loci } from '../../mol-model/loci';
|
||||
import { Interval, OrderedSet, SortedArray } from '../../mol-data/int';
|
||||
import { Mat4, Tensor, Vec2, Vec3 } from '../../mol-math/linear-algebra';
|
||||
import { fillSerial } from '../../mol-util/array';
|
||||
import { createSegmentTexture2d, eachVolumeLoci, getVolumeTexture2dLayout } from './util';
|
||||
@@ -26,6 +25,9 @@ import { BaseGeometry } from '../../mol-geo/geometry/base';
|
||||
import { ValueCell } from '../../mol-util/value-cell';
|
||||
import { extractIsosurface } from '../../mol-gl/compute/marching-cubes/isosurface';
|
||||
import { Box3D } from '../../mol-math/geometry/primitives/box3d';
|
||||
import { SortedArray } from '../../mol-data/int/sorted-array';
|
||||
import { Interval } from '../../mol-data/int/interval';
|
||||
import { OrderedSet } from '../../mol-data/int/ordered-set';
|
||||
|
||||
export const VolumeSegmentParams = {
|
||||
segments: PD.Converted(
|
||||
|
||||
@@ -15,7 +15,6 @@ import { RepresentationContext, RepresentationParamsGetter } from '../representa
|
||||
import { VisualContext } from '../visual';
|
||||
import { PickingId } from '../../mol-geo/geometry/picking';
|
||||
import { EmptyLoci, Loci } from '../../mol-model/loci';
|
||||
import { Interval, OrderedSet, SortedArray } from '../../mol-data/int';
|
||||
import { transformPositionArray } from '../../mol-geo/util';
|
||||
import { Color } from '../../mol-util/color';
|
||||
import { ColorTheme } from '../../mol-theme/color';
|
||||
@@ -27,6 +26,9 @@ import { degToRad } from '../../mol-math/misc';
|
||||
import { Mat4 } from '../../mol-math/linear-algebra/3d/mat4';
|
||||
import { clamp, normalize } from '../../mol-math/interpolate';
|
||||
import { assertUnreachable } from '../../mol-util/type-helpers';
|
||||
import { OrderedSet } from '../../mol-data/int/ordered-set';
|
||||
import { SortedArray } from '../../mol-data/int/sorted-array';
|
||||
import { Interval } from '../../mol-data/int/interval';
|
||||
|
||||
export const SliceParams = {
|
||||
...Image.Params,
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
import { Grid, Volume } from '../../mol-model/volume';
|
||||
import { Loci } from '../../mol-model/loci';
|
||||
import { Interval, OrderedSet, SortedArray } from '../../mol-data/int';
|
||||
import { equalEps } from '../../mol-math/linear-algebra/3d/common';
|
||||
import { Vec3 } from '../../mol-math/linear-algebra/3d/vec3';
|
||||
import { packIntToRGBArray } from '../../mol-util/number-packing';
|
||||
@@ -16,6 +15,9 @@ import { toHalfFloat } from '../../mol-util/number-conversion';
|
||||
import { clamp } from '../../mol-math/interpolate';
|
||||
import { LocationIterator } from '../../mol-geo/util/location-iterator';
|
||||
import { Tensor } from '../../mol-math/linear-algebra/tensor';
|
||||
import { Interval } from '../../mol-data/int/interval';
|
||||
import { SortedArray } from '../../mol-data/int/sorted-array';
|
||||
import { OrderedSet } from '../../mol-data/int/ordered-set';
|
||||
|
||||
// avoiding namespace lookup improved performance in Chrome (Aug 2020)
|
||||
const v3set = Vec3.set;
|
||||
|
||||
@@ -12,7 +12,7 @@ import { ElementSymbol, BondType, SecondaryStructureType } from '../../../mol-mo
|
||||
import { SetUtils } from '../../../mol-util/set';
|
||||
import { upperCaseAny } from '../../../mol-util/string';
|
||||
import { VdwRadius, AtomWeight, AtomNumber } from '../../../mol-model/structure/model/properties/atomic';
|
||||
import { cantorPairing, invertCantorPairing, sortedCantorPairing } from '../../../mol-data/util';
|
||||
import { cantorPairing, invertCantorPairing, sortedCantorPairing } from '../../../mol-data/util/hash-functions';
|
||||
import { bundleElementImpl, bundleGenerator } from '../../../mol-model/structure/query/queries/internal';
|
||||
import { arrayEqual } from '../../../mol-util/array';
|
||||
|
||||
|
||||
@@ -12,23 +12,24 @@ import { StructureElement, QueryContext, StructureSelection, Structure, QueryFn,
|
||||
import { compile } from './runtime/query/compiler';
|
||||
import { MolScriptBuilder } from './language/builder';
|
||||
import { assertUnreachable } from '../mol-util/type-helpers';
|
||||
import { Script } from './types';
|
||||
|
||||
export { Script };
|
||||
export { ScriptImpl as Script };
|
||||
|
||||
interface Script { expression: string, language: Script.Language }
|
||||
type ScriptImpl = Script
|
||||
|
||||
function Script(expression: string, language: Script.Language): Script {
|
||||
function ScriptImpl(expression: string, language: Script['language']): Script {
|
||||
return { expression, language };
|
||||
}
|
||||
|
||||
namespace Script {
|
||||
export const Info = {
|
||||
namespace ScriptImpl {
|
||||
export const Info: { [k in Script['language']]: string } = {
|
||||
'mol-script': 'Mol-Script',
|
||||
'pymol': 'PyMOL',
|
||||
'vmd': 'VMD',
|
||||
'jmol': 'Jmol',
|
||||
};
|
||||
export type Language = keyof typeof Info;
|
||||
export type Language = Script['language'];
|
||||
|
||||
export function is(x: any): x is Script {
|
||||
return !!x && typeof (x as Script).expression === 'string' && !!(x as Script).language;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { UniqueArray } from '../../../mol-data/generic';
|
||||
import { UniqueArray } from '../../../mol-data/generic/unique-array';
|
||||
import { Expression } from '../../language/expression';
|
||||
import { Argument, MSymbol, Arguments } from '../../language/symbol';
|
||||
import { MolScriptSymbolTable as MolScript } from '../../language/symbol-table';
|
||||
|
||||
7
src/mol-script/types.ts
Normal file
7
src/mol-script/types.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
/**
|
||||
* Copyright (c) 2025 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
||||
*
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
export interface Script { expression: string, language: 'mol-script' | 'pymol' | 'vmd' | 'jmol' }
|
||||
@@ -21,7 +21,7 @@ import { ParamDefinition } from '../mol-util/param-definition';
|
||||
import { StateTreeSpine } from './tree/spine';
|
||||
import { AsyncQueue } from '../mol-util/async-queue';
|
||||
import { arraySetAdd, arraySetRemove } from '../mol-util/array';
|
||||
import { UniqueArray } from '../mol-data/generic';
|
||||
import { UniqueArray } from '../mol-data/generic/unique-array';
|
||||
import { assignIfUndefined } from '../mol-util/object';
|
||||
|
||||
export { State };
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
import { StateTransformer } from './transformer';
|
||||
import { UUID } from '../mol-util';
|
||||
import { hashMurmur128o } from '../mol-data/util';
|
||||
import { hashMurmur128o } from '../mol-data/util/hash-functions';
|
||||
|
||||
export { Transform as StateTransform };
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ import { ScaleLegend, TableLegend } from '../../mol-util/legend';
|
||||
import { SecondaryStructureColorTheme, SecondaryStructureColorThemeParams } from './secondary-structure';
|
||||
import { ElementSymbolColorTheme, ElementSymbolColorThemeParams } from './element-symbol';
|
||||
import { TrajectoryIndexColorTheme, TrajectoryIndexColorThemeParams } from './trajectory-index';
|
||||
import { hash2 } from '../../mol-data/util';
|
||||
import { hash2 } from '../../mol-data/util/hash-functions';
|
||||
import { HydrophobicityColorTheme, HydrophobicityColorThemeParams } from './hydrophobicity';
|
||||
import { UncertaintyColorTheme, UncertaintyColorThemeParams } from './uncertainty';
|
||||
import { OccupancyColorTheme, OccupancyColorThemeParams } from './occupancy';
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
import { Color } from '../../mol-util/color';
|
||||
import { Location } from '../../mol-model/location';
|
||||
import { StructureElement, Bond } from '../../mol-model/structure';
|
||||
import { OrderedSet } from '../../mol-data/int';
|
||||
import { OrderedSet } from '../../mol-data/int/ordered-set';
|
||||
import type { ColorTheme, LocationColor } from '../color';
|
||||
import { ParamDefinition as PD } from '../../mol-util/param-definition';
|
||||
import { ThemeDataContext } from '../../mol-theme/theme';
|
||||
|
||||
@@ -10,7 +10,8 @@ import { Location } from '../../mol-model/location';
|
||||
import type { ColorTheme, LocationColor } from '../color';
|
||||
import { ParamDefinition as PD } from '../../mol-util/param-definition';
|
||||
import { ThemeDataContext } from '../../mol-theme/theme';
|
||||
import { Table, Column } from '../../mol-data/db';
|
||||
import { Column } from '../../mol-data/db/column';
|
||||
import { Table } from '../../mol-data/db/table';
|
||||
import { mmCIF_Schema } from '../../mol-io/reader/cif/schema/mmcif';
|
||||
import { getPaletteParams, getPalette } from '../../mol-util/color/palette';
|
||||
import { TableLegend, ScaleLegend } from '../../mol-util/legend';
|
||||
|
||||
@@ -13,7 +13,7 @@ import { ParamDefinition as PD } from '../../mol-util/param-definition';
|
||||
import { ThemeDataContext } from '../../mol-theme/theme';
|
||||
import { getPalette, getPaletteParams } from '../../mol-util/color/palette';
|
||||
import { TableLegend, ScaleLegend } from '../../mol-util/legend';
|
||||
import { Segmentation } from '../../mol-data/int';
|
||||
import { Segmentation } from '../../mol-data/int/segmentation';
|
||||
import { ColorLists, getColorListFromName } from '../../mol-util/color/lists';
|
||||
import { ColorThemeCategory } from './categories';
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ import { SecondaryStructureProvider, SecondaryStructureValue } from '../../mol-m
|
||||
import { getAdjustedColorMap } from '../../mol-util/color/color';
|
||||
import { getColorMapParams } from '../../mol-util/color/params';
|
||||
import { CustomProperty } from '../../mol-model-props/common/custom-property';
|
||||
import { hash2 } from '../../mol-data/util';
|
||||
import { hash2 } from '../../mol-data/util/hash-functions';
|
||||
import { ColorThemeCategory } from './categories';
|
||||
|
||||
// from Jmol http://jmol.sourceforge.net/jscolors/ (shapely)
|
||||
|
||||
@@ -13,7 +13,7 @@ import { ThemeDataContext } from '../theme';
|
||||
import { getPaletteParams, getPalette } from '../../mol-util/color/palette';
|
||||
import { TableLegend, ScaleLegend } from '../../mol-util/legend';
|
||||
import { ColorThemeCategory } from './categories';
|
||||
import { hashFnv32a } from '../../mol-data/util';
|
||||
import { hashFnv32a } from '../../mol-data/util/hash-functions';
|
||||
|
||||
const DefaultColor = Color(0xCCCCCC);
|
||||
const Description = 'Gives every model (frame) a unique color based on the index in its trajectory.';
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
|
||||
import { Unit, StructureElement, StructureProperties as Props, Bond } from '../mol-model/structure';
|
||||
import { Loci } from '../mol-model/loci';
|
||||
import { OrderedSet } from '../mol-data/int';
|
||||
import { OrderedSet } from '../mol-data/int/ordered-set';
|
||||
import { capitalize, stripTags } from '../mol-util/string';
|
||||
import { Column } from '../mol-data/db';
|
||||
import { Column } from '../mol-data/db/column';
|
||||
import { Vec3 } from '../mol-math/linear-algebra';
|
||||
import { radToDeg } from '../mol-math/misc';
|
||||
import { Volume } from '../mol-model/volume';
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
*/
|
||||
|
||||
import { UUID } from './uuid';
|
||||
import { iterableToArray } from '../mol-data/util';
|
||||
import { ajaxGet, DataType, DataResponse, readFromFile } from './data-source';
|
||||
import { Task } from '../mol-task';
|
||||
import { File_ as File } from './nodejs-shims';
|
||||
import { iterableToArray } from '../mol-data/util/array';
|
||||
|
||||
export { AssetManager, Asset };
|
||||
|
||||
|
||||
@@ -23,3 +23,11 @@ export function is_iOS() {
|
||||
const isTouchScreen = navigator.maxTouchPoints >= 4; // true for iOS 13 (and hopefully beyond)
|
||||
return !(window as any).MSStream && (isIOS || (isAppleDevice && isTouchScreen));
|
||||
}
|
||||
|
||||
export function isStandaloneHmd() {
|
||||
if (typeof navigator === 'undefined') return false;
|
||||
if (!('xr' in navigator)) return false;
|
||||
|
||||
const ua = navigator.userAgent || '';
|
||||
return /OculusBrowser\//.test(ua) || /PicoBrowser\//.test(ua);
|
||||
}
|
||||
|
||||
@@ -5,12 +5,13 @@
|
||||
* @author David Sehnal <david.sehnal@gmail.com>
|
||||
*/
|
||||
|
||||
import { Camera } from '../mol-canvas3d/camera';
|
||||
import { Vec3 } from '../mol-math/linear-algebra';
|
||||
import { Vec3 } from '../mol-math/linear-algebra/3d/vec3';
|
||||
|
||||
type CameraMode = 'perspective' | 'orthographic';
|
||||
|
||||
/** Return the distance adjustment ratio for conversion from the "reference camera"
|
||||
* to a camera with an arbitrary field of view `fov`. */
|
||||
function distanceAdjustment(mode: Camera.Mode, fov: number) {
|
||||
function distanceAdjustment(mode: CameraMode, fov: number) {
|
||||
if (mode === 'orthographic') return 1 / (2 * Math.tan(fov / 2));
|
||||
else return 1 / (2 * Math.sin(fov / 2));
|
||||
}
|
||||
@@ -20,7 +21,7 @@ function distanceAdjustment(mode: Camera.Mode, fov: number) {
|
||||
* as the "reference camera" placed at `refPosition` would fit, while keeping the camera orientation.
|
||||
* The "reference camera" is a camera which can just fit into view a sphere of radius R with center at distance 2R
|
||||
* (this corresponds to FOV = 2 * asin(1/2) in perspective mode or FOV = 2 * atan(1/2) in orthographic mode). */
|
||||
export function fovAdjustedPosition(target: Vec3, refPosition: Vec3, mode: Camera.Mode, fov: number) {
|
||||
export function fovAdjustedPosition(target: Vec3, refPosition: Vec3, mode: CameraMode, fov: number) {
|
||||
const delta = Vec3.sub(Vec3(), refPosition, target);
|
||||
const adjustment = distanceAdjustment(mode, fov);
|
||||
return Vec3.scaleAndAdd(delta, target, delta, adjustment); // return target + delta * adjustment
|
||||
@@ -29,7 +30,7 @@ export function fovAdjustedPosition(target: Vec3, refPosition: Vec3, mode: Camer
|
||||
/** Return the inverse of fovAdjustedPosition to be able to store invariant camera position,
|
||||
* e.g., in MolViewSpec snapshots.
|
||||
*/
|
||||
export function fovNormalizedCameraPosition(target: Vec3, refPosition: Vec3, mode: Camera.Mode, fov: number) {
|
||||
export function fovNormalizedCameraPosition(target: Vec3, refPosition: Vec3, mode: CameraMode, fov: number) {
|
||||
const delta = Vec3.sub(Vec3(), refPosition, target);
|
||||
const adjustment = distanceAdjustment(mode, fov) || 1;
|
||||
return Vec3.scaleAndAdd(delta, target, delta, 1 / adjustment); // return target + delta / adjustment
|
||||
|
||||
@@ -4,7 +4,10 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { EPSILON, Mat4, Quat, Vec3 } from '../mol-math/linear-algebra';
|
||||
import { EPSILON } from '../mol-math/linear-algebra/3d/common';
|
||||
import { Mat4 } from '../mol-math/linear-algebra/3d/mat4';
|
||||
import { Quat } from '../mol-math/linear-algebra/3d/quat';
|
||||
import { Vec3 } from '../mol-math/linear-algebra/3d/vec3';
|
||||
import { degToRad } from '../mol-math/misc';
|
||||
import { ParamDefinition as PD } from './param-definition';
|
||||
import { stringToWords } from './string';
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
import { NumberArray } from '../../mol-util/type-helpers';
|
||||
import { Vec3 } from '../../mol-math/linear-algebra';
|
||||
import { Vec3 } from '../../mol-math/linear-algebra/3d/vec3';
|
||||
import { Hcl } from './spaces/hcl';
|
||||
import { Lab } from './spaces/lab';
|
||||
import { Hsl } from './spaces/hsl';
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
import { Lab } from './spaces/lab';
|
||||
import { Hcl } from './spaces/hcl';
|
||||
import { deepClone } from '../../mol-util/object';
|
||||
import { deepEqual } from '../../mol-util';
|
||||
import { ParamDefinition as PD } from '../../mol-util/param-definition';
|
||||
import { deepClone } from '../object';
|
||||
import { deepEqual } from '../index';
|
||||
import { ParamDefinition as PD } from '../param-definition';
|
||||
import { ColorNames } from './names';
|
||||
import { Color } from './color';
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import { getColorListFromName, ColorListName } from './lists';
|
||||
import { defaults } from '../../mol-util';
|
||||
import { NumberArray } from '../../mol-util/type-helpers';
|
||||
import { ScaleLegend } from '../legend';
|
||||
import { SortedArray } from '../../mol-data/int';
|
||||
import { SortedArray } from '../../mol-data/int/sorted-array';
|
||||
import { clamp } from '../../mol-math/interpolate';
|
||||
|
||||
export interface ColorScale {
|
||||
|
||||
@@ -15,7 +15,6 @@ import { Asset, AssetManager } from './assets';
|
||||
import { RUNNING_IN_NODEJS } from './nodejs-shims';
|
||||
import { ungzip, unzip } from './zip/zip';
|
||||
|
||||
|
||||
export enum DataCompressionMethod {
|
||||
None,
|
||||
Gzip,
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* copyright (c) 2014 Matt DesLauriers. MIT License
|
||||
*/
|
||||
|
||||
import { Vec2 } from '../../mol-math/linear-algebra';
|
||||
import { Vec2 } from '../../mol-math/linear-algebra/3d/vec2';
|
||||
|
||||
const rootPosition = { left: 0, top: 0 };
|
||||
|
||||
|
||||
@@ -9,9 +9,12 @@
|
||||
|
||||
import { Subject, Observable } from 'rxjs';
|
||||
import { Viewport } from '../../mol-canvas3d/camera/util';
|
||||
import { Vec2, EPSILON, Vec3 } from '../../mol-math/linear-algebra';
|
||||
import { BitFlags, noop } from '../../mol-util';
|
||||
import { Ray3D } from '../../mol-math/geometry/primitives/ray3d';
|
||||
import { Vec2 } from '../../mol-math/linear-algebra/3d/vec2';
|
||||
import { Vec3 } from '../../mol-math/linear-algebra/3d/vec3';
|
||||
import { EPSILON } from '../../mol-math/linear-algebra/3d/common';
|
||||
import { BitFlags } from '../bit-flags';
|
||||
import { noop } from '../index';
|
||||
|
||||
export function getButtons(event: MouseEvent | Touch) {
|
||||
if (typeof event === 'object') {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* @author David Sehnal <david.sehnal@gmail.com>
|
||||
*/
|
||||
|
||||
import { LinkedList } from '../mol-data/generic';
|
||||
import { LinkedList } from '../mol-data/generic/linked-list';
|
||||
|
||||
export { LRUCache };
|
||||
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
||||
*/
|
||||
|
||||
import { OrderedSet, Interval } from '../mol-data/int';
|
||||
import { Interval } from '../mol-data/int/interval';
|
||||
import { OrderedSet } from '../mol-data/int/ordered-set';
|
||||
import { BitFlags } from './bit-flags';
|
||||
import { assertUnreachable } from './type-helpers';
|
||||
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
*/
|
||||
|
||||
import { clamp } from '../mol-math/interpolate';
|
||||
import { Vec3, Vec4 } from '../mol-math/linear-algebra';
|
||||
import { Vec3 } from '../mol-math/linear-algebra/3d/vec3';
|
||||
import { Vec4 } from '../mol-math/linear-algebra/3d/vec4';
|
||||
import { NumberArray } from './type-helpers';
|
||||
|
||||
/** encode positive integer as rgb byte triplet into array at offset */
|
||||
|
||||
@@ -7,14 +7,17 @@
|
||||
|
||||
import { Color as ColorData } from './color';
|
||||
import { shallowEqualObjects } from './index';
|
||||
import { Vec2 as Vec2Data, Vec3 as Vec3Data, Mat4 as Mat4Data, EPSILON } from '../mol-math/linear-algebra';
|
||||
import { Vec2 as Vec2Data } from '../mol-math/linear-algebra/3d/vec2';
|
||||
import { Vec3 as Vec3Data } from '../mol-math/linear-algebra/3d/vec3';
|
||||
import { Mat4 as Mat4Data } from '../mol-math/linear-algebra/3d/mat4';
|
||||
import { deepClone } from './object';
|
||||
import { Script as ScriptData } from '../mol-script/script';
|
||||
import { Script as ScriptData } from '../mol-script/types';
|
||||
import { Legend } from './legend';
|
||||
import { stringToWords } from './string';
|
||||
import { getColorListFromName, ColorListName } from './color/lists';
|
||||
import { Asset } from './assets';
|
||||
import { ColorListEntry } from './color/color';
|
||||
import { EPSILON } from '../mol-math/linear-algebra/3d/common';
|
||||
|
||||
export namespace ParamDefinition {
|
||||
export interface Info {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* Copyright (c) 2016 - now David Sehnal, licensed under Apache 2.0, See LICENSE file for more info.
|
||||
*/
|
||||
|
||||
import { now } from '../mol-util/now';
|
||||
import { now } from './now';
|
||||
|
||||
export class PerformanceMonitor {
|
||||
private starts = new Map<string, number>();
|
||||
|
||||
@@ -5,9 +5,6 @@
|
||||
* @author David Sehnal <david.sehnal@gmail.com>
|
||||
*/
|
||||
|
||||
import { StringLike } from '../mol-io/common/string-like';
|
||||
|
||||
|
||||
const reLine = /^/mg;
|
||||
export function indentString(str: string, count: number, indent: string) {
|
||||
return count === 0 ? str : str.replace(reLine, indent.repeat(count));
|
||||
@@ -57,7 +54,7 @@ export function stringToWords(str: string) {
|
||||
return capitalize(splitCamelCase(splitSnakeCase(splitKebabCase(str))));
|
||||
}
|
||||
|
||||
export function substringStartsWith(str: StringLike, start: number, end: number, target: string) {
|
||||
export function substringStartsWith(str: string, start: number, end: number, target: string) {
|
||||
const len = target.length;
|
||||
if (len > end - start) return false;
|
||||
for (let i = 0; i < len; i++) {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* @author David Sehnal <david.sehnal@gmail.com>
|
||||
*/
|
||||
|
||||
import { now } from '../mol-util/now';
|
||||
import { now } from './now';
|
||||
|
||||
/** A UUID, either standard 36 characters or 22 characters base64 encoded. */
|
||||
type UUID = string & { '@type': 'uuid' }
|
||||
|
||||
Reference in New Issue
Block a user