This commit is contained in:
Andy Bunce 2026-02-26 21:51:18 +00:00
commit c999bf8712
13 changed files with 2848 additions and 2794 deletions

View file

@ -1,7 +1,7 @@
# basex lsp, use with # basex lsp, use with
services: services:
basex: basex:
image: ghcr.io/quodatum/basexhttp:basex-12.2 image: ghcr.io/quodatum/basexhttp:basex-12.1
container_name: basex-lsp container_name: basex-lsp
restart: unless-stopped restart: unless-stopped
ports: ports:
@ -13,7 +13,7 @@ services:
- ./webapp/custom:/srv/basex/lib/custom:ro # jars - ./webapp/custom:/srv/basex/lib/custom:ro # jars
- ./webapp/lsp:/srv/basex/webapp/lsp - ./webapp/lsp:/srv/basex/webapp/lsp
- ./webapp/static/clients:/srv/basex/webapp/static/clients:ro - ./webapp/static/clients:/srv/basex/webapp/static/clients:ro
- webawesome-3.1.0:/srv/basex/webapp/static/webawesome:ro - webawesome:/srv/basex/webapp/static/webawesome:ro
- ./webapp/lsp-manager:/srv/basex/webapp/lsp-manager - ./webapp/lsp-manager:/srv/basex/webapp/lsp-manager
# - ./repo:/srv/basex/repo # - ./repo:/srv/basex/repo
environment: environment:
@ -22,5 +22,6 @@ services:
volumes: volumes:
basex-lsp: basex-lsp:
webawesome-3.1.0: # webawesome:
external: true external: true
name: webawesome-3.2.1

399
package-lock.json generated
View file

@ -5,7 +5,7 @@
"packages": { "packages": {
"": { "": {
"dependencies": { "dependencies": {
"@awesome.me/webawesome": "^3.0.0", "@awesome.me/webawesome": "^3.2.1",
"@codemirror/commands": "^6.10.0", "@codemirror/commands": "^6.10.0",
"@codemirror/lang-javascript": "^6.2.4", "@codemirror/lang-javascript": "^6.2.4",
"@codemirror/lang-markdown": "^6.5.0", "@codemirror/lang-markdown": "^6.5.0",
@ -33,9 +33,9 @@
} }
}, },
"node_modules/@awesome.me/webawesome": { "node_modules/@awesome.me/webawesome": {
"version": "3.1.0", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/@awesome.me/webawesome/-/webawesome-3.1.0.tgz", "resolved": "https://registry.npmjs.org/@awesome.me/webawesome/-/webawesome-3.2.1.tgz",
"integrity": "sha512-9XgTxL/6/8Ynb4KvQBjK33RjnsRyqIJO8zYQODu8MDbS/2ecjah+cUOek6DkK0opg1DC6N7X6GStjcrjAuMMyQ==", "integrity": "sha512-D/cZlPC97Ni0K5IgE+l7UKDBlthRCWIyz42voxpZrl/the+A3dAJtUKG6sr1GDDp6v2JEh4iFsyFDpZH8kuVOQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@ctrl/tinycolor": "4.1.0", "@ctrl/tinycolor": "4.1.0",
@ -53,14 +53,14 @@
} }
}, },
"node_modules/@babel/code-frame": { "node_modules/@babel/code-frame": {
"version": "7.27.1", "version": "7.29.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
"integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"@babel/helper-validator-identifier": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5",
"js-tokens": "^4.0.0", "js-tokens": "^4.0.0",
"picocolors": "^1.1.1" "picocolors": "^1.1.1"
}, },
@ -115,9 +115,9 @@
} }
}, },
"node_modules/@codemirror/commands": { "node_modules/@codemirror/commands": {
"version": "6.10.1", "version": "6.10.2",
"resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.1.tgz", "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.2.tgz",
"integrity": "sha512-uWDWFypNdQmz2y1LaNJzK7fL7TYKLeUAU0npEC685OKTF3KcQ2Vu3klIM78D7I6wGhktme0lh3CuQLv0ZCrD9Q==", "integrity": "sha512-vvX1fsih9HledO1c9zdotZYUZnE4xV0m6i3m25s5DIfXofuprk6cRcLUZvSk3CASUbwjQX21tOGbkY2BH8TpnQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@codemirror/language": "^6.0.0", "@codemirror/language": "^6.0.0",
@ -458,9 +458,9 @@
} }
}, },
"node_modules/@codemirror/lint": { "node_modules/@codemirror/lint": {
"version": "6.9.2", "version": "6.9.4",
"resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.2.tgz", "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.4.tgz",
"integrity": "sha512-sv3DylBiIyi+xKwRCJAAsBZZZWo82shJ/RTMymLabAdtbkV5cSKwWDeCgtUq3v8flTaXS2y1kKkICuRYtUswyQ==", "integrity": "sha512-ABc9vJ8DEmvOWuH26P3i8FpMWPQkduD9Rvba5iwb6O3hxASgclm3T3krGo8NASXkHCidz6b++LWlzWIUfEPSWw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@codemirror/state": "^6.0.0", "@codemirror/state": "^6.0.0",
@ -485,20 +485,20 @@
} }
}, },
"node_modules/@codemirror/search": { "node_modules/@codemirror/search": {
"version": "6.5.11", "version": "6.6.0",
"resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.11.tgz", "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.6.0.tgz",
"integrity": "sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==", "integrity": "sha512-koFuNXcDvyyotWcgOnZGmY7LZqEOXZaaxD/j6n18TCLx2/9HieZJ5H6hs1g8FiRxBD0DNfs0nXn17g872RmYdw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@codemirror/state": "^6.0.0", "@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0", "@codemirror/view": "^6.37.0",
"crelt": "^1.0.5" "crelt": "^1.0.5"
} }
}, },
"node_modules/@codemirror/state": { "node_modules/@codemirror/state": {
"version": "6.5.3", "version": "6.5.4",
"resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.3.tgz", "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.4.tgz",
"integrity": "sha512-MerMzJzlXogk2fxWFU1nKp36bY5orBG59HnPiz0G9nLRebWa0zXuv2siH6PLIHBvv5TH8CkQRqjBs0MlxCZu+A==", "integrity": "sha512-8y7xqG/hpB53l25CIoit9/ngxdfoG+fx+V3SHBrinnhOtLvKHRyAJJuHzkWrR4YXXLX8eXBsejgAAxHUOdW1yw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@marijn/find-cluster-break": "^1.0.0" "@marijn/find-cluster-break": "^1.0.0"
@ -517,9 +517,9 @@
} }
}, },
"node_modules/@codemirror/view": { "node_modules/@codemirror/view": {
"version": "6.39.8", "version": "6.39.14",
"resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.39.8.tgz", "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.39.14.tgz",
"integrity": "sha512-1rASYd9Z/mE3tkbC9wInRlCNyCkSn+nLsiQKZhEDUUJiUfs/5FHDpCUDaQpoTIaNGeDc6/bhaEAyLmeEucEFPw==", "integrity": "sha512-WJcvgHm/6Q7dvGT0YFv/6PSkoc36QlR0VCESS6x9tGsnF1lWLmmYxOgX3HH6v8fo6AvSLgpcs+H0Olre6MKXlg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@codemirror/state": "^6.5.0", "@codemirror/state": "^6.5.0",
@ -538,21 +538,21 @@
} }
}, },
"node_modules/@floating-ui/core": { "node_modules/@floating-ui/core": {
"version": "1.7.3", "version": "1.7.4",
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz",
"integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@floating-ui/utils": "^0.2.10" "@floating-ui/utils": "^0.2.10"
} }
}, },
"node_modules/@floating-ui/dom": { "node_modules/@floating-ui/dom": {
"version": "1.7.4", "version": "1.7.5",
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz",
"integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@floating-ui/core": "^1.7.3", "@floating-ui/core": "^1.7.4",
"@floating-ui/utils": "^0.2.10" "@floating-ui/utils": "^0.2.10"
} }
}, },
@ -613,15 +613,15 @@
} }
}, },
"node_modules/@lezer/common": { "node_modules/@lezer/common": {
"version": "1.5.0", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.1.tgz",
"integrity": "sha512-PNGcolp9hr4PJdXR4ix7XtixDrClScvtSCYW3rQG106oVMOOI+jFb+0+J3mbeL/53g1Zd6s0kJzaw6Ri68GmAA==", "integrity": "sha512-6YRVG9vBkaY7p1IVxL4s44n5nUnaNnGM2/AckNgYOnxTG2kWh1vR8BMxPseWPjRNpb5VtXnMpeYAEAADoRV1Iw==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/@lezer/cpp": { "node_modules/@lezer/cpp": {
"version": "1.1.4", "version": "1.1.5",
"resolved": "https://registry.npmjs.org/@lezer/cpp/-/cpp-1.1.4.tgz", "resolved": "https://registry.npmjs.org/@lezer/cpp/-/cpp-1.1.5.tgz",
"integrity": "sha512-aYSdZyUueeTgnfXQntiGUqKNW5WujlAsIbbHzkfJDneSZoyjPg8ObmWG3bzDPVYMC/Kf4l43WJLCunPnYFfQ0g==", "integrity": "sha512-DIhSXmYtJKLehrjzDFN+2cPt547ySQ41nA8yqcDf/GxMc+YM736xqltFkvADL2M0VebU5I+3+4ks2Vv+Kyq3Aw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@lezer/common": "^1.2.0", "@lezer/common": "^1.2.0",
@ -719,18 +719,18 @@
} }
}, },
"node_modules/@lezer/lr": { "node_modules/@lezer/lr": {
"version": "1.4.5", "version": "1.4.8",
"resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.5.tgz", "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.8.tgz",
"integrity": "sha512-/YTRKP5yPPSo1xImYQk7AZZMAgap0kegzqCSYHjAL9x1AZ0ZQW+IpcEzMKagCsbTsLnVeWkxYrCNeXG8xEPrjg==", "integrity": "sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@lezer/common": "^1.0.0" "@lezer/common": "^1.0.0"
} }
}, },
"node_modules/@lezer/markdown": { "node_modules/@lezer/markdown": {
"version": "1.6.2", "version": "1.6.3",
"resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.6.2.tgz", "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.6.3.tgz",
"integrity": "sha512-iNSdKrIK0FfOjVPVpV0fu7OykdncYpEzf4vkG9szFf60ql/ObZShoVbM9u1tgkogDOmubms1CyoNS2/unOXWNw==", "integrity": "sha512-jpGm5Ps+XErS+xA4urw7ogEGkeZOahVQF21Z6oECF0sj+2liwZopd2+I8uH5I/vZsRuuze3OxBREIANLf6KKUw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@lezer/common": "^1.5.0", "@lezer/common": "^1.5.0",
@ -793,9 +793,9 @@
} }
}, },
"node_modules/@lezer/yaml": { "node_modules/@lezer/yaml": {
"version": "1.0.3", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/@lezer/yaml/-/yaml-1.0.3.tgz", "resolved": "https://registry.npmjs.org/@lezer/yaml/-/yaml-1.0.4.tgz",
"integrity": "sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==", "integrity": "sha512-2lrrHqxalACEbxIbsjhqGpSW8kWpUKuY6RHgnSAFZa6qK62wvnPxA8hGOwOoDbwHcOFs5M4o27mjGu+P7TvBmw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@lezer/common": "^1.2.0", "@lezer/common": "^1.2.0",
@ -804,9 +804,9 @@
} }
}, },
"node_modules/@lit-labs/ssr-dom-shim": { "node_modules/@lit-labs/ssr-dom-shim": {
"version": "1.5.0", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.5.1.tgz",
"integrity": "sha512-HLomZXMmrCFHSRKESF5vklAKsDY7/fsT/ZhqCu3V0UoW/Qbv8wxmO4W9bx4KnCCF2Zak4yuk+AGraK/bPmI4kA==", "integrity": "sha512-Aou5UdlSpr5whQe8AA/bZG0jMj96CoJIWbGfZ91qieWu5AWUMKw8VR/pAkQkJYvBNhmCcWnZlyyk5oze8JIqYA==",
"license": "BSD-3-Clause" "license": "BSD-3-Clause"
}, },
"node_modules/@lit/react": { "node_modules/@lit/react": {
@ -958,9 +958,9 @@
} }
}, },
"node_modules/@rollup/rollup-android-arm-eabi": { "node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz",
"integrity": "sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==", "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -972,9 +972,9 @@
] ]
}, },
"node_modules/@rollup/rollup-android-arm64": { "node_modules/@rollup/rollup-android-arm64": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz",
"integrity": "sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==", "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -986,9 +986,9 @@
] ]
}, },
"node_modules/@rollup/rollup-darwin-arm64": { "node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz",
"integrity": "sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==", "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1000,9 +1000,9 @@
] ]
}, },
"node_modules/@rollup/rollup-darwin-x64": { "node_modules/@rollup/rollup-darwin-x64": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz",
"integrity": "sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==", "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1014,9 +1014,9 @@
] ]
}, },
"node_modules/@rollup/rollup-freebsd-arm64": { "node_modules/@rollup/rollup-freebsd-arm64": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz",
"integrity": "sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==", "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1028,9 +1028,9 @@
] ]
}, },
"node_modules/@rollup/rollup-freebsd-x64": { "node_modules/@rollup/rollup-freebsd-x64": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz",
"integrity": "sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==", "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1042,9 +1042,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm-gnueabihf": { "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz",
"integrity": "sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==", "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -1056,9 +1056,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm-musleabihf": { "node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz",
"integrity": "sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==", "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -1070,9 +1070,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm64-gnu": { "node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz",
"integrity": "sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==", "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1084,9 +1084,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm64-musl": { "node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz",
"integrity": "sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==", "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1098,9 +1098,23 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-loong64-gnu": { "node_modules/@rollup/rollup-linux-loong64-gnu": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz",
"integrity": "sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==", "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==",
"cpu": [
"loong64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-loong64-musl": {
"version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz",
"integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==",
"cpu": [ "cpu": [
"loong64" "loong64"
], ],
@ -1112,9 +1126,23 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-ppc64-gnu": { "node_modules/@rollup/rollup-linux-ppc64-gnu": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz",
"integrity": "sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==", "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-ppc64-musl": {
"version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz",
"integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@ -1126,9 +1154,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-riscv64-gnu": { "node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz",
"integrity": "sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==", "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@ -1140,9 +1168,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-riscv64-musl": { "node_modules/@rollup/rollup-linux-riscv64-musl": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz",
"integrity": "sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==", "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@ -1154,9 +1182,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-s390x-gnu": { "node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz",
"integrity": "sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==", "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==",
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
@ -1168,9 +1196,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-x64-gnu": { "node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz",
"integrity": "sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==", "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1182,9 +1210,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-x64-musl": { "node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz",
"integrity": "sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==", "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1195,10 +1223,24 @@
"linux" "linux"
] ]
}, },
"node_modules/@rollup/rollup-openbsd-x64": {
"version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz",
"integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
]
},
"node_modules/@rollup/rollup-openharmony-arm64": { "node_modules/@rollup/rollup-openharmony-arm64": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz",
"integrity": "sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==", "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1210,9 +1252,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-arm64-msvc": { "node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz",
"integrity": "sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==", "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1224,9 +1266,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-ia32-msvc": { "node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz",
"integrity": "sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==", "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@ -1238,9 +1280,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-x64-gnu": { "node_modules/@rollup/rollup-win32-x64-gnu": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz",
"integrity": "sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==", "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1252,9 +1294,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-x64-msvc": { "node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.54.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz",
"integrity": "sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==", "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1296,18 +1338,18 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "24.10.4", "version": "24.10.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.4.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.13.tgz",
"integrity": "sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==", "integrity": "sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"undici-types": "~7.16.0" "undici-types": "~7.16.0"
} }
}, },
"node_modules/@types/react": { "node_modules/@types/react": {
"version": "19.2.7", "version": "19.2.14",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.7.tgz", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
"integrity": "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==", "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
"license": "MIT", "license": "MIT",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
@ -1335,9 +1377,9 @@
"optional": true "optional": true
}, },
"node_modules/@zenfs/core": { "node_modules/@zenfs/core": {
"version": "2.4.4", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/@zenfs/core/-/core-2.4.4.tgz", "resolved": "https://registry.npmjs.org/@zenfs/core/-/core-2.5.0.tgz",
"integrity": "sha512-4ove99nTRyS3WPNlHN6i0AxMMYW85YBo2lVS/aNXU48dYOl78XiM98d4uly/9PwtllGJHEv9GHkomxS2eoOLFw==", "integrity": "sha512-8yiSZLnFRJz9gfsBC+U1lvbeJprHJJNWSGNnadO+0AyYhW68owhNdoxVkTrP1ugbTDVvbUGiT3iWSBHDd93VZQ==",
"license": "LGPL-3.0-or-later", "license": "LGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@types/node": "^24.1.0", "@types/node": "^24.1.0",
@ -1362,9 +1404,9 @@
} }
}, },
"node_modules/@zenfs/dom": { "node_modules/@zenfs/dom": {
"version": "1.2.6", "version": "1.2.7",
"resolved": "https://registry.npmjs.org/@zenfs/dom/-/dom-1.2.6.tgz", "resolved": "https://registry.npmjs.org/@zenfs/dom/-/dom-1.2.7.tgz",
"integrity": "sha512-gIoYg/kBi8N+3OAQt9MFXPJrwhYvPzLjJdy+3Ln9csofY0Wgt+PENrj5/9pODyBdX1+Ug+KKEcPTEmmGkd7/ww==", "integrity": "sha512-f0V512ROaUf44fKItRvZV3DQLMwo4jnQoprWGyasDSwn2oDG1TPkJ+vak3iuhqZgWD/wTWmXbpv3KE/yKDBGiA==",
"license": "LGPL-3.0-or-later", "license": "LGPL-3.0-or-later",
"engines": { "engines": {
"node": ">= 22" "node": ">= 22"
@ -1392,15 +1434,15 @@
} }
}, },
"node_modules/ace-builds": { "node_modules/ace-builds": {
"version": "1.43.5", "version": "1.43.6",
"resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.5.tgz", "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.6.tgz",
"integrity": "sha512-iH5FLBKdB7SVn9GR37UgA/tpQS8OTWIxWAuq3Ofaw+Qbc69FfPXsXd9jeW7KRG2xKpKMqBDnu0tHBrCWY5QI7A==", "integrity": "sha512-L1ddibQ7F3vyXR2k2fg+I8TQTPWVA6CKeDQr/h2+8CeyTp3W6EQL8xNFZRTztuP8xNOAqL3IYPqdzs31GCjDvg==",
"license": "BSD-3-Clause" "license": "BSD-3-Clause"
}, },
"node_modules/ace-linters": { "node_modules/ace-linters": {
"version": "1.8.7", "version": "1.8.8",
"resolved": "https://registry.npmjs.org/ace-linters/-/ace-linters-1.8.7.tgz", "resolved": "https://registry.npmjs.org/ace-linters/-/ace-linters-1.8.8.tgz",
"integrity": "sha512-wpNvjCirOo+XoCQur01a8e0EBp4lKO5Rt0OCpx6UAsBTpbq+ePOmFJPbNdkZmrbAt0k4OMTX+Ny9dYXQ0AYlTg==", "integrity": "sha512-B+5C7RoEyNocO4czi3EBgsx4UPQLaGG3tXD5GvC16+KLVHjoeMIE3k72aE87KmB5L5W4m7YZkoGtjCWjoI270w==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"vscode-languageserver-protocol": "^3.17.5", "vscode-languageserver-protocol": "^3.17.5",
@ -1843,9 +1885,9 @@
} }
}, },
"node_modules/diff": { "node_modules/diff": {
"version": "5.2.0", "version": "5.2.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.2.tgz",
"integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "integrity": "sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==",
"dev": true, "dev": true,
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"engines": { "engines": {
@ -1973,9 +2015,9 @@
} }
}, },
"node_modules/eventemitter3": { "node_modules/eventemitter3": {
"version": "5.0.1", "version": "5.0.4",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz",
"integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/events": { "node_modules/events": {
@ -2083,7 +2125,7 @@
"version": "8.1.0", "version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
"deprecated": "Glob versions prior to v9 are no longer supported", "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -3051,9 +3093,9 @@
} }
}, },
"node_modules/rollup": { "node_modules/rollup": {
"version": "4.54.0", "version": "4.57.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.54.0.tgz", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz",
"integrity": "sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==", "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -3067,28 +3109,31 @@
"npm": ">=8.0.0" "npm": ">=8.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.54.0", "@rollup/rollup-android-arm-eabi": "4.57.1",
"@rollup/rollup-android-arm64": "4.54.0", "@rollup/rollup-android-arm64": "4.57.1",
"@rollup/rollup-darwin-arm64": "4.54.0", "@rollup/rollup-darwin-arm64": "4.57.1",
"@rollup/rollup-darwin-x64": "4.54.0", "@rollup/rollup-darwin-x64": "4.57.1",
"@rollup/rollup-freebsd-arm64": "4.54.0", "@rollup/rollup-freebsd-arm64": "4.57.1",
"@rollup/rollup-freebsd-x64": "4.54.0", "@rollup/rollup-freebsd-x64": "4.57.1",
"@rollup/rollup-linux-arm-gnueabihf": "4.54.0", "@rollup/rollup-linux-arm-gnueabihf": "4.57.1",
"@rollup/rollup-linux-arm-musleabihf": "4.54.0", "@rollup/rollup-linux-arm-musleabihf": "4.57.1",
"@rollup/rollup-linux-arm64-gnu": "4.54.0", "@rollup/rollup-linux-arm64-gnu": "4.57.1",
"@rollup/rollup-linux-arm64-musl": "4.54.0", "@rollup/rollup-linux-arm64-musl": "4.57.1",
"@rollup/rollup-linux-loong64-gnu": "4.54.0", "@rollup/rollup-linux-loong64-gnu": "4.57.1",
"@rollup/rollup-linux-ppc64-gnu": "4.54.0", "@rollup/rollup-linux-loong64-musl": "4.57.1",
"@rollup/rollup-linux-riscv64-gnu": "4.54.0", "@rollup/rollup-linux-ppc64-gnu": "4.57.1",
"@rollup/rollup-linux-riscv64-musl": "4.54.0", "@rollup/rollup-linux-ppc64-musl": "4.57.1",
"@rollup/rollup-linux-s390x-gnu": "4.54.0", "@rollup/rollup-linux-riscv64-gnu": "4.57.1",
"@rollup/rollup-linux-x64-gnu": "4.54.0", "@rollup/rollup-linux-riscv64-musl": "4.57.1",
"@rollup/rollup-linux-x64-musl": "4.54.0", "@rollup/rollup-linux-s390x-gnu": "4.57.1",
"@rollup/rollup-openharmony-arm64": "4.54.0", "@rollup/rollup-linux-x64-gnu": "4.57.1",
"@rollup/rollup-win32-arm64-msvc": "4.54.0", "@rollup/rollup-linux-x64-musl": "4.57.1",
"@rollup/rollup-win32-ia32-msvc": "4.54.0", "@rollup/rollup-openbsd-x64": "4.57.1",
"@rollup/rollup-win32-x64-gnu": "4.54.0", "@rollup/rollup-openharmony-arm64": "4.57.1",
"@rollup/rollup-win32-x64-msvc": "4.54.0", "@rollup/rollup-win32-arm64-msvc": "4.57.1",
"@rollup/rollup-win32-ia32-msvc": "4.57.1",
"@rollup/rollup-win32-x64-gnu": "4.57.1",
"@rollup/rollup-win32-x64-msvc": "4.57.1",
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
@ -3151,9 +3196,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/selenium-webdriver": { "node_modules/selenium-webdriver": {
"version": "4.39.0", "version": "4.40.0",
"resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.39.0.tgz", "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.40.0.tgz",
"integrity": "sha512-NAs9jCU+UeZ/ZmRb8R6zOp7N8eMklefdBYASnaRmCNXdgFE8w3OCxxZmLixkwqnGDHY5VF7hCulfw1Mls43N/A==", "integrity": "sha512-dU0QbnVKdPmoNP8OtMCazRdtU2Ux6Wl4FEpG1iwUbDeajJK1dBAywBLrC1D7YFRtogHzN96AbXBgBAJaarcysw==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -3389,9 +3434,9 @@
} }
}, },
"node_modules/terser": { "node_modules/terser": {
"version": "5.44.1", "version": "5.46.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz",
"integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==",
"dev": true, "dev": true,
"license": "BSD-2-Clause", "license": "BSD-2-Clause",
"dependencies": { "dependencies": {
@ -3502,9 +3547,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/utilium": { "node_modules/utilium": {
"version": "2.5.8", "version": "2.6.0",
"resolved": "https://registry.npmjs.org/utilium/-/utilium-2.5.8.tgz", "resolved": "https://registry.npmjs.org/utilium/-/utilium-2.6.0.tgz",
"integrity": "sha512-RNXAYoYH7hefayCW/2LU3SYCwDGQlDc8f4gPCRbMO6dJsYGGlzAhyHqYQGp73ox41JtPKjdqzddAbDhWQ9MrXQ==", "integrity": "sha512-XIsFQrHyrss6Ex+Z2l5aAItPFJvkw/5vrCt2+C7uY1y6De18u8cIwL9qrzezfpGcgL0fi7FZhTBbgXZKD4rwxA==",
"license": "LGPL-3.0-or-later", "license": "LGPL-3.0-or-later",
"dependencies": { "dependencies": {
"eventemitter3": "^5.0.1" "eventemitter3": "^5.0.1"
@ -3593,9 +3638,9 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/ws": { "node_modules/ws": {
"version": "8.18.3", "version": "8.19.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {

View file

@ -1,6 +1,6 @@
{ {
"dependencies": { "dependencies": {
"@awesome.me/webawesome": "^3.0.0", "@awesome.me/webawesome": "^3.2.1",
"@codemirror/commands": "^6.10.0", "@codemirror/commands": "^6.10.0",
"@codemirror/lang-javascript": "^6.2.4", "@codemirror/lang-javascript": "^6.2.4",
"@codemirror/lang-markdown": "^6.5.0", "@codemirror/lang-markdown": "^6.5.0",

View file

@ -0,0 +1,46 @@
#!/usr/bin/env bash
# examine result
# docker run --rm -it -v webawesome-3.2.1:/volume alpine sh
set -euo pipefail # strict error handling
# Usage message
usage() {
echo "Usage: $0 <volume_name> [source_dir]"
echo " volume_name Name of the Docker volume to create/populate"
echo " source_dir Source directory (default: current directory)"
exit 1
}
# Check args
[[ $# -lt 1 ]] && usage
VOLUME_NAME="$1"
SOURCE_DIR="${2:-.}"
# Resolve source dir to absolute path (handles relative paths, symlinks via readlink)
if ! SOURCE_DIR=$(cd "$SOURCE_DIR" && pwd); then
echo "❌ Error: Source directory '$2' does not exist or is not readable." >&2
exit 1
fi
echo "📦 Populating Docker volume '$VOLUME_NAME' from: $SOURCE_DIR"
# Create the volume (safe: no-op if exists)
docker volume create "$VOLUME_NAME" >/dev/null 2>&1 || true
# Use Alpine Linux container to copy contents into the volume
# - --rm: auto-cleanup after exit
# - read-only source for safety
# - cp -a preserves all metadata (symlinks, perms, timestamps)
# - /source/. → copies *contents* of source dir into target root
docker run --rm \
-v "$SOURCE_DIR:/source:ro" \
-v "$VOLUME_NAME:/target" \
alpine:latest \
sh -c 'cp -a /source/. /target/' || {
echo "❌ Error copying files. Is Docker running?" >&2
exit 1
}
echo "✅ Volume '$VOLUME_NAME' is now populated from '$SOURCE_DIR'"

68
webapp/lsp/storex.xqm Normal file
View file

@ -0,0 +1,68 @@
(:~
Manage a store for websocket info.It is named as the websocket $sid
:)
module namespace storex = 'storex';
(: cache has index :)
declare variable $storex:rules:={
"doc":{
"description":"A text document"
},
"parse":{
"description":"XML parse tree" ,
"depends":"text",
"calc": "xqparse"
},
"symbols":{
"description":"LSP symbols",
"depends":"parse",
"calc": "symbols"
}
};
(:~ in store $sid, and key $uri get value of $property :)
declare function storex:get($uri as xs:string,$sid as xs:string,$property as xs:string)
{
let $id:=storex:id($uri,$sid )
let $property:=storex:property($property)
return store:get($property || $id,$sid)
otherwise error(xs:QName("storex:get"),`property unknown: '{$property}'`)
};
(:~ get value of $property :)
declare function storex:put($uri as xs:string,
$sid as xs:string,
$property as xs:string,
$value as item())
{
let $id:=storex:id($uri,$sid ,true() )
let $property:=storex:property($property)
return store:put($property || $id,$value,$sid)
};
(:~ key for $sid and $uri, error if not found unless $add.
if $add then add entry for uri
:)
declare function storex:id($uri as xs:string,$sid as xs:string,$add as xs:boolean:=false())
{
let $index:=store:get-or-put("index",fn(){{}},$sid)
return if(map:contains($index,$uri))
then $index?uri
else if($add)
then let $id:=random:uuid()
return ($id,store:put("index",map:put($index,$uri,$id),$sid))
else error(xs:QName("storex:get"),`Uri not found: '{$uri}'`)
};
(:~ key for $sid and $uri, error if not found unless $add.
if $add then add entry for uri
:)
declare function storex:property($property as xs:string)
as xs:string
{
if(map:contains($storex:rules,$property))
then $property
else error(xs:QName("storex:get"),`property not in rules: '{$property}'`)
};

View file

@ -70,29 +70,10 @@
<div class="left-column-header">EXPLORER</div> <div class="left-column-header">EXPLORER</div>
<div class="details-container"> <div class="details-container">
<div class="details-wrapper"> <div class="details-wrapper">
<wa-details id="workspacePanel" open="open" icon-placement="start">
<div slot="summary" class="wa-split">
<div>WORKSPACE</div>
<details id="symPanel" open> <wa-dropdown id="workspaceOptions">
<summary>OUTLINE
<!-- <wa-dropdown id="symOptions" style="display:inline-block;float:right;">
<wa-icon id="symTrigger" library="tabler" name="dots-vertical" slot="trigger"></wa-icon>
<wa-dropdown-item type="checkbox" value="canvas" checked>Follow cursor</wa-dropdown-item>
<wa-divider></wa-divider>
<wa-dropdown-item type="checkbox" value="position" checked>sort by:
Position</wa-dropdown-item>
<wa-dropdown-item type="checkbox" value="name">sort by: Name</wa-dropdown-item>
<wa-dropdown-item type="checkbox" value="category">sort by: Category</wa-dropdown-item>
</wa-dropdown> -->
</summary>
<qd-list id="symList" style="flex-grow:1;"></qd-list>
</details>
<wa-details id="workspacePanel" open="open" icon-placement="start">
<div slot="summary">
WORKSPACE
<wa-dropdown id="workspaceOptions" style="display:inline-block;float:right;">
<wa-icon id="workspaceTrigger" library="tabler" name="dots-vertical" slot="trigger"></wa-icon> <wa-icon id="workspaceTrigger" library="tabler" name="dots-vertical" slot="trigger"></wa-icon>
<wa-dropdown-item type="checkbox" value="canvas" checked>Follow cursor</wa-dropdown-item> <wa-dropdown-item type="checkbox" value="canvas" checked>Follow cursor</wa-dropdown-item>
@ -110,13 +91,40 @@
</div> </div>
</wa-details> </wa-details>
<details id="msgPanel"> <wa-details id="symPanel" open icon-placement="start">
<summary>MESSAGES <div slot="summary" class="wa-split">
<i id="msgIcon" class='codicon codicon-kebab-vertical' style="float:right"></i> <div>OUTLINE</div>
</summary> <wa-dropdown id="symOptions">
<qd-list id="msgList" style="flex-grow:1;"></qd-list> <wa-icon id="symTrigger" library="tabler" name="dots-vertical" slot="trigger"></wa-icon>
</details> <wa-dropdown-item type="checkbox" value="canvas" checked>Follow cursor</wa-dropdown-item>
<wa-divider></wa-divider>
<wa-dropdown-item type="checkbox" value="position" checked>sort by:
Position</wa-dropdown-item>
<wa-dropdown-item type="checkbox" value="name">sort by: Name</wa-dropdown-item>
<wa-dropdown-item type="checkbox" value="category">sort by: Category</wa-dropdown-item>
</wa-dropdown>
</div>
<qd-list id="symList" style="flex-grow:1;"></qd-list>
</wa-details>
<wa-details id="msgPanel" icon-placement="start">
<div slot="summary" class="wa-split">
<div>MESSAGES</div>
<wa-dropdown id="symOptions">
<wa-icon id="symTrigger" library="tabler" name="dots-vertical" slot="trigger"></wa-icon>
<wa-dropdown-item type="checkbox" value="canvas" checked>Follow cursor</wa-dropdown-item>
<wa-divider></wa-divider>
<wa-dropdown-item type="checkbox" value="position" checked>sort by:
Position</wa-dropdown-item>
<wa-dropdown-item type="checkbox" value="name">sort by: Name</wa-dropdown-item>
<wa-dropdown-item type="checkbox" value="category">sort by: Category</wa-dropdown-item>
</wa-dropdown>
</div>
<qd-list id="msgList" style="flex-grow:1;"></qd-list>
</wa-details>
</div> </div>
</div> </div>

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -132,6 +132,22 @@ $("popUrl").onsubmit = e => {
}; };
$("bnDebug").onclick = e => { debugger; }; $("bnDebug").onclick = e => { debugger; };
// details dropdown menu
function evth(e) {
console.log("s h", e);
if(e.srcElement.nodeName ==="WA-DROPDOWN") {
e.stopPropagation();
}
//if(e.srcElement)
//e.preventDefault();
};
document.querySelectorAll("div.details-wrapper wa-details")
.forEach(item => {
item.addEventListener('wa-hide', evth);
item.addEventListener('wa-show', evth);
});
$("bConnect").addEventListener('click', e => { $("bConnect").addEventListener('click', e => {
e.preventDefault(); e.preventDefault();
@ -142,7 +158,7 @@ $("samples").addEventListener('wa-selection-change', e => {
const sel = e.detail.selection; const sel = e.detail.selection;
const href = sel[0].getAttribute("data-href") const href = sel[0].getAttribute("data-href")
if (!href) return; if (!href) return;
const input=$("popUrl").querySelector('input[name="url"]'); const input = $("popUrl").querySelector('input[name="url"]');
input.value = href; input.value = href;
//input.setCustomValidity(''); //input.setCustomValidity('');
}); });
@ -169,7 +185,7 @@ function connect() {
const file = $("iFile").value; const file = $("iFile").value;
lsp.simpleWebSocketTransport(server) lsp.simpleWebSocketTransport(server)
.then(transport => { .then(transport => {
transport.socket.onclose = (event) => connectState(server,false); transport.socket.onclose = (event) => connectState(server, false);
transport.socket.oneror = (event) => $("msg").innerText = "sock error!"; transport.socket.oneror = (event) => $("msg").innerText = "sock error!";
transport.subscribe(incoming); transport.subscribe(incoming);
client = new lsp.LSPClient({ extensions: lsp.languageServerExtensions() }); client = new lsp.LSPClient({ extensions: lsp.languageServerExtensions() });
@ -196,7 +212,7 @@ function connect() {
function connectState(server, bConn) { function connectState(server, bConn) {
$("bConnect").setAttribute("variant", bConn ? "success" : "danger") $("bConnect").setAttribute("variant", bConn ? "success" : "danger")
$("tipConnect").innerText = bConn ? server : "Not connected"; $("tipConnect").innerText = bConn ? server : "Not connected";
$("bConnect").querySelector('wa-icon').setAttribute("name", bConn ? "network" : "network-off"); $("bConnect").querySelector('wa-icon').setAttribute("name", bConn ? "network" : "network-off");
}; };
// change active doc // change active doc

View file

@ -1,340 +0,0 @@
<!doctype html>
<html lang="en" class="wa-cloak wa-theme-default wa-palette-default wa-brand-blue wa-light">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Codemirror6 example using BaseX LSP</title>
<link rel="stylesheet" href="../../webawesome/dist-cdn/styles/webawesome.css" />
<link rel="icon" type="image/png" href="../favicon.png" />
<link rel="stylesheet" href="wa.css" />
<script type="module" src="wa-setup.js"></script>
</head>
<body>
<div class="page-wrap">
<header class="page-header">
<wa-dropdown>
<wa-button slot="trigger" with-caret appearance="plain" variant="neutral">File</wa-button>
<wa-dropdown-item id="bnNew">
<wa-icon slot="icon" library="tabler" name="file"></wa-icon>New...
<div slot="details">empty document</div>
</wa-dropdown-item>
<wa-dropdown-item id="bnRead">
<wa-icon slot="icon" library="tabler" name="folder-open"></wa-icon>Open...
<div slot="details">a local file</div>
</wa-dropdown-item>
<input type="file" id="fileElem" multiple accept="*/*" style="display: none;" />
<wa-dropdown-item id="popover__url">
<wa-icon slot="icon" library="tabler" name="link"></wa-icon>Fetch...
<div slot="details">a url from the internet</div>
</wa-dropdown-item>
</wa-dropdown>
<div>
<span class="h4">XQuery 4.0 LSP client</span>
<wa-button id="bConnect" variant="danger">
<wa-icon library="tabler" name="network-off"></wa-icon>
</wa-button>
<wa-tooltip id="tipConnect" for="bConnect">Not connected</wa-tooltip>
</div>
<wa-button-group style="margin-right: 0.2rem;">
<wa-dropdown>
<wa-button slot="trigger" with-caret appearance="plain" variant="neutral">Dev tools</wa-button>
<wa-dropdown-item>
<wa-icon slot="icon" library="tabler" name="external-link"></wa-icon>
<a href="/app/home" target="lsp" rel="noreferrer noopener">LSP Manager</a>
</wa-dropdown-item>
<wa-dropdown-item>
<wa-icon slot="icon" library="tabler" name="external-link"></wa-icon>
<a href="/dba/logs" target="dba" rel="noreferrer noopener">Dba</a>
</wa-dropdown-item>
<wa-divider></wa-divider>
</wa-dropdown>
<wa-button popovertarget="popAbout" appearance="plain" variant="neutral">
<wa-icon library="tabler" name="help" label="Home"></wa-icon>
</wa-button>
</wa-button-group>
</header>
<main id="main" class="page-main" style="overflow: auto;">
<div class="wa-split " style="font-size: 24px;">
<wa-button-group>
<wa-button id="search" title="Search" icon-label="search">
<wa-icon name="search"></wa-icon>
</wa-button>
<wa-button id="lint" title="Display diagnostics" icon-label="diagnostics">
<wa-icon library="tabler" name="message-report"></wa-icon>
</wa-button>
<wa-button id="symbols2" title="symbols" icon-label="Symbols">
<wa-icon library="tabler" name="icons"></wa-icon>
</wa-button>
<wa-button id="format" type="button" title="Format (Shift-Alt-f)" icon-label="Format">
<wa-icon library="tabler" name="align-justified"></wa-icon>
</wa-button>
</wa-button-group>
<wa-button-group>
<wa-button id="sync" title="Sync changes to server">
<wa-icon library="codicon" name="sync"></wa-icon>
</wa-button>
<wa-button id="cmdList" title="Command and key mapping help">
<wa-icon library="codicon" name="record-keys"></wa-icon>
</wa-button>
<wa-button id="popover__settings" title="Settings">
<wa-icon library="codicon" name="settings"></wa-icon>
</wa-button>
<wa-button id="fullscreen" title="Full screen editor">
<wa-icon library="codicon" name="screen-full"></wa-icon>
</wa-button>
<wa-button id="bnSave" title="save view">
<wa-icon library="codicon" name="git-stash"></wa-icon>
</wa-button>
<wa-button id="bnLoad" title="load view">
<wa-icon library="codicon" name="git-stash-pop"></wa-icon>
</wa-button>
<wa-button id="bnWordAt" type="wa-button" title="word at">
<wa-icon library="codicon" name="whole-word"></wa-icon>
</wa-button>
<wa-button id="bnDebug" title="Debug " icon-label="debug">
<wa-icon library="codicon" name="debug"></wa-icon>
</wa-button>
</wa-button-group>
<div></div>
</div>
<!-- Editor goes in here -->
<div id="editor"></div>
</main>
<aside class="page-sidebar">
<wa-details id="workspacePanel" open="open" icon-placement="start">
<div slot="summary">
WORKSPACE
<wa-dropdown id="workspaceOptions" style="display:inline-block;float:right;">
<wa-icon id="workspaceTrigger" library="tabler" name="dots-vertical" slot="trigger"></wa-icon>
<wa-dropdown-item type="checkbox" value="canvas" checked>Follow cursor</wa-dropdown-item>
<wa-divider></wa-divider>
<wa-dropdown-item type="checkbox" value="position" checked>sort by:
Position</wa-dropdown-item>
<wa-dropdown-item type="checkbox" value="name">sort by: Name</wa-dropdown-item>
<wa-dropdown-item type="checkbox" value="category">sort by: Category</wa-dropdown-item>
</wa-dropdown>
</div>
<div style="overflow: scroll;">
<wa-tree id="workspace" selection="single">
<wa-tree-item>file:///some/file.xqm</wa-tree-item>
</wa-tree>
</div>
</wa-details>
<wa-details id="symPanel" icon-placement="start">
<div slot="summary">OUTLINE
<wa-dropdown id="symOptions" style="display:inline-block;float:right;">
<wa-icon id="symTrigger" library="tabler" name="dots-vertical" slot="trigger"></wa-icon>
<wa-dropdown-item type="checkbox" value="canvas" checked>Follow cursor</wa-dropdown-item>
<wa-divider></wa-divider>
<wa-dropdown-item type="checkbox" value="position" checked>sort by:
Position</wa-dropdown-item>
<wa-dropdown-item type="checkbox" value="name">sort by: Name</wa-dropdown-item>
<wa-dropdown-item type="checkbox" value="category">sort by: Category</wa-dropdown-item>
</wa-dropdown>
</div>
<qd-list id="symList" style="height: 10em;overflow: scroll;"></qd-list>
</wa-details>
<details id="msgPanel">
<summary>MESSAGES
<i id="msgIcon" class='codicon codicon-kebab-vertical' style="float:right"></i>
</summary>
<qd-list id="msgList" style="flex-grow:1;"></qd-list>
</details>
</aside>
<footer class="page-footer">
<div style="display:flex;">
<div>
<label for="iFile">File:</label>
<input id="iFile" type="url" value="file:///some/file.xqm"
style="width:20em;display:inline-block;" />
<label for="symbols">Symbols:</label>
<select id="symbols" disabled="disabled" style="width:10em;display:inline-block;"></select>
</div>
</div>
<wa-relative-time live id="relative-time__live" sync second="numeric" format='short'
style="width:10em;"></wa-relative-time>
<select id="language" style="width:10em;display:inline-block;">
<option selected>Language</option>
<option value="plaintext">plaintext</option>
<option value="xquery">xquery</option>
<option value="xml">xml</option>
</select>
</footer>
</div>
<!-- dialogs -->
<wa-popover id="popWeb" for="popover__url">
<div style="display:flex;background: #ffecb3;">
<div style="flex: 1 1 auto;">Load a document from the web</div>
<wa-button icon-label="Close" appearance="text" data-popover="close">
<wa-icon name="circle-xmark" library="system"></wa-icon>
</wa-button>
</div>
<form id="popUrl">
<wa-input type="url" name="url" label="URL to fetch" placeholder="http://..." with-clear required
style="width: 20em;">
<datalist>
<option
value="https://raw.githubusercontent.com/Quodatum/xqdoca/refs/heads/master/src/main/lib/model.xqm">
model.xqm (Quodatum/xqdoca)</option>
<option
value="https://git.quodatum.duckdns.org/api/v1/repos/quodatum/basex-lsp/raw/webapp/lsp/lsp-text.xqm">
lsp-text.xqm (quodatum/basex-lsp FORGEIO)</option>
<option
value="https://git.quodatum.duckdns.org/api/v1/repos/quodatum/basex-lsp/raw/webapp/lsp/set.xqm">
set.xqm (quodatum/basex-lsp FORGEIO)</option>
<option
value="https://raw.githubusercontent.com/dnovatchev/Articles/refs/heads/main/Generators/Code/generator.xq">
generator.xquery</option>
</datalist>
</wa-input>
<wa-button type="submit" variant="primary">Fetch</wa-button>
<hr />
<wa-tree id="samples" selection="leaf">
<wa-tree-item>
XQuery 3.1
<wa-tree-item
data-href="https://raw.githubusercontent.com/expkg-zone58/pdfbox/refs/heads/main/src/Pdfbox3.xqm">Pdfbox3.xqm
(expkg-zone58/pdfbox)</wa-tree-item>
<wa-tree-item
data-href="https://raw.githubusercontent.com/Quodatum/xqdoca/refs/heads/master/src/main/lib/model.xqm">
model.xqm (Quodatum/xqdoca)</option></wa-tree-item>
<wa-tree-item>Item X</wa-tree-item>
</wa-tree-item>
<wa-tree-item>
XQuery 4
<wa-tree-item>Item B</wa-tree-item>
<wa-tree-item>Item C</wa-tree-item>
</wa-tree-item>
<wa-tree-item>Item 2</wa-tree-item>
<wa-tree-item>Item 3</wa-tree-item>
</wa-tree>
</form>
</wa-popover>
<!-- Popovers -->
<dialog id="popConnect" popover>
<form>
<header>Connect to LSP
<button type="button" class="btn-close" aria-label="Close"
onclick="$('popConnect').hidePopover(); "></button>
</header>
<div class="modal-body">
<div id="state">🔴</div>
<input id="iServer" type="text" style="width:25em" />
</div>
<div class="modal-footer">
<button id="connect">connect</button>
</div>
</form>
</dialog>
<dialog id="popCmds" popover>
<form>
<header>Commands and keys
<button type="button" class="btn-close" aria-label="Close"
onclick="$('popCmds').hidePopover(); "></button>
</header>
<div id="popHelpInfo" class="modal-body" style="height: 50vh;overflow:scroll;">
</div>
<div class="modal-footer">
</div>
</form>
</dialog>
<dialog id="popAbout" popover>
<form>
<header>Help</header>
<div class="modal-body" style="height: 50vh;overflow:scroll;">
<p>TODO help info</p>
</div>
<div class="modal-footer">
</div>
</form>
</dialog>
<!-- <popup-info id="popHelp">hhhh</popup-info> -->
<wa-popover for="popover__settings">
<form id="fSettings">
<header>Editor configuration
<button type="button" class="btn-close" aria-label="Close"
onclick="$('popSettings').hidePopover(); "></button>
</header>
<div class="modal-body">
<div class="mb-3 form-check">
<input name="wrapLines" type="checkbox" class="form-check-input" id="lineWrap">
<label class="form-check-label" for="lineWrap">Wrap lines</label>
</div>
<div class="mb-3 form-check">
<input name="highlightWhitespace" type="checkbox" class="form-check-input" id="highlightWhitespace">
<label class="form-check-label" for="highlightWhitespace">highlight Whitespace</label>
</div>
<div class="mb-3 form-check">
<input name="minimap" type="checkbox" class="form-check-input" id="minimap">
<label class="form-check-label" for="minimap">Show minimap</label>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Apply</button>
</div>
</form>
</wa-popover>
<!-- CodeMirror 6 -->
<script src="./lsp.bundle.js"></script>
<script src="./script.js"></script>
<script src="./wc-qd-list.js"></script>
</body>
</html>

View file

@ -59,7 +59,6 @@ body {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background-color: white; background-color: white;
border-radius: 6px;
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08); box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
overflow: hidden; overflow: hidden;
min-width: 0; min-width: 0;
@ -88,7 +87,7 @@ body {
.details-wrapper { .details-wrapper {
flex: 1; flex: 1;
overflow-y: auto; overflow-y: auto;
padding: 15px; padding: 1px;
} }
/* Right Column styling - Controls and Information (3/4 width) */ /* Right Column styling - Controls and Information (3/4 width) */

View file

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Monaco LSP - Vanilla JS</title>
<link rel="icon" type="image/png" href="../favicon.png" />
<link rel="stylesheet" href='./style.css' />
</head>
<body>
<div id="container" style="height: 400px;"></div>
<script type="module">
import { monaco } from "https://cdn.jsdelivr.net/npm/monaco-editor-esm-cdn/monaco.js";
monaco.editor.create(document.getElementById("container"), {
value: `function x() {\n\tconsole.log("Hello world!");\n}`,
language: "xquery",
});
</script>
</body>
</html>

View file

@ -0,0 +1,10 @@
/* style.css */
body {
background-color: #242424;
}
#editor {
margin: 10vh auto;
width: 720px;
height: 20vh;
}