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.")