From c74ab6ff2707bf12990fd4a495a107d132fcc5b3 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 27 Nov 2023 14:49:20 -0800 Subject: [PATCH 01/38] fix flake8 --- app/main/views/templates.py | 18 ++++++++++++++++-- app/templates/views/edit-sms-template.html | 4 ++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/main/views/templates.py b/app/main/views/templates.py index 87f32b60fa..40c1d91d17 100644 --- a/app/main/views/templates.py +++ b/app/main/views/templates.py @@ -503,6 +503,8 @@ def delete_template_folder(service_id, template_folder_id): ) @user_has_permissions("manage_templates") def add_service_template(service_id, template_type, template_folder_id=None): + + print("ENTER ADD_SERVICE_TEMPLATE") if template_type not in current_service.available_template_types: return redirect( url_for( @@ -567,6 +569,7 @@ def abort_403_if_not_admin_user(): ) @user_has_permissions("manage_templates") def edit_service_template(service_id, template_id): + print("ENTER EDIT_SERVICE_TEMPLATE") template = current_service.get_template_with_user_permission_or_403( template_id, current_user ) @@ -667,6 +670,7 @@ def count_content_length(service_id, template_type): current_service, ) ) + print(f"ERROR AND MESSAGE {error} {message}") return jsonify( { @@ -681,6 +685,16 @@ def count_content_length(service_id, template_type): def _get_content_count_error_and_message_for_template(template): if template.template_type == "sms": + + islatin1 = lambda s: bool(s.encode(encoding="latin-1", errors="strict")) + warning = "" + try: + islatin1(template.content) + except UnicodeEncodeError: + warning = " Use of characters outside the iso-latin-1 character set will result in additional characters and may not display properly on older phones." + + + if template.is_message_too_long(): return True, ( f"You have " @@ -690,10 +704,10 @@ def _get_content_count_error_and_message_for_template(template): if template.placeholders: return False, ( f"Will be charged as {message_count(template.fragment_count, template.template_type)} " - f"(not including personalization)" + f"(not including personalization). {warning}" ) return False, ( - f"Will be charged as {message_count(template.fragment_count, template.template_type)} " + f"Will be charged as {message_count(template.fragment_count, template.template_type)}. {warning} " ) diff --git a/app/templates/views/edit-sms-template.html b/app/templates/views/edit-sms-template.html index b3f1da6033..ab903ac59d 100644 --- a/app/templates/views/edit-sms-template.html +++ b/app/templates/views/edit-sms-template.html @@ -50,7 +50,7 @@
-
+
@@ -69,7 +69,7 @@

- +

How to customize your message

From ef73d6d71e91c31f67a8bca681277f4b996261c5 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 28 Nov 2023 11:34:29 -0800 Subject: [PATCH 02/38] changed day to year --- app/templates/views/service-settings.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/templates/views/service-settings.html b/app/templates/views/service-settings.html index 9364880fc3..f841633ae6 100644 --- a/app/templates/views/service-settings.html +++ b/app/templates/views/service-settings.html @@ -93,7 +93,7 @@

Settings

) }} {% endcall %} - + {% if current_user.platform_admin %} {% call settings_row(if_has_permission='sms') %} {{ text_field('Send international text messages') }} @@ -107,7 +107,7 @@

Settings

}} {% endcall %} {% endif %} - + + + {% if not notification %} + {% call field(align='right') %}{% endcall %} + {% else %} + + {% call field( + align='right' + ) %} +

+ {{ notification.carrier}} +

+ {% if displayed_on_single_line %}{% endif %} + {% endcall %} + {% endif %} +{% endmacro %} + +{% macro notification_carrier_message_field(notification) %} + + {% if not notification %} + {% call field(align='right') %}{% endcall %} + {% else %} + + {% call field( + status=status, + align='right' + ) %} +

+ {{notification.provider_response}} +

+ {% if displayed_on_single_line %}{% endif %} + {% endcall %} + {% endif %} +{% endmacro %} {% macro spark_bar_field( count, @@ -189,7 +225,7 @@ {% call field(align='right') %} - {{ '{:,.0f}'.format(count) }} + {{ '{:,.0f}'.format(count) }} -{% endblock %} \ No newline at end of file +{% endblock %} From 13d3ffd9143df7e1f1bb3cb12e88f00df143e863 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Tue, 12 Dec 2023 10:04:38 -0800 Subject: [PATCH 30/38] fixed typo --- app/templates/views/signedout.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/views/signedout.html b/app/templates/views/signedout.html index 5014623d6a..f672bf626c 100644 --- a/app/templates/views/signedout.html +++ b/app/templates/views/signedout.html @@ -17,7 +17,7 @@

Reach people where they are with government-powered text messages

-

Notify.gov is a text message service that helps federal, state, local, tribal and territorial goverments more effectively communicate with the people who use their services.

+

Notify.gov is a text message service that helps federal, state, local, tribal and territorial governments more effectively communicate with the people who use their services.

Sign in if you are an existing pilot partner From 218359411d2be5f6aa1bd06b5512f5f6469777cc Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Tue, 12 Dec 2023 10:16:06 -0800 Subject: [PATCH 31/38] updated test --- tests/app/main/views/test_index.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/app/main/views/test_index.py b/tests/app/main/views/test_index.py index e9ea4dcf03..0b584962ad 100644 --- a/tests/app/main/views/test_index.py +++ b/tests/app/main/views/test_index.py @@ -15,7 +15,7 @@ def test_non_logged_in_user_can_see_homepage( client_request.logout() page = client_request.get("main.index", _test_page_title=False) - assert page.h1.text.strip() == ("Send text messages to your participants") + assert page.h1.text.strip() == ("Reach people where they are with government-powered text messages") assert page.select_one("a.usa-button.usa-button--big")["href"] == url_for( "main.sign_in", From fea6e0a0d07088a6452d72f0da6443c7b7beae3e Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Tue, 12 Dec 2023 11:34:20 -0800 Subject: [PATCH 32/38] update content text --- app/templates/views/signedout.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/views/signedout.html b/app/templates/views/signedout.html index f672bf626c..8c703d847b 100644 --- a/app/templates/views/signedout.html +++ b/app/templates/views/signedout.html @@ -17,7 +17,7 @@

Reach people where they are with government-powered text messages

-

Notify.gov is a text message service that helps federal, state, local, tribal and territorial governments more effectively communicate with the people who use their services.

+

Notify.gov is a text message service that helps federal, state, local, tribal and territorial governments more effectively communicate with the people they serve.

Sign in if you are an existing pilot partner From d35b490ee7e9fe448511890555c9174a69cb28d9 Mon Sep 17 00:00:00 2001 From: Jonathan Bobel Date: Tue, 12 Dec 2023 15:39:16 -0500 Subject: [PATCH 33/38] Moved the button to a more obvious place on the page --- app/templates/views/manage-users.html | 27 +++++++++++------------ tests/app/main/views/test_manage_users.py | 12 ++++------ 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/app/templates/views/manage-users.html b/app/templates/views/manage-users.html index bd91a2f045..f8585870ef 100644 --- a/app/templates/views/manage-users.html +++ b/app/templates/views/manage-users.html @@ -9,9 +9,19 @@ {% block maincolumn_content %} -

- Team members -

+
+

+ Team members +

+ {% if current_user.has_permissions('manage_service') %} + {{ usaButton({ + "element": "a", + "text": "Invite a team member", + "href": url_for('.invite_user', service_id=current_service.id), + "classes": "usa-button--outline" + }) }} + {% endif %} +
{% if show_search_box %}
@@ -84,15 +94,4 @@

Permissions

{% endfor %}
- {% if current_user.has_permissions('manage_service') %} -
- {{ usaButton({ - "element": "a", - "text": "Invite a team member", - "href": url_for('.invite_user', service_id=current_service.id), - "classes": "usa-button" - }) }} -
- {% endif %} - {% endblock %} diff --git a/tests/app/main/views/test_manage_users.py b/tests/app/main/views/test_manage_users.py index abc23b563e..c5d97bd030 100644 --- a/tests/app/main/views/test_manage_users.py +++ b/tests/app/main/views/test_manage_users.py @@ -775,15 +775,11 @@ def test_should_show_page_for_inviting_user( def test_should_not_show_page_for_inviting_user_without_permissions( - client_request, - mock_get_template_folders, - active_user_empty_permissions + client_request, mock_get_template_folders, active_user_empty_permissions ): client_request.login(active_user_empty_permissions) page = client_request.get( - "main.invite_user", - service_id=SERVICE_ONE_ID, - _expected_status=403 + "main.invite_user", service_id=SERVICE_ONE_ID, _expected_status=403 ) assert "not allowed to see this page" in page.h1.string.strip() @@ -815,7 +811,7 @@ def test_should_show_page_for_inviting_user_with_email_prefilled( user_id=fake_uuid, # We have the user’s name in the H1 but don’t want it duplicated # in the page title - _test_page_title=False + _test_page_title=False, ) assert normalize_spaces(page.select_one("title").text).startswith( "Invite a team member" @@ -830,7 +826,7 @@ def test_should_show_page_if_prefilled_user_is_already_a_team_member( mock_get_template_folders, fake_uuid, active_user_with_permissions, - active_caseworking_user + active_caseworking_user, ): client_request.login(active_user_with_permissions) mocker.patch( From 13ed67b18b8cfeb1225ee72f5a9801d2823434fb Mon Sep 17 00:00:00 2001 From: Jonathan Bobel Date: Tue, 12 Dec 2023 16:45:21 -0500 Subject: [PATCH 34/38] 966 - Added 2 urls to the CSP configuration + adjusted the test --- app/__init__.py | 2 ++ tests/app/main/views/test_headers.py | 4 +++- tests/app/main/views/test_manage_users.py | 12 ++++-------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 4346301daf..0923b8a50a 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -150,6 +150,8 @@ def _csp(config): "https://js-agent.newrelic.com", "https://gov-bam.nr-data.net", "https://www.googletagmanager.com", + "https://www.google-analytics.com", + "https://dap.digitalgov.gov", ], "connect-src": ["'self'", "https://gov-bam.nr-data.net"], "style-src": ["'self'", asset_domain], diff --git a/tests/app/main/views/test_headers.py b/tests/app/main/views/test_headers.py index de0cef7d2c..fa69016178 100644 --- a/tests/app/main/views/test_headers.py +++ b/tests/app/main/views/test_headers.py @@ -18,7 +18,9 @@ def test_owasp_useful_headers_set( assert search( r"script-src 'self' static\.example\.com 'unsafe-eval' https:\/\/js-agent\.new" r"relic\.com https:\/\/gov-bam\.nr-data\.net https:\/\/www\.googletagmanager\." - r"com 'nonce-.*';", + r"com https:\/\/www\.google-analytics\." + r"com https:\/\/dap\.digitalgov\." + r"gov 'nonce-.*';", csp, ) assert search(r"connect-src 'self' https:\/\/gov-bam.nr-data\.net;", csp) diff --git a/tests/app/main/views/test_manage_users.py b/tests/app/main/views/test_manage_users.py index abc23b563e..c5d97bd030 100644 --- a/tests/app/main/views/test_manage_users.py +++ b/tests/app/main/views/test_manage_users.py @@ -775,15 +775,11 @@ def test_should_show_page_for_inviting_user( def test_should_not_show_page_for_inviting_user_without_permissions( - client_request, - mock_get_template_folders, - active_user_empty_permissions + client_request, mock_get_template_folders, active_user_empty_permissions ): client_request.login(active_user_empty_permissions) page = client_request.get( - "main.invite_user", - service_id=SERVICE_ONE_ID, - _expected_status=403 + "main.invite_user", service_id=SERVICE_ONE_ID, _expected_status=403 ) assert "not allowed to see this page" in page.h1.string.strip() @@ -815,7 +811,7 @@ def test_should_show_page_for_inviting_user_with_email_prefilled( user_id=fake_uuid, # We have the user’s name in the H1 but don’t want it duplicated # in the page title - _test_page_title=False + _test_page_title=False, ) assert normalize_spaces(page.select_one("title").text).startswith( "Invite a team member" @@ -830,7 +826,7 @@ def test_should_show_page_if_prefilled_user_is_already_a_team_member( mock_get_template_folders, fake_uuid, active_user_with_permissions, - active_caseworking_user + active_caseworking_user, ): client_request.login(active_user_with_permissions) mocker.patch( From 6297091022213bbf15381aecee48e3f0734fc1f8 Mon Sep 17 00:00:00 2001 From: Jonathan Bobel Date: Wed, 13 Dec 2023 08:50:25 -0500 Subject: [PATCH 35/38] 1004 - Adding GA to connect-src --- app/__init__.py | 6 +++++- tests/app/main/views/test_headers.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 0923b8a50a..c8224e21ed 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -153,7 +153,11 @@ def _csp(config): "https://www.google-analytics.com", "https://dap.digitalgov.gov", ], - "connect-src": ["'self'", "https://gov-bam.nr-data.net"], + "connect-src": [ + "'self'", + "https://gov-bam.nr-data.net", + "https://www.google-analytics.com", + ], "style-src": ["'self'", asset_domain], "img-src": ["'self'", asset_domain, logo_domain], } diff --git a/tests/app/main/views/test_headers.py b/tests/app/main/views/test_headers.py index fa69016178..211601d167 100644 --- a/tests/app/main/views/test_headers.py +++ b/tests/app/main/views/test_headers.py @@ -23,6 +23,10 @@ def test_owasp_useful_headers_set( r"gov 'nonce-.*';", csp, ) - assert search(r"connect-src 'self' https:\/\/gov-bam.nr-data\.net;", csp) + assert search( + r"connect-src 'self' https:\/\/gov-bam.nr-data\.net https:\/\/www\.google-analytics\." + r"com;", + csp, + ) assert search(r"style-src 'self' static\.example\.com 'nonce-.*';", csp) assert search(r"img-src 'self' static\.example\.com static-logos\.test\.com", csp) From 0947c5d3362d77b9d0920ff344fad9a683c0ed7f Mon Sep 17 00:00:00 2001 From: Carlo Costino Date: Wed, 13 Dec 2023 11:52:59 -0500 Subject: [PATCH 36/38] Update utils to 0.2.4 release This changeset updates the utils library to our 0.2.4 release. Signed-off-by: Carlo Costino --- poetry.lock | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/poetry.lock b/poetry.lock index dcb285933c..4dcb8829f2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1432,16 +1432,6 @@ files = [ {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, @@ -1690,7 +1680,7 @@ requests = ">=2.0.0" [[package]] name = "notifications-utils" -version = "0.2.3" +version = "0.2.4" description = "" optional = false python-versions = ">=3.9,<3.12" @@ -1742,7 +1732,7 @@ werkzeug = "^3.0.1" type = "git" url = "https://github.com/GSA/notifications-utils.git" reference = "HEAD" -resolved_reference = "4cdd67a377f4a6dea1f96b26ba5a1a4bca9afce3" +resolved_reference = "bd604dc32ea80b5d8a1157b09653e4bd4a755a6e" [[package]] name = "numpy" From 56b3cd9fd59f7b6aed792e6678211b3d4ee0bf72 Mon Sep 17 00:00:00 2001 From: Carlo Costino Date: Wed, 13 Dec 2023 12:04:56 -0500 Subject: [PATCH 37/38] Fixed failing test given new character handling in utils update Signed-off-by: Carlo Costino --- tests/app/main/views/test_templates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/app/main/views/test_templates.py b/tests/app/main/views/test_templates.py index fd202f47d9..4fddce76d2 100644 --- a/tests/app/main/views/test_templates.py +++ b/tests/app/main/views/test_templates.py @@ -632,7 +632,7 @@ def test_should_show_sms_template_with_downgraded_unicode_characters( fake_uuid, ): msg = "here:\tare some “fancy quotes” and zero\u200Bwidth\u200Bspaces" - rendered_msg = 'here: are some "fancy quotes" and zerowidthspaces' + rendered_msg = 'here: are some “fancy quotes” and zerowidthspaces' mocker.patch( "app.service_api_client.get_service_template", From 353383d3230a4bb2de36719182c7ffed77ced64f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 17:11:55 +0000 Subject: [PATCH 38/38] Bump postcss and @uswds/compile Bumps [postcss](https://github.com/postcss/postcss) to 8.4.31 and updates ancestor dependency [@uswds/compile](https://github.com/uswds/uswds-compile). These dependencies need to be updated together. Updates `postcss` from 7.0.39 to 8.4.31 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/7.0.39...8.4.31) Updates `@uswds/compile` from 1.0.0 to 1.1.0 - [Release notes](https://github.com/uswds/uswds-compile/releases) - [Commits](https://github.com/uswds/uswds-compile/compare/v1.0.0...v1.1.0) --- updated-dependencies: - dependency-name: postcss dependency-type: indirect - dependency-name: "@uswds/compile" dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 262 ++++++++-------------------------------------- package.json | 2 +- 2 files changed, 44 insertions(+), 220 deletions(-) diff --git a/package-lock.json b/package-lock.json index 39b5837d46..e8be05aa41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "devDependencies": { "@babel/core": "7.19.6", "@babel/preset-env": "7.19.4", - "@uswds/compile": "^1.0.0", + "@uswds/compile": "^1.1.0", "better-npm-audit": "^3.7.3", "gulp": "4.0.2", "gulp-add-src": "1.0.0", @@ -2720,9 +2720,9 @@ "dev": true }, "node_modules/@types/vinyl": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.9.tgz", - "integrity": "sha512-KCr4aTEUkzSF89qw09e2oxsC/RXXT3K5ZPv4gvj3XTiWVrxNoi7WrqNTahNE/Hul5C9z3B8w+yWNTQgua12oag==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.11.tgz", + "integrity": "sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==", "dev": true, "dependencies": { "@types/expect": "^1.20.4", @@ -2745,201 +2745,23 @@ "dev": true }, "node_modules/@uswds/compile": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@uswds/compile/-/compile-1.0.0.tgz", - "integrity": "sha512-dIAL2cr6K+QnSNr/fe7Y2Db06rkxMla5VtockxHF+CYcBl3DbJ8qbMn/kxouYDX5rgN0So2PbMAouzpM7uhyMA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@uswds/compile/-/compile-1.1.0.tgz", + "integrity": "sha512-kKlszBhO13v/qa1jaNqaOWiAJjuKtASHCxjmu+OXw/wMGVdaJcNjkM8hWL9/sx4AUe07PBwlJoGPtkKRWqSxWw==", "dev": true, "dependencies": { - "autoprefixer": "10.4.13", - "del": "6.0.0", + "autoprefixer": "10.4.16", + "del": "6.1.1", "gulp": "4.0.2", "gulp-postcss": "9.0.1", "gulp-rename": "2.0.0", - "gulp-replace": "1.1.3", + "gulp-replace": "1.1.4", "gulp-sass": "5.1.0", "gulp-sourcemaps": "3.0.0", "gulp-svgstore": "9.0.0", - "postcss": "8.4.19", + "postcss": "8.4.31", "postcss-csso": "6.0.1", - "sass-embedded": "1.56.1" - } - }, - "node_modules/@uswds/compile/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@uswds/compile/node_modules/sass-embedded": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.56.1.tgz", - "integrity": "sha512-8VuohdRoGfqVWgBNeC+iqek1KXIVWYcG6AOQ6rJvRUe08HbdPQgp0+fseDQX7E5UxaoM8wvU5VBwCbZvPwFZQw==", - "dev": true, - "dependencies": { - "buffer-builder": "^0.2.0", - "google-protobuf": "^3.11.4", - "immutable": "^4.0.0", - "rxjs": "^7.4.0", - "supports-color": "^8.1.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "sass-embedded-darwin-arm64": "1.56.1", - "sass-embedded-darwin-x64": "1.56.1", - "sass-embedded-linux-arm": "1.56.1", - "sass-embedded-linux-arm64": "1.56.1", - "sass-embedded-linux-ia32": "1.56.1", - "sass-embedded-linux-x64": "1.56.1", - "sass-embedded-win32-ia32": "1.56.1", - "sass-embedded-win32-x64": "1.56.1" - } - }, - "node_modules/@uswds/compile/node_modules/sass-embedded-darwin-arm64": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.56.1.tgz", - "integrity": "sha512-Y6us8rg7uwLtAzGiKDebAhFn98RLpW3u5Jnfbsvetlm/rDJ1fZg/roVXFttepLdVbYBjimVFTUaNuGxU3bWbBA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@uswds/compile/node_modules/sass-embedded-darwin-x64": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.56.1.tgz", - "integrity": "sha512-UypB3IREbreNNc+dG+L6hG5yoeTujKDCdmu38SSSS/zl9XBFTc8McX58SWapTJOUFK8G43CCimfB3r8FOcyNfA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@uswds/compile/node_modules/sass-embedded-linux-arm": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.56.1.tgz", - "integrity": "sha512-pXv+2HlMsjlk0g3dzuVhofuUNJZWUfWVe5xbbWHv+wrdH9kuui6WOyHDhSdUolPrRXOrdsG6Z4/Balr9wa1JWQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@uswds/compile/node_modules/sass-embedded-linux-arm64": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.56.1.tgz", - "integrity": "sha512-Ly2wk8EmhjXkBpNPM+yAygSxTVIBjQlf4cDAHYgsaDUIIvRSAKAe2CUmxJjik069Qmv54g+Ac7WF6k63c2CTNw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@uswds/compile/node_modules/sass-embedded-linux-ia32": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.56.1.tgz", - "integrity": "sha512-cGmhnHdCbwJsQgsogwmlALzS/j8g+qQTiBuKBcXIWyFn4hLWo2BAr4Gm9vY5p+8aapcYrRQF9b0nwpFQcUScOg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@uswds/compile/node_modules/sass-embedded-linux-x64": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.56.1.tgz", - "integrity": "sha512-yMXS37lP3abTI5ThuydOrLacSNz4Oo9+xlfQDR0pntrugdKzH7vHWK7T7Ynd+vGjVqFajUhI+VihP7vZlhhndw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@uswds/compile/node_modules/sass-embedded-win32-ia32": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.56.1.tgz", - "integrity": "sha512-cjtuKc1O0F+yQZ8hLLYhalulEkBZ6HPdR/ys0l6hn7KTlrYooMyvZXbdU5KaB2lfK1WD29I0HefT8Em7d9cpfA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@uswds/compile/node_modules/sass-embedded-win32-x64": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.56.1.tgz", - "integrity": "sha512-VxqwSluQdNBdBEx0p6N2dOrGPIEL3AcG62KuDJ4KD/rHPQgoCPiJvLa5MXKdVHC24tHgE2AYlirILS/iE/N1NQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@uswds/compile/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "sass-embedded": "1.69.5" } }, "node_modules/@uswds/uswds": { @@ -3527,9 +3349,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", "dev": true, "funding": [ { @@ -3539,12 +3361,16 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", - "fraction.js": "^4.2.0", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -4946,9 +4772,9 @@ } }, "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", "dev": true, "dependencies": { "globby": "^11.0.1", @@ -5558,9 +5384,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -6164,12 +5990,6 @@ "node": ">= 0.10" } }, - "node_modules/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==", - "dev": true - }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -6845,12 +6665,12 @@ } }, "node_modules/gulp-replace": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.1.3.tgz", - "integrity": "sha512-HcPHpWY4XdF8zxYkDODHnG2+7a3nD/Y8Mfu3aBgMiCFDW3X2GiOKXllsAmILcxe3KZT2BXoN18WrpEFm48KfLQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.1.4.tgz", + "integrity": "sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==", "dev": true, "dependencies": { - "@types/node": "^14.14.41", + "@types/node": "*", "@types/vinyl": "^2.0.4", "istextorbinary": "^3.0.0", "replacestream": "^4.0.3", @@ -7432,9 +7252,9 @@ } }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" @@ -11752,9 +11572,9 @@ } }, "node_modules/postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { @@ -11764,10 +11584,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, diff --git a/package.json b/package.json index 5af658b123..f0bbc97f4f 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "devDependencies": { "@babel/core": "7.19.6", "@babel/preset-env": "7.19.4", - "@uswds/compile": "^1.0.0", + "@uswds/compile": "^1.1.0", "better-npm-audit": "^3.7.3", "gulp": "4.0.2", "gulp-add-src": "1.0.0",