From 3428affad3cc49d04d144a8bdfb1a85a6b2f3d29 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:33:57 +0000 Subject: [PATCH 01/22] build: add node-gyp 11 to fix native builds on Python >= 3.12 lerna 7 hoists node-gyp 9.4.1, whose bundled gyp still imports `distutils`. Python 3.12 removed `distutils`, so `yarn setup` fails while compiling bcrypto on Ubuntu 24.04 (Python 3.12) and 26.04 (Python 3.14). Adding node-gyp 11 as a root devDependency hoists a modern node-gyp to `node_modules/.bin`, which yarn uses for native install scripts. Co-Authored-By: Claude Opus 5.5 --- package.json | 1 + yarn.lock | 260 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 261 insertions(+) diff --git a/package.json b/package.json index 1e4b433a31..47932ecf7d 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,7 @@ "madge": "6.1.0", "moment-timezone": "0.5.44", "nock": "13.5.1", + "node-gyp": "11.5.0", "npm-check-updates": "16.14.14", "prettier": "2.4.0", "rimraf": "5.0.5", diff --git a/yarn.lock b/yarn.lock index 478ffa1fe9..833f85e180 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1756,6 +1756,13 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" +"@isaacs/fs-minipass@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz#2d59ae3ab4b38fb4270bfa23d30f8e2e86c7fe32" + integrity sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w== + dependencies: + minipass "^7.0.4" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -2144,6 +2151,17 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@npmcli/agent@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-3.0.0.tgz#1685b1fbd4a1b7bb4f930cbb68ce801edfe7aa44" + integrity sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q== + dependencies: + agent-base "^7.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.1" + lru-cache "^10.0.1" + socks-proxy-agent "^8.0.3" + "@npmcli/fs@^2.1.0": version "2.1.2" resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" @@ -2159,6 +2177,13 @@ dependencies: semver "^7.3.5" +"@npmcli/fs@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-4.0.0.tgz#a1eb1aeddefd2a4a347eca0fab30bc62c0e1c0f2" + integrity sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q== + dependencies: + semver "^7.3.5" + "@npmcli/git@^4.0.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-4.1.0.tgz#ab0ad3fd82bc4d8c1351b6c62f0fa56e8fe6afa6" @@ -3664,6 +3689,11 @@ abbrev@^1.0.0: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +abbrev@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-3.0.1.tgz#8ac8b3b5024d31464fe2a5feeea9f4536bf44025" + integrity sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -3711,6 +3741,11 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" +agent-base@^7.1.0, agent-base@^7.1.2: + version "7.1.4" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8" + integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== + agentkeepalive@^4.2.1: version "4.5.0" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" @@ -4574,6 +4609,24 @@ cacache@^17.0.0: tar "^6.1.11" unique-filename "^3.0.0" +cacache@^19.0.1: + version "19.0.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-19.0.1.tgz#3370cc28a758434c85c2585008bd5bdcff17d6cd" + integrity sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ== + dependencies: + "@npmcli/fs" "^4.0.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^2.0.1" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^7.0.2" + ssri "^12.0.0" + tar "^7.4.3" + unique-filename "^4.0.0" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -4814,6 +4867,11 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +chownr@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4" + integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== + ci-info@*: version "4.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" @@ -5212,6 +5270,11 @@ content-type@^1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== +content-type@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-2.1.0.tgz#d9389c43c0a8cf6a355db464d21e07092a40493a" + integrity sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag== + continuation-local-storage@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz#11f613f74e914fe9b34c92ad2d28fe6ae1db7ffb" @@ -6669,6 +6732,11 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" +fdir@^6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" + integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== + figlet@^1.1.1: version "1.7.0" resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.7.0.tgz#46903a04603fd19c3e380358418bb2703587a72e" @@ -7654,6 +7722,14 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" +http-proxy-agent@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" @@ -7678,6 +7754,14 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" +https-proxy-agent@^7.0.1: + version "7.0.6" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" + integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== + dependencies: + agent-base "^7.1.2" + debug "4" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -7866,6 +7950,11 @@ inversify@5.1.1: resolved "https://registry.yarnpkg.com/inversify/-/inversify-5.1.1.tgz#6fbd668c591337404e005a1946bfe0d802c08730" integrity sha512-j8grHGDzv1v+8T1sAQ+3boTCntFPfvxLCkNcxB1J8qA0lUN+fAlSyYd+RXKvaPRL4AGyPxViutBEJHNXOyUdFQ== +ip-address@^10.1.1: + version "10.7.4" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.7.4.tgz#a5e493fabce725c5d4b8b8f4d2ebb9009fbcf2e8" + integrity sha512-DWBMKyeM25D70nrIiTkgQth59/G+naKOTep6huF9j+GmeK3DMD60Zvxg5d5qQnz+38AHgou6ean2LECX+lrKDg== + ip@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.1.tgz#e8f3595d33a3ea66490204234b77636965307105" @@ -8219,6 +8308,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isexe@^3.1.1: + version "3.1.5" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.5.tgz#42e368f68d5e10dadfee4fda7b550bc2d8892dc9" + integrity sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w== + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -9441,6 +9535,11 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== +lru-cache@^10.0.1: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -9582,6 +9681,23 @@ make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.1: socks-proxy-agent "^7.0.0" ssri "^10.0.0" +make-fetch-happen@^14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz#d74c3ecb0028f08ab604011e0bc6baed483fcdcd" + integrity sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ== + dependencies: + "@npmcli/agent" "^3.0.0" + cacache "^19.0.1" + http-cache-semantics "^4.1.1" + minipass "^7.0.2" + minipass-fetch "^4.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^1.0.0" + proc-log "^5.0.0" + promise-retry "^2.0.1" + ssri "^12.0.0" + makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -9820,6 +9936,13 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" +minipass-collect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" + integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== + dependencies: + minipass "^7.0.3" + minipass-fetch@^2.0.3: version "2.1.2" resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" @@ -9842,6 +9965,17 @@ minipass-fetch@^3.0.0: optionalDependencies: encoding "^0.1.13" +minipass-fetch@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-4.0.1.tgz#f2d717d5a418ad0b1a7274f9b913515d3e78f9e5" + integrity sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^3.0.1" + optionalDependencies: + encoding "^0.1.13" + minipass-flush@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" @@ -9893,6 +10027,11 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +minipass@^7.0.2, minipass@^7.0.4, minipass@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" + integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== + minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -9901,6 +10040,13 @@ minizlib@^2.1.1, minizlib@^2.1.2: minipass "^3.0.0" yallist "^4.0.0" +minizlib@^3.0.1, minizlib@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.1.0.tgz#6ad76c3a8f10227c9b51d1c9ac8e30b27f5a251c" + integrity sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw== + dependencies: + minipass "^7.1.2" + mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -10079,6 +10225,13 @@ negotiator@^0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== +negotiator@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.1.0.tgz#16e003d0db4ac24fd9df168edf871625deeae3df" + integrity sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg== + dependencies: + content-type "^2.1.0" + neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" @@ -10179,6 +10332,22 @@ node-gyp-build@^4.3.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== +node-gyp@11.5.0: + version "11.5.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-11.5.0.tgz#82661b5f40647a7361efe918e3cea76d297fcc56" + integrity sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + graceful-fs "^4.2.6" + make-fetch-happen "^14.0.3" + nopt "^8.0.0" + proc-log "^5.0.0" + semver "^7.3.5" + tar "^7.4.3" + tinyglobby "^0.2.12" + which "^5.0.0" + node-gyp@^9.0.0: version "9.4.1" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.1.tgz#8a1023e0d6766ecb52764cc3a734b36ff275e185" @@ -10256,6 +10425,13 @@ nopt@^6.0.0: dependencies: abbrev "^1.0.0" +nopt@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-8.1.0.tgz#b11d38caf0f8643ce885818518064127f602eae3" + integrity sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A== + dependencies: + abbrev "^3.0.0" + normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -10767,6 +10943,11 @@ p-map@^2.0.0: resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +p-map@^7.0.2: + version "7.1.1" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.1.1.tgz#df42589224b93b798eb4d16dbf965bb15a522d34" + integrity sha512-6Lh3jQPLthYujSrlw6ccWXBGZTkoTCz27Hd92g79LH/kjAbgoEu0t442cCCNbegPSJsA0lwDX8z0bcKtkpA32g== + p-pipe@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" @@ -11106,6 +11287,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.7.tgz#6313360034ccb36b3dc61ecbdff78121f90fe21f" + integrity sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA== + pify@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" @@ -11398,6 +11584,11 @@ proc-log@^3.0.0: resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== +proc-log@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-5.0.0.tgz#e6c93cf37aef33f835c53485f314f50ea906a9d8" + integrity sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ== + process-es6@0.11.6: version "0.11.6" resolved "https://registry.yarnpkg.com/process-es6/-/process-es6-0.11.6.tgz#c6bb389f9a951f82bd4eb169600105bd2ff9c778" @@ -12549,6 +12740,15 @@ socks-proxy-agent@^7.0.0: debug "^4.3.3" socks "^2.6.2" +socks-proxy-agent@^8.0.3: + version "8.0.5" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz#b9cdb4e7e998509d7659d689ce7697ac21645bee" + integrity sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw== + dependencies: + agent-base "^7.1.2" + debug "^4.3.4" + socks "^2.8.3" + socks@^2.6.2: version "2.7.1" resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" @@ -12557,6 +12757,14 @@ socks@^2.6.2: ip "^2.0.0" smart-buffer "^4.2.0" +socks@^2.8.3: + version "2.8.10" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.10.tgz#23aab4dccc1fdae110aaf4fa51cd190552432dc5" + integrity sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ== + dependencies: + ip-address "^10.1.1" + smart-buffer "^4.2.0" + sonic-boom@^3.0.0, sonic-boom@^3.1.0: version "3.8.0" resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.8.0.tgz#e442c5c23165df897d77c3c14ef3ca40dec66a66" @@ -12698,6 +12906,13 @@ ssri@^10.0.0, ssri@^10.0.1: dependencies: minipass "^7.0.3" +ssri@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-12.0.0.tgz#bcb4258417c702472f8191981d3c8a771fee6832" + integrity sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ== + dependencies: + minipass "^7.0.3" + ssri@^9.0.0, ssri@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" @@ -13041,6 +13256,17 @@ tar@6.2.0, tar@^6.1.11, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^7.4.3: + version "7.5.22" + resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.22.tgz#a696f998136e71487dc3f869a85bba2c67971ba9" + integrity sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA== + dependencies: + "@isaacs/fs-minipass" "^4.0.0" + chownr "^3.0.0" + minipass "^7.1.2" + minizlib "^3.1.0" + yallist "^5.0.0" + temp-dir@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -13145,6 +13371,14 @@ tiny-secp256k1@^1.1.3: elliptic "^6.4.0" nan "^2.13.2" +tinyglobby@^0.2.12: + version "0.2.17" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631" + integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g== + dependencies: + fdir "^6.5.0" + picomatch "^4.0.4" + tmp@0.2.1, tmp@^0.2.1, tmp@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" @@ -13552,6 +13786,13 @@ unique-filename@^3.0.0: dependencies: unique-slug "^4.0.0" +unique-filename@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-4.0.0.tgz#a06534d370e7c977a939cd1d11f7f0ab8f1fed13" + integrity sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ== + dependencies: + unique-slug "^5.0.0" + unique-slug@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" @@ -13566,6 +13807,13 @@ unique-slug@^4.0.0: dependencies: imurmurhash "^0.1.4" +unique-slug@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-5.0.0.tgz#ca72af03ad0dbab4dad8aa683f633878b1accda8" + integrity sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg== + dependencies: + imurmurhash "^0.1.4" + unique-string@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" @@ -13868,6 +14116,13 @@ which@^3.0.0: dependencies: isexe "^2.0.0" +which@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-5.0.0.tgz#d93f2d93f79834d4363c7d0c23e00d07c466c8d6" + integrity sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ== + dependencies: + isexe "^3.1.1" + wide-align@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" @@ -14107,6 +14362,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yallist@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-5.0.0.tgz#00e2de443639ed0d78fd87de0d27469fbcffb533" + integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== + yaml@^1.10.0: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" From 52af4e557e92a4dde546012868d22ecda45fd084 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:34:57 +0000 Subject: [PATCH 02/22] build: update nan to 2.30.0 so native addons compile on Node.js 24 With nan 2.18.0 from the lockfile, tiny-secp256k1 and bstring fail to compile against the Node.js 24 headers and silently fall back to their JavaScript implementations. Production installs resolve the newest nan and build them natively, so CI tested different code than nodes run. Only the lockfile changes, the version ranges stay the same. Co-Authored-By: Claude Opus 5.5 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 833f85e180..fe20bbe682 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10179,9 +10179,9 @@ mz@^2.4.0, mz@^2.7.0: thenify-all "^1.0.0" nan@^2.13.1, nan@^2.13.2: - version "2.18.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" - integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== + version "2.30.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.30.0.tgz#66d75ca6db19616b3f58a6229f06c806c05d4661" + integrity sha512-P5mokDkSvCGBz6mZDD/2l+w9QoICRXdCyZ9ONGmTePr40oihJg3Kpn0YU3twKd6PJnwSlLBWNQeOT6yWEV2c4A== nanoid@^3.3.7: version "3.3.7" From 1aa2c1e0437abbf3bf971e07fb1d0fdac94a5a5e Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:35:57 +0000 Subject: [PATCH 03/22] fix(core-transaction-pool): update better-sqlite3 to 12.11.1 better-sqlite3 9.x compiles as C++17, but the V8 headers shipped with Node 24 require C++20, so the transaction pool's storage cannot be built. Majors 10, 11 and 12 only dropped support for EOL Node.js and Electron versions; the JavaScript API used in `storage.ts` is unchanged. 12.x ships prebuilt binaries for Node 24 (glibc and musl). Pool database files are compatible in both directions between 9.3.0 and 12.11.1. @types/better-sqlite3 is updated to 7.6.13 alongside. Co-Authored-By: Claude Opus 5.5 --- packages/core-transaction-pool/package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/core-transaction-pool/package.json b/packages/core-transaction-pool/package.json index 855f65324c..955a5f87a6 100644 --- a/packages/core-transaction-pool/package.json +++ b/packages/core-transaction-pool/package.json @@ -28,12 +28,12 @@ "@arkecosystem/core-kernel": "3.13.0-rc.1", "@arkecosystem/core-transactions": "3.13.0-rc.1", "@arkecosystem/crypto": "3.13.0-rc.1", - "better-sqlite3": "9.3.0", + "better-sqlite3": "12.11.1", "fs-extra": "8.1.0", "joi": "17.12.1" }, "devDependencies": { - "@types/better-sqlite3": "7.6.9", + "@types/better-sqlite3": "7.6.13", "@types/fs-extra": "8.1.2" }, "engines": { diff --git a/yarn.lock b/yarn.lock index fe20bbe682..3164d35544 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2987,10 +2987,10 @@ dependencies: "@babel/types" "^7.20.7" -"@types/better-sqlite3@7.6.9": - version "7.6.9" - resolved "https://registry.yarnpkg.com/@types/better-sqlite3/-/better-sqlite3-7.6.9.tgz#4bff3eb7c5eaaae26f8099606c69279146561c50" - integrity sha512-FvktcujPDj9XKMJQWFcl2vVl7OdRIqsSRX9b0acWwTmwLK9CF2eqo/FRcmMLNpugKoX/avA6pb7TorDLmpgTnQ== +"@types/better-sqlite3@7.6.13": + version "7.6.13" + resolved "https://registry.yarnpkg.com/@types/better-sqlite3/-/better-sqlite3-7.6.13.tgz#a72387f00d2f53cab699e63f2e2c05453cf953f0" + integrity sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA== dependencies: "@types/node" "*" @@ -4260,10 +4260,10 @@ benchmark@^2.1.4: lodash "^4.17.4" platform "^1.3.3" -better-sqlite3@9.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-9.3.0.tgz#2a8aaad65fa0210a4df5e8a0bcbc9156f6138d56" - integrity sha512-ww73jVpQhRRdS9uMr761ixlkl4bWoXi8hMQlBGhoN6vPNlUHpIsNmw4pKN6kjknlt/wopdvXHvLk1W75BI+n0Q== +better-sqlite3@12.11.1: + version "12.11.1" + resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-12.11.1.tgz#067846efabf7671957fc8a9e8df3be39c6cc0b84" + integrity sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA== dependencies: bindings "^1.5.0" prebuild-install "^7.1.1" From f2b84f34a38283d9d512fab42bc4dc6091177eb7 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:36:57 +0000 Subject: [PATCH 04/22] fix(core-kernel): disable keep-alive on the global http agents Node.js >= 19 enables keep-alive on `http.globalAgent` and `https.globalAgent`. Core's API server destroys the socket once a response has finished (core-api `server.ts`) while still advertising keep-alive, so a client that reuses the pooled socket fails with `ECONNRESET: socket hang up`. Core's own outbound requests hit this when they talk to other Core nodes (peer API port checks) and in webhooks; on Node 24 it also broke 14 of 18 transaction-forging functional tests. Turn keep-alive off on the existing global agents during application bootstrap so every request opens a new connection, as before Node 19. Changing the agents instead of replacing them keeps their other defaults, such as the proxy configuration used with `NODE_USE_ENV_PROXY` and the request timeout. Co-Authored-By: Claude Opus 5.5 --- .../app/register-http-agents.test.ts | 63 +++++++++++++++++++ .../core-kernel/src/bootstrap/app/index.ts | 1 + .../src/bootstrap/app/register-http-agents.ts | 34 ++++++++++ 3 files changed, 98 insertions(+) create mode 100644 __tests__/unit/core-kernel/bootstrap/app/register-http-agents.test.ts create mode 100644 packages/core-kernel/src/bootstrap/app/register-http-agents.ts diff --git a/__tests__/unit/core-kernel/bootstrap/app/register-http-agents.test.ts b/__tests__/unit/core-kernel/bootstrap/app/register-http-agents.test.ts new file mode 100644 index 0000000000..2ae2d1287d --- /dev/null +++ b/__tests__/unit/core-kernel/bootstrap/app/register-http-agents.test.ts @@ -0,0 +1,63 @@ +import "jest-extended"; + +import { Application } from "@packages/core-kernel/src/application"; +import { RegisterHttpAgents } from "@packages/core-kernel/src/bootstrap/app"; +import { Container } from "@packages/core-kernel/src/ioc"; +import http from "http"; +import https from "https"; + +let app: Application; + +const httpAgent = http.globalAgent as any; +const httpsAgent = https.globalAgent as any; +const originalHttpKeepAlive = httpAgent.keepAlive; +const originalHttpsKeepAlive = httpsAgent.keepAlive; + +beforeEach(() => { + app = new Application(new Container()); +}); + +afterEach(() => { + httpAgent.keepAlive = originalHttpKeepAlive; + httpsAgent.keepAlive = originalHttpsKeepAlive; +}); + +describe("RegisterHttpAgents", () => { + it("should disable keep-alive on the global agents without replacing them", async () => { + await app.resolve(RegisterHttpAgents).bootstrap(); + + expect(http.globalAgent).toBe(httpAgent); + expect(https.globalAgent).toBe(httpsAgent); + expect(httpAgent.keepAlive).toBeFalse(); + expect(httpsAgent.keepAlive).toBeFalse(); + }); + + it("should open a new connection for every request", async () => { + await app.resolve(RegisterHttpAgents).bootstrap(); + + const ports = new Set(); + const headers = new Set(); + const server = http.createServer((req, res) => { + ports.add(req.socket.remotePort!); + headers.add(req.headers.connection); + res.end(); + }); + await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve)); + const { port } = server.address() as { port: number }; + + const request = () => + new Promise((resolve, reject) => { + http.get({ host: "127.0.0.1", port, path: "/" }, (res) => { + res.resume(); + res.on("end", resolve); + }).on("error", reject); + }); + + await request(); + await request(); + await new Promise((resolve) => server.close(() => resolve())); + + expect(ports.size).toBe(2); + expect([...headers]).toEqual(["close"]); + }); +}); diff --git a/packages/core-kernel/src/bootstrap/app/index.ts b/packages/core-kernel/src/bootstrap/app/index.ts index 6b379f4cdb..69a3ea536b 100644 --- a/packages/core-kernel/src/bootstrap/app/index.ts +++ b/packages/core-kernel/src/bootstrap/app/index.ts @@ -6,6 +6,7 @@ export * from "./register-base-service-providers"; // Foundation export * from "./register-error-handler"; +export * from "./register-http-agents"; export * from "./register-base-configuration"; export * from "./register-base-bindings"; export * from "./register-base-namespace"; diff --git a/packages/core-kernel/src/bootstrap/app/register-http-agents.ts b/packages/core-kernel/src/bootstrap/app/register-http-agents.ts new file mode 100644 index 0000000000..fc958696c6 --- /dev/null +++ b/packages/core-kernel/src/bootstrap/app/register-http-agents.ts @@ -0,0 +1,34 @@ +import http from "http"; +import https from "https"; + +import { injectable } from "../../ioc"; +import { Bootstrapper } from "../interfaces"; + +// `keepAlive` exists on every Agent but is missing from the @types/node version in use +type KeepAliveAgent = { keepAlive: boolean }; + +/** + * Node.js >= 19 enables keep-alive on the global agents, so requests reuse pooled sockets. + * Core's API server destroys the socket after every response while still advertising + * keep-alive, and a request sent on such a socket fails with `ECONNRESET`. Restore the + * behaviour of earlier Node.js versions and open a new connection per request. + * + * The existing agents are changed instead of replaced, so their other defaults + * (proxy configuration, timeouts) stay intact. + * + * @export + * @class RegisterHttpAgents + * @implements {Bootstrapper} + */ +@injectable() +export class RegisterHttpAgents implements Bootstrapper { + /** + * @returns {Promise} + * @memberof RegisterHttpAgents + */ + public async bootstrap(): Promise { + for (const agent of [http.globalAgent, https.globalAgent]) { + (agent as unknown as KeepAliveAgent).keepAlive = false; + } + } +} From 656c84543196ea7698546ee71c1048142516bb3d Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:37:57 +0000 Subject: [PATCH 05/22] fix(core-p2p): update ws to 7.5.13 Updates ws to the latest 7.x release. The changes since 7.5.10 do not affect the API Core uses, and P2P messages are unchanged. Co-Authored-By: Claude Opus 5.5 --- packages/core-p2p/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/core-p2p/package.json b/packages/core-p2p/package.json index bd901b3cb6..2ef91f03e5 100644 --- a/packages/core-p2p/package.json +++ b/packages/core-p2p/package.json @@ -47,7 +47,7 @@ "protobufjs": "7.2.6", "rate-limiter-flexible": "4.0.1", "semver": "7.5.4", - "ws": "7.5.10" + "ws": "7.5.13" }, "devDependencies": { "@types/fs-extra": "8.1.2", diff --git a/yarn.lock b/yarn.lock index 3164d35544..09542431b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14279,10 +14279,10 @@ write-pkg@4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@7.5.13: + version "7.5.13" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.13.tgz#12aa507eaca76c295c278b1aebf4698ab2c1845f" + integrity sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA== ws@^7.4.6: version "7.5.9" From d3689ff561916fdc1f38f202e0b00b6cfe079e37 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:38:57 +0000 Subject: [PATCH 06/22] fix(core-p2p): update protobufjs to 7.6.6 Updates protobufjs to the latest 7.x release. The committed static code only requires `protobufjs/minimal` and keeps working unchanged. protobufjs-cli is updated to 1.3.3 so that future `yarn build:proto` runs match the runtime. Co-Authored-By: Claude Opus 5.5 --- packages/core-p2p/package.json | 4 +- yarn.lock | 73 +++++++++++++++------------------- 2 files changed, 35 insertions(+), 42 deletions(-) diff --git a/packages/core-p2p/package.json b/packages/core-p2p/package.json index 2ef91f03e5..e010f59e7d 100644 --- a/packages/core-p2p/package.json +++ b/packages/core-p2p/package.json @@ -44,7 +44,7 @@ "joi": "17.12.1", "pluralize": "8.0.0", "pretty-ms": "7.0.1", - "protobufjs": "7.2.6", + "protobufjs": "7.6.6", "rate-limiter-flexible": "4.0.1", "semver": "7.5.4", "ws": "7.5.13" @@ -54,7 +54,7 @@ "@types/hapi__sntp": "3.1.2", "@types/ip": "1.1.3", "@types/semver": "7.5.6", - "protobufjs-cli": "1.1.2" + "protobufjs-cli": "1.3.3" }, "engines": { "node": ">=10.x" diff --git a/yarn.lock b/yarn.lock index 09542431b0..5ea77ec495 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,34 +2662,28 @@ resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== +"@protobufjs/codegen@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.5.tgz#d9315ad7cf3f30aac70bda3c068443dc6f143659" + integrity sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g== -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== +"@protobufjs/eventemitter@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.1.tgz#d512cb26c0ae026091ee2c1167f1be6faf5c842a" + integrity sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg== -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== +"@protobufjs/fetch@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.1.tgz#4d6fc00c8fb64016a5c81b469d549046350f1065" + integrity sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw== dependencies: "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" "@protobufjs/float@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - "@protobufjs/path@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" @@ -2700,10 +2694,10 @@ resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== +"@protobufjs/utf8@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.2.tgz#78d476333d85d5b1c792e257bca74ba080da49a4" + integrity sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug== "@rollup/plugin-babel@5.3.0": version "5.3.0" @@ -9492,10 +9486,10 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" -long@^5.0.0: - version "5.2.3" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" - integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== +long@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/long/-/long-5.3.2.tgz#1d84463095999262d7d7b7f8bfd4a8cc55167f83" + integrity sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA== long@~3: version "3.2.0" @@ -11668,10 +11662,10 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== -protobufjs-cli@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/protobufjs-cli/-/protobufjs-cli-1.1.2.tgz#b32a7dc6aa3866cc103278539561bb4758249c8b" - integrity sha512-8ivXWxT39gZN4mm4ArQyJrRgnIwZqffBWoLDsE21TmMcKI3XwJMV4lEF2WU02C4JAtgYYc2SfJIltelD8to35g== +protobufjs-cli@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/protobufjs-cli/-/protobufjs-cli-1.3.3.tgz#72ed54b9b634e9191351d2a4db68363dde76fc4a" + integrity sha512-zwmt6JeStPjeofZbl+QADexAVzP1EgsIAsO7mCfKkW/8oBxHwgTqJ1aD7zDrcCC0Nb+SLWSvCR3RDaKgIO3P8w== dependencies: chalk "^4.0.0" escodegen "^1.13.0" @@ -11684,23 +11678,22 @@ protobufjs-cli@1.1.2: tmp "^0.2.1" uglify-js "^3.7.7" -protobufjs@7.2.6: - version "7.2.6" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" - integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== +protobufjs@7.6.6: + version "7.6.6" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.6.6.tgz#7a3923e8e32b0ee2ff689f8eed6e455c090ac67e" + integrity sha512-dYDWdjSl5RNb7SgPxGQcRU+GtvP7s2fpkrY0r432PcOIaZ0/rBcxEZnQN67iJhFuQiVw754JDoPruPCNdGsbjg== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" + "@protobufjs/codegen" "^2.0.5" + "@protobufjs/eventemitter" "^1.1.1" + "@protobufjs/fetch" "^1.1.1" "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" "@protobufjs/path" "^1.1.2" "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" + "@protobufjs/utf8" "^1.1.1" "@types/node" ">=13.7.0" - long "^5.0.0" + long "^5.3.2" protocols@^2.0.0, protocols@^2.0.1: version "2.0.1" From 076b73e69b4824d47a69bca2bf36eefda08847f7 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:39:57 +0000 Subject: [PATCH 07/22] fix: update joi to 17.13.8 Updates joi to the latest 17.x release. Same major; schema behaviour is unchanged for the features Core uses. Co-Authored-By: Claude Opus 5.5 --- packages/core-api/package.json | 2 +- packages/core-blockchain/package.json | 2 +- packages/core-cli/package.json | 2 +- packages/core-database/package.json | 2 +- packages/core-forger/package.json | 2 +- packages/core-kernel/package.json | 2 +- packages/core-logger-pino/package.json | 2 +- packages/core-magistrate-api/package.json | 2 +- packages/core-p2p/package.json | 2 +- packages/core-snapshots/package.json | 2 +- packages/core-state/package.json | 2 +- packages/core-transaction-pool/package.json | 2 +- packages/core-transactions/package.json | 2 +- packages/core-webhooks/package.json | 2 +- packages/core/package.json | 2 +- yarn.lock | 8 ++++---- 16 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/core-api/package.json b/packages/core-api/package.json index 6cba0a3334..e9fe0ce5be 100644 --- a/packages/core-api/package.json +++ b/packages/core-api/package.json @@ -29,7 +29,7 @@ "@hapi/boom": "9.1.4", "@hapi/hapi": "20.1.5", "@hapi/hoek": "9.2.0", - "joi": "17.12.1", + "joi": "17.13.8", "nanomatch": "1.2.13", "node-cache": "5.1.2", "qs": "6.11.2", diff --git a/packages/core-blockchain/package.json b/packages/core-blockchain/package.json index 38104bf0c0..f5f5fd1f97 100644 --- a/packages/core-blockchain/package.json +++ b/packages/core-blockchain/package.json @@ -28,7 +28,7 @@ "@arkecosystem/core-state": "3.13.0-rc.1", "@arkecosystem/core-transactions": "3.13.0-rc.1", "@arkecosystem/crypto": "3.13.0-rc.1", - "joi": "17.12.1", + "joi": "17.13.8", "xstate": "4.38.3" }, "engines": { diff --git a/packages/core-cli/package.json b/packages/core-cli/package.json index f6f175adbe..1edd5c5dc1 100644 --- a/packages/core-cli/package.json +++ b/packages/core-cli/package.json @@ -35,7 +35,7 @@ "glob": "7.1.7", "got": "11.8.5", "inversify": "5.1.1", - "joi": "17.12.1", + "joi": "17.13.8", "kleur": "4.1.5", "latest-version": "5.1.0", "listr": "0.14.3", diff --git a/packages/core-database/package.json b/packages/core-database/package.json index ec1254ed3b..c7a87ec763 100644 --- a/packages/core-database/package.json +++ b/packages/core-database/package.json @@ -26,7 +26,7 @@ "@arkecosystem/crypto": "3.13.0-rc.1", "@arkecosystem/utils": "1.3.1", "dayjs": "1.11.10", - "joi": "17.12.1", + "joi": "17.13.8", "pg": "8.11.3", "reflect-metadata": "0.2.1", "typeorm": "0.2.25" diff --git a/packages/core-forger/package.json b/packages/core-forger/package.json index c83e140554..d55be1903b 100644 --- a/packages/core-forger/package.json +++ b/packages/core-forger/package.json @@ -26,7 +26,7 @@ "@arkecosystem/core-p2p": "3.13.0-rc.1", "@arkecosystem/core-transactions": "3.13.0-rc.1", "@arkecosystem/crypto": "3.13.0-rc.1", - "joi": "17.12.1", + "joi": "17.13.8", "node-forge": "1.3.1", "wif": "2.0.6" }, diff --git a/packages/core-kernel/package.json b/packages/core-kernel/package.json index ed99f786e7..d7a9fac5c1 100644 --- a/packages/core-kernel/package.json +++ b/packages/core-kernel/package.json @@ -35,7 +35,7 @@ "import-fresh": "3.3.0", "inversify": "5.1.1", "ipaddr.js": "2.1.0", - "joi": "17.12.1", + "joi": "17.13.8", "log-process-errors": "5.1.2", "nanomatch": "1.2.13", "nsfw": "2.2.4", diff --git a/packages/core-logger-pino/package.json b/packages/core-logger-pino/package.json index e68c7e19e6..556294c025 100644 --- a/packages/core-logger-pino/package.json +++ b/packages/core-logger-pino/package.json @@ -22,7 +22,7 @@ "dependencies": { "@arkecosystem/core-kernel": "3.13.0-rc.1", "chalk": "4.1.2", - "joi": "17.12.1", + "joi": "17.13.8", "pino": "8.7.0", "pino-pretty": "9.1.1", "pump": "3.0.0", diff --git a/packages/core-magistrate-api/package.json b/packages/core-magistrate-api/package.json index 2164831b3d..0f4ce4561e 100644 --- a/packages/core-magistrate-api/package.json +++ b/packages/core-magistrate-api/package.json @@ -29,7 +29,7 @@ "@arkecosystem/crypto": "3.13.0-rc.1", "@hapi/boom": "9.1.4", "@hapi/hapi": "20.1.5", - "joi": "17.12.1" + "joi": "17.13.8" }, "devDependencies": { "@types/hapi__boom": "7.4.1" diff --git a/packages/core-p2p/package.json b/packages/core-p2p/package.json index e010f59e7d..99c3589e6c 100644 --- a/packages/core-p2p/package.json +++ b/packages/core-p2p/package.json @@ -41,7 +41,7 @@ "delay": "4.4.1", "ip": "2.0.1", "ipaddr.js": "2.1.0", - "joi": "17.12.1", + "joi": "17.13.8", "pluralize": "8.0.0", "pretty-ms": "7.0.1", "protobufjs": "7.6.6", diff --git a/packages/core-snapshots/package.json b/packages/core-snapshots/package.json index dbefa69f2b..e1d5edd8be 100644 --- a/packages/core-snapshots/package.json +++ b/packages/core-snapshots/package.json @@ -25,7 +25,7 @@ "@arkecosystem/crypto": "3.13.0-rc.1", "bytebuffer": "5.0.1", "fs-extra": "8.1.0", - "joi": "17.12.1", + "joi": "17.13.8", "msgpack-lite": "0.1.26", "ora": "4.1.1", "pg-query-stream": "3.4.2", diff --git a/packages/core-state/package.json b/packages/core-state/package.json index 54269066da..97370005da 100644 --- a/packages/core-state/package.json +++ b/packages/core-state/package.json @@ -27,7 +27,7 @@ "@arkecosystem/core-transactions": "3.13.0-rc.1", "@arkecosystem/crypto": "3.13.0-rc.1", "immutable": "5.0.0-beta.5", - "joi": "17.12.1" + "joi": "17.13.8" }, "engines": { "node": ">=10.x" diff --git a/packages/core-transaction-pool/package.json b/packages/core-transaction-pool/package.json index 955a5f87a6..dfae8867c4 100644 --- a/packages/core-transaction-pool/package.json +++ b/packages/core-transaction-pool/package.json @@ -30,7 +30,7 @@ "@arkecosystem/crypto": "3.13.0-rc.1", "better-sqlite3": "12.11.1", "fs-extra": "8.1.0", - "joi": "17.12.1" + "joi": "17.13.8" }, "devDependencies": { "@types/better-sqlite3": "7.6.13", diff --git a/packages/core-transactions/package.json b/packages/core-transactions/package.json index 68d2063f4e..7034d7a0ca 100644 --- a/packages/core-transactions/package.json +++ b/packages/core-transactions/package.json @@ -23,7 +23,7 @@ "@arkecosystem/core-database": "3.13.0-rc.1", "@arkecosystem/core-kernel": "3.13.0-rc.1", "@arkecosystem/crypto": "3.13.0-rc.1", - "joi": "17.12.1" + "joi": "17.13.8" }, "engines": { "node": ">=10.x" diff --git a/packages/core-webhooks/package.json b/packages/core-webhooks/package.json index 15145b2c40..7861b465ee 100644 --- a/packages/core-webhooks/package.json +++ b/packages/core-webhooks/package.json @@ -25,7 +25,7 @@ "@hapi/boom": "9.0.0", "@hapi/hapi": "20.1.5", "fs-extra": "8.1.0", - "joi": "17.12.1", + "joi": "17.13.8", "lowdb": "1.0.0", "uuid": "9.0.1" }, diff --git a/packages/core/package.json b/packages/core/package.json index eb92180eba..48630d635b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -64,7 +64,7 @@ "env-paths": "2.2.1", "envfile": "5.2.0", "fs-extra": "8.1.0", - "joi": "17.12.1", + "joi": "17.13.8", "kleur": "4.1.5", "ngrok": "4.3.3", "prompts": "2.4.0", diff --git a/yarn.lock b/yarn.lock index 5ea77ec495..a7570685c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8862,10 +8862,10 @@ jju@^1.1.0: resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== -joi@17.12.1: - version "17.12.1" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.1.tgz#3347ecf4cd3301962d42191c021b165eef1f395b" - integrity sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ== +joi@17.13.8: + version "17.13.8" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.8.tgz#92069d521eea09fd709d8abbb86b0ef02862224f" + integrity sha512-iPKOGmiRw1jxf/JOPwxmCcUQAOdF359mdzYiP2DJ+TMX0YK2zjK3D+zYOaGjpumWxOFF/l2xVWjRVK5bGSLdEw== dependencies: "@hapi/hoek" "^9.3.0" "@hapi/topo" "^5.1.0" From a7c9fae160df5093cfb3d553d813b7d38d1042c6 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:40:57 +0000 Subject: [PATCH 08/22] fix(core-api): update qs to 6.16.1 Core only uses `qs.stringify` with `encode: false` to build pagination links; the generated links are unchanged. Co-Authored-By: Claude Opus 5.5 --- packages/core-api/package.json | 2 +- yarn.lock | 156 +++++++++++++++++++++++++++++---- 2 files changed, 139 insertions(+), 19 deletions(-) diff --git a/packages/core-api/package.json b/packages/core-api/package.json index e9fe0ce5be..05f342f883 100644 --- a/packages/core-api/package.json +++ b/packages/core-api/package.json @@ -32,7 +32,7 @@ "joi": "17.13.8", "nanomatch": "1.2.13", "node-cache": "5.1.2", - "qs": "6.11.2", + "qs": "6.16.1", "rate-limiter-flexible": "4.0.1", "semaphore": "1.1.0", "semver": "7.5.4" diff --git a/yarn.lock b/yarn.lock index a7570685c0..66fe17d106 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4685,7 +4685,15 @@ cacheable-request@^7.0.2: normalize-url "^6.0.1" responselike "^2.0.0" -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4: +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bind@^1.0.2, call-bind@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== @@ -4694,6 +4702,14 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4: get-intrinsic "^1.2.1" set-function-length "^1.1.1" +call-bound@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + callsite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" @@ -5981,6 +5997,15 @@ dotenv@~16.3.1: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.2.tgz#3cb611ce5a63002dbabf7c281bc331f69d28f03f" integrity sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ== +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + duplexer3@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" @@ -6172,6 +6197,23 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz#a2d0b373205724dfa525d23b0c3e1b1ca582c99b" + integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== + dependencies: + es-errors "^1.3.0" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -7088,7 +7130,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== @@ -7098,6 +7140,22 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" +get-intrinsic@^1.2.5, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -7123,6 +7181,14 @@ get-port@5.1.1: resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + get-stdin@8.0.0, get-stdin@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" @@ -7396,6 +7462,11 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + got@11.8.5: version "11.8.5" resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" @@ -7530,6 +7601,11 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + has-tostringtag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" @@ -7602,6 +7678,13 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" +hasown@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003" + integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== + dependencies: + function-bind "^1.1.2" + help-me@^4.0.1: version "4.2.0" resolved "https://registry.yarnpkg.com/help-me/-/help-me-4.2.0.tgz#50712bfd799ff1854ae1d312c36eafcea85b0563" @@ -9742,6 +9825,11 @@ marked@^4.0.10, marked@^4.0.16: resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -10719,10 +10807,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.9.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== +object-inspect@^1.13.3, object-inspect@^1.13.4: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== object-path@^0.11.5: version "0.11.8" @@ -11763,12 +11851,13 @@ qqjs@^0.3.10: tmp "^0.1.0" write-json-file "^4.1.1" -qs@6.11.2: - version "6.11.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" - integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== +qs@6.16.1: + version "6.16.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.16.1.tgz#0643e17993e551759c85078e1f0bc4b9fe908020" + integrity sha512-5Px6J7rfHBAGUhNQ3es4YzcOdBBw0SDcVtThJml4RdnKw4tKs2epA0kPZ+K8X+WiHktT93RHVcQ/3ym5aTCgtg== dependencies: - side-channel "^1.0.4" + es-define-property "^1.0.1" + side-channel "^1.1.1" querystringify@^2.1.1: version "2.2.0" @@ -12604,14 +12693,45 @@ shimmer@^1.1.0, shimmer@^1.2.0: resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== +side-channel-list@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.1.tgz#c2e0b5a14a540aebee3bbc6c3f8666cc9b509127" + integrity sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.4" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.1.tgz#ea02c62e05dc4bea67d4442f0fb71ee192f8e0ab" + integrity sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.4" + side-channel-list "^1.0.1" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" signal-exit@3.0.7, signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" From 6d8239088defcc794f8d2f11b1b1b42fdc237272 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:41:57 +0000 Subject: [PATCH 09/22] fix(core-forger): update node-forge to 1.4.2 Core only uses random bytes, AES-CBC, PBKDF2 and base64 for BIP38. Of these, only AES-CBC decryption changed: it now rejects invalid padding, which Core's own encrypt and decrypt round trip never produces. Co-Authored-By: Claude Opus 5.5 --- packages/core-forger/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/core-forger/package.json b/packages/core-forger/package.json index d55be1903b..8813ea600f 100644 --- a/packages/core-forger/package.json +++ b/packages/core-forger/package.json @@ -27,7 +27,7 @@ "@arkecosystem/core-transactions": "3.13.0-rc.1", "@arkecosystem/crypto": "3.13.0-rc.1", "joi": "17.13.8", - "node-forge": "1.3.1", + "node-forge": "1.4.2", "wif": "2.0.6" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 66fe17d106..2cde8728d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10404,10 +10404,10 @@ node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-forge@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== +node-forge@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.4.2.tgz#9988b154241e3b401a969a76cfb7aca7ddb5e70b" + integrity sha512-rRtAR5XLJ8gCKd9du4qrKAsgCG1ObGP4gLeNJMa4vYSeq4bmBMOJk5IHkrviBV0q7uoAJlVd8HEQYQSVUb4FGQ== node-gyp-build@^4.3.0: version "4.8.0" From f488469b03ef929ef057edfbe61e47db9f029827 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:42:57 +0000 Subject: [PATCH 10/22] fix: update reflect-metadata to 0.2.2 npm marks reflect-metadata 0.2.1 as deprecated ("This version has a critical bug in fallback handling. Please upgrade to reflect-metadata@0.2.2 or newer."), so yarn prints that warning for core-cli, core-database and core-kernel on every install, including `yarn global add @arkecosystem/core`. The fallback is used when an older reflect-metadata without a metadata registry was loaded first. typeorm still depends on reflect-metadata 0.1.x (0.1.14 is installed nested under it), so that combination can occur in Core. In 0.2.1 the fallback reports no metadata for a property once it has recorded metadata for another property of the same object; 0.2.2 fixes that, and its only other code change is in the random bytes helper. Co-Authored-By: Claude Opus 5.5 --- packages/core-cli/package.json | 2 +- packages/core-database/package.json | 2 +- packages/core-kernel/package.json | 2 +- yarn.lock | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/core-cli/package.json b/packages/core-cli/package.json index 1edd5c5dc1..500eb9302d 100644 --- a/packages/core-cli/package.json +++ b/packages/core-cli/package.json @@ -43,7 +43,7 @@ "ora": "4.1.1", "prompts": "2.4.0", "read-last-lines": "1.8.0", - "reflect-metadata": "0.2.1", + "reflect-metadata": "0.2.2", "semver": "7.5.4", "tar": "6.2.0", "type-fest": "0.21.3", diff --git a/packages/core-database/package.json b/packages/core-database/package.json index c7a87ec763..c1178604ff 100644 --- a/packages/core-database/package.json +++ b/packages/core-database/package.json @@ -28,7 +28,7 @@ "dayjs": "1.11.10", "joi": "17.13.8", "pg": "8.11.3", - "reflect-metadata": "0.2.1", + "reflect-metadata": "0.2.2", "typeorm": "0.2.25" }, "engines": { diff --git a/packages/core-kernel/package.json b/packages/core-kernel/package.json index d7a9fac5c1..8a9cccfa31 100644 --- a/packages/core-kernel/package.json +++ b/packages/core-kernel/package.json @@ -39,7 +39,7 @@ "log-process-errors": "5.1.2", "nanomatch": "1.2.13", "nsfw": "2.2.4", - "reflect-metadata": "0.2.1", + "reflect-metadata": "0.2.2", "semver": "7.5.4", "type-fest": "0.21.3" }, diff --git a/yarn.lock b/yarn.lock index 2cde8728d2..1ea7b1de83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12088,10 +12088,10 @@ redeyed@~2.1.0: dependencies: esprima "~4.0.0" -reflect-metadata@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.1.tgz#8d5513c0f5ef2b4b9c3865287f3c0940c1f67f74" - integrity sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw== +reflect-metadata@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" + integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== reflect-metadata@^0.1.13: version "0.1.14" From db193c9e6c14d49e41a9badfa8fb7e69878bd755 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:43:57 +0000 Subject: [PATCH 11/22] chore(deps): update @hapi/boom to 9.1.4 in core-p2p and core-webhooks npm marks @hapi/boom 9.0.0 as deprecated ("no longer supported or maintained"), so every install prints that warning twice. core-api and core-magistrate-api already use 9.1.4 and hapi 20 itself depends on ^9.1.0; the changes since 9.0.0 do not affect how Core creates or checks Boom errors. Co-Authored-By: Claude Opus 5.5 --- packages/core-p2p/package.json | 2 +- packages/core-webhooks/package.json | 2 +- yarn.lock | 7 ------- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/packages/core-p2p/package.json b/packages/core-p2p/package.json index 99c3589e6c..c4d83a2ad2 100644 --- a/packages/core-p2p/package.json +++ b/packages/core-p2p/package.json @@ -31,7 +31,7 @@ "@arkecosystem/core-kernel": "3.13.0-rc.1", "@arkecosystem/core-state": "3.13.0-rc.1", "@arkecosystem/crypto": "3.13.0-rc.1", - "@hapi/boom": "9.0.0", + "@hapi/boom": "9.1.4", "@hapi/bounce": "2.0.0", "@hapi/hapi": "20.1.5", "@hapi/hoek": "9.2.0", diff --git a/packages/core-webhooks/package.json b/packages/core-webhooks/package.json index 7861b465ee..30aa32350b 100644 --- a/packages/core-webhooks/package.json +++ b/packages/core-webhooks/package.json @@ -22,7 +22,7 @@ "dependencies": { "@arkecosystem/core-kernel": "3.13.0-rc.1", "@arkecosystem/crypto": "3.13.0-rc.1", - "@hapi/boom": "9.0.0", + "@hapi/boom": "9.1.4", "@hapi/hapi": "20.1.5", "fs-extra": "8.1.0", "joi": "17.13.8", diff --git a/yarn.lock b/yarn.lock index 1ea7b1de83..e7821863a9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1465,13 +1465,6 @@ dependencies: "@hapi/hoek" "9.x.x" -"@hapi/boom@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.0.0.tgz#28f9e77ecf2dea1fe3a8982b9d8827aa5137e33a" - integrity sha512-D+Or4yahLq3L7D1Jf0fR1+Lgr+HPK1lej8tc6hS/fBLmK66XdpvTyKv8YUR5ls1GeQy+KGtbpKAs+ZxyzNtUyA== - dependencies: - "@hapi/hoek" "9.x.x" - "@hapi/boom@9.1.4", "@hapi/boom@9.x.x", "@hapi/boom@^9.1.0": version "9.1.4" resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6" From 547abb396f7d142ca9d8e5442d79bbd37070ca1c Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:44:57 +0000 Subject: [PATCH 12/22] fix(core-kernel): update @pm2/io to 6.1.0 @pm2/io 6 drops the tracing support built on @opencensus, which pulled in uuid@3, and npm reports that as deprecated three times during every install. Core only registers process actions through `pmx.action()`, which is unchanged in 6.x; process error handling, exit codes and IPC messages behave as in 5.0.2. Co-Authored-By: Claude Opus 5.5 --- packages/core-kernel/package.json | 2 +- yarn.lock | 77 +++---------------------------- 2 files changed, 7 insertions(+), 72 deletions(-) diff --git a/packages/core-kernel/package.json b/packages/core-kernel/package.json index 8a9cccfa31..1c8c1e5d9b 100644 --- a/packages/core-kernel/package.json +++ b/packages/core-kernel/package.json @@ -23,7 +23,7 @@ "dependencies": { "@arkecosystem/crypto": "3.13.0-rc.1", "@arkecosystem/utils": "1.3.1", - "@pm2/io": "5.0.2", + "@pm2/io": "6.1.0", "chalk": "4.1.2", "cron": "1.8.2", "dayjs": "1.11.10", diff --git a/yarn.lock b/yarn.lock index e7821863a9..b23efc9344 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2565,36 +2565,6 @@ dependencies: "@octokit/openapi-types" "^18.0.0" -"@opencensus/core@0.0.9": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@opencensus/core/-/core-0.0.9.tgz#b16f775435ee309433e4126af194d37313fc93b3" - integrity sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q== - dependencies: - continuation-local-storage "^3.2.1" - log-driver "^1.2.7" - semver "^5.5.0" - shimmer "^1.2.0" - uuid "^3.2.1" - -"@opencensus/core@^0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@opencensus/core/-/core-0.0.8.tgz#df01f200c2d2fbfe14dae129a1a86fb87286db92" - integrity sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ== - dependencies: - continuation-local-storage "^3.2.1" - log-driver "^1.2.7" - semver "^5.5.0" - shimmer "^1.2.0" - uuid "^3.2.1" - -"@opencensus/propagation-b3@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz#0751e6fd75f09400d9d3c419001e9e15a0df68e9" - integrity sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A== - dependencies: - "@opencensus/core" "^0.0.8" - uuid "^3.2.1" - "@parcel/watcher@2.0.4": version "2.0.4" resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" @@ -2608,13 +2578,11 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@pm2/io@5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@pm2/io/-/io-5.0.2.tgz#5e4177281280082d7c490bb776fad7f8448c6bca" - integrity sha512-XAvrNoQPKOyO/jJyCu8jPhLzlyp35MEf7w/carHXmWKddPzeNOFSEpSEqMzPDawsvpxbE+i918cNN+MwgVsStA== +"@pm2/io@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@pm2/io/-/io-6.1.0.tgz#37ea7908e2a1dd7b88862f60d98d8b1f495ee16a" + integrity sha512-IxHuYURa3+FQ6BKePlgChZkqABUKFYH6Bwbw7V/pWU1pP6iR1sCI26l7P9ThUEB385ruZn/tZS3CXDUF5IA1NQ== dependencies: - "@opencensus/core" "0.0.9" - "@opencensus/propagation-b3" "0.0.8" async "~2.6.1" debug "~4.3.1" eventemitter2 "^6.3.1" @@ -4008,14 +3976,6 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-listener@^0.6.0: - version "0.6.10" - resolved "https://registry.yarnpkg.com/async-listener/-/async-listener-0.6.10.tgz#a7c97abe570ba602d782273c0de60a51e3e17cbc" - integrity sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw== - dependencies: - semver "^5.3.0" - shimmer "^1.1.0" - async@^3.2.3: version "3.2.5" resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" @@ -5278,14 +5238,6 @@ content-type@^2.1.0: resolved "https://registry.yarnpkg.com/content-type/-/content-type-2.1.0.tgz#d9389c43c0a8cf6a355db464d21e07092a40493a" integrity sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag== -continuation-local-storage@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz#11f613f74e914fe9b34c92ad2d28fe6ae1db7ffb" - integrity sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA== - dependencies: - async-listener "^0.6.0" - emitter-listener "^1.1.1" - conventional-changelog-angular@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" @@ -6069,13 +6021,6 @@ elliptic@^6.4.0: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emitter-listener@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8" - integrity sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ== - dependencies: - shimmer "^1.2.0" - emittery@^0.7.1: version "0.7.2" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" @@ -9513,11 +9458,6 @@ lodash@4, lodash@4.x, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-driver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" - integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== - log-process-errors@5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/log-process-errors/-/log-process-errors-5.1.2.tgz#5d0f195309d9c725a010587527ade00db1fe1646" @@ -12566,7 +12506,7 @@ semver-utils@^1.1.4: resolved "https://registry.yarnpkg.com/semver-utils/-/semver-utils-1.1.4.tgz#cf0405e669a57488913909fc1c3f29bf2a4871e2" integrity sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA== -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== @@ -12681,7 +12621,7 @@ shiki@^0.10.1: vscode-oniguruma "^1.6.1" vscode-textmate "5.2.0" -shimmer@^1.1.0, shimmer@^1.2.0: +shimmer@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== @@ -14047,11 +13987,6 @@ uuid@9.0.1, uuid@^9.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== -uuid@^3.2.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - "uuid@^7.0.0 || ^8.0.0", uuid@^8.3.0: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" From 9342319f7ccd735522b5a0668cef4fd3eec72eaf Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:45:57 +0000 Subject: [PATCH 13/22] fix(core-webhooks): update uuid to 11.1.1 npm marks uuid 10 and below as unsupported, so every install prints a deprecation warning for core-webhooks' uuid 9.0.1. uuid 11 still ships a CommonJS build, and `v4()`, the only function Core uses to create webhook ids, is unchanged. Co-Authored-By: Claude Opus 5.5 --- packages/core-webhooks/package.json | 2 +- yarn.lock | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/core-webhooks/package.json b/packages/core-webhooks/package.json index 30aa32350b..1cff58866c 100644 --- a/packages/core-webhooks/package.json +++ b/packages/core-webhooks/package.json @@ -27,7 +27,7 @@ "fs-extra": "8.1.0", "joi": "17.13.8", "lowdb": "1.0.0", - "uuid": "9.0.1" + "uuid": "11.1.1" }, "devDependencies": { "@types/fs-extra": "8.1.2", diff --git a/yarn.lock b/yarn.lock index b23efc9344..bcaa0664b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13982,16 +13982,21 @@ util@0.12.4: safe-buffer "^5.1.2" which-typed-array "^1.1.2" -uuid@9.0.1, uuid@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== +uuid@11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.1.tgz#f6d81d2e1c65d00762e5e29b16c5d2d995e208ad" + integrity sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ== "uuid@^7.0.0 || ^8.0.0", uuid@^8.3.0: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + v8-compile-cache@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" From 1f3eb0faff6868e63b49ab05e4b2f98d2cc37545 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:46:57 +0000 Subject: [PATCH 14/22] fix(core-cli): update tar to 6.2.1 Updates tar to the latest 6.x release. tar only extracts plugin archives the operator installs with `ark plugin:install`; the `extract()` call used there is unchanged. Co-Authored-By: Claude Opus 5.5 --- packages/core-cli/package.json | 2 +- yarn.lock | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/core-cli/package.json b/packages/core-cli/package.json index 500eb9302d..d583542b02 100644 --- a/packages/core-cli/package.json +++ b/packages/core-cli/package.json @@ -45,7 +45,7 @@ "read-last-lines": "1.8.0", "reflect-metadata": "0.2.2", "semver": "7.5.4", - "tar": "6.2.0", + "tar": "6.2.1", "type-fest": "0.21.3", "yargs-parser": "21.1.1" }, diff --git a/yarn.lock b/yarn.lock index bcaa0664b1..c0c53d4a07 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13290,7 +13290,19 @@ tar@6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" -tar@6.2.0, tar@^6.1.11, tar@^6.1.2: +tar@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tar@^6.1.11, tar@^6.1.2: version "6.2.0" resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== From 0be03bfe70b3ad19d611cc02ad81a9280328ca89 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:47:57 +0000 Subject: [PATCH 15/22] fix(core-snapshots): declare pg as a dependency pg-query-stream depends on pg-cursor, which lists `pg` as a peer dependency and requires `pg/lib/*` at runtime. core-snapshots never declared `pg`, so every install printed an "unmet peer dependency" warning and the module was only found because core-database's copy is hoisted. Declare the same pg version core-database uses. Co-Authored-By: Claude Opus 5.5 --- packages/core-snapshots/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core-snapshots/package.json b/packages/core-snapshots/package.json index e1d5edd8be..6435c22492 100644 --- a/packages/core-snapshots/package.json +++ b/packages/core-snapshots/package.json @@ -28,6 +28,7 @@ "joi": "17.13.8", "msgpack-lite": "0.1.26", "ora": "4.1.1", + "pg": "8.11.3", "pg-query-stream": "3.4.2", "pluralize": "8.0.0", "typeorm": "0.2.25", From cad137c56b585dceebc535ac6d8218242aa43aa7 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:48:57 +0000 Subject: [PATCH 16/22] fix(core): raise the pm2 peer dependency to ^7.0.0 `ark reinstall` installs the newest pm2 that satisfies this range globally (Installer.installPeerDependencies -> installRangeLatest). With `^4.5.0` that is pm2 4.5.6, which is no longer maintained and prints a `util._extend` deprecation warning on every command under Node 24. install.sh already installs the latest pm2, so fresh installations run pm2 7 and this aligns `ark reinstall` with them. Mark the peer dependency as optional: install.sh installs pm2 for root, outside the global folder `yarn global add @arkecosystem/core` sees, so every install printed an "unmet peer dependency" warning. The CLI still reads the range to install pm2 on `ark reinstall`. `ark update` is not affected: it passes the channel dist-tag to `yarn info @ peerDependencies`, which returns no data for a dist-tag in yarn 1, so it never installs peer dependencies. The pm2 commands used by the process manager (start, jlist, id, trigger, reload, restart, reset, stop, delete, flush, reloadLogs, ping, update) work unchanged with pm2 7.1.0. Co-Authored-By: Claude Opus 5.5 --- packages/core/package.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index 48630d635b..060772aebd 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -72,7 +72,12 @@ "wif": "2.0.6" }, "peerDependencies": { - "pm2": "^4.5.0" + "pm2": "^7.0.0" + }, + "peerDependenciesMeta": { + "pm2": { + "optional": true + } }, "engines": { "node": ">=10.x" From 6116540f521c2ce255ea104843ce35c21ecc7a1a Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:49:57 +0000 Subject: [PATCH 17/22] refactor(core)!: remove the relay:share command and ngrok `relay:share` only exposed a local relay through an ngrok tunnel, but the ngrok package it needs is a liability for every installation: - ngrok 4.3.3 has a postinstall script that downloads the deprecated ngrok v2 agent (a 14 MB archive from bin.equinox.io) on every Core install and exits with code 1 if that download fails, which aborts the whole `yarn global add`. - Commands are discovered eagerly, so the module was loaded on every `ark` invocation, not only for `relay:share`. Operators who want to share a relay can run the ngrok agent themselves. BREAKING CHANGE: the `ark relay:share` command has been removed. Co-Authored-By: Claude Opus 5.5 --- .../unit/core/commands/relay-share.test.ts | 20 ----- packages/core/package.json | 1 - packages/core/src/commands/relay-share.ts | 70 --------------- yarn.lock | 88 +------------------ 4 files changed, 2 insertions(+), 177 deletions(-) delete mode 100644 __tests__/unit/core/commands/relay-share.test.ts delete mode 100644 packages/core/src/commands/relay-share.ts diff --git a/__tests__/unit/core/commands/relay-share.test.ts b/__tests__/unit/core/commands/relay-share.test.ts deleted file mode 100644 index 48ff56efa8..0000000000 --- a/__tests__/unit/core/commands/relay-share.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Console } from "@arkecosystem/core-test-framework"; -import { Command } from "@packages/core/src/commands/relay-share"; -import ngrok from "ngrok"; - -let cli; -beforeEach(() => (cli = new Console())); - -describe("ShareCommand", () => { - it("should throw if the process does not exist", async () => { - const spyConnect = jest.spyOn(ngrok, "connect").mockImplementation(undefined); - - await cli.execute(Command); - - expect(spyConnect).toHaveBeenCalledWith({ - addr: 4003, - proto: "http", - region: "eu", - }); - }); -}); diff --git a/packages/core/package.json b/packages/core/package.json index 060772aebd..682546c0ce 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -66,7 +66,6 @@ "fs-extra": "8.1.0", "joi": "17.13.8", "kleur": "4.1.5", - "ngrok": "4.3.3", "prompts": "2.4.0", "type-fest": "0.21.3", "wif": "2.0.6" diff --git a/packages/core/src/commands/relay-share.ts b/packages/core/src/commands/relay-share.ts deleted file mode 100644 index 295903c719..0000000000 --- a/packages/core/src/commands/relay-share.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { Commands, Container } from "@arkecosystem/core-cli"; -import Joi from "joi"; -import ngrok from "ngrok"; - -/** - * @export - * @class Command - * @extends {Commands.Command} - */ -@Container.injectable() -export class Command extends Commands.Command { - /** - * The console command signature. - * - * @type {string} - * @memberof Command - */ - public signature: string = "relay:share"; - - /** - * The console command description. - * - * @type {string} - * @memberof Command - */ - public description: string = "Share the Relay via ngrok."; - - /** - * Indicates whether the command requires a network to be present. - * - * @type {boolean} - * @memberof Command - */ - public requiresNetwork: boolean = false; - - /** - * Configure the console command. - * - * @returns {void} - * @memberof Command - */ - public configure(): void { - this.definition - .setFlag("proto", "Choose one of the available protocols (http|tcp|tls).", Joi.string().default("http")) - .setFlag("addr", "Port or network address.", Joi.string().default(4003)) - .setFlag("auth", "HTTP basic authentication for tunnel.", Joi.string()) - .setFlag("subdomain", "Reserved tunnel name https://core.ngrok.io.", Joi.string()) - .setFlag("authtoken", "Your authtoken from ngrok.com.", Joi.string()) - .setFlag("region", "Choose one of the ngrok regions (us|eu|au|ap).", Joi.string().default("eu")); - } - - /** - * Execute the console command. - * - * @returns {Promise} - * @memberof Command - */ - public async execute(): Promise { - const url: string = await ngrok.connect({ - proto: this.getFlag("proto"), - addr: this.getFlag("addr"), - auth: this.getFlag("auth"), - subdomain: this.getFlag("subdomain"), - authtoken: this.getFlag("authtoken"), - region: this.getFlag("region"), - }); - - this.components.info(`Public access to your API: ${url}`); - } -} diff --git a/yarn.lock b/yarn.lock index c0c53d4a07..300a4a04bf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3229,11 +3229,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.5.tgz#59738bf30b31aea1faa2df7f4a5f55613750cf00" integrity sha512-hkzMMD3xu6BrJpGVLeQ3htQQNAcOrJjX7WFmtK8zWQpz2UJf13LCFF2ALA7c9OVdvc2vQJeDdjfR35M0sBCxvw== -"@types/node@^8.10.50": - version "8.10.66" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" - integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== - "@types/normalize-package-data@^2.4.0": version "2.4.4" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" @@ -3369,13 +3364,6 @@ dependencies: "@types/yargs-parser" "*" -"@types/yauzl@^2.9.1": - version "2.10.3" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" - integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== - dependencies: - "@types/node" "*" - "@typescript-eslint/eslint-plugin@3.10.1": version "3.10.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz#7e061338a1383f59edc204c605899f93dc2e2c8f" @@ -4437,11 +4425,6 @@ bstring@0.3.9, bstring@^0.3.9: loady "~0.0.1" nan "^2.13.1" -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - buffer-from@1.x, buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -6603,17 +6586,6 @@ extract-stack@^2.0.0: resolved "https://registry.yarnpkg.com/extract-stack/-/extract-stack-2.0.0.tgz#11367bc865bfcd9bc0db3123e5edb57786f11f9b" integrity sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ== -extract-zip@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - fast-copy@^2.1.0: version "2.1.7" resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-2.1.7.tgz#affc9475cb4b555fb488572b2a44231d0c9fa39e" @@ -6699,13 +6671,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== - dependencies: - pend "~1.2.0" - fdir@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" @@ -7422,23 +7387,6 @@ got@11.8.5: p-cancelable "^2.0.0" responselike "^2.0.0" -got@^11.8.5: - version "11.8.6" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" - integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - got@^12.1.0: version "12.6.1" resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" @@ -7685,11 +7633,6 @@ hosted-git-info@^6.0.0: dependencies: lru-cache "^7.5.1" -hpagent@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-0.1.2.tgz#cab39c66d4df2d4377dbd212295d878deb9bdaa9" - integrity sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ== - html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" @@ -9408,7 +9351,7 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.clonedeep@4.5.0, lodash.clonedeep@^4.5.0: +lodash.clonedeep@4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== @@ -10252,20 +10195,6 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -ngrok@4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/ngrok/-/ngrok-4.3.3.tgz#c51a1c4af2271ac3c9092ede3b0975caf7833217" - integrity sha512-a2KApnkiG5urRxBPdDf76nNBQTnNNWXU0nXw0SsqsPI+Kmt2lGf9TdVYpYrHMnC+T9KhcNSWjCpWqBgC6QcFvw== - dependencies: - "@types/node" "^8.10.50" - extract-zip "^2.0.1" - got "^11.8.5" - lodash.clonedeep "^4.5.0" - uuid "^7.0.0 || ^8.0.0" - yaml "^1.10.0" - optionalDependencies: - hpagent "^0.1.2" - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -11217,11 +11146,6 @@ pbkdf2@^3.0.9: safe-buffer "^5.0.1" sha.js "^2.4.8" -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== - pg-cloudflare@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" @@ -13999,7 +13923,7 @@ uuid@11.1.1: resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.1.tgz#f6d81d2e1c65d00762e5e29b16c5d2d995e208ad" integrity sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ== -"uuid@^7.0.0 || ^8.0.0", uuid@^8.3.0: +uuid@^8.3.0: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -14529,14 +14453,6 @@ yargs@^17.6.2: y18n "^5.0.5" yargs-parser "^21.1.1" -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From 43d9d6c3b09477e98a0804b44466ecacb65f272a Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:50:57 +0000 Subject: [PATCH 18/22] chore: require Node.js 24.22.1 Node.js 16 and 18 are end-of-life and this release is built and tested on Node.js 24. Declare `^24.22.1` in `engines`: Node.js 24 only, at least 24.22.1, the latest release at the time (2026-10-20). `yarn global add` then refuses to install Core on an older runtime instead of failing while compiling native modules, and `.nvmrc` is pinned to the same version. yarn also enforces `engines` when running package scripts, so building the monorepo (`yarn setup`, `yarn build`) requires Node.js >= 24.22.1. Co-Authored-By: Claude Opus 5.5 --- .nvmrc | 2 +- packages/core-api/package.json | 2 +- packages/core-blockchain/package.json | 2 +- packages/core-cli/package.json | 2 +- packages/core-database/package.json | 2 +- packages/core-forger/package.json | 2 +- packages/core-kernel/package.json | 2 +- packages/core-logger-pino/package.json | 2 +- packages/core-magistrate-api/package.json | 2 +- packages/core-p2p/package.json | 2 +- packages/core-snapshots/package.json | 2 +- packages/core-state/package.json | 2 +- packages/core-test-framework/package.json | 2 +- packages/core-transaction-pool/package.json | 2 +- packages/core-transactions/package.json | 2 +- packages/core-webhooks/package.json | 2 +- packages/core/package.json | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.nvmrc b/.nvmrc index ce122aaa98..ce62013c39 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -12.18.4 +24.22.1 diff --git a/packages/core-api/package.json b/packages/core-api/package.json index 05f342f883..22a9edf3c6 100644 --- a/packages/core-api/package.json +++ b/packages/core-api/package.json @@ -43,7 +43,7 @@ "@types/semver": "7.5.6" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-blockchain/package.json b/packages/core-blockchain/package.json index f5f5fd1f97..c836f107cb 100644 --- a/packages/core-blockchain/package.json +++ b/packages/core-blockchain/package.json @@ -32,7 +32,7 @@ "xstate": "4.38.3" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-cli/package.json b/packages/core-cli/package.json index d583542b02..29ff474b35 100644 --- a/packages/core-cli/package.json +++ b/packages/core-cli/package.json @@ -58,7 +58,7 @@ "@types/yargs-parser": "20.2.1" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-database/package.json b/packages/core-database/package.json index c1178604ff..5c0691da76 100644 --- a/packages/core-database/package.json +++ b/packages/core-database/package.json @@ -32,7 +32,7 @@ "typeorm": "0.2.25" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-forger/package.json b/packages/core-forger/package.json index 8813ea600f..6fbcdca8d6 100644 --- a/packages/core-forger/package.json +++ b/packages/core-forger/package.json @@ -35,7 +35,7 @@ "@types/wif": "2.0.2" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-kernel/package.json b/packages/core-kernel/package.json index 1c8c1e5d9b..3d0ca51511 100644 --- a/packages/core-kernel/package.json +++ b/packages/core-kernel/package.json @@ -55,6 +55,6 @@ "access": "public" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" } } diff --git a/packages/core-logger-pino/package.json b/packages/core-logger-pino/package.json index 556294c025..c475a465bf 100644 --- a/packages/core-logger-pino/package.json +++ b/packages/core-logger-pino/package.json @@ -31,7 +31,7 @@ "split2": "4.2.0" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-magistrate-api/package.json b/packages/core-magistrate-api/package.json index 0f4ce4561e..779e8497cc 100644 --- a/packages/core-magistrate-api/package.json +++ b/packages/core-magistrate-api/package.json @@ -35,7 +35,7 @@ "@types/hapi__boom": "7.4.1" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-p2p/package.json b/packages/core-p2p/package.json index c4d83a2ad2..67ad13589d 100644 --- a/packages/core-p2p/package.json +++ b/packages/core-p2p/package.json @@ -57,7 +57,7 @@ "protobufjs-cli": "1.3.3" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-snapshots/package.json b/packages/core-snapshots/package.json index 6435c22492..d0ebac97da 100644 --- a/packages/core-snapshots/package.json +++ b/packages/core-snapshots/package.json @@ -38,7 +38,7 @@ "@types/fs-extra": "8.1.2" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-state/package.json b/packages/core-state/package.json index 97370005da..bb39cc012f 100644 --- a/packages/core-state/package.json +++ b/packages/core-state/package.json @@ -30,7 +30,7 @@ "joi": "17.13.8" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-test-framework/package.json b/packages/core-test-framework/package.json index b41e5dfc05..924b2178ef 100644 --- a/packages/core-test-framework/package.json +++ b/packages/core-test-framework/package.json @@ -49,7 +49,7 @@ "@types/got": "9.6.12" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-transaction-pool/package.json b/packages/core-transaction-pool/package.json index dfae8867c4..312e1ae44c 100644 --- a/packages/core-transaction-pool/package.json +++ b/packages/core-transaction-pool/package.json @@ -37,7 +37,7 @@ "@types/fs-extra": "8.1.2" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-transactions/package.json b/packages/core-transactions/package.json index 7034d7a0ca..46ce2b7a56 100644 --- a/packages/core-transactions/package.json +++ b/packages/core-transactions/package.json @@ -26,7 +26,7 @@ "joi": "17.13.8" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core-webhooks/package.json b/packages/core-webhooks/package.json index 1cff58866c..bb4e11bc01 100644 --- a/packages/core-webhooks/package.json +++ b/packages/core-webhooks/package.json @@ -35,7 +35,7 @@ "@types/uuid": "8.3.1" }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" diff --git a/packages/core/package.json b/packages/core/package.json index 682546c0ce..e4a96ecfdc 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -79,7 +79,7 @@ } }, "engines": { - "node": ">=10.x" + "node": "^24.22.1" }, "publishConfig": { "access": "public" From 3b5e6977733808260206cf8e9015af4ed731a2eb Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:51:57 +0000 Subject: [PATCH 19/22] chore(docker): use Node 24 and pin PostgreSQL 18 - Build the image on node:24-alpine. - Pin postgres:18-alpine instead of the floating postgres:alpine tag, and mount the volume at /var/lib/postgresql as PostgreSQL 18 images require. The floating tag already resolves to 18, and those images refuse to start with a volume mounted at /var/lib/postgresql/data, so pulling a fresh image broke existing compose setups without any change on our side. - Document how to keep or upgrade an existing volume, and warn against migrating with pg_dump/pg_restore, which silently skips the blocks and transactions tables (the integrity check functions reference tables without a schema while pg_restore runs with an empty search_path). Co-Authored-By: Claude Opus 5.5 --- docker/production/Dockerfile | 2 +- docker/production/README.md | 19 +++++++++++++++---- .../devnet/docker-compose-build.yml | 4 ++-- docker/production/devnet/docker-compose.yml | 4 ++-- .../mainnet/docker-compose-build.yml | 4 ++-- docker/production/mainnet/docker-compose.yml | 4 ++-- 6 files changed, 24 insertions(+), 13 deletions(-) diff --git a/docker/production/Dockerfile b/docker/production/Dockerfile index 4f26646594..f1788bb535 100644 --- a/docker/production/Dockerfile +++ b/docker/production/Dockerfile @@ -1,4 +1,4 @@ -FROM node:18-alpine +FROM node:24-alpine WORKDIR /home/node/core diff --git a/docker/production/README.md b/docker/production/README.md index b0cebe64ef..d1a9c2d6ec 100644 --- a/docker/production/README.md +++ b/docker/production/README.md @@ -29,11 +29,11 @@ Run Relay only node using [Docker Compose](https://docs.docker.com/compose/) version: '2' services: postgres: - image: "postgres:alpine" + image: "postgres:18-alpine" container_name: postgres-devnet restart: always volumes: - - 'postgres:/var/lib/postgresql/data' + - 'postgres:/var/lib/postgresql' networks: - core environment: @@ -103,11 +103,11 @@ CORE_WEBHOOKS_PORT=4004 version: '2' services: postgres: - image: "postgres:alpine" + image: "postgres:18-alpine" container_name: postgres-mainnet restart: always volumes: - - 'postgres:/var/lib/postgresql/data' + - 'postgres:/var/lib/postgresql' networks: - core environment: @@ -178,3 +178,14 @@ docker compose up -d ``` ### _ARK Core docker image allows you to run a `forger`. However it requires some additional steps that can be found by visiting our [Documentation page](https://guides.ark.dev/devops-guides/how-to-setup-a-node-with-docker#production-setup)._ + +## Upgrading an existing PostgreSQL volume + +Earlier versions of these files used the floating `postgres:alpine` tag, which now resolves to PostgreSQL 18. PostgreSQL 18 images keep their data in `/var/lib/postgresql/18/docker` and expect the volume to be mounted at `/var/lib/postgresql`; they refuse to start when a volume is mounted at `/var/lib/postgresql/data`. + +If you already run a node with an existing volume, either: + +- keep the PostgreSQL major version the volume was created with by setting the image to `postgres:-alpine` (see the `PG_VERSION` file in the volume) and keeping the `/var/lib/postgresql/data` mount, or +- move to PostgreSQL 18 with `pg_upgrade`, or start from an empty volume and let Core sync from the network or restore a Core snapshot. + +Do not migrate the database with `pg_dump` and `pg_restore`. The integrity checks on the `blocks` and `transactions` tables use functions that reference tables without a schema, so `pg_restore` skips the data of both tables and only reports "errors ignored on restore". diff --git a/docker/production/devnet/docker-compose-build.yml b/docker/production/devnet/docker-compose-build.yml index 93cb746974..15a9191a05 100644 --- a/docker/production/devnet/docker-compose-build.yml +++ b/docker/production/devnet/docker-compose-build.yml @@ -1,11 +1,11 @@ version: '2' services: postgres: - image: "postgres:alpine" + image: "postgres:18-alpine" container_name: postgres-devnet restart: always volumes: - - 'postgres:/var/lib/postgresql/data' + - 'postgres:/var/lib/postgresql' networks: - core environment: diff --git a/docker/production/devnet/docker-compose.yml b/docker/production/devnet/docker-compose.yml index 24954d8393..c63e169241 100644 --- a/docker/production/devnet/docker-compose.yml +++ b/docker/production/devnet/docker-compose.yml @@ -1,11 +1,11 @@ version: '2' services: postgres: - image: "postgres:alpine" + image: "postgres:18-alpine" container_name: postgres-devnet restart: always volumes: - - 'postgres:/var/lib/postgresql/data' + - 'postgres:/var/lib/postgresql' networks: - core environment: diff --git a/docker/production/mainnet/docker-compose-build.yml b/docker/production/mainnet/docker-compose-build.yml index 02dbd4861b..7e5d1eb427 100644 --- a/docker/production/mainnet/docker-compose-build.yml +++ b/docker/production/mainnet/docker-compose-build.yml @@ -1,11 +1,11 @@ version: '2' services: postgres: - image: "postgres:alpine" + image: "postgres:18-alpine" container_name: postgres-mainnet restart: always volumes: - - 'postgres:/var/lib/postgresql/data' + - 'postgres:/var/lib/postgresql' networks: - core environment: diff --git a/docker/production/mainnet/docker-compose.yml b/docker/production/mainnet/docker-compose.yml index 6d31ba3020..63fd548390 100644 --- a/docker/production/mainnet/docker-compose.yml +++ b/docker/production/mainnet/docker-compose.yml @@ -1,11 +1,11 @@ version: '2' services: postgres: - image: "postgres:alpine" + image: "postgres:18-alpine" container_name: postgres-mainnet restart: always volumes: - - 'postgres:/var/lib/postgresql/data' + - 'postgres:/var/lib/postgresql' networks: - core environment: From 69c3df01f1bdd77f98d85da1ef94e2caedc76eea Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:52:57 +0000 Subject: [PATCH 20/22] ci: build and test on Node.js 24 The packages now require Node.js ^24.22.1 and yarn enforces `engines` when running package scripts. Run every job that installs or builds Core on the latest Node.js 24 release, the same version operators get from NodeSource `node_24.x` and the `node:24` Docker images. actions/setup-node@v4 with `check-latest` is needed for that: setup-node otherwise uses the 24.x cached on the runner image, which can be older than the required 24.22.1, and v1 has no way to skip the cache. The CodeQL job gains the same setup step and moves from the retired github/codeql-action v1 to v4. Include the Node.js major in the node_modules cache key so a cache built on Node.js 16 (native modules for ABI 93) is not restored. The e2e node image runs the repository built on the runner and moves to node:24. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/benchmark.yml | 9 +- .github/workflows/codeql-analysis.yml | 10 +- .github/workflows/e2e.yml | 9 +- .github/workflows/functional.yml | 198 ++++++++++++---------- .github/workflows/integration.yml | 9 +- .github/workflows/lint.yml | 9 +- .github/workflows/publish-develop.yml | 5 +- .github/workflows/publish-master.yml | 5 +- .github/workflows/unit.yml | 171 ++++++++++--------- __tests__/e2e/lib/config/nodes/Dockerfile | 2 +- 10 files changed, 240 insertions(+), 187 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 9797ef05e7..98f48b21c5 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -25,13 +25,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 2718c95e1e..497b5088dd 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -30,8 +30,14 @@ jobs: - run: git checkout HEAD^2 if: ${{ github.event_name == 'pull_request' }} + - name: Use Node.js 24 + uses: actions/setup-node@v4 + with: + node-version: 24 + check-latest: true + - name: Initialize CodeQL - uses: github/codeql-action/init@v1 + uses: github/codeql-action/init@v4 with: languages: javascript @@ -39,4 +45,4 @@ jobs: run: yarn setup - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v4 diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a918dfe451..b9d507fec3 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -25,12 +25,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-e2e-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-e2e- + key: ${{ runner.os }}-e2e-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-e2e-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install and build packages run: yarn setup - name: Docker compose up diff --git a/.github/workflows/functional.yml b/.github/workflows/functional.yml index dd5c7dfde1..af68d05fae 100644 --- a/.github/workflows/functional.yml +++ b/.github/workflows/functional.yml @@ -28,7 +28,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] env: CORE_DB_DATABASE: ark_unitnet @@ -43,12 +43,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -87,7 +88,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -95,12 +96,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -142,7 +144,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -150,12 +152,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -197,7 +200,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -205,12 +208,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -252,7 +256,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -260,12 +264,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -307,7 +312,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -315,12 +320,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -362,7 +368,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -370,12 +376,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -417,7 +424,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -425,12 +432,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -472,7 +480,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -480,12 +488,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -527,7 +536,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -535,12 +544,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -582,7 +592,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -590,12 +600,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -637,7 +648,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -645,12 +656,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -692,7 +704,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -700,12 +712,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -747,7 +760,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -755,12 +768,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -802,7 +816,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -810,12 +824,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -857,7 +872,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -865,12 +880,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -906,7 +922,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -914,12 +930,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -955,7 +972,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -963,12 +980,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -1004,7 +1022,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -1012,12 +1030,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -1053,7 +1072,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -1061,12 +1080,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -1102,7 +1122,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -1110,12 +1130,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y @@ -1151,7 +1172,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -1159,12 +1180,13 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 3cfde55b08..7f066fdcf4 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -28,7 +28,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] env: CORE_DB_DATABASE: ark_unitnet @@ -44,13 +44,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Update system run: sudo apt-get update -y diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3824b69c82..c6f0f9c48b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -26,13 +26,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn install diff --git a/.github/workflows/publish-develop.yml b/.github/workflows/publish-develop.yml index 3bb00ad80c..fecde72eec 100644 --- a/.github/workflows/publish-develop.yml +++ b/.github/workflows/publish-develop.yml @@ -17,9 +17,10 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v4 with: - node-version: 16 + node-version: 24 + check-latest: true registry-url: https://registry.npmjs.org/ - name: Install & Build diff --git a/.github/workflows/publish-master.yml b/.github/workflows/publish-master.yml index c9710861ed..c5d73c3101 100644 --- a/.github/workflows/publish-master.yml +++ b/.github/workflows/publish-master.yml @@ -16,9 +16,10 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v4 with: - node-version: 16 + node-version: 24 + check-latest: true registry-url: https://registry.npmjs.org/ - name: Install & Build diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index f637637ce5..9b419b5cb4 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -26,13 +26,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -51,7 +52,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -60,13 +61,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -85,7 +87,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -94,13 +96,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -119,7 +122,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -128,13 +131,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -153,7 +157,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -162,13 +166,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -187,7 +192,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -196,13 +201,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -221,7 +227,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -230,13 +236,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -255,7 +262,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -264,13 +271,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -289,7 +297,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -298,13 +306,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -323,7 +332,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -332,13 +341,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -357,7 +367,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -366,13 +376,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -391,7 +402,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -400,13 +411,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -425,7 +437,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -434,13 +446,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -459,7 +472,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -468,13 +481,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -493,7 +507,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -502,13 +516,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -527,7 +542,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -536,13 +551,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -561,7 +577,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -570,13 +586,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -595,7 +612,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -604,13 +621,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup @@ -629,7 +647,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [24] steps: - uses: actions/checkout@v4 @@ -638,13 +656,14 @@ jobs: uses: actions/cache@v4 with: path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: ${{ runner.os }}-node- + key: ${{ runner.os }}-node24-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node24- - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + check-latest: true - name: Install & Build run: yarn setup diff --git a/__tests__/e2e/lib/config/nodes/Dockerfile b/__tests__/e2e/lib/config/nodes/Dockerfile index cbea553306..c138062a64 100644 --- a/__tests__/e2e/lib/config/nodes/Dockerfile +++ b/__tests__/e2e/lib/config/nodes/Dockerfile @@ -1,6 +1,6 @@ FROM telus/build-essential FROM python -FROM node:12.13 +FROM node:24 WORKDIR /ark-core From 81b6a80669320645efe70ba9f0a36985bb9624e2 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:53:57 +0000 Subject: [PATCH 21/22] ci: run the database tests against PostgreSQL 18 PostgreSQL 12 is end-of-life and outside the supported 16 and 18. Run the functional and integration jobs against PostgreSQL 18, and pin the e2e network to 18 instead of the floating alpine tag. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/functional.yml | 44 ++++++++++----------- .github/workflows/integration.yml | 2 +- __tests__/e2e/lib/config/docker-compose.yml | 2 +- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/functional.yml b/.github/workflows/functional.yml index af68d05fae..d86c42201e 100644 --- a/.github/workflows/functional.yml +++ b/.github/workflows/functional.yml @@ -17,7 +17,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -77,7 +77,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -133,7 +133,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -189,7 +189,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -245,7 +245,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -301,7 +301,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -357,7 +357,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -413,7 +413,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -469,7 +469,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -525,7 +525,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -581,7 +581,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -637,7 +637,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -693,7 +693,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -749,7 +749,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -805,7 +805,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -861,7 +861,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -911,7 +911,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -961,7 +961,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -1011,7 +1011,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -1061,7 +1061,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -1111,7 +1111,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password @@ -1161,7 +1161,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 7f066fdcf4..5f1e1fa2a4 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -17,7 +17,7 @@ jobs: services: postgres: - image: postgres:12 + image: postgres:18 env: POSTGRES_USER: ark POSTGRES_PASSWORD: password diff --git a/__tests__/e2e/lib/config/docker-compose.yml b/__tests__/e2e/lib/config/docker-compose.yml index f1499e76fd..129aee7cac 100644 --- a/__tests__/e2e/lib/config/docker-compose.yml +++ b/__tests__/e2e/lib/config/docker-compose.yml @@ -11,7 +11,7 @@ services: - 4900:4900 postgres0: &postgresServiceDefinition - image: "postgres:alpine" + image: "postgres:18-alpine" environment: POSTGRES_PASSWORD: password POSTGRES_DB: ark_testnet From 75e5e8a0b2bb0ef39493f3d6b7b210ffc50cd197 Mon Sep 17 00:00:00 2001 From: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com> Date: Wed, 28 Oct 2026 03:54:57 +0000 Subject: [PATCH 22/22] ci: stop publishing the removed core-manager package packages/core-manager no longer exists, so its publish line failed on every release. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/publish-develop.yml | 1 - .github/workflows/publish-master.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/publish-develop.yml b/.github/workflows/publish-develop.yml index fecde72eec..14a7b154b1 100644 --- a/.github/workflows/publish-develop.yml +++ b/.github/workflows/publish-develop.yml @@ -40,7 +40,6 @@ jobs: cd core-magistrate-api && npm publish --access public --tag rc && cd .. cd core-magistrate-crypto && npm publish --access public --tag rc && cd .. cd core-magistrate-transactions && npm publish --access public --tag rc && cd .. - cd core-manager && npm publish --access public --tag rc && cd .. cd core-p2p && npm publish --access public --tag rc && cd .. cd core-snapshots && npm publish --access public --tag rc && cd .. cd core-state && npm publish --access public --tag rc && cd .. diff --git a/.github/workflows/publish-master.yml b/.github/workflows/publish-master.yml index c5d73c3101..72ba7ae4ba 100644 --- a/.github/workflows/publish-master.yml +++ b/.github/workflows/publish-master.yml @@ -39,7 +39,6 @@ jobs: cd core-magistrate-api && npm publish --access public && cd .. cd core-magistrate-crypto && npm publish --access public && cd .. cd core-magistrate-transactions && npm publish --access public && cd .. - cd core-manager && npm publish --access public && cd .. cd core-p2p && npm publish --access public && cd .. cd core-snapshots && npm publish --access public && cd .. cd core-state && npm publish --access public && cd ..