From 23343591d3a4635d5f3d1f92798a698a6a7f2a00 Mon Sep 17 00:00:00 2001 From: Kevin Cristiano <kcristiano@kcristiano.com> Date: Wed, 15 Nov 2023 07:29:47 -0500 Subject: [PATCH] civicrm release-5.67.1 --- civicrm.php | 4 +- civicrm/CRM/Admin/Page/AJAX.php | 15 +- civicrm/CRM/Core/Form.php | 18 +- civicrm/CRM/Core/SelectValues.php | 86 +++++++-- civicrm/CRM/Event/Form/SelfSvcTransfer.php | 13 +- civicrm/CRM/Mailing/BAO/Mailing.php | 2 + civicrm/CRM/Utils/Hook.php | 2 +- civicrm/Civi/API/Kernel.php | 1 + civicrm/Civi/Angular/Manager.php | 2 +- .../Api4/Provider/ActionObjectProvider.php | 9 + civicrm/Civi/Api4/Query/Api4SelectQuery.php | 2 +- .../ContactAutocompleteProvider.php | 31 ++- .../Provider/EntityTagFilterSpecProvider.php | 3 + civicrm/Civi/Api4/Utils/CoreUtil.php | 3 +- civicrm/civicrm-version.php | 2 +- civicrm/ext/afform/admin/info.xml | 2 +- civicrm/ext/afform/core/info.xml | 2 +- civicrm/ext/afform/html/info.xml | 2 +- civicrm/ext/afform/mock/info.xml | 2 +- civicrm/ext/authx/info.xml | 2 +- civicrm/ext/civi_campaign/info.xml | 2 +- civicrm/ext/civi_case/civi_case.php | 10 +- civicrm/ext/civi_case/info.xml | 2 +- civicrm/ext/civi_contribute/info.xml | 2 +- civicrm/ext/civi_event/info.xml | 2 +- civicrm/ext/civi_mail/info.xml | 2 +- civicrm/ext/civi_member/info.xml | 2 +- civicrm/ext/civi_pledge/info.xml | 2 +- civicrm/ext/civi_report/info.xml | 2 +- civicrm/ext/civicrm_admin_ui/info.xml | 2 +- civicrm/ext/civicrm_search_ui/info.xml | 2 +- civicrm/ext/civigrant/info.xml | 2 +- civicrm/ext/civiimport/info.xml | 2 +- civicrm/ext/ckeditor4/info.xml | 2 +- .../ext/contributioncancelactions/info.xml | 2 +- civicrm/ext/elavon/info.xml | 2 +- civicrm/ext/eventcart/info.xml | 2 +- civicrm/ext/ewaysingle/info.xml | 2 +- civicrm/ext/financialacls/info.xml | 2 +- civicrm/ext/flexmailer/info.xml | 2 +- civicrm/ext/greenwich/info.xml | 2 +- civicrm/ext/legacycustomsearches/info.xml | 2 +- civicrm/ext/message_admin/info.xml | 2 +- civicrm/ext/oauth-client/info.xml | 2 +- civicrm/ext/payflowpro/info.xml | 2 +- civicrm/ext/recaptcha/info.xml | 2 +- civicrm/ext/scheduled_communications/info.xml | 2 +- civicrm/ext/search_kit/info.xml | 2 +- civicrm/ext/sequentialcreditnotes/info.xml | 2 +- civicrm/ext/standaloneusers/info.xml | 2 +- civicrm/js/crm.menubar.js | 12 +- civicrm/release-notes.md | 9 + civicrm/release-notes/5.67.1.md | 48 +++++ civicrm/sql/civicrm_data.mysql | 2 +- civicrm/sql/civicrm_generated.mysql | 2 +- civicrm/vendor/autoload.php | 7 +- civicrm/vendor/composer/InstalledVersions.php | 16 +- civicrm/vendor/composer/autoload_classmap.php | 2 +- civicrm/vendor/composer/autoload_files.php | 2 +- .../vendor/composer/autoload_namespaces.php | 2 +- civicrm/vendor/composer/autoload_psr4.php | 2 +- civicrm/vendor/composer/autoload_real.php | 41 +--- civicrm/vendor/composer/autoload_static.php | 12 +- civicrm/vendor/composer/include_paths.php | 2 +- civicrm/vendor/composer/installed.php | 176 +++++++++--------- civicrm/xml/version.xml | 2 +- 66 files changed, 381 insertions(+), 227 deletions(-) create mode 100644 civicrm/release-notes/5.67.1.md diff --git a/civicrm.php b/civicrm.php index 0e3382743c..582916aefc 100644 --- a/civicrm.php +++ b/civicrm.php @@ -2,7 +2,7 @@ /** * Plugin Name: CiviCRM * Description: CiviCRM - Growing and Sustaining Relationships - * Version: 5.67.0 + * Version: 5.67.1 * Requires at least: 4.9 * Requires PHP: 7.3 * Author: CiviCRM LLC @@ -36,7 +36,7 @@ if (!defined('ABSPATH')) { } // Set version here: changing it forces Javascript and CSS to reload. -define('CIVICRM_PLUGIN_VERSION', '5.67.0'); +define('CIVICRM_PLUGIN_VERSION', '5.67.1'); // Store reference to this file. if (!defined('CIVICRM_PLUGIN_FILE')) { diff --git a/civicrm/CRM/Admin/Page/AJAX.php b/civicrm/CRM/Admin/Page/AJAX.php index 0cc9bbbb8c..cb151a57d8 100644 --- a/civicrm/CRM/Admin/Page/AJAX.php +++ b/civicrm/CRM/Admin/Page/AJAX.php @@ -36,7 +36,7 @@ class CRM_Admin_Page_AJAX { $output = [ 'menu' => $menu, - 'search' => CRM_Utils_Array::makeNonAssociative(self::getSearchOptions()), + 'search' => self::getSearchOptions(), ]; // Encourage browsers to cache for a long time - 1 year $ttl = 60 * 60 * 24 * 364; @@ -80,15 +80,14 @@ class CRM_Admin_Page_AJAX { public static function getSearchOptions() { $searchOptions = Civi::settings()->get('quicksearch_options'); - $labels = CRM_Core_SelectValues::quicksearchOptions(); + $allOptions = array_column(CRM_Core_SelectValues::getQuicksearchOptions(), NULL, 'key'); $result = []; foreach ($searchOptions as $key) { - $label = $labels[$key]; - if (strpos($key, 'custom_') === 0) { - $key = 'custom_' . CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomField', substr($key, 7), 'id', 'name'); - $label = array_slice(explode(': ', $label, 2), -1); - } - $result[$key] = $label; + $result[] = [ + 'key' => $key, + 'value' => $allOptions[$key]['label'], + 'adv_search_legacy' => $allOptions[$key]['adv_search_legacy'], + ]; } return $result; } diff --git a/civicrm/CRM/Core/Form.php b/civicrm/CRM/Core/Form.php index 07e15afea7..10382406df 100644 --- a/civicrm/CRM/Core/Form.php +++ b/civicrm/CRM/Core/Form.php @@ -2477,7 +2477,7 @@ class CRM_Core_Form extends HTML_QuickForm_Page { * Ideally the forms would override this so only the cid in the url * would be checked in the shared form function. * - * @return int + * @return int|null * @throws \CRM_Core_Exception */ public function getRequestedContactID(): ?int { @@ -2526,9 +2526,21 @@ class CRM_Core_Form extends HTML_QuickForm_Page { */ protected function getAuthenticatedCheckSumContactID(): int { $requestedContactID = $this->getRequestedContactID(); + return $this->validateAuthenticatedCheckSumContactID($requestedContactID); + } + + /** + * Verify that a contact ID is authenticated as a valid contact by checksum + * + * @param int|null $contactID + * + * @return int + * @throws \CRM_Core_Exception + */ + protected function validateAuthenticatedCheckSumContactID(?int $contactID): int { $userChecksum = CRM_Utils_Request::retrieve('cs', 'String', $this); - if ($userChecksum && CRM_Contact_BAO_Contact_Utils::validChecksum($requestedContactID, $userChecksum)) { - return $requestedContactID; + if ($userChecksum && CRM_Contact_BAO_Contact_Utils::validChecksum($contactID, $userChecksum)) { + return $contactID; } return 0; } diff --git a/civicrm/CRM/Core/SelectValues.php b/civicrm/CRM/Core/SelectValues.php index e3886e2fd1..374e708edf 100644 --- a/civicrm/CRM/Core/SelectValues.php +++ b/civicrm/CRM/Core/SelectValues.php @@ -1111,30 +1111,62 @@ class CRM_Core_SelectValues { return $optionValues; } - /** - * Dropdown options for quicksearch in the menu - * - * @return array - * @throws \CRM_Core_Exception - */ - public static function quicksearchOptions() { + public static function getQuicksearchOptions(): array { $includeEmail = civicrm_api3('setting', 'getvalue', ['name' => 'includeEmailInName', 'group' => 'Search Preferences']); $options = [ - 'sort_name' => $includeEmail ? ts('Name/Email') : ts('Name'), - 'id' => ts('Contact ID'), - 'external_identifier' => ts('External ID'), - 'first_name' => ts('First Name'), - 'last_name' => ts('Last Name'), - 'email_primary.email' => ts('Email'), - 'phone_primary.phone_numeric' => ts('Phone'), - 'address_primary.street_address' => ts('Street Address'), - 'address_primary.city' => ts('City'), - 'address_primary.postal_code' => ts('Postal Code'), - 'job_title' => ts('Job Title'), + [ + 'key' => 'sort_name', + 'label' => $includeEmail ? ts('Name/Email') : ts('Name'), + ], + [ + 'key' => 'id', + 'label' => ts('Contact ID'), + ], + [ + 'key' => 'external_identifier', + 'label' => ts('External ID'), + ], + [ + 'key' => 'first_name', + 'label' => ts('First Name'), + ], + [ + 'key' => 'last_name', + 'label' => ts('Last Name'), + ], + [ + 'key' => 'email_primary.email', + 'label' => ts('Email'), + 'adv_search_legacy' => 'email', + ], + [ + 'key' => 'phone_primary.phone_numeric', + 'label' => ts('Phone'), + 'adv_search_legacy' => 'phone_numeric', + ], + [ + 'key' => 'address_primary.street_address', + 'label' => ts('Street Address'), + 'adv_search_legacy' => 'street_address', + ], + [ + 'key' => 'address_primary.city', + 'label' => ts('City'), + 'adv_search_legacy' => 'city', + ], + [ + 'key' => 'address_primary.postal_code', + 'label' => ts('Postal Code'), + 'adv_search_legacy' => 'postal_code', + ], + [ + 'key' => 'job_title', + 'label' => ts('Job Title'), + ], ]; $custom = civicrm_api4('CustomField', 'get', [ 'checkPermissions' => FALSE, - 'select' => ['name', 'label', 'custom_group_id.name', 'custom_group_id.title', 'option_group_id'], + 'select' => ['id', 'name', 'label', 'custom_group_id.name', 'custom_group_id.title', 'option_group_id'], 'where' => [ ['custom_group_id.extends', 'IN', array_merge(['Contact'], CRM_Contact_BAO_ContactType::basicTypes())], ['data_type', 'NOT IN', ['ContactReference', 'Date', 'File']], @@ -1148,11 +1180,25 @@ class CRM_Core_SelectValues { ], ]); foreach ($custom as $field) { - $options[$field['custom_group_id.name'] . '.' . $field['name'] . ($field['option_group_id'] ? ':label' : '')] = $field['custom_group_id.title'] . ': ' . $field['label']; + $options[] = [ + 'key' => $field['custom_group_id.name'] . '.' . $field['name'] . ($field['option_group_id'] ? ':label' : ''), + 'label' => $field['custom_group_id.title'] . ': ' . $field['label'], + 'adv_search_legacy' => 'custom_' . $field['id'], + ]; } return $options; } + /** + * Dropdown options for quicksearch in the menu + * + * @return array + * @throws \CRM_Core_Exception + */ + public static function quicksearchOptions() { + return array_column(self::getQuicksearchOptions(), 'label', 'key'); + } + /** * Get components (translated for display. * diff --git a/civicrm/CRM/Event/Form/SelfSvcTransfer.php b/civicrm/CRM/Event/Form/SelfSvcTransfer.php index 50e43054e9..eafb8fd202 100644 --- a/civicrm/CRM/Event/Form/SelfSvcTransfer.php +++ b/civicrm/CRM/Event/Form/SelfSvcTransfer.php @@ -125,7 +125,7 @@ class CRM_Event_Form_SelfSvcTransfer extends CRM_Core_Form { $this->_event_id = $this->_part_values['event_id']; $url = CRM_Utils_System::url('civicrm/event/info', "reset=1&id={$this->_event_id}"); $this->define('Contact', 'ContactFrom', ['id' => (int) $this->_part_values['participant_contact_id']]); - if (!$this->getAuthenticatedCheckSumContactID() && !CRM_Core_Permission::check('edit all events')) { + if (!$this->validateAuthenticatedCheckSumContactID($this->lookup('ContactFrom', 'id')) && !CRM_Core_Permission::check('edit all events')) { CRM_Core_Error::statusBounce(ts('You do not have sufficient permission to transfer/cancel this participant.'), $url); } $this->assign('action', $this->_action); @@ -154,9 +154,14 @@ class CRM_Event_Form_SelfSvcTransfer extends CRM_Core_Form { } // for front-end user show and use the basic three fields used to create a contact else { - $this->add('text', 'email', ts('To Email'), $this->lookup('ContactFrom', 'email_primary.email'), TRUE); - $this->add('text', 'last_name', ts('To Last Name'), $this->_to_contact_last_name, TRUE); - $this->add('text', 'first_name', ts('To First Name'), $this->_to_contact_first_name, TRUE); + $this->add('text', 'email', ts('To Email'), NULL, TRUE); + $this->add('text', 'last_name', ts('To Last Name'), NULL, TRUE); + $this->add('text', 'first_name', ts('To First Name'), NULL, TRUE); + $this->setDefaults([ + 'email' => $this->lookup('ContactFrom', 'email_primary.email'), + 'last_name' => $this->_to_contact_last_name, + 'first_name' => $this->_to_contact_first_name, + ]); } $this->addButtons([ diff --git a/civicrm/CRM/Mailing/BAO/Mailing.php b/civicrm/CRM/Mailing/BAO/Mailing.php index 5d984633c5..ff358c3509 100644 --- a/civicrm/CRM/Mailing/BAO/Mailing.php +++ b/civicrm/CRM/Mailing/BAO/Mailing.php @@ -2870,12 +2870,14 @@ ORDER BY civicrm_mailing.id DESC"; 'qs' => "reset=1&id=%%mkey%%&cid=%%cid%%&cs=%%cs%%", 'title' => ts('View Mailing'), 'class' => 'crm-popup', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], CRM_Core_Action::BROWSE => [ 'name' => ts('Mailing Report'), 'url' => 'civicrm/mailing/report', 'qs' => "mid=%%mid%%&reset=1&cid=%%cid%%&context=mailing", 'title' => ts('View Mailing Report'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::BROWSE), ], ]; diff --git a/civicrm/CRM/Utils/Hook.php b/civicrm/CRM/Utils/Hook.php index a4599f2ad4..91587f9e3a 100644 --- a/civicrm/CRM/Utils/Hook.php +++ b/civicrm/CRM/Utils/Hook.php @@ -1484,7 +1484,7 @@ abstract class CRM_Utils_Hook { $count++; } $defaultFlags = ['civicrm' => FALSE, 'uf' => FALSE, 'instances' => $count]; - $flags = array_merge($defaultFlags, $flags); + $flags = !empty($flags) ? array_merge($defaultFlags, $flags) : $defaultFlags; $null = NULL; return self::singleton()->invoke(['config', 'flags'], $config, $flags, $null, $null, $null, $null, diff --git a/civicrm/Civi/API/Kernel.php b/civicrm/Civi/API/Kernel.php index 9630e8c60b..97a9f35ca8 100644 --- a/civicrm/Civi/API/Kernel.php +++ b/civicrm/Civi/API/Kernel.php @@ -404,6 +404,7 @@ class Kernel { } } + require_once "api/v3/utils.php"; $data = \civicrm_api3_create_error($msg, $data); if (isset($apiRequest['params']) && is_array($apiRequest['params']) && !empty($apiRequest['params']['api.has_parent'])) { diff --git a/civicrm/Civi/Angular/Manager.php b/civicrm/Civi/Angular/Manager.php index 1a382743cb..1dd3457824 100644 --- a/civicrm/Civi/Angular/Manager.php +++ b/civicrm/Civi/Angular/Manager.php @@ -136,7 +136,7 @@ class Manager { // Merge in defaults $angularModules[$module] += ['basePages' => ['civicrm/a']]; if (!empty($info['settings'])) { - \CRM_Core_Error::deprecatedWarning('Angular "settings" is not supported. See https://github.com/civicrm/civicrm-core/pull/19052'); + \CRM_Core_Error::deprecatedWarning(sprintf('The Angular file "%s" from extension "%s" must be updated to use "settingsFactory" instead of "settings". See https://github.com/civicrm/civicrm-core/pull/19052', $info['module'], $info['ext'])); } // Validate settingsFactory callables if (isset($info['settingsFactory'])) { diff --git a/civicrm/Civi/Api4/Provider/ActionObjectProvider.php b/civicrm/Civi/Api4/Provider/ActionObjectProvider.php index 91c30f9784..bee1c4a272 100644 --- a/civicrm/Civi/Api4/Provider/ActionObjectProvider.php +++ b/civicrm/Civi/Api4/Provider/ActionObjectProvider.php @@ -161,6 +161,7 @@ class ActionObjectProvider extends AutoService implements EventSubscriberInterfa // Allow extensions to modify the list of entities $event = GenericHookEvent::create(['entities' => &$entities]); \Civi::dispatcher()->dispatch('civi.api4.entityTypes', $event); + $this->fillEntityDefaults($entities); ksort($entities); $cache->set('api4.entities.info', $entities); } @@ -168,6 +169,14 @@ class ActionObjectProvider extends AutoService implements EventSubscriberInterfa return $entities; } + public function fillEntityDefaults(array &$entities) { + foreach ($entities as &$entity) { + if (!isset($entity['search_fields'])) { + $entity['search_fields'] = (array) ($entity['label_field'] ?? NULL); + } + } + } + /** * Scan all api directories to discover entities * @return \Civi\Api4\Generic\AbstractEntity[] diff --git a/civicrm/Civi/Api4/Query/Api4SelectQuery.php b/civicrm/Civi/Api4/Query/Api4SelectQuery.php index 44833e9c6d..8887bc1834 100644 --- a/civicrm/Civi/Api4/Query/Api4SelectQuery.php +++ b/civicrm/Civi/Api4/Query/Api4SelectQuery.php @@ -349,7 +349,7 @@ class Api4SelectQuery extends Api4Query { [$fieldExpr, $operator, $valueExpr, $isExpr] = array_pad((array) $condition, 4, NULL); if (in_array($operator, ['=', 'IN'], TRUE)) { // If flag is set then value must be parsed as an expression - if ($isExpr) { + if ($isExpr && is_string($valueExpr)) { $expr = SqlExpression::convert($valueExpr); $valueExpr = in_array($expr->getType(), ['SqlString', 'SqlNumber'], TRUE) ? $expr->getExpr() : NULL; } diff --git a/civicrm/Civi/Api4/Service/Autocomplete/ContactAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/ContactAutocompleteProvider.php index 27440a7824..c031c25821 100644 --- a/civicrm/Civi/Api4/Service/Autocomplete/ContactAutocompleteProvider.php +++ b/civicrm/Civi/Api4/Service/Autocomplete/ContactAutocompleteProvider.php @@ -13,6 +13,7 @@ namespace Civi\Api4\Service\Autocomplete; use Civi\API\Event\PrepareEvent; +use Civi\Api4\Setting; use Civi\Api4\Utils\CoreUtil; use Civi\Core\Event\GenericHookEvent; use Civi\Core\HookInterface; @@ -78,22 +79,48 @@ class ContactAutocompleteProvider extends \Civi\Core\Service\AutoService impleme // as the menubar autocomplete does not support descriptions if (($e->context['formName'] ?? NULL) === 'crmMenubar' && ($e->context['fieldName'] ?? NULL) === 'crm-qsearch-input') { $column = ['type' => 'field']; - // If doing a search by a field other than the default + // Map contact_autocomplete_options settings to v4 format + $autocompleteOptionsMap = [ + 2 => 'email_primary.email', + 3 => 'phone_primary.phone', + 4 => 'address_primary.street_address', + 5 => 'address_primary.city', + 6 => 'address_primary.state_province_id:abbr', + 7 => 'address_primary.country_id:label', + 8 => 'address_primary.postal_code', + ]; + // If doing a search by a field other than the default, + // add that field to the main column if (!empty($e->context['filters'])) { $filterField = array_keys($e->context['filters'])[0]; } elseif (\Civi::settings()->get('includeEmailInName')) { $filterField = 'email_primary.email'; } - if ($filterField) { + // Search on name + filter/email + if (!empty($filterField)) { $column['key'] = $filterField; $column['rewrite'] = "[sort_name] :: [$filterField]"; $column['empty_value'] = '[sort_name]'; + $autocompleteOptionsMap = array_diff($autocompleteOptionsMap, [$filterField]); } + // No filter & email search disabled: search on name only else { $column['key'] = 'sort_name'; } $e->display['settings']['columns'] = [$column]; + // Add exta columns based on search preferences + $autocompleteOptions = Setting::get(FALSE) + ->addSelect('contact_autocomplete_options')->execute() + ->first(); + foreach ($autocompleteOptions['value'] ?? [] as $option) { + if (isset($autocompleteOptionsMap[$option])) { + $e->display['settings']['columns'][] = [ + 'type' => 'field', + 'key' => $autocompleteOptionsMap[$option], + ]; + } + } } } diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/EntityTagFilterSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/EntityTagFilterSpecProvider.php index bdc05f6810..1479819acf 100644 --- a/civicrm/Civi/Api4/Service/Spec/Provider/EntityTagFilterSpecProvider.php +++ b/civicrm/Civi/Api4/Service/Spec/Provider/EntityTagFilterSpecProvider.php @@ -53,6 +53,9 @@ class EntityTagFilterSpecProvider extends \Civi\Core\Service\AutoService impleme if ($action !== 'get') { return FALSE; } + if (CoreUtil::isContact($entity)) { + return TRUE; + } $usedFor = \CRM_Core_OptionGroup::values('tag_used_for', FALSE, FALSE, FALSE, NULL, 'name'); return in_array($entity, $usedFor, TRUE); } diff --git a/civicrm/Civi/Api4/Utils/CoreUtil.php b/civicrm/Civi/Api4/Utils/CoreUtil.php index 75dc24b5fb..ccc3ed4557 100644 --- a/civicrm/Civi/Api4/Utils/CoreUtil.php +++ b/civicrm/Civi/Api4/Utils/CoreUtil.php @@ -87,7 +87,8 @@ class CoreUtil { */ public static function getInfoItem(string $entityName, string $keyToReturn) { $provider = \Civi::service('action_object_provider'); - return $provider->getEntities()[$entityName][$keyToReturn] ?? NULL; + $entities = $provider->getEntities(); + return $entities[$entityName][$keyToReturn] ?? NULL; } /** diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php index dffd28a8a9..87c7b77fab 100644 --- a/civicrm/civicrm-version.php +++ b/civicrm/civicrm-version.php @@ -1,7 +1,7 @@ <?php /** @deprecated */ function civicrmVersion( ) { - return array( 'version' => '5.67.0', + return array( 'version' => '5.67.1', 'cms' => 'Wordpress', 'revision' => '' ); } diff --git a/civicrm/ext/afform/admin/info.xml b/civicrm/ext/afform/admin/info.xml index ca6c9fb8e5..59aff5bc09 100644 --- a/civicrm/ext/afform/admin/info.xml +++ b/civicrm/ext/afform/admin/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>beta</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/afform/core/info.xml b/civicrm/ext/afform/core/info.xml index 927a248df8..88a9e06301 100644 --- a/civicrm/ext/afform/core/info.xml +++ b/civicrm/ext/afform/core/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <compatibility> <ver>5.67</ver> </compatibility> diff --git a/civicrm/ext/afform/html/info.xml b/civicrm/ext/afform/html/info.xml index b875963b15..91cdc58242 100644 --- a/civicrm/ext/afform/html/info.xml +++ b/civicrm/ext/afform/html/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>alpha</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/afform/mock/info.xml b/civicrm/ext/afform/mock/info.xml index 269c1e2efb..60b5baec5f 100644 --- a/civicrm/ext/afform/mock/info.xml +++ b/civicrm/ext/afform/mock/info.xml @@ -12,7 +12,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/authx/info.xml b/civicrm/ext/authx/info.xml index 55613e28d7..1d7d6c9323 100644 --- a/civicrm/ext/authx/info.xml +++ b/civicrm/ext/authx/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-02-11</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <tags> <tag>mgmt:required</tag> diff --git a/civicrm/ext/civi_campaign/info.xml b/civicrm/ext/civi_campaign/info.xml index 024d1d0746..afe15abe5e 100644 --- a/civicrm/ext/civi_campaign/info.xml +++ b/civicrm/ext/civi_campaign/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_case/civi_case.php b/civicrm/ext/civi_case/civi_case.php index 43d5b67706..5ba1da28c4 100644 --- a/civicrm/ext/civi_case/civi_case.php +++ b/civicrm/ext/civi_case/civi_case.php @@ -25,14 +25,16 @@ function civi_case_civicrm_managed(&$entities, $modules) { */ function civi_case_civicrm_selectWhereClause($entityName, &$clauses, $userId, $conditions) { if ($entityName === 'Activity') { + $casePerms = CRM_Utils_SQL::mergeSubquery('Case'); + if (!$casePerms) { + // Unrestricted access to CiviCase + return; + } // OR group: either it's a non-case activity OR case permissions apply $orGroup = [ 'NOT IN (SELECT activity_id FROM civicrm_case_activity)', + 'IN (SELECT activity_id FROM civicrm_case_activity WHERE case_id ' . implode(' AND case_id ', $casePerms) . ')', ]; - $casePerms = CRM_Utils_SQL::mergeSubquery('Case'); - if ($casePerms) { - $orGroup[] = 'IN (SELECT activity_id FROM civicrm_case_activity WHERE case_id ' . implode(' AND case_id ', $casePerms) . ')'; - } $clauses['id'][] = $orGroup; } } diff --git a/civicrm/ext/civi_case/info.xml b/civicrm/ext/civi_case/info.xml index a70d407847..7a89beaca6 100644 --- a/civicrm/ext/civi_case/info.xml +++ b/civicrm/ext/civi_case/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_contribute/info.xml b/civicrm/ext/civi_contribute/info.xml index b9a0257418..c63d22e269 100644 --- a/civicrm/ext/civi_contribute/info.xml +++ b/civicrm/ext/civi_contribute/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_event/info.xml b/civicrm/ext/civi_event/info.xml index 95af320cad..c0e2ea5d07 100644 --- a/civicrm/ext/civi_event/info.xml +++ b/civicrm/ext/civi_event/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_mail/info.xml b/civicrm/ext/civi_mail/info.xml index 9beb218f39..69f5727dd6 100644 --- a/civicrm/ext/civi_mail/info.xml +++ b/civicrm/ext/civi_mail/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_member/info.xml b/civicrm/ext/civi_member/info.xml index b1bd1a7127..d325809205 100644 --- a/civicrm/ext/civi_member/info.xml +++ b/civicrm/ext/civi_member/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_pledge/info.xml b/civicrm/ext/civi_pledge/info.xml index 18e24f431a..a40a19a6d7 100644 --- a/civicrm/ext/civi_pledge/info.xml +++ b/civicrm/ext/civi_pledge/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_report/info.xml b/civicrm/ext/civi_report/info.xml index 03213140c5..5d58c5ab76 100644 --- a/civicrm/ext/civi_report/info.xml +++ b/civicrm/ext/civi_report/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civicrm_admin_ui/info.xml b/civicrm/ext/civicrm_admin_ui/info.xml index bce6caec22..f606dcc651 100644 --- a/civicrm/ext/civicrm_admin_ui/info.xml +++ b/civicrm/ext/civicrm_admin_ui/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-01-02</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>beta</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/civicrm_search_ui/info.xml b/civicrm/ext/civicrm_search_ui/info.xml index da8c7714e3..04946eeaaa 100644 --- a/civicrm/ext/civicrm_search_ui/info.xml +++ b/civicrm/ext/civicrm_search_ui/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-07-17</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>alpha</develStage> <requires> <ext>org.civicrm.search_kit</ext> diff --git a/civicrm/ext/civigrant/info.xml b/civicrm/ext/civigrant/info.xml index 10e13435a3..6f1b8a82eb 100644 --- a/civicrm/ext/civigrant/info.xml +++ b/civicrm/ext/civigrant/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-11-11</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/civiimport/info.xml b/civicrm/ext/civiimport/info.xml index 8e628b1808..859372dd4b 100644 --- a/civicrm/ext/civiimport/info.xml +++ b/civicrm/ext/civiimport/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-08-11</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>alpha</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/ckeditor4/info.xml b/civicrm/ext/ckeditor4/info.xml index 331ddedc40..53b8bf50bc 100644 --- a/civicrm/ext/ckeditor4/info.xml +++ b/civicrm/ext/ckeditor4/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">https://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-05-23</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/contributioncancelactions/info.xml b/civicrm/ext/contributioncancelactions/info.xml index bd6d544751..a4b5966115 100644 --- a/civicrm/ext/contributioncancelactions/info.xml +++ b/civicrm/ext/contributioncancelactions/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-12</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/elavon/info.xml b/civicrm/ext/elavon/info.xml index 65ceef2c19..8f08d833e0 100644 --- a/civicrm/ext/elavon/info.xml +++ b/civicrm/ext/elavon/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-08-05</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/eventcart/info.xml b/civicrm/ext/eventcart/info.xml index 60ade93a97..591eb33b46 100644 --- a/civicrm/ext/eventcart/info.xml +++ b/civicrm/ext/eventcart/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-03</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/ewaysingle/info.xml b/civicrm/ext/ewaysingle/info.xml index b1a4c75c45..42990fa584 100644 --- a/civicrm/ext/ewaysingle/info.xml +++ b/civicrm/ext/ewaysingle/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-07</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/financialacls/info.xml b/civicrm/ext/financialacls/info.xml index f98272a41b..4748f244ed 100644 --- a/civicrm/ext/financialacls/info.xml +++ b/civicrm/ext/financialacls/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-27</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/flexmailer/info.xml b/civicrm/ext/flexmailer/info.xml index 8ccc239656..414076a81f 100644 --- a/civicrm/ext/flexmailer/info.xml +++ b/civicrm/ext/flexmailer/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-05</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <comments> FlexMailer is an email delivery engine which replaces the internal guts diff --git a/civicrm/ext/greenwich/info.xml b/civicrm/ext/greenwich/info.xml index 58e0a9454c..c8eb597378 100644 --- a/civicrm/ext/greenwich/info.xml +++ b/civicrm/ext/greenwich/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-07-21</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/legacycustomsearches/info.xml b/civicrm/ext/legacycustomsearches/info.xml index 5b66be4c8b..2b9df5862b 100644 --- a/civicrm/ext/legacycustomsearches/info.xml +++ b/civicrm/ext/legacycustomsearches/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-07-25</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/message_admin/info.xml b/civicrm/ext/message_admin/info.xml index 7c25a93830..69995a6b0b 100644 --- a/civicrm/ext/message_admin/info.xml +++ b/civicrm/ext/message_admin/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-06-12</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>alpha</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/oauth-client/info.xml b/civicrm/ext/oauth-client/info.xml index c4e9d5d8e2..7c753aadac 100644 --- a/civicrm/ext/oauth-client/info.xml +++ b/civicrm/ext/oauth-client/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-23</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/payflowpro/info.xml b/civicrm/ext/payflowpro/info.xml index 730420bc95..327c12973f 100644 --- a/civicrm/ext/payflowpro/info.xml +++ b/civicrm/ext/payflowpro/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-04-13</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/recaptcha/info.xml b/civicrm/ext/recaptcha/info.xml index e655e105bd..9aa5e2d3b4 100644 --- a/civicrm/ext/recaptcha/info.xml +++ b/civicrm/ext/recaptcha/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-04-03</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/scheduled_communications/info.xml b/civicrm/ext/scheduled_communications/info.xml index d6a8b971c4..d14518df42 100644 --- a/civicrm/ext/scheduled_communications/info.xml +++ b/civicrm/ext/scheduled_communications/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-09-04</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>beta</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/ext/search_kit/info.xml b/civicrm/ext/search_kit/info.xml index 616c9be448..42779bd9e7 100644 --- a/civicrm/ext/search_kit/info.xml +++ b/civicrm/ext/search_kit/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-01-06</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>stable</develStage> <tags> <tag>mgmt:required</tag> diff --git a/civicrm/ext/sequentialcreditnotes/info.xml b/civicrm/ext/sequentialcreditnotes/info.xml index 91abcf2a0f..326d6fdd67 100644 --- a/civicrm/ext/sequentialcreditnotes/info.xml +++ b/civicrm/ext/sequentialcreditnotes/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-28</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/standaloneusers/info.xml b/civicrm/ext/standaloneusers/info.xml index 7e81fed873..452f264d52 100644 --- a/civicrm/ext/standaloneusers/info.xml +++ b/civicrm/ext/standaloneusers/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-11-11</releaseDate> - <version>5.67.0</version> + <version>5.67.1</version> <develStage>alpha</develStage> <compatibility> <ver>5.67</ver> diff --git a/civicrm/js/crm.menubar.js b/civicrm/js/crm.menubar.js index d5e98fd532..3ec193832f 100644 --- a/civicrm/js/crm.menubar.js +++ b/civicrm/js/crm.menubar.js @@ -297,12 +297,16 @@ } else { params.filters[option.val()] = request.term; } + // Specialized Autocomplete SearchDisplay: @see ContactAutocompleteProvider CRM.api4('Contact', 'autocomplete', params).then(function(result) { var ret = []; if (result.length > 0) { $('#crm-qsearch-input').autocomplete('widget').menu('option', 'disabled', false); $.each(result, function(key, item) { - ret.push({value: item.id, label: item.label}); + // Add extra items from the description (see contact_autocomplete_options setting) + let description = (item.description || []).filter((v) => v); + let extra = description.length ? ' :: ' + description.join(' :: ') : ''; + ret.push({value: item.id, label: item.label + extra}); }); } else { $('#crm-qsearch-input').autocomplete('widget').menu('option', 'disabled', true); @@ -388,6 +392,7 @@ return false; } var $menu = $('#crm-qsearch-input').autocomplete('widget'); + // If only one contact was returned, go directly to that contact page if ($('li.ui-menu-item', $menu).length === 1) { var cid = $('li.ui-menu-item', $menu).data('ui-autocomplete-item').value; if (cid > 0) { @@ -404,7 +409,8 @@ function setQuickSearchValue() { var $selection = $('.crm-quickSearchField input:checked'), label = $selection.parent().text(), - value = $selection.val(); + // Set name because the mini-form submits directly to adv search + value = $selection.data('advSearchLegacy') || $selection.val(); $('#crm-qsearch-input').attr({name: value, placeholder: '\uf002 ' + label}); } $('.crm-quickSearchField').click(function() { @@ -464,7 +470,7 @@ '</a>' + '<ul>' + '<% _.forEach(items, function(item) { %>' + - '<li><a href="#" class="crm-quickSearchField"><label><input type="radio" value="<%= item.key %>" name="quickSearchField"> <%- item.value %></label></a></li>' + + '<li><a href="#" class="crm-quickSearchField"><label><input type="radio" value="<%= item.key %>" name="quickSearchField" data-adv-search-legacy="<%= item.adv_search_legacy %>"> <%- item.value %></label></a></li>' + '<% }) %>' + '</ul>' + '</li>', diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md index 0f98e6e89f..2eb7202462 100644 --- a/civicrm/release-notes.md +++ b/civicrm/release-notes.md @@ -15,6 +15,15 @@ Other resources for identifying changes are: * https://github.com/civicrm/civicrm-joomla * https://github.com/civicrm/civicrm-wordpress +## CiviCRM 5.67.1 + +Released November 15, 2023 + +- **[Synopsis](release-notes/5.67.1.md#synopsis)** +- **[Bugs resolved](release-notes/5.67.1.md#bugs)** +- **[Credits](release-notes/5.67.1.md#credits)** +- **[Feedback](release-notes/5.67.1.md#feedback)** + ## CiviCRM 5.67.0 Released November 1, 2023 diff --git a/civicrm/release-notes/5.67.1.md b/civicrm/release-notes/5.67.1.md new file mode 100644 index 0000000000..108d92f9f3 --- /dev/null +++ b/civicrm/release-notes/5.67.1.md @@ -0,0 +1,48 @@ +# CiviCRM 5.67.1 + +Released November 15, 2023 + +- **[Synopsis](#synopsis)** +- **[Bugs resolved](#bugs)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## <a name="synopsis"></a>Synopsis + +| *Does this version...?* | | +| --------------------------------------------------------------- | -------- | +| Change the database schema? | no | +| **Alter the API?** | **yes** | +| Require attention to configuration options? | no | +| Fix problems installing or upgrading to a previous version? | no | +| Introduce features? | no | +| **Fix bugs?** | **yes** | +| Fix security vulnerabilities? | no | + +## <a name="bugs"></a>Bugs resolved + +* **_APIv3_: Call to "civicrm_api3_create_error" may fail within some Scheduled Jobs ([dev/core#4751](https://lab.civicrm.org/dev/core/-/issues/4751): [#28079](https://github.com/civicrm/civicrm-core/pull/28079))** +* **_APIv4_: Fix filter by "tags" on Contact-related pseudo-entities ("Individual", etc) ([#28103](https://github.com/civicrm/civicrm-core/pull/28103))** +* **_CiviEvent_: Fix validation of checksum on self-service transfers ([dev/core#4768](https://lab.civicrm.org/dev/core/-/issues/4768): [#28128](https://github.com/civicrm/civicrm-core/pull/28128))** +* **_PHP 8_: Fix "TypeError" when using ckeditor4 and other (less common) entry-points ([#27996](https://github.com/civicrm/civicrm-core/pull/27996))** +* **_Quick Search_: Fix redirect to "Advanced Search" (with pre-populated criteria) ([dev/core#4624](https://lab.civicrm.org/dev/core/-/issues/4624): [#28072](https://github.com/civicrm/civicrm-core/pull/28072))** +* **_Quick Search_: Fix support for setting "Autocomplete Contact Search" ([dev/core#4759](https://lab.civicrm.org/dev/core/-/issues/4759): [#28121](https://github.com/civicrm/civicrm-core/pull/28121))** +* **_Search Kit_: Fix error affecting queries with `IN` operator ([dev/core#4773](https://lab.civicrm.org/dev/core/-/issues/4773): [#28124](https://github.com/civicrm/civicrm-core/pull/28124))** +* **_Search Kit_: Fix crash when handling certain entities (ECK) ([#27993](https://github.com/civicrm/civicrm-core/pull/27993))** +* **_Deprecations_: Tweak text of recent notice about old Angular settings ([#28040](https://github.com/civicrm/civicrm-core/pull/28040))** +* **_Deprecations_: Fix new warnings about hyperlink weights in CiviMail ([#28085](https://github.com/civicrm/civicrm-core/pull/28085))** + +## <a name="credits"></a>Credits + +This release was developed by the following authors and reviewers: + +Wikimedia Foundation - Eileen McNaughton; Megaphone Technology Consulting - Jon Goldberg; +JMA Consulting - Seamus Lee; Francesc Bassas i Bullich; Dave D; Coop SymbioTIC - Mathieu +Lutfy; CiviCRM - Tim Otten, Coleman Watts; chriscant; angusfretwell; AGH Strategies - +Alice Frumin + +## <a name="feedback"></a>Feedback + +These release notes are edited by Tim Otten and Andie Hunt. If you'd like to +provide feedback on them, please login to https://chat.civicrm.org/civicrm and +contact `@agh1`. diff --git a/civicrm/sql/civicrm_data.mysql b/civicrm/sql/civicrm_data.mysql index 555cc06a99..88717a1d28 100644 --- a/civicrm/sql/civicrm_data.mysql +++ b/civicrm/sql/civicrm_data.mysql @@ -23580,4 +23580,4 @@ INSERT INTO `civicrm_report_instance` ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`) VALUES ( @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}'); -UPDATE civicrm_domain SET version = '5.67.0'; +UPDATE civicrm_domain SET version = '5.67.1'; diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql index 1a938fa007..95d397236d 100644 --- a/civicrm/sql/civicrm_generated.mysql +++ b/civicrm/sql/civicrm_generated.mysql @@ -2970,7 +2970,7 @@ UNLOCK TABLES; LOCK TABLES `civicrm_domain` WRITE; /*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */; INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES - (1,'Default Domain Name',NULL,'5.67.0',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); + (1,'Default Domain Name',NULL,'5.67.1',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); /*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */; UNLOCK TABLES; diff --git a/civicrm/vendor/autoload.php b/civicrm/vendor/autoload.php index 7682e37fd4..76e0e2c028 100644 --- a/civicrm/vendor/autoload.php +++ b/civicrm/vendor/autoload.php @@ -2,6 +2,11 @@ // autoload.php @generated by Composer +if (PHP_VERSION_ID < 50600) { + echo 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL; + exit(1); +} + require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitba4cf7f5988d6bc26c0b6d68cac96d08::getLoader(); +return ComposerAutoloaderInit299545d8663dedab9b6feed155a47593::getLoader(); diff --git a/civicrm/vendor/composer/InstalledVersions.php b/civicrm/vendor/composer/InstalledVersions.php index d50e0c9fcc..c6b54af7ba 100644 --- a/civicrm/vendor/composer/InstalledVersions.php +++ b/civicrm/vendor/composer/InstalledVersions.php @@ -21,12 +21,14 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { /** * @var mixed[]|null - * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null */ private static $installed; @@ -37,7 +39,7 @@ class InstalledVersions /** * @var array[] - * @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}> + * @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> */ private static $installedByVendor = array(); @@ -241,7 +243,7 @@ class InstalledVersions /** * @return array - * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string} + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} */ public static function getRootPackage() { @@ -255,7 +257,7 @@ class InstalledVersions * * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. * @return array[] - * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} */ public static function getRawData() { @@ -278,7 +280,7 @@ class InstalledVersions * Returns the raw data of all installed.php which are currently loaded for custom implementations * * @return array[] - * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}> + * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> */ public static function getAllRawData() { @@ -301,7 +303,7 @@ class InstalledVersions * @param array[] $data A vendor/composer/installed.php data set * @return void * - * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data */ public static function reload($data) { @@ -311,7 +313,7 @@ class InstalledVersions /** * @return array[] - * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}> + * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> */ private static function getInstalled() { diff --git a/civicrm/vendor/composer/autoload_classmap.php b/civicrm/vendor/composer/autoload_classmap.php index ecd7099c4d..d1977b86e3 100644 --- a/civicrm/vendor/composer/autoload_classmap.php +++ b/civicrm/vendor/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = dirname($vendorDir); return array( diff --git a/civicrm/vendor/composer/autoload_files.php b/civicrm/vendor/composer/autoload_files.php index d14b40d5a5..b6304b3866 100644 --- a/civicrm/vendor/composer/autoload_files.php +++ b/civicrm/vendor/composer/autoload_files.php @@ -2,7 +2,7 @@ // autoload_files.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = dirname($vendorDir); return array( diff --git a/civicrm/vendor/composer/autoload_namespaces.php b/civicrm/vendor/composer/autoload_namespaces.php index 18ec5ce42c..c2f335dc31 100644 --- a/civicrm/vendor/composer/autoload_namespaces.php +++ b/civicrm/vendor/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = dirname($vendorDir); return array( diff --git a/civicrm/vendor/composer/autoload_psr4.php b/civicrm/vendor/composer/autoload_psr4.php index b335f02da7..605608d617 100644 --- a/civicrm/vendor/composer/autoload_psr4.php +++ b/civicrm/vendor/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = dirname($vendorDir); return array( diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php index 7cc9314513..755285292a 100644 --- a/civicrm/vendor/composer/autoload_real.php +++ b/civicrm/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitba4cf7f5988d6bc26c0b6d68cac96d08 +class ComposerAutoloaderInit299545d8663dedab9b6feed155a47593 { private static $loader; @@ -24,45 +24,22 @@ class ComposerAutoloaderInitba4cf7f5988d6bc26c0b6d68cac96d08 require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInitba4cf7f5988d6bc26c0b6d68cac96d08', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); - spl_autoload_unregister(array('ComposerAutoloaderInitba4cf7f5988d6bc26c0b6d68cac96d08', 'loadClassLoader')); + spl_autoload_register(array('ComposerAutoloaderInit299545d8663dedab9b6feed155a47593', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); + spl_autoload_unregister(array('ComposerAutoloaderInit299545d8663dedab9b6feed155a47593', 'loadClassLoader')); $includePaths = require __DIR__ . '/include_paths.php'; $includePaths[] = get_include_path(); set_include_path(implode(PATH_SEPARATOR, $includePaths)); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitba4cf7f5988d6bc26c0b6d68cac96d08::getInitializer($loader)); - } else { - $map = require __DIR__ . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->set($namespace, $path); - } - - $map = require __DIR__ . '/autoload_psr4.php'; - foreach ($map as $namespace => $path) { - $loader->setPsr4($namespace, $path); - } - - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + call_user_func(\Composer\Autoload\ComposerStaticInit299545d8663dedab9b6feed155a47593::getInitializer($loader)); $loader->register(true); - if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitba4cf7f5988d6bc26c0b6d68cac96d08::$files; - } else { - $includeFiles = require __DIR__ . '/autoload_files.php'; - } + $includeFiles = \Composer\Autoload\ComposerStaticInit299545d8663dedab9b6feed155a47593::$files; foreach ($includeFiles as $fileIdentifier => $file) { - composerRequireba4cf7f5988d6bc26c0b6d68cac96d08($fileIdentifier, $file); + composerRequire299545d8663dedab9b6feed155a47593($fileIdentifier, $file); } return $loader; @@ -74,7 +51,7 @@ class ComposerAutoloaderInitba4cf7f5988d6bc26c0b6d68cac96d08 * @param string $file * @return void */ -function composerRequireba4cf7f5988d6bc26c0b6d68cac96d08($fileIdentifier, $file) +function composerRequire299545d8663dedab9b6feed155a47593($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php index ac6c3bd53d..020c735606 100644 --- a/civicrm/vendor/composer/autoload_static.php +++ b/civicrm/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitba4cf7f5988d6bc26c0b6d68cac96d08 +class ComposerStaticInit299545d8663dedab9b6feed155a47593 { public static $files = array ( 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', @@ -729,11 +729,11 @@ class ComposerStaticInitba4cf7f5988d6bc26c0b6d68cac96d08 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitba4cf7f5988d6bc26c0b6d68cac96d08::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitba4cf7f5988d6bc26c0b6d68cac96d08::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInitba4cf7f5988d6bc26c0b6d68cac96d08::$prefixesPsr0; - $loader->fallbackDirsPsr0 = ComposerStaticInitba4cf7f5988d6bc26c0b6d68cac96d08::$fallbackDirsPsr0; - $loader->classMap = ComposerStaticInitba4cf7f5988d6bc26c0b6d68cac96d08::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit299545d8663dedab9b6feed155a47593::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit299545d8663dedab9b6feed155a47593::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInit299545d8663dedab9b6feed155a47593::$prefixesPsr0; + $loader->fallbackDirsPsr0 = ComposerStaticInit299545d8663dedab9b6feed155a47593::$fallbackDirsPsr0; + $loader->classMap = ComposerStaticInit299545d8663dedab9b6feed155a47593::$classMap; }, null, ClassLoader::class); } diff --git a/civicrm/vendor/composer/include_paths.php b/civicrm/vendor/composer/include_paths.php index 189ce0e9b6..5386e5c830 100644 --- a/civicrm/vendor/composer/include_paths.php +++ b/civicrm/vendor/composer/include_paths.php @@ -2,7 +2,7 @@ // include_paths.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = dirname($vendorDir); return array( diff --git a/civicrm/vendor/composer/installed.php b/civicrm/vendor/composer/installed.php index 729e9ba6d2..3c44695f6b 100644 --- a/civicrm/vendor/composer/installed.php +++ b/civicrm/vendor/composer/installed.php @@ -1,157 +1,157 @@ <?php return array( 'root' => array( + 'name' => 'civicrm/civicrm-core', 'pretty_version' => '5.67.x-dev', 'version' => '5.67.9999999.9999999-dev', + 'reference' => 'debcc7374594566ab1505a8cec30cb19e8ee34ba', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '192b5c8ee388d2c084591fae00eb97be59cf2128', - 'name' => 'civicrm/civicrm-core', 'dev' => true, ), 'versions' => array( 'adrienrn/php-mimetyper' => array( 'pretty_version' => '0.2.2', 'version' => '0.2.2.0', + 'reference' => '702e00a604b4baed34d69730ce055e05c0f43932', 'type' => 'library', 'install_path' => __DIR__ . '/../adrienrn/php-mimetyper', 'aliases' => array(), - 'reference' => '702e00a604b4baed34d69730ce055e05c0f43932', 'dev_requirement' => false, ), 'brick/math' => array( 'pretty_version' => '0.9.3', 'version' => '0.9.3.0', + 'reference' => 'ca57d18f028f84f777b2168cd1911b0dee2343ae', 'type' => 'library', 'install_path' => __DIR__ . '/../brick/math', 'aliases' => array(), - 'reference' => 'ca57d18f028f84f777b2168cd1911b0dee2343ae', 'dev_requirement' => false, ), 'brick/money' => array( 'pretty_version' => '0.5.3', 'version' => '0.5.3.0', + 'reference' => '49e6597470da74f6a9f1dd7d5286ea3b4756b7e0', 'type' => 'library', 'install_path' => __DIR__ . '/../brick/money', 'aliases' => array(), - 'reference' => '49e6597470da74f6a9f1dd7d5286ea3b4756b7e0', 'dev_requirement' => false, ), 'civicrm/civicrm-core' => array( 'pretty_version' => '5.67.x-dev', 'version' => '5.67.9999999.9999999-dev', + 'reference' => 'debcc7374594566ab1505a8cec30cb19e8ee34ba', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '192b5c8ee388d2c084591fae00eb97be59cf2128', 'dev_requirement' => false, ), 'civicrm/civicrm-cxn-rpc' => array( 'pretty_version' => 'v0.20.12.01', 'version' => '0.20.12.01', + 'reference' => 'b097258a642dc3e0dd9c264cb75b72d5274cac2f', 'type' => 'library', 'install_path' => __DIR__ . '/../civicrm/civicrm-cxn-rpc', 'aliases' => array(), - 'reference' => 'b097258a642dc3e0dd9c264cb75b72d5274cac2f', 'dev_requirement' => false, ), 'civicrm/composer-compile-lib' => array( 'pretty_version' => 'v0.7', 'version' => '0.7.0.0', + 'reference' => '658230901ee3fc2830e9f93239a635a086b6816d', 'type' => 'library', 'install_path' => __DIR__ . '/../civicrm/composer-compile-lib', 'aliases' => array(), - 'reference' => '658230901ee3fc2830e9f93239a635a086b6816d', 'dev_requirement' => false, ), 'civicrm/composer-compile-plugin' => array( 'pretty_version' => 'v0.19', 'version' => '0.19.0.0', + 'reference' => '496d266d42fddb3d7cdec2d7c46bad3e9495801c', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../civicrm/composer-compile-plugin', 'aliases' => array(), - 'reference' => '496d266d42fddb3d7cdec2d7c46bad3e9495801c', 'dev_requirement' => false, ), 'civicrm/composer-downloads-plugin' => array( 'pretty_version' => 'v3.0.1', 'version' => '3.0.1.0', + 'reference' => '3aabb6d259a86158d01829fc2c62a2afb9618877', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../civicrm/composer-downloads-plugin', 'aliases' => array(), - 'reference' => '3aabb6d259a86158d01829fc2c62a2afb9618877', 'dev_requirement' => false, ), 'cweagans/composer-patches' => array( 'pretty_version' => '1.7.3', 'version' => '1.7.3.0', + 'reference' => 'e190d4466fe2b103a55467dfa83fc2fecfcaf2db', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../cweagans/composer-patches', 'aliases' => array(), - 'reference' => 'e190d4466fe2b103a55467dfa83fc2fecfcaf2db', 'dev_requirement' => false, ), 'dflydev/apache-mime-types' => array( 'pretty_version' => 'v1.0.1', 'version' => '1.0.1.0', + 'reference' => 'f30a57e59b7476e4c5270b6a0727d79c9c0eb861', 'type' => 'library', 'install_path' => __DIR__ . '/../dflydev/apache-mime-types', 'aliases' => array(), - 'reference' => 'f30a57e59b7476e4c5270b6a0727d79c9c0eb861', 'dev_requirement' => false, ), 'dompdf/dompdf' => array( 'pretty_version' => 'v2.0.3', 'version' => '2.0.3.0', + 'reference' => 'e8d2d5e37e8b0b30f0732a011295ab80680d7e85', 'type' => 'library', 'install_path' => __DIR__ . '/../dompdf/dompdf', 'aliases' => array(), - 'reference' => 'e8d2d5e37e8b0b30f0732a011295ab80680d7e85', 'dev_requirement' => false, ), 'ezyang/htmlpurifier' => array( 'pretty_version' => 'v4.16.0', 'version' => '4.16.0.0', + 'reference' => '523407fb06eb9e5f3d59889b3978d5bfe94299c8', 'type' => 'library', 'install_path' => __DIR__ . '/../ezyang/htmlpurifier', 'aliases' => array(), - 'reference' => '523407fb06eb9e5f3d59889b3978d5bfe94299c8', 'dev_requirement' => false, ), 'firebase/php-jwt' => array( 'pretty_version' => 'v5.2.1', 'version' => '5.2.1.0', + 'reference' => 'f42c9110abe98dd6cfe9053c49bc86acc70b2d23', 'type' => 'library', 'install_path' => __DIR__ . '/../firebase/php-jwt', 'aliases' => array(), - 'reference' => 'f42c9110abe98dd6cfe9053c49bc86acc70b2d23', 'dev_requirement' => false, ), 'guzzlehttp/guzzle' => array( 'pretty_version' => '6.5.8', 'version' => '6.5.8.0', + 'reference' => 'a52f0440530b54fa079ce76e8c5d196a42cad981', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/guzzle', 'aliases' => array(), - 'reference' => 'a52f0440530b54fa079ce76e8c5d196a42cad981', 'dev_requirement' => false, ), 'guzzlehttp/promises' => array( 'pretty_version' => '1.5.1', 'version' => '1.5.1.0', + 'reference' => 'fe752aedc9fd8fcca3fe7ad05d419d32998a06da', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/promises', 'aliases' => array(), - 'reference' => 'fe752aedc9fd8fcca3fe7ad05d419d32998a06da', 'dev_requirement' => false, ), 'guzzlehttp/psr7' => array( 'pretty_version' => '1.9.1', 'version' => '1.9.1.0', + 'reference' => 'e4490cabc77465aaee90b20cfc9a770f8c04be6b', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'aliases' => array(), - 'reference' => 'e4490cabc77465aaee90b20cfc9a770f8c04be6b', 'dev_requirement' => false, ), 'henrikbjorn/lurker' => array( @@ -163,280 +163,280 @@ 'html2text/html2text' => array( 'pretty_version' => '4.3.1', 'version' => '4.3.1.0', + 'reference' => '61ad68e934066a6f8df29a3d23a6460536d0855c', 'type' => 'library', 'install_path' => __DIR__ . '/../html2text/html2text', 'aliases' => array(), - 'reference' => '61ad68e934066a6f8df29a3d23a6460536d0855c', 'dev_requirement' => false, ), 'laminas/laminas-escaper' => array( 'pretty_version' => '2.6.1', 'version' => '2.6.1.0', + 'reference' => '25f2a053eadfa92ddacb609dcbbc39362610da70', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-escaper', 'aliases' => array(), - 'reference' => '25f2a053eadfa92ddacb609dcbbc39362610da70', 'dev_requirement' => false, ), 'laminas/laminas-zendframework-bridge' => array( 'pretty_version' => '1.1.1', 'version' => '1.1.1.0', + 'reference' => '6ede70583e101030bcace4dcddd648f760ddf642', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-zendframework-bridge', 'aliases' => array(), - 'reference' => '6ede70583e101030bcace4dcddd648f760ddf642', 'dev_requirement' => false, ), 'league/csv' => array( 'pretty_version' => '9.7.4', 'version' => '9.7.4.0', + 'reference' => '002f55f649e7511710dc7154ff44c7be32c8195c', 'type' => 'library', 'install_path' => __DIR__ . '/../league/csv', 'aliases' => array(), - 'reference' => '002f55f649e7511710dc7154ff44c7be32c8195c', 'dev_requirement' => false, ), 'league/oauth2-client' => array( 'pretty_version' => '2.6.1', 'version' => '2.6.1.0', + 'reference' => '2334c249907190c132364f5dae0287ab8666aa19', 'type' => 'library', 'install_path' => __DIR__ . '/../league/oauth2-client', 'aliases' => array(), - 'reference' => '2334c249907190c132364f5dae0287ab8666aa19', 'dev_requirement' => false, ), 'league/oauth2-google' => array( 'pretty_version' => '3.0.3', 'version' => '3.0.3.0', + 'reference' => '18d1889897a8b18d85ecadacf74c9274d678d943', 'type' => 'library', 'install_path' => __DIR__ . '/../league/oauth2-google', 'aliases' => array(), - 'reference' => '18d1889897a8b18d85ecadacf74c9274d678d943', 'dev_requirement' => false, ), 'maennchen/zipstream-php' => array( 'pretty_version' => '2.1.0', 'version' => '2.1.0.0', + 'reference' => 'c4c5803cc1f93df3d2448478ef79394a5981cc58', 'type' => 'library', 'install_path' => __DIR__ . '/../maennchen/zipstream-php', 'aliases' => array(), - 'reference' => 'c4c5803cc1f93df3d2448478ef79394a5981cc58', 'dev_requirement' => false, ), 'marcj/topsort' => array( 'pretty_version' => '1.1.0', 'version' => '1.1.0.0', + 'reference' => '387086c2db60ee0a27ac5df588c0f0b30c6bdc4b', 'type' => 'library', 'install_path' => __DIR__ . '/../marcj/topsort', 'aliases' => array(), - 'reference' => '387086c2db60ee0a27ac5df588c0f0b30c6bdc4b', 'dev_requirement' => false, ), 'markbaker/complex' => array( 'pretty_version' => '2.0.3', 'version' => '2.0.3.0', + 'reference' => '6f724d7e04606fd8adaa4e3bb381c3e9db09c946', 'type' => 'library', 'install_path' => __DIR__ . '/../markbaker/complex', 'aliases' => array(), - 'reference' => '6f724d7e04606fd8adaa4e3bb381c3e9db09c946', 'dev_requirement' => false, ), 'markbaker/matrix' => array( 'pretty_version' => '2.1.3', 'version' => '2.1.3.0', + 'reference' => '174395a901b5ba0925f1d790fa91bab531074b61', 'type' => 'library', 'install_path' => __DIR__ . '/../markbaker/matrix', 'aliases' => array(), - 'reference' => '174395a901b5ba0925f1d790fa91bab531074b61', 'dev_requirement' => false, ), 'masterminds/html5' => array( 'pretty_version' => '2.7.6', 'version' => '2.7.6.0', + 'reference' => '897eb517a343a2281f11bc5556d6548db7d93947', 'type' => 'library', 'install_path' => __DIR__ . '/../masterminds/html5', 'aliases' => array(), - 'reference' => '897eb517a343a2281f11bc5556d6548db7d93947', 'dev_requirement' => false, ), 'myclabs/php-enum' => array( 'pretty_version' => '1.7.7', 'version' => '1.7.7.0', + 'reference' => 'd178027d1e679832db9f38248fcc7200647dc2b7', 'type' => 'library', 'install_path' => __DIR__ . '/../myclabs/php-enum', 'aliases' => array(), - 'reference' => 'd178027d1e679832db9f38248fcc7200647dc2b7', 'dev_requirement' => false, ), 'padaliyajay/php-autoprefixer' => array( 'pretty_version' => '1.3', 'version' => '1.3.0.0', + 'reference' => 'f05f374f0c1e463db62209613f52b38bf4b52430', 'type' => 'library', 'install_path' => __DIR__ . '/../padaliyajay/php-autoprefixer', 'aliases' => array(), - 'reference' => 'f05f374f0c1e463db62209613f52b38bf4b52430', 'dev_requirement' => false, ), 'paragonie/random_compat' => array( 'pretty_version' => 'v9.99.100', 'version' => '9.99.100.0', + 'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/random_compat', 'aliases' => array(), - 'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a', 'dev_requirement' => false, ), 'pear/auth_sasl' => array( 'pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', + 'reference' => 'db1ead3dc0bf986d2bab0dbc04d114800cf91dee', 'type' => 'library', 'install_path' => __DIR__ . '/../pear/auth_sasl', 'aliases' => array(), - 'reference' => 'db1ead3dc0bf986d2bab0dbc04d114800cf91dee', 'dev_requirement' => false, ), 'pear/console_getopt' => array( 'pretty_version' => 'v1.4.3', 'version' => '1.4.3.0', + 'reference' => 'a41f8d3e668987609178c7c4a9fe48fecac53fa0', 'type' => 'library', 'install_path' => __DIR__ . '/../pear/console_getopt', 'aliases' => array(), - 'reference' => 'a41f8d3e668987609178c7c4a9fe48fecac53fa0', 'dev_requirement' => false, ), 'pear/db' => array( 'pretty_version' => 'v1.11.0', 'version' => '1.11.0.0', + 'reference' => '7e4f33dcecd99595df982ef8f56c1d7c2bbeaa21', 'type' => 'library', 'install_path' => __DIR__ . '/../pear/db', 'aliases' => array(), - 'reference' => '7e4f33dcecd99595df982ef8f56c1d7c2bbeaa21', 'dev_requirement' => false, ), 'pear/log' => array( 'pretty_version' => '1.13.3', 'version' => '1.13.3.0', + 'reference' => '21af0be11669194d72d88b5ee9d5f176dc75d9a3', 'type' => 'library', 'install_path' => __DIR__ . '/../pear/log', 'aliases' => array(), - 'reference' => '21af0be11669194d72d88b5ee9d5f176dc75d9a3', 'dev_requirement' => false, ), 'pear/mail' => array( 'pretty_version' => 'v1.5.0', 'version' => '1.5.0.0', + 'reference' => 'c31b7635899a630a8ce681e5ced18cededcc15f3', 'type' => 'library', 'install_path' => __DIR__ . '/../pear/mail', 'aliases' => array(), - 'reference' => 'c31b7635899a630a8ce681e5ced18cededcc15f3', 'dev_requirement' => false, ), 'pear/mail_mime' => array( 'pretty_version' => '1.10.11', 'version' => '1.10.11.0', + 'reference' => 'd4fb9ce61201593d0f8c6db629c45e29c3409c14', 'type' => 'library', 'install_path' => __DIR__ . '/../pear/mail_mime', 'aliases' => array(), - 'reference' => 'd4fb9ce61201593d0f8c6db629c45e29c3409c14', 'dev_requirement' => false, ), 'pear/net_smtp' => array( 'pretty_version' => '1.10.0', 'version' => '1.10.0.0', + 'reference' => '51e5997b711fbd1e5a9a075634d4d682168537fa', 'type' => 'library', 'install_path' => __DIR__ . '/../pear/net_smtp', 'aliases' => array(), - 'reference' => '51e5997b711fbd1e5a9a075634d4d682168537fa', 'dev_requirement' => false, ), 'pear/net_socket' => array( 'pretty_version' => '1.0.14', 'version' => '1.0.14.0', + 'reference' => 'fcd33efd77e4b35ce85489141ab9145343579fe8', 'type' => 'library', 'install_path' => __DIR__ . '/../pear/net_socket', 'aliases' => array(), - 'reference' => 'fcd33efd77e4b35ce85489141ab9145343579fe8', 'dev_requirement' => false, ), 'pear/pear-core-minimal' => array( 'pretty_version' => 'v1.10.13', 'version' => '1.10.13.0', + 'reference' => 'aed862e95fd286c53cc546734868dc38ff4b5b1d', 'type' => 'library', 'install_path' => __DIR__ . '/../pear/pear-core-minimal', 'aliases' => array(), - 'reference' => 'aed862e95fd286c53cc546734868dc38ff4b5b1d', 'dev_requirement' => false, ), 'pear/pear_exception' => array( 'pretty_version' => 'v1.0.2', 'version' => '1.0.2.0', + 'reference' => 'b14fbe2ddb0b9f94f5b24cf08783d599f776fff0', 'type' => 'class', 'install_path' => __DIR__ . '/../pear/pear_exception', 'aliases' => array(), - 'reference' => 'b14fbe2ddb0b9f94f5b24cf08783d599f776fff0', 'dev_requirement' => false, ), 'pear/validate_finance_creditcard' => array( 'pretty_version' => '0.7.0', 'version' => '0.7.0.0', + 'reference' => 'f138fb80b2305c1fe7ca33216b895b868396f1e9', 'type' => 'library', 'install_path' => __DIR__ . '/../pear/validate_finance_creditcard', 'aliases' => array(), - 'reference' => 'f138fb80b2305c1fe7ca33216b895b868396f1e9', 'dev_requirement' => false, ), 'phenx/php-font-lib' => array( 'pretty_version' => '0.5.4', 'version' => '0.5.4.0', + 'reference' => 'dd448ad1ce34c63d09baccd05415e361300c35b4', 'type' => 'library', 'install_path' => __DIR__ . '/../phenx/php-font-lib', 'aliases' => array(), - 'reference' => 'dd448ad1ce34c63d09baccd05415e361300c35b4', 'dev_requirement' => false, ), 'phenx/php-svg-lib' => array( 'pretty_version' => '0.5.0', 'version' => '0.5.0.0', + 'reference' => '76876c6cf3080bcb6f249d7d59705108166a6685', 'type' => 'library', 'install_path' => __DIR__ . '/../phenx/php-svg-lib', 'aliases' => array(), - 'reference' => '76876c6cf3080bcb6f249d7d59705108166a6685', 'dev_requirement' => false, ), 'phpoffice/phpspreadsheet' => array( 'pretty_version' => '1.18.0', 'version' => '1.18.0.0', + 'reference' => '418cd304e8e6b417ea79c3b29126a25dc4b1170c', 'type' => 'library', 'install_path' => __DIR__ . '/../phpoffice/phpspreadsheet', 'aliases' => array(), - 'reference' => '418cd304e8e6b417ea79c3b29126a25dc4b1170c', 'dev_requirement' => false, ), 'phpoffice/phpword' => array( 'pretty_version' => '0.18.3', 'version' => '0.18.3.0', + 'reference' => 'be0190cd5d8f95b4be08d5853b107aa4e352759a', 'type' => 'library', 'install_path' => __DIR__ . '/../phpoffice/phpword', 'aliases' => array(), - 'reference' => 'be0190cd5d8f95b4be08d5853b107aa4e352759a', 'dev_requirement' => false, ), 'phpseclib/phpseclib' => array( 'pretty_version' => '2.0.31', 'version' => '2.0.31.0', + 'reference' => '233a920cb38636a43b18d428f9a8db1f0a1a08f4', 'type' => 'library', 'install_path' => __DIR__ . '/../phpseclib/phpseclib', 'aliases' => array(), - 'reference' => '233a920cb38636a43b18d428f9a8db1f0a1a08f4', 'dev_requirement' => false, ), 'psr/container' => array( 'pretty_version' => '1.0.0', 'version' => '1.0.0.0', + 'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), - 'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f', 'dev_requirement' => false, ), 'psr/container-implementation' => array( @@ -454,28 +454,28 @@ 'psr/http-client' => array( 'pretty_version' => '1.0.1', 'version' => '1.0.1.0', + 'reference' => '2dfb5f6c5eff0e91e20e913f8c5452ed95b86621', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-client', 'aliases' => array(), - 'reference' => '2dfb5f6c5eff0e91e20e913f8c5452ed95b86621', 'dev_requirement' => false, ), 'psr/http-factory' => array( 'pretty_version' => '1.0.1', 'version' => '1.0.1.0', + 'reference' => '12ac7fcd07e5b077433f5f2bee95b3a771bf61be', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), - 'reference' => '12ac7fcd07e5b077433f5f2bee95b3a771bf61be', 'dev_requirement' => false, ), 'psr/http-message' => array( 'pretty_version' => '1.0.1', 'version' => '1.0.1.0', + 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), - 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', 'dev_requirement' => false, ), 'psr/http-message-implementation' => array( @@ -487,28 +487,28 @@ 'psr/log' => array( 'pretty_version' => '1.1.3', 'version' => '1.1.3.0', + 'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), - 'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc', 'dev_requirement' => false, ), 'psr/simple-cache' => array( 'pretty_version' => '1.0.1', 'version' => '1.0.1.0', + 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), - 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', 'dev_requirement' => false, ), 'ralouphie/getallheaders' => array( 'pretty_version' => '3.0.3', 'version' => '3.0.3.0', + 'reference' => '120b605dfeb996808c31b6477290a714d356e822', 'type' => 'library', 'install_path' => __DIR__ . '/../ralouphie/getallheaders', 'aliases' => array(), - 'reference' => '120b605dfeb996808c31b6477290a714d356e822', 'dev_requirement' => false, ), 'rsky/pear-core-min' => array( @@ -520,64 +520,64 @@ 'rubobaquero/phpquery' => array( 'pretty_version' => '0.9.15', 'version' => '0.9.15.0', + 'reference' => 'd2c3c1bb8a9d48dd0f1230bda2413ce38108b5fe', 'type' => 'library', 'install_path' => __DIR__ . '/../rubobaquero/phpquery', 'aliases' => array(), - 'reference' => 'd2c3c1bb8a9d48dd0f1230bda2413ce38108b5fe', 'dev_requirement' => false, ), 'sabberworm/php-css-parser' => array( 'pretty_version' => '8.4.0', 'version' => '8.4.0.0', + 'reference' => 'e41d2140031d533348b2192a83f02d8dd8a71d30', 'type' => 'library', 'install_path' => __DIR__ . '/../sabberworm/php-css-parser', 'aliases' => array(), - 'reference' => 'e41d2140031d533348b2192a83f02d8dd8a71d30', 'dev_requirement' => false, ), 'scssphp/scssphp' => array( 'pretty_version' => 'v1.10.3', 'version' => '1.10.3.0', + 'reference' => '0f1e1516ed2412ad43e42a6a319e77624ba1f713', 'type' => 'library', 'install_path' => __DIR__ . '/../scssphp/scssphp', 'aliases' => array(), - 'reference' => '0f1e1516ed2412ad43e42a6a319e77624ba1f713', 'dev_requirement' => false, ), 'symfony/config' => array( 'pretty_version' => 'v4.4.42', 'version' => '4.4.42.0', + 'reference' => '83cdafd1bd3370de23e3dc2ed01026908863be81', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/config', 'aliases' => array(), - 'reference' => '83cdafd1bd3370de23e3dc2ed01026908863be81', 'dev_requirement' => false, ), 'symfony/dependency-injection' => array( 'pretty_version' => 'v4.4.43', 'version' => '4.4.43.0', + 'reference' => '8d0ae6d87ceea5f3a352413f9d1f71ed2234dcbd', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/dependency-injection', 'aliases' => array(), - 'reference' => '8d0ae6d87ceea5f3a352413f9d1f71ed2234dcbd', 'dev_requirement' => false, ), 'symfony/event-dispatcher' => array( 'pretty_version' => 'v4.4.42', 'version' => '4.4.42.0', + 'reference' => '708e761740c16b02c86e3f0c932018a06b895d40', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/event-dispatcher', 'aliases' => array(), - 'reference' => '708e761740c16b02c86e3f0c932018a06b895d40', 'dev_requirement' => false, ), 'symfony/event-dispatcher-contracts' => array( 'pretty_version' => 'v1.1.13', 'version' => '1.1.13.0', + 'reference' => '1d5cd762abaa6b2a4169d3e77610193a7157129e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts', 'aliases' => array(), - 'reference' => '1d5cd762abaa6b2a4169d3e77610193a7157129e', 'dev_requirement' => false, ), 'symfony/event-dispatcher-implementation' => array( @@ -589,136 +589,136 @@ 'symfony/filesystem' => array( 'pretty_version' => 'v4.4.42', 'version' => '4.4.42.0', + 'reference' => '815412ee8971209bd4c1eecd5f4f481eacd44bf5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), - 'reference' => '815412ee8971209bd4c1eecd5f4f481eacd44bf5', 'dev_requirement' => false, ), 'symfony/finder' => array( 'pretty_version' => 'v4.4.41', 'version' => '4.4.41.0', + 'reference' => '40790bdf293b462798882ef6da72bb49a4a6633a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), - 'reference' => '40790bdf293b462798882ef6da72bb49a4a6633a', 'dev_requirement' => false, ), 'symfony/polyfill-ctype' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', + 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 'aliases' => array(), - 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a', 'dev_requirement' => false, ), 'symfony/polyfill-iconv' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', + 'reference' => '927013f3aac555983a5059aada98e1907d842695', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-iconv', 'aliases' => array(), - 'reference' => '927013f3aac555983a5059aada98e1907d842695', 'dev_requirement' => false, ), 'symfony/polyfill-intl-idn' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', + 'reference' => '639084e360537a19f9ee352433b84ce831f3d2da', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-idn', 'aliases' => array(), - 'reference' => '639084e360537a19f9ee352433b84ce831f3d2da', 'dev_requirement' => false, ), 'symfony/polyfill-intl-normalizer' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', + 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), - 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'dev_requirement' => false, ), 'symfony/polyfill-mbstring' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', + 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), - 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'dev_requirement' => false, ), 'symfony/polyfill-php72' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', + 'reference' => '869329b1e9894268a8a61dabb69153029b7a8c97', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php72', 'aliases' => array(), - 'reference' => '869329b1e9894268a8a61dabb69153029b7a8c97', 'dev_requirement' => false, ), 'symfony/polyfill-php73' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', + 'reference' => '9e8ecb5f92152187c4799efd3c96b78ccab18ff9', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php73', 'aliases' => array(), - 'reference' => '9e8ecb5f92152187c4799efd3c96b78ccab18ff9', 'dev_requirement' => false, ), 'symfony/polyfill-php74' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', + 'reference' => 'aa7f1231a1aa56d695e626043252b7be6a90c4ce', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php74', 'aliases' => array(), - 'reference' => 'aa7f1231a1aa56d695e626043252b7be6a90c4ce', 'dev_requirement' => false, ), 'symfony/polyfill-php80' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', + 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), - 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936', 'dev_requirement' => false, ), 'symfony/polyfill-php81' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', + 'reference' => '707403074c8ea6e2edaf8794b0157a0bfa52157a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php81', 'aliases' => array(), - 'reference' => '707403074c8ea6e2edaf8794b0157a0bfa52157a', 'dev_requirement' => false, ), 'symfony/polyfill-php82' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', + 'reference' => '80ddf7bfa17ef7b06db4e6d007a95bf584e07b44', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php82', 'aliases' => array(), - 'reference' => '80ddf7bfa17ef7b06db4e6d007a95bf584e07b44', 'dev_requirement' => false, ), 'symfony/process' => array( 'pretty_version' => 'v4.4.41', 'version' => '4.4.41.0', + 'reference' => '9eedd60225506d56e42210a70c21bb80ca8456ce', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), - 'reference' => '9eedd60225506d56e42210a70c21bb80ca8456ce', 'dev_requirement' => false, ), 'symfony/service-contracts' => array( 'pretty_version' => 'v2.2.0', 'version' => '2.2.0.0', + 'reference' => 'd15da7ba4957ffb8f1747218be9e1a121fd298a1', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), - 'reference' => 'd15da7ba4957ffb8f1747218be9e1a121fd298a1', 'dev_requirement' => false, ), 'symfony/service-implementation' => array( @@ -730,82 +730,82 @@ 'symfony/var-dumper' => array( 'pretty_version' => 'v4.4.47', 'version' => '4.4.47.0', + 'reference' => '1069c7a3fca74578022fab6f81643248d02f8e63', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/var-dumper', 'aliases' => array(), - 'reference' => '1069c7a3fca74578022fab6f81643248d02f8e63', 'dev_requirement' => false, ), 'tecnickcom/tcpdf' => array( 'pretty_version' => '6.4.4', 'version' => '6.4.4.0', + 'reference' => '42cd0f9786af7e5db4fcedaa66f717b0d0032320', 'type' => 'library', 'install_path' => __DIR__ . '/../tecnickcom/tcpdf', 'aliases' => array(), - 'reference' => '42cd0f9786af7e5db4fcedaa66f717b0d0032320', 'dev_requirement' => false, ), 'togos/gitignore' => array( 'pretty_version' => '1.1.1', 'version' => '1.1.1.0', + 'reference' => '32bc0830e4123f670adcbf5ddda5bef362f4f4d4', 'type' => 'library', 'install_path' => __DIR__ . '/../togos/gitignore', 'aliases' => array(), - 'reference' => '32bc0830e4123f670adcbf5ddda5bef362f4f4d4', 'dev_requirement' => false, ), 'totten/ca-config' => array( 'pretty_version' => 'v23.07.0', 'version' => '23.07.0.0', + 'reference' => '12571f07b994d555bf1a956e310f224da3ebbd8d', 'type' => 'library', 'install_path' => __DIR__ . '/../totten/ca-config', 'aliases' => array(), - 'reference' => '12571f07b994d555bf1a956e310f224da3ebbd8d', 'dev_requirement' => false, ), 'totten/lurkerlite' => array( 'pretty_version' => '1.3.0', 'version' => '1.3.0.0', + 'reference' => 'a20c47142b486415b9117c76aa4c2117ff95b49a', 'type' => 'library', 'install_path' => __DIR__ . '/../totten/lurkerlite', 'aliases' => array(), - 'reference' => 'a20c47142b486415b9117c76aa4c2117ff95b49a', 'dev_requirement' => false, ), 'tplaner/when' => array( 'pretty_version' => 'v3.1.5', 'version' => '3.1.5.0', + 'reference' => '8865acc235df8f57c2b229517c57c613b11ce4aa', 'type' => 'library', 'install_path' => __DIR__ . '/../tplaner/when', 'aliases' => array(), - 'reference' => '8865acc235df8f57c2b229517c57c613b11ce4aa', 'dev_requirement' => false, ), 'tubalmartin/cssmin' => array( 'pretty_version' => 'v4.1.1', 'version' => '4.1.1.0', + 'reference' => '3cbf557f4079d83a06f9c3ff9b957c022d7805cf', 'type' => 'library', 'install_path' => __DIR__ . '/../tubalmartin/cssmin', 'aliases' => array(), - 'reference' => '3cbf557f4079d83a06f9c3ff9b957c022d7805cf', 'dev_requirement' => false, ), 'typo3/phar-stream-wrapper' => array( 'pretty_version' => 'v3.1.4', 'version' => '3.1.4.0', + 'reference' => 'e0c1b495cfac064f4f5c4bcb6bf67bb7f345ed04', 'type' => 'library', 'install_path' => __DIR__ . '/../typo3/phar-stream-wrapper', 'aliases' => array(), - 'reference' => 'e0c1b495cfac064f4f5c4bcb6bf67bb7f345ed04', 'dev_requirement' => false, ), 'xkerman/restricted-unserialize' => array( 'pretty_version' => '1.1.12', 'version' => '1.1.12.0', + 'reference' => '4c6cadbb176c04d3e19b9bb8b40df12998460489', 'type' => 'library', 'install_path' => __DIR__ . '/../xkerman/restricted-unserialize', 'aliases' => array(), - 'reference' => '4c6cadbb176c04d3e19b9bb8b40df12998460489', 'dev_requirement' => false, ), 'zendframework/zend-escaper' => array( @@ -817,19 +817,19 @@ 'zetacomponents/base' => array( 'pretty_version' => '1.9.3', 'version' => '1.9.3.0', + 'reference' => '2f432f4117a5aa2164d4fb1784f84db91dbdd3b8', 'type' => 'library', 'install_path' => __DIR__ . '/../zetacomponents/base', 'aliases' => array(), - 'reference' => '2f432f4117a5aa2164d4fb1784f84db91dbdd3b8', 'dev_requirement' => false, ), 'zetacomponents/mail' => array( 'pretty_version' => '1.9.4', 'version' => '1.9.4.0', + 'reference' => '83ba646f36f753c0bbc8b2189c88d41ece326ea0', 'type' => 'library', 'install_path' => __DIR__ . '/../zetacomponents/mail', 'aliases' => array(), - 'reference' => '83ba646f36f753c0bbc8b2189c88d41ece326ea0', 'dev_requirement' => false, ), ), diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml index d137f830d6..e59ae0b395 100644 --- a/civicrm/xml/version.xml +++ b/civicrm/xml/version.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="iso-8859-1" ?> <version> - <version_no>5.67.0</version_no> + <version_no>5.67.1</version_no> </version> -- GitLab