From 77036aae314a01cfab7e010e96baeb4142cb8290 Mon Sep 17 00:00:00 2001 From: Vasile Chindris Date: Thu, 31 Oct 2024 09:03:42 +0200 Subject: [PATCH 1/7] feat(SLB-480): global search wip, added the search api module, a database index and a test view --- apps/cms/composer.json | 1 + apps/cms/composer.lock | 74 +++- ...g_pages.website_settings.global_search.yml | 32 ++ ...w_display.media.document.global_search.yml | 37 ++ ...view_display.media.image.global_search.yml | 37 ++ ...splay.media.remote_video.global_search.yml | 35 ++ ...view_display.media.video.global_search.yml | 36 ++ ....entity_view_display.node.page.default.yml | 1 + ...y_view_display.node.page.global_search.yml | 40 +++ ...y_view_display.user.user.global_search.yml | 18 + ...y_view_mode.config_pages.global_search.yml | 11 + ...e.entity_view_mode.media.global_search.yml | 11 + ...re.entity_view_mode.node.global_search.yml | 11 + ...re.entity_view_mode.user.global_search.yml | 11 + apps/cms/config/sync/core.extension.yml | 3 + .../sync/search_api.index.global_search.yml | 321 ++++++++++++++++++ .../sync/search_api.server.database.yml | 15 + apps/cms/config/sync/search_api.settings.yml | 28 ++ .../config/sync/search_api_db.settings.yml | 3 + .../config/sync/views.view.global_search.yml | 263 ++++++++++++++ apps/cms/package.json | 3 +- .../gutenberg_blocks.gutenberg.yml | 2 + .../gutenberg-block--custom--hero.html.twig | 12 + .../drupal/search_api_global/package.json | 5 + .../search_api_global.info.yml | 6 + .../search_api_global.module | 1 + pnpm-lock.yaml | 270 +++++++-------- 27 files changed, 1151 insertions(+), 136 deletions(-) create mode 100644 apps/cms/config/sync/core.entity_view_display.config_pages.website_settings.global_search.yml create mode 100644 apps/cms/config/sync/core.entity_view_display.media.document.global_search.yml create mode 100644 apps/cms/config/sync/core.entity_view_display.media.image.global_search.yml create mode 100644 apps/cms/config/sync/core.entity_view_display.media.remote_video.global_search.yml create mode 100644 apps/cms/config/sync/core.entity_view_display.media.video.global_search.yml create mode 100644 apps/cms/config/sync/core.entity_view_display.node.page.global_search.yml create mode 100644 apps/cms/config/sync/core.entity_view_display.user.user.global_search.yml create mode 100644 apps/cms/config/sync/core.entity_view_mode.config_pages.global_search.yml create mode 100644 apps/cms/config/sync/core.entity_view_mode.media.global_search.yml create mode 100644 apps/cms/config/sync/core.entity_view_mode.node.global_search.yml create mode 100644 apps/cms/config/sync/core.entity_view_mode.user.global_search.yml create mode 100644 apps/cms/config/sync/search_api.index.global_search.yml create mode 100644 apps/cms/config/sync/search_api.server.database.yml create mode 100644 apps/cms/config/sync/search_api.settings.yml create mode 100644 apps/cms/config/sync/search_api_db.settings.yml create mode 100644 apps/cms/config/sync/views.view.global_search.yml create mode 100644 packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--hero.html.twig create mode 100644 packages/drupal/search_api_global/package.json create mode 100644 packages/drupal/search_api_global/search_api_global.info.yml create mode 100644 packages/drupal/search_api_global/search_api_global.module diff --git a/apps/cms/composer.json b/apps/cms/composer.json index 7335cd3c2..ad1ecf685 100644 --- a/apps/cms/composer.json +++ b/apps/cms/composer.json @@ -72,6 +72,7 @@ "drupal/replicate_ui": "^1.1", "drupal/reroute_email": "^2.2", "drupal/role_delegation": "^1.2", + "drupal/search_api": "^1.35", "drupal/simple_oauth": "^5.2", "drupal/slack": "^1.4", "drupal/stage_file_proxy": "^2.0.2", diff --git a/apps/cms/composer.lock b/apps/cms/composer.lock index f4ae2c55c..b7b2cab59 100644 --- a/apps/cms/composer.lock +++ b/apps/cms/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": "3105a4891946236dd438f480f35ec788", + "content-hash": "f2286f7ce6c31ab663ed8b8975dc0dac", "packages": [ { "name": "amazeeio/drupal_integrations", @@ -4396,6 +4396,78 @@ "issues": "http://drupal.org/project/role_delegation" } }, + { + "name": "drupal/search_api", + "version": "1.35.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/search_api.git", + "reference": "8.x-1.35" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/search_api-8.x-1.35.zip", + "reference": "8.x-1.35", + "shasum": "d119726e870f793c6470d2a4fa9286662c5eb45d" + }, + "require": { + "drupal/core": "^10.1 || ^11" + }, + "conflict": { + "drupal/search_api_solr": "2.* || 3.0 || 3.1" + }, + "require-dev": { + "drupal/language_fallback_fix": "@dev", + "drupal/search_api_autocomplete": "@dev", + "drupal/search_api_db": "*" + }, + "suggest": { + "drupal/facets": "Adds the ability to create faceted searches.", + "drupal/search_api_autocomplete": "Allows adding autocomplete suggestions to search fields.", + "drupal/search_api_solr": "Adds support for using Apache Solr as a backend." + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.35", + "datestamp": "1718551025", + "security-coverage": { + "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", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Thomas Seidl", + "homepage": "https://www.drupal.org/u/drunken-monkey" + }, + { + "name": "Nick Veenhof", + "homepage": "https://www.drupal.org/u/nick_vh" + }, + { + "name": "See other contributors", + "homepage": "https://www.drupal.org/node/790418/committers" + } + ], + "description": "Provides a generic framework for modules offering search capabilities.", + "homepage": "https://www.drupal.org/project/search_api", + "support": { + "source": "https://git.drupalcode.org/project/search_api", + "issues": "https://www.drupal.org/project/issues/search_api", + "irc": "irc://irc.freenode.org/drupal-search-api" + } + }, { "name": "drupal/simple_oauth", "version": "5.2.5", diff --git a/apps/cms/config/sync/core.entity_view_display.config_pages.website_settings.global_search.yml b/apps/cms/config/sync/core.entity_view_display.config_pages.website_settings.global_search.yml new file mode 100644 index 000000000..215f16377 --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_display.config_pages.website_settings.global_search.yml @@ -0,0 +1,32 @@ +uuid: f70db696-2977-4e3b-b3d6-0c2c38d446b6 +langcode: en +status: true +dependencies: + config: + - config_pages.type.website_settings + - core.entity_view_mode.config_pages.global_search + - field.field.config_pages.website_settings.field_404_page + - field.field.config_pages.website_settings.field_home_page +id: config_pages.website_settings.global_search +targetEntityType: config_pages +bundle: website_settings +mode: global_search +content: + field_404_page: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 1 + region: content + field_home_page: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 2 + region: content +hidden: + search_api_excerpt: true diff --git a/apps/cms/config/sync/core.entity_view_display.media.document.global_search.yml b/apps/cms/config/sync/core.entity_view_display.media.document.global_search.yml new file mode 100644 index 000000000..1ba053193 --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_display.media.document.global_search.yml @@ -0,0 +1,37 @@ +uuid: e4abb3ab-7ad2-4526-a7f1-5d2490f96c78 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.global_search + - field.field.media.document.field_media_file + - media.type.document + module: + - file +id: media.document.global_search +targetEntityType: media +bundle: document +mode: global_search +content: + field_media_file: + type: file_default + label: hidden + settings: + use_description_as_link_text: true + third_party_settings: { } + weight: 1 + region: content + name: + type: string + label: hidden + settings: + link_to_entity: false + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + langcode: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/apps/cms/config/sync/core.entity_view_display.media.image.global_search.yml b/apps/cms/config/sync/core.entity_view_display.media.image.global_search.yml new file mode 100644 index 000000000..ac52a7d3b --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_display.media.image.global_search.yml @@ -0,0 +1,37 @@ +uuid: ee74d301-5723-4317-959d-4ebf11c34c5a +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.global_search + - field.field.media.image.field_media_image + - media.type.image + module: + - image +id: media.image.global_search +targetEntityType: media +bundle: image +mode: global_search +content: + field_media_image: + type: image_url + label: hidden + settings: + image_style: '' + third_party_settings: { } + weight: 1 + region: content + name: + type: string + label: hidden + settings: + link_to_entity: false + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + langcode: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/apps/cms/config/sync/core.entity_view_display.media.remote_video.global_search.yml b/apps/cms/config/sync/core.entity_view_display.media.remote_video.global_search.yml new file mode 100644 index 000000000..9b6b6c2fb --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_display.media.remote_video.global_search.yml @@ -0,0 +1,35 @@ +uuid: 0719287e-1b69-47e5-a510-06fcb867982a +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.global_search + - field.field.media.remote_video.field_media_oembed_video + - media.type.remote_video +id: media.remote_video.global_search +targetEntityType: media +bundle: remote_video +mode: global_search +content: + field_media_oembed_video: + type: string + label: hidden + settings: + link_to_entity: false + third_party_settings: { } + weight: 1 + region: content + name: + type: string + label: hidden + settings: + link_to_entity: false + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + langcode: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/apps/cms/config/sync/core.entity_view_display.media.video.global_search.yml b/apps/cms/config/sync/core.entity_view_display.media.video.global_search.yml new file mode 100644 index 000000000..d2bd5ec24 --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_display.media.video.global_search.yml @@ -0,0 +1,36 @@ +uuid: 9dfe81b7-833b-42c9-b468-ab9725180311 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.global_search + - field.field.media.video.field_media_video_file + - media.type.video + module: + - file +id: media.video.global_search +targetEntityType: media +bundle: video +mode: global_search +content: + field_media_video_file: + type: file_url_plain + label: hidden + settings: { } + third_party_settings: { } + weight: 1 + region: content + name: + type: string + label: hidden + settings: + link_to_entity: false + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + langcode: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/apps/cms/config/sync/core.entity_view_display.node.page.default.yml b/apps/cms/config/sync/core.entity_view_display.node.page.default.yml index 934b9c780..b85a8523f 100644 --- a/apps/cms/config/sync/core.entity_view_display.node.page.default.yml +++ b/apps/cms/config/sync/core.entity_view_display.node.page.default.yml @@ -41,3 +41,4 @@ hidden: body: true langcode: true links: true + search_api_excerpt: true diff --git a/apps/cms/config/sync/core.entity_view_display.node.page.global_search.yml b/apps/cms/config/sync/core.entity_view_display.node.page.global_search.yml new file mode 100644 index 000000000..d56a0127a --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_display.node.page.global_search.yml @@ -0,0 +1,40 @@ +uuid: f030f353-55d5-40d0-aaac-9bb42f8236c0 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.node.global_search + - field.field.node.page.body + - field.field.node.page.field_metatags + - node.type.page + module: + - gutenberg + - metatag + - user +id: node.page.global_search +targetEntityType: node +bundle: page +mode: global_search +content: + body: + type: gutenberg_text + label: hidden + settings: + format: gutenberg + content_only: true + third_party_settings: { } + weight: 1 + region: content + field_metatags: + type: metatag_empty_formatter + label: hidden + settings: { } + third_party_settings: { } + weight: 0 + region: content +hidden: + content_moderation_control: true + external_preview_link: true + langcode: true + links: true + search_api_excerpt: true diff --git a/apps/cms/config/sync/core.entity_view_display.user.user.global_search.yml b/apps/cms/config/sync/core.entity_view_display.user.user.global_search.yml new file mode 100644 index 000000000..d1d319335 --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_display.user.user.global_search.yml @@ -0,0 +1,18 @@ +uuid: 4f0dd15a-c0ad-4f09-a785-7bba608a3918 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.user.global_search + module: + - user +id: user.user.global_search +targetEntityType: user +bundle: user +mode: global_search +content: { } +hidden: + langcode: true + masquerade: true + member_for: true + search_api_excerpt: true diff --git a/apps/cms/config/sync/core.entity_view_mode.config_pages.global_search.yml b/apps/cms/config/sync/core.entity_view_mode.config_pages.global_search.yml new file mode 100644 index 000000000..550a7c835 --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_mode.config_pages.global_search.yml @@ -0,0 +1,11 @@ +uuid: cad6a443-33e0-4c9a-a4c9-621eb5ec300c +langcode: en +status: true +dependencies: + module: + - config_pages +id: config_pages.global_search +label: 'Global search' +description: 'View mode used for indexing the content in the administrative global search.' +targetEntityType: config_pages +cache: true diff --git a/apps/cms/config/sync/core.entity_view_mode.media.global_search.yml b/apps/cms/config/sync/core.entity_view_mode.media.global_search.yml new file mode 100644 index 000000000..9b784f308 --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_mode.media.global_search.yml @@ -0,0 +1,11 @@ +uuid: 8a58c23a-3a33-428f-a2ba-312a2e968833 +langcode: en +status: true +dependencies: + module: + - media +id: media.global_search +label: 'Global search' +description: 'View mode used for indexing the content in the administrative global search.' +targetEntityType: media +cache: true diff --git a/apps/cms/config/sync/core.entity_view_mode.node.global_search.yml b/apps/cms/config/sync/core.entity_view_mode.node.global_search.yml new file mode 100644 index 000000000..a71429643 --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_mode.node.global_search.yml @@ -0,0 +1,11 @@ +uuid: 49d32b79-bacb-4a0f-a8d5-ed92e6e52682 +langcode: en +status: true +dependencies: + module: + - node +id: node.global_search +label: 'Global search' +description: 'View mode used for indexing the content in the administrative global search.' +targetEntityType: node +cache: true diff --git a/apps/cms/config/sync/core.entity_view_mode.user.global_search.yml b/apps/cms/config/sync/core.entity_view_mode.user.global_search.yml new file mode 100644 index 000000000..a3ac19a33 --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_mode.user.global_search.yml @@ -0,0 +1,11 @@ +uuid: 7a3527a5-2ee0-4805-994f-75cbfdb55f09 +langcode: en +status: true +dependencies: + module: + - user +id: user.global_search +label: 'Global search' +description: 'View mode used for indexing the content in the administrative global search.' +targetEntityType: user +cache: true diff --git a/apps/cms/config/sync/core.extension.yml b/apps/cms/config/sync/core.extension.yml index 853fe94a7..d70954287 100644 --- a/apps/cms/config/sync/core.extension.yml +++ b/apps/cms/config/sync/core.extension.yml @@ -64,6 +64,9 @@ module: replicate_ui: 0 reroute_email: 0 role_delegation: 0 + search_api: 0 + search_api_db: 0 + search_api_global: 0 serialization: 0 shortcut: 0 silverback_autosave: 0 diff --git a/apps/cms/config/sync/search_api.index.global_search.yml b/apps/cms/config/sync/search_api.index.global_search.yml new file mode 100644 index 000000000..68aeccd97 --- /dev/null +++ b/apps/cms/config/sync/search_api.index.global_search.yml @@ -0,0 +1,321 @@ +uuid: 1766ffc9-eb9e-40b8-adb6-3ebbf8013c78 +langcode: en +status: true +dependencies: + config: + - field.storage.media.field_media_image + - field.storage.media.field_media_video_file + - field.storage.media.field_media_oembed_video + - search_api.server.database + - core.entity_view_mode.config_pages.global_search + - core.entity_view_mode.media.global_search + - core.entity_view_mode.node.global_search + - core.entity_view_mode.user.global_search + module: + - menu_link_content + - user + - search_api + - config_pages + - media + - node + - taxonomy + - webform +id: global_search +name: 'Global search' +description: '' +read_only: false +field_settings: + alt: + label: 'Image » Alternative text' + datasource_id: 'entity:media' + property_path: 'field_media_image:alt' + type: text + dependencies: + config: + - field.storage.media.field_media_image + bundle_menu_link: + label: 'Custom menu link bundle' + datasource_id: 'entity:menu_link_content' + property_path: bundle + type: text + dependencies: + module: + - menu_link_content + description: + label: 'Video file » Description' + datasource_id: 'entity:media' + property_path: 'field_media_video_file:description' + type: text + dependencies: + config: + - field.storage.media.field_media_video_file + description_menu_link: + label: Description + datasource_id: 'entity:menu_link_content' + property_path: description + type: text + dependencies: + module: + - menu_link_content + field_media_oembed_video: + label: 'Remote video URL' + datasource_id: 'entity:media' + property_path: field_media_oembed_video + type: text + dependencies: + config: + - field.storage.media.field_media_oembed_video + mail: + label: Email + datasource_id: 'entity:user' + property_path: mail + type: text + dependencies: + module: + - user + menu_name: + label: 'Menu name' + datasource_id: 'entity:menu_link_content' + property_path: menu_name + type: text + dependencies: + module: + - menu_link_content + rendered_item: + label: 'Rendered HTML output' + property_path: rendered_item + type: text + configuration: + roles: + - editor + view_mode: + 'entity:config_pages': + website_settings: global_search + 'entity:media': + document: global_search + image: global_search + remote_video: global_search + video: global_search + 'entity:menu_link_content': + menu_link_content: '' + 'entity:node': + page: global_search + 'entity:taxonomy_term': + taxonomy_term: '' + 'entity:user': + user: global_search + 'entity:webform_submission': + contact: '' + inquiry: '' + styling: '' + title: + label: 'Image » Title' + datasource_id: 'entity:media' + property_path: 'field_media_image:title' + type: text + dependencies: + config: + - field.storage.media.field_media_image + title_menu_link: + label: 'Menu link title' + datasource_id: 'entity:menu_link_content' + property_path: title + type: text + dependencies: + module: + - menu_link_content +datasource_settings: + 'entity:config_pages': + bundles: + default: true + selected: { } + 'entity:media': + bundles: + default: true + selected: { } + languages: + default: true + selected: { } + 'entity:menu_link_content': + bundles: + default: true + selected: { } + languages: + default: true + selected: { } + 'entity:node': + bundles: + default: true + selected: { } + languages: + default: true + selected: { } + 'entity:taxonomy_term': + bundles: + default: true + selected: { } + languages: + default: true + selected: { } + 'entity:user': + languages: + default: true + selected: { } + 'entity:webform_submission': + bundles: + default: true + selected: { } +processor_settings: + add_url: { } + aggregated_field: { } + custom_value: { } + entity_type: { } + highlight: + weights: + postprocess_query: 0 + prefix: '' + suffix: '' + excerpt: true + excerpt_always: true + excerpt_length: 256 + exclude_fields: { } + highlight: always + highlight_partial: true + html_filter: + weights: + preprocess_index: -15 + preprocess_query: -15 + all_fields: true + fields: + - alt + - bundle_menu_link + - description + - description_menu_link + - field_media_oembed_video + - mail + - menu_name + - rendered_item + - title + - title_menu_link + title: true + alt: true + tags: + b: 2 + h1: 5 + h2: 3 + h3: 2 + strong: 2 + ignorecase: + weights: + preprocess_index: -20 + preprocess_query: -20 + all_fields: true + fields: + - alt + - bundle_menu_link + - description + - description_menu_link + - field_media_oembed_video + - mail + - menu_name + - rendered_item + - title + - title_menu_link + language_with_fallback: { } + rendered_item: { } + stopwords: + weights: + preprocess_index: -5 + preprocess_query: -2 + all_fields: true + fields: + - alt + - bundle_menu_link + - description + - description_menu_link + - field_media_oembed_video + - mail + - menu_name + - rendered_item + - title + - title_menu_link + stopwords: + - a + - an + - and + - are + - as + - at + - be + - but + - by + - for + - if + - in + - into + - is + - it + - 'no' + - not + - of + - 'on' + - or + - s + - such + - t + - that + - the + - their + - then + - there + - these + - they + - this + - to + - was + - will + - with + tokenizer: + weights: + preprocess_index: -6 + preprocess_query: -6 + all_fields: true + fields: + - alt + - bundle_menu_link + - description + - description_menu_link + - field_media_oembed_video + - mail + - menu_name + - rendered_item + - title + - title_menu_link + spaces: '' + ignored: ._- + overlap_cjk: 1 + minimum_word_size: '3' + transliteration: + weights: + preprocess_index: -20 + preprocess_query: -20 + all_fields: true + fields: + - alt + - bundle_menu_link + - description + - description_menu_link + - field_media_oembed_video + - mail + - menu_name + - rendered_item + - title + - title_menu_link +tracker_settings: + default: + indexing_order: fifo +options: + cron_limit: 50 + index_directly: true + track_changes_in_references: true +server: database diff --git a/apps/cms/config/sync/search_api.server.database.yml b/apps/cms/config/sync/search_api.server.database.yml new file mode 100644 index 000000000..b45105dde --- /dev/null +++ b/apps/cms/config/sync/search_api.server.database.yml @@ -0,0 +1,15 @@ +uuid: a9d5de42-f413-4908-8363-1cb432ac234e +langcode: en +status: true +dependencies: + module: + - search_api_db +id: database +name: Database +description: '' +backend: search_api_db +backend_config: + database: 'default:default' + min_chars: 1 + matching: partial + phrase: bigram diff --git a/apps/cms/config/sync/search_api.settings.yml b/apps/cms/config/sync/search_api.settings.yml new file mode 100644 index 000000000..510a3e528 --- /dev/null +++ b/apps/cms/config/sync/search_api.settings.yml @@ -0,0 +1,28 @@ +_core: + default_config_hash: b2zIRm9Jv3SB60NYdZkZHxH8-KdEa-Xa48-4NsIi4lg +default_cron_limit: 50 +cron_worker_runtime: 15 +default_tracker: default +tracking_page_size: 100 +boost_factors: + - 0.0 + - 0.1 + - 0.2 + - 0.3 + - 0.5 + - 0.6 + - 0.7 + - 0.8 + - 0.9 + - 1.0 + - 1.1 + - 1.2 + - 1.3 + - 1.4 + - 1.5 + - 2.0 + - 3.0 + - 5.0 + - 8.0 + - 13.0 + - 21.0 diff --git a/apps/cms/config/sync/search_api_db.settings.yml b/apps/cms/config/sync/search_api_db.settings.yml new file mode 100644 index 000000000..32ffc9406 --- /dev/null +++ b/apps/cms/config/sync/search_api_db.settings.yml @@ -0,0 +1,3 @@ +_core: + default_config_hash: fEmluJPpUL5dVqkWi0Fw89OlZYLhjQqyZIl6HWCDE1s +autocomplete_max_occurrences: 0.9 diff --git a/apps/cms/config/sync/views.view.global_search.yml b/apps/cms/config/sync/views.view.global_search.yml new file mode 100644 index 000000000..11a75cabe --- /dev/null +++ b/apps/cms/config/sync/views.view.global_search.yml @@ -0,0 +1,263 @@ +uuid: 71cd78a3-c1d1-47da-a2cb-a462d1112d98 +langcode: en +status: true +dependencies: + config: + - search_api.index.global_search + module: + - search_api + - user +id: global_search +label: 'Global search' +module: views +description: '' +tag: '' +base_table: search_api_index_global_search +base_field: search_api_id +display: + default: + id: default + display_title: Default + display_plugin: default + position: 0 + display_options: + title: 'Global search' + fields: + search_api_id: + id: search_api_id + table: search_api_index_global_search + field: search_api_id + relationship: none + group_type: group + admin_label: '' + plugin_id: standard + label: '' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + search_api_excerpt: + id: search_api_excerpt + table: search_api_index_global_search + field: search_api_excerpt + relationship: none + group_type: group + admin_label: '' + plugin_id: search_api + label: '' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + link_to_item: true + use_highlighting: true + multi_type: separator + multi_separator: ', ' + pager: + type: mini + options: + offset: 0 + items_per_page: 10 + total_pages: null + id: 0 + tags: + next: ›› + previous: ‹‹ + expose: + items_per_page: false + items_per_page_label: 'Items per page' + items_per_page_options: '5, 10, 25, 50' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + exposed_form: + type: basic + options: + submit_button: Apply + reset_button: false + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + access: + type: perm + options: + perm: 'access administration pages' + cache: + type: search_api_none + options: { } + empty: { } + sorts: { } + arguments: { } + filters: + search_api_fulltext: + id: search_api_fulltext + table: search_api_index_global_search + field: search_api_fulltext + relationship: none + group_type: group + admin_label: '' + plugin_id: search_api_fulltext + operator: or + value: '' + group: 1 + exposed: true + expose: + operator_id: search_api_fulltext_op + label: Search + description: '' + use_operator: false + operator: search_api_fulltext_op + operator_limit_selection: false + operator_list: { } + identifier: search_api_fulltext + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + super_admin: '0' + administrator: '0' + gatsby_build: '0' + editor: '0' + expose_fields: false + placeholder: '' + searched_fields_id: search_api_fulltext_searched_fields + value_maxlength: 128 + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + parse_mode: terms + min_length: null + fields: { } + style: + type: default + row: + type: fields + query: + type: search_api_query + options: + bypass_access: false + skip_access: false + preserve_facet_query_args: false + query_tags: { } + relationships: { } + header: { } + footer: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_interface' + - url + - url.query_args + - user + - 'user.node_grants:view' + - user.permissions + tags: + - 'config:search_api.index.global_search' + - 'search_api_list:global_search' + page_1: + id: page_1 + display_title: Page + display_plugin: page + position: 1 + display_options: + display_extenders: { } + path: admin/search + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_interface' + - url + - url.query_args + - user + - 'user.node_grants:view' + - user.permissions + tags: + - 'config:search_api.index.global_search' + - 'search_api_list:global_search' diff --git a/apps/cms/package.json b/apps/cms/package.json index d8d6137a0..73f8179a7 100644 --- a/apps/cms/package.json +++ b/apps/cms/package.json @@ -35,6 +35,7 @@ "@custom/schema": "workspace:*", "@custom/test_content": "workspace:*", "@custom/ui": "workspace:*", - "@custom/preview": "workspace:*" + "@custom/preview": "workspace:*", + "@custom/search_api_global": "workspace:*" } } diff --git a/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml b/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml index 42c51a1e5..caff3c619 100644 --- a/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml +++ b/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml @@ -4,3 +4,5 @@ theme-support: dropCap: false libraries-edit: - gutenberg_blocks/edit +dynamic-blocks: + custom/hero: {} diff --git a/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--hero.html.twig b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--hero.html.twig new file mode 100644 index 000000000..aed202cae --- /dev/null +++ b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--hero.html.twig @@ -0,0 +1,12 @@ +{% if block_attributes.headline %} +

{{ block_attributes.headline }}

+{% endif %} +{% if block_attributes.lead %} +

{{ block_attributes.lead }}

+{% endif %} +{% if block_attributes.ctaUrl %} +

{{ block_attributes.ctaUrl }}

+{% endif %} +{% if block_attributes.ctaText %} +

{{ block_attributes.ctaText }}

+{% endif %} diff --git a/packages/drupal/search_api_global/package.json b/packages/drupal/search_api_global/package.json new file mode 100644 index 000000000..dadee9231 --- /dev/null +++ b/packages/drupal/search_api_global/package.json @@ -0,0 +1,5 @@ +{ + "name": "@custom/search_api_global", + "version": "1.0.0", + "private": true +} diff --git a/packages/drupal/search_api_global/search_api_global.info.yml b/packages/drupal/search_api_global/search_api_global.info.yml new file mode 100644 index 000000000..736deccbb --- /dev/null +++ b/packages/drupal/search_api_global/search_api_global.info.yml @@ -0,0 +1,6 @@ +name: Search API Global +package: Custom +type: module +core_version_requirement: ^10.0 || ^11.0 +dependencies: + - search_api:search_api diff --git a/packages/drupal/search_api_global/search_api_global.module b/packages/drupal/search_api_global/search_api_global.module new file mode 100644 index 000000000..b3d9bbc7f --- /dev/null +++ b/packages/drupal/search_api_global/search_api_global.module @@ -0,0 +1 @@ + 14' + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) '@graphql-codegen/visitor-plugin-common': 5.2.0(graphql@16.8.1) @@ -938,7 +943,7 @@ packages: resolution: {integrity: sha512-PsXbfV/R1Xu26ToEZFrnJKzC6MlTH2MLV4XbyX9nT4CO9Y+SHbDJu9qUeXYENbUYED1TyRv6BsCw+NEmRBg39A==} requiresBuild: true peerDependencies: - eslint: ^8.36.0 + eslint: '7' dependencies: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.4.4) '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.3.3) @@ -1003,7 +1008,7 @@ packages: /@amazeelabs/gatsby-source-silverback@1.14.0(@types/node@18.0.0)(gatsby-plugin-sharp@5.13.1)(gatsby@5.13.1)(typescript@5.3.3): resolution: {integrity: sha512-tIL4lPx7mQDBH5XiouXgTEhOIXF/oKDss0OYbHJEbxXVofv4IDifZcZZO1Hw9oWmrTSaJhYoC2Bdm+2kdvxf6g==} peerDependencies: - gatsby-plugin-sharp: ^5.13.1 + gatsby-plugin-sharp: 5.13.1 dependencies: '@amazeelabs/graphql-directives': 1.3.2 fetch-retry: 5.0.6 @@ -1028,7 +1033,7 @@ packages: /@amazeelabs/gatsby-source-silverback@1.14.0(@types/node@18.0.0)(gatsby-plugin-sharp@5.13.1)(gatsby@5.13.3)(typescript@5.3.3): resolution: {integrity: sha512-tIL4lPx7mQDBH5XiouXgTEhOIXF/oKDss0OYbHJEbxXVofv4IDifZcZZO1Hw9oWmrTSaJhYoC2Bdm+2kdvxf6g==} peerDependencies: - gatsby-plugin-sharp: ^5.13.1 + gatsby-plugin-sharp: 5.13.1 dependencies: '@amazeelabs/graphql-directives': 1.3.2 fetch-retry: 5.0.6 @@ -1053,7 +1058,7 @@ packages: /@amazeelabs/gatsby-source-silverback@1.14.0(@types/node@18.15.13)(gatsby-plugin-sharp@5.13.1)(gatsby@5.13.1)(typescript@4.9.5): resolution: {integrity: sha512-tIL4lPx7mQDBH5XiouXgTEhOIXF/oKDss0OYbHJEbxXVofv4IDifZcZZO1Hw9oWmrTSaJhYoC2Bdm+2kdvxf6g==} peerDependencies: - gatsby-plugin-sharp: ^5.13.1 + gatsby-plugin-sharp: 5.13.1 dependencies: '@amazeelabs/graphql-directives': 1.3.2 fetch-retry: 5.0.6 @@ -1078,7 +1083,7 @@ packages: /@amazeelabs/gatsby-source-silverback@1.14.0(@types/node@18.15.13)(gatsby-plugin-sharp@5.13.1)(gatsby@5.13.3)(typescript@5.4.4): resolution: {integrity: sha512-tIL4lPx7mQDBH5XiouXgTEhOIXF/oKDss0OYbHJEbxXVofv4IDifZcZZO1Hw9oWmrTSaJhYoC2Bdm+2kdvxf6g==} peerDependencies: - gatsby-plugin-sharp: ^5.13.1 + gatsby-plugin-sharp: 5.13.1 dependencies: '@amazeelabs/graphql-directives': 1.3.2 fetch-retry: 5.0.6 @@ -1299,7 +1304,7 @@ packages: resolution: {integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==} hasBin: true peerDependencies: - graphql: '*' + graphql: 16.8.1 dependencies: '@babel/core': 7.24.4 '@babel/generator': 7.24.4 @@ -1375,7 +1380,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 + eslint: '7' dependencies: '@babel/core': 7.24.4 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 @@ -3933,7 +3938,7 @@ packages: resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + eslint: '7' dependencies: eslint: 7.0.0 eslint-visitor-keys: 3.4.3 @@ -3943,7 +3948,7 @@ packages: resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + eslint: '7' dependencies: eslint: 7.32.0 eslint-visitor-keys: 3.4.3 @@ -4234,7 +4239,7 @@ packages: /@graphql-codegen/add@3.2.3(graphql@16.8.1): resolution: {integrity: sha512-sQOnWpMko4JLeykwyjFTxnhqjd/3NOG2OyMuvK76Wnnwh8DRrNf2VEs2kmSvLl7MndMlOj7Kh5U154dVcvhmKQ==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 3.1.2(graphql@16.8.1) graphql: 16.8.1 @@ -4245,7 +4250,7 @@ packages: hasBin: true peerDependencies: '@parcel/watcher': ^2.1.0 - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 peerDependenciesMeta: '@parcel/watcher': optional: true @@ -4299,7 +4304,7 @@ packages: /@graphql-codegen/core@2.6.8(graphql@16.8.1): resolution: {integrity: sha512-JKllNIipPrheRgl+/Hm/xuWMw9++xNQ12XJR/OHHgFopOg4zmN3TdlRSyYcv/K90hCFkkIwhlHFUQTfKrm8rxQ==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 3.1.2(graphql@16.8.1) '@graphql-tools/schema': 9.0.19(graphql@16.8.1) @@ -4310,7 +4315,7 @@ packages: /@graphql-codegen/core@4.0.2(graphql@16.8.1): resolution: {integrity: sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) '@graphql-tools/schema': 10.0.3(graphql@16.8.1) @@ -4322,7 +4327,7 @@ packages: /@graphql-codegen/plugin-helpers@2.7.2(graphql@16.8.1): resolution: {integrity: sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 8.13.1(graphql@16.8.1) change-case-all: 1.0.14 @@ -4335,7 +4340,7 @@ packages: /@graphql-codegen/plugin-helpers@3.1.2(graphql@16.8.1): resolution: {integrity: sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) change-case-all: 1.0.15 @@ -4348,7 +4353,7 @@ packages: /@graphql-codegen/plugin-helpers@5.0.3(graphql@16.8.1): resolution: {integrity: sha512-yZ1rpULIWKBZqCDlvGIJRSyj1B2utkEdGmXZTBT/GVayP4hyRYlkd36AJV/LfEsVD8dnsKL5rLz2VTYmRNlJ5Q==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 10.1.2(graphql@16.8.1) change-case-all: 1.0.15 @@ -4361,7 +4366,7 @@ packages: /@graphql-codegen/plugin-helpers@5.0.4(graphql@16.8.1): resolution: {integrity: sha512-MOIuHFNWUnFnqVmiXtrI+4UziMTYrcquljaI5f/T/Bc7oO7sXcfkAvgkNWEEi9xWreYwvuer3VHCuPI/lAFWbw==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 10.1.2(graphql@16.8.1) change-case-all: 1.0.15 @@ -4374,7 +4379,7 @@ packages: /@graphql-codegen/schema-ast@2.6.1(graphql@16.8.1): resolution: {integrity: sha512-5TNW3b1IHJjCh07D2yQNGDQzUpUl2AD+GVe1Dzjqyx/d2Fn0TPMxLsHsKPS4Plg4saO8FK/QO70wLsP7fdbQ1w==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 3.1.2(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) @@ -4384,7 +4389,7 @@ packages: /@graphql-codegen/schema-ast@4.0.0(graphql@16.8.1): resolution: {integrity: sha512-WIzkJFa9Gz28FITAPILbt+7A8+yzOyd1NxgwFh7ie+EmO9a5zQK6UQ3U/BviirguXCYnn+AR4dXsoDrSrtRA1g==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) '@graphql-tools/utils': 10.1.2(graphql@16.8.1) @@ -4395,7 +4400,7 @@ packages: /@graphql-codegen/typescript-operations@2.5.13(graphql@16.8.1): resolution: {integrity: sha512-3vfR6Rx6iZU0JRt29GBkFlrSNTM6t+MSLF86ChvL4d/Jfo/JYAGuB3zNzPhirHYzJPCvLOAx2gy9ID1ltrpYiw==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 3.1.2(graphql@16.8.1) '@graphql-codegen/typescript': 2.8.8(graphql@16.8.1) @@ -4410,7 +4415,7 @@ packages: /@graphql-codegen/typescript-operations@4.0.1(graphql@16.8.1): resolution: {integrity: sha512-GpUWWdBVUec/Zqo23aFLBMrXYxN2irypHqDcKjN78JclDPdreasAEPcIpMfqf4MClvpmvDLy4ql+djVAwmkjbw==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) '@graphql-codegen/typescript': 4.0.1(graphql@16.8.1) @@ -4426,7 +4431,7 @@ packages: /@graphql-codegen/typescript@2.8.8(graphql@16.8.1): resolution: {integrity: sha512-A0oUi3Oy6+DormOlrTC4orxT9OBZkIglhbJBcDmk34jAKKUgesukXRd4yOhmTrnbchpXz2T8IAOFB3FWIaK4Rw==} peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 3.1.2(graphql@16.8.1) '@graphql-codegen/schema-ast': 2.6.1(graphql@16.8.1) @@ -4441,7 +4446,7 @@ packages: /@graphql-codegen/typescript@4.0.1(graphql@16.8.1): resolution: {integrity: sha512-3YziQ21dCVdnHb+Us1uDb3pA6eG5Chjv0uTK+bt9dXeMlwYBU8MbtzvQTo4qvzWVC1AxSOKj0rgfNu1xCXqJyA==} peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) '@graphql-codegen/schema-ast': 4.0.0(graphql@16.8.1) @@ -4457,7 +4462,7 @@ packages: /@graphql-codegen/visitor-plugin-common@2.13.8(graphql@16.8.1): resolution: {integrity: sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 3.1.2(graphql@16.8.1) '@graphql-tools/optimize': 1.4.0(graphql@16.8.1) @@ -4477,7 +4482,7 @@ packages: /@graphql-codegen/visitor-plugin-common@4.0.1(graphql@16.8.1): resolution: {integrity: sha512-Bi/1z0nHg4QMsAqAJhds+ForyLtk7A3HQOlkrZNm3xEkY7lcBzPtiOTLBtvziwopBsXUxqeSwVjOOFPLS5Yw1Q==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) '@graphql-tools/optimize': 2.0.0(graphql@16.8.1) @@ -4498,7 +4503,7 @@ packages: /@graphql-codegen/visitor-plugin-common@5.2.0(graphql@16.8.1): resolution: {integrity: sha512-0p8AwmARaZCAlDFfQu6Sz+JV6SjbPDx3y2nNM7WAAf0au7Im/GpJ7Ke3xaIYBc1b2rTZ+DqSTJI/zomENGD9NA==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.8.1) '@graphql-tools/optimize': 2.0.0(graphql@16.8.1) @@ -4519,7 +4524,7 @@ packages: resolution: {integrity: sha512-NaPeVjtrfbPXcl+MLQCJLWtqe2/E4bbAqcauEOQ+3sizw1Fc2CNmhHRF8a6W4D0ekvTRRXAMptXYgA2uConbrA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/utils': 10.1.2(graphql@16.8.1) @@ -4534,7 +4539,7 @@ packages: resolution: {integrity: sha512-kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 10.1.2(graphql@16.8.1) dataloader: 2.2.2 @@ -4545,7 +4550,7 @@ packages: /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.24.4)(graphql@16.8.1): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.4)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) @@ -4561,7 +4566,7 @@ packages: resolution: {integrity: sha512-q4KN25EPSUztc8rA8YUU3ufh721Yk12xXDbtUA+YstczWS7a1RJlghYMFEfR1HsHSYbF7cUqkbnTKSGM3o52bQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/graphql-tag-pluck': 8.3.0(graphql@16.8.1) '@graphql-tools/utils': 10.1.2(graphql@16.8.1) @@ -4577,7 +4582,7 @@ packages: resolution: {integrity: sha512-WswZRbQZMh/ebhc8zSomK9DIh6Pd5KbuiMsyiKkKz37TWTrlCOe+4C/fyrBFez30ksq6oFyCeSKMwfrCbeGo0Q==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/batch-execute': 9.0.4(graphql@16.8.1) '@graphql-tools/executor': 1.2.6(graphql@16.8.1) @@ -4591,7 +4596,7 @@ packages: resolution: {integrity: sha512-+9ZK0rychTH1LUv4iZqJ4ESbmULJMTsv3XlFooPUngpxZkk00q6LqHKJRrsLErmQrVaC7cwQCaRBJa0teK17Lg==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 10.1.2(graphql@16.8.1) '@types/ws': 8.5.10 @@ -4608,7 +4613,7 @@ packages: resolution: {integrity: sha512-+NXaZd2MWbbrWHqU4EhXcrDbogeiCDmEbrAN+rMn4Nu2okDjn2MTFDbTIab87oEubQCH4Te1wDkWPKrzXup7+Q==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 10.1.2(graphql@16.8.1) '@repeaterjs/repeater': 3.0.5 @@ -4625,7 +4630,7 @@ packages: resolution: {integrity: sha512-+NXaZd2MWbbrWHqU4EhXcrDbogeiCDmEbrAN+rMn4Nu2okDjn2MTFDbTIab87oEubQCH4Te1wDkWPKrzXup7+Q==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 10.1.2(graphql@16.8.1) '@repeaterjs/repeater': 3.0.5 @@ -4643,7 +4648,7 @@ packages: resolution: {integrity: sha512-lDSxz9VyyquOrvSuCCnld3256Hmd+QI2lkmkEv7d4mdzkxkK4ddAWW1geQiWrQvWmdsmcnGGlZ7gDGbhEExwqg==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 10.1.2(graphql@16.8.1) '@types/ws': 8.5.10 @@ -4659,7 +4664,7 @@ packages: resolution: {integrity: sha512-+1kjfqzM5T2R+dCw7F4vdJ3CqG+fY/LYJyhNiWEFtq0ToLwYzR/KKyD8YuzTirEjSxWTVlcBh7endkx5n5F6ew==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 10.1.2(graphql@16.8.1) '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) @@ -4672,7 +4677,7 @@ packages: resolution: {integrity: sha512-P97/1mhruDiA6D5WUmx3n/aeGPLWj2+4dpzDOxFGGU+z9NcI/JdygMkeFpGZNHeJfw+kHfxgPcMPnxHcyhAoVA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/graphql-tag-pluck': 8.3.0(graphql@16.8.1) '@graphql-tools/utils': 10.1.2(graphql@16.8.1) @@ -4689,7 +4694,7 @@ packages: resolution: {integrity: sha512-W4dFLQJ5GtKGltvh/u1apWRFKBQOsDzFxO9cJkOYZj1VzHCpRF43uLST4VbCfWve+AwBqOuKr7YgkHoxpRMkcg==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/executor-http': 1.0.9(@types/node@18.0.0)(graphql@16.8.1) @@ -4709,7 +4714,7 @@ packages: resolution: {integrity: sha512-7gswMqWBabTSmqbaNyWSmRRpStWlcCkBc73E6NZNlh4YNuiyKOwbvSkOUYFOqFMfEL+cFsXgAvr87Vz4XrYSbA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/import': 7.0.1(graphql@16.8.1) '@graphql-tools/utils': 10.1.2(graphql@16.8.1) @@ -4721,7 +4726,7 @@ packages: /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.24.4)(graphql@16.8.1): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@babel/parser': 7.24.4 '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.4) @@ -4738,7 +4743,7 @@ packages: resolution: {integrity: sha512-gNqukC+s7iHC7vQZmx1SEJQmLnOguBq+aqE2zV2+o1hxkExvKqyFli1SY/9gmukFIKpKutCIj+8yLOM+jARutw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@babel/core': 7.24.4 '@babel/parser': 7.24.4 @@ -4756,7 +4761,7 @@ packages: resolution: {integrity: sha512-935uAjAS8UAeXThqHfYVr4HEAp6nHJ2sximZKO1RzUTq5WoALMAhhGARl0+ecm6X+cqNUwIChJbjtaa6P/ML0w==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 10.1.2(graphql@16.8.1) graphql: 16.8.1 @@ -4767,7 +4772,7 @@ packages: resolution: {integrity: sha512-lAy2VqxDAHjVyqeJonCP6TUemrpYdDuKt25a10X6zY2Yn3iFYGnuIDQ64cv3ytyGY6KPyPB+Kp+ZfOkNDG3FQA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 10.1.2(graphql@16.8.1) globby: 11.1.0 @@ -4778,7 +4783,7 @@ packages: /@graphql-tools/load@7.8.14(graphql@16.8.1): resolution: {integrity: sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/schema': 9.0.19(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) @@ -4790,7 +4795,7 @@ packages: resolution: {integrity: sha512-S+E/cmyVmJ3CuCNfDuNF2EyovTwdWfQScXv/2gmvJOti2rGD8jTt9GYVzXaxhblLivQR9sBUCNZu/w7j7aXUCA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/schema': 10.0.3(graphql@16.8.1) '@graphql-tools/utils': 10.1.2(graphql@16.8.1) @@ -4801,7 +4806,7 @@ packages: /@graphql-tools/merge@8.4.2(graphql@16.8.1): resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 @@ -4811,7 +4816,7 @@ packages: resolution: {integrity: sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/utils': 10.1.2(graphql@16.8.1) graphql: 16.8.1 @@ -4820,7 +4825,7 @@ packages: /@graphql-tools/optimize@1.4.0(graphql@16.8.1): resolution: {integrity: sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: graphql: 16.8.1 tslib: 2.6.2 @@ -4829,7 +4834,7 @@ packages: resolution: {integrity: sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: graphql: 16.8.1 tslib: 2.6.2 @@ -4838,7 +4843,7 @@ packages: resolution: {integrity: sha512-oZhxnMr3Jw2WAW1h9FIhF27xWzIB7bXWM8olz4W12oII4NiZl7VRkFw9IT50zME2Bqi9LGh9pkmMWkjvbOpl+Q==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/url-loader': 8.0.2(@types/node@18.0.0)(graphql@16.8.1) '@graphql-tools/utils': 10.1.2(graphql@16.8.1) @@ -4870,7 +4875,7 @@ packages: /@graphql-tools/relay-operation-optimizer@6.5.18(graphql@16.8.1): resolution: {integrity: sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@ardatan/relay-compiler': 12.0.0(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) @@ -4884,7 +4889,7 @@ packages: resolution: {integrity: sha512-y0ZrQ/iyqWZlsS/xrJfSir3TbVYJTYmMOu4TaSz6F4FRDTQ3ie43BlKkhf04rC28pnUOS4BO9pDcAo1D30l5+A==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@ardatan/relay-compiler': 12.0.0(graphql@16.8.1) '@graphql-tools/utils': 10.1.2(graphql@16.8.1) @@ -4898,7 +4903,7 @@ packages: resolution: {integrity: sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/merge': 9.0.3(graphql@16.8.1) '@graphql-tools/utils': 10.1.2(graphql@16.8.1) @@ -4909,7 +4914,7 @@ packages: /@graphql-tools/schema@9.0.19(graphql@16.8.1): resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/merge': 8.4.2(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) @@ -4921,7 +4926,7 @@ packages: resolution: {integrity: sha512-1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 10.0.4(graphql@16.8.1) @@ -4947,7 +4952,7 @@ packages: resolution: {integrity: sha512-1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 10.0.4(graphql@16.8.1) @@ -4974,7 +4979,7 @@ packages: resolution: {integrity: sha512-fX13CYsDnX4yifIyNdiN0cVygz/muvkreWWem6BBw130+ODbRRgfiVveL0NizCEnKXkpvdeTy9Bxvo9LIKlhrw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) cross-inspect: 1.0.0 @@ -4985,7 +4990,7 @@ packages: /@graphql-tools/utils@8.13.1(graphql@16.8.1): resolution: {integrity: sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: graphql: 16.8.1 tslib: 2.6.2 @@ -4993,7 +4998,7 @@ packages: /@graphql-tools/utils@9.2.1(graphql@16.8.1): resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) graphql: 16.8.1 @@ -5003,7 +5008,7 @@ packages: resolution: {integrity: sha512-Cbr5aYjr3HkwdPvetZp1cpDWTGdD1Owgsb3z/ClzhmrboiK86EnQDxDvOJiQkDCPWE9lNBwj8Y4HfxroY0D9DQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: '@graphql-tools/delegate': 10.0.4(graphql@16.8.1) '@graphql-tools/schema': 10.0.3(graphql@16.8.1) @@ -5015,7 +5020,7 @@ packages: /@graphql-typed-document-node/core@3.2.0(graphql@16.8.1): resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.8.1 dependencies: graphql: 16.8.1 @@ -9369,7 +9374,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9396,7 +9401,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9424,7 +9429,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9452,7 +9457,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9481,7 +9486,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9510,7 +9515,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9538,7 +9543,7 @@ packages: resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9557,7 +9562,7 @@ packages: resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9576,7 +9581,7 @@ packages: resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9595,7 +9600,7 @@ packages: resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9616,7 +9621,7 @@ packages: resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9637,7 +9642,7 @@ packages: resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^8.56.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9689,7 +9694,7 @@ packages: resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: '*' + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9708,7 +9713,7 @@ packages: resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: '*' + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9728,7 +9733,7 @@ packages: resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: '*' + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9748,7 +9753,7 @@ packages: resolution: {integrity: sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9768,7 +9773,7 @@ packages: resolution: {integrity: sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9788,7 +9793,7 @@ packages: resolution: {integrity: sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^8.56.0 + eslint: '7' typescript: '*' peerDependenciesMeta: typescript: @@ -9974,7 +9979,7 @@ packages: resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: '7' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) '@types/json-schema': 7.0.15 @@ -9993,7 +9998,7 @@ packages: resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: '7' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) '@types/json-schema': 7.0.15 @@ -10013,7 +10018,7 @@ packages: resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: '7' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) '@types/json-schema': 7.0.15 @@ -10033,7 +10038,7 @@ packages: resolution: {integrity: sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@7.0.0) '@types/json-schema': 7.0.15 @@ -10052,7 +10057,7 @@ packages: resolution: {integrity: sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) '@types/json-schema': 7.0.15 @@ -10071,7 +10076,7 @@ packages: resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) '@types/json-schema': 7.0.15 @@ -10090,7 +10095,7 @@ packages: resolution: {integrity: sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^8.56.0 + eslint: '7' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@7.0.0) '@types/json-schema': 7.0.15 @@ -11402,7 +11407,7 @@ packages: /apollo-cache-inmemory@1.6.6(graphql@16.8.1): resolution: {integrity: sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A==} peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + graphql: 16.8.1 dependencies: apollo-cache: 1.3.5(graphql@16.8.1) apollo-utilities: 1.3.4(graphql@16.8.1) @@ -11414,7 +11419,7 @@ packages: /apollo-cache@1.3.5(graphql@16.8.1): resolution: {integrity: sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==} peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + graphql: 16.8.1 dependencies: apollo-utilities: 1.3.4(graphql@16.8.1) graphql: 16.8.1 @@ -11423,7 +11428,7 @@ packages: /apollo-client@2.6.10(graphql@16.8.1): resolution: {integrity: sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==} peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + graphql: 16.8.1 dependencies: '@types/zen-observable': 0.8.7 apollo-cache: 1.3.5(graphql@16.8.1) @@ -11446,7 +11451,7 @@ packages: /apollo-link-http-common@0.2.16(graphql@16.8.1): resolution: {integrity: sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg==} peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + graphql: 16.8.1 dependencies: apollo-link: 1.2.14(graphql@16.8.1) graphql: 16.8.1 @@ -11456,7 +11461,7 @@ packages: /apollo-link-http@1.5.17(graphql@16.8.1): resolution: {integrity: sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg==} peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + graphql: 16.8.1 dependencies: apollo-link: 1.2.14(graphql@16.8.1) apollo-link-http-common: 0.2.16(graphql@16.8.1) @@ -11466,7 +11471,7 @@ packages: /apollo-link@1.2.14(graphql@16.8.1): resolution: {integrity: sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==} peerDependencies: - graphql: ^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0 + graphql: 16.8.1 dependencies: apollo-utilities: 1.3.4(graphql@16.8.1) graphql: 16.8.1 @@ -11477,7 +11482,7 @@ packages: /apollo-utilities@1.3.4(graphql@16.8.1): resolution: {integrity: sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==} peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + graphql: 16.8.1 dependencies: '@wry/equality': 0.1.11 fast-json-stable-stringify: 2.1.0 @@ -11947,7 +11952,7 @@ packages: engines: {node: '>=6'} deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. peerDependencies: - eslint: '>= 4.12.1' + eslint: '7' dependencies: '@babel/code-frame': 7.24.2 '@babel/parser': 7.24.4 @@ -16078,7 +16083,7 @@ packages: hasBin: true requiresBuild: true peerDependencies: - eslint: '>=7.0.0' + eslint: '7' dependencies: eslint: 7.32.0 dev: false @@ -16088,7 +16093,7 @@ packages: resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: - eslint: '>=7.0.0' + eslint: '7' dependencies: eslint: 7.0.0 dev: true @@ -16100,7 +16105,7 @@ packages: '@typescript-eslint/eslint-plugin': ^4.0.0 '@typescript-eslint/parser': ^4.0.0 babel-eslint: ^10.0.0 - eslint: ^7.5.0 + eslint: '7' eslint-plugin-flowtype: ^5.2.0 eslint-plugin-import: ^2.22.0 eslint-plugin-jest: ^24.0.0 @@ -16136,7 +16141,7 @@ packages: '@typescript-eslint/eslint-plugin': ^4.0.0 '@typescript-eslint/parser': ^4.0.0 babel-eslint: ^10.0.0 - eslint: ^7.5.0 + eslint: '7' eslint-plugin-flowtype: ^5.2.0 eslint-plugin-import: ^2.22.0 eslint-plugin-jest: ^24.0.0 @@ -16173,7 +16178,7 @@ packages: '@typescript-eslint/eslint-plugin': ^4.0.0 '@typescript-eslint/parser': ^4.0.0 babel-eslint: ^10.0.0 - eslint: ^7.5.0 + eslint: '7' eslint-plugin-flowtype: ^5.2.0 eslint-plugin-import: ^2.22.0 eslint-plugin-jest: ^24.0.0 @@ -16302,7 +16307,7 @@ packages: resolution: {integrity: sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: - eslint: ^7.1.0 + eslint: '7' dependencies: eslint: 7.32.0 lodash: 4.17.21 @@ -16311,7 +16316,7 @@ packages: /eslint-plugin-formatjs@4.11.3(eslint@7.32.0): resolution: {integrity: sha512-VGmDGbRZexN+rpweaXBoXkZ40mu96zk1fi1A+iVDAhxIyQr4QLZyhHWwMM1JXgGxgGCB90/buxkRl95nzSn10w==} peerDependencies: - eslint: 7 || 8 + eslint: '7' dependencies: '@formatjs/icu-messageformat-parser': 2.7.3 '@formatjs/ts-transformer': 3.13.9 @@ -16335,7 +16340,7 @@ packages: engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: '7' peerDependenciesMeta: '@typescript-eslint/parser': optional: true @@ -16369,7 +16374,7 @@ packages: engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: '7' peerDependenciesMeta: '@typescript-eslint/parser': optional: true @@ -16404,7 +16409,7 @@ packages: engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: '7' peerDependenciesMeta: '@typescript-eslint/parser': optional: true @@ -16438,7 +16443,7 @@ packages: resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: '7' dependencies: '@babel/runtime': 7.24.4 aria-query: 5.3.0 @@ -16466,7 +16471,7 @@ packages: resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' dependencies: eslint: 7.0.0 dev: true @@ -16475,7 +16480,7 @@ packages: resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' dependencies: eslint: 7.32.0 dev: false @@ -16485,7 +16490,7 @@ packages: resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint: '7' dependencies: eslint: 7.0.0 dev: true @@ -16494,14 +16499,14 @@ packages: resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint: '7' dependencies: eslint: 7.32.0 /eslint-plugin-react-refresh@0.4.6(eslint@7.0.0): resolution: {integrity: sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==} peerDependencies: - eslint: '>=7' + eslint: '7' dependencies: eslint: 7.0.0 dev: true @@ -16510,7 +16515,7 @@ packages: resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: '7' dependencies: array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 @@ -16535,7 +16540,7 @@ packages: resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: '7' dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -16560,7 +16565,7 @@ packages: /eslint-plugin-simple-import-sort@10.0.0(eslint@7.0.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: - eslint: '>=5.0.0' + eslint: '7' dependencies: eslint: 7.0.0 dev: true @@ -16568,7 +16573,7 @@ packages: /eslint-plugin-simple-import-sort@10.0.0(eslint@7.32.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: - eslint: '>=5.0.0' + eslint: '7' dependencies: eslint: 7.32.0 dev: false @@ -16578,7 +16583,7 @@ packages: resolution: {integrity: sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==} engines: {node: '>= 18'} peerDependencies: - eslint: '>=6' + eslint: '7' dependencies: '@storybook/csf': 0.0.1 '@typescript-eslint/utils': 5.62.0(eslint@7.32.0)(typescript@5.3.3) @@ -16643,7 +16648,7 @@ packages: resolution: {integrity: sha512-bNaVVUvU4srexGhVcayn/F4pJAz19CWBkKoMx7aSQ4wtTbZQCnG5O9LHCE42mM+JSKOUp7n6vd5CIwzj7lOVGA==} engines: {node: '>= 10.13.0'} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '7' webpack: ^4.0.0 || ^5.0.0 dependencies: '@types/eslint': 7.29.0 @@ -17704,7 +17709,7 @@ packages: resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: - eslint: '>= 6' + eslint: '7' typescript: '>= 2.7' vue-template-compiler: '*' webpack: '>= 4' @@ -17735,7 +17740,7 @@ packages: resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: - eslint: '>= 6' + eslint: '7' typescript: '>= 2.7' vue-template-compiler: '*' webpack: '>= 4' @@ -17767,7 +17772,7 @@ packages: resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: - eslint: '>= 6' + eslint: '7' typescript: '>= 2.7' vue-template-compiler: '*' webpack: '>= 4' @@ -18389,7 +18394,7 @@ packages: engines: {node: '>=18.0.0'} peerDependencies: gatsby: ^5.0.0-next - graphql: ^16.0.0 + graphql: 16.8.1 dependencies: '@babel/runtime': 7.24.4 fastq: 1.17.1 @@ -18408,7 +18413,7 @@ packages: engines: {node: '>=18.0.0'} peerDependencies: gatsby: ^5.0.0-next - graphql: ^16.0.0 + graphql: 16.8.1 dependencies: '@babel/runtime': 7.24.4 fastq: 1.17.1 @@ -19617,7 +19622,7 @@ packages: /graphql-compose@9.0.10(graphql@16.8.1): resolution: {integrity: sha512-UsVoxfi2+c8WbHl2pEB+teoRRZoY4mbWBoijeLDGpAZBSPChnqtSRjp+T9UcouLCwGr5ooNyOQLoI3OVzU1bPQ==} peerDependencies: - graphql: ^14.2.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: graphql: 16.8.1 graphql-type-json: 0.3.2(graphql@16.8.1) @@ -19627,7 +19632,7 @@ packages: engines: {node: '>= 16.0.0'} peerDependencies: cosmiconfig-toml-loader: ^1.0.0 - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 peerDependenciesMeta: cosmiconfig-toml-loader: optional: true @@ -19656,7 +19661,7 @@ packages: engines: {node: '>= 16.0.0'} peerDependencies: cosmiconfig-toml-loader: ^1.0.0 - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 peerDependenciesMeta: cosmiconfig-toml-loader: optional: true @@ -19686,7 +19691,7 @@ packages: engines: {node: '>= 16.0.0'} peerDependencies: cosmiconfig-toml-loader: ^1.0.0 - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 peerDependenciesMeta: cosmiconfig-toml-loader: optional: true @@ -19715,14 +19720,14 @@ packages: resolution: {integrity: sha512-9RBUlGJWBFqz9LwfpmAbjJL/8j/HCNkZwPBU5+Bfmwez+1Ay43DocMNQYpIWsWqH0Ftv6PTNAh2aRnnMCBJgLw==} engines: {node: '>=12'} peerDependencies: - graphql: '>=0.11 <=16' + graphql: 16.8.1 dependencies: graphql: 16.8.1 /graphql-request@6.1.0(graphql@16.8.1): resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==} peerDependencies: - graphql: 14 - 16 + graphql: 16.8.1 dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) cross-fetch: 3.1.8 @@ -19735,7 +19740,7 @@ packages: resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} engines: {node: '>=10'} peerDependencies: - graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.8.1 dependencies: graphql: 16.8.1 tslib: 2.6.2 @@ -19743,7 +19748,7 @@ packages: /graphql-type-json@0.3.2(graphql@16.8.1): resolution: {integrity: sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==} peerDependencies: - graphql: '>=0.8.0' + graphql: 16.8.1 dependencies: graphql: 16.8.1 @@ -19751,7 +19756,7 @@ packages: resolution: {integrity: sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A==} engines: {node: '>=10'} peerDependencies: - graphql: '>=0.11 <=16' + graphql: 16.8.1 dependencies: graphql: 16.8.1 @@ -29676,9 +29681,6 @@ packages: /sqlite3@5.1.7: resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} requiresBuild: true - peerDependenciesMeta: - node-gyp: - optional: true dependencies: bindings: 1.5.0 node-addon-api: 7.1.0 From 70e0bb9b1b4a85f271ffd392640f57482fd4517e Mon Sep 17 00:00:00 2001 From: Vasile Chindris Date: Mon, 4 Nov 2024 09:48:49 +0200 Subject: [PATCH 2/7] feat(SLB-480): added the coffee module as a POC for how a UI could look like --- apps/cms/composer.json | 4 ++ apps/cms/composer.lock | 72 ++++++++++++++++++- apps/cms/config/sync/coffee.configuration.yml | 5 ++ apps/cms/config/sync/core.extension.yml | 1 + .../config/sync/views.view.global_search.yml | 9 ++- .../coffee/on_the_fly_ajax_search_poc.patch | 39 ++++++++++ .../search_api_global.routing.yml | 6 ++ .../GlobalSearchCoffeeController.php | 44 ++++++++++++ 8 files changed, 176 insertions(+), 4 deletions(-) create mode 100644 apps/cms/config/sync/coffee.configuration.yml create mode 100644 apps/cms/patches/contrib/coffee/on_the_fly_ajax_search_poc.patch create mode 100644 packages/drupal/search_api_global/search_api_global.routing.yml create mode 100644 packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php diff --git a/apps/cms/composer.json b/apps/cms/composer.json index ad1ecf685..51e90bdc6 100644 --- a/apps/cms/composer.json +++ b/apps/cms/composer.json @@ -46,6 +46,7 @@ "amazeelabs/silverback_translations": "^1.0.4", "composer/installers": "^2.2", "drupal/admin_toolbar": "^3.4.1", + "drupal/coffee": "^1.4", "drupal/config_filter": "*", "drupal/config_ignore": "^3.2", "drupal/config_notify": "^1.10", @@ -111,6 +112,9 @@ }, "drupal/graphql": { "Check if translation exists when loading an entity by its uuid": "./patches/graphql_load_by_uuid_translation_check.patch" + }, + "drupal/coffee": { + "On the fly ajax search POC": "./patches/contrib/coffee/on_the_fly_ajax_search_poc.patch" } }, "patchLevel": { diff --git a/apps/cms/composer.lock b/apps/cms/composer.lock index b7b2cab59..2b0634a5f 100644 --- a/apps/cms/composer.lock +++ b/apps/cms/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": "f2286f7ce6c31ab663ed8b8975dc0dac", + "content-hash": "019cf14605e72c1d5e3a56f7ea16d856", "packages": [ { "name": "amazeeio/drupal_integrations", @@ -2159,6 +2159,76 @@ "issues": "https://www.drupal.org/project/issues/admin_toolbar" } }, + { + "name": "drupal/coffee", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/coffee.git", + "reference": "8.x-1.4" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/coffee-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "9e32a5890d42a2a0312635bd5e3bf91cc2aa07ce" + }, + "require": { + "drupal/core": "^9.2 || ^10" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.4", + "datestamp": "1709147080", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + }, + "branch-alias": { + "dev-8.x-1.x": "8.1.x-dev" + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Michael Mol", + "homepage": "https://www.drupal.org/u/michaelmol", + "role": "Maintainer" + }, + { + "name": "Marco", + "homepage": "https://www.drupal.org/u/willzyx", + "role": "Maintainer" + }, + { + "name": "Oliver Köhler", + "homepage": "https://www.drupal.org/u/nebel54", + "role": "Maintainer" + }, + { + "name": "Alli Price", + "homepage": "https://www.drupal.org/u/heylookalive", + "role": "Maintainer" + }, + { + "name": "See other contributors", + "homepage": "https://www.drupal.org/node/1356930/committers", + "role": "contributor" + } + ], + "description": "Provides an Alfred like search box to navigate within your site.", + "homepage": "https://drupal.org/project/coffee", + "support": { + "source": "https://git.drupalcode.org/project/coffee", + "issues": "https://drupal.org/project/issues/coffee", + "irc": "irc://irc.freenode.org/drupal-contribute" + } + }, { "name": "drupal/config_filter", "version": "2.6.0", diff --git a/apps/cms/config/sync/coffee.configuration.yml b/apps/cms/config/sync/coffee.configuration.yml new file mode 100644 index 000000000..9948edc1c --- /dev/null +++ b/apps/cms/config/sync/coffee.configuration.yml @@ -0,0 +1,5 @@ +_core: + default_config_hash: cOqVnz_7pbb_0R31nQwih4Gh8XkmIbyFagFp6uUPaOc +coffee_menus: + admin: admin +max_results: 7 diff --git a/apps/cms/config/sync/core.extension.yml b/apps/cms/config/sync/core.extension.yml index d70954287..a06d80d84 100644 --- a/apps/cms/config/sync/core.extension.yml +++ b/apps/cms/config/sync/core.extension.yml @@ -7,6 +7,7 @@ module: block: 0 block_content: 0 breakpoint: 0 + coffee: 0 config: 0 config_ignore: 0 config_notify: 0 diff --git a/apps/cms/config/sync/views.view.global_search.yml b/apps/cms/config/sync/views.view.global_search.yml index 11a75cabe..117d339e4 100644 --- a/apps/cms/config/sync/views.view.global_search.yml +++ b/apps/cms/config/sync/views.view.global_search.yml @@ -126,7 +126,7 @@ display: multi_type: separator multi_separator: ', ' pager: - type: mini + type: full options: offset: 0 items_per_page: 10 @@ -135,6 +135,8 @@ display: tags: next: ›› previous: ‹‹ + first: '« First' + last: 'Last »' expose: items_per_page: false items_per_page_label: 'Items per page' @@ -143,6 +145,7 @@ display: items_per_page_options_all_label: '- All -' offset: false offset_label: Offset + quantity: 9 exposed_form: type: basic options: @@ -241,8 +244,8 @@ display: tags: - 'config:search_api.index.global_search' - 'search_api_list:global_search' - page_1: - id: page_1 + search: + id: search display_title: Page display_plugin: page position: 1 diff --git a/apps/cms/patches/contrib/coffee/on_the_fly_ajax_search_poc.patch b/apps/cms/patches/contrib/coffee/on_the_fly_ajax_search_poc.patch new file mode 100644 index 000000000..7645fbce5 --- /dev/null +++ b/apps/cms/patches/contrib/coffee/on_the_fly_ajax_search_poc.patch @@ -0,0 +1,39 @@ +diff --git a/js/coffee.js b/js/coffee.js +index 23c4e09..f4ee07a 100644 +--- a/js/coffee.js ++++ b/js/coffee.js +@@ -13,10 +13,31 @@ + var initSource = proto._initSource; + + function filter(array, term) { +- var matcher = new RegExp($.ui.autocomplete.escapeRegex(term), 'i'); +- return $.grep(array, function (value) { +- return matcher.test(value.command) || matcher.test(value.label) || matcher.test(value.value); ++ var matcher = new RegExp($.ui.autocomplete.escapeRegex(term.startsWith('#') ? term.substring(1) : term), 'i'); ++ // By default, we do an ajax request to get the available options using a ++ // search feature implemented on the server. However, if the command starts ++ // with '#', then juts use the default behavior to search through the array ++ // parameter, which contains all the static entries. ++ if (term.startsWith('#')) { ++ return $.grep(array, function (value) { ++ return matcher.test(value.command) || matcher.test(value.label) || matcher.test(value.value); ++ }) ++ } ++ ++ var results; ++ $.ajax({ ++ url: Drupal.url('global-search?search=' + encodeURIComponent(term)), ++ dataType: 'json', ++ // We have to wait for the request to complete before returning the ++ // results. ++ async: false, ++ success: function (data) { ++ results = $.grep(data, function (value) { ++ return matcher.test(value.command) || matcher.test(value.label) || matcher.test(value.value); ++ }); ++ } + }); ++ return results; + } + + $.extend(proto, { diff --git a/packages/drupal/search_api_global/search_api_global.routing.yml b/packages/drupal/search_api_global/search_api_global.routing.yml new file mode 100644 index 000000000..bd4c6a567 --- /dev/null +++ b/packages/drupal/search_api_global/search_api_global.routing.yml @@ -0,0 +1,6 @@ +search_api_global.global-search: + path: '/global-search' + defaults: + _controller: 'Drupal\search_api_global\Controller\GlobalSearchCoffeeController::search' + requirements: + _permission: 'access coffee' diff --git a/packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php b/packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php new file mode 100644 index 000000000..ccf58ef22 --- /dev/null +++ b/packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php @@ -0,0 +1,44 @@ +query->get('search'); + // More advanced example to include view results. + if ($view = Views::getView('global_search')) { + $view->setDisplay('search'); + if (!empty($search)) { + $view->setExposedInput(['search_api_fulltext' => $search]); + } + $view->preExecute(); + $view->execute(); + + foreach ($view->result as $row) { + $entity = $row->_entity; + $url = ''; + try { + $url = $entity->toUrl()->toString(); + } catch (UndefinedLinkTemplateException|EntityMalformedException $e) { + // Just do nothing here, in case we could not build a URL we will just + // show an empty value there. + } + $commands[] = [ + 'value' => $url, + 'label' => $entity->label() . ' (' . $entity->getEntityType()->getLabel() . ')', + 'command' => $entity->label(), + ]; + } + } + return new JsonResponse($commands); + } +} From 8456a18deb515b4b14d856943c0da9c668c1ad51 Mon Sep 17 00:00:00 2001 From: Vasile Chindris Date: Mon, 4 Nov 2024 13:23:56 +0200 Subject: [PATCH 3/7] feat(SLB-480): twig templates for gutenberg blocks --- .../gutenberg_blocks.gutenberg.yml | 4 +++ .../gutenberg_blocks/gutenberg_blocks.module | 36 +++++++++++++++++++ ...ock--custom--accordion-item-text.html.twig | 2 ++ .../gutenberg-block--custom--cta.html.twig | 1 + ...berg-block--custom--image-teaser.html.twig | 2 ++ ...g-block--custom--image-with-text.html.twig | 2 ++ .../GlobalSearchCoffeeController.php | 3 +- 7 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--accordion-item-text.html.twig create mode 100644 packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--cta.html.twig create mode 100644 packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--image-teaser.html.twig create mode 100644 packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--image-with-text.html.twig diff --git a/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml b/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml index caff3c619..5a10bfca1 100644 --- a/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml +++ b/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml @@ -6,3 +6,7 @@ libraries-edit: - gutenberg_blocks/edit dynamic-blocks: custom/hero: {} + custom/accordion-item-text: {} + custom/cta: {} + custom/image-teaser: {} + custom/image-with-text: {} diff --git a/packages/drupal/gutenberg_blocks/gutenberg_blocks.module b/packages/drupal/gutenberg_blocks/gutenberg_blocks.module index 045357faa..bdc8a66bc 100644 --- a/packages/drupal/gutenberg_blocks/gutenberg_blocks.module +++ b/packages/drupal/gutenberg_blocks/gutenberg_blocks.module @@ -81,3 +81,39 @@ function gutenberg_blocks_toolbar_alter(&$items) { unset($items['silverback_external_preview']); } } + +/** + * Prepares variables for custom image-teaser Gutenberg block template. + * + * @see template_preprocess_gutenberg_block + */ +function template_preprocess_gutenberg_block__custom__image_teaser(&$variables) { + _template_preprocess_gutenberg_block_add_rendered_image($variables); +} + +/** + * Prepares variables for custom image-teaser Gutenberg block template. + * + * @see template_preprocess_gutenberg_block + */ +function template_preprocess_gutenberg_block__custom__image_with_text(&$variables) { + _template_preprocess_gutenberg_block_add_rendered_image($variables); +} + +/** + * Helper function to inject a variable into gutenberg blocks that have a media + * reference (through the mediaEntityIds block attribute). The injected variable + * represents the rendered media. + * + * @return void + */ +function _template_preprocess_gutenberg_block_add_rendered_image(&$variables) { + if (!empty($variables['block_attributes']['mediaEntityIds'])) { + /** @var \Drupal\gutenberg\MediaEntityRendererInterface $media_entity_renderer */ + $media_entity_renderer = \Drupal::service('gutenberg.media_entity.renderer'); + $variables['rendered_image'] = $media_entity_renderer->renderArray( + reset($variables['block_attributes']['mediaEntityIds']), + $variables['block_attributes']['viewMode'] ?? 'default' + ); + } +} diff --git a/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--accordion-item-text.html.twig b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--accordion-item-text.html.twig new file mode 100644 index 000000000..72384f7ab --- /dev/null +++ b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--accordion-item-text.html.twig @@ -0,0 +1,2 @@ +{{ block_content }} +{{ block_attributes.text }} diff --git a/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--cta.html.twig b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--cta.html.twig new file mode 100644 index 000000000..efa156f04 --- /dev/null +++ b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--cta.html.twig @@ -0,0 +1 @@ +{{ block_attributes.text }} diff --git a/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--image-teaser.html.twig b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--image-teaser.html.twig new file mode 100644 index 000000000..42175c29c --- /dev/null +++ b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--image-teaser.html.twig @@ -0,0 +1,2 @@ +{{ block_attributes.ctaText }} +{{ rendered_image }} diff --git a/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--image-with-text.html.twig b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--image-with-text.html.twig new file mode 100644 index 000000000..79a35c95b --- /dev/null +++ b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--image-with-text.html.twig @@ -0,0 +1,2 @@ +{{ rendered_image }} +{{ block_content }} diff --git a/packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php b/packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php index ccf58ef22..7fbe143e7 100644 --- a/packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php +++ b/packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php @@ -34,8 +34,7 @@ public function search(Request $request) { } $commands[] = [ 'value' => $url, - 'label' => $entity->label() . ' (' . $entity->getEntityType()->getLabel() . ')', - 'command' => $entity->label(), + 'label' => $entity->label() . ' (' . $entity->getEntityType()->getLabel() . ')
' . $row->_item->getExcerpt() . '', ]; } } From 4ee1cc42ac7ca1a9782130227eb5025f4a60326c Mon Sep 17 00:00:00 2001 From: Vasile Chindris Date: Mon, 4 Nov 2024 13:33:02 +0200 Subject: [PATCH 4/7] feat(SLB-480): quote gutenberg block template --- .../drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml | 1 + .../templates/gutenberg-block--custom--quote.html.twig | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--quote.html.twig diff --git a/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml b/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml index 5a10bfca1..a21efe732 100644 --- a/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml +++ b/packages/drupal/gutenberg_blocks/gutenberg_blocks.gutenberg.yml @@ -10,3 +10,4 @@ dynamic-blocks: custom/cta: {} custom/image-teaser: {} custom/image-with-text: {} + custom/quote: {} diff --git a/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--quote.html.twig b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--quote.html.twig new file mode 100644 index 000000000..19f98acf5 --- /dev/null +++ b/packages/drupal/gutenberg_blocks/templates/gutenberg-block--custom--quote.html.twig @@ -0,0 +1,7 @@ +
+

{{ block_attributes.quote }}

+
+ {{ block_attributes.author }} +

{{ block_attributes.role }}

+
+
From 3dbdd5f326dacae940c770a6c7bc1d3787cd9e90 Mon Sep 17 00:00:00 2001 From: Vasile Chindris Date: Tue, 5 Nov 2024 17:01:06 +0200 Subject: [PATCH 5/7] chore(SLB-480): refine the global search index --- .../sync/search_api.index.global_search.yml | 141 +++++++++++++++--- .../config/sync/views.view.global_search.yml | 12 +- .../GlobalSearchCoffeeController.php | 2 +- 3 files changed, 124 insertions(+), 31 deletions(-) diff --git a/apps/cms/config/sync/search_api.index.global_search.yml b/apps/cms/config/sync/search_api.index.global_search.yml index 68aeccd97..3d784e5ac 100644 --- a/apps/cms/config/sync/search_api.index.global_search.yml +++ b/apps/cms/config/sync/search_api.index.global_search.yml @@ -5,26 +5,43 @@ dependencies: config: - field.storage.media.field_media_image - field.storage.media.field_media_video_file - - field.storage.media.field_media_oembed_video - search_api.server.database - core.entity_view_mode.config_pages.global_search - core.entity_view_mode.media.global_search - core.entity_view_mode.node.global_search - core.entity_view_mode.user.global_search module: + - path_alias - menu_link_content + - silverback_campaign_urls - user + - redirect - search_api - config_pages - media - node - taxonomy - - webform id: global_search name: 'Global search' description: '' read_only: false field_settings: + alias_destination: + label: 'URL alias' + datasource_id: 'entity:path_alias' + property_path: alias + type: text + dependencies: + module: + - path_alias + alias_source: + label: 'System path' + datasource_id: 'entity:path_alias' + property_path: path + type: text + dependencies: + module: + - path_alias alt: label: 'Image » Alternative text' datasource_id: 'entity:media' @@ -41,6 +58,22 @@ field_settings: dependencies: module: - menu_link_content + campaign_url_destination: + label: Destination + datasource_id: 'entity:campaign_url' + property_path: campaign_url_destination + type: text + dependencies: + module: + - silverback_campaign_urls + campaign_url_source: + label: Source + datasource_id: 'entity:campaign_url' + property_path: campaign_url_source + type: text + dependencies: + module: + - silverback_campaign_urls description: label: 'Video file » Description' datasource_id: 'entity:media' @@ -57,14 +90,6 @@ field_settings: dependencies: module: - menu_link_content - field_media_oembed_video: - label: 'Remote video URL' - datasource_id: 'entity:media' - property_path: field_media_oembed_video - type: text - dependencies: - config: - - field.storage.media.field_media_oembed_video mail: label: Email datasource_id: 'entity:user' @@ -81,6 +106,22 @@ field_settings: dependencies: module: - menu_link_content + redirect_destination: + label: To + datasource_id: 'entity:redirect' + property_path: redirect_redirect + type: text + dependencies: + module: + - redirect + redirect_source: + label: From + datasource_id: 'entity:redirect' + property_path: redirect_source + type: text + dependencies: + module: + - redirect rendered_item: label: 'Rendered HTML output' property_path: rendered_item @@ -89,6 +130,8 @@ field_settings: roles: - editor view_mode: + 'entity:campaign_url': + campaign_url: '' 'entity:config_pages': website_settings: global_search 'entity:media': @@ -100,14 +143,14 @@ field_settings: menu_link_content: '' 'entity:node': page: global_search + 'entity:path_alias': + path_alias: '' + 'entity:redirect': + redirect: '' 'entity:taxonomy_term': taxonomy_term: '' 'entity:user': user: global_search - 'entity:webform_submission': - contact: '' - inquiry: '' - styling: '' title: label: 'Image » Title' datasource_id: 'entity:media' @@ -125,6 +168,10 @@ field_settings: module: - menu_link_content datasource_settings: + 'entity:campaign_url': + bundles: + default: true + selected: { } 'entity:config_pages': bundles: default: true @@ -150,6 +197,11 @@ datasource_settings: languages: default: true selected: { } + 'entity:path_alias': { } + 'entity:redirect': + bundles: + default: true + selected: { } 'entity:taxonomy_term': bundles: default: true @@ -161,10 +213,6 @@ datasource_settings: languages: default: true selected: { } - 'entity:webform_submission': - bundles: - default: true - selected: { } processor_settings: add_url: { } aggregated_field: { } @@ -187,13 +235,18 @@ processor_settings: preprocess_query: -15 all_fields: true fields: + - alias_destination + - alias_source - alt - bundle_menu_link + - campaign_url_destination + - campaign_url_source - description - description_menu_link - - field_media_oembed_video - mail - menu_name + - redirect_destination + - redirect_source - rendered_item - title - title_menu_link @@ -211,13 +264,18 @@ processor_settings: preprocess_query: -20 all_fields: true fields: + - alias_destination + - alias_source - alt - bundle_menu_link + - campaign_url_destination + - campaign_url_source - description - description_menu_link - - field_media_oembed_video - mail - menu_name + - redirect_destination + - redirect_source - rendered_item - title - title_menu_link @@ -229,13 +287,18 @@ processor_settings: preprocess_query: -2 all_fields: true fields: + - alias_destination + - alias_source - alt - bundle_menu_link + - campaign_url_destination + - campaign_url_source - description - description_menu_link - - field_media_oembed_video - mail - menu_name + - redirect_destination + - redirect_source - rendered_item - title - title_menu_link @@ -281,13 +344,18 @@ processor_settings: preprocess_query: -6 all_fields: true fields: + - alias_destination + - alias_source - alt - bundle_menu_link + - campaign_url_destination + - campaign_url_source - description - description_menu_link - - field_media_oembed_video - mail - menu_name + - redirect_destination + - redirect_source - rendered_item - title - title_menu_link @@ -301,16 +369,43 @@ processor_settings: preprocess_query: -20 all_fields: true fields: + - alias_destination + - alias_source - alt - bundle_menu_link + - campaign_url_destination + - campaign_url_source - description - description_menu_link - - field_media_oembed_video - mail - menu_name + - redirect_destination + - redirect_source - rendered_item - title - title_menu_link + type_boost: + weights: + preprocess_index: 0 + boosts: + 'entity:campaign_url': + datasource_boost: 1.0 + 'entity:config_pages': + datasource_boost: 1.0 + 'entity:media': + datasource_boost: 2.0 + 'entity:menu_link_content': + datasource_boost: 1.0 + 'entity:node': + datasource_boost: 5.0 + 'entity:path_alias': + datasource_boost: 1.0 + 'entity:redirect': + datasource_boost: 1.0 + 'entity:taxonomy_term': + datasource_boost: 1.0 + 'entity:user': + datasource_boost: 1.0 tracker_settings: default: indexing_order: fifo diff --git a/apps/cms/config/sync/views.view.global_search.yml b/apps/cms/config/sync/views.view.global_search.yml index 117d339e4..3ce03fb92 100644 --- a/apps/cms/config/sync/views.view.global_search.yml +++ b/apps/cms/config/sync/views.view.global_search.yml @@ -238,27 +238,25 @@ display: - 'languages:language_interface' - url - url.query_args - - user - 'user.node_grants:view' - user.permissions tags: - 'config:search_api.index.global_search' - 'search_api_list:global_search' - search: - id: search - display_title: Page - display_plugin: page + global_search_embed: + id: global_search_embed + display_title: 'Global search' + display_plugin: embed position: 1 display_options: + display_description: '' display_extenders: { } - path: admin/search cache_metadata: max-age: -1 contexts: - 'languages:language_interface' - url - url.query_args - - user - 'user.node_grants:view' - user.permissions tags: diff --git a/packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php b/packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php index 7fbe143e7..d97c93b4f 100644 --- a/packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php +++ b/packages/drupal/search_api_global/src/Controller/GlobalSearchCoffeeController.php @@ -16,7 +16,7 @@ public function search(Request $request) { $search = $request->query->get('search'); // More advanced example to include view results. if ($view = Views::getView('global_search')) { - $view->setDisplay('search'); + $view->setDisplay('global_search_embed'); if (!empty($search)) { $view->setExposedInput(['search_api_fulltext' => $search]); } From 7573053d31c89389a1f21a45c7eb6b95ce860773 Mon Sep 17 00:00:00 2001 From: Vasile Chindris Date: Tue, 12 Nov 2024 17:37:09 +0200 Subject: [PATCH 6/7] chore(SLB-480): update schema tests --- tests/schema/specs/content.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/schema/specs/content.spec.ts b/tests/schema/specs/content.spec.ts index af6297fa9..4d7484c6f 100644 --- a/tests/schema/specs/content.spec.ts +++ b/tests/schema/specs/content.spec.ts @@ -67,7 +67,7 @@ test('Page', async () => { }, { "attributes": { - "content": "Paragraph", + "content": "Headline Lead text Paragraph", "href": null, "name": "description", "property": null, From 099df60a680e47dd616ab774ac889000280d76f7 Mon Sep 17 00:00:00 2001 From: Vasile Chindris Date: Tue, 12 Nov 2024 18:14:23 +0200 Subject: [PATCH 7/7] chore(SLB-480): update e2e tests --- tests/e2e/specs/drupal/metatags.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/specs/drupal/metatags.spec.ts b/tests/e2e/specs/drupal/metatags.spec.ts index c2f36362c..93d9d0c8c 100644 --- a/tests/e2e/specs/drupal/metatags.spec.ts +++ b/tests/e2e/specs/drupal/metatags.spec.ts @@ -11,7 +11,7 @@ test('Metatags on Basic page', async ({ page }) => { ); await expect(page.locator('head meta[name="description"]')).toHaveAttribute( 'content', - 'Paragraph', + 'Headline Lead text Paragraph', ); await expect(page.locator('head link[rel="canonical"]')).toHaveAttribute( 'href',