{ "name": "mukurtu/mukurtu", "description": "Mukurtu CMS Drupal Installation Profile", "type": "drupal-profile", "license": "GPL-3.0-or-later", "minimum-stability": "stable", "prefer-stable": true, "repositories": [ { "type": "composer", "url": "https://packages.drupal.org/8" }, { "type": "composer", "url": "https://asset-packagist.org" } ], "require": { "php": ">=8.4", "composer/installers": "^2.0", "cweagans/composer-patches": "^2.0", "drupal/admin_theme": "^1.1", "drupal/altcha": "^1.2", "drupal/better_exposed_filters": "^7.1.1", "drupal/blazy": "^3.0", "drupal/captcha": "^2.0.11", "drupal/charts": "^5.2", "drupal/config_translation_po": "^1.0", "drupal/consent_popup": "^1.0", "drupal/core": "~11.4.10", "drupal/core-composer-scaffold": "~11.4.10", "drupal/core-project-message": "~11.4.10", "drupal/core-recommended": "~11.4.10", "drupal/ctools": "^4.1", "drupal/dashboards": "^2.1", "drupal/embed": "^1.10", "drupal/entity_browser": "^2.17", "drupal/entity_embed": "^1.7", "drupal/entity_reference_revisions": "^1.14", "drupal/extlink": "^3.0", "drupal/facet_bot_blocker": "^1.0", "drupal/facets": "^3.0.7", "drupal/facets_reset_button": "^1.0", "drupal/field_group": "^4.0", "drupal/flag": "^5.1", "drupal/flat_taxonomy": "^2.0", "drupal/genpass": "^3.0", "drupal/geocoder": "^4.30", "drupal/geofield": "^10.3", "drupal/gin": "^5.0.16", "drupal/gin_lb": "^3.0@beta", "drupal/gin_toolbar": "^3.0", "drupal/google_tag": "^2.0", "drupal/history": "^1.0", "drupal/honeypot": "^2.2", "drupal/key": "^1.20", "drupal/klaro": "^3.1", "drupal/layout_builder_restrictions": "^3.0", "drupal/leaflet": "^10.4.13", "drupal/masquerade": "^2.0", "drupal/media_entity_soundcloud": "^3.2", "drupal/message": "^1.5", "drupal/message_notify": "^1.3", "drupal/message_subscribe": "^2.0", "drupal/message_ui": "^1.0", "drupal/migrate_plus": "^6.0", "drupal/migrate_source_csv": "^3.10", "drupal/migrate_tools": "^6.0", "drupal/notify_user_default": "^1.0", "drupal/og": "^1.x-dev", "drupal/paragraphs": "^1.21", "drupal/pathauto": "~1.14.0", "drupal/readonly_field_widget": "^2.1", "drupal/rebuild_cache_access": "^1.12", "drupal/recaptcha": "^3.4", "drupal/redirect": "^1.13", "drupal/restui": "^1.22", "drupal/search_api": "^1.41", "drupal/search_api_glossary": "^4.2", "drupal/search_api_solr": "^4.3", "drupal/tagify": "^2.0", "drupal/term_merge": "^2.0", "drupal/term_merge_manager": "^2.0", "drupal/term_reference_change": "^2.0@beta", "drupal/token": "^1.17", "drupal/turnstile": "^1.2", "drupal/turnstile_protect": "^1.0", "drupal/twig_tweak": "^3.2", "drupal/views_bulk_operations": "^4.4", "drupal/visitors": "^2.0", "drush/drush": "^13", "geocoder-php/nominatim-provider": "^5.8", "sibyx/phpgpx": "^1.3" }, "require-dev": { "composer/composer": "^2.10.2", "drupal/devel": "*", "drupal/core-dev": "*", "drupal/coder": "*", "dealerdirect/phpcodesniffer-composer-installer": "^1.2" }, "scripts": { "lint": [ "@lint:audit", "@lint:phpcs", "@lint:phpstan" ], "lint:audit": "composer audit --locked", "lint:phpcs": "../../../vendor/bin/phpcs --standard=phpcs.xml.dist --warning-severity=0", "lint:phpcs:all": "../../../vendor/bin/phpcs --standard=phpcs.xml.dist", "lint:phpcs:fix": "../../../vendor/bin/phpcbf --standard=phpcs.xml.dist", "lint:phpstan": "../../../vendor/bin/phpstan analyse -c phpstan.neon.dist --no-progress --memory-limit=-1", "lint:phpstan:baseline": "rm -rf .phpstan-tmp && ../../../vendor/bin/phpstan analyse -c phpstan.neon.dist --no-progress --memory-limit=-1 --generate-baseline=phpstan-baseline.neon" }, "scripts-descriptions": { "lint": "Run every static analysis check CI runs (audit, PHPCS errors, PHPStan).", "lint:audit": "Check composer.lock against security advisories, including drupal.org SAs.", "lint:phpcs": "PHPCS errors only - matches the CI gate.", "lint:phpcs:all": "PHPCS errors and warnings - the full backlog view.", "lint:phpcs:fix": "Apply the auto-fixable subset of PHPCS violations via phpcbf.", "lint:phpstan": "PHPStan level 1 against the committed baseline.", "lint:phpstan:baseline": "Regenerate phpstan-baseline.neon. It should shrink, never grow." }, "conflict": { "twig/twig": ">=3.30.0" }, "config": { "sort-packages": true, "audit": { "ignore": { "PKSA-dwsq-ppd2-mb1x": "symfony/polyfill-intl-idn: advisory only affects the pure PHP fallback path; native PHP intl extension is required and available in all target environments" } }, "allow-plugins": { "composer/installers": true, "cweagans/composer-patches": true, "dealerdirect/phpcodesniffer-composer-installer": true, "drupal/core-composer-scaffold": true, "drupal/core-project-message": true, "php-http/discovery": true, "phpstan/extension-installer": true, "tbachert/spi": true, "symfony/runtime": true } }, "extra": { "drupal-scaffold": { "locations": { "web-root": "web/" } }, "installer-paths": { "web/core": ["type:drupal-core"], "web/libraries/{$name}": ["type:drupal-library"], "web/modules/contrib/{$name}": ["type:drupal-module"], "web/profiles/{$name}": ["type:drupal-profile"], "web/themes/contrib/{$name}": ["type:drupal-theme"], "drush/Commands/contrib/{$name}": ["type:drupal-drush"] }, "patches": { "drupal/core": [ { "description": "Fix stale config.installer proxy after nested container rebuild during module install", "url": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/03c3074c9cfaef093456c2a0072ea4c772862bc9/patches/module-installer-stale-config-installer-proxy.patch", "depth": 1 }, { "description": "Fix stale module_handler proxy in ModuleInstaller::install()'s trailing hook_modules_installed() invocation", "url": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/877a97b4446a887fcbfeb7cd1fb5b867cc0fa034/patches/module-installer-stale-module-handler-modules-installed.patch", "depth": 1 } ], "drupal/paragraphs": { "Ensure empty paragraphs register as empty": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/03c3074c9cfaef093456c2a0072ea4c772862bc9/patches/paragraphs-118.patch" }, "drupal/media_entity_soundcloud": { "Add support for secret URL embeds": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/03c3074c9cfaef093456c2a0072ea4c772862bc9/patches/media_entity_soundcloud-secret-token-3272077.patch" }, "drupal/og": { "Remove bulk option to remove a user's roles": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/b9cc77302d1a471dbc1d5c5eb6921285d2da0806/patches/832-disallow-og-role-removal.patch" }, "drupal/search_api": { "Store search_api_db tables as utf8mb4 so 4-byte characters can be indexed (#3060442)": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/7e995fe14949139c5d38fe56f2b19b1206fa3572/patches/search_api_db-utf8mb4-3060442.patch" }, "drupal/search_api_glossary": { "TypeError: Cannot access offset of type string on string": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/b9cc77302d1a471dbc1d5c5eb6921285d2da0806/patches/search_api_glossary_type-error-3492668-8.patch", "Fix implicit nullable param deprecation in Glossary::getPropertyDefinitions()": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/b9cc77302d1a471dbc1d5c5eb6921285d2da0806/patches/search_api_glossary-nullable-param-deprecation.patch" }, "drupal/message_ui": { "Fix implicit nullable param deprecation in SaveMessage::access()": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/b9cc77302d1a471dbc1d5c5eb6921285d2da0806/patches/message_ui-nullable-param-deprecation.patch", "Fix invalid '#group' display option written into entity_form_display config schema": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/af7ea5f9c535dbcc685e785d8fd7168d464563a9/patches/message_ui-invalid-group-display-option.patch", "Fix invalid 'field_name' component option written into entity_form_display config schema": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/af7ea5f9c535dbcc685e785d8fd7168d464563a9/patches/message_ui-invalid-field-name-component-option.patch" }, "drupal/admin_theme": { "Fix implicit nullable param deprecation in AdminThemeAdminContext::isAdminRoute()": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/b9cc77302d1a471dbc1d5c5eb6921285d2da0806/patches/admin_theme-nullable-param-deprecation.patch" }, "drupal/field_group": { "Fix EntityViewDisplay/EntityFormDisplay::load() incompatibility with Drupal 11.3.x": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/b9cc77302d1a471dbc1d5c5eb6921285d2da0806/patches/field_group-entity-load-11-3.patch" }, "drupal/flat_taxonomy": { "Fix null vocabulary crash in presave hook during migration": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/b9cc77302d1a471dbc1d5c5eb6921285d2da0806/patches/flat-taxonomy-null-vocabulary-presave.patch" }, "drupal/gin": { "Fix invalid aria-toolbar-link__labelledby attribute on toolbar menus (Gin #3598613, RTBC)": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/43759bed7c2aa3a34e3b0a6213d6ac7dbead20d8/patches/gin-aria-labelledby-toolbar-menus-3598613.patch", "Stop repeating ids in the toolbar and sticky table headers (Mukurtu #2397)": "https://raw.githubusercontent.com/MukurtuCMS/Mukurtu-CMS/8fc6ac80fc03002429cdab556fff0626e9d1b3f3/patches/gin-duplicate-ids-2397.patch" } } } }