diff --git a/.nvmrc b/.nvmrc index d9289897d..cb406c60c 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -16.15.1 +16.20.2 diff --git a/Makefile b/Makefile index c6f02c3e7..90e8e76de 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,8 @@ bootstrap: generate-version-file ## Set up everything to run the app poetry install --sync --no-root poetry run playwright install --with-deps poetry run pre-commit install - source $(NVMSH) --no-use && nvm install && npm ci --no-audit + source $(NVMSH) --no-use && nvm install && npm install + source $(NVMSH) && npm ci --no-audit source $(NVMSH) && npm run build .PHONY: watch-frontend @@ -40,6 +41,10 @@ run-flask-bare: ## Run flask without invoking poetry so we can override ENV var npm-audit: ## Check for vulnerabilities in NPM packages source $(NVMSH) && npm run audit +.PHONY: npm-audit-fix +npm-audit-fix: ## Fix vulnerabilities that do not require attentino (according to npm) + source $(NVMSH) && npm audit fix + .PHONY: help help: @cat $(MAKEFILE_LIST) | grep -E '^[a-zA-Z_-]+:.*?## .*$$' | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' diff --git a/package.json b/package.json index cf6bde624..6f70f1fed 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,9 @@ "author": "General Services Administration", "license": "CC0", "homepage": "https://github.com/GSA/notifications-admin#readme", + "overrides": { + "graceful-fs": "^4.2.11" + }, "dependencies": { "@uswds/uswds": "^3.4.1", "cbor-js": "0.1.0", @@ -29,12 +32,12 @@ "govuk_frontend_toolkit": "8.1.0", "govuk-frontend": "2.13.0", "hogan": "1.0.2", - "jquery": "3.6.1", + "jquery": "3.7.1", "morphdom": "2.6.1", "python": "^0.0.4", "query-command-supported": "1.0.0", "sass-embedded": "^1.69.5", - "socket.io-client": "^4.7.5", + "socket.io-client": "^4.2.0", "textarea-caret": "3.1.0", "timeago": "1.6.7" }, @@ -43,8 +46,8 @@ "@babel/preset-env": "7.19.4", "@uswds/compile": "^1.1.0", "better-npm-audit": "^3.7.3", - "gulp": "4.0.2", - "gulp-add-src": "1.0.0", + "gulp": "^4.0.2", + "gulp-add-src": "^1.0.0", "gulp-babel": "8.0.0", "gulp-better-rollup": "4.0.1", "gulp-clean-css": "4.3.0", diff --git a/poetry.lock b/poetry.lock index b5ffdb0cb..6ce449b3e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -182,17 +182,17 @@ files = [ [[package]] name = "boto3" -version = "1.34.127" +version = "1.34.128" description = "The AWS SDK for Python" optional = false python-versions = ">=3.8" files = [ - {file = "boto3-1.34.127-py3-none-any.whl", hash = "sha256:d370befe4fb7aea5bc383057d7dad18dda5d0cf3cd3295915bcc8c8c4191905c"}, - {file = "boto3-1.34.127.tar.gz", hash = "sha256:58ccdeae3a96811ecc9d5d866d8226faadbd0ee1891756e4a04d5186e9a57a64"}, + {file = "boto3-1.34.128-py3-none-any.whl", hash = "sha256:a048ff980a81cd652724a73bc496c519b336fabe19cc8bfc6c53b2ff6eb22c7b"}, + {file = "boto3-1.34.128.tar.gz", hash = "sha256:43a6e99f53a8d34b3b4dbe424dbcc6b894350dc41a85b0af7c7bc24a7ec2cead"}, ] [package.dependencies] -botocore = ">=1.34.127,<1.35.0" +botocore = ">=1.34.128,<1.35.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.10.0,<0.11.0" @@ -201,13 +201,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.34.127" +version = "1.34.128" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">=3.8" files = [ - {file = "botocore-1.34.127-py3-none-any.whl", hash = "sha256:e14fa28c8bb141de965e700f88b196d17c67a703c7f0f5c7e14f7dd1cf636011"}, - {file = "botocore-1.34.127.tar.gz", hash = "sha256:a377871742c40603d559103f19acb7bc93cfaf285e68f21b81637ec396099877"}, + {file = "botocore-1.34.128-py3-none-any.whl", hash = "sha256:db67fda136c372ab3fa432580c819c89ba18d28a6152a4d2a7ea40d44082892e"}, + {file = "botocore-1.34.128.tar.gz", hash = "sha256:8d8e03f7c8c080ecafda72036eb3b482d649f8417c90b5dca33b7c2c47adb0c9"}, ] [package.dependencies] @@ -1887,13 +1887,13 @@ files = [ [[package]] name = "phonenumbers" -version = "8.13.38" +version = "8.13.39" description = "Python version of Google's common library for parsing, formatting, storing and validating international phone numbers." optional = false python-versions = "*" files = [ - {file = "phonenumbers-8.13.38-py2.py3-none-any.whl", hash = "sha256:d22aa747fb591ef2a18afec13cab5a0e294ab20fce5a1560e4949e459e70eeef"}, - {file = "phonenumbers-8.13.38.tar.gz", hash = "sha256:2822c74ee9334e9d8ad792fc352cc8d21004307349b6b1bb61da12937fa2eaba"}, + {file = "phonenumbers-8.13.39-py2.py3-none-any.whl", hash = "sha256:3ad2d086fa71e7eef409001b9195ac54bebb0c6e3e752209b558ca192c9229a0"}, + {file = "phonenumbers-8.13.39.tar.gz", hash = "sha256:db7ca4970d206b2056231105300753b1a5b229f43416f8c2b3010e63fbb68d77"}, ] [[package]] @@ -2966,13 +2966,13 @@ files = [ [[package]] name = "urllib3" -version = "2.2.1" +version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, - {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, ] [package.extras] @@ -3112,4 +3112,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "^3.12.2" -content-hash = "9636de2bab29446f6803efa5813b6ebd16ecff22ac5bc371196fa4b6a7d87a30" +content-hash = "b45f2c38493f81bd7fc9d4bfd294b001d71e4082380eb0851d4f3ea8dcdb949c" diff --git a/pyproject.toml b/pyproject.toml index 42629374f..4dd46365a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,8 +39,8 @@ wtforms = "~=3.1" markdown = "^3.5.2" async-timeout = "^4.0.3" bleach = "^6.1.0" -boto3 = "^1.34.126" -botocore = "^1.34.126" +boto3 = "^1.34.128" +botocore = "^1.34.128" cachetools = "^5.3.3" cffi = "^1.16.0" cryptography = "^42.0.8" @@ -50,7 +50,7 @@ jmespath = "^1.0.1" mistune = "0.8.4" numpy = "^1.26.4" ordered-set = "^4.1.0" -phonenumbers = "^8.13.38" +phonenumbers = "^8.13.39" pycparser = "^2.22" python-json-logger = "^2.0.7" redis = "^5.0.6" @@ -67,7 +67,7 @@ python-dateutil = "^2.9.0.post0" pyyaml = "^6.0.1" requests = "^2.32.3" six = "^1.16.0" -urllib3 = "^2.2.1" +urllib3 = "^2.2.2" webencodings = "^0.5.1" flask-socketio = "^5.3.6"