From db17e07a9876b3370504998af49908cf28a9391b Mon Sep 17 00:00:00 2001 From: David Upton Date: Mon, 13 May 2024 10:30:05 -0400 Subject: [PATCH 01/20] Adds a fixed anchor to top of webapp component. --- .../bos_web_app/templates/paragraph--web-app.html.twig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docroot/modules/custom/bos_components/modules/bos_web_app/templates/paragraph--web-app.html.twig b/docroot/modules/custom/bos_components/modules/bos_web_app/templates/paragraph--web-app.html.twig index 62642ca0d1..7148cdbc08 100644 --- a/docroot/modules/custom/bos_components/modules/bos_web_app/templates/paragraph--web-app.html.twig +++ b/docroot/modules/custom/bos_components/modules/bos_web_app/templates/paragraph--web-app.html.twig @@ -36,6 +36,10 @@ ); {% endif %} + +{# Adds an anchor to the immediate top of the web-app anchor which apps can use for scrolling etc #} + +
{% if content.field_component_title and (content.field_hide_title_bar["#items"] and content.field_hide_title_bar["#items"][0].value == 0) %}
From bca3b9d166fcf8b9ed1a1931d8d8438a46123f2b Mon Sep 17 00:00:00 2001 From: David Upton Date: Mon, 13 May 2024 11:12:25 -0400 Subject: [PATCH 02/20] Moves http (rest testing) into private repo and ignores file --- .gitignore | 3 ++ .../modules/bos_email/bos_email.http | 50 +++++++++---------- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index b1e654b657..91bd4ec793 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,9 @@ .phpunit.result.cache patches.lock.json +#Ignore HTTPS (REST) test configs +/tests/http-client.env.json + # Ignore logfiles from setup /setup/* /setup/private/* diff --git a/docroot/modules/custom/bos_components/modules/bos_email/bos_email.http b/docroot/modules/custom/bos_components/modules/bos_email/bos_email.http index 785a3c2b5f..b332d64fdd 100644 --- a/docroot/modules/custom/bos_components/modules/bos_email/bos_email.http +++ b/docroot/modules/custom/bos_components/modules/bos_email/bos_email.http @@ -4,7 +4,7 @@ # This is **step 1** of a 2 step process to submit the contact form to Postmark for relay to a CoB email recipient. # This step posts an empty payload to the endpoint and receives back a token which is saved on the form and then used for submit form action (step 2). -POST {{url}}/rest/email_token/create +POST https://{{host}}/rest/email_token/create Authorization: Token {{bos_email_bearer_token}} > {% @@ -25,7 +25,7 @@ Authorization: Token {{bos_email_bearer_token}} # group: bos_email / session token # @name Use client-side token for Contact Form # NOTE: email[contact] is the honeypot and must be present but empty. -POST {{url}}/rest/email_session/contactform +POST https://{{host}}/rest/email_session/contactform Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/x-www-form-urlencoded Force-Service: {{ force_email_service }} @@ -60,11 +60,11 @@ email[contact] = ### # group: bos_email / sanitation # @name Sanitation on-demand confirmation: Bearer Token -POST {{url}}/rest/email/sanitation +POST https://{{host}}/rest/email/sanitation Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/json Authorization: Token {{bos_email_bearer_token}} -#Force-Service: {{ force_email_service }} +Force-Service: {{ force_email_service }} { "to_address": "{{email_test_recipient}}", @@ -91,7 +91,7 @@ Authorization: Token {{bos_email_bearer_token}} ### # group: bos_email / sanitation # @name Sanitation scheduled reminder: Bearer Token -POST {{url}}/rest/email/sanitation +POST https://{{host}}/rest/email/sanitation Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/json Authorization: Token {{bos_email_bearer_token}} @@ -127,7 +127,7 @@ Force-Service: {{ force_email_service }} ### # group: bos_email / contact form # @name Contact Form - Plain Text: Bearer Token -POST {{url}}/rest/email/contactform +POST https://{{host}}/rest/email/contactform Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: multipart/form-data; boundary=WebAppBoundary Authorization: Token {{bos_email_bearer_token}} @@ -188,7 +188,7 @@ Content-Disposition: form-data; name="email[contact]" # group: bos_email / contact form # @name Contact Form - HTML: Bearer Token -POST {{url}}/rest/email/contactform +POST https://{{host}}/rest/email/contactform Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/x-www-form-urlencoded Authorization: Token {{bos_email_bearer_token}} @@ -224,7 +224,7 @@ email[contact] = ### # group: bos_email / registry # @name Registry: Bearer Token -POST {{url}}/rest/email/registry +POST https://{{host}}/rest/email/registry Content-Type: application/x-www-form-urlencoded Authorization: Token {{bos_email_bearer_token}} Force-Service: {{ force_email_service }} @@ -254,7 +254,7 @@ email[name] = Boston Resident ### # group: bos_email / metrolist # @name Metrolist Initiation (form-data): Bearer Token -POST {{url}}/rest/email/MetrolistInitiationForm +POST https://{{host}}/rest/email/MetrolistInitiationForm Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: multipart/form-data; boundary=WebAppBoundary Authorization: Token {{bos_email_bearer_token}} @@ -279,7 +279,7 @@ boston.gov/here --WebAppBoundary Content-Disposition: form-data; name="email[message]" -{{url}}/form/metrolist-listing?token=abctesttoken +https://{{host}}/form/metrolist-listing?token=abctesttoken --WebAppBoundary Content-Disposition: form-data; name="email[subject]" @@ -307,7 +307,7 @@ Content-Disposition: form-data; name="email[useHtml]" ### # group: bos_email / metrolist # @name Metrolist Initiation (json): Bearer Token -POST {{url}}/rest/email/MetrolistInitiationForm +POST https://{{host}}/rest/email/MetrolistInitiationForm Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/json Authorization: Token {{bos_email_bearer_token}} @@ -345,7 +345,7 @@ Force-Service: {{ force_email_service }} ### # group: bos_email / metrolist # @name Metrolist Confirmation (form-data): Bearer Token -POST {{url}}/rest/email/MetrolistListingConfirmation +POST https://{{host}}/rest/email/MetrolistListingConfirmation Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: multipart/form-data; boundary=WebAppBoundary Authorization: Token {{bos_email_bearer_token}} @@ -402,7 +402,7 @@ Davids Property ### # group: bos_email / metrolist # @name Metrolist Notification (form-data): Bearer Token -POST {{url}}/rest/email/MetrolistListingNotification +POST https://{{host}}/rest/email/MetrolistListingNotification Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: multipart/form-data; boundary=WebAppBoundary Authorization: Token {{bos_email_bearer_token}} @@ -467,7 +467,7 @@ Content-Disposition: form-data; name="new" ### # group: bos_email / inbound # @name Incoming Webhook (POSTMARK) -POST {{url}}/rest/email/postmark/Contactform/inbound +POST https://{{host}}/rest/email/postmark/Contactform/inbound Content-Type: application/json Force-Service: PostmarkService @@ -709,7 +709,7 @@ Force-Service: PostmarkService ### # group: bos_email / Cancel # @name Cancel Scheduled Email: Bearer Token -POST {{url}}/rest/email_cancel/sanitation +POST https://{{host}}/rest/email_cancel/sanitation Content-Type: application/json Authorization: Token {{bos_email_bearer_token}} Force-Service: {{ force_email_service }} @@ -728,7 +728,7 @@ Force-Service: {{ force_email_service }} ### # group: bos_email / fail-test # @name Bad Session Token -POST {{url}}/rest/email_session/contactform +POST https://{{host}}/rest/email_session/contactform Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/x-www-form-urlencoded Force-Service: {{ force_email_service }} @@ -759,7 +759,7 @@ email[contact] = ### # group: bos_email / fail-test # @name Bad/No token in sanitation -POST {{url}}/rest/email/sanitation +POST https://{{host}}/rest/email/sanitation Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/json Authorization: Token asdfghjklqwertyui @@ -789,7 +789,7 @@ Force-Service: {{ force_email_service }} ### # group: bos_email / fail-test # @name Bad Scheduled Date: Bearer Token -POST {{url}}/rest/email/sanitation +POST https://{{host}}/rest/email/sanitation Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/json Authorization: Token {{bos_email_bearer_token}} @@ -821,7 +821,7 @@ Force-Service: {{ force_email_service }} ### # group: bos_email / fail-test # @name Past Scheduled Date: Bearer Token -POST {{url}}/rest/email/sanitation +POST https://{{host}}/rest/email/sanitation Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/json Authorization: Token {{bos_email_bearer_token}} @@ -853,7 +853,7 @@ Force-Service: {{ force_email_service }} ### # group: bos_email / fail-test # @name >400 day Scheduled Date: Bearer Token -POST {{url}}/rest/email/sanitation +POST https://{{host}}/rest/email/sanitation Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/json Authorization: Token {{bos_email_bearer_token}} @@ -885,7 +885,7 @@ Force-Service: {{ force_email_service }} ### # group: bos_email / fail-test # @name Missing Bearer Token -POST {{url}}/rest/email/contactform +POST https://{{host}}/rest/email/contactform Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/x-www-form-urlencoded Force-Service: {{ force_email_service }} @@ -915,14 +915,14 @@ email[contact] = ### # group: bos_email / fail-test # @name Blocked User: ONLY POSTMARK -POST {{url}}/rest/email/contactform +POST https://{{host}}/rest/email/contactform Cookie: XDEBUG_SESSION=PHPSTORM #X-PM-Bounce-Type: hardbounce Content-Type: application/x-www-form-urlencoded Authorization: Token {{bos_email_bearer_token}} Force-Service: PostmarkService -email[to_address] = blocked@boston.gov & +email[to_address] = Blocked@bounce-testing.postmarkapp.com & email[name] = Blocked Email Recipient & email[from_address] = HardBounce@bounce-testing.postmarkapp.com & email[subject] = SHOULD NOT APPEAR IN POSTMARK & @@ -948,7 +948,7 @@ email[contact] = ### # group: bos_email / fail-test # @name Honeypot Fail -POST {{url}}/rest/email/contactform +POST https://{{host}}/rest/email/contactform Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/x-www-form-urlencoded Authorization: Token {{bos_email_bearer_token}} @@ -980,7 +980,7 @@ email[contact] = should be empty ### # group: bos_email / fail-test # @name Bad email -POST {{url}}/rest/email/sanitation +POST https://{{host}}/rest/email/sanitation Cookie: XDEBUG_SESSION=PHPSTORM Content-Type: application/json Authorization: Token {{bos_email_bearer_token}} From 26aec61476eb9f5236dc8e5b61c6098b0a82b6e6 Mon Sep 17 00:00:00 2001 From: David Upton Date: Mon, 13 May 2024 11:59:14 -0400 Subject: [PATCH 03/20] Fixes minor runtime issue with events_and_notices --- .../bos_events_and_notices/bos_events_and_notices.module | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docroot/modules/custom/bos_components/modules/bos_events_and_notices/bos_events_and_notices.module b/docroot/modules/custom/bos_components/modules/bos_events_and_notices/bos_events_and_notices.module index 1b5715f0f0..83218706e4 100644 --- a/docroot/modules/custom/bos_components/modules/bos_events_and_notices/bos_events_and_notices.module +++ b/docroot/modules/custom/bos_components/modules/bos_events_and_notices/bos_events_and_notices.module @@ -120,7 +120,7 @@ function bos_events_and_notices_preprocess_views_view_fields__events_and_notices } } - if (isset($variables["date_recur"])) { + if (!empty($variables["date_recur"])) { // Force into the boston featured date format. $variables["date_recur"] = \Drupal::service('date.formatter')->format(strtotime($variables["date_recur"]), "date_format_boston_featured"); } From e4ba5e0d8f183bcde20e89379bd5efcfba613036 Mon Sep 17 00:00:00 2001 From: David Upton Date: Mon, 13 May 2024 12:00:26 -0400 Subject: [PATCH 04/20] Switches Site Alert icon display type to remove titling on svg --- .../core.entity_view_display.node.site_alert.default.yml | 9 ++++++--- .../core.entity_view_display.node.site_alert.default.yml | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/config/default/core.entity_view_display.node.site_alert.default.yml b/config/default/core.entity_view_display.node.site_alert.default.yml index 3904b2aa80..648596a6fc 100644 --- a/config/default/core.entity_view_display.node.site_alert.default.yml +++ b/config/default/core.entity_view_display.node.site_alert.default.yml @@ -15,6 +15,7 @@ dependencies: - datetime_range - entity_reference_revisions - fences + - media - options - user id: node.site_alert.default @@ -59,11 +60,13 @@ content: weight: 2 region: content field_icon: - type: entity_reference_entity_view + type: media_thumbnail label: hidden settings: - view_mode: thumbnail - link: false + image_link: '' + image_style: '' + image_loading: + attribute: lazy third_party_settings: fences: fences_field_tag: none diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/config/install/core.entity_view_display.node.site_alert.default.yml b/docroot/modules/custom/bos_content/modules/node_site_alert/config/install/core.entity_view_display.node.site_alert.default.yml index 191accb98d..3904b2aa80 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/config/install/core.entity_view_display.node.site_alert.default.yml +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/config/install/core.entity_view_display.node.site_alert.default.yml @@ -1,3 +1,4 @@ +uuid: fcefacdd-00b8-4109-b5b3-966e28d3f6a0 langcode: en status: true dependencies: From 13382cffc9b228b2ee131d4baf844564d89cccc9 Mon Sep 17 00:00:00 2001 From: David Upton Date: Mon, 13 May 2024 12:00:46 -0400 Subject: [PATCH 05/20] Adds css to better locate icon and remove for mobile --- .../modules/node_site_alert/css/site-alert.boston.css | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css b/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css index 07fae67c0c..9d9e473e18 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css @@ -36,3 +36,13 @@ .sa .node-site-alert { display: block; } + +.sa .fyi-i { + width: 90px; +} + +@media screen and (max-width: 480px) { + .sa .fyi-i { + display:none; + } +} From 40b64d70c3da01c5cbdff609ca79536c65db708f Mon Sep 17 00:00:00 2001 From: David Upton Date: Tue, 14 May 2024 12:14:42 -0400 Subject: [PATCH 06/20] Updates Site Alert with included fields + refactor --- .../block.block.bos_theme_feedbackform.yml | 2 +- ...s_block__site_alerts_block_site_alerts.yml | 24 ++++++++ .../default/block.block.mainpagecontent.yml | 2 +- .../default/block.block.ml_listing_entry.yml | 2 +- config/default/block.block.webform.yml | 2 +- .../block.block.website_feedback_form.yml | 2 +- ...y_form_display.node.site_alert.default.yml | 33 +++++++---- ...y_view_display.node.site_alert.default.yml | 24 +++++++- ...ity_view_display.node.site_alert.embed.yml | 2 + ...ty_view_display.node.site_alert.teaser.yml | 3 + ...d.node.site_alert.field_included_nodes.yml | 57 +++++++++++++++++++ config/default/views.view.site_alerts.yml | 45 ++++++++++++--- .../node_site_alert/css/site-alert.boston.css | 39 ++++++++----- .../node_site_alert/node_site_alert.module | 50 ++++++++++++++-- .../templates/node--site-alert.html.twig | 16 ++++++ .../bos_theme/templates/layout/page.html.twig | 53 ++++++++++++++--- 16 files changed, 305 insertions(+), 51 deletions(-) create mode 100644 config/default/block.block.bos_theme_views_block__site_alerts_block_site_alerts.yml create mode 100644 config/default/field.field.node.site_alert.field_included_nodes.yml diff --git a/config/default/block.block.bos_theme_feedbackform.yml b/config/default/block.block.bos_theme_feedbackform.yml index e445ef7895..3933519996 100644 --- a/config/default/block.block.bos_theme_feedbackform.yml +++ b/config/default/block.block.bos_theme_feedbackform.yml @@ -10,7 +10,7 @@ dependencies: id: bos_theme_feedbackform theme: bos_theme region: content -weight: 8 +weight: 0 provider: null plugin: feedback_form settings: diff --git a/config/default/block.block.bos_theme_views_block__site_alerts_block_site_alerts.yml b/config/default/block.block.bos_theme_views_block__site_alerts_block_site_alerts.yml new file mode 100644 index 0000000000..242cdbe00b --- /dev/null +++ b/config/default/block.block.bos_theme_views_block__site_alerts_block_site_alerts.yml @@ -0,0 +1,24 @@ +uuid: d57d760f-bbb7-4dd4-b80b-491db117159e +langcode: en +status: true +dependencies: + config: + - views.view.site_alerts + module: + - views + theme: + - bos_theme +id: bos_theme_views_block__site_alerts_block_site_alerts +theme: bos_theme +region: site_alert +weight: 0 +provider: null +plugin: 'views_block:site_alerts-block_site_alerts' +settings: + id: 'views_block:site_alerts-block_site_alerts' + label: '' + label_display: '0' + provider: views + views_label: '' + items_per_page: none +visibility: { } diff --git a/config/default/block.block.mainpagecontent.yml b/config/default/block.block.mainpagecontent.yml index bc73194c68..e2cd325877 100644 --- a/config/default/block.block.mainpagecontent.yml +++ b/config/default/block.block.mainpagecontent.yml @@ -9,7 +9,7 @@ dependencies: id: mainpagecontent theme: bos_theme region: content -weight: 0 +weight: -3 provider: null plugin: system_main_block settings: diff --git a/config/default/block.block.ml_listing_entry.yml b/config/default/block.block.ml_listing_entry.yml index be9ecc608d..fb81898ccd 100644 --- a/config/default/block.block.ml_listing_entry.yml +++ b/config/default/block.block.ml_listing_entry.yml @@ -12,7 +12,7 @@ dependencies: id: ml_listing_entry theme: bos_theme region: content -weight: 1 +weight: -2 provider: null plugin: webform_block settings: diff --git a/config/default/block.block.webform.yml b/config/default/block.block.webform.yml index 1b49bce403..08f66f7c98 100644 --- a/config/default/block.block.webform.yml +++ b/config/default/block.block.webform.yml @@ -12,7 +12,7 @@ dependencies: id: webform theme: bos_theme region: content -weight: 2 +weight: -1 provider: null plugin: webform_block settings: diff --git a/config/default/block.block.website_feedback_form.yml b/config/default/block.block.website_feedback_form.yml index 71b394b8bc..400a2f43cf 100644 --- a/config/default/block.block.website_feedback_form.yml +++ b/config/default/block.block.website_feedback_form.yml @@ -12,7 +12,7 @@ dependencies: id: website_feedback_form theme: bos_theme region: content -weight: 10 +weight: 1 provider: null plugin: webform_block settings: diff --git a/config/default/core.entity_form_display.node.site_alert.default.yml b/config/default/core.entity_form_display.node.site_alert.default.yml index eafed450eb..9f21ca85a1 100644 --- a/config/default/core.entity_form_display.node.site_alert.default.yml +++ b/config/default/core.entity_form_display.node.site_alert.default.yml @@ -8,6 +8,7 @@ dependencies: - field.field.node.site_alert.field_excluded_nodes - field.field.node.site_alert.field_extra_info - field.field.node.site_alert.field_icon + - field.field.node.site_alert.field_included_nodes - field.field.node.site_alert.field_link - field.field.node.site_alert.field_theme - field.field.node.site_alert.title_field @@ -46,13 +47,15 @@ third_party_settings: group_exclude: children: - field_excluded_nodes - label: 'Exclude pages' + - field_included_nodes + label: 'Page Visibility' region: content parent_name: group_vertical_ weight: 1 format_type: tab format_settings: classes: 'group-exclude field-group-tab' + show_empty_fields: false id: '' formatter: closed description: '' @@ -77,7 +80,7 @@ mode: default content: created: type: datetime_timestamp - weight: 3 + weight: 4 region: content settings: { } third_party_settings: { } @@ -122,6 +125,16 @@ content: view_mode: thumbnail selection_mode: selection_append third_party_settings: { } + field_included_nodes: + type: entity_reference_autocomplete + weight: 11 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } field_link: type: paragraphs weight: 30 @@ -156,39 +169,39 @@ content: third_party_settings: { } moderation_state: type: moderation_state_default - weight: 10 + weight: 11 region: content settings: { } third_party_settings: { } path: type: path - weight: 7 + weight: 8 region: content settings: { } third_party_settings: { } promote: type: boolean_checkbox - weight: 5 + weight: 6 region: content settings: display_label: true third_party_settings: { } published_at: type: publication_date_timestamp - weight: 4 + weight: 5 region: content settings: { } third_party_settings: { } status: type: boolean_checkbox - weight: 9 + weight: 10 region: content settings: display_label: true third_party_settings: { } sticky: type: boolean_checkbox - weight: 6 + weight: 7 region: content settings: display_label: true @@ -210,7 +223,7 @@ content: third_party_settings: { } uid: type: entity_reference_autocomplete - weight: 2 + weight: 3 region: content settings: match_operator: CONTAINS @@ -219,7 +232,7 @@ content: placeholder: '' third_party_settings: { } url_redirects: - weight: 8 + weight: 9 region: content settings: { } third_party_settings: { } diff --git a/config/default/core.entity_view_display.node.site_alert.default.yml b/config/default/core.entity_view_display.node.site_alert.default.yml index 648596a6fc..d57456e6de 100644 --- a/config/default/core.entity_view_display.node.site_alert.default.yml +++ b/config/default/core.entity_view_display.node.site_alert.default.yml @@ -7,6 +7,7 @@ dependencies: - field.field.node.site_alert.field_excluded_nodes - field.field.node.site_alert.field_extra_info - field.field.node.site_alert.field_icon + - field.field.node.site_alert.field_included_nodes - field.field.node.site_alert.field_link - field.field.node.site_alert.field_theme - field.field.node.site_alert.title_field @@ -41,7 +42,14 @@ content: type: entity_reference_entity_id label: hidden settings: { } - third_party_settings: { } + third_party_settings: + fences: + fences_field_tag: none + fences_field_classes: '' + fences_field_item_tag: none + fences_field_item_classes: '' + fences_label_tag: none + fences_label_classes: '' weight: 5 region: content field_extra_info: @@ -77,6 +85,20 @@ content: fences_label_classes: '' weight: 0 region: content + field_included_nodes: + type: entity_reference_entity_id + label: hidden + settings: { } + third_party_settings: + fences: + fences_field_tag: none + fences_field_classes: '' + fences_field_item_tag: none + fences_field_item_classes: '' + fences_label_tag: none + fences_label_classes: '' + weight: 6 + region: content field_link: type: entity_reference_revisions_entity_view label: hidden diff --git a/config/default/core.entity_view_display.node.site_alert.embed.yml b/config/default/core.entity_view_display.node.site_alert.embed.yml index 0c004590b3..f417cc6fa7 100644 --- a/config/default/core.entity_view_display.node.site_alert.embed.yml +++ b/config/default/core.entity_view_display.node.site_alert.embed.yml @@ -8,6 +8,7 @@ dependencies: - field.field.node.site_alert.field_excluded_nodes - field.field.node.site_alert.field_extra_info - field.field.node.site_alert.field_icon + - field.field.node.site_alert.field_included_nodes - field.field.node.site_alert.field_link - field.field.node.site_alert.field_theme - field.field.node.site_alert.title_field @@ -96,6 +97,7 @@ content: hidden: content_moderation_control: true field_date_range: true + field_included_nodes: true langcode: true links: true published_at: true diff --git a/config/default/core.entity_view_display.node.site_alert.teaser.yml b/config/default/core.entity_view_display.node.site_alert.teaser.yml index 69d06f672a..ce04ec6ce4 100644 --- a/config/default/core.entity_view_display.node.site_alert.teaser.yml +++ b/config/default/core.entity_view_display.node.site_alert.teaser.yml @@ -4,9 +4,11 @@ status: true dependencies: config: - core.entity_view_mode.node.teaser + - field.field.node.site_alert.field_date_range - field.field.node.site_alert.field_excluded_nodes - field.field.node.site_alert.field_extra_info - field.field.node.site_alert.field_icon + - field.field.node.site_alert.field_included_nodes - field.field.node.site_alert.field_link - field.field.node.site_alert.field_theme - field.field.node.site_alert.title_field @@ -24,6 +26,7 @@ hidden: field_excluded_nodes: true field_extra_info: true field_icon: true + field_included_nodes: true field_link: true field_theme: true langcode: true diff --git a/config/default/field.field.node.site_alert.field_included_nodes.yml b/config/default/field.field.node.site_alert.field_included_nodes.yml new file mode 100644 index 0000000000..ea0b01c45b --- /dev/null +++ b/config/default/field.field.node.site_alert.field_included_nodes.yml @@ -0,0 +1,57 @@ +uuid: 2bbdb60d-5c9d-4bfc-b487-9065e5888a13 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_included_nodes + - node.type.article + - node.type.department_profile + - node.type.event + - node.type.how_to + - node.type.landing_page + - node.type.listing_page + - node.type.metrolist_affordable_housing + - node.type.person_profile + - node.type.place_profile + - node.type.post + - node.type.program_initiative_profile + - node.type.public_notice + - node.type.script_page + - node.type.site_alert + - node.type.tabbed_content + - node.type.topic_page +id: node.site_alert.field_included_nodes +field_name: field_included_nodes +entity_type: node +bundle: site_alert +label: 'Show on Pages' +description: "Site Alerts show on all pages by default.
\r\nAdd pages here to restrict where the Site Alert is shown." +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:node' + handler_settings: + target_bundles: + article: article + department_profile: department_profile + event: event + topic_page: topic_page + how_to: how_to + landing_page: landing_page + listing_page: listing_page + metrolist_affordable_housing: metrolist_affordable_housing + person_profile: person_profile + place_profile: place_profile + post: post + program_initiative_profile: program_initiative_profile + public_notice: public_notice + script_page: script_page + tabbed_content: tabbed_content + sort: + field: _none + direction: ASC + auto_create: false + auto_create_bundle: article +field_type: entity_reference diff --git a/config/default/views.view.site_alerts.yml b/config/default/views.view.site_alerts.yml index 1ca7162a40..f5ca557b9e 100644 --- a/config/default/views.view.site_alerts.yml +++ b/config/default/views.view.site_alerts.yml @@ -407,12 +407,8 @@ display: offset: 0 items_per_page: 3 cache: - type: time - options: - results_lifespan: 0 - results_lifespan_custom: 0 - output_lifespan: 60 - output_lifespan_custom: 0 + type: tag + options: { } sorts: changed: id: changed @@ -430,7 +426,39 @@ display: field_identifier: changed exposed: false granularity: second - arguments: { } + arguments: + 'null': + id: 'null' + table: views + field: 'null' + relationship: none + group_type: group + admin_label: 'Used to grab the nid of the calling node.' + plugin_id: 'null' + default_action: default + exception: + value: all + title_enable: false + title: All + title_enable: false + title: '' + default_argument_type: node + default_argument_options: { } + summary_options: + base_path: '' + count: true + override: false + items_per_page: 25 + summary: + sort_order: asc + number_of_records: 0 + format: default_summary + specify_validation: false + validate: + type: none + fail: 'not found' + validate_options: { } + must_not_be: false filters: status: id: status @@ -656,7 +684,7 @@ display: filter_groups: false relationships: { } display_description: 'Site Alerts Block. Place in Site Alerts region.' - show_admin_links: false + show_admin_links: true display_comment: '' display_extenders: { } block_description: 'Site Alerts' @@ -668,6 +696,7 @@ display: contexts: - 'languages:language_content' - 'languages:language_interface' + - url - 'user.node_grants:view' - user.permissions tags: { } diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css b/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css index 9d9e473e18..4cb865489d 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css @@ -1,14 +1,24 @@ +/** + Adds a white line between multiple site alerts. + */ +div#sa-a.b--dark-blue, +div#sa-a.b--red { + border-bottom: 1px solid #fff; +} + /** Locate contextual button out of the way of the main page button. */ #sa-a .contextual { margin-right: 70px; + z-index: 1000; + display: block; } /** - Manage seal. + Manage seal, if this css is loaded, then the seal is hidden. */ -#page.sa #main-menu #seal.s { +#page #main-menu #seal { -webkit-transform: translateX(-50%) translateY(0%); transform: translateX(-50%) translateY(0%); box-shadow: none; @@ -18,31 +28,34 @@ /** Manage Topic-pages hero image when have site alert. */ -#page.sa:not(.page--fp) .main-content { +#page:not(.page--fp) .main-content { top: 0; position: relative; } -#page.sa .hero-image { +#page .hero-image { padding-top: 0; } -#page.sa .hero-image-wrapper:after { +#page .hero-image-wrapper:after { top: 0; } /* Enable/disable site alerts using the sa class */ -.node-site-alert { - display: none; -} -.sa .node-site-alert { - display: block; -} +/*.node-site-alert {*/ +/* !* display: none; *!*/ +/*}*/ +/*.sa .node-site-alert {*/ +/* display: block;*/ +/*}*/ -.sa .fyi-i { +/** + Constrain and locate the icon, and remove for mobile. + */ +div.fyi-i { width: 90px; } @media screen and (max-width: 480px) { - .sa .fyi-i { + div.fyi-i { display:none; } } diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module b/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module index 5b9e702ea0..6b72c44d85 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module @@ -78,6 +78,7 @@ function node_site_alert_form_alter(&$form, FormStateInterface $form_state, $for function node_site_alert_preprocess_field_multiple_value_form(array &$variables) { _bos_core_rename_multiple_button($variables, "site_alert", [ "field_excluded_nodes" => "Exclude another page", + "field_included_nodes" => "Include another page", ]); } @@ -87,6 +88,7 @@ function node_site_alert_preprocess_field_multiple_value_form(array &$variables) function node_site_alert_preprocess_page(&$variables) { // Check if we have any active site-alerts. // Call the view passing in the homepage to see if we have an alert set ATM. + return; if ($view = Views::getView("site_alerts")) { $view->setDisplay("block_site_alerts"); if (isset($variables["node"]) && is_numeric($variables["node"])) { @@ -168,9 +170,9 @@ function node_site_alert_preprocess_node__site_alert(&$variables) { // Set classes. $variables['attributes']['id'] = "sa-a"; - $variables['attributes']['class'][] = "b"; +// $variables['attributes']['class'][] = "b"; $variables['attributes']['class'][] = "b--" . $variables['block_theme']; - $variables['attributes']['class'][] = "b--fw"; +// $variables['attributes']['class'][] = "b--fw"; } /** @@ -180,8 +182,8 @@ function node_site_alert_preprocess_block(&$variables) { if (!isset($variables["content"]["#view"]->current_display) || (isset($variables["content"]["#view"]->current_display) && $variables["content"]["#view"]->current_display != "block_site_alerts")) { return; } - $variables["attributes"]["class"][] = "d--n node-site-alert"; - $variables["attributes"]["id"] = "sa"; +// $variables["attributes"]["class"][] = "d--n node-site-alert"; +// $variables["attributes"]["id"] = "sa"; } /** @@ -195,8 +197,46 @@ function node_site_alert_views_post_render(ViewExecutable $view, &$output, Cache $line["#row"]->_entity->setTitle($line['#row']->node_field_data_title . " (" . $line['#row']->_entity->getType() . ")"); } } -} + if ($view->id() == "site_alerts" && $view->current_display == "block_site_alerts") { + // DIG-4391- May 2024 + if (!empty($output["#rows"])) { + // The output is already filtered for display dates. + // We need to check if the current node is in the list of excluded/included nodes. + $nid = $view->args[0] ?? NULL; + if ($nid) { + foreach ($output["#rows"] as $sa => &$row) { + $site_alert = $row["#rows"][0]["#node"]; + $included = $site_alert->field_included_nodes->getValue(); + array_walk($included, function (&$value, $key) {$value = $value["target_id"];}); + if ($included == [] || + ($included && in_array($nid, $included))) { + // Site Alert appears on all nodes, or + // Permitted to display on this node. + } + else { + unset($output["#rows"][$sa]["#rows"]); + if (empty($output["#rows"][$sa]["#rows"])) { + unset($output["#rows"][$sa]); + } + } + $excluded = $site_alert->field_excluded_nodes->getValue(); + array_walk($excluded, function (&$value, $key) {$value = $value["target_id"];}); + if ($excluded == [] ) { + // No Exclusions applied, or + // Permitted to display on this node. + } + elseif ($excluded && in_array($nid, $excluded)) { + unset($output["#rows"][$sa]["#rows"]); + if (empty($output["#rows"][$sa]["#rows"])) { + unset($output["#rows"][$sa]); + } + } + } + } + } + } +} /** * Implements hook_theme_suggestions_HOOK(). * diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig b/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig index 44cb9c9abf..28f86f2cc2 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig @@ -27,6 +27,22 @@ * @see template_process() #} + + {% if (title_prefix or title_suffix) %} +
+ + {{ title_prefix }} + +{# {% if (not page) and title %}#} +{# {{ title }}#} +{# {% endif %}#} + + {{ title_suffix }} + +
+ {% endif %} + +
{% if content.field_icon["#items"] %} diff --git a/docroot/themes/custom/bos_theme/templates/layout/page.html.twig b/docroot/themes/custom/bos_theme/templates/layout/page.html.twig index a799ebdadc..1d4cfe130b 100644 --- a/docroot/themes/custom/bos_theme/templates/layout/page.html.twig +++ b/docroot/themes/custom/bos_theme/templates/layout/page.html.twig @@ -148,7 +148,10 @@ {{ site_banner }} -
-{{ page.bottom }} +{% block Modal %} + {# Defines the Themes Bottom Region #} + {# This is not really implemented in boston.gov (May 2024) #} + {{ page.modal }} +{% endblock %} + +{% block Bottom %} + {# Defines the Themes Bottom Region #} + {# This is not really implemented in boston.gov (May 2024) #} + {{ page.bottom }} +{% endblock %} From a04f627956603059c490e9c71eed134a570fd948 Mon Sep 17 00:00:00 2001 From: David Upton Date: Tue, 14 May 2024 16:57:58 -0400 Subject: [PATCH 07/20] Changes view caching, contextual links and refactor --- config/default/views.view.site_alerts.yml | 10 ++- .../node_site_alert/node_site_alert.module | 79 ++++++++++--------- .../templates/node--site-alert.html.twig | 24 +++--- .../themes/custom/bos_theme/bos_theme.theme | 3 +- 4 files changed, 61 insertions(+), 55 deletions(-) diff --git a/config/default/views.view.site_alerts.yml b/config/default/views.view.site_alerts.yml index f5ca557b9e..c153eb55e1 100644 --- a/config/default/views.view.site_alerts.yml +++ b/config/default/views.view.site_alerts.yml @@ -407,8 +407,12 @@ display: offset: 0 items_per_page: 3 cache: - type: tag - options: { } + type: time + options: + results_lifespan: 300 + results_lifespan_custom: 0 + output_lifespan: 300 + output_lifespan_custom: 0 sorts: changed: id: changed @@ -684,7 +688,7 @@ display: filter_groups: false relationships: { } display_description: 'Site Alerts Block. Place in Site Alerts region.' - show_admin_links: true + show_admin_links: false display_comment: '' display_extenders: { } block_description: 'Site Alerts' diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module b/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module index 6b72c44d85..0a62e477a2 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module @@ -188,48 +188,51 @@ function node_site_alert_preprocess_block(&$variables) { /** * Implements hook_views_post_render(). - * - * Rewrites the autocomplete list for excluded pages. - */ + */ function node_site_alert_views_post_render(ViewExecutable $view, &$output, CachePluginBase $cache) { - if ($view->id() == "site_alerts" && $view->current_display == "exclude_pages_autocomplete") { - foreach ($output as &$line) { - $line["#row"]->_entity->setTitle($line['#row']->node_field_data_title . " (" . $line['#row']->_entity->getType() . ")"); + if ($view->id() == "site_alerts") { + + if ($view->current_display == "exclude_pages_autocomplete") { + // Rewrites the autocomplete list for excluded pages. + foreach ($output as &$line) { + $line["#row"]->_entity->setTitle($line['#row']->node_field_data_title . " (" . $line['#row']->_entity->getType() . ")"); + } } - } - if ($view->id() == "site_alerts" && $view->current_display == "block_site_alerts") { - // DIG-4391- May 2024 - if (!empty($output["#rows"])) { - // The output is already filtered for display dates. - // We need to check if the current node is in the list of excluded/included nodes. - $nid = $view->args[0] ?? NULL; - if ($nid) { - foreach ($output["#rows"] as $sa => &$row) { - $site_alert = $row["#rows"][0]["#node"]; - $included = $site_alert->field_included_nodes->getValue(); - array_walk($included, function (&$value, $key) {$value = $value["target_id"];}); - if ($included == [] || - ($included && in_array($nid, $included))) { - // Site Alert appears on all nodes, or - // Permitted to display on this node. - } - else { - unset($output["#rows"][$sa]["#rows"]); - if (empty($output["#rows"][$sa]["#rows"])) { - unset($output["#rows"][$sa]); + + if ($view->current_display == "block_site_alerts") { + // DIG-4391- May 2024 + if (!empty($output["#rows"])) { + // The output is already filtered for display dates. + // We need to check if the current node is in the list of excluded/included nodes. + $nid = $view->args[0] ?? NULL; + if ($nid) { + foreach ($output["#rows"] as $sa => &$row) { + $site_alert = $row["#rows"][0]["#node"]; + $included = $site_alert->field_included_nodes->getValue(); + array_walk($included, function(&$value, $key) { $value = $value["target_id"]; }); + if ($included == [] || + ($included && in_array($nid, $included))) { + // Site Alert appears on all nodes, or + // Permitted to display on this node. + } + else { + unset($output["#rows"][$sa]["#rows"]); + if (empty($output["#rows"][$sa]["#rows"])) { + unset($output["#rows"][$sa]); + } } - } - $excluded = $site_alert->field_excluded_nodes->getValue(); - array_walk($excluded, function (&$value, $key) {$value = $value["target_id"];}); - if ($excluded == [] ) { - // No Exclusions applied, or - // Permitted to display on this node. - } - elseif ($excluded && in_array($nid, $excluded)) { - unset($output["#rows"][$sa]["#rows"]); - if (empty($output["#rows"][$sa]["#rows"])) { - unset($output["#rows"][$sa]); + $excluded = $site_alert->field_excluded_nodes->getValue(); + array_walk($excluded, function(&$value, $key) { $value = $value["target_id"]; }); + if ($excluded == []) { + // No Exclusions applied, or + // Permitted to display on this node. + } + elseif ($excluded && in_array($nid, $excluded)) { + unset($output["#rows"][$sa]["#rows"]); + if (empty($output["#rows"][$sa]["#rows"])) { + unset($output["#rows"][$sa]); + } } } } diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig b/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig index 28f86f2cc2..e118c273b5 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig @@ -29,36 +29,36 @@ {% if (title_prefix or title_suffix) %} + {# This allows the injection of the contextual menu links #}
- - {{ title_prefix }} - -{# {% if (not page) and title %}#} -{# {{ title }}#} -{# {% endif %}#} - + {{ title_prefix }} {{ title_suffix }} -
{% endif %} -
+ {% if content.field_icon["#items"] %}
{{ content.field_icon }}
{% endif %} + {% if content.title_field %}
{{ content.title_field|raw }}
{% endif %} +
/
{{ content.field_extra_info }}
+ {{ content.field_link }} +
- {% if content.title_suffix %} - {{ content.title_suffix }} - {% endif %} + +{# {% if content.title_suffix %}#} +{# {{ content.title_suffix }}#} +{# {% endif %}#} +
diff --git a/docroot/themes/custom/bos_theme/bos_theme.theme b/docroot/themes/custom/bos_theme/bos_theme.theme index 90d2ff55b8..542f61c730 100755 --- a/docroot/themes/custom/bos_theme/bos_theme.theme +++ b/docroot/themes/custom/bos_theme/bos_theme.theme @@ -157,8 +157,7 @@ function bos_theme_preprocess(array &$variables, $hook) { 'boston_layout' => theme_get_setting('boston_layout'), ]; // A variable to define the cache buster. - $variables['cache_buster'] = \Drupal::state() - ->get('system.css_js_query_string'); + $variables['cache_buster'] = \Drupal::service('asset.query_string')->get(); $mode = _bos_theme_library(); $lib = \Drupal::service('library.discovery') ->getLibraryByName('bos_theme', 'global-styling.' . $mode); From 87c63e46adff6fad55f096fc4b672f0967c2308b Mon Sep 17 00:00:00 2001 From: David Upton Date: Tue, 14 May 2024 19:17:44 -0400 Subject: [PATCH 08/20] Updates help messages on form --- config/default/block.block.mainmenu.yml | 2 +- ...y_form_display.node.site_alert.default.yml | 4 +- ...d.node.site_alert.field_excluded_nodes.yml | 2 +- ...d.node.site_alert.field_included_nodes.yml | 2 +- .../node_site_alert/css/site-alert.boston.css | 4 + .../node_site_alert/node_site_alert.module | 81 +------------------ .../templates/node--site-alert.html.twig | 10 +-- 7 files changed, 13 insertions(+), 92 deletions(-) diff --git a/config/default/block.block.mainmenu.yml b/config/default/block.block.mainmenu.yml index ea8d5429e7..673ea12bc0 100644 --- a/config/default/block.block.mainmenu.yml +++ b/config/default/block.block.mainmenu.yml @@ -11,7 +11,7 @@ dependencies: id: mainmenu theme: bos_theme region: navigation -weight: -1 +weight: -3 provider: null plugin: 'menu_block:main' settings: diff --git a/config/default/core.entity_form_display.node.site_alert.default.yml b/config/default/core.entity_form_display.node.site_alert.default.yml index 9f21ca85a1..de80cde328 100644 --- a/config/default/core.entity_form_display.node.site_alert.default.yml +++ b/config/default/core.entity_form_display.node.site_alert.default.yml @@ -54,11 +54,11 @@ third_party_settings: weight: 1 format_type: tab format_settings: - classes: 'group-exclude field-group-tab' + classes: 'group-exclude field-group-tab t--cb t--s300' show_empty_fields: false id: '' formatter: closed - description: '' + description: "By default, the Site Alert appears on all pages on the site.
\r\nUse this section to control which pages you do not wish the Alert to show on, or to specify the specific pages that you only want the Alert to show on.
" required_fields: true group_vertical_: children: diff --git a/config/default/field.field.node.site_alert.field_excluded_nodes.yml b/config/default/field.field.node.site_alert.field_excluded_nodes.yml index 3a1ae0f12b..143646d45d 100644 --- a/config/default/field.field.node.site_alert.field_excluded_nodes.yml +++ b/config/default/field.field.node.site_alert.field_excluded_nodes.yml @@ -10,7 +10,7 @@ field_name: field_excluded_nodes entity_type: node bundle: site_alert label: 'Pages to exclude' -description: "If you don't want this alert to show on a specific page, add them here." +description: "If you don't want this alert to show on specific pages, add them here.
\r\nNote: Pages excluded here take precedence over any pages which are included below." required: false translatable: false default_value: { } diff --git a/config/default/field.field.node.site_alert.field_included_nodes.yml b/config/default/field.field.node.site_alert.field_included_nodes.yml index ea0b01c45b..353c396b2e 100644 --- a/config/default/field.field.node.site_alert.field_included_nodes.yml +++ b/config/default/field.field.node.site_alert.field_included_nodes.yml @@ -25,7 +25,7 @@ field_name: field_included_nodes entity_type: node bundle: site_alert label: 'Show on Pages' -description: "Site Alerts show on all pages by default.
\r\nAdd pages here to restrict where the Site Alert is shown." +description: "Add pages here to restrict where the Site Alert is shown.\r\nIf no pages are added, then the Site Alert will appear on all pages." required: false translatable: false default_value: { } diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css b/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css index 4cb865489d..ab8d031e07 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css @@ -39,6 +39,10 @@ div#sa-a.b--red { top: 0; } +/*body.toolbar-fixed #sa-a.node-site-alert {*/ +/* top: auto;*/ +/*}*/ + /* Enable/disable site alerts using the sa class */ /*.node-site-alert {*/ /* !* display: none; *!*/ diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module b/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module index 0a62e477a2..7d08889baa 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module @@ -5,12 +5,10 @@ * Provides a site alert entity type. */ -use Drupal\Core\Render\Element; use Drupal\views\ViewExecutable; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\views\Plugin\views\cache\CachePluginBase; -use Drupal\views\Views; /** * Implements hook_theme(). @@ -39,24 +37,6 @@ function node_site_alert_theme() { ]; } -/** - * Prepares variables for site alert templates. - * - * Default template: site-alert.html.twig. - * - * @param array $variables - * An associative array containing: - * - elements: An associative array containing the site alert information and - * any fields attached to the entity. - * - attributes: HTML attributes for the containing element. - * TODO: This is not working ... hook does not exist. - */ -function template_preprocess_node__site_alert(array &$variables) { - foreach (Element::children($variables['elements']) as $key) { - $variables['content'][$key] = $variables['elements'][$key]; - } -} - /** * Implements hook_form_alter(). */ @@ -82,45 +62,6 @@ function node_site_alert_preprocess_field_multiple_value_form(array &$variables) ]); } -/** - * Implements hook_preprocess_page(). - */ -function node_site_alert_preprocess_page(&$variables) { - // Check if we have any active site-alerts. - // Call the view passing in the homepage to see if we have an alert set ATM. - return; - if ($view = Views::getView("site_alerts")) { - $view->setDisplay("block_site_alerts"); - if (isset($variables["node"]) && is_numeric($variables["node"])) { - $nid = $variables["node"]; - } - elseif (isset($variables["node"]) && $variables["node"]->hasField("nid")) { - $nid = $variables["node"]->id(); - } - if (isset($nid)) { - $view->preExecute(["nid" => $nid]); - $variables['cob']['sa-excluded'] = FALSE; - if ($view->execute() && count($view->result) > 0) { - foreach ($view->result as $result) { - if (isset($result->_entity) && $entity = $result->_entity) { - if (NULL != $entity->field_excluded_nodes) { - foreach ($entity->field_excluded_nodes as $excluded) { - if (isset($excluded->target_id) && $excluded->target_id == $nid) { - $variables['cob']['sa-excluded'] = TRUE; - } - } - } - } - } - if (!$variables['cob']['sa-excluded']) { - _bos_content_fix_attributes($variables); - $variables["attributes"]->addClass("sa"); - } - } - } - } -} - /** * Implements hook_entity_presave(). */ @@ -157,33 +98,12 @@ function node_site_alert_preprocess_node__site_alert(&$variables) { return; } - // Only show alert if the date range is valid. - if (!isset($variables["node"]->field_date_range)) { - $variables["display"] = TRUE; - } - // Add-in a bit of css. $variables['#attached']['library'][] = "node_site_alert/alert.call"; // Used in templates to set the background colors. $variables['block_theme'] = $variables["content"]["field_theme"]["#items"]->value; - - // Set classes. - $variables['attributes']['id'] = "sa-a"; -// $variables['attributes']['class'][] = "b"; $variables['attributes']['class'][] = "b--" . $variables['block_theme']; -// $variables['attributes']['class'][] = "b--fw"; -} - -/** - * Implements hook_preprocess_HOOK(). - */ -function node_site_alert_preprocess_block(&$variables) { - if (!isset($variables["content"]["#view"]->current_display) || (isset($variables["content"]["#view"]->current_display) && $variables["content"]["#view"]->current_display != "block_site_alerts")) { - return; - } -// $variables["attributes"]["class"][] = "d--n node-site-alert"; -// $variables["attributes"]["id"] = "sa"; } /** @@ -240,6 +160,7 @@ function node_site_alert_views_post_render(ViewExecutable $view, &$output, Cache } } } + /** * Implements hook_theme_suggestions_HOOK(). * diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig b/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig index e118c273b5..a968b6ac11 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/templates/node--site-alert.html.twig @@ -26,13 +26,13 @@ * @see template_preprocess_entity() * @see template_process() #} - + {% if (title_prefix or title_suffix) %} {# This allows the injection of the contextual menu links #}
- {{ title_prefix }} - {{ title_suffix }} + {{ title_prefix }} + {{ title_suffix }}
{% endif %} @@ -57,8 +57,4 @@
-{# {% if content.title_suffix %}#} -{# {{ content.title_suffix }}#} -{# {% endif %}#} - From e8325b4f4409a6e184c8c9bde3f2575eebf9f588 Mon Sep 17 00:00:00 2001 From: David Upton Date: Tue, 14 May 2024 19:18:58 -0400 Subject: [PATCH 09/20] Aligns Emergency Alerts with Site Alerts --- ...emergency_alerts_block_emergency_alert.yml | 25 +++++ ...m_display.node.emergency_alert.default.yml | 1 + .../default/views.view.emergency_alerts.yml | 41 +++++++- .../css/emergency_alert.boston.css | 12 ++- .../node_emergency_alert.module | 96 ++++++++----------- ...ncy-alerts-block-emergency-alert.html.twig | 5 +- .../templates/node--emergency-alert.html.twig | 15 ++- .../bos_theme/templates/layout/page.html.twig | 2 - 8 files changed, 128 insertions(+), 69 deletions(-) create mode 100644 config/default/block.block.bos_theme_views_block__emergency_alerts_block_emergency_alert.yml diff --git a/config/default/block.block.bos_theme_views_block__emergency_alerts_block_emergency_alert.yml b/config/default/block.block.bos_theme_views_block__emergency_alerts_block_emergency_alert.yml new file mode 100644 index 0000000000..60ade9eaeb --- /dev/null +++ b/config/default/block.block.bos_theme_views_block__emergency_alerts_block_emergency_alert.yml @@ -0,0 +1,25 @@ +uuid: ecc48ba8-20f9-4d77-89f6-a2f9174a277b +langcode: en +status: true +dependencies: + config: + - views.view.emergency_alerts + module: + - views + theme: + - bos_theme +id: bos_theme_views_block__emergency_alerts_block_emergency_alert +theme: bos_theme +region: site_alert +weight: 0 +provider: null +plugin: 'views_block:emergency_alerts-block_emergency_alert' +settings: + id: 'views_block:emergency_alerts-block_emergency_alert' + label: '' + label_display: '0' + provider: views + context_mapping: { } + views_label: '' + items_per_page: none +visibility: { } diff --git a/config/default/core.entity_form_display.node.emergency_alert.default.yml b/config/default/core.entity_form_display.node.emergency_alert.default.yml index 2787ed0916..ef58e0b96a 100644 --- a/config/default/core.entity_form_display.node.emergency_alert.default.yml +++ b/config/default/core.entity_form_display.node.emergency_alert.default.yml @@ -11,6 +11,7 @@ dependencies: - field.field.node.emergency_alert.field_theme - field.field.node.emergency_alert.field_updated_date - node.type.emergency_alert + - workflows.workflow.city_of_boston_workflows module: - content_moderation - datetime diff --git a/config/default/views.view.emergency_alerts.yml b/config/default/views.view.emergency_alerts.yml index 2a4fefd980..22d24a801b 100644 --- a/config/default/views.view.emergency_alerts.yml +++ b/config/default/views.view.emergency_alerts.yml @@ -95,9 +95,9 @@ display: cache: type: time options: - results_lifespan: 0 + results_lifespan: 300 results_lifespan_custom: 0 - output_lifespan: 60 + output_lifespan: 300 output_lifespan_custom: 0 empty: { } sorts: @@ -399,7 +399,44 @@ display: display_plugin: block position: 1 display_options: + arguments: + 'null': + id: 'null' + table: views + field: 'null' + relationship: none + group_type: group + admin_label: 'Used to get the Nodes nid' + plugin_id: 'null' + default_action: default + exception: + value: all + title_enable: false + title: All + title_enable: false + title: '' + default_argument_type: node + default_argument_options: { } + summary_options: + base_path: '' + count: true + override: false + items_per_page: 25 + summary: + sort_order: asc + number_of_records: 0 + format: default_summary + specify_validation: false + validate: + type: none + fail: 'not found' + validate_options: { } + must_not_be: false + defaults: + show_admin_links: false + arguments: false display_description: 'Show current emergency alerts.' + show_admin_links: false display_extenders: { } block_description: 'Emergency Alerts' block_hide_empty: true diff --git a/docroot/modules/custom/bos_content/modules/node_emergency_alert/css/emergency_alert.boston.css b/docroot/modules/custom/bos_content/modules/node_emergency_alert/css/emergency_alert.boston.css index b43397eae8..d1cb55e1e6 100644 --- a/docroot/modules/custom/bos_content/modules/node_emergency_alert/css/emergency_alert.boston.css +++ b/docroot/modules/custom/bos_content/modules/node_emergency_alert/css/emergency_alert.boston.css @@ -1,11 +1,13 @@ /** Locate contextual button out of the way of the main page button. */ - .node-emergency-alert div.contextual { padding-right: 70px; } +/** + Manage Topic-pages hero image when have emergency alert. + */ #page.ea:not(.sa) .hero-image { margin-top: 0; } @@ -15,6 +17,7 @@ */ .node-emergency-alert .b--dark-blue { color: #1871bd; + border-bottom: 1px solid #fff; } .node-emergency-alert .b--dark-blue .str-t, .node-emergency-alert .b--dark-blue .str-c { @@ -30,6 +33,7 @@ */ .node-emergency-alert .b--red { color: #091f2f; + border-bottom: 1px solid #fff; } .node-emergency-alert .b--red .str-t, .node-emergency-alert .b--red .str-c { @@ -50,6 +54,7 @@ .b--yellow { background-color: #f7bd5c; color: #091f2f; + border-bottom: 1px solid #fff; } .node-emergency-alert .b--yellow .str-t, .node-emergency-alert .b--yellow .str-c { @@ -58,10 +63,11 @@ } /** - Manage seal. + Manage seal, if this css is loaded, then the seal is hidden. */ -#page.ea #main-menu #seal.s { +#page #main-menu #seal { -webkit-transform: translateX(-50%) translateY(0%); transform: translateX(-50%) translateY(0%); box-shadow: none; + display: none; } diff --git a/docroot/modules/custom/bos_content/modules/node_emergency_alert/node_emergency_alert.module b/docroot/modules/custom/bos_content/modules/node_emergency_alert/node_emergency_alert.module index 924939882d..9094fded85 100644 --- a/docroot/modules/custom/bos_content/modules/node_emergency_alert/node_emergency_alert.module +++ b/docroot/modules/custom/bos_content/modules/node_emergency_alert/node_emergency_alert.module @@ -6,10 +6,10 @@ */ use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Render\Element; use Drupal\core\Template\Attribute; use Drupal\editor\Entity\Editor; -use Drupal\views\Views; +use Drupal\views\Plugin\views\cache\CachePluginBase; +use Drupal\views\ViewExecutable; /** * Implements hook_theme(). @@ -41,24 +41,10 @@ function node_emergency_alert_preprocess_form_element(&$variables) { } } -/** - * Implements hook_preprocess_HOOK(). - */ -function node_emergency_alert_preprocess_page(&$variables) { - // Call the view passing in the homepage to see if we have an alert set ATM. - if ($view = Views::getView("emergency_alerts")) { - $view->setDisplay("block_emergency_alert"); - if (isset($variables["node"]) && is_numeric($variables["node"])) { - $view->preExecute(["nid" => $variables["node"]]); - } - elseif (isset($variables["node"]) && $variables["node"]->hasField("nid")) { - $view->preExecute(["nid" => $variables["node"]->id()]); - } - if ($view->execute() && count($view->result) > 0) { - _bos_content_fix_attributes($variables); - $variables["attributes"]->addClass("ea"); - } - } +function node_emergency_alert_preprocess_field_multiple_value_form(array &$variables) { + _bos_core_rename_multiple_button($variables, "emergency_alert", [ + "field_included_nodes" => "Include another page", + ]); } /** @@ -66,25 +52,9 @@ function node_emergency_alert_preprocess_page(&$variables) { */ function node_emergency_alert_preprocess_node__emergency_alert(&$variables) { $variables["para_attributes"] = new Attribute(); - $variables["para_attributes"]->addClass("b"); - $variables["para_attributes"]->addClass("b--fw"); - $variables["para_attributes"]->addClass("b--cc"); - $variables["para_attributes"]->addClass("b--" . $variables["content"]["field_theme"][0]["#markup"]); + $variables['block_theme'] = $variables["content"]["field_theme"][0]["#markup"]; + $variables["para_attributes"]->addClass("b--" . $variables['block_theme']); $variables["#attached"]["library"][] = "node_emergency_alert/emergency_alert.call"; - $variables["bos_title"] = $variables["title"][0]["#context"]["value"]; -} - -/** - * Implements hook_preprocess_HOOK(). - */ -function node_emergency_alert_preprocess_block(&$variables) { - if (!isset($variables["content"]["#view"]->current_display) || (isset($variables["content"]["#view"]->current_display) && $variables["content"]["#view"]->current_display != "block_emergency_alert")) { - return; - } - $variables["attributes"]["class"][] = "d--n node-emergency-alerts"; - $variables["attributes"]["id"] = "ea"; - // Ensure there is no label. - unset($variables["label"]); } /** @@ -100,6 +70,39 @@ function node_emergency_alert_form_node_emergency_alert_edit_form_alter(&$form, ]); } +/** + * Implements hook_views_post_render(). + */ +function node_emergency_alert_views_post_render(ViewExecutable $view, &$output, CachePluginBase $cache) { + + if ($view->id() == "emergency_alerts" && $view->current_display == "block_emergency_alert") { + // DIG-4391- May 2024 + if (!empty($output["#rows"])) { + // The output is already filtered for display dates. + // We need to check if the current node is in the list of excluded nodes. + $nid = $view->args[0] ?? NULL; + if ($nid) { + foreach ($output["#rows"] as $sa => &$row) { + $emergency_alert = $row["#rows"][0]["#node"]; + $included = $emergency_alert->field_included_nodes->getValue(); + array_walk($included, function (&$value, $key) {$value = $value["target_id"];}); + // Add the homepage, the Emergency Alert always shows on the homepage. + if (preg_match('/node\/(\d+)/', (\Drupal::config('system.site')->get('page.front') ?? ""), $matches)) { + $included[] = $matches[1]; + } + // If the current node is not in the list of included nodes, remove the row. + if (!in_array($nid, $included)) { + unset($output["#rows"][$sa]["#rows"]); + if (empty($output["#rows"][$sa]["#rows"])) { + unset($output["#rows"][$sa]); + } + } + } + } + } + } +} + /** * Implements hook_ckeditor_css_alter(). */ @@ -110,20 +113,3 @@ function node_emergency_alert_ckeditor_css_alter(array &$css, Editor $editor) { $css[] =\Drupal::service('extension.path.resolver')->getPath("module", "node_emergency_alert") . "/css/ckeditor.boston.emergency_alert.css"; } } - -/** - * Prepares variables for emergency alert templates. - * - * Default template: emergency-alert.html.twig. - * - * @param array $variables - * An associative array containing: - * - elements: An associative array containing the emergency alert information - * and any fields attached to the entity. - * - attributes: HTML attributes for the containing element. - */ -function template_preprocess_node__emergency_alert(array &$variables) { - foreach (Element::children($variables['elements']) as $key) { - $variables['content'][$key] = $variables['elements'][$key]; - } -} diff --git a/docroot/modules/custom/bos_content/modules/node_emergency_alert/templates/block--views-block--emergency-alerts-block-emergency-alert.html.twig b/docroot/modules/custom/bos_content/modules/node_emergency_alert/templates/block--views-block--emergency-alerts-block-emergency-alert.html.twig index 78db686624..006b5b73bc 100644 --- a/docroot/modules/custom/bos_content/modules/node_emergency_alert/templates/block--views-block--emergency-alerts-block-emergency-alert.html.twig +++ b/docroot/modules/custom/bos_content/modules/node_emergency_alert/templates/block--views-block--emergency-alerts-block-emergency-alert.html.twig @@ -25,11 +25,8 @@ * @see template_preprocess_block() */ #} - {% if label %} - {{ label }} - {% endif %} {% block content %} - + {{ content }} {% endblock %} diff --git a/docroot/modules/custom/bos_content/modules/node_emergency_alert/templates/node--emergency-alert.html.twig b/docroot/modules/custom/bos_content/modules/node_emergency_alert/templates/node--emergency-alert.html.twig index 52aa758239..943775d497 100644 --- a/docroot/modules/custom/bos_content/modules/node_emergency_alert/templates/node--emergency-alert.html.twig +++ b/docroot/modules/custom/bos_content/modules/node_emergency_alert/templates/node--emergency-alert.html.twig @@ -15,9 +15,17 @@ */ #} - {{ title_suffix }} + + {% if (title_prefix or title_suffix) %} + {# This allows the injection of the contextual menu links #} +
+ {{ title_prefix }} + {{ title_suffix }} +
+ {% endif %} +
- +
@@ -33,7 +41,7 @@
- {{ bos_title }} + {{ title.0|raw }}
@@ -45,6 +53,7 @@ {% if content.field_link %} {{ content.field_link|raw }} {% endif %} +
diff --git a/docroot/themes/custom/bos_theme/templates/layout/page.html.twig b/docroot/themes/custom/bos_theme/templates/layout/page.html.twig index 1d4cfe130b..1a4d8c3392 100644 --- a/docroot/themes/custom/bos_theme/templates/layout/page.html.twig +++ b/docroot/themes/custom/bos_theme/templates/layout/page.html.twig @@ -177,8 +177,6 @@ {{ search }} - {{ drupal_block('views_block:emergency_alerts-block_emergency_alert') }} - {% block SiteAlert %} {# Defines the Themes Site/Emergency Alerts Region #}
From dceaa848591ed4f68b71aa56cc81b81601dd05a0 Mon Sep 17 00:00:00 2001 From: David Upton Date: Tue, 14 May 2024 20:13:02 -0400 Subject: [PATCH 10/20] PLaces separating line between multiple alerts --- .../css/emergency_alert.boston.css | 12 +++++++++++- .../node_site_alert/css/site-alert.boston.css | 17 ++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/docroot/modules/custom/bos_content/modules/node_emergency_alert/css/emergency_alert.boston.css b/docroot/modules/custom/bos_content/modules/node_emergency_alert/css/emergency_alert.boston.css index d1cb55e1e6..7cae9d2048 100644 --- a/docroot/modules/custom/bos_content/modules/node_emergency_alert/css/emergency_alert.boston.css +++ b/docroot/modules/custom/bos_content/modules/node_emergency_alert/css/emergency_alert.boston.css @@ -12,12 +12,22 @@ margin-top: 0; } +/* + Place a dividing line between Emergency alert and site alerts, if there are + any site alerts. + */ +#sa > div:first-child { + border-bottom: 1px solid #fff; +} +#sa > div:only-child { + border-bottom: none; +} /* Blue theme. */ .node-emergency-alert .b--dark-blue { color: #1871bd; - border-bottom: 1px solid #fff; + /* border-bottom: 1px solid #fff; */ } .node-emergency-alert .b--dark-blue .str-t, .node-emergency-alert .b--dark-blue .str-c { diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css b/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css index ab8d031e07..799d8544c6 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css @@ -1,14 +1,17 @@ /** - Adds a white line between multiple site alerts. + Adds a white line between multiple site alerts, but only if there are + multiple and not after the last. + If there is only one, then it is the last .... so it gets no line. */ -div#sa-a.b--dark-blue, -div#sa-a.b--red { +#block-bos-theme-views-block-site-alerts-block-site-alerts [class*=js-view-dom] > div.bos-site-alert { border-bottom: 1px solid #fff; } - -/** - Locate contextual button out of the way of the main page button. - */ +#block-bos-theme-views-block-site-alerts-block-site-alerts [class*=js-view-dom] > div.bos-site-alert:last-child { + border-bottom: none; +} + /** + Locate contextual button out of the way of the main page button. + */ #sa-a .contextual { margin-right: 70px; z-index: 1000; From a239d4310b6294afd7b79bb118f06b92308a4f47 Mon Sep 17 00:00:00 2001 From: David Upton Date: Wed, 15 May 2024 08:51:27 -0400 Subject: [PATCH 11/20] Tweak icon sizing for alerts --- .../modules/node_site_alert/css/site-alert.boston.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css b/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css index 799d8544c6..cb4a91b9db 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/css/site-alert.boston.css @@ -58,7 +58,8 @@ Constrain and locate the icon, and remove for mobile. */ div.fyi-i { - width: 90px; + width: 3rem; + height: 3rem; } @media screen and (max-width: 480px) { From 294a32a34181c315eabaa2f2b032869fd9b70275 Mon Sep 17 00:00:00 2001 From: David Upton Date: Wed, 15 May 2024 08:57:43 -0400 Subject: [PATCH 12/20] Updates view to add class to site alert nodes. --- config/default/views.view.site_alerts.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/default/views.view.site_alerts.yml b/config/default/views.view.site_alerts.yml index c153eb55e1..c48c633e42 100644 --- a/config/default/views.view.site_alerts.yml +++ b/config/default/views.view.site_alerts.yml @@ -361,7 +361,7 @@ display: style: type: default options: - row_class: '' + row_class: bos-site-alert default_row_class: false uses_fields: false row: From 7c5a9d613006c42cfc22de2290bd0f6d99764b4b Mon Sep 17 00:00:00 2001 From: David Upton Date: Wed, 15 May 2024 09:15:30 -0400 Subject: [PATCH 13/20] Fix to alerts include/exclude logic flow. --- .../node_emergency_alert.module | 30 +++++++----- .../node_site_alert/node_site_alert.module | 48 ++++++++++--------- 2 files changed, 43 insertions(+), 35 deletions(-) diff --git a/docroot/modules/custom/bos_content/modules/node_emergency_alert/node_emergency_alert.module b/docroot/modules/custom/bos_content/modules/node_emergency_alert/node_emergency_alert.module index 9094fded85..b5104f8bd6 100644 --- a/docroot/modules/custom/bos_content/modules/node_emergency_alert/node_emergency_alert.module +++ b/docroot/modules/custom/bos_content/modules/node_emergency_alert/node_emergency_alert.module @@ -83,20 +83,26 @@ function node_emergency_alert_views_post_render(ViewExecutable $view, &$output, $nid = $view->args[0] ?? NULL; if ($nid) { foreach ($output["#rows"] as $sa => &$row) { - $emergency_alert = $row["#rows"][0]["#node"]; - $included = $emergency_alert->field_included_nodes->getValue(); - array_walk($included, function (&$value, $key) {$value = $value["target_id"];}); - // Add the homepage, the Emergency Alert always shows on the homepage. - if (preg_match('/node\/(\d+)/', (\Drupal::config('system.site')->get('page.front') ?? ""), $matches)) { - $included[] = $matches[1]; - } - // If the current node is not in the list of included nodes, remove the row. - if (!in_array($nid, $included)) { - unset($output["#rows"][$sa]["#rows"]); - if (empty($output["#rows"][$sa]["#rows"])) { - unset($output["#rows"][$sa]); + + foreach($row["#rows"] as $key => $ea_node) { + $emergency_alert = $ea_node["#node"]; + $included = $emergency_alert->field_included_nodes->getValue(); + array_walk($included, function(&$value, $k) { $value = $value["target_id"]; }); + // Add the homepage, the Emergency Alert always shows on the homepage. + if (preg_match('/node\/(\d+)/', (\Drupal::config('system.site') + ->get('page.front') ?? ""), $matches)) { + $included[] = $matches[1]; + } + // If the current node is not in the list of included nodes, remove the row. + if (!in_array($nid, $included)) { + unset($output["#rows"][$sa]["#rows"][$key]); } } + + if (empty($output["#rows"][$sa]["#rows"])) { + unset($output["#rows"][$sa]); + } + } } } diff --git a/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module b/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module index 7d08889baa..0bee3b985d 100644 --- a/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module +++ b/docroot/modules/custom/bos_content/modules/node_site_alert/node_site_alert.module @@ -127,33 +127,35 @@ function node_site_alert_views_post_render(ViewExecutable $view, &$output, Cache $nid = $view->args[0] ?? NULL; if ($nid) { foreach ($output["#rows"] as $sa => &$row) { - $site_alert = $row["#rows"][0]["#node"]; - $included = $site_alert->field_included_nodes->getValue(); - array_walk($included, function(&$value, $key) { $value = $value["target_id"]; }); - if ($included == [] || - ($included && in_array($nid, $included))) { - // Site Alert appears on all nodes, or - // Permitted to display on this node. - } - else { - unset($output["#rows"][$sa]["#rows"]); - if (empty($output["#rows"][$sa]["#rows"])) { - unset($output["#rows"][$sa]); + + foreach($row["#rows"] as $key => $sa_node) { + $site_alert = $sa_node["#node"]; + $included = $site_alert->field_included_nodes->getValue(); + array_walk($included, function(&$value, $k) { $value = $value["target_id"]; }); + if ($included == [] || + ($included && in_array($nid, $included))) { + // Site Alert appears on all nodes, or + // Permitted to display on this node. + } + else { + unset($output["#rows"][$sa]["#rows"][$key]); } - } - $excluded = $site_alert->field_excluded_nodes->getValue(); - array_walk($excluded, function(&$value, $key) { $value = $value["target_id"]; }); - if ($excluded == []) { - // No Exclusions applied, or - // Permitted to display on this node. - } - elseif ($excluded && in_array($nid, $excluded)) { - unset($output["#rows"][$sa]["#rows"]); - if (empty($output["#rows"][$sa]["#rows"])) { - unset($output["#rows"][$sa]); + $excluded = $site_alert->field_excluded_nodes->getValue(); + array_walk($excluded, function(&$value, $key) { $value = $value["target_id"]; }); + if ($excluded == []) { + // No Exclusions applied, or + // Permitted to display on this node. } + elseif ($excluded && in_array($nid, $excluded)) { + unset($output["#rows"][$sa]["#rows"][$key]); + } + } + + if (empty($output["#rows"][$sa]["#rows"])) { + unset($output["#rows"][$sa]); } + } } } From db2bf6c57e814665819f39a02349fb192f120830 Mon Sep 17 00:00:00 2001 From: David Upton Date: Wed, 15 May 2024 10:58:44 -0400 Subject: [PATCH 14/20] DIG-4448 Adds cache tagging to roll call search --- config/default/views.view.roll_call_dockets.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/default/views.view.roll_call_dockets.yml b/config/default/views.view.roll_call_dockets.yml index a41f95e502..1c90018642 100644 --- a/config/default/views.view.roll_call_dockets.yml +++ b/config/default/views.view.roll_call_dockets.yml @@ -452,7 +452,7 @@ display: options: perm: 'access content' cache: - type: none + type: tag options: { } empty: { } sorts: @@ -692,7 +692,7 @@ display: id: rest_export_1 display_title: 'Rollcall Export API' display_plugin: rest_export - position: 1 + position: 3 display_options: pager: type: some @@ -867,7 +867,7 @@ display: filter_groups: false display_description: '' display_extenders: { } - path: rollcall/api/v1 + path: rollcall/api/v1/% cache_metadata: max-age: -1 contexts: @@ -886,7 +886,7 @@ display: id: rollcall_search_block display_title: 'Rollcall Search Block' display_plugin: block - position: 2 + position: 1 display_options: title: '' fields: From f2c38eabf6564c6cb078f5abbc28ca56f5c902c0 Mon Sep 17 00:00:00 2001 From: David Upton Date: Wed, 15 May 2024 11:04:19 -0400 Subject: [PATCH 15/20] DIG-4448 Composer updates incl `drupal/core` 10.2.6 --- composer.lock | 982 ++++++++++++++++++++++++++------------------------ 1 file changed, 503 insertions(+), 479 deletions(-) diff --git a/composer.lock b/composer.lock index d406ac61f6..74b58c53f7 100644 --- a/composer.lock +++ b/composer.lock @@ -129,25 +129,25 @@ }, { "name": "brick/math", - "version": "0.11.0", + "version": "0.12.1", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478" + "reference": "f510c0a40911935b77b86859eb5223d58d660df1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478", - "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478", + "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1", + "reference": "f510c0a40911935b77b86859eb5223d58d660df1", "shasum": "" }, "require": { - "php": "^8.0" + "php": "^8.1" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^9.0", - "vimeo/psalm": "5.0.0" + "phpunit/phpunit": "^10.1", + "vimeo/psalm": "5.16.0" }, "type": "library", "autoload": { @@ -167,12 +167,17 @@ "arithmetic", "bigdecimal", "bignum", + "bignumber", "brick", - "math" + "decimal", + "integer", + "math", + "mathematics", + "rational" ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.11.0" + "source": "https://github.com/brick/math/tree/0.12.1" }, "funding": [ { @@ -180,7 +185,7 @@ "type": "github" } ], - "time": "2023-01-15T23:15:59+00:00" + "time": "2023-11-29T23:19:16+00:00" }, { "name": "caxy/php-htmldiff", @@ -1418,16 +1423,16 @@ }, { "name": "doctrine/collections", - "version": "2.2.1", + "version": "2.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "420480fc085bc65f3c956af13abe8e7546f94813" + "reference": "d8af7f248c74f195f7347424600fd9e17b57af59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/420480fc085bc65f3c956af13abe8e7546f94813", - "reference": "420480fc085bc65f3c956af13abe8e7546f94813", + "url": "https://api.github.com/repos/doctrine/collections/zipball/d8af7f248c74f195f7347424600fd9e17b57af59", + "reference": "d8af7f248c74f195f7347424600fd9e17b57af59", "shasum": "" }, "require": { @@ -1484,7 +1489,7 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/2.2.1" + "source": "https://github.com/doctrine/collections/tree/2.2.2" }, "funding": [ { @@ -1500,7 +1505,7 @@ "type": "tidelift" } ], - "time": "2024-03-05T22:28:45+00:00" + "time": "2024-04-18T06:56:21+00:00" }, { "name": "doctrine/deprecations", @@ -2375,17 +2380,17 @@ }, { "name": "drupal/better_exposed_filters", - "version": "6.0.3", + "version": "6.0.5", "source": { "type": "git", "url": "https://git.drupalcode.org/project/better_exposed_filters.git", - "reference": "6.0.3" + "reference": "6.0.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/better_exposed_filters-6.0.3.zip", - "reference": "6.0.3", - "shasum": "b5c20207d7679542bb81955771956c18083e6e0b" + "url": "https://ftp.drupal.org/files/projects/better_exposed_filters-6.0.5.zip", + "reference": "6.0.5", + "shasum": "a325449adf32c13dd8e348bf10979aea301da84e" }, "require": { "drupal/core": "^9 || ^10", @@ -2397,8 +2402,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "6.0.3", - "datestamp": "1671541877", + "version": "6.0.5", + "datestamp": "1713570803", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2512,17 +2517,17 @@ }, { "name": "drupal/blazy", - "version": "2.24.0", + "version": "2.26.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/blazy.git", - "reference": "8.x-2.24" + "reference": "8.x-2.26" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/blazy-8.x-2.24.zip", - "reference": "8.x-2.24", - "shasum": "6770d662259341b979e0642ed6ea37228728d573" + "url": "https://ftp.drupal.org/files/projects/blazy-8.x-2.26.zip", + "reference": "8.x-2.26", + "shasum": "9500502879c766132d60826116ce83ad2e83f0ef" }, "require": { "drupal/core": "^8.8 || ^9 || ^10" @@ -2533,8 +2538,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.24", - "datestamp": "1711902155", + "version": "8.x-2.26", + "datestamp": "1714295528", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2745,8 +2750,7 @@ "version": "3.0.5", "require": { "drupal/chosen": "^3", - "drupal/core": "^9.2 || ^10", - "php": ">=5.6.0" + "drupal/core": "^9.2 || ^10" }, "type": "metapackage", "extra": { @@ -2757,11 +2761,6 @@ "status": "covered", "message": "Covered by Drupal's security advisory policy" } - }, - "drush": { - "services": { - "drush.services.yml": "^9 || ^10 || ^11" - } } }, "notification-url": "https://packages.drupal.org/8/downloads", @@ -2806,7 +2805,7 @@ "homepage": "https://www.drupal.org/user/235438" } ], - "description": "This module provides the basic integration with the Chosen jQuery plugin.", + "description": "Add chosen library definition.", "homepage": "https://www.drupal.org/project/chosen", "support": { "source": "https://git.drupalcode.org/project/chosen" @@ -2909,16 +2908,16 @@ }, { "name": "drupal/coder", - "version": "8.3.23", + "version": "8.3.24", "source": { "type": "git", "url": "https://github.com/pfrenssen/coder.git", - "reference": "1a1613d83c08dac5be593f2775c9eccae1b41805" + "reference": "1a59890f972db5da091354f0191dec1037f7c582" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pfrenssen/coder/zipball/1a1613d83c08dac5be593f2775c9eccae1b41805", - "reference": "1a1613d83c08dac5be593f2775c9eccae1b41805", + "url": "https://api.github.com/repos/pfrenssen/coder/zipball/1a59890f972db5da091354f0191dec1037f7c582", + "reference": "1a59890f972db5da091354f0191dec1037f7c582", "shasum": "" }, "require": { @@ -2927,7 +2926,7 @@ "php": ">=7.2", "sirbrillig/phpcs-variable-analysis": "^2.11.7", "slevomat/coding-standard": "^8.11", - "squizlabs/php_codesniffer": "^3.7.1", + "squizlabs/php_codesniffer": "^3.9.1", "symfony/yaml": ">=3.4.0" }, "require-dev": { @@ -2956,7 +2955,7 @@ "issues": "https://www.drupal.org/project/issues/coder", "source": "https://www.drupal.org/project/coder" }, - "time": "2024-01-27T18:13:12+00:00" + "time": "2024-04-21T06:13:24+00:00" }, { "name": "drupal/colorbox", @@ -3092,20 +3091,20 @@ }, { "name": "drupal/config_ignore", - "version": "3.2.0", + "version": "3.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/config_ignore.git", - "reference": "8.x-3.2" + "reference": "8.x-3.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_ignore-8.x-3.2.zip", - "reference": "8.x-3.2", - "shasum": "00335fc1ddeb4ed93f245dd6963d99b3c084c052" + "url": "https://ftp.drupal.org/files/projects/config_ignore-8.x-3.3.zip", + "reference": "8.x-3.3", + "shasum": "4446811ecb023820a57c227d35c034e0d4363a70" }, "require": { - "drupal/core": "^8.8 || ^9 || ^10" + "drupal/core": "^8.8 || ^9 || ^10 || ^11" }, "require-dev": { "drupal/config_filter": "^1.8||^2.2", @@ -3114,8 +3113,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.2", - "datestamp": "1705226226", + "version": "8.x-3.3", + "datestamp": "1713299496", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3124,7 +3123,7 @@ }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { @@ -3195,7 +3194,7 @@ }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { @@ -3335,6 +3334,10 @@ { "name": "jeqq", "homepage": "https://www.drupal.org/user/1427908" + }, + { + "name": "joseph.olstad", + "homepage": "https://www.drupal.org/user/1321830" } ], "description": "Find merge conflicts in entities, perform auto merge where possible or offer a way for resolving them.", @@ -3496,7 +3499,7 @@ }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0-or-later" + "GPL-2.0+" ], "authors": [ { @@ -3517,16 +3520,16 @@ }, { "name": "drupal/core", - "version": "10.2.5", + "version": "10.2.6", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "dddd242b74f40df892a7f16a48245c3b76d9b003" + "reference": "cec9bc9e829e53e667da844edd5f4897be88d860" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/dddd242b74f40df892a7f16a48245c3b76d9b003", - "reference": "dddd242b74f40df892a7f16a48245c3b76d9b003", + "url": "https://api.github.com/repos/drupal/core/zipball/cec9bc9e829e53e667da844edd5f4897be88d860", + "reference": "cec9bc9e829e53e667da844edd5f4897be88d860", "shasum": "" }, "require": { @@ -3674,9 +3677,9 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/10.2.5" + "source": "https://github.com/drupal/core/tree/10.2.6" }, - "time": "2024-04-03T07:19:20+00:00" + "time": "2024-05-01T21:00:24+00:00" }, { "name": "drupal/core-composer-scaffold", @@ -4177,27 +4180,37 @@ }, { "name": "drupal/diff", - "version": "1.1.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/diff.git", - "reference": "8.x-1.1" + "reference": "8.x-1.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/diff-8.x-1.1.zip", - "reference": "8.x-1.1", - "shasum": "b7558b0f431d5945289829946e0beba61bf7ae18" + "url": "https://ftp.drupal.org/files/projects/diff-8.x-1.3.zip", + "reference": "8.x-1.3", + "shasum": "7a6e70546d97974600baffd0695105e88699744e" }, "require": { "drupal/core": "^9.3 || ^10", "mkalkbrenner/php-htmldiff-advanced": "~0.0.8" }, + "require-dev": { + "jangregor/phpstan-prophecy": "dev-master", + "mglaman/phpstan-drupal": "^1.2.10", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-deprecation-rules": "*", + "phpstan/phpstan-phpunit": "1.4.x-dev", + "phpstan/phpstan-strict-rules": "^1@stable", + "previousnext/coding-standard": "^1" + }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.1", - "datestamp": "1665437355", + "version": "8.x-1.3", + "datestamp": "1712883857", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4235,8 +4248,9 @@ "role": "Maintainer" }, { - "name": "Junyor", - "homepage": "https://www.drupal.org/user/7006" + "name": "Adam Bramley (acbramley)", + "homepage": "https://www.drupal.org/u/acbramley", + "role": "Maintainer" }, { "name": "lhangea", @@ -4266,7 +4280,7 @@ "description": "Compares two entity revisions", "homepage": "https://www.drupal.org/project/diff", "support": { - "source": "http://cgit.drupalcode.org/diff", + "source": "https://git.drupalcode.org/project/diff", "issues": "https://www.drupal.org/project/issues/diff" } }, @@ -5438,10 +5452,6 @@ "name": "JohnAlbin", "homepage": "https://www.drupal.org/user/32095" }, - { - "name": "Sam152", - "homepage": "https://www.drupal.org/user/1485048" - }, { "name": "stevector", "homepage": "https://www.drupal.org/user/179805" @@ -5578,7 +5588,7 @@ "source": { "type": "git", "url": "https://git.drupalcode.org/project/file_entity.git", - "reference": "9a64a35dbcc3035d03fd23f09ed85a6c21af32af" + "reference": "0090805fffcfdea1291e04070536132d74e64527" }, "require": { "drupal/core": "^9.3 || ^10", @@ -5595,8 +5605,8 @@ "dev-2.x": "2.x-dev" }, "drupal": { - "version": "8.x-2.0-rc4+1-dev", - "datestamp": "1702412990", + "version": "8.x-2.0-rc5+1-dev", + "datestamp": "1715099637", "security-coverage": { "status": "not-covered", "message": "Dev releases are not covered by Drupal security advisories." @@ -5751,17 +5761,17 @@ }, { "name": "drupal/geolocation", - "version": "3.12.0", + "version": "3.13.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/geolocation.git", - "reference": "8.x-3.12" + "reference": "8.x-3.13" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/geolocation-8.x-3.12.zip", - "reference": "8.x-3.12", - "shasum": "eb31fe9080e2e0dcf442fc9b0a859f326219db5a" + "url": "https://ftp.drupal.org/files/projects/geolocation-8.x-3.13.zip", + "reference": "8.x-3.13", + "shasum": "49029950bc0927f14b1d0ce01f93e03cdd131ee6" }, "require": { "drupal/core": "^9.3 || ^10", @@ -5787,8 +5797,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.12", - "datestamp": "1673282362", + "version": "8.x-3.13", + "datestamp": "1714403539", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7659,17 +7669,17 @@ }, { "name": "drupal/linkit", - "version": "6.1.3", + "version": "6.1.4", "source": { "type": "git", "url": "https://git.drupalcode.org/project/linkit.git", - "reference": "6.1.3" + "reference": "6.1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/linkit-6.1.3.zip", - "reference": "6.1.3", - "shasum": "469a5e38269ed5e707998000ee4701ab4922e561" + "url": "https://ftp.drupal.org/files/projects/linkit-6.1.4.zip", + "reference": "6.1.4", + "shasum": "f5544a39d691af5efd1532bd5403862a7153f60b" }, "require": { "drupal/core": "^10.1" @@ -7681,8 +7691,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "6.1.3", - "datestamp": "1710519126", + "version": "6.1.4", + "datestamp": "1715203830", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8257,17 +8267,17 @@ }, { "name": "drupal/menu_block", - "version": "1.10.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/menu_block.git", - "reference": "8.x-1.10" + "reference": "8.x-1.11" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/menu_block-8.x-1.10.zip", - "reference": "8.x-1.10", - "shasum": "97de632d77448ae0a974e20c2ffbe42c7ddd4633" + "url": "https://ftp.drupal.org/files/projects/menu_block-8.x-1.11.zip", + "reference": "8.x-1.11", + "shasum": "7b2dec26a81177094860b1f884cca5c40b60fa85" }, "require": { "drupal/core": "^9.1 || ^10" @@ -8275,8 +8285,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.10", - "datestamp": "1667434255", + "version": "8.x-1.11", + "datestamp": "1715036334", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8305,7 +8315,7 @@ "homepage": "https://www.drupal.org/user/370574" }, { - "name": "RenatoG", + "name": "renatog", "homepage": "https://www.drupal.org/user/3326031" }, { @@ -9194,17 +9204,17 @@ }, { "name": "drupal/paragraphs_browser", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/paragraphs_browser.git", - "reference": "8.x-1.1" + "reference": "8.x-1.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/paragraphs_browser-8.x-1.1.zip", - "reference": "8.x-1.1", - "shasum": "79d34a4885c7c669bb3a481f9aa25b91cad7aab0" + "url": "https://ftp.drupal.org/files/projects/paragraphs_browser-8.x-1.2.zip", + "reference": "8.x-1.2", + "shasum": "d91532ead6b8be351264543707cb62541188f118" }, "require": { "drupal/core": "^9.3 || ^10", @@ -9213,8 +9223,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.1", - "datestamp": "1673972153", + "version": "8.x-1.2", + "datestamp": "1715341106", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -11240,17 +11250,17 @@ }, { "name": "drupal/token", - "version": "1.13.0", + "version": "1.14.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/token.git", - "reference": "8.x-1.13" + "reference": "8.x-1.14" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/token-8.x-1.13.zip", - "reference": "8.x-1.13", - "shasum": "f2a074b51726de3727c1d900237d6d471806a4d2" + "url": "https://ftp.drupal.org/files/projects/token-8.x-1.14.zip", + "reference": "8.x-1.14", + "shasum": "df3cae709fcc1a99ac1111ce67a0d6af56d287d7" }, "require": { "drupal/core": "^9.2 || ^10" @@ -11258,8 +11268,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.13", - "datestamp": "1697885927", + "version": "8.x-1.14", + "datestamp": "1713009399", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -11666,17 +11676,17 @@ }, { "name": "drupal/viewfield", - "version": "3.0.0-beta7", + "version": "3.0.0-beta8", "source": { "type": "git", "url": "https://git.drupalcode.org/project/viewfield.git", - "reference": "8.x-3.0-beta7" + "reference": "8.x-3.0-beta8" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/viewfield-8.x-3.0-beta7.zip", - "reference": "8.x-3.0-beta7", - "shasum": "60ab405ef94596e9f0b724eeb47c71bba9640aa6" + "url": "https://ftp.drupal.org/files/projects/viewfield-8.x-3.0-beta8.zip", + "reference": "8.x-3.0-beta8", + "shasum": "348ff691cd234d4401ecc6870a59eefd961106bd" }, "require": { "drupal/core": "^9.2 || ^10" @@ -11684,8 +11694,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.0-beta7", - "datestamp": "1675788957", + "version": "8.x-3.0-beta8", + "datestamp": "1715172111", "security-coverage": { "status": "not-covered", "message": "Beta releases are not covered by Drupal security advisories." @@ -12336,16 +12346,16 @@ }, { "name": "drush/drush", - "version": "12.5.1", + "version": "12.5.2", "source": { "type": "git", "url": "https://github.com/drush-ops/drush.git", - "reference": "71fcea30a22e7336e17be18bb5945400b2c63fad" + "reference": "4aebed85dc818ff762f2e24a85b023d2a52050df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drush-ops/drush/zipball/71fcea30a22e7336e17be18bb5945400b2c63fad", - "reference": "71fcea30a22e7336e17be18bb5945400b2c63fad", + "url": "https://api.github.com/repos/drush-ops/drush/zipball/4aebed85dc818ff762f2e24a85b023d2a52050df", + "reference": "4aebed85dc818ff762f2e24a85b023d2a52050df", "shasum": "" }, "require": { @@ -12468,7 +12478,7 @@ "issues": "https://github.com/drush-ops/drush/issues", "security": "https://github.com/drush-ops/drush/security/advisories", "slack": "https://drupal.slack.com/messages/C62H9CWQM", - "source": "https://github.com/drush-ops/drush/tree/12.5.1" + "source": "https://github.com/drush-ops/drush/tree/12.5.2" }, "funding": [ { @@ -12476,7 +12486,7 @@ "type": "github" } ], - "time": "2024-03-20T15:03:27+00:00" + "time": "2024-05-02T17:20:48+00:00" }, { "name": "e0ipso/shaper", @@ -12983,34 +12993,36 @@ }, { "name": "google/auth", - "version": "v1.37.1", + "version": "v1.39.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-auth-library-php.git", - "reference": "1a7de77b72e6ac60dccf0e6478c4c1005bb0ff46" + "reference": "23e8e696d87f8d7dfefbd347ca1c99ce17ecb368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/1a7de77b72e6ac60dccf0e6478c4c1005bb0ff46", - "reference": "1a7de77b72e6ac60dccf0e6478c4c1005bb0ff46", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/23e8e696d87f8d7dfefbd347ca1c99ce17ecb368", + "reference": "23e8e696d87f8d7dfefbd347ca1c99ce17ecb368", "shasum": "" }, "require": { "firebase/php-jwt": "^6.0", - "guzzlehttp/guzzle": "^6.5.8||^7.4.5", + "guzzlehttp/guzzle": "^7.4.5", "guzzlehttp/psr7": "^2.4.5", - "php": "^7.4||^8.0", - "psr/cache": "^1.0||^2.0||^3.0", + "php": "^8.0", + "psr/cache": "^2.0||^3.0", "psr/http-message": "^1.1||^2.0" }, "require-dev": { "guzzlehttp/promises": "^2.0", "kelvinmo/simplejwt": "0.7.1", - "phpseclib/phpseclib": "^3.0", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.0.0", + "phpseclib/phpseclib": "^3.0.35", + "phpspec/prophecy-phpunit": "^2.1", + "phpunit/phpunit": "^9.6", "sebastian/comparator": ">=1.2.3", - "squizlabs/php_codesniffer": "^3.5" + "squizlabs/php_codesniffer": "^3.5", + "symfony/process": "^6.0||^7.0", + "webmozart/assert": "^1.11" }, "suggest": { "phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings or for token management. Please require version ^2." @@ -13035,9 +13047,9 @@ "support": { "docs": "https://googleapis.github.io/google-auth-library-php/main/", "issues": "https://github.com/googleapis/google-auth-library-php/issues", - "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.37.1" + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.39.0" }, - "time": "2024-04-03T18:41:12+00:00" + "time": "2024-05-02T16:03:51+00:00" }, { "name": "google/cloud-ai-platform", @@ -13091,16 +13103,16 @@ }, { "name": "google/cloud-document-ai", - "version": "v1.11.1", + "version": "v1.12.1", "source": { "type": "git", "url": "https://github.com/googleapis/google-cloud-php-document-ai.git", - "reference": "50976ea064f18aab126471a630ded0f897ef1867" + "reference": "0d85771ad43b5cd907cab244d72a2d6b00e14c45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-cloud-php-document-ai/zipball/50976ea064f18aab126471a630ded0f897ef1867", - "reference": "50976ea064f18aab126471a630ded0f897ef1867", + "url": "https://api.github.com/repos/googleapis/google-cloud-php-document-ai/zipball/0d85771ad43b5cd907cab244d72a2d6b00e14c45", + "reference": "0d85771ad43b5cd907cab244d72a2d6b00e14c45", "shasum": "" }, "require": { @@ -13135,9 +13147,9 @@ ], "description": "Google Cloud Document Ai Client for PHP", "support": { - "source": "https://github.com/googleapis/google-cloud-php-document-ai/tree/v1.11.1" + "source": "https://github.com/googleapis/google-cloud-php-document-ai/tree/v1.12.1" }, - "time": "2024-03-01T11:25:35+00:00" + "time": "2024-05-03T18:32:44+00:00" }, { "name": "google/common-protos", @@ -13193,23 +13205,23 @@ }, { "name": "google/gax", - "version": "v1.30.1", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/googleapis/gax-php.git", - "reference": "2deeb24898d0ba3c4faba48f7f0cfcc1ef341613" + "reference": "12a158e9b503df0087ebf9e218e8d75dc815a521" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/gax-php/zipball/2deeb24898d0ba3c4faba48f7f0cfcc1ef341613", - "reference": "2deeb24898d0ba3c4faba48f7f0cfcc1ef341613", + "url": "https://api.github.com/repos/googleapis/gax-php/zipball/12a158e9b503df0087ebf9e218e8d75dc815a521", + "reference": "12a158e9b503df0087ebf9e218e8d75dc815a521", "shasum": "" }, "require": { "google/auth": "^1.34.0", "google/common-protos": "^4.4", "google/grpc-gcp": "^0.4", - "google/longrunning": "~0.2", + "google/longrunning": "~0.4", "google/protobuf": "^v3.25.3||^4.26.1", "grpc/grpc": "^1.13", "guzzlehttp/promises": "^2.0", @@ -13222,6 +13234,7 @@ }, "require-dev": { "phpspec/prophecy-phpunit": "^2.1", + "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^9.6", "squizlabs/php_codesniffer": "3.*" }, @@ -13243,9 +13256,9 @@ ], "support": { "issues": "https://github.com/googleapis/gax-php/issues", - "source": "https://github.com/googleapis/gax-php/tree/v1.30.1" + "source": "https://github.com/googleapis/gax-php/tree/v1.33.0" }, - "time": "2024-04-03T19:04:34+00:00" + "time": "2024-05-14T14:55:14+00:00" }, { "name": "google/grpc-gcp", @@ -13294,16 +13307,16 @@ }, { "name": "google/longrunning", - "version": "0.3.1", + "version": "0.4.2", "source": { "type": "git", "url": "https://github.com/googleapis/php-longrunning.git", - "reference": "a974fe870d5f57cc21da697923a1f4e8d08829c9" + "reference": "dd38c97ee348ad73bfb581aa276a536161f4b181" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/php-longrunning/zipball/a974fe870d5f57cc21da697923a1f4e8d08829c9", - "reference": "a974fe870d5f57cc21da697923a1f4e8d08829c9", + "url": "https://api.github.com/repos/googleapis/php-longrunning/zipball/dd38c97ee348ad73bfb581aa276a536161f4b181", + "reference": "dd38c97ee348ad73bfb581aa276a536161f4b181", "shasum": "" }, "require-dev": { @@ -13332,9 +13345,9 @@ ], "description": "Google LongRunning Client for PHP", "support": { - "source": "https://github.com/googleapis/php-longrunning/tree/v0.3.1" + "source": "https://github.com/googleapis/php-longrunning/tree/v0.4.2" }, - "time": "2024-03-01T11:25:35+00:00" + "time": "2024-05-03T18:32:44+00:00" }, { "name": "google/protobuf", @@ -13486,24 +13499,24 @@ }, { "name": "grasmash/yaml-cli", - "version": "3.1.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/grasmash/yaml-cli.git", - "reference": "00f3fd775f6abbfacd44432f1999c3c3b02791f0" + "reference": "09a8860566958a1576cc54bbe910a03477e54971" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/grasmash/yaml-cli/zipball/00f3fd775f6abbfacd44432f1999c3c3b02791f0", - "reference": "00f3fd775f6abbfacd44432f1999c3c3b02791f0", + "url": "https://api.github.com/repos/grasmash/yaml-cli/zipball/09a8860566958a1576cc54bbe910a03477e54971", + "reference": "09a8860566958a1576cc54bbe910a03477e54971", "shasum": "" }, "require": { "dflydev/dot-access-data": "^3", "php": ">=8.0", - "symfony/console": "^6", - "symfony/filesystem": "^6", - "symfony/yaml": "^6" + "symfony/console": "^6 || ^7", + "symfony/filesystem": "^6 || ^7", + "symfony/yaml": "^6 || ^7" }, "require-dev": { "php-coveralls/php-coveralls": "^2", @@ -13536,9 +13549,9 @@ "description": "A command line tool for reading and manipulating yaml files.", "support": { "issues": "https://github.com/grasmash/yaml-cli/issues", - "source": "https://github.com/grasmash/yaml-cli/tree/3.1.0" + "source": "https://github.com/grasmash/yaml-cli/tree/3.2.1" }, - "time": "2022-05-09T20:22:34+00:00" + "time": "2024-04-23T02:10:57+00:00" }, { "name": "grpc/grpc", @@ -14445,16 +14458,16 @@ }, { "name": "monolog/monolog", - "version": "3.5.0", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" + "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", + "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", "shasum": "" }, "require": { @@ -14477,7 +14490,7 @@ "phpstan/phpstan": "^1.9", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "^10.1", + "phpunit/phpunit": "^10.5.17", "predis/predis": "^1.1 || ^2", "ruflin/elastica": "^7", "symfony/mailer": "^5.4 || ^6", @@ -14530,7 +14543,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.5.0" + "source": "https://github.com/Seldaek/monolog/tree/3.6.0" }, "funding": [ { @@ -14542,29 +14555,31 @@ "type": "tidelift" } ], - "time": "2023-10-27T15:32:31+00:00" + "time": "2024-04-12T21:02:21+00:00" }, { "name": "nikic/php-parser", - "version": "v4.19.1", + "version": "v5.0.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", - "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.1" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -14572,7 +14587,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -14596,9 +14611,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" }, - "time": "2024-03-17T08:10:35+00:00" + "time": "2024-03-05T20:51:40+00:00" }, { "name": "onelogin/php-saml", @@ -14715,16 +14730,16 @@ }, { "name": "paragonie/constant_time_encoding", - "version": "v2.6.3", + "version": "v2.7.0", "source": { "type": "git", "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "58c3f47f650c94ec05a151692652a868995d2938" + "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938", - "reference": "58c3f47f650c94ec05a151692652a868995d2938", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105", + "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105", "shasum": "" }, "require": { @@ -14778,7 +14793,7 @@ "issues": "https://github.com/paragonie/constant_time_encoding/issues", "source": "https://github.com/paragonie/constant_time_encoding" }, - "time": "2022-06-14T06:56:20+00:00" + "time": "2024-05-08T12:18:48+00:00" }, { "name": "paragonie/random_compat", @@ -15371,16 +15386,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.28.0", + "version": "1.29.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb" + "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb", - "reference": "cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/536889f2b340489d328f5ffb7b02bb6b183ddedc", + "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc", "shasum": "" }, "require": { @@ -15412,9 +15427,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.28.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.0" }, - "time": "2024-04-03T18:51:33+00:00" + "time": "2024-05-06T12:04:23+00:00" }, { "name": "picqer/php-barcode-generator", @@ -15746,20 +15761,20 @@ }, { "name": "psr/http-factory", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.0.0", + "php": ">=7.1", "psr/http-message": "^1.0 || ^2.0" }, "type": "library", @@ -15783,7 +15798,7 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "factory", "http", @@ -15795,9 +15810,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2023-04-10T20:10:41+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { "name": "psr/http-message", @@ -16116,20 +16131,20 @@ }, { "name": "ramsey/uuid", - "version": "4.7.5", + "version": "4.7.6", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e" + "reference": "91039bc1faa45ba123c4328958e620d382ec7088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", - "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", "ext-json": "*", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" @@ -16192,7 +16207,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.7.5" + "source": "https://github.com/ramsey/uuid/tree/4.7.6" }, "funding": [ { @@ -16204,7 +16219,7 @@ "type": "tidelift" } ], - "time": "2023-11-08T05:53:05+00:00" + "time": "2024-04-27T21:32:50+00:00" }, { "name": "rlanvin/php-rrule", @@ -16599,16 +16614,16 @@ }, { "name": "sirbrillig/phpcs-variable-analysis", - "version": "v2.11.17", + "version": "v2.11.18", "source": { "type": "git", "url": "https://github.com/sirbrillig/phpcs-variable-analysis.git", - "reference": "3b71162a6bf0cde2bff1752e40a1788d8273d049" + "reference": "ca242a0b7309e0f9d1f73b236e04ecf4ca3248d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/3b71162a6bf0cde2bff1752e40a1788d8273d049", - "reference": "3b71162a6bf0cde2bff1752e40a1788d8273d049", + "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/ca242a0b7309e0f9d1f73b236e04ecf4ca3248d0", + "reference": "ca242a0b7309e0f9d1f73b236e04ecf4ca3248d0", "shasum": "" }, "require": { @@ -16653,7 +16668,7 @@ "source": "https://github.com/sirbrillig/phpcs-variable-analysis", "wiki": "https://github.com/sirbrillig/phpcs-variable-analysis/wiki" }, - "time": "2023-08-05T23:46:11+00:00" + "time": "2024-04-13T16:42:46+00:00" }, { "name": "slevomat/coding-standard", @@ -16781,16 +16796,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.9.1", + "version": "3.9.2", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "267a4405fff1d9c847134db3a3c92f1ab7f77909" + "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/267a4405fff1d9c847134db3a3c92f1ab7f77909", - "reference": "267a4405fff1d9c847134db3a3c92f1ab7f77909", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/aac1f6f347a5c5ac6bc98ad395007df00990f480", + "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480", "shasum": "" }, "require": { @@ -16857,20 +16872,20 @@ "type": "open_collective" } ], - "time": "2024-03-31T21:03:09+00:00" + "time": "2024-04-23T20:25:34+00:00" }, { "name": "symfony/console", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a2708a5da5c87d1d0d52937bdeac625df659e11f" + "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a2708a5da5c87d1d0d52937bdeac625df659e11f", - "reference": "a2708a5da5c87d1d0d52937bdeac625df659e11f", + "url": "https://api.github.com/repos/symfony/console/zipball/a170e64ae10d00ba89e2acbb590dc2e54da8ad8f", + "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f", "shasum": "" }, "require": { @@ -16935,7 +16950,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.6" + "source": "https://github.com/symfony/console/tree/v6.4.7" }, "funding": [ { @@ -16951,20 +16966,20 @@ "type": "tidelift" } ], - "time": "2024-03-29T19:07:53+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "31417777509923b22de5c6fb6b3ffcdebde37cb5" + "reference": "d8c5f9781b71c2a868ae9d0e5c9b283684740b6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/31417777509923b22de5c6fb6b3ffcdebde37cb5", - "reference": "31417777509923b22de5c6fb6b3ffcdebde37cb5", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d8c5f9781b71c2a868ae9d0e5c9b283684740b6d", + "reference": "d8c5f9781b71c2a868ae9d0e5c9b283684740b6d", "shasum": "" }, "require": { @@ -17016,7 +17031,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.6" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.7" }, "funding": [ { @@ -17032,20 +17047,20 @@ "type": "tidelift" } ], - "time": "2024-03-27T22:00:14+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.4.0", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", "shasum": "" }, "require": { @@ -17054,7 +17069,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -17083,7 +17098,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" }, "funding": [ { @@ -17099,20 +17114,20 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/error-handler", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "64db1c1802e3a4557e37ba33031ac39f452ac5d4" + "reference": "667a072466c6a53827ed7b119af93806b884cbb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/64db1c1802e3a4557e37ba33031ac39f452ac5d4", - "reference": "64db1c1802e3a4557e37ba33031ac39f452ac5d4", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/667a072466c6a53827ed7b119af93806b884cbb3", + "reference": "667a072466c6a53827ed7b119af93806b884cbb3", "shasum": "" }, "require": { @@ -17158,7 +17173,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.6" + "source": "https://github.com/symfony/error-handler/tree/v6.4.7" }, "funding": [ { @@ -17174,20 +17189,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T11:56:30+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.3", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "ae9d3a6f3003a6caf56acd7466d8d52378d44fef" + "reference": "d84384f3f67de3cb650db64d685d70395dacfc3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ae9d3a6f3003a6caf56acd7466d8d52378d44fef", - "reference": "ae9d3a6f3003a6caf56acd7466d8d52378d44fef", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d84384f3f67de3cb650db64d685d70395dacfc3f", + "reference": "d84384f3f67de3cb650db64d685d70395dacfc3f", "shasum": "" }, "require": { @@ -17238,7 +17253,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.7" }, "funding": [ { @@ -17254,20 +17269,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.4.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "4e64b49bf370ade88e567de29465762e316e4224" + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/4e64b49bf370ade88e567de29465762e316e4224", - "reference": "4e64b49bf370ade88e567de29465762e316e4224", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", "shasum": "" }, "require": { @@ -17277,7 +17292,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -17314,7 +17329,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" }, "funding": [ { @@ -17330,26 +17345,27 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/filesystem", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "9919b5509ada52cc7f66f9a35c86a4a29955c9d3" + "reference": "78dde75f8f6dbbca4ec436a4b0087f7af02076d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/9919b5509ada52cc7f66f9a35c86a4a29955c9d3", - "reference": "9919b5509ada52cc7f66f9a35c86a4a29955c9d3", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/78dde75f8f6dbbca4ec436a4b0087f7af02076d4", + "reference": "78dde75f8f6dbbca4ec436a4b0087f7af02076d4", "shasum": "" }, "require": { "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" + "symfony/polyfill-mbstring": "~1.8", + "symfony/process": "^5.4|^6.4" }, "type": "library", "autoload": { @@ -17377,7 +17393,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.6" + "source": "https://github.com/symfony/filesystem/tree/v6.4.7" }, "funding": [ { @@ -17393,20 +17409,20 @@ "type": "tidelift" } ], - "time": "2024-03-21T19:36:20+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/finder", - "version": "v6.4.0", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "11d736e97f116ac375a81f96e662911a34cd50ce" + "reference": "511c48990be17358c23bf45c5d71ab85d40fb764" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce", - "reference": "11d736e97f116ac375a81f96e662911a34cd50ce", + "url": "https://api.github.com/repos/symfony/finder/zipball/511c48990be17358c23bf45c5d71ab85d40fb764", + "reference": "511c48990be17358c23bf45c5d71ab85d40fb764", "shasum": "" }, "require": { @@ -17441,7 +17457,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.0" + "source": "https://github.com/symfony/finder/tree/v6.4.7" }, "funding": [ { @@ -17457,20 +17473,20 @@ "type": "tidelift" } ], - "time": "2023-10-31T17:30:12+00:00" + "time": "2024-04-23T10:36:43+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.4", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304" + "reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ebc713bc6e6f4b53f46539fc158be85dfcd77304", - "reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b4db6b833035477cb70e18d0ae33cb7c2b521759", + "reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759", "shasum": "" }, "require": { @@ -17518,7 +17534,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.4" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.7" }, "funding": [ { @@ -17534,20 +17550,20 @@ "type": "tidelift" } ], - "time": "2024-02-08T15:01:18+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "060038863743fd0cd982be06acecccf246d35653" + "reference": "b7b5e6cdef670a0c82d015a966ffc7e855861a98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/060038863743fd0cd982be06acecccf246d35653", - "reference": "060038863743fd0cd982be06acecccf246d35653", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b7b5e6cdef670a0c82d015a966ffc7e855861a98", + "reference": "b7b5e6cdef670a0c82d015a966ffc7e855861a98", "shasum": "" }, "require": { @@ -17602,6 +17618,7 @@ "symfony/translation-contracts": "^2.5|^3", "symfony/uid": "^5.4|^6.0|^7.0", "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^5.4|^6.4|^7.0", "symfony/var-exporter": "^6.2|^7.0", "twig/twig": "^2.13|^3.0.4" }, @@ -17631,7 +17648,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.6" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.7" }, "funding": [ { @@ -17647,20 +17664,20 @@ "type": "tidelift" } ], - "time": "2024-04-03T06:09:15+00:00" + "time": "2024-04-29T11:24:44+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "677f34a6f4b4559e08acf73ae0aec460479e5859" + "reference": "2c446d4e446995bed983c0b5bb9ff837e8de7dbd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/677f34a6f4b4559e08acf73ae0aec460479e5859", - "reference": "677f34a6f4b4559e08acf73ae0aec460479e5859", + "url": "https://api.github.com/repos/symfony/mailer/zipball/2c446d4e446995bed983c0b5bb9ff837e8de7dbd", + "reference": "2c446d4e446995bed983c0b5bb9ff837e8de7dbd", "shasum": "" }, "require": { @@ -17711,7 +17728,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.6" + "source": "https://github.com/symfony/mailer/tree/v6.4.7" }, "funding": [ { @@ -17727,20 +17744,20 @@ "type": "tidelift" } ], - "time": "2024-03-27T21:14:17+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/mime", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "14762b86918823cb42e3558cdcca62e58b5227fe" + "reference": "decadcf3865918ecfcbfa90968553994ce935a5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/14762b86918823cb42e3558cdcca62e58b5227fe", - "reference": "14762b86918823cb42e3558cdcca62e58b5227fe", + "url": "https://api.github.com/repos/symfony/mime/zipball/decadcf3865918ecfcbfa90968553994ce935a5e", + "reference": "decadcf3865918ecfcbfa90968553994ce935a5e", "shasum": "" }, "require": { @@ -17796,7 +17813,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.6" + "source": "https://github.com/symfony/mime/tree/v6.4.7" }, "funding": [ { @@ -17812,7 +17829,7 @@ "type": "tidelift" } ], - "time": "2024-03-21T19:36:20+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/polyfill-ctype", @@ -18604,16 +18621,16 @@ }, { "name": "symfony/process", - "version": "v6.4.4", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "710e27879e9be3395de2b98da3f52a946039f297" + "reference": "cdb1c81c145fd5aa9b0038bab694035020943381" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/710e27879e9be3395de2b98da3f52a946039f297", - "reference": "710e27879e9be3395de2b98da3f52a946039f297", + "url": "https://api.github.com/repos/symfony/process/zipball/cdb1c81c145fd5aa9b0038bab694035020943381", + "reference": "cdb1c81c145fd5aa9b0038bab694035020943381", "shasum": "" }, "require": { @@ -18645,7 +18662,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.4" + "source": "https://github.com/symfony/process/tree/v6.4.7" }, "funding": [ { @@ -18661,20 +18678,20 @@ "type": "tidelift" } ], - "time": "2024-02-20T12:31:00+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "98059dd19bae6579a294e0fe5b3dfdbeb409845a" + "reference": "e8adf6b1b46d9115f5d9247fa74bbefc459680c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/98059dd19bae6579a294e0fe5b3dfdbeb409845a", - "reference": "98059dd19bae6579a294e0fe5b3dfdbeb409845a", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/e8adf6b1b46d9115f5d9247fa74bbefc459680c0", + "reference": "e8adf6b1b46d9115f5d9247fa74bbefc459680c0", "shasum": "" }, "require": { @@ -18728,7 +18745,7 @@ "psr-7" ], "support": { - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.6" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.7" }, "funding": [ { @@ -18744,20 +18761,20 @@ "type": "tidelift" } ], - "time": "2024-03-27T22:00:14+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/routing", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "f2591fd1f8c6e3734656b5d6b3829e8bf81f507c" + "reference": "276e06398f71fa2a973264d94f28150f93cfb907" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/f2591fd1f8c6e3734656b5d6b3829e8bf81f507c", - "reference": "f2591fd1f8c6e3734656b5d6b3829e8bf81f507c", + "url": "https://api.github.com/repos/symfony/routing/zipball/276e06398f71fa2a973264d94f28150f93cfb907", + "reference": "276e06398f71fa2a973264d94f28150f93cfb907", "shasum": "" }, "require": { @@ -18811,7 +18828,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.6" + "source": "https://github.com/symfony/routing/tree/v6.4.7" }, "funding": [ { @@ -18827,20 +18844,20 @@ "type": "tidelift" } ], - "time": "2024-03-28T13:28:49+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/serializer", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "3697adf91f83516c86b4912c08c28084711ed560" + "reference": "73820ab43d12c2f29445080004054b0066082bf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/3697adf91f83516c86b4912c08c28084711ed560", - "reference": "3697adf91f83516c86b4912c08c28084711ed560", + "url": "https://api.github.com/repos/symfony/serializer/zipball/73820ab43d12c2f29445080004054b0066082bf1", + "reference": "73820ab43d12c2f29445080004054b0066082bf1", "shasum": "" }, "require": { @@ -18909,7 +18926,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.4.6" + "source": "https://github.com/symfony/serializer/tree/v6.4.7" }, "funding": [ { @@ -18925,25 +18942,26 @@ "type": "tidelift" } ], - "time": "2024-03-27T22:00:14+00:00" + "time": "2024-04-23T09:00:49+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "11bbf19a0fb7b36345861e85c5768844c552906e" + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/11bbf19a0fb7b36345861e85c5768844c552906e", - "reference": "11bbf19a0fb7b36345861e85c5768844c552906e", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^1.1|^2.0" + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -18951,7 +18969,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -18991,7 +19009,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" }, "funding": [ { @@ -19007,20 +19025,20 @@ "type": "tidelift" } ], - "time": "2023-12-19T21:51:00+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/string", - "version": "v6.4.4", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9" + "reference": "ffeb9591c61f65a68d47f77d12b83fa530227a69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9", - "reference": "4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9", + "url": "https://api.github.com/repos/symfony/string/zipball/ffeb9591c61f65a68d47f77d12b83fa530227a69", + "reference": "ffeb9591c61f65a68d47f77d12b83fa530227a69", "shasum": "" }, "require": { @@ -19077,7 +19095,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.4" + "source": "https://github.com/symfony/string/tree/v6.4.7" }, "funding": [ { @@ -19093,20 +19111,20 @@ "type": "tidelift" } ], - "time": "2024-02-01T13:16:41+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.4.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b" + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/43810bdb2ddb5400e5c5e778e27b210a0ca83b6b", - "reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", "shasum": "" }, "require": { @@ -19115,7 +19133,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -19155,7 +19173,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.2" + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" }, "funding": [ { @@ -19171,20 +19189,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/validator", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "ca1d78e8677e966e307a63799677b64b194d735d" + "reference": "4761a08d161d823ec281151ade0905547e0502a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/ca1d78e8677e966e307a63799677b64b194d735d", - "reference": "ca1d78e8677e966e307a63799677b64b194d735d", + "url": "https://api.github.com/repos/symfony/validator/zipball/4761a08d161d823ec281151ade0905547e0502a7", + "reference": "4761a08d161d823ec281151ade0905547e0502a7", "shasum": "" }, "require": { @@ -19251,7 +19269,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.6" + "source": "https://github.com/symfony/validator/tree/v6.4.7" }, "funding": [ { @@ -19267,20 +19285,20 @@ "type": "tidelift" } ], - "time": "2024-03-27T22:00:14+00:00" + "time": "2024-04-28T10:38:38+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "95bd2706a97fb875185b51ecaa6112ec184233d4" + "reference": "7a9cd977cd1c5fed3694bee52990866432af07d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/95bd2706a97fb875185b51ecaa6112ec184233d4", - "reference": "95bd2706a97fb875185b51ecaa6112ec184233d4", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/7a9cd977cd1c5fed3694bee52990866432af07d7", + "reference": "7a9cd977cd1c5fed3694bee52990866432af07d7", "shasum": "" }, "require": { @@ -19336,7 +19354,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.6" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.7" }, "funding": [ { @@ -19352,20 +19370,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T11:56:30+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "20888cf4d11de203613515cf0587828bf5af0fe7" + "reference": "825f9b00c37bbe1c1691cc1aff9b5451fc9b4405" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/20888cf4d11de203613515cf0587828bf5af0fe7", - "reference": "20888cf4d11de203613515cf0587828bf5af0fe7", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/825f9b00c37bbe1c1691cc1aff9b5451fc9b4405", + "reference": "825f9b00c37bbe1c1691cc1aff9b5451fc9b4405", "shasum": "" }, "require": { @@ -19413,7 +19431,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.6" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.7" }, "funding": [ { @@ -19429,20 +19447,20 @@ "type": "tidelift" } ], - "time": "2024-03-20T21:07:14+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.3", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "d75715985f0f94f978e3a8fa42533e10db921b90" + "reference": "53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/d75715985f0f94f978e3a8fa42533e10db921b90", - "reference": "d75715985f0f94f978e3a8fa42533e10db921b90", + "url": "https://api.github.com/repos/symfony/yaml/zipball/53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0", + "reference": "53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0", "shasum": "" }, "require": { @@ -19485,7 +19503,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.3" + "source": "https://github.com/symfony/yaml/tree/v6.4.7" }, "funding": [ { @@ -19501,34 +19519,41 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-28T10:28:08+00:00" }, { "name": "twig/twig", - "version": "v3.8.0", + "version": "v3.10.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d" + "reference": "7aaed0b8311a557cc8c4047a71fd03153a00e755" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", - "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/7aaed0b8311a557cc8c4047a71fd03153a00e755", + "reference": "7aaed0b8311a557cc8c4047a71fd03153a00e755", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3", "symfony/polyfill-php80": "^1.22" }, "require-dev": { "psr/container": "^1.0|^2.0", - "symfony/phpunit-bridge": "^5.4.9|^6.3|^7.0" + "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, "type": "library", "autoload": { + "files": [ + "src/Resources/core.php", + "src/Resources/debug.php", + "src/Resources/escaper.php", + "src/Resources/string_loader.php" + ], "psr-4": { "Twig\\": "src/" } @@ -19561,7 +19586,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.8.0" + "source": "https://github.com/twigphp/Twig/tree/v3.10.2" }, "funding": [ { @@ -19573,7 +19598,7 @@ "type": "tidelift" } ], - "time": "2023-11-21T18:54:41+00:00" + "time": "2024-05-14T06:04:16+00:00" }, { "name": "vardot/blazy", @@ -19675,30 +19700,31 @@ }, { "name": "webflo/drupal-finder", - "version": "1.2.2", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/webflo/drupal-finder.git", - "reference": "c8e5dbe65caef285fec8057a4c718a0d4138d1ee" + "reference": "1fa65484857c7a2e4dcf0d9e0b47198fe0681b8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webflo/drupal-finder/zipball/c8e5dbe65caef285fec8057a4c718a0d4138d1ee", - "reference": "c8e5dbe65caef285fec8057a4c718a0d4138d1ee", + "url": "https://api.github.com/repos/webflo/drupal-finder/zipball/1fa65484857c7a2e4dcf0d9e0b47198fe0681b8a", + "reference": "1fa65484857c7a2e4dcf0d9e0b47198fe0681b8a", "shasum": "" }, "require": { - "ext-json": "*" + "composer-runtime-api": "^2.2", + "php": ">=8.1" }, "require-dev": { "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "^4.8" + "phpunit/phpunit": "^10.4" }, "type": "library", "autoload": { - "classmap": [ - "src/DrupalFinder.php" - ] + "psr-4": { + "DrupalFinder\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -19710,12 +19736,12 @@ "email": "florian@webflo.org" } ], - "description": "Helper class to locate a Drupal installation from a given path.", + "description": "Helper class to locate a Drupal installation.", "support": { "issues": "https://github.com/webflo/drupal-finder/issues", - "source": "https://github.com/webflo/drupal-finder/tree/1.2.2" + "source": "https://github.com/webflo/drupal-finder/tree/1.3.0" }, - "time": "2020-10-27T09:42:17+00:00" + "time": "2024-05-08T21:22:39+00:00" } ], "packages-dev": [ @@ -20153,16 +20179,16 @@ }, { "name": "composer/composer", - "version": "2.7.2", + "version": "2.7.6", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "b826edb791571ab1eaf281eb1bd6e181a1192adc" + "reference": "fabd995783b633829fd4280e272284b39b6ae702" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/b826edb791571ab1eaf281eb1bd6e181a1192adc", - "reference": "b826edb791571ab1eaf281eb1bd6e181a1192adc", + "url": "https://api.github.com/repos/composer/composer/zipball/fabd995783b633829fd4280e272284b39b6ae702", + "reference": "fabd995783b633829fd4280e272284b39b6ae702", "shasum": "" }, "require": { @@ -20247,7 +20273,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.7.2" + "source": "https://github.com/composer/composer/tree/2.7.6" }, "funding": [ { @@ -20263,7 +20289,7 @@ "type": "tidelift" } ], - "time": "2024-03-11T16:12:18+00:00" + "time": "2024-05-04T21:03:15+00:00" }, { "name": "composer/metadata-minifier", @@ -20487,16 +20513,16 @@ }, { "name": "composer/xdebug-handler", - "version": "3.0.4", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", - "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { @@ -20533,7 +20559,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.4" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, "funding": [ { @@ -20549,7 +20575,7 @@ "type": "tidelift" } ], - "time": "2024-03-26T18:29:49+00:00" + "time": "2024-05-06T16:37:16+00:00" }, { "name": "dekor/php-array-table", @@ -20602,16 +20628,16 @@ }, { "name": "doctrine/common", - "version": "3.4.3", + "version": "3.4.4", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced" + "reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced", - "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced", + "url": "https://api.github.com/repos/doctrine/common/zipball/0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a", + "reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a", "shasum": "" }, "require": { @@ -20673,7 +20699,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.4.3" + "source": "https://github.com/doctrine/common/tree/3.4.4" }, "funding": [ { @@ -20689,7 +20715,7 @@ "type": "tidelift" } ], - "time": "2022-10-09T11:47:59+00:00" + "time": "2024-04-16T13:35:33+00:00" }, { "name": "doctrine/event-manager", @@ -21016,7 +21042,7 @@ }, { "name": "drupal/core-dev", - "version": "10.2.5", + "version": "10.2.6", "source": { "type": "git", "url": "https://github.com/drupal/core-dev.git", @@ -21066,7 +21092,7 @@ ], "description": "require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.", "support": { - "source": "https://github.com/drupal/core-dev/tree/10.2.5" + "source": "https://github.com/drupal/core-dev/tree/10.2.6" }, "time": "2024-02-14T18:07:20+00:00" }, @@ -21131,32 +21157,35 @@ }, { "name": "drupal/upgrade_status", - "version": "4.1.0", + "version": "4.3.1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/upgrade_status.git", - "reference": "4.1.0" + "reference": "4.3.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/upgrade_status-4.1.0.zip", - "reference": "4.1.0", - "shasum": "b306740b7e952f3d6bb71a2e0a165d48977e732a" + "url": "https://ftp.drupal.org/files/projects/upgrade_status-4.3.1.zip", + "reference": "4.3.1", + "shasum": "18390306878f8abe2c2c68d471217655e5b7b31c" }, "require": { "dekor/php-array-table": "^2.0", "drupal/core": "^9 || ^10", "mglaman/phpstan-drupal": "^1.0.0", - "nikic/php-parser": "^4.0.0", + "nikic/php-parser": "^4.0.0|^5.0.0", "phpstan/phpstan-deprecation-rules": "^1.0.0", "symfony/process": "^3.4|^4.0|^5.0|^6.0", "webflo/drupal-finder": "^1.2" }, + "require-dev": { + "drush/drush": "^11|^12" + }, "type": "drupal-module", "extra": { "drupal": { - "version": "4.1.0", - "datestamp": "1708602507", + "version": "4.3.1", + "datestamp": "1714463117", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -21269,16 +21298,16 @@ }, { "name": "mglaman/phpstan-drupal", - "version": "1.2.10", + "version": "1.2.11", "source": { "type": "git", "url": "https://github.com/mglaman/phpstan-drupal.git", - "reference": "cdafb3285beeb5fadf25a43e18fee6f80bb14575" + "reference": "e624a4b64de5b91a0c56852635af2115e9a6e08c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/cdafb3285beeb5fadf25a43e18fee6f80bb14575", - "reference": "cdafb3285beeb5fadf25a43e18fee6f80bb14575", + "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/e624a4b64de5b91a0c56852635af2115e9a6e08c", + "reference": "e624a4b64de5b91a0c56852635af2115e9a6e08c", "shasum": "" }, "require": { @@ -21293,10 +21322,10 @@ "behat/mink": "^1.8", "composer/installers": "^1.9", "drupal/core-recommended": "^10", - "drush/drush": "^10.0 || ^11 || ^12", + "drush/drush": "^10.0 || ^11 || ^12 || ^13@beta", "phpstan/extension-installer": "^1.1", "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^8.5 || ^9", + "phpunit/phpunit": "^8.5 || ^9 || ^10 || ^11", "slevomat/coding-standard": "^7.1", "squizlabs/php_codesniffer": "^3.3", "symfony/phpunit-bridge": "^4.4 || ^5.4 || ^6.0 || ^7.0" @@ -21353,7 +21382,7 @@ "description": "Drupal extension and rules for PHPStan", "support": { "issues": "https://github.com/mglaman/phpstan-drupal/issues", - "source": "https://github.com/mglaman/phpstan-drupal/tree/1.2.10" + "source": "https://github.com/mglaman/phpstan-drupal/tree/1.2.11" }, "funding": [ { @@ -21369,7 +21398,7 @@ "type": "tidelift" } ], - "time": "2024-04-02T17:27:29+00:00" + "time": "2024-05-10T17:22:10+00:00" }, { "name": "micheh/phpcs-gitlab", @@ -21871,20 +21900,20 @@ }, { "name": "open-telemetry/sem-conv", - "version": "1.24.0", + "version": "1.25.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/sem-conv.git", - "reference": "d03e6501d21c04cd1b1e66e4cbcc7c2dd2e2cfa3" + "reference": "23f457ba390847647a17068e0095d9ffe9a4824c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/d03e6501d21c04cd1b1e66e4cbcc7c2dd2e2cfa3", - "reference": "d03e6501d21c04cd1b1e66e4cbcc7c2dd2e2cfa3", + "url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/23f457ba390847647a17068e0095d9ffe9a4824c", + "reference": "23f457ba390847647a17068e0095d9ffe9a4824c", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0" + "php": "^8.1" }, "type": "library", "extra": { @@ -21924,7 +21953,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-01-23T21:47:17+00:00" + "time": "2024-04-09T23:31:35+00:00" }, { "name": "phar-io/manifest", @@ -22799,16 +22828,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.66", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "94779c987e4ebd620025d9e5fdd23323903950bd" + "reference": "e524358f930e41a2b4cca1320e3b04fc26b39e0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/94779c987e4ebd620025d9e5fdd23323903950bd", - "reference": "94779c987e4ebd620025d9e5fdd23323903950bd", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e524358f930e41a2b4cca1320e3b04fc26b39e0b", + "reference": "e524358f930e41a2b4cca1320e3b04fc26b39e0b", "shasum": "" }, "require": { @@ -22851,35 +22880,30 @@ { "url": "https://github.com/phpstan", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" } ], - "time": "2024-03-28T16:17:31+00:00" + "time": "2024-05-15T08:00:59+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", - "version": "1.1.4", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-deprecation-rules.git", - "reference": "089d8a8258ed0aeefdc7b68b6c3d25572ebfdbaa" + "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/089d8a8258ed0aeefdc7b68b6c3d25572ebfdbaa", - "reference": "089d8a8258ed0aeefdc7b68b6c3d25572ebfdbaa", + "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/fa8cce7720fa782899a0aa97b6a41225d1bb7b26", + "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26", "shasum": "" }, "require": { "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.10.3" + "phpstan/phpstan": "^1.11" }, "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/phpstan-php-parser": "^1.1", "phpstan/phpstan-phpunit": "^1.0", "phpunit/phpunit": "^9.5" }, @@ -22903,27 +22927,27 @@ "description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.", "support": { "issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues", - "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.1.4" + "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.2.0" }, - "time": "2023-08-05T09:02:04+00:00" + "time": "2024-04-20T06:39:48+00:00" }, { "name": "phpstan/phpstan-phpunit", - "version": "1.3.16", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-phpunit.git", - "reference": "d5242a59d035e46774f2e634b374bc39ff62cb95" + "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/d5242a59d035e46774f2e634b374bc39ff62cb95", - "reference": "d5242a59d035e46774f2e634b374bc39ff62cb95", + "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/f3ea021866f4263f07ca3636bf22c64be9610c11", + "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11", "shasum": "" }, "require": { "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.10" + "phpstan/phpstan": "^1.11" }, "conflict": { "phpunit/phpunit": "<7.0" @@ -22955,9 +22979,9 @@ "description": "PHPUnit extensions and rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-phpunit/issues", - "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.3.16" + "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.4.0" }, - "time": "2024-02-23T09:51:20+00:00" + "time": "2024-04-20T06:39:00+00:00" }, { "name": "phpunit/php-code-coverage", @@ -24526,16 +24550,16 @@ }, { "name": "symfony/browser-kit", - "version": "v6.4.3", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "495ffa2e6d17e199213f93768efa01af32bbf70e" + "reference": "c276856598f70e96f75403fc04841cec1dc56e74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/495ffa2e6d17e199213f93768efa01af32bbf70e", - "reference": "495ffa2e6d17e199213f93768efa01af32bbf70e", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/c276856598f70e96f75403fc04841cec1dc56e74", + "reference": "c276856598f70e96f75403fc04841cec1dc56e74", "shasum": "" }, "require": { @@ -24574,7 +24598,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v6.4.3" + "source": "https://github.com/symfony/browser-kit/tree/v6.4.7" }, "funding": [ { @@ -24590,20 +24614,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/css-selector", - "version": "v6.4.3", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "ee0f7ed5cf298cc019431bb3b3977ebc52b86229" + "reference": "1c5d5c2103c3762aff27a27e1e2409e30a79083b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/ee0f7ed5cf298cc019431bb3b3977ebc52b86229", - "reference": "ee0f7ed5cf298cc019431bb3b3977ebc52b86229", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c5d5c2103c3762aff27a27e1e2409e30a79083b", + "reference": "1c5d5c2103c3762aff27a27e1e2409e30a79083b", "shasum": "" }, "require": { @@ -24639,7 +24663,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.4.3" + "source": "https://github.com/symfony/css-selector/tree/v6.4.7" }, "funding": [ { @@ -24655,20 +24679,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/dom-crawler", - "version": "v6.4.4", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "f0e7ec3fa17000e2d0cb4557b4b47c88a6a63531" + "reference": "2088c5da700b1e7a8689fffc10dda6c1f643deea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/f0e7ec3fa17000e2d0cb4557b4b47c88a6a63531", - "reference": "f0e7ec3fa17000e2d0cb4557b4b47c88a6a63531", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2088c5da700b1e7a8689fffc10dda6c1f643deea", + "reference": "2088c5da700b1e7a8689fffc10dda6c1f643deea", "shasum": "" }, "require": { @@ -24706,7 +24730,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.4.4" + "source": "https://github.com/symfony/dom-crawler/tree/v6.4.7" }, "funding": [ { @@ -24722,20 +24746,20 @@ "type": "tidelift" } ], - "time": "2024-02-07T09:17:57+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/lock", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/lock.git", - "reference": "53f0dbf55871774bf42773ed478b7106486b8b98" + "reference": "c6b3959c418a7c1115c060fab77927ca4bd2546a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/53f0dbf55871774bf42773ed478b7106486b8b98", - "reference": "53f0dbf55871774bf42773ed478b7106486b8b98", + "url": "https://api.github.com/repos/symfony/lock/zipball/c6b3959c418a7c1115c060fab77927ca4bd2546a", + "reference": "c6b3959c418a7c1115c060fab77927ca4bd2546a", "shasum": "" }, "require": { @@ -24785,7 +24809,7 @@ "semaphore" ], "support": { - "source": "https://github.com/symfony/lock/tree/v6.4.6" + "source": "https://github.com/symfony/lock/tree/v6.4.7" }, "funding": [ { @@ -24801,20 +24825,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T09:23:21+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "3065d1c5b4cd0a46b11845b705d21ee692e52cd6" + "reference": "a33ca737283c76617c4089a8425c7785b344e283" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/3065d1c5b4cd0a46b11845b705d21ee692e52cd6", - "reference": "3065d1c5b4cd0a46b11845b705d21ee692e52cd6", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/a33ca737283c76617c4089a8425c7785b344e283", + "reference": "a33ca737283c76617c4089a8425c7785b344e283", "shasum": "" }, "require": { @@ -24866,7 +24890,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.6" + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.7" }, "funding": [ { @@ -24882,7 +24906,7 @@ "type": "tidelift" } ], - "time": "2024-03-19T11:56:30+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/polyfill-php73", From 16eee35db3f0e56fe9eae79bf17a7d37aa710794 Mon Sep 17 00:00:00 2001 From: David Upton Date: Wed, 15 May 2024 18:12:25 -0400 Subject: [PATCH 16/20] DIG-4448 Extends timeout to try to address contact form sending issues. --- .../modules/bos_email/src/Controller/EmailController.php | 3 +++ .../bos_components/modules/bos_email/src/Services/TokenOps.php | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docroot/modules/custom/bos_components/modules/bos_email/src/Controller/EmailController.php b/docroot/modules/custom/bos_components/modules/bos_email/src/Controller/EmailController.php index 2dfd548bae..17da958497 100644 --- a/docroot/modules/custom/bos_components/modules/bos_email/src/Controller/EmailController.php +++ b/docroot/modules/custom/bos_components/modules/bos_email/src/Controller/EmailController.php @@ -899,6 +899,9 @@ public static function alertHandler($item, $response, $http_code, $config = NULL && strtolower($error) == "authtoken") { $item["token_type"] = "Authentication Token"; $mailManager = Drupal::service('plugin.manager.mail'); + /** + * @var Drupal\Core\Mail\MailManager $mailManager + */ if (!$mailManager->mail("bos_email", 'alerts.token', $recipient, "en", $item, NULL, TRUE)) { Drupal::logger("bos_email:EmailController")->warning(t("Email sending from Drupal has failed.")); } diff --git a/docroot/modules/custom/bos_components/modules/bos_email/src/Services/TokenOps.php b/docroot/modules/custom/bos_components/modules/bos_email/src/Services/TokenOps.php index 69dfd2aba3..61675936d5 100644 --- a/docroot/modules/custom/bos_components/modules/bos_email/src/Services/TokenOps.php +++ b/docroot/modules/custom/bos_components/modules/bos_email/src/Services/TokenOps.php @@ -25,7 +25,7 @@ public function sessionTokenCreate(): array { $date_time = Drupal::time()->getCurrentTime(); Drupal::service("keyvalue.expirable") ->get("client_rest_token") - ->setWithExpire("token_session_{$date_time}", $date_time, (60 * 60)); + ->setWithExpire("token_session_{$date_time}", $date_time, (12 * 60 * 60)); // $this->session->set("token_session_{$date_time}", $date_time); return ['token_session' => $date_time]; } From b97f1b5c5f2f050946b8bfef5bdea117ccb73d6d Mon Sep 17 00:00:00 2001 From: David Upton Date: Wed, 15 May 2024 18:18:22 -0400 Subject: [PATCH 17/20] DIG-4448 Adds info to alert emails. --- .../modules/bos_email/bos_email.module | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/docroot/modules/custom/bos_components/modules/bos_email/bos_email.module b/docroot/modules/custom/bos_components/modules/bos_email/bos_email.module index 6e0e117a2d..55c37e99f9 100644 --- a/docroot/modules/custom/bos_components/modules/bos_email/bos_email.module +++ b/docroot/modules/custom/bos_components/modules/bos_email/bos_email.module @@ -86,15 +86,24 @@ function bos_email_mail($key, &$message, $params) { function _make_HTML_body($params, $custom_msg, $headers) { // Now build the html message. $custom_table = "

"; - if (!empty($params["Subject"])) { - $custom_table .= ""; + if (!empty($params["subject"])) { + $custom_table .= ""; } - if (!empty($params["To"])) { - $custom_table .= ""; + if (!empty($params["to"])) { + $custom_table .= ""; + } + if (!empty($params["from"])) { + $custom_table .= ""; } if (!empty($params["server"])) { $custom_table .= ""; } + if (!empty($params["token_type"])) { + $custom_table .= ""; + } + if (!empty($params["id"])) { + $custom_table .= ""; + } $custom_table .= "
Subject: {$params["Subject"]}
Subject: {$params["subject"]}
Recipient: {$params["To"]}
Recipient: {$params["to"]}
Recipient: {$params["from"]}
Service: {$params["server"]}
Authentication: {$params["token_type"]}
MailID: {$params["id"]}

"; $custom_table .= ""; $custom_table .= ""; From 48df4dbc56069992ab2fa892e10eefdc1a48b2ae Mon Sep 17 00:00:00 2001 From: David Upton Date: Wed, 15 May 2024 18:24:08 -0400 Subject: [PATCH 18/20] DIG-4448 Adds info to alert emails. --- .../bos_components/modules/bos_email/bos_email.module | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docroot/modules/custom/bos_components/modules/bos_email/bos_email.module b/docroot/modules/custom/bos_components/modules/bos_email/bos_email.module index 55c37e99f9..de10620648 100644 --- a/docroot/modules/custom/bos_components/modules/bos_email/bos_email.module +++ b/docroot/modules/custom/bos_components/modules/bos_email/bos_email.module @@ -36,7 +36,7 @@ function bos_email_mail($key, &$message, $params) { $message["from"] = "boston.gov"; $message["subject"] = "Boston.gov email recipient suppressed."; $custom_msg = "Boston.gov email recipient ({$params["To"]}) has hard bounced, and is now suppressed in Postmark."; - $message["body"] = _make_HTML_body($params, $custom_msg, Drupal::request()->headers->all()); + $message["body"] = _make_HTML_body(array_merge($params, $message), $custom_msg, Drupal::request()->headers->all()); $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed; delsp=yes'; break; @@ -46,7 +46,7 @@ function bos_email_mail($key, &$message, $params) { $custom_msg = "Authentication issue with PostMark email service in bos_email.
There is an issue with the {$params["token_type"]}.
This could indicate a hacking attempt to use the service as a relay."; - $message["body"] = _make_HTML_body($params, $custom_msg, Drupal::request()->headers->all()); + $message["body"] = _make_HTML_body(array_merge($params, $message), $custom_msg, Drupal::request()->headers->all()); $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed; delsp=yes'; break; @@ -54,7 +54,7 @@ function bos_email_mail($key, &$message, $params) { $message["from"] = "boston.gov"; $message["subject"] = "Boston.gov honeypot issue."; $custom_msg = "The honeypot for a form has some data in it."; - $message["body"] = _make_HTML_body($params, $custom_msg, Drupal::request()->headers->all()); + $message["body"] = _make_HTML_body(array_merge($params, $message), $custom_msg, Drupal::request()->headers->all()); $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed; delsp=yes'; break; @@ -62,7 +62,7 @@ function bos_email_mail($key, &$message, $params) { $message["from"] = "boston.gov"; $message["subject"] = "Postmark mailer issue on Boston.gov."; $custom_msg = "There was an issue sending the following via Postmark."; - $message["body"] = _make_HTML_body($params, $custom_msg, Drupal::request()->headers->all()); + $message["body"] = _make_HTML_body(array_merge($params, $message), $custom_msg, Drupal::request()->headers->all()); $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed; delsp=yes'; break; From 92405d8d99dbb5c05d7d6740fb07d463fd939ba1 Mon Sep 17 00:00:00 2001 From: David Upton Date: Wed, 15 May 2024 23:18:56 -0400 Subject: [PATCH 19/20] Updates error in config saving for google_cloud_svs. --- .../modules/bos_google_cloud/src/Services/GcConversation.php | 2 +- .../modules/bos_google_cloud/src/Services/GcSearch.php | 2 +- .../modules/bos_google_cloud/src/Services/GcTextRewriter.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcConversation.php b/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcConversation.php index 871e784c76..0ba6e75089 100644 --- a/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcConversation.php +++ b/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcConversation.php @@ -395,7 +395,7 @@ public function buildForm(array &$form): void { */ public function submitForm(array $form, FormStateInterface $form_state): void { - $values = $form_state->getValues()["google_cloud"]['services_wrapper']['discovery_engine']['conversation']; + $values = $form_state->getValues()["google_cloud"]['services_wrapper']['discovery_engine'][self::id()]; $config = Drupal::configFactory()->getEditable("bos_google_cloud.settings"); if ($config->get("conversation.project_id") !== $values['project_id'] diff --git a/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcSearch.php b/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcSearch.php index f558074a3f..1bd0b240b2 100644 --- a/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcSearch.php +++ b/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcSearch.php @@ -304,7 +304,7 @@ public function buildForm(array &$form): void { */ public function submitForm(array $form, FormStateInterface $form_state): void { - $values = $form_state->getValues()["google_cloud"]['services_wrapper']['discovery_engine']['search']; + $values = $form_state->getValues()["google_cloud"]['services_wrapper']['discovery_engine'][self::id()]; $config = Drupal::configFactory()->getEditable("bos_google_cloud.settings"); if ($config->get("search.project_id") !== $values['project_id'] diff --git a/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcTextRewriter.php b/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcTextRewriter.php index 7b70cf37e3..eb8938bccf 100644 --- a/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcTextRewriter.php +++ b/docroot/modules/custom/bos_components/modules/bos_google_cloud/src/Services/GcTextRewriter.php @@ -412,7 +412,7 @@ public function buildForm(array &$form): void { */ public function submitForm(array $form, FormStateInterface $form_state): void { - $values = $form_state->getValues()["google_cloud"]['services_wrapper']['vertex_ai'][GcTextSummarizer::id()]; + $values = $form_state->getValues()["google_cloud"]['services_wrapper']['vertex_ai'][self::id()]; $config = Drupal::configFactory()->getEditable("bos_google_cloud.settings"); if ($config->get("{$this::id()}.project_id") !== $values['project_id'] From 7ad613ed3ba59e932afdca987de9436ec9aea7c3 Mon Sep 17 00:00:00 2001 From: David Upton Date: Thu, 16 May 2024 09:51:59 -0400 Subject: [PATCH 20/20] DIG-4448 Locks geolocation module at 3.12 because 3.13 causes error. --- composer.json | 4 ++-- composer.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index 02225f015b..3b6a0e837c 100644 --- a/composer.json +++ b/composer.json @@ -81,10 +81,10 @@ "drupal/ckeditor": "1.0.2", "drupal/coder": "^8.0", "drupal/colorbox": "^2.0", + "drupal/config_filter": "*", "drupal/config_ignore": "^3.2", "drupal/config_split": "^2.0@RC", "drupal/config_update": "^2.0@alpha", - "drupal/config_filter": "*", "drupal/conflict": "2.0.0-alpha3", "drupal/contact_storage": "1.3.0", "drupal/content_access": "^2.0@RC", @@ -115,7 +115,7 @@ "drupal/field_group": "^3.0", "drupal/file_entity": "^2.x-dev", "drupal/file_mdm": "^2.2.0", - "drupal/geolocation": "^3.0", + "drupal/geolocation": "3.12", "drupal/google_tag": "^1.0", "drupal/honeypot": "^2.1", "drupal/image_url_formatter": "^1.0", diff --git a/composer.lock b/composer.lock index 74b58c53f7..c0635b6eab 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9ee1d951456e96fbda03f87870612718", + "content-hash": "9993502e8fdf14520ca9f3355377021a", "packages": [ { "name": "ajgl/breakpoint-twig-extension", @@ -5761,17 +5761,17 @@ }, { "name": "drupal/geolocation", - "version": "3.13.0", + "version": "3.12.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/geolocation.git", - "reference": "8.x-3.13" + "reference": "8.x-3.12" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/geolocation-8.x-3.13.zip", - "reference": "8.x-3.13", - "shasum": "49029950bc0927f14b1d0ce01f93e03cdd131ee6" + "url": "https://ftp.drupal.org/files/projects/geolocation-8.x-3.12.zip", + "reference": "8.x-3.12", + "shasum": "eb31fe9080e2e0dcf442fc9b0a859f326219db5a" }, "require": { "drupal/core": "^9.3 || ^10", @@ -5797,8 +5797,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.13", - "datestamp": "1714403539", + "version": "8.x-3.12", + "datestamp": "1673282362", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy"
Endpoint called" . \Drupal::request()->getRequestUri() ."