From 1bf2989bf5e9abef458a0be02490e713732fb375 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Mon, 24 Feb 2025 03:08:34 -0800 Subject: [PATCH 1/6] fix(graalvm): omnibus native fixes feat(cli): color support for error printing fix(cli): don't swallow non-polyglot errors fix(cli): show verbose errors in debug/verbose mode fix(cli): error messages break length limits sometimes fix(cli): errors in general get really long fix(cli): errors show lots of irrelevant stacktrace entries fix(graalvm): issues with elide-prefixed module names fix(graalvm): truffle boundary for synthetic modules fix(graalvm-js): drop superfluous log line fix(graalvm-kt): language resources for kotlinc chore: relock dependencies chore: update kdl lock chore: update gz configs for js/kt runtimes Fixes and closes elide-dev/elide#1049 Signed-off-by: Sam Gammon --- gradle/elide.versions.toml | 4 +- gradle/verification-metadata.xml | 27 +- package-lock.kdl | 484 +++++++++--------- packages/cli/build.gradle.kts | 27 +- packages/cli/gradle.lockfile | 19 +- .../tool/cli/cmd/repl/ToolShellCommand.kt | 72 ++- .../main/kotlin/elide/tool/err/ErrPrinter.kt | 192 +++++++ .../native-image/resource-config.json | 14 + packages/graalvm-js/build.gradle.kts | 1 + .../lang/javascript/ElideJsModuleRouter.kt | 1 - .../ElideUniversalJsModuleLoader.kt | 14 +- .../embedded/runtime/kt/elidekotlin.files | 8 +- .../embedded/runtime/kt/runtime.current.json | 8 +- .../elide/embedded/runtime/kt/runtime.json.gz | Bin 159 -> 155 bytes packages/graalvm/build.gradle.kts | 1 + .../gvm/internals/sqlite/SqliteModule.kt | 22 +- .../runtime/plugins/js/JavaScriptConfig.kt | 4 +- .../elide/embedded/runtime/js/runtime.json.gz | Bin 158 -> 176 bytes tools/elide-build/gradle.lockfile | 138 +++++ tools/scripts/{sqlite.js => sqlite.cjs} | 2 +- tools/scripts/sqlite.mjs | 12 + 21 files changed, 739 insertions(+), 311 deletions(-) create mode 100644 packages/cli/src/main/kotlin/elide/tool/err/ErrPrinter.kt create mode 100644 tools/elide-build/gradle.lockfile rename tools/scripts/{sqlite.js => sqlite.cjs} (88%) create mode 100644 tools/scripts/sqlite.mjs 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..b4cee7863 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) @@ -712,6 +713,7 @@ val experimentalLlvmEdgeArgs = listOfNotNull( }) val commonNativeArgs = listOfNotNull( + "--trace-object-instantiation=com.github.ajalt.mordant.rendering.TextStyles", // Debugging flags: // "--verbose", onlyIf(enableCustomCompiler && !cCompiler.isNullOrEmpty(), "--native-compiler-path=$cCompiler"), @@ -860,8 +862,8 @@ val profiles: List = listOf( // GVM release flags val gvmReleaseFlags: List = listOf( - "-O4", -).onlyIf(!enablePgo) + "-Os", +) // Experimental C-compiler flags. val experimentalCFlags: List = listOf( @@ -872,8 +874,6 @@ val experimentalCFlags: List = listOf( val releaseFlags: List = listOf( "-H:+LocalizationOptimizedMode", "-H:+RemoveUnusedSymbols", -).plus( - listOf("-O3").onlyIf(!enablePgo) ).asSequence().plus(releaseCFlags.plus(if (enableExperimental) experimentalCFlags else emptyList()).flatMap { listOf( "-H:NativeLinkerOption=$it", @@ -934,6 +934,9 @@ val initializeAtBuildtime: List = listOf( "ch.qos.logback", "com.google.common", "com.google.protobuf", + "com.sun.tools.javac.resources.compiler", + "com.sun.tools.javac.resources.javac", + "sun.tools.jar.resources.jar", "elide", "elide.tool", "elide.tool.cli.Elide", @@ -972,6 +975,8 @@ 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", + "elide.tool.err.ErrPrinter", // @TODO: seal this into formal config "elide.tool.err.ErrorHandler${'$'}ErrorContext", @@ -1200,9 +1205,6 @@ val initializeAtRuntime: List = listOfNotNull( ) val pklArgs: List = listOf( - "-H:IncludeResources=org/pkl/core/stdlib/.*\\.pkl", - "-H:IncludeResources=org/jline/utils/.*", - "-H:IncludeResources=org/pkl/commons/cli/commands/IncludedCARoots.pem", "-H:IncludeResourceBundles=org.pkl.core.errorMessages", ).plus(listOf( "org.pkl.core", @@ -1294,7 +1296,6 @@ val linuxGvmReleaseFlags = listOf( val linuxReleaseArgs = linuxOnlyArgs.plus( listOf( "-R:+WriteableCodeCache", - "-H:+StripDebugInfo", ).plus(if (oracleGvm) linuxGvmReleaseFlags else emptyList()), ) 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..836536b14 --- /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 get() = 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..583c076f0 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 @@ -12,6 +12,8 @@ "pattern":"org/jline/utils/.*" },{ "pattern":"\\Qorg/pkl/commons/cli/PklCARoots.pem\\E" + },{ + "pattern":"\\Qorg/pkl/commons/cli/commands/IncludedCARoots.pem\\E" },{ "pattern":"\\QElideTool.properties\\E" }, { @@ -841,6 +843,9 @@ "bundles":[{ "name":"ElideTool", "locales":["en-US"] + }, { + "name":"org.pkl.core.errorMessages", + "locales":["en"] }, { "name":"sun.text.resources.BreakIteratorInfo", "locales":["und"] @@ -856,5 +861,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 2fc9a28e51ca13b4257855c20588cb2fbc68c2c9..eed74291096e341a80cb5b6c9ad302618ad0a6b4 100644 GIT binary patch literal 155 zcmV;M0A&9kiwFq9Q@m#a19Ek4bZKp6E^2dcZUB9ZF%rTs3!sD7yQRNFffuRtN za0J51$a0!Y{*EIk8Ja70?{0P82h52whTeze6b?IK$f-gycAk_ef4E?oszfYJtPM02 z8A_Q!$A&J3_D7}xyQeKXsaffT#|MbLSmWzT6q@yKMexoT_4ix{rkg1<*Or^x+#4p5 Jf56uO000ZSMLPfh literal 159 zcmV;Q0AT+giwFot*S2Q@19Ek4bZKp6E^2dcZUBwUF%H5o429u6r-(9BSeUp1M?efA zHNjxq%5l0>y*t4$AQo6WeE#)j=Y0Uq$PjiuOxv(}3PsK}X0!dEg#2=WGE_-W+GB3e zC{ZkBjCyHwF#5y|5cbgBY@?IPig#FFquAb8`>sk79QDsw;7pM8*QEA@CyT5(w!65+ NJpd$E5Y+zw005`9Nyz{J 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 d669541054c75477bda21c92b5a64cee8df011b4..7a1a16cc34caa37e048c15dd431da90123a2d148 100644 GIT binary patch delta 63 zcmV-F0KosA0k8oFABzYG&{MpT2YN3kK{2)JqM6E&zDo5h?5d0076(7Zv~j delta 45 zcmdnMIFFHCzMF%CpJ(Gl_9|J2Y5rPgy%}e< Date: Mon, 24 Feb 2025 21:57:52 +0000 Subject: [PATCH 2/6] chore(deps): Bump slsa-framework/slsa-github-generator Bumps [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) from 2.0.0 to 2.1.0. - [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases) - [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md) - [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v2.0.0...v2.1.0) --- updated-dependencies: - dependency-name: slsa-framework/slsa-github-generator dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: Sam Gammon --- .github/workflows/job.build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/job.build.yml b/.github/workflows/job.build.yml index 91310a619..c59c51029 100644 --- a/.github/workflows/job.build.yml +++ b/.github/workflows/job.build.yml @@ -369,7 +369,7 @@ jobs: ## Report: Provenance provenance: name: Provenance - uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.0.0 + uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0 if: inputs.provenance needs: [gradle] permissions: From 6aa8606588454661eb9bee22b595264ddb211c4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 21:57:50 +0000 Subject: [PATCH 3/6] chore(deps): Bump pnpm/action-setup from 4.0.0 to 4.1.0 Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 4.0.0 to 4.1.0. - [Release notes](https://github.com/pnpm/action-setup/releases) - [Commits](https://github.com/pnpm/action-setup/compare/fe02b34f77f8bc703788d5817da081398fad5dd2...a7487c7e89a18df4991f7f222e4898a00d66ddda) --- updated-dependencies: - dependency-name: pnpm/action-setup dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: Sam Gammon --- .github/workflows/checks.apicheck.yml | 2 +- .github/workflows/checks.formatting.yml | 2 +- .github/workflows/job.build.yml | 2 +- .github/workflows/job.cli.yml | 4 ++-- .github/workflows/job.containers.yml | 4 ++-- .github/workflows/job.test.yml | 4 ++-- .github/workflows/on.scheduled.yml | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/checks.apicheck.yml b/.github/workflows/checks.apicheck.yml index cb985b367..18e06da8c 100644 --- a/.github/workflows/checks.apicheck.yml +++ b/.github/workflows/checks.apicheck.yml @@ -96,7 +96,7 @@ jobs: with: bun-version-file: .bun-version - name: "Setup: PNPM" - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 with: version: "9.2.0" run_install: | diff --git a/.github/workflows/checks.formatting.yml b/.github/workflows/checks.formatting.yml index 548040bde..06b8b40fa 100644 --- a/.github/workflows/checks.formatting.yml +++ b/.github/workflows/checks.formatting.yml @@ -98,7 +98,7 @@ jobs: java-version: "23" github-token: ${{ secrets.GITHUB_TOKEN }} - name: "Setup: PNPM" - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 with: version: "9.2.0" run_install: | diff --git a/.github/workflows/job.build.yml b/.github/workflows/job.build.yml index c59c51029..6d2ee4c13 100644 --- a/.github/workflows/job.build.yml +++ b/.github/workflows/job.build.yml @@ -272,7 +272,7 @@ jobs: with: bun-version-file: .bun-version - name: "Setup: PNPM" - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 with: version: "9.2.0" run_install: | diff --git a/.github/workflows/job.cli.yml b/.github/workflows/job.cli.yml index fb88b5eaf..10ea95e2f 100644 --- a/.github/workflows/job.cli.yml +++ b/.github/workflows/job.cli.yml @@ -195,7 +195,7 @@ jobs: with: bun-version-file: .bun-version - name: "Setup: PNPM" - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 with: version: "9.2.0" run_install: | @@ -349,7 +349,7 @@ jobs: with: bun-version-file: .bun-version - name: "Setup: PNPM" - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 with: version: "9.2.0" run_install: | diff --git a/.github/workflows/job.containers.yml b/.github/workflows/job.containers.yml index 85df74040..b3b5fff7e 100644 --- a/.github/workflows/job.containers.yml +++ b/.github/workflows/job.containers.yml @@ -207,7 +207,7 @@ jobs: with: node-version: 23 - name: "Setup: PNPM" - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 with: version: "9.2.0" run_install: | @@ -319,7 +319,7 @@ jobs: with: node-version: 23 - name: "Setup: PNPM" - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 with: version: "9.2.0" run_install: | diff --git a/.github/workflows/job.test.yml b/.github/workflows/job.test.yml index f0980f23c..79a1bd15a 100644 --- a/.github/workflows/job.test.yml +++ b/.github/workflows/job.test.yml @@ -277,7 +277,7 @@ jobs: with: bun-version-file: .bun-version - name: "Setup: PNPM" - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 with: version: "9.2.0" run_install: | @@ -539,7 +539,7 @@ jobs: with: node-version: 23 - name: "Setup: PNPM" - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 with: version: "9.2.0" run_install: | diff --git a/.github/workflows/on.scheduled.yml b/.github/workflows/on.scheduled.yml index b47fa36fb..02d21f107 100644 --- a/.github/workflows/on.scheduled.yml +++ b/.github/workflows/on.scheduled.yml @@ -175,7 +175,7 @@ jobs: with: node-version: 23 - name: "Setup: PNPM" - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 with: version: "9.2.0" run_install: | From ef9721e0bee81dfc379fddec6bac586e7df01ad1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 21:57:46 +0000 Subject: [PATCH 4/6] chore(deps): Bump JetBrains/qodana-action Bumps [JetBrains/qodana-action](https://github.com/jetbrains/qodana-action) from 12ec1e736e5f012abe0eea9fe83c33d4a88eddd3 to fe012aed54dc21daa5df0108f7b51305a2877251. - [Release notes](https://github.com/jetbrains/qodana-action/releases) - [Commits](https://github.com/jetbrains/qodana-action/compare/12ec1e736e5f012abe0eea9fe83c33d4a88eddd3...fe012aed54dc21daa5df0108f7b51305a2877251) --- updated-dependencies: - dependency-name: JetBrains/qodana-action dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: Sam Gammon --- .github/workflows/checks.qodana.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/checks.qodana.yml b/.github/workflows/checks.qodana.yml index 5f4d42d01..1d6f81377 100644 --- a/.github/workflows/checks.qodana.yml +++ b/.github/workflows/checks.qodana.yml @@ -84,7 +84,7 @@ jobs: -x nativeCompile -x nativeOptimizedCompile - name: "Analysis: Qodana Scan" - uses: JetBrains/qodana-action@12ec1e736e5f012abe0eea9fe83c33d4a88eddd3 # main + uses: JetBrains/qodana-action@fe012aed54dc21daa5df0108f7b51305a2877251 # main continue-on-error: true env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} From bcc730917ca3b276bb1aea07f574ff4d9c53a434 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 21:57:41 +0000 Subject: [PATCH 5/6] chore(deps): Bump actions/upload-artifact from 4.6.0 to 4.6.1 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.0 to 4.6.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08...4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: Sam Gammon --- .github/workflows/checks.scorecards.yml | 2 +- .github/workflows/job.build.yml | 2 +- .github/workflows/job.cli.yml | 10 +++++----- .github/workflows/job.site.yml | 6 +++--- .github/workflows/job.test.yml | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/checks.scorecards.yml b/.github/workflows/checks.scorecards.yml index b8fa834a5..04a22364d 100644 --- a/.github/workflows/checks.scorecards.yml +++ b/.github/workflows/checks.scorecards.yml @@ -64,7 +64,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Artifact: Scorecard Analysis" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: name: SARIF file path: results.sarif diff --git a/.github/workflows/job.build.yml b/.github/workflows/job.build.yml index 6d2ee4c13..7c0c80916 100644 --- a/.github/workflows/job.build.yml +++ b/.github/workflows/job.build.yml @@ -351,7 +351,7 @@ jobs: -PbuildSamples=false \ -PbuildDocs=false - name: "Artifact: Build Outputs" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: name: elide-framework path: | diff --git a/.github/workflows/job.cli.yml b/.github/workflows/job.cli.yml index 10ea95e2f..e16e450fe 100644 --- a/.github/workflows/job.cli.yml +++ b/.github/workflows/job.cli.yml @@ -245,21 +245,21 @@ jobs: popd; echo "Binary compressed."; - name: "Artifacts: Debug Binary (Unix)" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 if: success() && !contains(matrix.runner, 'windows') with: name: cli-debug-${{ matrix.tag }} path: | ./packages/cli/build/native/nativeCompile/elide.debug.xz - name: "Artifacts: Debug Binary (Windows)" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 if: success() && contains(matrix.runner, 'windows') with: name: cli-debug-${{ matrix.tag }} path: | ./packages/cli/build/native/nativeCompile/elide.debug - name: "Artifacts: Dashboard Dump" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 if: success() with: name: cli-debug-report-${{ matrix.tag }} @@ -390,7 +390,7 @@ jobs: -Pversion=${{ inputs.version }} \ -Pelide.version=${{ inputs.version }} - name: "Artifacts: Release Binary (Posix)" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 if: success() && contains(matrix.runner, 'windows') != true with: name: cli-release-${{ matrix.tag }} @@ -400,7 +400,7 @@ jobs: ./packages/cli/build/nativeOptimizedCompile/elide-${{ inputs.version }}-${{ matrix.tag }}.*.tgz ./packages/cli/build/nativeOptimizedCompile/elide-${{ inputs.version }}-${{ matrix.tag }}.*.txz - name: "Artifacts: Release Binary (Windows)" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 if: success() && contains(matrix.runner, 'windows') with: name: cli-release-${{ matrix.tag }} diff --git a/.github/workflows/job.site.yml b/.github/workflows/job.site.yml index 10d3aac7a..2bbc43d03 100644 --- a/.github/workflows/job.site.yml +++ b/.github/workflows/job.site.yml @@ -119,12 +119,12 @@ jobs: run: | tar -czf site.tar.gz build/site - name: "Upload: Manifest" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: name: site-tarball-phase1 path: ./site.tar.gz - name: "Upload: Site" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: name: site-manifest path: ./site/docs/app/build/generated/ksp/main/resources/elide/runtime/generated/app.manifest.pb @@ -247,7 +247,7 @@ jobs: rm -fv site.tar.gz; tar -czf site.tar.gz build/site; - name: "Upload: Site Tarball" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: name: site-tarball-phase2 path: ./site.tar.gz diff --git a/.github/workflows/job.test.yml b/.github/workflows/job.test.yml index 79a1bd15a..1fe7045eb 100644 --- a/.github/workflows/job.test.yml +++ b/.github/workflows/job.test.yml @@ -367,7 +367,7 @@ jobs: -Pelide.ci=true \ -PbuildDocs=false - name: "Artifact: Reports" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: name: test-reports-jvm path: | @@ -604,7 +604,7 @@ jobs: -Pelide.ci=true \ -PbuildDocs=false - name: "Artifact: Reports" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: name: test-reports-native path: | From bc1edbc7b4e629e54c5f3f3b9a4a0b3b34f690ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 21:57:36 +0000 Subject: [PATCH 6/6] chore(deps): Bump github/codeql-action from 3.28.8 to 3.28.10 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.8 to 3.28.10. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/dd746615b3b9d728a6a37ca2045b68ca76d4841a...b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: Sam Gammon --- .github/workflows/checks.clippy.yml | 2 +- .github/workflows/checks.codeql.yml | 4 ++-- .github/workflows/checks.detekt.yml | 2 +- .github/workflows/checks.qodana.yml | 2 +- .github/workflows/checks.scorecards.yml | 2 +- packages/cli/detekt-baseline.xml | 9 +-------- 6 files changed, 7 insertions(+), 14 deletions(-) diff --git a/.github/workflows/checks.clippy.yml b/.github/workflows/checks.clippy.yml index 349208482..aefa93c42 100644 --- a/.github/workflows/checks.clippy.yml +++ b/.github/workflows/checks.clippy.yml @@ -53,6 +53,6 @@ jobs: run: | cargo clippy --all-targets --all-features --message-format=json | clippy-sarif | tee results.sarif | sarif-fmt - name: "Report: SARIF Upload" - uses: github/codeql-action/upload-sarif@dd746615b3b9d728a6a37ca2045b68ca76d4841a # v3.28.8 + uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10 with: sarif_file: results.sarif diff --git a/.github/workflows/checks.codeql.yml b/.github/workflows/checks.codeql.yml index 4d48f1680..45da117aa 100644 --- a/.github/workflows/checks.codeql.yml +++ b/.github/workflows/checks.codeql.yml @@ -101,7 +101,7 @@ jobs: java-version: "23" github-token: ${{ secrets.GITHUB_TOKEN }} - name: "Setup: Initialize CodeQL" - uses: github/codeql-action/init@dd746615b3b9d728a6a37ca2045b68ca76d4841a # v3.28.8 + uses: github/codeql-action/init@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10 with: config-file: ./.github/codeql/codeql-config.yml languages: ${{ matrix.language }} @@ -126,5 +126,5 @@ jobs: -x nativeCompile -x nativeOptimizedCompile - name: "Analysis: CodeQL" - uses: github/codeql-action/analyze@dd746615b3b9d728a6a37ca2045b68ca76d4841a # v3.28.8 + uses: github/codeql-action/analyze@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10 continue-on-error: true diff --git a/.github/workflows/checks.detekt.yml b/.github/workflows/checks.detekt.yml index 9cbc0e5cb..006e68617 100644 --- a/.github/workflows/checks.detekt.yml +++ b/.github/workflows/checks.detekt.yml @@ -99,6 +99,6 @@ jobs: -x nativeCompile \ -x nativeOptimizedCompile - name: "Report: SARIF Upload" - uses: github/codeql-action/upload-sarif@dd746615b3b9d728a6a37ca2045b68ca76d4841a # v3.28.8 + uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10 with: sarif_file: build/reports/detekt/detekt.sarif diff --git a/.github/workflows/checks.qodana.yml b/.github/workflows/checks.qodana.yml index 1d6f81377..fbecf0440 100644 --- a/.github/workflows/checks.qodana.yml +++ b/.github/workflows/checks.qodana.yml @@ -92,6 +92,6 @@ jobs: with: args: --baseline,qodana.sarif.json - name: "Report: SARIF Upload" - uses: github/codeql-action/upload-sarif@dd746615b3b9d728a6a37ca2045b68ca76d4841a # v3.28.8 + uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10 with: sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json diff --git a/.github/workflows/checks.scorecards.yml b/.github/workflows/checks.scorecards.yml index 04a22364d..5890b2687 100644 --- a/.github/workflows/checks.scorecards.yml +++ b/.github/workflows/checks.scorecards.yml @@ -71,6 +71,6 @@ jobs: retention-days: 5 # Upload the results to GitHub's code scanning dashboard. - name: "Artifact: Scorecard SARIF" - uses: github/codeql-action/upload-sarif@dd746615b3b9d728a6a37ca2045b68ca76d4841a # v3.28.8 + uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10 with: sarif_file: results.sarif diff --git a/packages/cli/detekt-baseline.xml b/packages/cli/detekt-baseline.xml index c04cf591d..1515d5a0c 100644 --- a/packages/cli/detekt-baseline.xml +++ b/packages/cli/detekt-baseline.xml @@ -12,12 +12,6 @@ ConstructorParameterNaming:AbstractSubcommand.kt$AbstractSubcommand.DefaultOutputController$private val _settings: ToolState.OutputSettings = _state.output ConstructorParameterNaming:AbstractSubcommand.kt$AbstractSubcommand.DefaultOutputController$private val _state: State ConstructorParameterNaming:AbstractSubcommand.kt$AbstractSubcommand.ToolExecutionContextImpl$private val _state: T - CyclomaticComplexMethod:NativeUtil.kt$NativeUtil$@Suppress("LongParameterList") @JvmStatic internal fun loadOrCopy( workdir: File, path: String, libName: String, loader: ClassLoader, allCandidatePaths: Sequence<Path>, forceCopy: Boolean = false, forceLoad: Boolean = false, loadFromPath: Boolean = true, ): Pair<Boolean, Boolean> - CyclomaticComplexMethod:ToolShellCommand.kt$ToolShellCommand$override fun PolyglotEngineConfiguration.configureEngine(langs: EnumSet<GuestLanguage>) - CyclomaticComplexMethod:ToolShellCommand.kt$ToolShellCommand$override suspend fun CommandContext.invoke(state: ToolContext<ToolState>): CommandResult - CyclomaticComplexMethod:ToolShellCommand.kt$ToolShellCommand$private fun beginInteractiveSession( languages: EnumSet<GuestLanguage>, primaryLanguage: GuestLanguage, engine: PolyglotEngine, ctxAccessor: ContextAccessor, ) - CyclomaticComplexMethod:ToolShellCommand.kt$ToolShellCommand$private fun displayFormattedError( exc: Throwable, message: String, advice: String? = null, internal: Boolean = false, stacktrace: Boolean = internal, withCause: Boolean = true, ) - CyclomaticComplexMethod:ToolShellCommand.kt$ToolShellCommand.LanguageSelector$internal fun resolveLangs(project: ProjectInfo? = null, alias: String? = null): EnumSet<GuestLanguage> FunctionParameterNaming:Statics.kt$Statics$`in`: InputStream LargeClass:ToolShellCommand.kt$ToolShellCommand : AbstractSubcommand LoopWithTooManyJumpStatements:ToolShellCommand.kt$ToolShellCommand$while @@ -31,9 +25,9 @@ MagicNumber:ToolShellCommand.kt$ToolShellCommand$1000L MagicNumber:ToolShellCommand.kt$ToolShellCommand$120 MagicNumber:ToolShellCommand.kt$ToolShellCommand$40 + MagicNumber:ToolShellCommand.kt$ToolShellCommand$80 MatchingDeclarationName:SanityTests.kt$SanitySelfTest : SelfTest MaxLineLength:ToolShellCommand.kt$ToolShellCommand$" or: elide @|bold,fg(cyan) run|shell|serve|start|@ [OPTIONS] [@|bold,fg(cyan) -c|@|@|bold,fg(cyan) --code|@ CODE]" - NestedBlockDepth:main.kt$private suspend inline fun runInner(args: Array<String>): Int ObjectPropertyNaming:Statics.kt$Statics$val `in`: InputStream get() = delegatedInStream.get() ?: System.`in` ReturnCount:ExecutionController.kt$ExecutionController$private fun toHost(polyglotException: PolyglotException): Throwable ReturnCount:NativeUtil.kt$NativeUtil$@Suppress("LongParameterList") @JvmStatic internal fun loadOrCopy( workdir: File, path: String, libName: String, loader: ClassLoader, allCandidatePaths: Sequence<Path>, forceCopy: Boolean = false, forceLoad: Boolean = false, loadFromPath: Boolean = true, ): Pair<Boolean, Boolean> @@ -70,7 +64,6 @@ TooGenericExceptionCaught:ToolShellCommand.kt$ToolShellCommand$ioe: Exception TooGenericExceptionCaught:main.kt$err: RuntimeException TooGenericExceptionCaught:main.kt$err: Throwable - TooManyFunctions:ToolShellCommand.kt$ToolShellCommand : AbstractSubcommand TopLevelPropertyNaming:ToolInvokeCommand.kt$private const val jsHint = "package.json" TopLevelPropertyNaming:ToolInvokeCommand.kt$private const val pyHint = "requirements.txt" UnusedParameter:AbstractToolCommand.kt$AbstractToolCommand$args: Array<String>