diff --git a/gradle/elide.versions.toml b/gradle/elide.versions.toml index 7cf6055d1..21bc807c2 100644 --- a/gradle/elide.versions.toml +++ b/gradle/elide.versions.toml @@ -264,7 +264,8 @@ slf4j = "2.0.16" snakeyaml = "2.4" snappy = "1.1.10.7" snyk = "0.6.1" -sonar = "4.4.1.3373" # next: "2022-07-20" +smartexception = "0.2.1" +sonar = "4.4.1.3373" spdx = "0.8.0" spotless = "6.25.0" sqlcommenter = "2.1.1-elide" @@ -731,6 +732,7 @@ slf4j-jul = { group = "org.slf4j", name = "jul-to-slf4j", version.ref = "slf4j" slf4j-log4j-bridge = { group = "org.slf4j", name = "log4j-over-slf4j", version.ref = "slf4j" } snakeyaml = { group = "org.yaml", name = "snakeyaml", version.ref = "snakeyaml" } snappy = { group = "org.xerial.snappy", name = "snappy-java", version.ref = "snappy" } +smartexception = { group = "com.arthenica", name = "smart-exception-java9", version.ref = "smartexception" } sqlcommenter-hibernate = { group = "com.google.cloud", name = "sqlcommenter-hibernate", version.ref = "sqlcommenter" } sqlite = { group = "org.xerial", name = "sqlite-jdbc", version.ref = "sqlite" } strikt-bom = { group = "io.strikt", name = "strikt-bom", version.ref = "strikt" } diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 6a29f2279..78ab262ea 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -4,8 +4,6 @@ true true - - @@ -27,8 +25,11 @@ + + + @@ -39,7 +40,6 @@ - @@ -129,6 +129,7 @@ + @@ -651,6 +652,26 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/package-lock.kdl b/package-lock.kdl index 3e943e613..2f4d88015 100644 --- a/package-lock.kdl +++ b/package-lock.kdl @@ -6,8 +6,8 @@ root { cssnano "7.0.6" google-protobuf "3.21.4" jszip "3.10.1" - postcss "8.5.1" - preact "10.25.4" + postcss "8.5.3" + preact "10.26.2" react "19.0.0" react-dom "19.0.0" typescript "5.7.3" @@ -15,27 +15,27 @@ root { } dev-dependencies { "@biomejs/biome" "1.9.4" - "@commitlint/cli" "19.6.1" - "@commitlint/config-conventional" "19.6.0" + "@commitlint/cli" "19.7.1" + "@commitlint/config-conventional" "19.7.1" "@mdx-js/esbuild" "3.1.0" "@mitata/counters" "0.0.8" "@prettier/plugin-xml" "3.4.1" "@types/google-protobuf" "3.15.12" - "@types/node" "22.10.10" - "@typescript-eslint/eslint-plugin" "8.21.0" - "@typescript-eslint/parser" "8.21.0" - commitlint "19.6.1" - esbuild "0.24.2" - eslint "9.19.0" + "@types/node" "22.13.5" + "@typescript-eslint/eslint-plugin" "8.24.1" + "@typescript-eslint/parser" "8.24.1" + commitlint "19.7.1" + esbuild "0.25.0" + eslint "9.21.0" husky "9.1.7" lint-staged "15.4.3" - mitata "1.0.32" + mitata "1.0.34" postcss-cli "11.0.0" - prettier "3.4.2" + prettier "3.5.2" prettier-plugin-java "2.6.7" prettier-plugin-properties "0.3.0" - prettier-plugin-sh "0.14.0" - prettier-plugin-toml "2.0.1" + prettier-plugin-sh "0.15.0" + prettier-plugin-toml "2.0.2" readable-stream "4.5.2" } } @@ -203,12 +203,12 @@ pkg "@chevrotain/utils" { integrity "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==" } pkg "@commitlint/cli" { - version "19.6.1" - resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-19.6.1.tgz" - integrity "sha512-8hcyA6ZoHwWXC76BoC8qVOSr8xHy00LZhZpauiD0iO0VYbVhMnED0da85lTfIULxl7Lj4c6vZgF0Wu/ed1+jlQ==" + version "19.7.1" + resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-19.7.1.tgz" + integrity "sha512-iObGjR1tE/PfDtDTEfd+tnRkB3/HJzpQqRTyofS2MPPkDn1mp3DBC8SoPDayokfAy+xKhF8+bwRCJO25Nea0YQ==" dependencies { "@commitlint/format" ">=19.5.0 <20.0.0-0" - "@commitlint/lint" ">=19.6.0 <20.0.0-0" + "@commitlint/lint" ">=19.7.1 <20.0.0-0" "@commitlint/load" ">=19.6.1 <20.0.0-0" "@commitlint/read" ">=19.5.0 <20.0.0-0" "@commitlint/types" ">=19.5.0 <20.0.0-0" @@ -217,9 +217,9 @@ pkg "@commitlint/cli" { } } pkg "@commitlint/config-conventional" { - version "19.6.0" - resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.6.0.tgz" - integrity "sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ==" + version "19.7.1" + resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.7.1.tgz" + integrity "sha512-fsEIF8zgiI/FIWSnykdQNj/0JE4av08MudLTyYHm4FlLWemKoQvPNUYU2M/3tktWcCEyq7aOkDDgtjrmgWFbvg==" dependencies { "@commitlint/types" ">=19.5.0 <20.0.0-0" conventional-changelog-conventionalcommits ">=7.0.2 <8.0.0-0" @@ -278,20 +278,20 @@ pkg "@commitlint/format" { } } pkg "@commitlint/is-ignored" { - version "19.6.0" - resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.6.0.tgz" - integrity "sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw==" + version "19.7.1" + resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.7.1.tgz" + integrity "sha512-3IaOc6HVg2hAoGleRK3r9vL9zZ3XY0rf1RsUf6jdQLuaD46ZHnXBiOPTyQ004C4IvYjSWqJwlh0/u2P73aIE3g==" dependencies { "@commitlint/types" ">=19.5.0 <20.0.0-0" semver ">=7.6.0 <8.0.0-0" } } pkg "@commitlint/lint" { - version "19.6.0" - resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-19.6.0.tgz" - integrity "sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg==" + version "19.7.1" + resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-19.7.1.tgz" + integrity "sha512-LhcPfVjcOcOZA7LEuBBeO00o3MeZa+tWrX9Xyl1r9PMd5FWsEoZI9IgnGqTKZ0lZt5pO3ZlstgnRyY1CJJc9Xg==" dependencies { - "@commitlint/is-ignored" ">=19.6.0 <20.0.0-0" + "@commitlint/is-ignored" ">=19.7.1 <20.0.0-0" "@commitlint/parse" ">=19.5.0 <20.0.0-0" "@commitlint/rules" ">=19.6.0 <20.0.0-0" "@commitlint/types" ">=19.5.0 <20.0.0-0" @@ -437,129 +437,129 @@ pkg "@commitlint/types" { } } pkg "@esbuild/aix-ppc64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz" - integrity "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz" + integrity "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==" } pkg "@esbuild/android-arm" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz" - integrity "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz" + integrity "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==" } pkg "@esbuild/android-arm64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz" - integrity "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz" + integrity "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==" } pkg "@esbuild/android-x64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz" - integrity "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz" + integrity "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==" } pkg "@esbuild/darwin-arm64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz" - integrity "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz" + integrity "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==" } pkg "@esbuild/darwin-x64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz" - integrity "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz" + integrity "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==" } pkg "@esbuild/freebsd-arm64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz" - integrity "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz" + integrity "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==" } pkg "@esbuild/freebsd-x64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz" - integrity "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz" + integrity "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==" } pkg "@esbuild/linux-arm" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz" - integrity "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz" + integrity "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==" } pkg "@esbuild/linux-arm64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz" - integrity "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz" + integrity "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==" } pkg "@esbuild/linux-ia32" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz" - integrity "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz" + integrity "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==" } pkg "@esbuild/linux-loong64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz" - integrity "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz" + integrity "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==" } pkg "@esbuild/linux-mips64el" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz" - integrity "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz" + integrity "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==" } pkg "@esbuild/linux-ppc64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz" - integrity "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz" + integrity "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==" } pkg "@esbuild/linux-riscv64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz" - integrity "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz" + integrity "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==" } pkg "@esbuild/linux-s390x" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz" - integrity "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz" + integrity "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==" } pkg "@esbuild/linux-x64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz" - integrity "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz" + integrity "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==" } pkg "@esbuild/netbsd-arm64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz" - integrity "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz" + integrity "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==" } pkg "@esbuild/netbsd-x64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz" - integrity "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz" + integrity "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==" } pkg "@esbuild/openbsd-arm64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz" - integrity "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz" + integrity "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==" } pkg "@esbuild/openbsd-x64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz" - integrity "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz" + integrity "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==" } pkg "@esbuild/sunos-x64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz" - integrity "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz" + integrity "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==" } pkg "@esbuild/win32-arm64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz" - integrity "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz" + integrity "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==" } pkg "@esbuild/win32-ia32" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz" - integrity "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz" + integrity "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==" } pkg "@esbuild/win32-x64" { - version "0.24.2" - resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz" - integrity "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==" + version "0.25.0" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz" + integrity "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==" } pkg "@eslint-community/eslint-utils" { version "4.4.0" @@ -575,27 +575,27 @@ pkg "@eslint-community/regexpp" { integrity "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==" } pkg "@eslint/config-array" { - version "0.19.1" - resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz" - integrity "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==" + version "0.19.2" + resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz" + integrity "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==" dependencies { - "@eslint/object-schema" ">=2.1.5 <3.0.0-0" + "@eslint/object-schema" ">=2.1.6 <3.0.0-0" debug ">=4.3.1 <5.0.0-0" minimatch ">=3.1.2 <4.0.0-0" } } pkg "@eslint/core" { - version "0.10.0" - resolved "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz" - integrity "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==" + version "0.12.0" + resolved "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz" + integrity "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==" dependencies { "@types/json-schema" ">=7.0.15 <8.0.0-0" } } pkg "@eslint/eslintrc" { - version "3.2.0" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz" - integrity "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==" + version "3.3.0" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz" + integrity "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==" dependencies { ajv ">=6.12.4 <7.0.0-0" debug ">=4.3.2 <5.0.0-0" @@ -609,21 +609,21 @@ pkg "@eslint/eslintrc" { } } pkg "@eslint/js" { - version "9.19.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz" - integrity "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==" + version "9.21.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz" + integrity "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==" } pkg "@eslint/object-schema" { - version "2.1.5" - resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz" - integrity "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==" + version "2.1.6" + resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz" + integrity "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==" } pkg "@eslint/plugin-kit" { - version "0.2.5" - resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz" - integrity "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==" + version "0.2.7" + resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz" + integrity "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==" dependencies { - "@eslint/core" ">=0.10.0 <0.11.0-0" + "@eslint/core" ">=0.12.0 <0.13.0-0" levn ">=0.4.1 <0.5.0-0" } } @@ -652,9 +652,9 @@ pkg "@humanwhocodes/module-importer" { integrity "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" } pkg "@humanwhocodes/retry" { - version "0.4.1" - resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz" - integrity "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==" + version "0.4.2" + resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz" + integrity "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==" } pkg "@mdx-js/esbuild" { version "3.1.0" @@ -773,14 +773,6 @@ pkg "@types/conventional-commits-parser" { "@types/node" ">=0.0.0" } } -pkg "@types/conventional-commits-parser" "@types/node" { - version "22.10.7" - resolved "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz" - integrity "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==" - dependencies { - undici-types ">=6.20.0 <6.21.0-0" - } -} pkg "@types/debug" { version "4.1.12" resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" @@ -839,9 +831,9 @@ pkg "@types/ms" { integrity "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" } pkg "@types/node" { - version "22.10.10" - resolved "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz" - integrity "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==" + version "22.13.5" + resolved "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz" + integrity "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==" dependencies { undici-types ">=6.20.0 <6.21.0-0" } @@ -852,71 +844,71 @@ pkg "@types/unist" { integrity "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" } pkg "@typescript-eslint/eslint-plugin" { - version "8.21.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz" - integrity "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==" + version "8.24.1" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.1.tgz" + integrity "sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==" dependencies { "@eslint-community/regexpp" ">=4.10.0 <5.0.0-0" - "@typescript-eslint/scope-manager" "8.21.0" - "@typescript-eslint/type-utils" "8.21.0" - "@typescript-eslint/utils" "8.21.0" - "@typescript-eslint/visitor-keys" "8.21.0" + "@typescript-eslint/scope-manager" "8.24.1" + "@typescript-eslint/type-utils" "8.24.1" + "@typescript-eslint/utils" "8.24.1" + "@typescript-eslint/visitor-keys" "8.24.1" graphemer ">=1.4.0 <2.0.0-0" ignore ">=5.3.1 <6.0.0-0" natural-compare ">=1.4.0 <2.0.0-0" - ts-api-utils ">=2.0.0 <3.0.0-0" + ts-api-utils ">=2.0.1 <3.0.0-0" } } pkg "@typescript-eslint/parser" { - version "8.21.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz" - integrity "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==" - dependencies { - "@typescript-eslint/scope-manager" "8.21.0" - "@typescript-eslint/types" "8.21.0" - "@typescript-eslint/typescript-estree" "8.21.0" - "@typescript-eslint/visitor-keys" "8.21.0" + version "8.24.1" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.1.tgz" + integrity "sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==" + dependencies { + "@typescript-eslint/scope-manager" "8.24.1" + "@typescript-eslint/types" "8.24.1" + "@typescript-eslint/typescript-estree" "8.24.1" + "@typescript-eslint/visitor-keys" "8.24.1" debug ">=4.3.4 <5.0.0-0" } } pkg "@typescript-eslint/scope-manager" { - version "8.21.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz" - integrity "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==" + version "8.24.1" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.1.tgz" + integrity "sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==" dependencies { - "@typescript-eslint/types" "8.21.0" - "@typescript-eslint/visitor-keys" "8.21.0" + "@typescript-eslint/types" "8.24.1" + "@typescript-eslint/visitor-keys" "8.24.1" } } pkg "@typescript-eslint/type-utils" { - version "8.21.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz" - integrity "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==" + version "8.24.1" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.1.tgz" + integrity "sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==" dependencies { - "@typescript-eslint/typescript-estree" "8.21.0" - "@typescript-eslint/utils" "8.21.0" + "@typescript-eslint/typescript-estree" "8.24.1" + "@typescript-eslint/utils" "8.24.1" debug ">=4.3.4 <5.0.0-0" - ts-api-utils ">=2.0.0 <3.0.0-0" + ts-api-utils ">=2.0.1 <3.0.0-0" } } pkg "@typescript-eslint/types" { - version "8.21.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz" - integrity "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==" + version "8.24.1" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.1.tgz" + integrity "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==" } pkg "@typescript-eslint/typescript-estree" { - version "8.21.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz" - integrity "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==" + version "8.24.1" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.1.tgz" + integrity "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==" dependencies { - "@typescript-eslint/types" "8.21.0" - "@typescript-eslint/visitor-keys" "8.21.0" + "@typescript-eslint/types" "8.24.1" + "@typescript-eslint/visitor-keys" "8.24.1" debug ">=4.3.4 <5.0.0-0" fast-glob ">=3.3.2 <4.0.0-0" is-glob ">=4.0.3 <5.0.0-0" minimatch ">=9.0.4 <10.0.0-0" semver ">=7.6.0 <8.0.0-0" - ts-api-utils ">=2.0.0 <3.0.0-0" + ts-api-utils ">=2.0.1 <3.0.0-0" } } pkg "@typescript-eslint/typescript-estree" "brace-expansion" { @@ -936,22 +928,22 @@ pkg "@typescript-eslint/typescript-estree" "minimatch" { } } pkg "@typescript-eslint/utils" { - version "8.21.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz" - integrity "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==" + version "8.24.1" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.1.tgz" + integrity "sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==" dependencies { "@eslint-community/eslint-utils" ">=4.4.0 <5.0.0-0" - "@typescript-eslint/scope-manager" "8.21.0" - "@typescript-eslint/types" "8.21.0" - "@typescript-eslint/typescript-estree" "8.21.0" + "@typescript-eslint/scope-manager" "8.24.1" + "@typescript-eslint/types" "8.24.1" + "@typescript-eslint/typescript-estree" "8.24.1" } } pkg "@typescript-eslint/visitor-keys" { - version "8.21.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz" - integrity "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==" + version "8.24.1" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.1.tgz" + integrity "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==" dependencies { - "@typescript-eslint/types" "8.21.0" + "@typescript-eslint/types" "8.24.1" eslint-visitor-keys ">=4.2.0 <5.0.0-0" } } @@ -1337,11 +1329,11 @@ pkg "commander" { integrity "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==" } pkg "commitlint" { - version "19.6.1" - resolved "https://registry.npmjs.org/commitlint/-/commitlint-19.6.1.tgz" - integrity "sha512-tU4or+Y2fDXepCZ44o8guEB9uwrRp4if4VupGH1CR+bsVS2zX6Gia4dndA7UPx8cWWw1tvRRJu5keA7RqfXf3w==" + version "19.7.1" + resolved "https://registry.npmjs.org/commitlint/-/commitlint-19.7.1.tgz" + integrity "sha512-iNWqXl/A1WN8qd9JehqUpzbOxczNBE1nzBiYE33TkHeTptq7Cvg5U4j8PpvO92Nxganv6o/20IO3omP5N5M7/A==" dependencies { - "@commitlint/cli" ">=19.6.1 <20.0.0-0" + "@commitlint/cli" ">=19.7.1 <20.0.0-0" "@commitlint/types" ">=19.5.0 <20.0.0-0" } } @@ -1653,35 +1645,35 @@ pkg "error-ex" { } } pkg "esbuild" { - version "0.24.2" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz" - integrity "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==" + version "0.25.0" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz" + integrity "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==" optional-dependencies { - "@esbuild/aix-ppc64" "0.24.2" - "@esbuild/android-arm" "0.24.2" - "@esbuild/android-arm64" "0.24.2" - "@esbuild/android-x64" "0.24.2" - "@esbuild/darwin-arm64" "0.24.2" - "@esbuild/darwin-x64" "0.24.2" - "@esbuild/freebsd-arm64" "0.24.2" - "@esbuild/freebsd-x64" "0.24.2" - "@esbuild/linux-arm" "0.24.2" - "@esbuild/linux-arm64" "0.24.2" - "@esbuild/linux-ia32" "0.24.2" - "@esbuild/linux-loong64" "0.24.2" - "@esbuild/linux-mips64el" "0.24.2" - "@esbuild/linux-ppc64" "0.24.2" - "@esbuild/linux-riscv64" "0.24.2" - "@esbuild/linux-s390x" "0.24.2" - "@esbuild/linux-x64" "0.24.2" - "@esbuild/netbsd-arm64" "0.24.2" - "@esbuild/netbsd-x64" "0.24.2" - "@esbuild/openbsd-arm64" "0.24.2" - "@esbuild/openbsd-x64" "0.24.2" - "@esbuild/sunos-x64" "0.24.2" - "@esbuild/win32-arm64" "0.24.2" - "@esbuild/win32-ia32" "0.24.2" - "@esbuild/win32-x64" "0.24.2" + "@esbuild/aix-ppc64" "0.25.0" + "@esbuild/android-arm" "0.25.0" + "@esbuild/android-arm64" "0.25.0" + "@esbuild/android-x64" "0.25.0" + "@esbuild/darwin-arm64" "0.25.0" + "@esbuild/darwin-x64" "0.25.0" + "@esbuild/freebsd-arm64" "0.25.0" + "@esbuild/freebsd-x64" "0.25.0" + "@esbuild/linux-arm" "0.25.0" + "@esbuild/linux-arm64" "0.25.0" + "@esbuild/linux-ia32" "0.25.0" + "@esbuild/linux-loong64" "0.25.0" + "@esbuild/linux-mips64el" "0.25.0" + "@esbuild/linux-ppc64" "0.25.0" + "@esbuild/linux-riscv64" "0.25.0" + "@esbuild/linux-s390x" "0.25.0" + "@esbuild/linux-x64" "0.25.0" + "@esbuild/netbsd-arm64" "0.25.0" + "@esbuild/netbsd-x64" "0.25.0" + "@esbuild/openbsd-arm64" "0.25.0" + "@esbuild/openbsd-x64" "0.25.0" + "@esbuild/sunos-x64" "0.25.0" + "@esbuild/win32-arm64" "0.25.0" + "@esbuild/win32-ia32" "0.25.0" + "@esbuild/win32-x64" "0.25.0" } } pkg "escalade" { @@ -1695,20 +1687,20 @@ pkg "escape-string-regexp" { integrity "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" } pkg "eslint" { - version "9.19.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz" - integrity "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==" + version "9.21.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz" + integrity "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==" dependencies { "@eslint-community/eslint-utils" ">=4.2.0 <5.0.0-0" "@eslint-community/regexpp" ">=4.12.1 <5.0.0-0" - "@eslint/config-array" ">=0.19.0 <0.20.0-0" - "@eslint/core" ">=0.10.0 <0.11.0-0" - "@eslint/eslintrc" ">=3.2.0 <4.0.0-0" - "@eslint/js" "9.19.0" - "@eslint/plugin-kit" ">=0.2.5 <0.3.0-0" + "@eslint/config-array" ">=0.19.2 <0.20.0-0" + "@eslint/core" ">=0.12.0 <0.13.0-0" + "@eslint/eslintrc" ">=3.3.0 <4.0.0-0" + "@eslint/js" "9.21.0" + "@eslint/plugin-kit" ">=0.2.7 <0.3.0-0" "@humanfs/node" ">=0.16.6 <0.17.0-0" "@humanwhocodes/module-importer" ">=1.0.1 <2.0.0-0" - "@humanwhocodes/retry" ">=0.4.1 <0.5.0-0" + "@humanwhocodes/retry" ">=0.4.2 <0.5.0-0" "@types/estree" ">=1.0.6 <2.0.0-0" "@types/json-schema" ">=7.0.15 <8.0.0-0" ajv ">=6.12.4 <7.0.0-0" @@ -3114,9 +3106,9 @@ pkg "minimist" { integrity "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" } pkg "mitata" { - version "1.0.32" - resolved "https://registry.npmjs.org/mitata/-/mitata-1.0.32.tgz" - integrity "sha512-UioSpAqd+QRTzIjtudWKVar3LbNt0jKS6i7S12uvRxr+eiv77TK7oMi8gNRbdNPH1rKWxrA5M48/QqVKigSQ9Q==" + version "1.0.34" + resolved "https://registry.npmjs.org/mitata/-/mitata-1.0.34.tgz" + integrity "sha512-Mc3zrtNBKIMeHSCQ0XqRLo1vbdIx1wvFV9c8NJAiyho6AjNfMY8bVhbS12bwciUdd1t4rj8099CH3N3NFahaUA==" } pkg "ms" { version "2.1.2" @@ -3296,9 +3288,9 @@ pkg "pify" { integrity "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" } pkg "postcss" { - version "8.5.1" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz" - integrity "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==" + version "8.5.3" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz" + integrity "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==" dependencies { nanoid ">=3.3.8 <4.0.0-0" picocolors ">=1.1.1 <2.0.0-0" @@ -3620,9 +3612,9 @@ pkg "postcss" "picocolors" { integrity "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" } pkg "preact" { - version "10.25.4" - resolved "https://registry.npmjs.org/preact/-/preact-10.25.4.tgz" - integrity "sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==" + version "10.26.2" + resolved "https://registry.npmjs.org/preact/-/preact-10.26.2.tgz" + integrity "sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg==" } pkg "prelude-ls" { version "1.2.1" @@ -3630,9 +3622,9 @@ pkg "prelude-ls" { integrity "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" } pkg "prettier" { - version "3.4.2" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz" - integrity "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==" + version "3.5.2" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz" + integrity "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==" } pkg "prettier-plugin-java" { version "2.6.7" @@ -3652,18 +3644,18 @@ pkg "prettier-plugin-properties" { } } pkg "prettier-plugin-sh" { - version "0.14.0" - resolved "https://registry.npmjs.org/prettier-plugin-sh/-/prettier-plugin-sh-0.14.0.tgz" - integrity "sha512-hfXulj5+zEl/ulrO5kMuuTPKmXvOg0bnLHY1hKFNN/N+/903iZbNp8NyZBTsgI8dtkSgFfAEIQq0IQTyP1ZVFQ==" + version "0.15.0" + resolved "https://registry.npmjs.org/prettier-plugin-sh/-/prettier-plugin-sh-0.15.0.tgz" + integrity "sha512-U0PikJr/yr2bzzARl43qI0mApBj0C1xdAfA04AZa6LnvIKawXHhuy2fFo6LNA7weRzGlAiNbaEFfKMFo0nZr/A==" dependencies { mvdan-sh ">=0.10.1 <0.11.0-0" - sh-syntax ">=0.4.1 <0.5.0-0" + sh-syntax ">=0.4.2 <0.5.0-0" } } pkg "prettier-plugin-toml" { - version "2.0.1" - resolved "https://registry.npmjs.org/prettier-plugin-toml/-/prettier-plugin-toml-2.0.1.tgz" - integrity "sha512-99z1YOkViECHtXQjGIigd3talI/ybUI1zB3yniAwUrlWBXupNXThB1hM6bwSMUEj2/+tomTlMtT98F5t4s8IWA==" + version "2.0.2" + resolved "https://registry.npmjs.org/prettier-plugin-toml/-/prettier-plugin-toml-2.0.2.tgz" + integrity "sha512-tUIIhyfdVX5DMsLGKX/2qaEwi3W48OkUSR7XC91PRI5jFzhexmaYWkrSP1Xh/eWUcEc0TVMQenM3lB09xLQstQ==" dependencies { "@taplo/lib" ">=0.4.0-alpha.2 <0.5.0-0" } @@ -4066,9 +4058,9 @@ pkg "trough" { integrity "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==" } pkg "ts-api-utils" { - version "2.0.0" - resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz" - integrity "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==" + version "2.0.1" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz" + integrity "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==" } pkg "tslib" { version "2.6.3" diff --git a/packages/cli/build.gradle.kts b/packages/cli/build.gradle.kts index 885e0245e..b0cb7ac8e 100644 --- a/packages/cli/build.gradle.kts +++ b/packages/cli/build.gradle.kts @@ -196,9 +196,9 @@ val jvmCompileArgs = listOfNotNull( "--add-opens=java.base/jdk.internal.loader=ALL-UNNAMED", "--add-opens=java.base/java.lang=ALL-UNNAMED", "--add-exports=java.base/jdk.internal.module=ALL-UNNAMED", - "--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk=ALL-UNNAMED", - "--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.hosted=ALL-UNNAMED", - "--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.hosted.c=ALL-UNNAMED", + // "--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk=ALL-UNNAMED", + // "--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.hosted=ALL-UNNAMED", + // "--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.hosted.c=ALL-UNNAMED", ).plus(if (enableJpms) listOf( "--add-reads=elide.cli=ALL-UNNAMED", "--add-reads=elide.graalvm=ALL-UNNAMED", @@ -431,7 +431,7 @@ dependencies { implementation(projects.packages.graalvmWasm) api(libs.graalvm.polyglot) api(libs.graalvm.js.language) - implementation(libs.graalvm.svm) + compileOnly(libs.graalvm.svm) if (oracleGvm && oracleGvmLibs) { implementation(libs.graalvm.js.isolate) @@ -467,7 +467,8 @@ dependencies { api(libs.slf4j) api(libs.slf4j.jul) - // Console UI + // General + implementation(libs.smartexception) implementation(libs.magicProgress) runtimeOnly(mn.micronaut.graal) @@ -731,6 +732,7 @@ val commonNativeArgs = listOfNotNull( "--enable-url-protocols=http,https,jar", "--color=always", "-H:+UnlockExperimentalVMOptions", + "-H:+PlatformInterfaceCompatibilityMode", "--link-at-build-time=elide", "--link-at-build-time=dev.elide", "-H:-ReduceImplicitExceptionStackTraceInformation", @@ -972,6 +974,7 @@ val initializeAtRuntime: List = listOfNotNull( onlyIf(enableNativeTransportV2, "io.netty.channel.kqueue.Native"), onlyIf(enableNativeTransportV2, "io.netty.channel.kqueue.KQueueEventLoop"), "org.fusesource.jansi.internal.CLibrary", + "com.github.ajalt.mordant.rendering.TextStyles", // @TODO: seal this into formal config "elide.tool.err.ErrorHandler${'$'}ErrorContext", diff --git a/packages/cli/gradle.lockfile b/packages/cli/gradle.lockfile index c2f4be17c..cd53f9b16 100644 --- a/packages/cli/gradle.lockfile +++ b/packages/cli/gradle.lockfile @@ -15,6 +15,8 @@ com.aayushatharva.brotli4j:native-osx-x86_64:1.18.0=compileClasspath,runtimeClas com.aayushatharva.brotli4j:native-windows-x86_64:1.18.0=compileClasspath,runtimeClasspath com.aayushatharva.brotli4j:service:1.18.0=compileClasspath,runtimeClasspath com.amazonaws:aws-java-sdk-bom:1.12.777=compileClasspath,runtimeClasspath +com.arthenica:smart-exception-common:0.2.1=compileClasspath,runtimeClasspath +com.arthenica:smart-exception-java9:0.2.1=compileClasspath,runtimeClasspath com.azure:azure-sdk-bom:1.2.29=compileClasspath,runtimeClasspath com.fasterxml.jackson.core:jackson-annotations:2.18.2=runtimeClasspath com.fasterxml.jackson.core:jackson-core:2.18.2=runtimeClasspath @@ -27,6 +29,8 @@ com.fasterxml.jackson:jackson-bom:2.18.2=runtimeClasspath com.github.ajalt.clikt:clikt-core-jvm:5.0.3=compileClasspath,runtimeClasspath com.github.ajalt.clikt:clikt-core:5.0.3=compileClasspath,runtimeClasspath com.github.ajalt.clikt:clikt-jvm:5.0.3=compileClasspath,runtimeClasspath +com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=runtimeClasspath +com.github.ajalt.clikt:clikt-markdown:5.0.3=runtimeClasspath com.github.ajalt.clikt:clikt:5.0.3=compileClasspath,runtimeClasspath com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,runtimeClasspath com.github.ajalt.colormath:colormath:3.6.0=compileClasspath,runtimeClasspath @@ -39,6 +43,8 @@ com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=runtimeClasspath com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=runtimeClasspath com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=runtimeClasspath com.github.ajalt.mordant:mordant-jvm:3.0.1=compileClasspath,runtimeClasspath +com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=runtimeClasspath +com.github.ajalt.mordant:mordant-markdown:3.0.1=runtimeClasspath com.github.ajalt.mordant:mordant:3.0.1=compileClasspath,runtimeClasspath com.github.javaparser:javaparser-core:3.26.3=runtimeClasspath com.github.javaparser:javaparser-symbol-solver-core:3.26.3=runtimeClasspath @@ -62,7 +68,6 @@ com.jakewharton.finalization:finalization-hook:0.1.0=runtimeClasspath com.jakewharton.mosaic:mosaic-runtime-jvm:0.16.0=compileClasspath,runtimeClasspath com.jakewharton.mosaic:mosaic-runtime:0.16.0=compileClasspath,runtimeClasspath com.oracle.coherence.ce:coherence-bom:23.03=compileClasspath,runtimeClasspath -com.tunnelvisionlabs:antlr4-runtime:4.9.0=runtimeClasspath commons-codec:commons-codec:1.18.0=compileClasspath,runtimeClasspath commons-io:commons-io:2.16.1=compileClasspath commons-io:commons-io:2.18.0=runtimeClasspath @@ -211,7 +216,7 @@ org.bouncycastle:bcutil-jdk18on:1.78.1=compileClasspath,runtimeClasspath org.checkerframework:checker-qual:3.43.0=compileClasspath,runtimeClasspath org.eclipse.jetty:jetty-bom:11.0.24=compileClasspath,runtimeClasspath org.fusesource.jansi:jansi:2.4.1=runtimeClasspath -org.graalvm.compiler:compiler:24.1.2=compileClasspath,runtimeClasspath +org.graalvm.compiler:compiler:24.1.2=compileClasspath org.graalvm.espresso:espresso-language:24.1.2=compileClasspath,runtimeClasspath org.graalvm.espresso:espresso-libs-resources:24.1.2=runtimeClasspath org.graalvm.espresso:espresso-runtime-resources-jdk21:24.1.2=runtimeClasspath @@ -230,10 +235,10 @@ org.graalvm.llvm:llvm-language-native:24.1.2=compileClasspath,runtimeClasspath org.graalvm.llvm:llvm-language-nfi:24.1.2=compileClasspath,runtimeClasspath org.graalvm.llvm:llvm-language:24.1.2=compileClasspath,runtimeClasspath org.graalvm.llvm:llvm-native-community:24.1.2=runtimeClasspath -org.graalvm.nativeimage:native-image-base:24.1.2=compileClasspath,runtimeClasspath -org.graalvm.nativeimage:objectfile:24.1.2=compileClasspath,runtimeClasspath -org.graalvm.nativeimage:pointsto:24.1.2=compileClasspath,runtimeClasspath -org.graalvm.nativeimage:svm:24.1.2=compileClasspath,runtimeClasspath +org.graalvm.nativeimage:native-image-base:24.1.2=compileClasspath +org.graalvm.nativeimage:objectfile:24.1.2=compileClasspath +org.graalvm.nativeimage:pointsto:24.1.2=compileClasspath +org.graalvm.nativeimage:svm:24.1.2=compileClasspath org.graalvm.polyglot:java-community:24.1.2=compileClasspath,runtimeClasspath org.graalvm.polyglot:js-community:24.1.2=compileClasspath,runtimeClasspath org.graalvm.polyglot:js-isolate-darwin-aarch64:24.1.2=runtimeClasspath @@ -329,6 +334,8 @@ org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0=compileClasspath,runtimeC org.jetbrains.kotlinx:kotlinx-serialization-protobuf-jvm:1.8.0=runtimeClasspath org.jetbrains.kotlinx:kotlinx-serialization-protobuf:1.8.0=runtimeClasspath org.jetbrains:annotations:26.0.2=compileClasspath,runtimeClasspath +org.jetbrains:markdown-jvm:0.7.3=runtimeClasspath +org.jetbrains:markdown:0.7.3=runtimeClasspath org.jline:jline-builtins:3.28.0=compileClasspath,runtimeClasspath org.jline:jline-console:3.28.0=compileClasspath,runtimeClasspath org.jline:jline-reader:3.28.0=compileClasspath,runtimeClasspath diff --git a/packages/cli/src/main/kotlin/elide/tool/cli/cmd/repl/ToolShellCommand.kt b/packages/cli/src/main/kotlin/elide/tool/cli/cmd/repl/ToolShellCommand.kt index eaf65f132..b0c3d6e66 100644 --- a/packages/cli/src/main/kotlin/elide/tool/cli/cmd/repl/ToolShellCommand.kt +++ b/packages/cli/src/main/kotlin/elide/tool/cli/cmd/repl/ToolShellCommand.kt @@ -89,6 +89,7 @@ import elide.tool.cli.err.ShellError import elide.tool.cli.options.AccessControlOptions import elide.tool.cli.options.EngineJavaScriptOptions import elide.tool.cli.output.JLineLogbackAppender +import elide.tool.err.ErrPrinter import elide.tool.extensions.installIntrinsics import elide.tool.io.WorkdirManager import elide.tool.project.ProjectInfo @@ -1121,6 +1122,12 @@ private typealias ContextAccessor = () -> PolyglotContext } } + // Determine error printer settings for this run. + private fun errPrinterSettings(): ErrPrinter.ErrPrinterSettings = ErrPrinter.ErrPrinterSettings( + enableColor = pretty, + maxLength = terminal.get()?.width ?: ErrPrinter.DEFAULT_MAX_WIDTH, + ) + // Given an error, render a table explaining the error, along with any source context if we have it. private fun displayFormattedError( exc: Throwable, @@ -1130,7 +1137,14 @@ private typealias ContextAccessor = () -> PolyglotContext stacktrace: Boolean = internal, withCause: Boolean = true, ) { - if (exc !is PolyglotException) return + if (exc !is PolyglotException) { + exc.printStackTrace() + return + } + if (debug || verbose) { + // print full stack traces raw in debug or verbose mode mode + exc.printStackTrace() + } val term = terminal.get() val reader = lineReader.get() @@ -1164,26 +1178,29 @@ private typealias ContextAccessor = () -> PolyglotContext } // if requested, build a stacktrace for this error - val stacktraceContent = if (stacktrace) { - val stackString = StringWriter() - val stackPrinter = PrintWriter(stackString) - exc.printStackTrace(stackPrinter) - when (val cause = exc.cause ?: if (exc.isHostException) exc.asHostException() else null) { + val doPrintStack = stacktrace || errRange.count() < 2 + val stacktraceContent = if (doPrintStack) { + val stackString = ErrPrinter.fmt( + exc, + settings = errPrinterSettings(), + ) + when (val cause = exc.cause ?: if (exc.isHostException) exc.asHostException() else exc) { null -> {} - else -> if (withCause) { - stackString.append("\nCause stacktrace: ") - cause.printStackTrace(stackPrinter) - } else if (exc.isHostException) { - stackString.append("\nCause: ${cause.message}") - stackString.append(" Failed to gather stacktrace for host exception of type ${cause::class.simpleName}.") + else -> if (cause !== exc) { + if (withCause) { + stackString.append("\nCause stacktrace: \n\n") + stackString.append(ErrPrinter.fmt(cause)) + } else if (exc.isHostException) { + stackString.append("\nCause: ${cause.message}") + stackString.append(" Failed to gather stacktrace for host exception of type ${cause::class.simpleName}.") + } } } - stackPrinter.flush() stackString.toString() } else { "" } - val stacktraceLines = if (stacktrace) { + val stacktraceLines = if (doPrintStack) { stacktraceContent.lines() } else { emptyList() @@ -1193,11 +1210,11 @@ private typealias ContextAccessor = () -> PolyglotContext val maxErrLineSize = if (lineContextRendered.isNotEmpty()) lineContextRendered.maxOf { it.length } + pad else 0 // calculate the maximum width needed to display the error box, but don't exceed the width of the terminal. - val width = minOf( - term?.width ?: 120, + val width = maxOf(80, minOf( + term?.width ?: ErrPrinter.DEFAULT_MAX_WIDTH, maxOf( // message plus padding - message.length + pad, + message.length + pad + 1, // error context lines maxErrLineSize, @@ -1205,11 +1222,11 @@ private typealias ContextAccessor = () -> PolyglotContext // advice (advice?.length ?: 0) + pad, - // stacktrace - if (stacktrace) stacktraceLines.maxOf { it.length + pad + 2 } else 0, - )) + // stacktrace max line size + stacktraceLines.maxOfOrNull { it.length } ?: 0, + ))) - val textWidth = width - (pad / 2) + if (stacktrace) { + val textWidth = width - (pad / 2) + if (doPrintStack) { " ".length } else 0 @@ -1233,10 +1250,11 @@ private typealias ContextAccessor = () -> PolyglotContext if (message.isNotBlank()) { // ║ SomeError: A message ║ - append(middlePrefix).append(message.padEnd(textWidth - 1, ' ')).append("║\n") + val fmtMsg = ErrPrinter.fmtMessage(message, settings = errPrinterSettings()) + append(middlePrefix).append(fmtMsg.padEnd(textWidth - 2, ' ')).append(" ║\n") } - if (stacktrace || advice?.isNotBlank() == true) { + if (doPrintStack || advice?.isNotBlank() == true) { // ╟──────────────────────╢ if (lineContextRendered.isNotEmpty() && message.isNotBlank()) appendLine(divider) else if (message.isNotBlank()) appendLine(divider) @@ -1248,19 +1266,19 @@ private typealias ContextAccessor = () -> PolyglotContext // ║ Example advice. ║ append(middlePrefix).append(advice.padEnd(textWidth - 1, ' ') + "║\n") // ╟──────────────────────╢ - if (stacktrace) appendLine(divider) + if (doPrintStack) appendLine(divider) } // append stacktrace next - if (stacktrace) { + if (doPrintStack) { // ║ Stacktrace: ║ append(middlePrefix).append("Stacktrace:".padEnd(textWidth - 1, ' ') + "║\n") appendLine(blankLine) // ║ ... ║ stacktraceLines.forEach { - if (it.startsWith(" ") || it.startsWith('\t')) { - // if it's a spaced line, don't add additional end-spacing + if (it.startsWith('\t')) { + // if it's a spaced line, don't add additional end-spacing (for tab-prefixes) append(middlePrefix).append(it.padEnd(textWidth - pad - middlePrefix.length, ' ') + "║\n") } else { append(middlePrefix).append(it.padEnd(textWidth - 1, ' ') + "║\n") diff --git a/packages/cli/src/main/kotlin/elide/tool/err/ErrPrinter.kt b/packages/cli/src/main/kotlin/elide/tool/err/ErrPrinter.kt new file mode 100644 index 000000000..a5e2b5876 --- /dev/null +++ b/packages/cli/src/main/kotlin/elide/tool/err/ErrPrinter.kt @@ -0,0 +1,192 @@ +package elide.tool.err + +import com.github.ajalt.mordant.rendering.TextColors.* +import com.github.ajalt.mordant.rendering.TextStyles.* +import com.arthenica.smartexception.java9.Exceptions +import com.github.ajalt.mordant.rendering.TextAlign.NONE +import com.github.ajalt.mordant.rendering.TextStyle +import com.github.ajalt.mordant.rendering.TextStyles +import com.github.ajalt.mordant.rendering.Whitespace.NORMAL +import com.github.ajalt.mordant.terminal.Terminal +import org.graalvm.polyglot.PolyglotException +import java.util.function.Supplier + +/** + * Internal utility for formatting exceptions nicely. + */ +object ErrPrinter { + private const val ENABLE_COLOR_SUPPORT = true + internal const val DEFAULT_MAX_WIDTH = 120 + private val classpathCiteRef = Regex("at ([a-zA-Z.:()0-9]*.)$") + private val classFnSpec = Regex( + "([a-zA-Z].*)\\.([a-zA-Z]{1,90})\\(([a-zA-Z0-9]{1,50}\\.[a-zA-Z0-9]{1,20}):([0-9]{1,7})\\)" + ) + + // Reset format state. + private val resetFmt = reset + + // Muted style for reference text. + private val muted get() = (dim) + + // Underline for filename references. + private val filename get() = (underline) + + // Dim cyan for line numbers. + private val lineRef get() = (dim + cyan) + + // Wrap a string in a style, if enabled. + private fun ErrPrinterSettings.style(style: TextStyles, text: String): String = + if (!useColor) text else term.render(style(text), NORMAL, NONE) + + // Wrap a string in a style, if enabled. + private fun ErrPrinterSettings.style(style: TextStyle, text: String): String = + if (!useColor) text else term.render(style(text), NORMAL, NONE) + + /** + * Settings to apply to the error printer. + */ + data class ErrPrinterSettings( + val enableColor: Boolean = true, + val shortenPackages: Boolean = true, + val maxLength: Int = DEFAULT_MAX_WIDTH, + val terminal: Supplier = Supplier { Terminal() }, + ) { + // Whether color output should be used. + internal val useColor: Boolean get() = enableColor && ENABLE_COLOR_SUPPORT + + // Cached terminal accessor. + internal val term: Terminal by lazy { terminal.get() } + } + + // Default settings if none are provided. + private val DEFAULT_SETTINGS = ErrPrinterSettings() + + init { + // -- Ignore Packages + // Describes packages which are omitted from stack traces by default. + listOf( + "picocli", + "jdk.internal.reflect", + "kotlin.coroutines", + "kotlin.coroutines.intrinsics", + "kotlin.coroutines.jvm.internal", + "kotlinx.coroutines", + "elide.tool.cli", + "java.util.concurrent", + "java.base/java.util.concurrent", + "org.graalvm.polyglot", + ).forEach { + Exceptions.registerIgnorePackage(it, false) + } + + // -- Group Packages + // Describes packages which are grouped together in stack traces. + listOf( + "com.oracle.truffle.js.parser", + "elide.runtime.lang.javascript", + ).map { + Exceptions.registerGroupPackage(it) + } + } + + // Shorten a class reference. + private fun shortenClassReferenceLine(settings: ErrPrinterSettings, line: String): String { + // like: + // `package.here.SomeClass.someMethod(SomeFile.java:123)` + val refSpec = classFnSpec.matchEntire(line.removePrefix("\tat ")) ?: return line + val (clsQualified, fn, file, lineNum) = refSpec.destructured + val clspkg = clsQualified.substringBeforeLast(".") + val clsname = clsQualified.substringAfterLast(".") + // --- begin rewriting -- // + val clsref = if (!settings.shortenPackages) clspkg else { + clspkg.split('.').map { it.first() }.joinToString(".") + } + return StringBuilder().apply { + settings.apply { + append(" ".repeat(4)) + append(style(muted, "at")) + append(" ") + append(style(muted, clsref)) + append(style(muted, ".")) + append(clsname) + append(".") + append(fn) + append("(") + append(style(filename, file)) + append(":") + append(style(lineRef, lineNum)) + append(")") + } + }.toString() + } + + // Apply standard string fixes. + private fun String.stdTransforms(settings: ErrPrinterSettings): String = let { + // forcibly trim the message if it exceeds the max length + if (it.length >= settings.maxLength) { + it.substring(0, settings.maxLength - 10) + settings.style(resetFmt, " ...") + } else it + }.replace("\t", " ") + + // Format a line. + private fun fmtLine(settings: ErrPrinterSettings, line: String): String { + return when (line.drop(1).matches(classpathCiteRef)) { + // no match: it's not a class/fn reference line + false -> fmtMessage(line, settings) + + // match: it's a class/fn reference line, shorten the class package path + else -> shortenClassReferenceLine(settings, line).stdTransforms(settings) + } + } + + // Format using default logic. + private fun fmtDefault(settings: ErrPrinterSettings, exc: Throwable): StringBuilder = StringBuilder().apply { + Exceptions.getStackTraceString(exc).split("\n").map { line -> + fmtLine(settings, line) + }.map { + appendLine(it) + } + } + + // Format a polyglot exception. + private fun fmtPolyglot(settings: ErrPrinterSettings, exc: PolyglotException): StringBuilder = + fmtDefault(settings, exc) + + /** + * Pretty-format an exception; this includes: + * + * - Grouping or reducing package paths + * - Removing built-in Java or Kotlin frames + */ + fun fmt(throwable: Throwable, settings: ErrPrinterSettings = DEFAULT_SETTINGS): StringBuilder = when (throwable) { + // special handling for cross-lang exceptions + is PolyglotException -> fmtPolyglot(settings, throwable) + + // otherwise, format into a string builder and return + else -> fmtDefault(settings, throwable) + } + + /** + * Pretty-format an exception; this includes: + * + * - Grouping or reducing package paths + * - Removing built-in Java or Kotlin frames + */ + fun print(throwable: Throwable, settings: ErrPrinterSettings = DEFAULT_SETTINGS): Unit = settings + .term + .println( + fmt(throwable, settings).toString() + ) + + /** + * Format a raw string message by replacing well-known tokens. + * + * @param message The message to format. + * @return The formatted message. + */ + fun fmtMessage(message: String, settings: ErrPrinterSettings = DEFAULT_SETTINGS): String = message + .replace("org.graalvm.polyglot.PolyglotException: ", "") + .replace(" because ", " ... ") + .replace("java.lang.", "") + .stdTransforms(settings) +} diff --git a/packages/cli/src/main/resources/META-INF/native-image/resource-config.json b/packages/cli/src/main/resources/META-INF/native-image/resource-config.json index ed3484b9b..96586da07 100644 --- a/packages/cli/src/main/resources/META-INF/native-image/resource-config.json +++ b/packages/cli/src/main/resources/META-INF/native-image/resource-config.json @@ -856,5 +856,14 @@ }, { "name":"sun.util.resources.cldr.TimeZoneNames", "locales":["en", "en-US", "und"] + },{ + "name": "com.sun.tools.javac.resources.compiler", + "locales": ["en"] + }, { + "name": "sun.tools.jar.resources.jar", + "locales": ["en"] + }, { + "name": "com.sun.tools.javac.resources.javac", + "locales": ["en"] }] } diff --git a/packages/graalvm-js/build.gradle.kts b/packages/graalvm-js/build.gradle.kts index a20bd1d8e..dce1b1e95 100644 --- a/packages/graalvm-js/build.gradle.kts +++ b/packages/graalvm-js/build.gradle.kts @@ -57,6 +57,7 @@ val patchedDependencies: Configuration by configurations.creating { } dependencies { + annotationProcessor(libs.graalvm.truffle.processor) api(projects.packages.engine) api(patchedLibs) api(libs.graalvm.truffle.api) diff --git a/packages/graalvm-js/src/main/kotlin/elide/runtime/lang/javascript/ElideJsModuleRouter.kt b/packages/graalvm-js/src/main/kotlin/elide/runtime/lang/javascript/ElideJsModuleRouter.kt index e8d62aba3..6afcbb784 100644 --- a/packages/graalvm-js/src/main/kotlin/elide/runtime/lang/javascript/ElideJsModuleRouter.kt +++ b/packages/graalvm-js/src/main/kotlin/elide/runtime/lang/javascript/ElideJsModuleRouter.kt @@ -84,7 +84,6 @@ internal object ElideJsModuleRouter : JSModuleLoaderFactory, CommonJSResolverHoo // Resolve a CommonJS module require encountered in JavaScript. Called on-demand. override fun resolveModule(realm: JSRealm, moduleIdentifier: String, entryPath: TruffleFile): Any? { - Logging.root().warn("CJS: require('$moduleIdentifier')") return ElideUniversalJsModuleLoader.resolve(realm, moduleIdentifier) ?.provide() ?.let { realm.env.asGuestValue(it) } diff --git a/packages/graalvm-js/src/main/kotlin/elide/runtime/lang/javascript/ElideUniversalJsModuleLoader.kt b/packages/graalvm-js/src/main/kotlin/elide/runtime/lang/javascript/ElideUniversalJsModuleLoader.kt index 9af2ff316..f9ea4c4d4 100644 --- a/packages/graalvm-js/src/main/kotlin/elide/runtime/lang/javascript/ElideUniversalJsModuleLoader.kt +++ b/packages/graalvm-js/src/main/kotlin/elide/runtime/lang/javascript/ElideUniversalJsModuleLoader.kt @@ -24,6 +24,7 @@ import com.oracle.js.parser.ir.Module import com.oracle.js.parser.ir.Module.ExportEntry import com.oracle.js.parser.ir.Module.ModuleRequest import com.oracle.truffle.api.CallTarget +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary import com.oracle.truffle.api.frame.VirtualFrame import com.oracle.truffle.api.source.Source import com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader @@ -38,6 +39,7 @@ import com.oracle.truffle.js.runtime.objects.* import com.oracle.truffle.js.runtime.objects.JSModuleRecord.Status import org.graalvm.polyglot.proxy.ProxyObject import java.io.File +import java.net.URI import java.util.* import java.util.concurrent.ConcurrentSkipListMap import elide.core.api.Symbolic @@ -175,8 +177,15 @@ internal class ElideUniversalJsModuleLoader private constructor(realm: JSRealm) return requireNotNull(moduleMap[name]) } return when (val info = ModuleInfo.find(name)) { - // not a registered module - null -> super.resolveImportedModule(referencingModule, moduleRequest) + // not a registered module; fall back but with un-prefixed name, unless the prefix is `node` + null -> if (prefix == NODE_MODULE_PREFIX) { + super.resolveImportedModule(referencingModule, moduleRequest) + } else { + // rewrite the module request not to use a prefix unrecognized within graaljs + ModuleRequest.create(Strings.constant(name)).let { + super.resolveImportedModule(referencingModule, it) + } + } // present within module impl registry? in ModuleRegistry -> { @@ -239,6 +248,7 @@ internal class ElideUniversalJsModuleLoader private constructor(realm: JSRealm) source.createUnavailableSection(), frameDescriptor, ) { + @TruffleBoundary override fun execute(frame: VirtualFrame): Any { val module = JSArguments.getUserArgument(frame.arguments, 0) as JSModuleRecord diff --git a/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/elidekotlin.files b/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/elidekotlin.files index 018a6d963..7d5a477e3 100644 --- a/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/elidekotlin.files +++ b/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/elidekotlin.files @@ -1,4 +1,4 @@ -META-INF/elide/embedded/runtime/kt/classpath/elide-kotlin-runtime.jar = rw-rw-r-- -META-INF/elide/embedded/runtime/kt/classpath/kotlin-stdlib.jar = rw-rw-r-- -META-INF/elide/embedded/runtime/kt/classpath/kotlin-reflect.jar = rw-rw-r-- -META-INF/elide/embedded/runtime/kt/classpath/kotlin-script-runtime.jar = rw-rw-r-- +META-INF/elide/embedded/runtime/kt/elide-kotlin-runtime.jar = rw-rw-r-- +META-INF/elide/embedded/runtime/kt/kotlin-stdlib.jar = rw-rw-r-- +META-INF/elide/embedded/runtime/kt/kotlin-reflect.jar = rw-rw-r-- +META-INF/elide/embedded/runtime/kt/kotlin-script-runtime.jar = rw-rw-r-- diff --git a/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/runtime.current.json b/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/runtime.current.json index 4f4f3eda7..2d50d6dca 100644 --- a/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/runtime.current.json +++ b/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/runtime.current.json @@ -3,10 +3,10 @@ "language": "Kotlin", "resources": { "classpath": [ - "classpath/elide-kotlin-runtime.jar", - "classpath/kotlin-script-runtime.jar", - "classpath/kotlin-reflect.jar", - "classpath/kotlin-stdlib.jar" + "elide-kotlin-runtime.jar", + "kotlin-script-runtime.jar", + "kotlin-reflect.jar", + "kotlin-stdlib.jar" ] } } diff --git a/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/runtime.json.gz b/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/runtime.json.gz index 2fc9a28e5..eed742910 100644 Binary files a/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/runtime.json.gz and b/packages/graalvm-kt/src/main/resources/META-INF/elide/embedded/runtime/kt/runtime.json.gz differ diff --git a/packages/graalvm/build.gradle.kts b/packages/graalvm/build.gradle.kts index 7ba34bf43..afcb2c2a8 100644 --- a/packages/graalvm/build.gradle.kts +++ b/packages/graalvm/build.gradle.kts @@ -466,6 +466,7 @@ if (enableBenchmarks) { dependencies { // KSP kapt(mn.micronaut.inject.java) + kapt(libs.graalvm.truffle.processor) // API Deps api(libs.jakarta.inject) diff --git a/packages/graalvm/src/main/kotlin/elide/runtime/gvm/internals/sqlite/SqliteModule.kt b/packages/graalvm/src/main/kotlin/elide/runtime/gvm/internals/sqlite/SqliteModule.kt index 463856f39..e2dec435d 100644 --- a/packages/graalvm/src/main/kotlin/elide/runtime/gvm/internals/sqlite/SqliteModule.kt +++ b/packages/graalvm/src/main/kotlin/elide/runtime/gvm/internals/sqlite/SqliteModule.kt @@ -17,6 +17,7 @@ package elide.runtime.gvm.internals.sqlite import org.graalvm.polyglot.Value import org.graalvm.polyglot.proxy.ProxyExecutable import org.graalvm.polyglot.proxy.ProxyInstantiable +import org.graalvm.polyglot.proxy.ProxyObject import org.sqlite.SQLiteConnection import org.sqlite.SQLiteOpenMode import org.sqlite.SQLiteOpenMode.CREATE @@ -52,10 +53,13 @@ import elide.runtime.gvm.internals.intrinsics.js.AbstractNodeBuiltinModule import elide.runtime.gvm.js.JsError import elide.runtime.gvm.js.JsSymbol.JsSymbols.asJsSymbol import elide.runtime.gvm.internals.intrinsics.js.struct.map.JsMap +import elide.runtime.gvm.loader.ModuleInfo +import elide.runtime.gvm.loader.ModuleRegistry import elide.runtime.intrinsics.GuestIntrinsic.MutableIntrinsicBindings import elide.runtime.intrinsics.js.MapLike import elide.runtime.intrinsics.sqlite.* import elide.runtime.intrinsics.sqlite.SQLiteTransactionType.* +import elide.runtime.lang.javascript.SyntheticJSModule import elide.util.UUID import elide.vm.annotations.Polyglot import elide.runtime.intrinsics.sqlite.SQLiteStatement as Statement @@ -86,9 +90,13 @@ private const val CONFIG_ATTR_READONLY: String = "readonly" bindings[SQLITE_MODULE_SYMBOL.asJsSymbol()] = provide() bindings[SQLITE_DATABASE_SYMBOL.asJsSymbol()] = SQLiteDatabaseConstructor } + + init { + ModuleRegistry.deferred(ModuleInfo.of("sqlite")) { provide() } + } } -internal class SqliteModule : SQLiteAPI { +internal class SqliteModule : ProxyObject, SyntheticJSModule, SQLiteAPI { companion object { // Native library to load for SQLite support. private const val SQLITE3_LIBRARY: String = "sqlitejdbc" @@ -102,6 +110,18 @@ internal class SqliteModule : SQLiteAPI { private val SINGLETON = SqliteModule() @JvmStatic fun obtain(): SQLiteAPI = SINGLETON } + + override fun provide(): SQLiteAPI = SINGLETON + + override fun getMemberKeys(): Array = arrayOf("Database") + override fun putMember(key: String?, value: Value?): Unit = Unit + override fun removeMember(key: String?): Boolean = false + override fun hasMember(key: String): Boolean = key in memberKeys + + override fun getMember(key: String): Any? = when (key) { + "Database" -> SQLiteDatabaseConstructor + else -> null + } } @Suppress("unused") private suspend fun SequenceScope.addIfSet(value: String?) = diff --git a/packages/graalvm/src/main/kotlin/elide/runtime/plugins/js/JavaScriptConfig.kt b/packages/graalvm/src/main/kotlin/elide/runtime/plugins/js/JavaScriptConfig.kt index 43277e3ab..dfef574aa 100644 --- a/packages/graalvm/src/main/kotlin/elide/runtime/plugins/js/JavaScriptConfig.kt +++ b/packages/graalvm/src/main/kotlin/elide/runtime/plugins/js/JavaScriptConfig.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Elide Technologies, Inc. + * Copyright (c) 2024-2025 Elide Technologies, Inc. * * Licensed under the MIT license (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at @@ -51,7 +51,7 @@ import elide.runtime.plugins.js.JavaScriptVersion.ES2022 "sqlite", ).flatMap { listOf(it, "elide:$it") }.associateWith { val mod = if (!it.startsWith("elide:")) "elide:$it" else it - "/node_modules/$mod" + "/__runtime__/$mod" }.toMutableMap() /** Core module replacement map. */ diff --git a/packages/graalvm/src/main/resources/META-INF/elide/embedded/runtime/js/runtime.json.gz b/packages/graalvm/src/main/resources/META-INF/elide/embedded/runtime/js/runtime.json.gz index d66954105..7a1a16cc3 100644 Binary files a/packages/graalvm/src/main/resources/META-INF/elide/embedded/runtime/js/runtime.json.gz and b/packages/graalvm/src/main/resources/META-INF/elide/embedded/runtime/js/runtime.json.gz differ diff --git a/tools/elide-build/gradle.lockfile b/tools/elide-build/gradle.lockfile new file mode 100644 index 000000000..301bb7e8b --- /dev/null +++ b/tools/elide-build/gradle.lockfile @@ -0,0 +1,138 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +com.adarshr:gradle-test-logger-plugin:4.0.0=compileClasspath,runtimeClasspath +com.diffplug.durian:durian-collect:1.2.0=runtimeClasspath +com.diffplug.durian:durian-core:1.2.0=runtimeClasspath +com.diffplug.durian:durian-io:1.2.0=runtimeClasspath +com.diffplug.durian:durian-swt.os:4.2.2=runtimeClasspath +com.diffplug.spotless:spotless-lib-extra:2.45.0=compileClasspath,runtimeClasspath +com.diffplug.spotless:spotless-lib:2.45.0=compileClasspath,runtimeClasspath +com.diffplug.spotless:spotless-plugin-gradle:6.25.0=compileClasspath,runtimeClasspath +com.fasterxml.jackson.core:jackson-annotations:2.12.7=runtimeClasspath +com.fasterxml.jackson.core:jackson-core:2.12.7=runtimeClasspath +com.fasterxml.jackson.core:jackson-databind:2.12.7.1=runtimeClasspath +com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.12.7=runtimeClasspath +com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.12.7=runtimeClasspath +com.fasterxml.jackson.module:jackson-module-kotlin:2.12.7=runtimeClasspath +com.fasterxml.jackson:jackson-bom:2.12.7=runtimeClasspath +com.fasterxml.woodstox:woodstox-core:6.2.4=runtimeClasspath +com.github.ben-manes:gradle-versions-plugin:0.52.0=compileClasspath,runtimeClasspath +com.github.johnrengelman:shadow:8.1.1=compileClasspath,runtimeClasspath +com.github.openjson:openjson:1.0.13=runtimeClasspath +com.glureau:html-mermaid-dokka-plugin:0.6.0=compileClasspath,runtimeClasspath +com.google.code.findbugs:jsr305:3.0.2=compileClasspath,runtimeClasspath +com.google.code.gson:gson:2.11.0=runtimeClasspath +com.google.code.gson:gson:2.8.9=compileClasspath +com.google.devtools.ksp:symbol-processing-api:2.1.20-RC-1.0.30=runtimeClasspath +com.google.devtools.ksp:symbol-processing-common-deps:2.1.20-RC-1.0.30=runtimeClasspath +com.google.devtools.ksp:symbol-processing-gradle-plugin:2.1.20-RC-1.0.30=compileClasspath,runtimeClasspath +com.google.errorprone:error_prone_annotations:2.36.0=compileClasspath,runtimeClasspath +com.google.guava:failureaccess:1.0.3-jpms=compileClasspath,runtimeClasspath +com.google.guava:guava:33.4.0-jre-jpms=compileClasspath,runtimeClasspath +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=compileClasspath,runtimeClasspath +com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,runtimeClasspath +com.google.protobuf:protobuf-java-util:3.25.2=compileClasspath,runtimeClasspath +com.google.protobuf:protobuf-java:3.25.2=compileClasspath,runtimeClasspath +com.googlecode.concurrent-trees:concurrent-trees:2.6.1=runtimeClasspath +com.googlecode.javaewah:JavaEWAH:1.2.3=compileClasspath,runtimeClasspath +com.h2database:h2:2.3.232=compileClasspath,runtimeClasspath +com.squareup.moshi:moshi-kotlin:1.12.0=runtimeClasspath +com.squareup.moshi:moshi:1.12.0=runtimeClasspath +com.squareup.okhttp3:okhttp:4.12.0=runtimeClasspath +com.squareup.okio:okio-jvm:3.10.2=compileClasspath,runtimeClasspath +com.squareup.okio:okio:3.10.2=compileClasspath,runtimeClasspath +commons-codec:commons-codec:1.17.0=compileClasspath,runtimeClasspath +commons-io:commons-io:2.11.0=runtimeClasspath +dev.equo.ide:solstice:1.7.5=runtimeClasspath +dev.sigstore:sigstore-gradle-sign-base-plugin:0.7.0=compileClasspath,runtimeClasspath +dev.sigstore:sigstore-gradle-sign-plugin:0.7.0=compileClasspath,runtimeClasspath +io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.23.8=compileClasspath,runtimeClasspath +jakarta.activation:jakarta.activation-api:1.2.1=runtimeClasspath +jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=runtimeClasspath +org.apache.ant:ant-launcher:1.10.13=runtimeClasspath +org.apache.ant:ant:1.10.13=runtimeClasspath +org.apache.commons:commons-lang3:3.8.1=runtimeClasspath +org.apache.logging.log4j:log4j-api:2.20.0=runtimeClasspath +org.apache.logging.log4j:log4j-core:2.20.0=runtimeClasspath +org.apache.maven:maven-artifact:3.8.5=runtimeClasspath +org.bouncycastle:bcprov-jdk18on:1.80=compileClasspath,runtimeClasspath +org.bouncycastle:bcutil-jdk18on:1.80=compileClasspath,runtimeClasspath +org.codehaus.plexus:plexus-utils:3.5.1=runtimeClasspath +org.codehaus.woodstox:stax2-api:4.2.1=runtimeClasspath +org.eclipse.jgit:org.eclipse.jgit:6.10.0.202406032230-r=compileClasspath,runtimeClasspath +org.eclipse.platform:org.eclipse.osgi:3.18.300=runtimeClasspath +org.freemarker:freemarker:2.3.32=runtimeClasspath +org.fusesource.jansi:jansi:2.4.0=runtimeClasspath +org.graalvm.buildtools.native:org.graalvm.buildtools.native.gradle.plugin:0.10.5=compileClasspath,runtimeClasspath +org.graalvm.buildtools:graalvm-reachability-metadata:0.10.5=runtimeClasspath +org.graalvm.buildtools:native-gradle-plugin:0.10.5=compileClasspath,runtimeClasspath +org.graalvm.buildtools:utils:0.10.5=runtimeClasspath +org.jdom:jdom2:2.0.6.1=runtimeClasspath +org.jetbrains.compose:compose-gradle-plugin:1.6.11=compileClasspath,runtimeClasspath +org.jetbrains.dokka:analysis-markdown:2.0.0=runtimeClasspath +org.jetbrains.dokka:dokka-base:2.0.0=compileClasspath,runtimeClasspath +org.jetbrains.dokka:dokka-core:2.0.0=compileClasspath,runtimeClasspath +org.jetbrains.dokka:dokka-gradle-plugin:2.0.0=compileClasspath,runtimeClasspath +org.jetbrains.dokka:kotlin-as-java-plugin:2.0.0=compileClasspath,runtimeClasspath +org.jetbrains.dokka:templating-plugin:2.0.0=compileClasspath,runtimeClasspath +org.jetbrains.dokka:versioning-plugin:2.0.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:atomicfu:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:compose-compiler-gradle-plugin:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:fus-statistics-gradle-plugin:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:js-plain-objects:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-allopen:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-bom:2.0.21=runtimeClasspath +org.jetbrains.kotlin:kotlin-build-statistics:2.1.20-RC=runtimeClasspath +org.jetbrains.kotlin:kotlin-build-tools-api:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-compiler-runner:2.1.20-RC=runtimeClasspath +org.jetbrains.kotlin:kotlin-daemon-client:2.1.20-RC=runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin-annotations:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin-api:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:2.1.20-RC=runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin-idea:2.1.20-RC=runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin-model:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugins-bom:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-klib-commonizer-api:2.1.20-RC=runtimeClasspath +org.jetbrains.kotlin:kotlin-metadata-jvm:2.1.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-native-utils:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-noarg:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-power-assert:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-reflect:2.0.21=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-serialization:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.21=runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.21=runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-tooling-core:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-util-io:2.1.20-RC=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-util-klib-metadata:2.1.20-RC=runtimeClasspath +org.jetbrains.kotlin:kotlin-util-klib:2.1.20-RC=runtimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.0=runtimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=runtimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0=runtimeClasspath +org.jetbrains.kotlinx:kotlinx-html-jvm:0.9.1=runtimeClasspath +org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.9.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlinx:kover-gradle-plugin:0.7.5=compileClasspath,runtimeClasspath +org.jetbrains:annotations:13.0=compileClasspath +org.jetbrains:annotations:23.0.0=runtimeClasspath +org.jetbrains:markdown-jvm:0.7.3=runtimeClasspath +org.jetbrains:markdown:0.7.3=runtimeClasspath +org.json:json:20250107=compileClasspath,runtimeClasspath +org.jsoup:jsoup:1.16.1=compileClasspath,runtimeClasspath +org.jspecify:jspecify:1.0.0=compileClasspath,runtimeClasspath +org.mozilla:rhino:1.7.10=runtimeClasspath +org.ow2.asm:asm-analysis:9.7=runtimeClasspath +org.ow2.asm:asm-commons:9.7=runtimeClasspath +org.ow2.asm:asm-tree:9.7=runtimeClasspath +org.ow2.asm:asm-util:9.7=runtimeClasspath +org.ow2.asm:asm:9.7=runtimeClasspath +org.slf4j:slf4j-api:1.7.36=compileClasspath +org.slf4j:slf4j-api:1.8.0-alpha2=runtimeClasspath +org.slf4j:slf4j-simple:1.8.0-alpha2=runtimeClasspath +org.sonarsource.scanner.api:sonar-scanner-api:2.16.2.588=runtimeClasspath +org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:4.4.1.3373=compileClasspath,runtimeClasspath +org.tukaani:xz:1.9=runtimeClasspath +org.vafer:jdependency:2.8.0=runtimeClasspath +empty= diff --git a/tools/scripts/sqlite.js b/tools/scripts/sqlite.cjs similarity index 88% rename from tools/scripts/sqlite.js rename to tools/scripts/sqlite.cjs index 1324eb5a2..440d62802 100644 --- a/tools/scripts/sqlite.js +++ b/tools/scripts/sqlite.cjs @@ -1,5 +1,5 @@ const { ok } = require("node:assert") -const { Database } = require("sqlite") +const { Database } = require("elide:sqlite") const db = new Database() ok(db) db.exec("CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT);") diff --git a/tools/scripts/sqlite.mjs b/tools/scripts/sqlite.mjs new file mode 100644 index 000000000..0e6b5531b --- /dev/null +++ b/tools/scripts/sqlite.mjs @@ -0,0 +1,12 @@ +import { ok } from "node:assert" +import { Database } from "elide:sqlite" + +const db = new Database() +ok(db) +db.exec("CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT);") +db.exec("INSERT INTO test (name) VALUES ('foo');") +const query = db.query("SELECT * FROM test LIMIT 1;") +const result = query.get() +const name = result.name +console.info(`Name: "${name}"`) +console.info("Done.")