diff --git a/.circleci/config.yml b/.circleci/config.yml index 315a31629..fda8dfee7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -80,7 +80,7 @@ commands: jobs: security-scans: docker: - - image: cimg/node:18.19.1 + - image: cimg/node:22.15 steps: - checkout - prodsec/security_scans: @@ -128,7 +128,7 @@ jobs: working_directory: ~/kubernetes-monitor code_formatter: docker: - - image: cimg/node:18.19.1 + - image: cimg/node:22.15 steps: - checkout - run: @@ -161,7 +161,7 @@ jobs: working_directory: ~/kubernetes-monitor lint: docker: - - image: cimg/node:18.19.1 + - image: cimg/node:22.15 steps: - checkout - run: @@ -174,7 +174,7 @@ jobs: working_directory: ~/kubernetes-monitor publish: docker: - - image: cimg/node:18.19.1 + - image: cimg/node:22.15 steps: - checkout - setup_remote_docker @@ -247,7 +247,7 @@ jobs: working_directory: ~/kubernetes-monitor tag_and_push: docker: - - image: cimg/node:18.19.1 + - image: cimg/node:22.15 steps: - checkout - setup_remote_docker @@ -267,7 +267,7 @@ jobs: working_directory: ~/kubernetes-monitor unit_tests: docker: - - image: cimg/node:18.19.1 + - image: cimg/node:22.15 steps: - checkout - run: diff --git a/.nvmrc b/.nvmrc index 3c032078a..2bd5a0a98 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -18 +22 diff --git a/Dockerfile b/Dockerfile index 4c9b3e9ef..a85beaa58 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ RUN --mount=type=secret,id=gh_token,required=true \ #--------------------------------------------------------------------- # STAGE 2: Build kubernetes-monitor application #--------------------------------------------------------------------- -FROM --platform=linux/amd64 node:18-alpine3.20 +FROM --platform=linux/amd64 node:22-alpine3.20 LABEL name="Snyk Controller" \ maintainer="support@snyk.io" \ diff --git a/Dockerfile.ubi9 b/Dockerfile.ubi9 index 5d242d428..470b6127e 100644 --- a/Dockerfile.ubi9 +++ b/Dockerfile.ubi9 @@ -1,7 +1,7 @@ #--------------------------------------------------------------------- # STAGE 1: Build credential helpers inside a temporary container #--------------------------------------------------------------------- -FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/go-toolset:9.5 as cred-helpers-build +FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/go-toolset:9.6 as cred-helpers-build RUN GOTOOLCHAIN=go1.23.4 go install github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-credential-ecr-login@bef5bd9384b752e5c645659165746d5af23a098a RUN --mount=type=secret,id=gh_token,uid=1001,required=true \ @@ -13,7 +13,7 @@ RUN --mount=type=secret,id=gh_token,uid=1001,required=true \ #--------------------------------------------------------------------- # STAGE 2: Build kubernetes-monitor application #--------------------------------------------------------------------- -FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/nodejs-18:1-123 AS build +FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/nodejs-22:9.6 AS build ENV NODE_ENV production @@ -31,17 +31,18 @@ RUN npm run build #--------------------------------------------------------------------- # STAGE 3: Install containers-common to obtain configuration files #--------------------------------------------------------------------- -FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/ubi:9.5 AS containers-common +FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/ubi:9.6 AS containers-common RUN dnf install -y containers-common #--------------------------------------------------------------------- # STAGE 4: Build the kubernetes-monitor final image #--------------------------------------------------------------------- -FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/ubi:9.5 +FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/ubi:9.6 -ARG NODE_18_LATEST_VERSION -ARG NODE_18_LATEST_VERSION_TAR_GZ_FILE_SHASUM256 +ARG NODE_MAJOR_VERSION=22 +ARG NODE_LATEST_VERSION +ARG NODE_LATEST_VERSION_TAR_GZ_FILE_SHASUM256 # https://github.com/Yelp/dumb-init/releases ARG DUMB_INIT_VERSION=1.2.5 ARG DUMB_INIT_BINARY_FILE_SHASUM256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df @@ -89,11 +90,11 @@ RUN curl -sSfL https://sdk.cloud.google.com | bash -s -- --disable-prompts --ins ENV PATH=/google-cloud-sdk/bin:$PATH # Install node -RUN curl -sSfLo /tmp/node_18.tar.gz "https://nodejs.org/dist/latest-v18.x/${NODE_18_LATEST_VERSION}.tar.gz" && \ - echo "${NODE_18_LATEST_VERSION_TAR_GZ_FILE_SHASUM256} /tmp/node_18.tar.gz" | sha256sum --check --status && \ - mkdir /tmp/node_18 && tar -C /tmp/node_18 -xzf /tmp/node_18.tar.gz ${NODE_18_LATEST_VERSION}/bin/node && \ - mv /tmp/node_18/${NODE_18_LATEST_VERSION}/bin/node /usr/local/bin && \ - rm -rf /tmp/node_18.tar.gz /tmp/node_18 +RUN curl -sSfLo /tmp/node_${NODE_MAJOR_VERSION}.tar.gz "https://nodejs.org/dist/latest-v${NODE_MAJOR_VERSION}.x/${NODE_LATEST_VERSION}.tar.gz" && \ + echo "${NODE_LATEST_VERSION_TAR_GZ_FILE_SHASUM256} /tmp/node_${NODE_MAJOR_VERSION}.tar.gz" | sha256sum --check --status && \ + mkdir /tmp/node_${NODE_MAJOR_VERSION} && tar -C /tmp/node_${NODE_MAJOR_VERSION} -xzf /tmp/node_${NODE_MAJOR_VERSION}.tar.gz ${NODE_LATEST_VERSION}/bin/node && \ + mv /tmp/node_${NODE_MAJOR_VERSION}/${NODE_LATEST_VERSION}/bin/node /usr/local/bin && \ + rm -rf /tmp/node_${NODE_MAJOR_VERSION}.tar.gz /tmp/node_${NODE_MAJOR_VERSION} RUN rpm -e --nodeps curl-minimal && \ rpm -e --nodeps libcurl-minimal diff --git a/package-lock.json b/package-lock.json index 3c75bacf9..5cee0dc33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,7 @@ "name": "@snyk/kubernetes-monitor", "license": "private", "dependencies": { - "@aws-sdk/client-ecr": "^3.816.0", + "@aws-sdk/client-ecr": "^3.817.0", "@kubernetes/client-node": "^0.22.3", "@snyk/dep-graph": "^2.9.0", "async": "^3.2.6", @@ -34,7 +34,7 @@ "@types/jest": "^26.0.24", "@types/lru-cache": "^5.1.1", "@types/needle": "^2.5.3", - "@types/node": "^16.18.126", + "@types/node": "^20.17.52", "@types/source-map-support": "^0.5.10", "@types/tunnel": "0.0.2", "@typescript-eslint/eslint-plugin": "^4.33.0", @@ -189,14 +189,14 @@ } }, "node_modules/@aws-sdk/client-ecr": { - "version": "3.816.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-ecr/-/client-ecr-3.816.0.tgz", - "integrity": "sha512-PiJnWrS2U9xY/ERe2g541KvZztiUAnN6j7dJOcg1By5LKmZQ+28g0QctveoHQT7ou+Z0zcs79Wcx2sIwy1CE+g==", + "version": "3.817.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ecr/-/client-ecr-3.817.0.tgz", + "integrity": "sha512-4y5JMT5VYcp3Fjyq8j3Y6S4r9duIhSSoRAzxhnmT4DYgiiUPygyUK+OqyjovMMjNtNhZGEgpK7Hg+iV6sW/wEQ==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.816.0", - "@aws-sdk/credential-provider-node": "3.816.0", + "@aws-sdk/credential-provider-node": "3.817.0", "@aws-sdk/middleware-host-header": "3.804.0", "@aws-sdk/middleware-logger": "3.804.0", "@aws-sdk/middleware-recursion-detection": "3.804.0", @@ -239,9 +239,9 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.816.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.816.0.tgz", - "integrity": "sha512-2D2bc6wVDgGxwHjqSyxGYXUHa3ni0R21Isiq0OzJk6nBc8Vi6HpYoimok6UaUfPJsG6OEWfQ9vubcR30BCBmqQ==", + "version": "3.817.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.817.0.tgz", + "integrity": "sha512-fCh5rUHmWmWDvw70NNoWpE5+BRdtNi45kDnIoeoszqVg7UKF79SlG+qYooUT52HKCgDNHqgbWaXxMOSqd2I/OQ==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", @@ -343,17 +343,17 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.816.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.816.0.tgz", - "integrity": "sha512-60FiF4PFgrnIQ7vizAMN4imrjFzlXPEvXKk05cs47W7qtA54MudRvTITN9Gji4vD5j6CDp9fOb0HS0+N83YEAA==", + "version": "3.817.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.817.0.tgz", + "integrity": "sha512-kyEwbQyuXE+phWVzloMdkFv6qM6NOon+asMXY5W0fhDKwBz9zQLObDRWBrvQX9lmqq8BbDL1sCfZjOh82Y+RFw==", "dependencies": { "@aws-sdk/core": "3.816.0", "@aws-sdk/credential-provider-env": "3.816.0", "@aws-sdk/credential-provider-http": "3.816.0", "@aws-sdk/credential-provider-process": "3.816.0", - "@aws-sdk/credential-provider-sso": "3.816.0", - "@aws-sdk/credential-provider-web-identity": "3.816.0", - "@aws-sdk/nested-clients": "3.816.0", + "@aws-sdk/credential-provider-sso": "3.817.0", + "@aws-sdk/credential-provider-web-identity": "3.817.0", + "@aws-sdk/nested-clients": "3.817.0", "@aws-sdk/types": "3.804.0", "@smithy/credential-provider-imds": "^4.0.4", "@smithy/property-provider": "^4.0.2", @@ -366,16 +366,16 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.816.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.816.0.tgz", - "integrity": "sha512-NsjMzCHWXpFXNdJYliY4GM2vtsmP8w9OyjrNcHq4mmdp7lAzM3BvRKavVuhBXrSHQFzLkGWaTGd+fkkTZtYHXQ==", + "version": "3.817.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.817.0.tgz", + "integrity": "sha512-b5mz7av0Lhavs1Bz3Zb+jrs0Pki93+8XNctnVO0drBW98x1fM4AR38cWvGbM/w9F9Q0/WEH3TinkmrMPrP4T/w==", "dependencies": { "@aws-sdk/credential-provider-env": "3.816.0", "@aws-sdk/credential-provider-http": "3.816.0", - "@aws-sdk/credential-provider-ini": "3.816.0", + "@aws-sdk/credential-provider-ini": "3.817.0", "@aws-sdk/credential-provider-process": "3.816.0", - "@aws-sdk/credential-provider-sso": "3.816.0", - "@aws-sdk/credential-provider-web-identity": "3.816.0", + "@aws-sdk/credential-provider-sso": "3.817.0", + "@aws-sdk/credential-provider-web-identity": "3.817.0", "@aws-sdk/types": "3.804.0", "@smithy/credential-provider-imds": "^4.0.4", "@smithy/property-provider": "^4.0.2", @@ -404,13 +404,13 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.816.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.816.0.tgz", - "integrity": "sha512-wxNqvPrRpKwkNQ41uGE/y3Y95TsWnJnMpcTIMhGEub0Jq5ifnUEev3gJ60857uaut133mwpGfupE2fk8V68e6A==", + "version": "3.817.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.817.0.tgz", + "integrity": "sha512-gFUAW3VmGvdnueK1bh6TOcRX+j99Xm0men1+gz3cA4RE+rZGNy1Qjj8YHlv0hPwI9OnTPZquvPzA5fkviGREWg==", "dependencies": { - "@aws-sdk/client-sso": "3.816.0", + "@aws-sdk/client-sso": "3.817.0", "@aws-sdk/core": "3.816.0", - "@aws-sdk/token-providers": "3.816.0", + "@aws-sdk/token-providers": "3.817.0", "@aws-sdk/types": "3.804.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", @@ -422,12 +422,12 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.816.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.816.0.tgz", - "integrity": "sha512-guKv76eRTMQkGOHsv9tY8XP9y1TZ0U4w6RD5kHQYNuzoBf5HOpZcib9OGmWJA2n+BC+byCOOftl6mMmYtRfcpQ==", + "version": "3.817.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.817.0.tgz", + "integrity": "sha512-A2kgkS9g6NY0OMT2f2EdXHpL17Ym81NhbGnQ8bRXPqESIi7TFypFD2U6osB2VnsFv+MhwM+Ke4PKXSmLun22/A==", "dependencies": { "@aws-sdk/core": "3.816.0", - "@aws-sdk/nested-clients": "3.816.0", + "@aws-sdk/nested-clients": "3.817.0", "@aws-sdk/types": "3.804.0", "@smithy/property-provider": "^4.0.2", "@smithy/types": "^4.2.0", @@ -496,9 +496,9 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.816.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.816.0.tgz", - "integrity": "sha512-N1jSEa53QHLvIH37Rrm8cD9MlC6ucTEpDhbO+fN9UHBimRnpt9kqk0iiBCu5FK7GEKWYM5kiawfUtbB3PN65CQ==", + "version": "3.817.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.817.0.tgz", + "integrity": "sha512-vQ2E06A48STJFssueJQgxYD8lh1iGJoLJnHdshRDWOQb8gy1wVQR+a7MkPGhGR6lGoS0SCnF/Qp6CZhnwLsqsQ==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", @@ -560,12 +560,12 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.816.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.816.0.tgz", - "integrity": "sha512-OFeeq7j3JsI5OrUW4vw/Lckwq8I+HNffi7IXenfqzE83vhgXQF9BfCg+TGHDfxiDt6NUaS6F0QzhfkW6/AORlA==", + "version": "3.817.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.817.0.tgz", + "integrity": "sha512-CYN4/UO0VaqyHf46ogZzNrVX7jI3/CfiuktwKlwtpKA6hjf2+ivfgHSKzPpgPBcSEfiibA/26EeLuMnB6cpSrQ==", "dependencies": { "@aws-sdk/core": "3.816.0", - "@aws-sdk/nested-clients": "3.816.0", + "@aws-sdk/nested-clients": "3.817.0", "@aws-sdk/types": "3.804.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", @@ -657,30 +657,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", - "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.3.tgz", + "integrity": "sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", - "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.3.tgz", + "integrity": "sha512-hyrN8ivxfvJ4i0fIJuV4EOlV0WDMz5Ui4StRTgVaAvWeiRCilXgwVvxJKtFQ3TKtHgJscB2YiXKGNJuVwhQMtA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helpers": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.3", + "@babel/parser": "^7.27.3", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.3", + "@babel/types": "^7.27.3", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -719,13 +719,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", - "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.3.tgz", + "integrity": "sha512-xnlJYj5zepml8NXtjkG0WquFUv8RskFqyFcVgTBp5k+NaA/8uw/K+OSVf8AMGw5e9HKP2ETd5xpK5MLZQD6b4Q==", "dev": true, "dependencies": { - "@babel/parser": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/parser": "^7.27.3", + "@babel/types": "^7.27.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -788,14 +788,14 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", - "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -841,13 +841,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", - "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.3.tgz", + "integrity": "sha512-h/eKy9agOya1IGuLaZ9tEUgz+uIRXcbtOhRtUyyMf8JFmn1iT13vnl/IGVWSkdOCG/pC57U4S1jnAabAavTMwg==", "dev": true, "dependencies": { - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -940,12 +940,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", - "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.3.tgz", + "integrity": "sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw==", "dev": true, "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "bin": { "parser": "bin/babel-parser.js" @@ -1205,16 +1205,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.3.tgz", + "integrity": "sha512-lId/IfN/Ye1CIu8xG7oKBHXd2iNb2aW1ilPszzGcJug6M8RCKfVNcYhpI5+bMvFYjK7lXIM0R+a+6r8xhHp2FQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.3", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1246,9 +1246,9 @@ } }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.3.tgz", + "integrity": "sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -2958,9 +2958,9 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@snyk/error-catalog-nodejs-public": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@snyk/error-catalog-nodejs-public/-/error-catalog-nodejs-public-5.52.0.tgz", - "integrity": "sha512-8cKloJ6nxpYl46vi2MBPYlI0Sa3GKtW2jjoX6zQ1xbPt5U8hAi/LAHRNbOY4ckw0deZgF/PQP4HXI0G4M+/l0A==", + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@snyk/error-catalog-nodejs-public/-/error-catalog-nodejs-public-5.53.0.tgz", + "integrity": "sha512-hWoYOCnHEuFo1ZcRxzG88TdBt3G/AsA1kegi509Fms4qAnTQOK+r3WKZNk3iPqwThOV2DtGAqdeEq6v0wCaqLw==", "dependencies": { "tslib": "^2.8.1", "uuid": "^11.1.0" @@ -3248,9 +3248,12 @@ } }, "node_modules/@types/node": { - "version": "16.18.126", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.126.tgz", - "integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==" + "version": "20.17.52", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.52.tgz", + "integrity": "sha512-2aj++KfxubvW/Lc0YyXE3OEW7Es8TWn1MsRzYgcOGyTNQxi0L8rxQUCZ7ZbyOBWZQD5I63PV9egZWMsapVaklg==", + "dependencies": { + "undici-types": "~6.19.2" + } }, "node_modules/@types/responselike": { "version": "1.0.3", @@ -4224,9 +4227,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", - "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", "dev": true, "funding": [ { @@ -4243,8 +4246,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001716", - "electron-to-chromium": "^1.5.149", + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, @@ -4448,9 +4451,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001718", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", - "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", + "version": "1.0.30001720", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001720.tgz", + "integrity": "sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g==", "dev": true, "funding": [ { @@ -5111,9 +5114,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.157", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.157.tgz", - "integrity": "sha512-/0ybgsQd1muo8QlnuTpKwtl0oX5YMlUGbm8xyqgDU00motRkKFFbUJySAQBWcY79rVqNLWIWa87BGVGClwAB2w==", + "version": "1.5.161", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.161.tgz", + "integrity": "sha512-hwtetwfKNZo/UlwHIVBlKZVdy7o8bIZxxKs0Mv/ROPiQQQmDgdm5a+KvKtBsxM8ZjFzTaCeLoodZ8jiBE3o9rA==", "dev": true }, "node_modules/elfy": { @@ -10001,9 +10004,9 @@ } }, "node_modules/snyk-resolve-deps": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/snyk-resolve-deps/-/snyk-resolve-deps-4.9.0.tgz", - "integrity": "sha512-Y5eEKVebCBHUJrxsnmnsERSeMMmPch7PpnspUpglo9/Vd3FrlDvkZuvYANLqOiWst0lApr/pL3CXFySZfavbPA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/snyk-resolve-deps/-/snyk-resolve-deps-4.9.1.tgz", + "integrity": "sha512-eeNJnzxdHsRmHzr8KnCEoD2G77DUjxVSCaL3nXPpdnLglMuiRGHVG4opL15BZrZYr5Da+bb9nlysQJz7krYDVA==", "dependencies": { "ansicolors": "^0.3.2", "debug": "^4.3.4", @@ -10013,7 +10016,6 @@ "snyk-module": "^3.2.0", "snyk-resolve": "^1.1.0", "snyk-tree": "^1.0.0", - "snyk-try-require": "^2.0.2", "then-fs": "^2.0.0" } }, @@ -10050,29 +10052,6 @@ "npm-tree": "lib/index.js" } }, - "node_modules/snyk-try-require": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/snyk-try-require/-/snyk-try-require-2.0.2.tgz", - "integrity": "sha512-kohtSHpe42qzS8QUi6dUv43S0O6puUt3W8j16ZAbmQhW2Rnf5TyTXL4DR4ZBQDC0uyWunuDK7KsalAlQGDNl8w==", - "dependencies": { - "debug": "^4.1.1", - "lodash.clonedeep": "^4.3.0", - "lru-cache": "^5.1.1" - } - }, - "node_modules/snyk-try-require/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/snyk-try-require/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -10869,6 +10848,11 @@ "node": ">=4.2.0" } }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, "node_modules/unicorn-magic": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", diff --git a/package.json b/package.json index aa4f7386c..a65a6ff7e 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "format:check": "prettier --check '{src,test}/**/*.{js,ts,json,yml}'" }, "dependencies": { - "@aws-sdk/client-ecr": "^3.816.0", + "@aws-sdk/client-ecr": "^3.817.0", "@kubernetes/client-node": "^0.22.3", "@snyk/dep-graph": "^2.9.0", "async": "^3.2.6", @@ -61,7 +61,7 @@ "@types/jest": "^26.0.24", "@types/lru-cache": "^5.1.1", "@types/needle": "^2.5.3", - "@types/node": "^16.18.126", + "@types/node": "^20.17.52", "@types/source-map-support": "^0.5.10", "@types/tunnel": "0.0.2", "@typescript-eslint/eslint-plugin": "^4.33.0", diff --git a/scripts/docker/build-image-ubi9.sh b/scripts/docker/build-image-ubi9.sh index 2ba218daa..bb641e4fc 100755 --- a/scripts/docker/build-image-ubi9.sh +++ b/scripts/docker/build-image-ubi9.sh @@ -11,15 +11,16 @@ LOCAL_DISCARDABLE_IMAGE=snyk/kubernetes-monitor:ubi9 # should happen on merging to `staging` NAME_AND_TAG=${1:-$LOCAL_DISCARDABLE_IMAGE} -# This step gets the latest version of node 18 from node.js. It removes the .tar.gz extension and then returns the result. -# It is used when buidling the ubi image in order to download the latest node 18 version and copy its binary. -NODE_18_LATEST_VERSION_TAR_GZ_FILE=$(curl -L --fail --silent https://nodejs.org/dist/latest-v18.x/SHASUMS256.txt | grep linux-x64.tar.gz | awk '{ print $2 }') -NODE_18_LATEST_VERSION="${NODE_18_LATEST_VERSION_TAR_GZ_FILE%%.tar.gz}" -NODE_18_LATEST_VERSION_TAR_GZ_FILE_SHASUM256=$(curl -L --fail --silent https://nodejs.org/dist/latest-v18.x/SHASUMS256.txt | grep linux-x64.tar.gz | awk '{ print $1 }') +# This step gets the latest version of node 22 from node.js. It removes the .tar.gz extension and then returns the result. +# It is used when buidling the ubi image in order to download the latest node 22 version and copy its binary. +NODE_MAJOR_VERSION=22 +NODE_LATEST_VERSION_TAR_GZ_FILE=$(curl -L --fail --silent https://nodejs.org/dist/latest-v${NODE_MAJOR_VERSION}.x/SHASUMS256.txt | grep linux-x64.tar.gz | awk '{ print $2 }') +NODE_LATEST_VERSION="${NODE_LATEST_VERSION_TAR_GZ_FILE%%.tar.gz}" +NODE_LATEST_VERSION_TAR_GZ_FILE_SHASUM256=$(curl -L --fail --silent https://nodejs.org/dist/latest-v${NODE_MAJOR_VERSION}.x/SHASUMS256.txt | grep linux-x64.tar.gz | awk '{ print $1 }') docker build \ - --build-arg NODE_18_LATEST_VERSION="${NODE_18_LATEST_VERSION}" \ - --build-arg NODE_18_LATEST_VERSION_TAR_GZ_FILE_SHASUM256="${NODE_18_LATEST_VERSION_TAR_GZ_FILE_SHASUM256}" \ + --build-arg NODE_LATEST_VERSION="${NODE_LATEST_VERSION}" \ + --build-arg NODE_LATEST_VERSION_TAR_GZ_FILE_SHASUM256="${NODE_LATEST_VERSION_TAR_GZ_FILE_SHASUM256}" \ --secret id=gh_token,env=GITHUB_PRIVATE_TOKEN \ -t ${NAME_AND_TAG} \ --file=Dockerfile.ubi9 .