diff --git a/.env.dist b/.env.dist new file mode 100644 index 000000000..d3f7422ec --- /dev/null +++ b/.env.dist @@ -0,0 +1,130 @@ +# In all environments, the following files are loaded if they exist, +# the latter taking precedence over the former: +# +# * .env contains default values for the environment variables needed by the app +# * .env.local uncommitted file with local overrides +# * .env.$APP_ENV committed environment-specific defaults +# * .env.$APP_ENV.local uncommitted environment-specific overrides +# +# Real environment variables win over .env files. +# +# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES. +# https://symfony.com/doc/current/configuration/secrets.html +# +# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2). +# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration + +###> symfony/framework-bundle ### +APP_ENV=dev +APP_SECRET=e1023e5989bec76e282bd0ee405200e0 +#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 +#TRUSTED_HOSTS='^(localhost|example\.com)$' +###< symfony/framework-bundle ### + +###> doctrine/doctrine-bundle ### +# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url +# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml +# +# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db" +# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/db_name?serverVersion=8" +DATABASE_URL="mysql://spdrw:secret@db.vm.openconext.org/spdashboard?serverVersion=14&charset=utf8" +###< doctrine/doctrine-bundle ### + +###> symfony/swiftmailer-bundle ### +# For Gmail as a transport, use: "gmail://username:password@localhost" +# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode=" +# Delivery is disabled by default via "null://localhost" +MAILER_URL=null://localhost +MAILER_DSN=null://null +###< symfony/swiftmailer-bundle ### + +locale=en +mailer_transport=smtp +mailer_host=127.0.0.1 +mailer_user=null +mailer_password=null + +# A secret key that's used to generate certain security-related tokens +secret=ThisTokenIsNotSoSecretChangeIt + +session_max_absolute_lifetime=3600 +session_max_relative_lifetime=600 + +logout_redirect_url='https=//www.surf.nl/over-surf/werkmaatschappijen/surfnet' + +# All users in these teams get the administrator role +administrator_teams="'urn:collab:org:surf.nl','urn:collab:org:vm.openconext.org','urn:collab:org:dev.support.surfconext.nl'" + +saml_sp_publickey='%kernel.project_dir%//vendor/surfnet/stepup-saml-bundle/src/Resources/keys/development_publickey.cer' +saml_sp_privatekey='%kernel.project_dir%//vendor/surfnet/stepup-saml-bundle/src/Resources/keys/development_privatekey.pem' +saml_metadata_publickey='%kernel.project_dir%//vendor/surfnet/stepup-saml-bundle/src/Resources/keys/development_publickey.cer' +saml_metadata_privatekey='%kernel.project_dir%//vendor/surfnet/stepup-saml-bundle/src/Resources/keys/development_privatekey.pem' +saml_remote_idp_entity_id='https://engine.vm.openconext.org/authentication/idp/metadata' +saml_remote_idp_host=engine.vm.openconext.org +saml_remote_idp_sso_url='https://engine.vm.openconext.org/authentication/idp/single-sign-on' +saml_remote_idp_certificate=MIIDuDCCAqCgAwIBAgIJAPdqJ9JQKN6vMA0GCSqGSIb3DQEBBQUAMEYxDzANBgNVBAMTBkVuZ2luZTERMA8GA1UECxMIU2VydmljZXMxEzARBgNVBAoTCk9wZW5Db25leHQxCzAJBgNVBAYTAk5MMB4XDTE1MDQwMjE0MDE1NFoXDTI1MDQwMTE0MDE1NFowRjEPMA0GA1UEAxMGRW5naW5lMREwDwYDVQQLEwhTZXJ2aWNlczETMBEGA1UEChMKT3BlbkNvbmV4dDELMAkGA1UEBhMCTkwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCeVodghQwFR0pItxGaJ3LXHA+ZLy1w/TMaGDcJaszAZRWRkL/6djwbabR7TB45QN6dfKOFGzobQxG1Oksky3gz4Pki1BSzi/DwsjWCw+Yi40cYpYeg/XM0tvHKVorlsx/7Thm5WuC7rwytujr/lV7f6lavf/ApnLHnOORU2h0ZWctJiestapMaC5mc40msruWWp04axmrYICmTmGhEy7w0qO4/HLKjXtWbJh71GWtJeLzG5Hj04X44wI+D9PUJs9U3SYh9SCFZwq0v+oYeqajiX0JPzB+8aVOPmOOM5WqoT8OCddOM/TlsL/0PcxByGHsgJuWbWMI1PKlK3omR764PAgMBAAGjgagwgaUwHQYDVR0OBBYEFLowmsUCD2CrHU0lich1DMkNppmLMHYGA1UdIwRvMG2AFLowmsUCD2CrHU0lich1DMkNppmLoUqkSDBGMQ8wDQYDVQQDEwZFbmdpbmUxETAPBgNVBAsTCFNlcnZpY2VzMRMwEQYDVQQKEwpPcGVuQ29uZXh0MQswCQYDVQQGEwJOTIIJAPdqJ9JQKN6vMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAIF9tGG1C9HOSTQJA5qL13y5Ad8G57bJjBfTjp/dw308zwagsdTeFQIgsP4tdQqPMwYmBImcTx6vUNdiwlIol7TBCPGuqQAHD0lgTkChCzWezobIPxjitlkTUZGHqn4Kpq+mFelX9x4BElmxdLj0RQV3c3BhoW0VvJvBkqVKWkZ0HcUTQMlMrQEOq6D32jGh0LPCQN7Ke6ir0Ix5knb7oegND49fbLSxpdo5vSuxQd+Zn6nI1/VLWtWpdeHMKhiw2+/ArR9YM3cY8UwFQOj9Y6wI6gPCGh/q1qv2HnngmnPrNzZik8XucGcf1Wm2zE4UIVYKW31T52mqRVDKRk8F3Eo= + +# The default timeout for Curl requests when retrieving metadata +metadata_url_timeout=30 + +# Manage defaults + +## Manage test instance +manage_test_host='https://manage.vm.openconext.org' +manage_test_username=sp-dashboard +manage_test_password=secret +manage_test_publication_status=testaccepted + +## Manage production instance +manage_prod_host='https://manage.vm.openconext.org' +manage_prod_username=sp-dashboard +manage_prod_password=secret +manage_prod_publication_status=prodaccepted + +## Teams test instance +teams_host='https://teams.vm.openconext.org' +teams_username=spdashboard +teams_password=secret + +# Mail default settings +mail_from=support@surfconext.nl +mail_receiver=support@surfconext.nl +mail_no_reply=no-reply@surfconext.nl + +# Jira settings +jira_host='https://jira.example.com' +jira_username=sp-dashboard +jira_password=secret +surfnet_dashboard_repository_issue=DevelopmentIssueRepository + +# By enabling 'jira_enable_test_mode', no real Jira backend is required to still simulate the Jira integration +#jira_enable_test_mode=true + +# When 'jira_enable_test_mode' is enabled, 'jira_test_mode_storage_path' must be configured with a filename in a directory that is writable for the user run ning the application. +jira_test_mode_storage_path=../var/issues.json + +# Jira default issue settings +jira_issue_priority=Medium +jira_issue_type=spd-delete-production-entity +jira_issue_type_publication_request=spd-request-production-entity +jira_issue_type_entity_change_request=spd-request-change-request-prod +jira_issue_entityid_fieldname=customfield_13018 + +# The label that is set for the manage id field, used to compose the JQL which identifies a custom field by its label +jira_issue_manageid_fieldname=customfield_13401 +jira_issue_reporter_fieldname=customfield_99999 +jira_issue_manageid_field_label='Manage entity ID' +jira_issue_project_key=CXT + +# Playground uri's for OIDC entities +playground_uri_test='https://test.dev.playground.surfconext.nl' +playground_uri_prod='https://prod.dev.playground.surfconext.nl' + +## Toggle display & content of global site notice. Use a date to ensure that multiple notification in short order do not interfere with each other (aka: th e user can close the first, and still see the second). +global_site_notice_show=false +global_site_notice_date='11.05.2021' +global_site_notice_allowed_tags='


    1. ' + +# Teams urn prefix, see: https://www.pivotaltracker.com/story/show/179572218/comments/227653860 +team_prefix_default_stem_name='urn:collab:group:vm.openconext.org:' +team_prefix_group_name_context='demo:openconext:org:' diff --git a/.env.test b/.env.test new file mode 100644 index 000000000..7bac990df --- /dev/null +++ b/.env.test @@ -0,0 +1,7 @@ +# define your env variables for the test env here +KERNEL_CLASS='Surfnet\ServiceProviderDashboard\Kernel' +APP_ENV=test +APP_DEBUG=false +APP_SECRET='$ecretf0rt3st' +SYMFONY_DEPRECATIONS_HELPER=999999 +DATABASE_URL="sqlite:////tmp/spdashboard-webtests.sqlite" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b9263a1b8..b9eb20eab 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,7 +11,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index d3f23e843..e5f8d340b 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -9,7 +9,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: @@ -52,19 +52,15 @@ jobs: - name: Make the log and cache dir writable run: | - docker-compose -f docker-compose.yml -f docker-compose-ci.yml exec -T php-fpm chmod 777 /var/www/html/var/{logs,cache} + docker-compose -f docker-compose.yml -f docker-compose-ci.yml exec -T php-fpm chmod 777 /var/www/html/var/cache - - name: Copy parameters.yml.dist to parameters.yml + - name: Copy .env.dist to .env run: | - docker-compose -f docker-compose.yml -f docker-compose-ci.yml exec -T php-fpm cp /var/www/html/app/config/parameters.yml.dist /var/www/html/app/config/parameters.yml + docker-compose -f docker-compose.yml -f docker-compose-ci.yml exec -T php-fpm cp /var/www/html/.env.dist /var/www/html/.env - name: Wait until the spdashboard is accessable run: | docker-compose -f docker-compose.yml -f docker-compose-ci.yml exec -T openconext sh /usr/local/sbin/spdup.sh - - - name: Disable Symfony debug mode - run: | - docker-compose -f docker-compose.yml -f docker-compose-ci.yml exec -T php-fpm sed -i s/\'dev\',\ true/\'dev\',\ false/g /var/www/html/web/app_dev.php - name: Run cypress tests run: docker-compose -f docker-compose.yml -f docker-compose-ci.yml exec -T cypress cypress run --browser chrome diff --git a/.gitignore b/.gitignore index 1ab4d6728..52269690a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,7 @@ /.vagrant/ /ansible/*.retry -/app/config/parameters.yml docker-compose.override.yml -app/js/coverage +assets/js/coverage /build/ /var/* !/var/cache @@ -16,8 +15,30 @@ app/js/coverage !var/sessions/.gitkeep !var/SymfonyRequirements.php /vendor/ -/web/bundles/ /.idea /node_modules -/web/build -/web/coverage +/.env +###> symfony 4 ### +/public/build/ +###< symfony 4 ### + +###> phpunit/phpunit ### +/phpunit.xml +.phpunit.result.cache +###< phpunit/phpunit ### + +###> symfony/phpunit-bridge ### +.phpunit +.phpunit.result.cache +/phpunit.xml +###< symfony/phpunit-bridge ### + +###> symfony/framework-bundle ### +/.env.local +/.env.local.php +/.env.*.local +/config/secrets/prod/prod.decrypt.private.php +/public/bundles/ +/var/ +/vendor/ +###< symfony/framework-bundle ### diff --git a/.travis.yml b/.travis.yml index 89b56abec..ff53c2092 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,7 +24,6 @@ before_install: before_script: - phpenv config-add travis.php.ini - - composer self-update --1 - composer install --no-interaction - curl -o- -L https://yarnpkg.com/install.sh | bash - export PATH="$HOME/.yarn/bin:$PATH" diff --git a/ansible/roles/spdashboard/tasks/install-branch.yml b/ansible/roles/spdashboard/tasks/install-branch.yml index c56b59ecd..81b9db0fe 100644 --- a/ansible/roles/spdashboard/tasks/install-branch.yml +++ b/ansible/roles/spdashboard/tasks/install-branch.yml @@ -40,7 +40,7 @@ - name: Delete config file: path={{spdashboard_data_dir}}/current/app/{{ item }} state=absent with_items: - - config/parameters.yml + - config/parameters.yaml - name: Delete cache, log and sessions file: path={{spdashboard_data_dir}}/current/var/{{ item }} state=absent @@ -57,7 +57,7 @@ - cache - name: Install config file - template: src=parameters.yml.j2 dest={{ spdashboard_data_dir}}/current/app/config/parameters.yml + template: src=parameters.yaml.j2 dest={{ spdashboard_data_dir}}/current/app/config/parameters.yaml - name: Clear the cache command: php72 bin/console cache:clear --env=prod diff --git a/app/AppCache.php b/app/AppCache.php deleted file mode 100644 index 639ec2cd7..000000000 --- a/app/AppCache.php +++ /dev/null @@ -1,7 +0,0 @@ -getEnvironment(), ['dev', 'test'], true)) { - $bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(); - $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); - $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); - $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle(); - $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); - } - - return $bundles; - } - - public function getRootDir() - { - return __DIR__; - } - - public function getCacheDir() - { - $env = $this->getEnvironment(); - // For test and dev, use a cache folder outside the project folder. - if ($env === 'dev' || $env === 'test') { - return '/tmp/sp-dashboard/' . $env; - } - return dirname(__DIR__).'/var/cache/'.$env; - } - - public function getLogDir() - { - return dirname(__DIR__).'/var/logs'; - } - - public function registerContainerConfiguration(LoaderInterface $loader) - { - $loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml'); - } -} diff --git a/app/autoload.php b/app/autoload.php deleted file mode 100644 index 31321faa5..000000000 --- a/app/autoload.php +++ /dev/null @@ -1,11 +0,0 @@ -


        1. ' - - # Teams urn prefix, see: https://www.pivotaltracker.com/story/show/179572218/comments/227653860 - team.prefix.default_stem_name: 'urn:collab:group:vm.openconext.org:' - team.prefix.group_name_context: 'demo:openconext:org:' diff --git a/app/config/routing.yml b/app/config/routing.yml deleted file mode 100644 index ffb4456ec..000000000 --- a/app/config/routing.yml +++ /dev/null @@ -1,27 +0,0 @@ -dashboard: - resource: '@DashboardBundle/Resources/config/routing.yml' - -dashboard_saml: - resource: "@DashboardSamlBundle/Controller/" - type: annotation - prefix: / - -openconext_monitor: - resource: "@OpenConextMonitorBundle/Resources/config/routing.yml" - prefix: / - -lexik_translation_edition: - resource: "@LexikTranslationBundle/Resources/config/routing.yml" - prefix: /translations - -nelmio_security_csp: - path: /csp/report - defaults: { _controller: nelmio_security.csp_reporter_controller:indexAction } - methods: [POST] - -logout: - path: /logout - defaults: - _controller: FrameworkBundle:Redirect:urlRedirect - path: '%logout_redirect_url%' - permanent: true diff --git a/app/config/services.yml b/app/config/services.yml deleted file mode 100644 index 82fa6d493..000000000 --- a/app/config/services.yml +++ /dev/null @@ -1,13 +0,0 @@ -# Learn more about services, parameters and containers at -# http://symfony.com/doc/current/service_container.html -parameters: - container.dumper.inline_class_loader: true - -services: - _defaults: - autowire: true - autoconfigure: true - public: false - Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler: - arguments: - - 'mysql://%database_user%:%database_password%@%database_host%/%database_name%?serverVersion=5.7' diff --git a/app/Resources/metadata/attributes.json b/assets/Resources/metadata/attributes.json similarity index 100% rename from app/Resources/metadata/attributes.json rename to assets/Resources/metadata/attributes.json diff --git a/app/Resources/metadata/privacy_questions.json b/assets/Resources/metadata/privacy_questions.json similarity index 100% rename from app/Resources/metadata/privacy_questions.json rename to assets/Resources/metadata/privacy_questions.json diff --git a/app/Resources/metadata/sp_dashboard.json b/assets/Resources/metadata/sp_dashboard.json similarity index 100% rename from app/Resources/metadata/sp_dashboard.json rename to assets/Resources/metadata/sp_dashboard.json diff --git a/app/Resources/schemas/MetadataExchange.xsd b/assets/Resources/schemas/MetadataExchange.xsd similarity index 100% rename from app/Resources/schemas/MetadataExchange.xsd rename to assets/Resources/schemas/MetadataExchange.xsd diff --git a/app/Resources/schemas/attributes.scheme.json b/assets/Resources/schemas/attributes.scheme.json similarity index 100% rename from app/Resources/schemas/attributes.scheme.json rename to assets/Resources/schemas/attributes.scheme.json diff --git a/app/Resources/schemas/oasis-200401-wss-wssecurity-secext-1.0.xsd b/assets/Resources/schemas/oasis-200401-wss-wssecurity-secext-1.0.xsd similarity index 100% rename from app/Resources/schemas/oasis-200401-wss-wssecurity-secext-1.0.xsd rename to assets/Resources/schemas/oasis-200401-wss-wssecurity-secext-1.0.xsd diff --git a/app/Resources/schemas/oasis-200401-wss-wssecurity-utility-1.0.xsd b/assets/Resources/schemas/oasis-200401-wss-wssecurity-utility-1.0.xsd similarity index 100% rename from app/Resources/schemas/oasis-200401-wss-wssecurity-utility-1.0.xsd rename to assets/Resources/schemas/oasis-200401-wss-wssecurity-utility-1.0.xsd diff --git a/app/Resources/schemas/saml-schema-assertion-2.0.xsd b/assets/Resources/schemas/saml-schema-assertion-2.0.xsd similarity index 100% rename from app/Resources/schemas/saml-schema-assertion-2.0.xsd rename to assets/Resources/schemas/saml-schema-assertion-2.0.xsd diff --git a/app/Resources/schemas/saml-schema-metadata-2.0.xsd b/assets/Resources/schemas/saml-schema-metadata-2.0.xsd similarity index 100% rename from app/Resources/schemas/saml-schema-metadata-2.0.xsd rename to assets/Resources/schemas/saml-schema-metadata-2.0.xsd diff --git a/app/Resources/schemas/surf.xsd b/assets/Resources/schemas/surf.xsd similarity index 100% rename from app/Resources/schemas/surf.xsd rename to assets/Resources/schemas/surf.xsd diff --git a/app/Resources/schemas/ws-addr.xsd b/assets/Resources/schemas/ws-addr.xsd similarity index 100% rename from app/Resources/schemas/ws-addr.xsd rename to assets/Resources/schemas/ws-addr.xsd diff --git a/app/Resources/schemas/ws-authorization.xsd b/assets/Resources/schemas/ws-authorization.xsd similarity index 100% rename from app/Resources/schemas/ws-authorization.xsd rename to assets/Resources/schemas/ws-authorization.xsd diff --git a/app/Resources/schemas/ws-federation.xsd b/assets/Resources/schemas/ws-federation.xsd similarity index 100% rename from app/Resources/schemas/ws-federation.xsd rename to assets/Resources/schemas/ws-federation.xsd diff --git a/app/Resources/schemas/ws-securitypolicy-1.2.xsd b/assets/Resources/schemas/ws-securitypolicy-1.2.xsd similarity index 100% rename from app/Resources/schemas/ws-securitypolicy-1.2.xsd rename to assets/Resources/schemas/ws-securitypolicy-1.2.xsd diff --git a/app/Resources/schemas/xenc-schema.xsd b/assets/Resources/schemas/xenc-schema.xsd similarity index 100% rename from app/Resources/schemas/xenc-schema.xsd rename to assets/Resources/schemas/xenc-schema.xsd diff --git a/app/Resources/schemas/xml.xsd b/assets/Resources/schemas/xml.xsd similarity index 100% rename from app/Resources/schemas/xml.xsd rename to assets/Resources/schemas/xml.xsd diff --git a/app/Resources/schemas/xmldsig-core-schema.xsd b/assets/Resources/schemas/xmldsig-core-schema.xsd similarity index 100% rename from app/Resources/schemas/xmldsig-core-schema.xsd rename to assets/Resources/schemas/xmldsig-core-schema.xsd diff --git a/app/config/attributes.json b/assets/attributes.json similarity index 100% rename from app/config/attributes.json rename to assets/attributes.json diff --git a/app/js/application.js b/assets/js/application.js similarity index 100% rename from app/js/application.js rename to assets/js/application.js diff --git a/app/js/components/a11y.ts b/assets/js/components/a11y.ts similarity index 100% rename from app/js/components/a11y.ts rename to assets/js/components/a11y.ts diff --git a/app/js/components/addFlashMessage.ts b/assets/js/components/addFlashMessage.ts similarity index 100% rename from app/js/components/addFlashMessage.ts rename to assets/js/components/addFlashMessage.ts diff --git a/app/js/components/add_service.ts b/assets/js/components/add_service.ts similarity index 100% rename from app/js/components/add_service.ts rename to assets/js/components/add_service.ts diff --git a/app/js/components/change_member_role.ts b/assets/js/components/change_member_role.ts similarity index 100% rename from app/js/components/change_member_role.ts rename to assets/js/components/change_member_role.ts diff --git a/app/js/components/collection_widget.test.ts b/assets/js/components/collection_widget.test.ts similarity index 98% rename from app/js/components/collection_widget.test.ts rename to assets/js/components/collection_widget.test.ts index f1890ebcc..43c25a7d8 100644 --- a/app/js/components/collection_widget.test.ts +++ b/assets/js/components/collection_widget.test.ts @@ -14,7 +14,7 @@ jest describe('validate collection widget', function() { let stateHtml = ` -
          +
            diff --git a/app/js/components/collection_widget.ts b/assets/js/components/collection_widget.ts similarity index 100% rename from app/js/components/collection_widget.ts rename to assets/js/components/collection_widget.ts diff --git a/app/js/components/delete_member.ts b/assets/js/components/delete_member.ts similarity index 100% rename from app/js/components/delete_member.ts rename to assets/js/components/delete_member.ts diff --git a/app/js/components/entity_acl_form.test.ts b/assets/js/components/entity_acl_form.test.ts similarity index 90% rename from app/js/components/entity_acl_form.test.ts rename to assets/js/components/entity_acl_form.test.ts index 85236161d..232daa1e3 100644 --- a/app/js/components/entity_acl_form.test.ts +++ b/assets/js/components/entity_acl_form.test.ts @@ -13,7 +13,7 @@ jest describe('validate visibility toggling of acl list on the entity acl form', function() { - let aclFormHtml = require('fs').readFileSync('./app/js/components/mock/entity_acl_form.html').toString(); + let aclFormHtml = require('fs').readFileSync('./assets/js/components/mock/entity_acl_form.html').toString(); it('hides the acl container when select all is checked', function() { document.body.innerHTML = aclFormHtml; diff --git a/app/js/components/entity_acl_form.ts b/assets/js/components/entity_acl_form.ts similarity index 100% rename from app/js/components/entity_acl_form.ts rename to assets/js/components/entity_acl_form.ts diff --git a/app/js/components/flash_message.ts b/assets/js/components/flash_message.ts similarity index 100% rename from app/js/components/flash_message.ts rename to assets/js/components/flash_message.ts diff --git a/app/js/components/form.ts b/assets/js/components/form.ts similarity index 100% rename from app/js/components/form.ts rename to assets/js/components/form.ts diff --git a/app/js/components/invite_member.ts b/assets/js/components/invite_member.ts similarity index 100% rename from app/js/components/invite_member.ts rename to assets/js/components/invite_member.ts diff --git a/app/js/components/mock/entity_acl_form.html b/assets/js/components/mock/entity_acl_form.html similarity index 100% rename from app/js/components/mock/entity_acl_form.html rename to assets/js/components/mock/entity_acl_form.html diff --git a/app/js/components/mock/service_create_form.html b/assets/js/components/mock/service_create_form.html similarity index 100% rename from app/js/components/mock/service_create_form.html rename to assets/js/components/mock/service_create_form.html diff --git a/app/js/components/mock/service_edit_form.html b/assets/js/components/mock/service_edit_form.html similarity index 100% rename from app/js/components/mock/service_edit_form.html rename to assets/js/components/mock/service_edit_form.html diff --git a/app/js/components/modal.ts b/assets/js/components/modal.ts similarity index 100% rename from app/js/components/modal.ts rename to assets/js/components/modal.ts diff --git a/app/js/components/resend_invite.ts b/assets/js/components/resend_invite.ts similarity index 100% rename from app/js/components/resend_invite.ts rename to assets/js/components/resend_invite.ts diff --git a/app/js/components/service_add_entity.ts b/assets/js/components/service_add_entity.ts similarity index 100% rename from app/js/components/service_add_entity.ts rename to assets/js/components/service_add_entity.ts diff --git a/app/js/components/service_edit_attribute.js b/assets/js/components/service_edit_attribute.js similarity index 100% rename from app/js/components/service_edit_attribute.js rename to assets/js/components/service_edit_attribute.js diff --git a/app/js/components/service_form.test.ts b/assets/js/components/service_form.test.ts similarity index 93% rename from app/js/components/service_form.test.ts rename to assets/js/components/service_form.test.ts index 7389874c2..6108c4882 100644 --- a/app/js/components/service_form.test.ts +++ b/assets/js/components/service_form.test.ts @@ -13,7 +13,7 @@ jest describe('validate visibility toggling of service status fields on the service edit form', function() { - let editFormHtml = require('fs').readFileSync('./app/js/components/mock/service_edit_form.html').toString(); + let editFormHtml = require('fs').readFileSync('./assets/js/components/mock/service_edit_form.html').toString(); it('hides the contract signed fields when the service type is institution', function() { document.body.innerHTML = editFormHtml; @@ -42,7 +42,7 @@ describe('validate visibility toggling of service status fields on the service e describe('validate visibility toggling of service status fields on the service create form', function() { - let createFormHtml = require('fs').readFileSync('./app/js/components/mock/service_create_form.html').toString(); + let createFormHtml = require('fs').readFileSync('./assets/js/components/mock/service_create_form.html').toString(); it('hides the contract signed fields when the service type is institution', function() { document.body.innerHTML = createFormHtml; diff --git a/app/js/components/service_form.ts b/assets/js/components/service_form.ts similarity index 100% rename from app/js/components/service_form.ts rename to assets/js/components/service_form.ts diff --git a/app/js/components/service_status.test.ts b/assets/js/components/service_status.test.ts similarity index 100% rename from app/js/components/service_status.test.ts rename to assets/js/components/service_status.test.ts diff --git a/app/js/components/service_status.ts b/assets/js/components/service_status.ts similarity index 100% rename from app/js/components/service_status.ts rename to assets/js/components/service_status.ts diff --git a/app/js/components/service_switcher.js b/assets/js/components/service_switcher.js similarity index 66% rename from app/js/components/service_switcher.js rename to assets/js/components/service_switcher.js index 9ad0e6f5d..9327df499 100644 --- a/app/js/components/service_switcher.js +++ b/assets/js/components/service_switcher.js @@ -1,7 +1,7 @@ 'use strict'; import $ from 'jquery'; -require('../../../node_modules/jquery.mousewheel/jquery.mousewheel.js'); -require('../../../node_modules/select2/dist/js/select2.js'); +require('jquery.mousewheel'); +require('select2'); $(document).ready(function() { function submitFormOnSelectionChange() { diff --git a/app/js/components/site_notice.ts b/assets/js/components/site_notice.ts similarity index 100% rename from app/js/components/site_notice.ts rename to assets/js/components/site_notice.ts diff --git a/app/js/components/tooltips.js b/assets/js/components/tooltips.js similarity index 100% rename from app/js/components/tooltips.js rename to assets/js/components/tooltips.js diff --git a/app/js/components/translation_ui.js b/assets/js/components/translation_ui.js similarity index 100% rename from app/js/components/translation_ui.js rename to assets/js/components/translation_ui.js diff --git a/app/js/components/validation.js b/assets/js/components/validation.js similarity index 100% rename from app/js/components/validation.js rename to assets/js/components/validation.js diff --git a/app/js/components/validator_helper.test.ts b/assets/js/components/validator_helper.test.ts similarity index 100% rename from app/js/components/validator_helper.test.ts rename to assets/js/components/validator_helper.test.ts diff --git a/app/js/components/validator_helper.ts b/assets/js/components/validator_helper.ts similarity index 100% rename from app/js/components/validator_helper.ts rename to assets/js/components/validator_helper.ts diff --git a/app/js/type_definitions.ts b/assets/js/type_definitions.ts similarity index 100% rename from app/js/type_definitions.ts rename to assets/js/type_definitions.ts diff --git a/app/scss/application.scss b/assets/scss/application.scss similarity index 100% rename from app/scss/application.scss rename to assets/scss/application.scss diff --git a/app/scss/base/base.scss b/assets/scss/base/base.scss similarity index 100% rename from app/scss/base/base.scss rename to assets/scss/base/base.scss diff --git a/app/scss/base/mixins.scss b/assets/scss/base/mixins.scss similarity index 100% rename from app/scss/base/mixins.scss rename to assets/scss/base/mixins.scss diff --git a/app/scss/components/actions.scss b/assets/scss/components/actions.scss similarity index 100% rename from app/scss/components/actions.scss rename to assets/scss/components/actions.scss diff --git a/app/scss/components/button.scss b/assets/scss/components/button.scss similarity index 100% rename from app/scss/components/button.scss rename to assets/scss/components/button.scss diff --git a/app/scss/components/checkbox.scss b/assets/scss/components/checkbox.scss similarity index 100% rename from app/scss/components/checkbox.scss rename to assets/scss/components/checkbox.scss diff --git a/app/scss/components/collection_widget.scss b/assets/scss/components/collection_widget.scss similarity index 100% rename from app/scss/components/collection_widget.scss rename to assets/scss/components/collection_widget.scss diff --git a/app/scss/components/confirmation_dialog.scss b/assets/scss/components/confirmation_dialog.scss similarity index 100% rename from app/scss/components/confirmation_dialog.scss rename to assets/scss/components/confirmation_dialog.scss diff --git a/app/scss/components/details.scss b/assets/scss/components/details.scss similarity index 100% rename from app/scss/components/details.scss rename to assets/scss/components/details.scss diff --git a/app/scss/components/drop_down_actions.scss b/assets/scss/components/drop_down_actions.scss similarity index 100% rename from app/scss/components/drop_down_actions.scss rename to assets/scss/components/drop_down_actions.scss diff --git a/app/scss/components/entity_acl_list.scss b/assets/scss/components/entity_acl_list.scss similarity index 100% rename from app/scss/components/entity_acl_list.scss rename to assets/scss/components/entity_acl_list.scss diff --git a/app/scss/components/entity_detail.scss b/assets/scss/components/entity_detail.scss similarity index 100% rename from app/scss/components/entity_detail.scss rename to assets/scss/components/entity_detail.scss diff --git a/app/scss/components/flash.scss b/assets/scss/components/flash.scss similarity index 100% rename from app/scss/components/flash.scss rename to assets/scss/components/flash.scss diff --git a/app/scss/components/flash_message.scss b/assets/scss/components/flash_message.scss similarity index 100% rename from app/scss/components/flash_message.scss rename to assets/scss/components/flash_message.scss diff --git a/app/scss/components/footer.scss b/assets/scss/components/footer.scss similarity index 100% rename from app/scss/components/footer.scss rename to assets/scss/components/footer.scss diff --git a/app/scss/components/form.scss b/assets/scss/components/form.scss similarity index 100% rename from app/scss/components/form.scss rename to assets/scss/components/form.scss diff --git a/app/scss/components/header.scss b/assets/scss/components/header.scss similarity index 100% rename from app/scss/components/header.scss rename to assets/scss/components/header.scss diff --git a/app/scss/components/icon_legend.scss b/assets/scss/components/icon_legend.scss similarity index 100% rename from app/scss/components/icon_legend.scss rename to assets/scss/components/icon_legend.scss diff --git a/app/scss/components/link.scss b/assets/scss/components/link.scss similarity index 100% rename from app/scss/components/link.scss rename to assets/scss/components/link.scss diff --git a/app/scss/components/modal.scss b/assets/scss/components/modal.scss similarity index 97% rename from app/scss/components/modal.scss rename to assets/scss/components/modal.scss index b8b561663..baec6e317 100644 --- a/app/scss/components/modal.scss +++ b/assets/scss/components/modal.scss @@ -1,4 +1,4 @@ -@import "~jquery-modal/jquery.modal.css"; +@import "jquery-modal"; .blocker { background-color: rgba(95,95,95,.7); diff --git a/app/scss/components/modal_add_entity.scss b/assets/scss/components/modal_add_entity.scss similarity index 100% rename from app/scss/components/modal_add_entity.scss rename to assets/scss/components/modal_add_entity.scss diff --git a/app/scss/components/navigation.scss b/assets/scss/components/navigation.scss similarity index 100% rename from app/scss/components/navigation.scss rename to assets/scss/components/navigation.scss diff --git a/app/scss/components/notification.scss b/assets/scss/components/notification.scss similarity index 100% rename from app/scss/components/notification.scss rename to assets/scss/components/notification.scss diff --git a/app/scss/components/persons_autocomplete.scss b/assets/scss/components/persons_autocomplete.scss similarity index 100% rename from app/scss/components/persons_autocomplete.scss rename to assets/scss/components/persons_autocomplete.scss diff --git a/app/scss/components/service_status.scss b/assets/scss/components/service_status.scss similarity index 100% rename from app/scss/components/service_status.scss rename to assets/scss/components/service_status.scss diff --git a/app/scss/components/service_switcher.scss b/assets/scss/components/service_switcher.scss similarity index 70% rename from app/scss/components/service_switcher.scss rename to assets/scss/components/service_switcher.scss index 3b3f8603e..b125758aa 100644 --- a/app/scss/components/service_switcher.scss +++ b/assets/scss/components/service_switcher.scss @@ -1,4 +1,4 @@ -@import "../../node_modules/select2/dist/css/select2.css"; +@import "~select2"; li.service-switcher { .select2 { diff --git a/app/scss/components/sort_drop_down.scss b/assets/scss/components/sort_drop_down.scss similarity index 100% rename from app/scss/components/sort_drop_down.scss rename to assets/scss/components/sort_drop_down.scss diff --git a/app/scss/components/table.scss b/assets/scss/components/table.scss similarity index 100% rename from app/scss/components/table.scss rename to assets/scss/components/table.scss diff --git a/app/scss/components/tooltip.scss b/assets/scss/components/tooltip.scss similarity index 100% rename from app/scss/components/tooltip.scss rename to assets/scss/components/tooltip.scss diff --git a/app/scss/components/wysiwyg.scss b/assets/scss/components/wysiwyg.scss similarity index 100% rename from app/scss/components/wysiwyg.scss rename to assets/scss/components/wysiwyg.scss diff --git a/app/scss/excludes/forms.scss b/assets/scss/excludes/forms.scss similarity index 100% rename from app/scss/excludes/forms.scss rename to assets/scss/excludes/forms.scss diff --git a/app/scss/fonts/FontAwesome.otf b/assets/scss/fonts/FontAwesome.otf similarity index 100% rename from app/scss/fonts/FontAwesome.otf rename to assets/scss/fonts/FontAwesome.otf diff --git a/app/scss/fonts/Roboto-Bold.ttf b/assets/scss/fonts/Roboto-Bold.ttf similarity index 100% rename from app/scss/fonts/Roboto-Bold.ttf rename to assets/scss/fonts/Roboto-Bold.ttf diff --git a/app/scss/fonts/Roboto-BoldItalic.ttf b/assets/scss/fonts/Roboto-BoldItalic.ttf similarity index 100% rename from app/scss/fonts/Roboto-BoldItalic.ttf rename to assets/scss/fonts/Roboto-BoldItalic.ttf diff --git a/app/scss/fonts/Roboto-Italic.ttf b/assets/scss/fonts/Roboto-Italic.ttf similarity index 100% rename from app/scss/fonts/Roboto-Italic.ttf rename to assets/scss/fonts/Roboto-Italic.ttf diff --git a/app/scss/fonts/Roboto-Regular.ttf b/assets/scss/fonts/Roboto-Regular.ttf similarity index 100% rename from app/scss/fonts/Roboto-Regular.ttf rename to assets/scss/fonts/Roboto-Regular.ttf diff --git a/app/scss/fonts/RobotoMono-Light.ttf b/assets/scss/fonts/RobotoMono-Light.ttf similarity index 100% rename from app/scss/fonts/RobotoMono-Light.ttf rename to assets/scss/fonts/RobotoMono-Light.ttf diff --git a/app/scss/fonts/RobotoMono-Regular.ttf b/assets/scss/fonts/RobotoMono-Regular.ttf similarity index 100% rename from app/scss/fonts/RobotoMono-Regular.ttf rename to assets/scss/fonts/RobotoMono-Regular.ttf diff --git a/app/scss/fonts/_animated.scss b/assets/scss/fonts/_animated.scss similarity index 100% rename from app/scss/fonts/_animated.scss rename to assets/scss/fonts/_animated.scss diff --git a/app/scss/fonts/_bordered-pulled.scss b/assets/scss/fonts/_bordered-pulled.scss similarity index 100% rename from app/scss/fonts/_bordered-pulled.scss rename to assets/scss/fonts/_bordered-pulled.scss diff --git a/app/scss/fonts/_core.scss b/assets/scss/fonts/_core.scss similarity index 100% rename from app/scss/fonts/_core.scss rename to assets/scss/fonts/_core.scss diff --git a/app/scss/fonts/_fixed-width.scss b/assets/scss/fonts/_fixed-width.scss similarity index 100% rename from app/scss/fonts/_fixed-width.scss rename to assets/scss/fonts/_fixed-width.scss diff --git a/app/scss/fonts/_icons.scss b/assets/scss/fonts/_icons.scss similarity index 100% rename from app/scss/fonts/_icons.scss rename to assets/scss/fonts/_icons.scss diff --git a/app/scss/fonts/_larger.scss b/assets/scss/fonts/_larger.scss similarity index 100% rename from app/scss/fonts/_larger.scss rename to assets/scss/fonts/_larger.scss diff --git a/app/scss/fonts/_list.scss b/assets/scss/fonts/_list.scss similarity index 100% rename from app/scss/fonts/_list.scss rename to assets/scss/fonts/_list.scss diff --git a/app/scss/fonts/_mixins.scss b/assets/scss/fonts/_mixins.scss similarity index 100% rename from app/scss/fonts/_mixins.scss rename to assets/scss/fonts/_mixins.scss diff --git a/app/scss/fonts/_path.scss b/assets/scss/fonts/_path.scss similarity index 100% rename from app/scss/fonts/_path.scss rename to assets/scss/fonts/_path.scss diff --git a/app/scss/fonts/_rotated-flipped.scss b/assets/scss/fonts/_rotated-flipped.scss similarity index 100% rename from app/scss/fonts/_rotated-flipped.scss rename to assets/scss/fonts/_rotated-flipped.scss diff --git a/app/scss/fonts/_screen-reader.scss b/assets/scss/fonts/_screen-reader.scss similarity index 100% rename from app/scss/fonts/_screen-reader.scss rename to assets/scss/fonts/_screen-reader.scss diff --git a/app/scss/fonts/_spinning.scss b/assets/scss/fonts/_spinning.scss similarity index 100% rename from app/scss/fonts/_spinning.scss rename to assets/scss/fonts/_spinning.scss diff --git a/app/scss/fonts/_stacked.scss b/assets/scss/fonts/_stacked.scss similarity index 100% rename from app/scss/fonts/_stacked.scss rename to assets/scss/fonts/_stacked.scss diff --git a/app/scss/fonts/_variables.scss b/assets/scss/fonts/_variables.scss similarity index 100% rename from app/scss/fonts/_variables.scss rename to assets/scss/fonts/_variables.scss diff --git a/app/scss/fonts/font-awesome.scss b/assets/scss/fonts/font-awesome.scss similarity index 100% rename from app/scss/fonts/font-awesome.scss rename to assets/scss/fonts/font-awesome.scss diff --git a/app/scss/fonts/fontawesome-webfont.eot b/assets/scss/fonts/fontawesome-webfont.eot similarity index 100% rename from app/scss/fonts/fontawesome-webfont.eot rename to assets/scss/fonts/fontawesome-webfont.eot diff --git a/app/scss/fonts/fontawesome-webfont.svg b/assets/scss/fonts/fontawesome-webfont.svg similarity index 100% rename from app/scss/fonts/fontawesome-webfont.svg rename to assets/scss/fonts/fontawesome-webfont.svg diff --git a/app/scss/fonts/fontawesome-webfont.ttf b/assets/scss/fonts/fontawesome-webfont.ttf similarity index 100% rename from app/scss/fonts/fontawesome-webfont.ttf rename to assets/scss/fonts/fontawesome-webfont.ttf diff --git a/app/scss/fonts/fontawesome-webfont.woff b/assets/scss/fonts/fontawesome-webfont.woff similarity index 100% rename from app/scss/fonts/fontawesome-webfont.woff rename to assets/scss/fonts/fontawesome-webfont.woff diff --git a/app/scss/fonts/fontawesome-webfont.woff2 b/assets/scss/fonts/fontawesome-webfont.woff2 similarity index 100% rename from app/scss/fonts/fontawesome-webfont.woff2 rename to assets/scss/fonts/fontawesome-webfont.woff2 diff --git a/app/scss/fonts/roboto.scss b/assets/scss/fonts/roboto.scss similarity index 54% rename from app/scss/fonts/roboto.scss rename to assets/scss/fonts/roboto.scss index 389523023..11a4d6302 100644 --- a/app/scss/fonts/roboto.scss +++ b/assets/scss/fonts/roboto.scss @@ -2,40 +2,40 @@ font-family: 'Roboto'; font-style: normal; font-weight: 400; - src: local('Roboto'), local('Roboto-Regular'), url(../fonts/Roboto-Regular.ttf) format('truetype'); + src: local('Roboto'), local('Roboto-Regular'), url(Roboto-Regular.ttf) format('truetype'); } @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 700; - src: local('Roboto Bold'), local('Roboto-Bold'), url(../fonts/Roboto-Bold.ttf) format('truetype'); + src: local('Roboto Bold'), local('Roboto-Bold'), url(Roboto-Bold.ttf) format('truetype'); } @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 400; - src: local('Roboto Italic'), local('Roboto-Italic'), url(../fonts/Roboto-Italic.ttf) format('truetype'); + src: local('Roboto Italic'), local('Roboto-Italic'), url(Roboto-Italic.ttf) format('truetype'); } @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 700; - src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(../fonts/Roboto-BoldItalic.ttf) format('truetype'); + src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(Roboto-BoldItalic.ttf) format('truetype'); } @font-face { font-family: 'Roboto Mono'; font-style: normal; font-weight: 400; - src: local('Roboto Mono'), local('RobotoMono-Regular'), url(../fonts/RobotoMono-Regular.ttf) format('truetype'); + src: local('Roboto Mono'), local('RobotoMono-Regular'), url(RobotoMono-Regular.ttf) format('truetype'); } @font-face { font-family: 'Roboto Mono'; font-style: normal; font-weight: 300; - src: local('Roboto Mono Light'), local('RobotoMono-Light'), url(../fonts/RobotoMono-Light.ttf) format('truetype'); + src: local('Roboto Mono Light'), local('RobotoMono-Light'), url(RobotoMono-Light.ttf) format('truetype'); } diff --git a/app/scss/pages/base.scss b/assets/scss/pages/base.scss similarity index 95% rename from app/scss/pages/base.scss rename to assets/scss/pages/base.scss index 703542dcf..1617a1ce6 100644 --- a/app/scss/pages/base.scss +++ b/assets/scss/pages/base.scss @@ -20,7 +20,7 @@ .card { @include card; - @import "../excludes/forms.scss"; + @import "../excludes/forms"; padding: 25px; &--second { diff --git a/app/scss/pages/change_request.scss b/assets/scss/pages/change_request.scss similarity index 100% rename from app/scss/pages/change_request.scss rename to assets/scss/pages/change_request.scss diff --git a/app/scss/pages/choose_entity_type.scss b/assets/scss/pages/choose_entity_type.scss similarity index 100% rename from app/scss/pages/choose_entity_type.scss rename to assets/scss/pages/choose_entity_type.scss diff --git a/app/scss/pages/manageTeams.scss b/assets/scss/pages/manageTeams.scss similarity index 100% rename from app/scss/pages/manageTeams.scss rename to assets/scss/pages/manageTeams.scss diff --git a/app/scss/pages/newService.scss b/assets/scss/pages/newService.scss similarity index 100% rename from app/scss/pages/newService.scss rename to assets/scss/pages/newService.scss diff --git a/app/scss/pages/service_edit.scss b/assets/scss/pages/service_edit.scss similarity index 100% rename from app/scss/pages/service_edit.scss rename to assets/scss/pages/service_edit.scss diff --git a/app/scss/utilities/functions.scss b/assets/scss/utilities/functions.scss similarity index 100% rename from app/scss/utilities/functions.scss rename to assets/scss/utilities/functions.scss diff --git a/app/scss/utilities/media_queries.scss b/assets/scss/utilities/media_queries.scss similarity index 100% rename from app/scss/utilities/media_queries.scss rename to assets/scss/utilities/media_queries.scss diff --git a/app/scss/utilities/placeholders.scss b/assets/scss/utilities/placeholders.scss similarity index 100% rename from app/scss/utilities/placeholders.scss rename to assets/scss/utilities/placeholders.scss diff --git a/app/scss/utilities/reset.scss b/assets/scss/utilities/reset.scss similarity index 100% rename from app/scss/utilities/reset.scss rename to assets/scss/utilities/reset.scss diff --git a/app/scss/vars.scss b/assets/scss/vars.scss similarity index 96% rename from app/scss/vars.scss rename to assets/scss/vars.scss index 4ee790101..266ba5eaa 100644 --- a/app/scss/vars.scss +++ b/assets/scss/vars.scss @@ -1,4 +1,4 @@ -@import './utilities/functions'; +@import 'utilities/functions'; /* Colors */ $blue: #00829b; diff --git a/bin/console b/bin/console index a908aaa93..9700ebb18 100755 --- a/bin/console +++ b/bin/console @@ -1,28 +1,42 @@ #!/usr/bin/env php getParameterOption(['--env', '-e'], getenv('SYMFONY_ENV') ?: 'dev'); -$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(['--no-debug', '']) && $env !== 'prod'; +if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) { + putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env); +} + +if ($input->hasParameterOption('--no-debug', true)) { + putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0'); +} + +require dirname(__DIR__).'/config/bootstrap.php'; + +if ($_SERVER['APP_DEBUG']) { + umask(0000); -if ($debug) { - Debug::enable(); + if (class_exists(Debug::class)) { + Debug::enable(); + } } -$kernel = new AppKernel($env, $debug); +$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); $application = new Application($kernel); $application->run($input); diff --git a/bin/phpunit b/bin/phpunit new file mode 100755 index 000000000..4d1ed05d3 --- /dev/null +++ b/bin/phpunit @@ -0,0 +1,13 @@ +#!/usr/bin/env php + - + - + - + @@ -29,7 +29,7 @@ - + @@ -69,12 +69,12 @@ - + - + @@ -89,10 +89,10 @@ - + - + diff --git a/composer.json b/composer.json index 1301af402..949da5534 100644 --- a/composer.json +++ b/composer.json @@ -1,109 +1,122 @@ { - "name": "surfnet/sp-dashboard", - "description": "Dashboard application for SURFconext Service Providers", - "license": "Apache-2.0", - "type": "project", - "autoload": { - "psr-4": { - "Surfnet\\": "src/Surfnet" - }, - "classmap": [ - "app/AppKernel.php", - "app/AppCache.php" - ] + "name": "surfnet/sp-dashboard", + "description": "Dashboard application for SURFconext Service Providers", + "license": "Apache-2.0", + "type": "project", + "require": { + "php": "7.2.*", + "ext-ctype": "*", + "ext-curl": "*", + "ext-gd": "*", + "ext-iconv": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-mysqli": "*", + "ext-soap": "*", + "ext-xml": "*", + "doctrine/doctrine-bundle": "^1.12", + "doctrine/doctrine-migrations-bundle": "^3.2", + "doctrine/orm": "^2.7", + "guzzlehttp/guzzle": "^6.3", + "jeremykendall/php-domain-parser": "~1.3.1", + "knplabs/knp-menu-bundle": "^2.1", + "league/tactician-bundle": "^1.1", + "lesstif/php-jira-rest-client": "^1.33", + "lexik/translation-bundle": "^4.0", + "nelmio/security-bundle": "^2.9", + "openconext/monitor-bundle": "^2.0", + "ramsey/uuid": "^3.7", + "sensio/framework-extra-bundle": "^5.5", + "stfalcon/tinymce-bundle": "^2.1", + "stof/doctrine-extensions-bundle": "^1.3", + "surfnet/stepup-saml-bundle": "^4.0", + "symfony/asset": "4.4.*", + "symfony/browser-kit": "4.4.*", + "symfony/console": "4.4.*", + "symfony/dotenv": "4.4.*", + "symfony/expression-language": "4.4.*", + "symfony/flex": "^1.19", + "symfony/form": "4.4.*", + "symfony/framework-bundle": "^4.4", + "symfony/mailer": "4.4.*", + "symfony/maker-bundle": "*", + "symfony/monolog-bundle": "<3.7.0", + "symfony/polyfill-apcu": "^1.0", + "symfony/proxy-manager-bridge": "4.4.*", + "symfony/security-bundle": "4.4.*", + "symfony/security-csrf": "4.4.*", + "symfony/translation": "4.4.*", + "symfony/twig-bundle": "4.4.*", + "symfony/validator": "4.4.*", + "symfony/web-profiler-bundle": "4.4.*", + "symfony/yaml": "4.4.*", + "twig/extra-bundle": "^2.12|^3.0", + "twig/twig": "^2", + "xemlock/htmlpurifier-html5": "^0.1.10" + }, + "require-dev": { + "doctrine/doctrine-fixtures-bundle": "^3.4", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "malukenho/docheader": "^0.1.6", + "mockery/mockery": "^1.2", + "phpmd/phpmd": "~2.8.0", + "phpunit/phpcov": "~5.0", + "phpunit/phpunit": "~7.5", + "sebastian/phpcpd": "^4.1", + "squizlabs/php_codesniffer": "^2.8", + "symfony/css-selector": "4.4.*", + "symfony/phpunit-bridge": "4.4.*", + "symfony/stopwatch": "4.4.*" + }, + "config": { + "allow-plugins": { + "composer/package-versions-deprecated": true, + "symfony/flex": true }, - "autoload-dev": { - "psr-4": { - "Surfnet\\": "src\\Surfnet", - "Surfnet\\ServiceProviderDashboard\\Webtests\\": "tests/webtests" - }, - "files": [ - "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php" - ] + "preferred-install": { + "*": "dist" }, - "require": { - "php": "7.2.*", - "ext-curl": "*", - "ext-gd": "*", - "ext-json": "*", - "ext-mbstring": "*", - "ext-mysqli": "*", - "ext-soap": "*", - "ext-xml": "*", - "doctrine/dbal": "~2.5.12", - "doctrine/doctrine-bundle": "^1.6", - "doctrine/doctrine-cache-bundle": "^1.2", - "doctrine/doctrine-migrations-bundle": "^1.0", - "doctrine/orm": "~2.5.0", - "guzzlehttp/guzzle": "^6.3", - "incenteev/composer-parameter-handler": "^2.1", - "jeremykendall/php-domain-parser": "~1.3.1", - "knplabs/knp-menu-bundle": "^2.1", - "league/tactician-bundle": "^0.4.1", - "lesstif/php-jira-rest-client": "^1.33", - "lexik/translation-bundle": "^4.0", - "nelmio/security-bundle": "^2.9", - "openconext/monitor-bundle": "^1.0", - "ramsey/uuid": "^3.7", - "sensio/distribution-bundle": "^5.0", - "sensio/framework-extra-bundle": "^3.0", - "stfalcon/tinymce-bundle": "^2.1", - "stof/doctrine-extensions-bundle": "^1.2", - "surfnet/stepup-saml-bundle": "^4.0", - "symfony/monolog-bundle": "^3.1.0", - "symfony/polyfill-apcu": "^1.0", - "symfony/swiftmailer-bundle": "^2.3.10", - "symfony/symfony": "3.4.*", - "twig/twig": "^1.34.4", - "xemlock/htmlpurifier-html5": "^0.1.10" - }, - "require-dev": { - "doctrine/doctrine-fixtures-bundle": "^2.4", - "jakub-onderka/php-parallel-lint": "^0.9.2", - "malukenho/docheader": "^0.1.6", - "mockery/mockery": "^1.2", - "phpmd/phpmd": "~2.8.0", - "phpunit/phpcov": "~5.0", - "phpunit/phpunit": "~7.5", - "sebastian/phpcpd": "^4.1", - "sensio/generator-bundle": "^3.0", - "squizlabs/php_codesniffer": "^2.8", - "symfony/phpunit-bridge": "^3.0" - }, - "scripts": { - "symfony-scripts": [ - "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" - ], - "post-install-cmd": [ - "@symfony-scripts" - ], - "post-update-cmd": [ - "@symfony-scripts" - ] - }, - "config": { - "optimize-autoloader": true, - "sort-packages": true, - "platform": { - "php": "7.2" - }, - "allow-plugins": { - "ocramius/package-versions": true - } + "sort-packages": true + }, + "autoload": { + "psr-4": { + "Surfnet\\ServiceProviderDashboard\\": "src/Surfnet/ServiceProviderDashboard" + } + }, + "autoload-dev": { + "psr-4": { + "Surfnet\\ServiceProviderDashboard\\": "src/Surfnet/ServiceProviderDashboard", + "Surfnet\\ServiceProviderDashboard\\Webtests\\": "tests/webtests", + "Surfnet\\ServiceProviderDashboard\\Tests\\": "tests/" + } + }, + "replace": { + "paragonie/random_compat": "2.*", + "symfony/polyfill-ctype": "*", + "symfony/polyfill-iconv": "*", + "symfony/polyfill-php71": "*", + "symfony/polyfill-php70": "*", + "symfony/polyfill-php56": "*" + }, + "scripts": { + "auto-scripts": { + "cache:clear": "symfony-cmd", + "assets:install %PUBLIC_DIR%": "symfony-cmd" }, - "extra": { - "symfony-app-dir": "app", - "symfony-bin-dir": "bin", - "symfony-var-dir": "var", - "symfony-web-dir": "web", - "symfony-tests-dir": "tests", - "symfony-assets-install": "relative", - "incenteev-parameters": { - "file": "app/config/parameters.yml" - }, - "branch-alias": null + "post-install-cmd": [ + "@auto-scripts" + ], + "post-update-cmd": [ + "@auto-scripts" + ] + }, + "conflict": { + "symfony/symfony": "*" + }, + "extra": { + "symfony": { + "allow-contrib": false, + "require": "4.4.*" } + } } diff --git a/composer.lock b/composer.lock index fbaa7757a..4e864f927 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3951c8247f3f9afb2b776caa3c01d31d", + "content-hash": "bb8f1d57ce85393f0ff299587f2744d8", "packages": [ { "name": "behat/transliterator", @@ -57,16 +57,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.3.3", + "version": "1.3.4", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c" + "reference": "69098eca243998b53eed7a48d82dedd28b447cd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/30897edbfb15e784fe55587b4f73ceefd3c4d98c", - "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/69098eca243998b53eed7a48d82dedd28b447cd5", + "reference": "69098eca243998b53eed7a48d82dedd28b447cd5", "shasum": "" }, "require": { @@ -113,7 +113,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.3" + "source": "https://github.com/composer/ca-bundle/tree/1.3.4" }, "funding": [ { @@ -129,7 +129,80 @@ "type": "tidelift" } ], - "time": "2022-07-20T07:14:26+00:00" + "time": "2022-10-12T12:08:29+00:00" + }, + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.5", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-01-17T14:14:24+00:00" }, { "name": "doctrine/annotations", @@ -305,16 +378,16 @@ }, { "name": "doctrine/collections", - "version": "1.7.2", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "3fe77330f5591108bbf1315da7377a7e704ed8a0" + "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/3fe77330f5591108bbf1315da7377a7e704ed8a0", - "reference": "3fe77330f5591108bbf1315da7377a7e704ed8a0", + "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e", + "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e", "shasum": "" }, "require": { @@ -369,39 +442,47 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.7.2" + "source": "https://github.com/doctrine/collections/tree/1.8.0" }, - "time": "2022-08-27T16:08:58+00:00" + "time": "2022-09-01T20:12:10+00:00" }, { "name": "doctrine/common", - "version": "v2.7.3", + "version": "2.13.3", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9" + "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9", - "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9", + "url": "https://api.github.com/repos/doctrine/common/zipball/f3812c026e557892c34ef37f6ab808a6b567da7f", + "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f", "shasum": "" }, "require": { - "doctrine/annotations": "1.*", - "doctrine/cache": "1.*", - "doctrine/collections": "1.*", - "doctrine/inflector": "1.*", - "doctrine/lexer": "1.*", - "php": "~5.6|~7.0" + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/inflector": "^1.0", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^1.3.3", + "doctrine/reflection": "^1.0", + "php": "^7.1 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^5.4.6" + "doctrine/coding-standard": "^1.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpunit/phpunit": "^7.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^4.0.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7.x-dev" + "dev-master": "2.11.x-dev" } }, "autoload": { @@ -414,6 +495,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -422,10 +507,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -433,44 +514,70 @@ { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Common Library for Doctrine projects", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", "keywords": [ - "annotations", - "collections", - "eventmanager", - "persistence", - "spl" + "common", + "doctrine", + "php" ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/v2.7.3" + "source": "https://github.com/doctrine/common/tree/2.13.x" }, - "time": "2017-07-22T08:35:12+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", + "type": "tidelift" + } + ], + "time": "2020-06-05T16:46:05+00:00" }, { "name": "doctrine/dbal", - "version": "v2.5.13", + "version": "2.13.9", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "729340d8d1eec8f01bff708e12e449a3415af873" + "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873", - "reference": "729340d8d1eec8f01bff708e12e449a3415af873", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c480849ca3ad6706a39c970cdfe6888fa8a058b8", + "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8", "shasum": "" }, "require": { - "doctrine/common": ">=2.4,<2.8-dev", - "php": ">=5.3.2" + "doctrine/cache": "^1.0|^2.0", + "doctrine/deprecations": "^0.5.3|^1", + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.1 || ^8" }, "require-dev": { - "phpunit/phpunit": "4.*", - "symfony/console": "2.*||^3.0" + "doctrine/coding-standard": "9.0.0", + "jetbrains/phpstorm-stubs": "2021.1", + "phpstan/phpstan": "1.4.6", + "phpunit/phpunit": "^7.5.20|^8.5|9.5.16", + "psalm/plugin-phpunit": "0.16.1", + "squizlabs/php_codesniffer": "3.6.2", + "symfony/cache": "^4.4", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", + "vimeo/psalm": "4.22.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -479,14 +586,9 @@ "bin/doctrine-dbal" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.5.x-dev" - } - }, "autoload": { - "psr-0": { - "Doctrine\\DBAL\\": "lib/" + "psr-4": { + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" } }, "notification-url": "https://packagist.org/downloads/", @@ -494,6 +596,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -502,50 +608,75 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" } ], - "description": "Database Abstraction Layer", - "homepage": "http://www.doctrine-project.org", + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", "keywords": [ + "abstraction", "database", + "db2", "dbal", - "persistence", - "queryobject" + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlanywhere", + "sqlite", + "sqlserver", + "sqlsrv" ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/v2.5.13" + "source": "https://github.com/doctrine/dbal/tree/2.13.9" }, - "time": "2017-07-22T20:44:48+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2022-05-02T20:28:55+00:00" }, { "name": "doctrine/deprecations", - "version": "v1.0.0", + "version": "v0.5.3", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314", + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314", "shasum": "" }, "require": { "php": "^7.1|^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5|^8.5|^9.5", - "psr/log": "^1|^2|^3" + "doctrine/coding-standard": "^6.0|^7.0|^8.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0", + "psr/log": "^1.0" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" @@ -564,47 +695,56 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.0.0" + "source": "https://github.com/doctrine/deprecations/tree/v0.5.3" }, - "time": "2022-05-02T15:47:09+00:00" + "time": "2021-03-21T12:59:47+00:00" }, { "name": "doctrine/doctrine-bundle", - "version": "1.10.3", + "version": "1.12.13", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c" + "reference": "85460b85edd8f61a16ad311e7ffc5d255d3c937c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c", - "reference": "907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/85460b85edd8f61a16ad311e7ffc5d255d3c937c", + "reference": "85460b85edd8f61a16ad311e7ffc5d255d3c937c", "shasum": "" }, "require": { - "doctrine/dbal": "^2.5.12", + "doctrine/dbal": "^2.5.12|^3.0", "doctrine/doctrine-cache-bundle": "~1.2", + "doctrine/persistence": "^1.3.3", "jdorn/sql-formatter": "^1.2.16", - "php": "^5.5.9|^7.0", - "symfony/console": "~2.7|~3.0|~4.0", - "symfony/dependency-injection": "~2.7|~3.0|~4.0", - "symfony/doctrine-bridge": "~2.7|~3.0|~4.0", - "symfony/framework-bundle": "^2.7.22|~3.0|~4.0" + "php": "^7.1 || ^8.0", + "symfony/cache": "^3.4.30|^4.3.3", + "symfony/config": "^3.4.30|^4.3.3", + "symfony/console": "^3.4.30|^4.3.3", + "symfony/dependency-injection": "^3.4.30|^4.3.3", + "symfony/doctrine-bridge": "^3.4.30|^4.3.3", + "symfony/framework-bundle": "^3.4.30|^4.3.3", + "symfony/service-contracts": "^1.1.1|^2.0" }, "conflict": { - "symfony/http-foundation": "<2.6" + "doctrine/orm": "<2.6", + "twig/twig": "<1.34|>=2.0,<2.4" }, "require-dev": { - "doctrine/orm": "~2.4", + "doctrine/coding-standard": "^6.0", + "doctrine/orm": "^2.6", + "ocramius/proxy-manager": "^2.1", "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^4.8.36|^5.7|^6.4", - "symfony/phpunit-bridge": "~2.7|~3.0|~4.0", - "symfony/property-info": "~2.8|~3.0|~4.0", - "symfony/validator": "~2.7|~3.0|~4.0", - "symfony/web-profiler-bundle": "~2.7|~3.0|~4.0", - "symfony/yaml": "~2.7|~3.0|~4.0", - "twig/twig": "~1.26|~2.0" + "phpunit/phpunit": "^7.5", + "symfony/phpunit-bridge": "^4.2", + "symfony/property-info": "^3.4.30|^4.3.3", + "symfony/proxy-manager-bridge": "^3.4|^4|^5", + "symfony/twig-bridge": "^3.4|^4.1", + "symfony/validator": "^3.4.30|^4.3.3", + "symfony/web-profiler-bundle": "^3.4.30|^4.3.3", + "symfony/yaml": "^3.4.30|^4.3.3", + "twig/twig": "^1.34|^2.12" }, "suggest": { "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", @@ -613,7 +753,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.9.x-dev" + "dev-master": "2.3.x-dev" } }, "autoload": { @@ -627,20 +767,20 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { - "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org/" + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org/" } ], "description": "Symfony DoctrineBundle", @@ -653,9 +793,23 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/1.10.x" + "source": "https://github.com/doctrine/DoctrineBundle/tree/1.12.13" }, - "time": "2019-04-04T08:03:53+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", + "type": "tidelift" + } + ], + "time": "2020-11-14T13:38:44+00:00" }, { "name": "doctrine/doctrine-cache-bundle", @@ -755,37 +909,43 @@ }, { "name": "doctrine/doctrine-migrations-bundle", - "version": "v1.3.2", + "version": "3.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", - "reference": "49fa399181db4bf4f9f725126bd1cb65c4398dce" + "reference": "3393f411ba25ade21969c33f2053220044854d01" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce", - "reference": "49fa399181db4bf4f9f725126bd1cb65c4398dce", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/3393f411ba25ade21969c33f2053220044854d01", + "reference": "3393f411ba25ade21969c33f2053220044854d01", "shasum": "" }, "require": { - "doctrine/doctrine-bundle": "~1.0", - "doctrine/migrations": "^1.1", - "php": ">=5.4.0", - "symfony/framework-bundle": "~2.7|~3.3|~4.0" + "doctrine/doctrine-bundle": "~1.0|~2.0", + "doctrine/migrations": "^3.2", + "php": "^7.2|^8.0", + "symfony/framework-bundle": "~3.4|~4.0|~5.0|~6.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^7.4" + "doctrine/coding-standard": "^8.0", + "doctrine/orm": "^2.6", + "doctrine/persistence": "^1.3||^2.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^8.0|^9.0", + "vimeo/psalm": "^4.11" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Bundle\\MigrationsBundle\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -793,20 +953,20 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org" + "homepage": "https://www.doctrine-project.org" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony DoctrineMigrationsBundle", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org", "keywords": [ "dbal", "migrations", @@ -814,44 +974,55 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", - "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/1.3" + "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.2.2" }, - "time": "2018-12-03T11:55:33+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-migrations-bundle", + "type": "tidelift" + } + ], + "time": "2022-02-01T18:08:07+00:00" }, { - "name": "doctrine/inflector", - "version": "1.4.4", + "name": "doctrine/event-manager", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9" + "url": "https://github.com/doctrine/event-manager.git", + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", - "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", "shasum": "" }, "require": { + "doctrine/deprecations": "^0.5.3 || ^1", "php": "^7.1 || ^8.0" }, + "conflict": { + "doctrine/common": "<2.9" + }, "require-dev": { - "doctrine/coding-standard": "^8.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.8", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.24" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector", - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" + "Doctrine\\Common\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -878,25 +1049,24 @@ { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", - "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", "keywords": [ - "inflection", - "inflector", - "lowercase", - "manipulation", - "php", - "plural", - "singular", - "strings", - "uppercase", - "words" + "event", + "event dispatcher", + "event manager", + "event system", + "events" ], "support": { - "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/1.4.4" + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.2.0" }, "funding": [ { @@ -908,38 +1078,134 @@ "type": "patreon" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", "type": "tidelift" } ], - "time": "2021-04-16T17:34:40+00:00" + "time": "2022-10-12T20:51:15+00:00" }, { - "name": "doctrine/instantiator", - "version": "1.4.1", + "name": "doctrine/inflector", + "version": "1.4.4", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + "url": "https://github.com/doctrine/inflector.git", + "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", + "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "doctrine/coding-standard": "^8.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector", + "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/1.4.4" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2021-04-16T17:34:40+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" }, "type": "library", "autoload": { @@ -1062,55 +1328,68 @@ }, { "name": "doctrine/migrations", - "version": "v1.5.0", + "version": "3.4.2", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "c81147c0f2938a6566594455367e095150547f72" + "reference": "f9b4c8032276460afd9dfa62fb215734b4380d90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/c81147c0f2938a6566594455367e095150547f72", - "reference": "c81147c0f2938a6566594455367e095150547f72", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/f9b4c8032276460afd9dfa62fb215734b4380d90", + "reference": "f9b4c8032276460afd9dfa62fb215734b4380d90", "shasum": "" }, "require": { - "doctrine/dbal": "~2.2", - "ocramius/proxy-manager": "^1.0|^2.0", - "php": "^5.5|^7.0", - "symfony/console": "~2.3|~3.0", - "symfony/yaml": "~2.3|~3.0" + "composer-runtime-api": "^2", + "doctrine/dbal": "^2.11 || ^3.0", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.0", + "friendsofphp/proxy-manager-lts": "^1.0", + "php": "^7.2 || ^8.0", + "psr/log": "^1.1.3 || ^2 || ^3", + "symfony/console": "^3.4 || ^4.4.16 || ^5.0 || ^6.0", + "symfony/stopwatch": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { - "doctrine/coding-standard": "dev-master", - "doctrine/orm": "2.*", - "jdorn/sql-formatter": "~1.1", - "johnkary/phpunit-speedtrap": "~1.0@dev", - "mikey179/vfsstream": "^1.6", - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "~4.7", - "satooshi/php-coveralls": "^1.0" + "doctrine/coding-standard": "^9", + "doctrine/orm": "^2.6", + "doctrine/persistence": "^1.3 || ^2.0", + "doctrine/sql-formatter": "^1.0", + "ergebnis/composer-normalize": "^2.9", + "ext-pdo_sqlite": "*", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.1", + "phpstan/phpstan-symfony": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.4", + "symfony/cache": "^3.4.26 || ^4.2.12 || ^5.0 || ^6.0", + "symfony/process": "^3.4 || ^4.0 || ^5.0 || ^6.0", + "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, "suggest": { - "jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command." + "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.", + "symfony/yaml": "Allows the use of yaml for migration configuration files." }, "bin": [ "bin/doctrine-migrations" ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "v1.6.x-dev" + "composer-normalize": { + "indent-size": 4, + "indent-style": "space" } }, "autoload": { "psr-4": { - "Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations" + "Doctrine\\Migrations\\": "lib/Doctrine/Migrations" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1" + "MIT" ], "authors": [ { @@ -1126,62 +1405,85 @@ "email": "contact@mikesimonson.com" } ], - "description": "Database Schema migrations using Doctrine DBAL", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.", + "homepage": "https://www.doctrine-project.org/projects/migrations.html", "keywords": [ "database", + "dbal", "migrations" ], "support": { "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/master" + "source": "https://github.com/doctrine/migrations/tree/3.4.2" }, - "time": "2016-12-25T22:54:00+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fmigrations", + "type": "tidelift" + } + ], + "time": "2022-04-01T06:38:22+00:00" }, { "name": "doctrine/orm", - "version": "v2.5.14", + "version": "2.7.5", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754" + "reference": "01187c9260cd085529ddd1273665217cae659640" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/810a7baf81462a5ddf10e8baa8cb94b6eec02754", - "reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754", + "url": "https://api.github.com/repos/doctrine/orm/zipball/01187c9260cd085529ddd1273665217cae659640", + "reference": "01187c9260cd085529ddd1273665217cae659640", "shasum": "" }, "require": { - "doctrine/cache": "~1.4", - "doctrine/collections": "~1.2", - "doctrine/common": ">=2.5-dev,<2.9-dev", - "doctrine/dbal": ">=2.5-dev,<2.7-dev", - "doctrine/instantiator": "^1.0.1", + "composer/package-versions-deprecated": "^1.8", + "doctrine/annotations": "^1.11.1", + "doctrine/cache": "^1.9.1", + "doctrine/collections": "^1.5", + "doctrine/common": "^2.11 || ^3.0", + "doctrine/dbal": "^2.9.3", + "doctrine/event-manager": "^1.1", + "doctrine/inflector": "^1.0", + "doctrine/instantiator": "^1.3", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^1.3.3 || ^2.0", "ext-pdo": "*", - "php": ">=5.4", - "symfony/console": "~2.5|~3.0|~4.0" + "php": "^7.1", + "symfony/console": "^3.0|^4.0|^5.0" }, "require-dev": { - "phpunit/phpunit": "~4.0", - "symfony/yaml": "~2.3|~3.0|~4.0" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.12.18", + "phpunit/phpunit": "^8.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "vimeo/psalm": "^3.11" }, "suggest": { "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" }, "bin": [ - "bin/doctrine", - "bin/doctrine.php" + "bin/doctrine" ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6.x-dev" + "dev-master": "2.7.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\ORM\\": "lib/" + "psr-4": { + "Doctrine\\ORM\\": "lib/Doctrine/ORM" } }, "notification-url": "https://packagist.org/downloads/", @@ -1189,6 +1491,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -1197,112 +1503,162 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], "description": "Object-Relational-Mapper for PHP", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org/projects/orm.html", "keywords": [ "database", "orm" ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/v2.5.14" + "source": "https://github.com/doctrine/orm/tree/2.7.5" }, - "time": "2017-12-17T02:57:51+00:00" + "time": "2020-12-03T08:52:14+00:00" }, { - "name": "ezyang/htmlpurifier", - "version": "v4.14.0", + "name": "doctrine/persistence", + "version": "1.3.8", "source": { "type": "git", - "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75" + "url": "https://github.com/doctrine/persistence.git", + "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/12ab42bd6e742c70c0a52f7b82477fcd44e64b75", - "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/7a6eac9fb6f61bba91328f15aa7547f4806ca288", + "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288", "shasum": "" }, "require": { - "php": ">=5.2" + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/reflection": "^1.2", + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": "<2.10@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "vimeo/psalm": "^3.11" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, "autoload": { - "files": [ - "library/HTMLPurifier.composer.php" - ], - "psr-0": { - "HTMLPurifier": "library/" - }, - "exclude-from-classmap": [ - "/library/HTMLPurifier/Language/" - ] + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common", + "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1-or-later" + "MIT" ], "authors": [ { - "name": "Edward Z. Yang", - "email": "admin@htmlpurifier.org", - "homepage": "http://ezyang.com" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Standards compliant HTML filter written in PHP", - "homepage": "http://htmlpurifier.org/", + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://doctrine-project.org/projects/persistence.html", "keywords": [ - "html" + "mapper", + "object", + "odm", + "orm", + "persistence" ], "support": { - "issues": "https://github.com/ezyang/htmlpurifier/issues", - "source": "https://github.com/ezyang/htmlpurifier/tree/v4.14.0" + "issues": "https://github.com/doctrine/persistence/issues", + "source": "https://github.com/doctrine/persistence/tree/1.3.x" }, - "time": "2021-12-25T01:21:49+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence", + "type": "tidelift" + } + ], + "time": "2020-06-20T12:56:16+00:00" }, { - "name": "fig/link-util", - "version": "1.1.2", + "name": "doctrine/reflection", + "version": "1.2.3", "source": { "type": "git", - "url": "https://github.com/php-fig/link-util.git", - "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8" + "url": "https://github.com/doctrine/reflection.git", + "reference": "1034e5e71f89978b80f9c1570e7226f6c3b9b6fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/link-util/zipball/5d7b8d04ed3393b4b59968ca1e906fb7186d81e8", - "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8", + "url": "https://api.github.com/repos/doctrine/reflection/zipball/1034e5e71f89978b80f9c1570e7226f6c3b9b6fb", + "reference": "1034e5e71f89978b80f9c1570e7226f6c3b9b6fb", "shasum": "" }, "require": { - "php": ">=5.5.0", - "psr/link": "~1.0@dev" + "doctrine/annotations": "^1.0", + "ext-tokenizer": "*", + "php": "^7.1 || ^8.0" }, - "provide": { - "psr/link-implementation": "1.0" + "conflict": { + "doctrine/common": "<2.9" }, "require-dev": { - "phpunit/phpunit": "^5.1", - "squizlabs/php_codesniffer": "^2.3.1" + "doctrine/coding-standard": "^9", + "doctrine/common": "^3.3", + "phpstan/phpstan": "^1.4.10", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { - "Fig\\Link\\": "src/" + "Doctrine\\Common\\": "lib/Doctrine/Common" } }, "notification-url": "https://packagist.org/downloads/", @@ -1311,68 +1667,311 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Common utility implementations for HTTP links", + "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.", + "homepage": "https://www.doctrine-project.org/projects/reflection.html", "keywords": [ - "http", - "http-link", - "link", - "psr", - "psr-13", - "rest" + "reflection", + "static" ], "support": { - "issues": "https://github.com/php-fig/link-util/issues", - "source": "https://github.com/php-fig/link-util/tree/1.1.2" + "issues": "https://github.com/doctrine/reflection/issues", + "source": "https://github.com/doctrine/reflection/tree/1.2.3" }, - "time": "2021-02-03T23:36:04+00:00" + "abandoned": "roave/better-reflection", + "time": "2022-05-31T18:46:25+00:00" }, { - "name": "gedmo/doctrine-extensions", - "version": "v2.4.42", + "name": "egulias/email-validator", + "version": "3.2.1", "source": { "type": "git", - "url": "https://github.com/Atlantic18/DoctrineExtensions.git", - "reference": "b6c4442b4f32ce05673fbdf1fa4a2d5e315cc0a4" + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/b6c4442b4f32ce05673fbdf1fa4a2d5e315cc0a4", - "reference": "b6c4442b4f32ce05673fbdf1fa4a2d5e315cc0a4", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/f88dcf4b14af14a98ad96b14b2b317969eab6715", + "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.2", + "php": ">=7.2", + "symfony/polyfill-intl-idn": "^1.15" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/3.2.1" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2022-06-18T20:57:19+00:00" + }, + { + "name": "ezyang/htmlpurifier", + "version": "v4.16.0", + "source": { + "type": "git", + "url": "https://github.com/ezyang/htmlpurifier.git", + "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8", + "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8", + "shasum": "" + }, + "require": { + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0" + }, + "require-dev": { + "cerdic/css-tidy": "^1.7 || ^2.0", + "simpletest/simpletest": "dev-master" + }, + "suggest": { + "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.", + "ext-bcmath": "Used for unit conversion and imagecrash protection", + "ext-iconv": "Converts text to and from non-UTF-8 encodings", + "ext-tidy": "Used for pretty-printing HTML" + }, + "type": "library", + "autoload": { + "files": [ + "library/HTMLPurifier.composer.php" + ], + "psr-0": { + "HTMLPurifier": "library/" + }, + "exclude-from-classmap": [ + "/library/HTMLPurifier/Language/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Edward Z. Yang", + "email": "admin@htmlpurifier.org", + "homepage": "http://ezyang.com" + } + ], + "description": "Standards compliant HTML filter written in PHP", + "homepage": "http://htmlpurifier.org/", + "keywords": [ + "html" + ], + "support": { + "issues": "https://github.com/ezyang/htmlpurifier/issues", + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.16.0" + }, + "time": "2022-09-18T07:06:19+00:00" + }, + { + "name": "friendsofphp/proxy-manager-lts", + "version": "v1.0.13", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git", + "reference": "88354616f4cf4f6620910fd035e282173ba453e8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/88354616f4cf4f6620910fd035e282173ba453e8", + "reference": "88354616f4cf4f6620910fd035e282173ba453e8", + "shasum": "" + }, + "require": { + "laminas/laminas-code": "~3.4.1|^4.0", + "php": ">=7.1", + "symfony/filesystem": "^4.4.17|^5.0|^6.0" + }, + "conflict": { + "laminas/laminas-stdlib": "<3.2.1", + "zendframework/zend-stdlib": "<3.2.1" + }, + "replace": { + "ocramius/proxy-manager": "^2.1" + }, + "require-dev": { + "ext-phar": "*", + "symfony/phpunit-bridge": "^5.4|^6.0" + }, + "type": "library", + "extra": { + "thanks": { + "name": "ocramius/proxy-manager", + "url": "https://github.com/Ocramius/ProxyManager" + } + }, + "autoload": { + "psr-4": { + "ProxyManager\\": "src/ProxyManager" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + } + ], + "description": "Adding support for a wider range of PHP versions to ocramius/proxy-manager", + "homepage": "https://github.com/FriendsOfPHP/proxy-manager-lts", + "keywords": [ + "aop", + "lazy loading", + "proxy", + "proxy pattern", + "service proxies" + ], + "support": { + "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues", + "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.13" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager", + "type": "tidelift" + } + ], + "time": "2022-10-17T19:48:16+00:00" + }, + { + "name": "gedmo/doctrine-extensions", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine-extensions/DoctrineExtensions.git", + "reference": "8c02cee09e3dd43799ec3b84b619b19982c47f43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine-extensions/DoctrineExtensions/zipball/8c02cee09e3dd43799ec3b84b619b19982c47f43", + "reference": "8c02cee09e3dd43799ec3b84b619b19982c47f43", "shasum": "" }, "require": { "behat/transliterator": "~1.2", - "doctrine/common": "~2.4", - "php": ">=5.3.2" + "doctrine/annotations": "^1.13", + "doctrine/collections": "^1.0", + "doctrine/common": "^2.13 || ^3.0", + "doctrine/event-manager": "^1.0", + "php": "^7.2 || ^8.0" }, "conflict": { - "doctrine/annotations": "<1.2", - "doctrine/mongodb-odm": ">=2.0" + "doctrine/mongodb": "<1.3", + "doctrine/mongodb-odm": "<2.0", + "doctrine/orm": ">=2.10", + "sebastian/comparator": "<2.0" + }, + "provide": { + "ext-mongo": "1.6.12" }, "require-dev": { - "doctrine/common": ">=2.5.0", - "doctrine/mongodb-odm": ">=1.0.2 <2.0", - "doctrine/orm": ">=2.5.0", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5", - "symfony/yaml": "^2.6 || ^3.0 || ^4.0 || ^5.0" + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/dbal": "^2.13", + "doctrine/doctrine-bundle": "^2.3", + "doctrine/mongodb-odm": "^2.0", + "doctrine/orm": "^2.9.6", + "friendsofphp/php-cs-fixer": "^3.0", + "phpunit/phpunit": "^8.5", + "symfony/cache": "^4.4 || ^5.0", + "symfony/yaml": "^4.1" }, "suggest": { "doctrine/mongodb-odm": "to use the extensions with the MongoDB ODM", - "doctrine/orm": "to use the extensions with the ORM" + "doctrine/orm": "to use the extensions with the ORM", + "symfony/cache": "to cache parsed annotations" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { "psr-4": { - "Gedmo\\": "lib/Gedmo" + "Gedmo\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1412,11 +2011,11 @@ ], "support": { "email": "gediminas.morkevicius@gmail.com", - "issues": "https://github.com/Atlantic18/DoctrineExtensions/issues", - "source": "https://github.com/Atlantic18/DoctrineExtensions/tree/v3.0.0-beta", - "wiki": "https://github.com/Atlantic18/DoctrineExtensions/tree/master/doc" + "issues": "https://github.com/doctrine-extensions/DoctrineExtensions/issues", + "source": "https://github.com/doctrine-extensions/DoctrineExtensions/tree/v3.2.0", + "wiki": "https://github.com/Atlantic18/DoctrineExtensions/tree/main/doc" }, - "time": "2020-08-21T01:27:20+00:00" + "time": "2021-10-05T15:25:14+00:00" }, { "name": "guzzlehttp/guzzle", @@ -1727,61 +2326,6 @@ ], "time": "2022-06-20T21:43:03+00:00" }, - { - "name": "incenteev/composer-parameter-handler", - "version": "v2.1.5", - "source": { - "type": "git", - "url": "https://github.com/Incenteev/ParameterHandler.git", - "reference": "e1dd118763503f7fd766f907013e1d76d525fcc4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/e1dd118763503f7fd766f907013e1d76d525fcc4", - "reference": "e1dd118763503f7fd766f907013e1d76d525fcc4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "symfony/yaml": "^2.3 || ^3.0 || ^4.0 || ^5.0 || ^6.0" - }, - "require-dev": { - "composer/composer": "^1.0@dev", - "symfony/filesystem": "^2.3 || ^3 || ^4 || ^5 || ^6.0", - "symfony/phpunit-bridge": "^3.4.47 || ^4.4.41 || ^5.4.8 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Incenteev\\ParameterHandler\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christophe Coevoet", - "email": "stof@notk.org" - } - ], - "description": "Composer script handling your ignored parameter file", - "homepage": "https://github.com/Incenteev/ParameterHandler", - "keywords": [ - "parameters management" - ], - "support": { - "issues": "https://github.com/Incenteev/ParameterHandler/issues", - "source": "https://github.com/Incenteev/ParameterHandler/tree/v2.1.5" - }, - "time": "2022-05-25T10:57:22+00:00" - }, { "name": "jdorn/sql-formatter", "version": "v1.2.17", @@ -2026,122 +2570,324 @@ "time": "2019-09-19T08:51:48+00:00" }, { - "name": "league/tactician", - "version": "v1.1.0", + "name": "laminas/laminas-code", + "version": "3.4.1", "source": { "type": "git", - "url": "https://github.com/thephpleague/tactician.git", - "reference": "e79f763170f3d5922ec29e85cffca0bac5cd8975" + "url": "https://github.com/laminas/laminas-code.git", + "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/tactician/zipball/e79f763170f3d5922ec29e85cffca0bac5cd8975", - "reference": "e79f763170f3d5922ec29e85cffca0bac5cd8975", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/1cb8f203389ab1482bf89c0e70a04849bacd7766", + "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766", "shasum": "" }, "require": { - "php": ">=7.1" + "laminas/laminas-eventmanager": "^2.6 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.1" + }, + "conflict": { + "phpspec/prophecy": "<1.9.0" + }, + "replace": { + "zendframework/zend-code": "self.version" }, "require-dev": { - "mockery/mockery": "^1.3", - "phpunit/phpunit": "^7.5.20 || ^9.3.8", - "squizlabs/php_codesniffer": "^3.5.8" + "doctrine/annotations": "^1.7", + "ext-phar": "*", + "laminas/laminas-coding-standard": "^1.0", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "phpunit/phpunit": "^7.5.16 || ^8.4" + }, + "suggest": { + "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", + "laminas/laminas-stdlib": "Laminas\\Stdlib component" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.4.x-dev", + "dev-develop": "3.5.x-dev", + "dev-dev-4.0": "4.0.x-dev" } }, "autoload": { "psr-4": { - "League\\Tactician\\": "src" + "Laminas\\Code\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ross Tuck", - "homepage": "http://tactician.thephpleague.com" - } + "BSD-3-Clause" ], - "description": "A small, flexible command bus. Handy for building service layers.", + "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", + "homepage": "https://laminas.dev", "keywords": [ - "command", - "command bus", - "service layer" + "code", + "laminas" ], "support": { - "issues": "https://github.com/thephpleague/tactician/issues", - "source": "https://github.com/thephpleague/tactician/tree/v1.1.0" - }, - "time": "2021-02-14T15:29:04+00:00" + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-code/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-code/issues", + "rss": "https://github.com/laminas/laminas-code/releases.atom", + "source": "https://github.com/laminas/laminas-code" + }, + "time": "2019-12-31T16:28:24+00:00" }, { - "name": "league/tactician-bundle", - "version": "v0.4.1", + "name": "laminas/laminas-eventmanager", + "version": "3.2.1", "source": { "type": "git", - "url": "https://github.com/thephpleague/tactician-bundle.git", - "reference": "14b38eb1d855fdd805eee2f6c1c20e956534381f" + "url": "https://github.com/laminas/laminas-eventmanager.git", + "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/tactician-bundle/zipball/14b38eb1d855fdd805eee2f6c1c20e956534381f", - "reference": "14b38eb1d855fdd805eee2f6c1c20e956534381f", + "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", + "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", "shasum": "" }, "require": { - "league/tactician": "^1.0", - "php": ">=5.5", - "symfony/config": "^2.3|^3.0", - "symfony/dependency-injection": "^2.3|^3.0", - "symfony/http-kernel": "^2.3|^3.0", - "symfony/yaml": "^2.3|^3.0" + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-eventmanager": "self.version" }, "require-dev": { - "league/tactician-doctrine": "^1.0", - "matthiasnoback/symfony-config-test": "~1.0", - "matthiasnoback/symfony-dependency-injection-test": "^0.7", - "mockery/mockery": "~0.9.4", - "phpunit/phpunit": "~4.5", - "symfony/validator": "^2.3|^3.0" + "athletic/athletic": "^0.1", + "container-interop/container-interop": "^1.1.0", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-stdlib": "^2.7.3 || ^3.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" }, "suggest": { - "league/tactician-doctrine": "For doctrine transaction middleware", - "symfony/validator": "For command validator middleware" + "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", + "laminas/laminas-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" }, - "type": "symfony-bundle", + "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "3.2-dev", + "dev-develop": "3.3-dev" } }, "autoload": { "psr-4": { - "League\\Tactician\\Bundle\\": "" + "Laminas\\EventManager\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], - "authors": [ - { + "description": "Trigger and listen to events within a PHP application", + "homepage": "https://laminas.dev", + "keywords": [ + "event", + "eventmanager", + "events", + "laminas" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-eventmanager/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-eventmanager/issues", + "rss": "https://github.com/laminas/laminas-eventmanager/releases.atom", + "source": "https://github.com/laminas/laminas-eventmanager" + }, + "time": "2019-12-31T16:44:52+00:00" + }, + { + "name": "laminas/laminas-zendframework-bridge", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-zendframework-bridge.git", + "reference": "6ede70583e101030bcace4dcddd648f760ddf642" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642", + "reference": "6ede70583e101030bcace4dcddd648f760ddf642", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "laminas": { + "module": "Laminas\\ZendFrameworkBridge" + } + }, + "autoload": { + "files": [ + "src/autoload.php" + ], + "psr-4": { + "Laminas\\ZendFrameworkBridge\\": "src//" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Alias legacy ZF class names to Laminas Project equivalents.", + "keywords": [ + "ZendFramework", + "autoloading", + "laminas", + "zf" + ], + "support": { + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-zendframework-bridge/issues", + "rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom", + "source": "https://github.com/laminas/laminas-zendframework-bridge" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-09-14T14:23:00+00:00" + }, + { + "name": "league/tactician", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/tactician.git", + "reference": "e79f763170f3d5922ec29e85cffca0bac5cd8975" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/tactician/zipball/e79f763170f3d5922ec29e85cffca0bac5cd8975", + "reference": "e79f763170f3d5922ec29e85cffca0bac5cd8975", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "mockery/mockery": "^1.3", + "phpunit/phpunit": "^7.5.20 || ^9.3.8", + "squizlabs/php_codesniffer": "^3.5.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Tactician\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ross Tuck", + "homepage": "http://tactician.thephpleague.com" + } + ], + "description": "A small, flexible command bus. Handy for building service layers.", + "keywords": [ + "command", + "command bus", + "service layer" + ], + "support": { + "issues": "https://github.com/thephpleague/tactician/issues", + "source": "https://github.com/thephpleague/tactician/tree/v1.1.0" + }, + "time": "2021-02-14T15:29:04+00:00" + }, + { + "name": "league/tactician-bundle", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/tactician-bundle.git", + "reference": "8340e83ded7c804d2b2c417a0f697fac9c15e520" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/tactician-bundle/zipball/8340e83ded7c804d2b2c417a0f697fac9c15e520", + "reference": "8340e83ded7c804d2b2c417a0f697fac9c15e520", + "shasum": "" + }, + "require": { + "league/tactician": "^1.0", + "league/tactician-container": "^2.0|^3.0", + "league/tactician-logger": "^0.10|^0.11", + "php": ">=7.2", + "symfony/config": "^3.4|^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^3.4|^4.4|^5.0|^6.0", + "symfony/http-kernel": "^3.4|^4.4|^5.0|^6.0", + "symfony/yaml": "^3.4|^4.4|^5.0|^6.0" + }, + "require-dev": { + "matthiasnoback/symfony-config-test": "^4.2.1", + "matthiasnoback/symfony-dependency-injection-test": "^4.2.1", + "mockery/mockery": "~1.0", + "phpunit/phpunit": "~8.5", + "symfony/console": "^3.4|^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^3.4.31|^4.4|^5.0|^6.0", + "symfony/security-bundle": "^3.4|^4.4|^5.0|^6.0", + "symfony/security-core": "^3.4|^4.4|^5.0|^6.0", + "symfony/validator": "^3.4|^4.4|^5.0|^6.0" + }, + "suggest": { + "league/tactician-doctrine": "For doctrine transaction middleware", + "symfony/console": "For debugging command-to-handler routing using the tactician:debug console command", + "symfony/security": "For command security middleware", + "symfony/validator": "For command validator middleware" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Tactician\\Bundle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { "name": "Rafael Dohms", "homepage": "http://doh.ms" }, - { - "name": "Xander Smalbil", - "email": "xander@videofunk.nl" - }, { "name": "Richard Tuin", "homepage": "http://www.rtuin.nl/" }, + { + "name": "Xander Smalbil", + "email": "xander@videofunk.nl" + }, { "name": "Ross Tuck", "email": "me@rosstuck.com" @@ -2155,9 +2901,116 @@ ], "support": { "issues": "https://github.com/thephpleague/tactician-bundle/issues", - "source": "https://github.com/thephpleague/tactician-bundle/tree/master" + "source": "https://github.com/thephpleague/tactician-bundle/tree/v1.4.0" + }, + "time": "2022-06-15T06:56:49+00:00" + }, + { + "name": "league/tactician-container", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/tactician-container.git", + "reference": "d1a5d884e072b8cafbff802d07766076eb2ffcb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/tactician-container/zipball/d1a5d884e072b8cafbff802d07766076eb2ffcb0", + "reference": "d1a5d884e072b8cafbff802d07766076eb2ffcb0", + "shasum": "" + }, + "require": { + "league/tactician": "^1.0", + "php": ">=5.5", + "psr/container": "^1.0" + }, + "require-dev": { + "league/container": "~2.3", + "phpunit/phpunit": "~4.3", + "squizlabs/php_codesniffer": "~2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Tactician\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nigel Greenway", + "homepage": "http://futurepixels.co.uk" + } + ], + "description": "Tactician integration for any container implementing PSR-11", + "keywords": [ + "container", + "container-interop", + "di", + "interoperable", + "league", + "tactician" + ], + "support": { + "issues": "https://github.com/thephpleague/tactician-container/issues", + "source": "https://github.com/thephpleague/tactician-container/tree/master" + }, + "time": "2017-04-13T06:27:12+00:00" + }, + { + "name": "league/tactician-logger", + "version": "v0.10.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/tactician-logger.git", + "reference": "3ff9ee04e4cbec100af827f829ed4c7ff7c08442" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/tactician-logger/zipball/3ff9ee04e4cbec100af827f829ed4c7ff7c08442", + "reference": "3ff9ee04e4cbec100af827f829ed4c7ff7c08442", + "shasum": "" + }, + "require": { + "league/tactician": "^1.0", + "php": ">=5.5.0", + "psr/log": "~1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9", + "phpunit/phpunit": "4.*", + "squizlabs/php_codesniffer": "~2.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Tactician\\Logger\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ross Tuck" + } + ], + "description": "Adds PSR-3 logging support to the Tactician command bus", + "homepage": "https://github.com/thephpleague/tactician-logger", + "keywords": [ + "log", + "logging", + "tactician" + ], + "support": { + "issues": "https://github.com/thephpleague/tactician-logger/issues", + "source": "https://github.com/thephpleague/tactician-logger/tree/master" }, - "time": "2016-04-21T08:00:01+00:00" + "time": "2016-08-23T05:50:38+00:00" }, { "name": "lesstif/php-jira-rest-client", @@ -2225,34 +3078,31 @@ }, { "name": "lexik/translation-bundle", - "version": "v4.0.14", + "version": "v4.4.0", "source": { "type": "git", "url": "https://github.com/lexik/LexikTranslationBundle.git", - "reference": "b110bc15a0bff04111b0ea12911a9a73dd08569b" + "reference": "090b6ad0388cb1083b3b922edb0edb94042fa064" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lexik/LexikTranslationBundle/zipball/b110bc15a0bff04111b0ea12911a9a73dd08569b", - "reference": "b110bc15a0bff04111b0ea12911a9a73dd08569b", + "url": "https://api.github.com/repos/lexik/LexikTranslationBundle/zipball/090b6ad0388cb1083b3b922edb0edb94042fa064", + "reference": "090b6ad0388cb1083b3b922edb0edb94042fa064", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "symfony/framework-bundle": "~2.8|~3.0|~4.0" + "php": "^7.1", + "symfony/framework-bundle": "^4.0" }, "require-dev": { + "alcaeus/mongo-php-adapter": "~1.0", "doctrine/data-fixtures": "~1.1", "doctrine/doctrine-bundle": "~1.2", "doctrine/mongodb-odm-bundle": "~3.0", - "doctrine/orm": "^2.2.3", - "phpunit/phpunit": "^5.7", - "propel/propel": "@dev", - "propel/propel-bundle": "^3.0@dev|^4.0@dev" - }, - "suggest": { - "doctrine/mongodb-odm-bundle": "~3.0", - "doctrine/orm": ">=2.4" + "doctrine/orm": ">=2.4", + "phpunit/phpunit": "~7.5.2", + "propel/propel": "2.0.0-alpha10|dev-master", + "symfony/symfony": "~4.4" }, "type": "symfony-bundle", "extra": { @@ -2282,16 +3132,16 @@ "description": "This bundle allows to import translation files content into the database and provide a GUI to edit translations.", "homepage": "https://github.com/lexik/LexikTranslationBundle", "keywords": [ - "Symfony2", "bundle", "i18n", + "symfony", "translation" ], "support": { "issues": "https://github.com/lexik/LexikTranslationBundle/issues", - "source": "https://github.com/lexik/LexikTranslationBundle/tree/v4.0.14" + "source": "https://github.com/lexik/LexikTranslationBundle/tree/v4.4.0" }, - "time": "2019-08-01T06:13:53+00:00" + "time": "2021-01-26T07:40:30+00:00" }, { "name": "monolog/monolog", @@ -2499,90 +3349,79 @@ "time": "2019-08-15T19:41:25+00:00" }, { - "name": "ocramius/proxy-manager", - "version": "1.0.2", + "name": "nikic/php-parser", + "version": "v4.15.2", "source": { "type": "git", - "url": "https://github.com/Ocramius/ProxyManager.git", - "reference": "57e9272ec0e8deccf09421596e0e2252df440e11" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/57e9272ec0e8deccf09421596e0e2252df440e11", - "reference": "57e9272ec0e8deccf09421596e0e2252df440e11", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", "shasum": "" }, "require": { - "php": ">=5.3.3", - "zendframework/zend-code": ">2.2.5,<3.0" + "ext-tokenizer": "*", + "php": ">=7.0" }, "require-dev": { - "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "1.5.*" - }, - "suggest": { - "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects", - "zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)", - "zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)", - "zendframework/zend-stdlib": "To use the hydrator proxy", - "zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)" + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, + "bin": [ + "bin/php-parse" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "4.9-dev" } }, "autoload": { - "psr-0": { - "ProxyManager\\": "src" + "psr-4": { + "PhpParser\\": "lib/PhpParser" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "name": "Nikita Popov" } ], - "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies", - "homepage": "https://github.com/Ocramius/ProxyManager", + "description": "A PHP parser written in PHP", "keywords": [ - "aop", - "lazy loading", - "proxy", - "proxy pattern", - "service proxies" + "parser", + "php" ], "support": { - "issues": "https://github.com/Ocramius/ProxyManager/issues", - "source": "https://github.com/Ocramius/ProxyManager/tree/1.0.x" + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" }, - "time": "2015-08-09T04:28:19+00:00" + "time": "2022-11-12T15:38:23+00:00" }, { "name": "openconext/monitor-bundle", - "version": "1.0.5", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/OpenConext/Monitor-bundle.git", - "reference": "0c1fe3abfb68e5c315ccf651fa4a23b98d6ad2e0" + "reference": "f06e967b702bc5d78d85c39ba4a90219af152a67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenConext/Monitor-bundle/zipball/0c1fe3abfb68e5c315ccf651fa4a23b98d6ad2e0", - "reference": "0c1fe3abfb68e5c315ccf651fa4a23b98d6ad2e0", + "url": "https://api.github.com/repos/OpenConext/Monitor-bundle/zipball/f06e967b702bc5d78d85c39ba4a90219af152a67", + "reference": "f06e967b702bc5d78d85c39ba4a90219af152a67", "shasum": "" }, "require": { "php": ">=5.4,<8.0-dev", - "symfony/dependency-injection": ">=2.7,<4", - "symfony/framework-bundle": ">=2.7,<4", + "symfony/dependency-injection": ">=3.4,<5", + "symfony/framework-bundle": ">=3.4,<5", "webmozart/assert": "^1.2" }, "require-dev": { @@ -2607,7 +3446,7 @@ "license": [ "Apache-2.0" ], - "description": "A Symfony 3 bundle that facilitates health and info endpoints to a Symfony application. The bundle is backwards compatible with Symfony 2 projects.", + "description": "A Symfony 4 bundle that facilitates health and info endpoints to a Symfony application. The bundle is backwards compatible with Symfony 2 projects.", "keywords": [ "OpenConext", "health", @@ -2617,85 +3456,39 @@ ], "support": { "issues": "https://github.com/OpenConext/Monitor-bundle/issues", - "source": "https://github.com/OpenConext/Monitor-bundle/tree/master" + "source": "https://github.com/OpenConext/Monitor-bundle/tree/2.1.0" }, - "time": "2018-09-12T13:38:01+00:00" + "time": "2021-09-28T11:09:57+00:00" }, { - "name": "paragonie/random_compat", - "version": "v9.99.100", + "name": "phpoption/phpoption", + "version": "1.9.0", "source": { "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", - "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", "shasum": "" }, "require": { - "php": ">= 7" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "support": { - "email": "info@paragonie.com", - "issues": "https://github.com/paragonie/random_compat/issues", - "source": "https://github.com/paragonie/random_compat" - }, - "time": "2020-10-15T08:29:30+00:00" - }, - { - "name": "phpoption/phpoption", - "version": "1.8.1", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/php-option.git", - "reference": "eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15", - "reference": "eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "phpunit/phpunit": "^6.5.14 || ^7.5.20 || ^8.5.19 || ^9.5.8" + "bamarni/composer-bin-plugin": "^1.8", + "phpunit/phpunit": "^8.5.28 || ^9.5.21" }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -2728,7 +3521,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.8.1" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.0" }, "funding": [ { @@ -2740,7 +3533,7 @@ "type": "tidelift" } ], - "time": "2021-12-04T23:24:31+00:00" + "time": "2022-07-30T15:51:26+00:00" }, { "name": "psr/cache", @@ -2892,58 +3685,6 @@ }, "time": "2016-08-06T14:39:51+00:00" }, - { - "name": "psr/link", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/link.git", - "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562", - "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Link\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for HTTP links", - "keywords": [ - "http", - "http-link", - "link", - "psr", - "psr-13", - "rest" - ], - "support": { - "source": "https://github.com/php-fig/link/tree/master" - }, - "time": "2016-10-28T16:06:13+00:00" - }, { "name": "psr/log", "version": "1.1.4", @@ -2994,57 +3735,6 @@ }, "time": "2021-05-03T11:20:27+00:00" }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "support": { - "source": "https://github.com/php-fig/simple-cache/tree/master" - }, - "time": "2017-10-23T01:57:42+00:00" - }, { "name": "ralouphie/getallheaders", "version": "3.0.3", @@ -3236,115 +3926,64 @@ }, "time": "2020-09-05T13:00:25+00:00" }, - { - "name": "sensio/distribution-bundle", - "version": "v5.0.25", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/SensioDistributionBundle.git", - "reference": "80a38234bde8321fb92aa0b8c27978a272bb4baf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/80a38234bde8321fb92aa0b8c27978a272bb4baf", - "reference": "80a38234bde8321fb92aa0b8c27978a272bb4baf", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "sensiolabs/security-checker": "~5.0|~6.0", - "symfony/class-loader": "~2.3|~3.0", - "symfony/config": "~2.3|~3.0", - "symfony/dependency-injection": "~2.3|~3.0", - "symfony/filesystem": "~2.3|~3.0", - "symfony/http-kernel": "~2.3|~3.0", - "symfony/process": "~2.3|~3.0" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Sensio\\Bundle\\DistributionBundle\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Base bundle for Symfony Distributions", - "keywords": [ - "configuration", - "distribution" - ], - "support": { - "issues": "https://github.com/sensiolabs/SensioDistributionBundle/issues", - "source": "https://github.com/sensiolabs/SensioDistributionBundle/tree/master" - }, - "abandoned": true, - "time": "2019-06-18T15:43:58+00:00" - }, { "name": "sensio/framework-extra-bundle", - "version": "v3.0.29", + "version": "v5.6.1", "source": { "type": "git", "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "bb907234df776b68922eb4b25bfa061683597b6a" + "reference": "430d14c01836b77c28092883d195a43ce413ee32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb907234df776b68922eb4b25bfa061683597b6a", - "reference": "bb907234df776b68922eb4b25bfa061683597b6a", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/430d14c01836b77c28092883d195a43ce413ee32", + "reference": "430d14c01836b77c28092883d195a43ce413ee32", "shasum": "" }, "require": { - "doctrine/common": "~2.2", - "symfony/dependency-injection": "~2.3|~3.0", - "symfony/framework-bundle": "~2.3|~3.0|~4.0" + "doctrine/annotations": "^1.0", + "php": ">=7.2.5", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0" }, - "require-dev": { - "doctrine/doctrine-bundle": "~1.5", - "doctrine/orm": "~2.4,>=2.4.5", - "symfony/asset": "~2.7|~3.0|~4.0", - "symfony/browser-kit": "~2.3|~3.0|~4.0", - "symfony/dom-crawler": "~2.3|~3.0|~4.0", - "symfony/expression-language": "~2.4|~3.0|~4.0", - "symfony/finder": "~2.3|~3.0|~4.0", - "symfony/phpunit-bridge": "~3.2|~4.0", - "symfony/psr-http-message-bridge": "^0.3|^1.0", - "symfony/security-bundle": "~2.4|~3.0|~4.0", - "symfony/templating": "~2.3|~3.0|~4.0", - "symfony/translation": "~2.3|~3.0|~4.0", - "symfony/twig-bundle": "~2.3|~3.0|~4.0", - "symfony/yaml": "~2.3|~3.0|~4.0", - "twig/twig": "~1.12|~2.0", - "zendframework/zend-diactoros": "^1.3" + "conflict": { + "doctrine/doctrine-cache-bundle": "<1.3.1", + "doctrine/persistence": "<1.3" }, - "suggest": { - "symfony/expression-language": "", - "symfony/psr-http-message-bridge": "To use the PSR-7 converters", - "symfony/security-bundle": "" + "require-dev": { + "doctrine/dbal": "^2.10|^3.0", + "doctrine/doctrine-bundle": "^1.11|^2.0", + "doctrine/orm": "^2.5", + "nyholm/psr7": "^1.1", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/doctrine-bridge": "^4.4|^5.0", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/monolog-bridge": "^4.0|^5.0", + "symfony/monolog-bundle": "^3.2", + "symfony/phpunit-bridge": "^4.4.9|^5.0.9", + "symfony/psr-http-message-bridge": "^1.1", + "symfony/security-bundle": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0", + "twig/twig": "^1.34|^2.4|^3.0" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "5.6.x-dev" } }, "autoload": { "psr-4": { - "Sensio\\Bundle\\FrameworkExtraBundle\\": "" - } + "Sensio\\Bundle\\FrameworkExtraBundle\\": "src/" + }, + "exclude-from-classmap": [ + "/tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3363,62 +4002,9 @@ ], "support": { "issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues", - "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/3.0" - }, - "time": "2017-12-14T19:03:23+00:00" - }, - { - "name": "sensiolabs/security-checker", - "version": "v6.0.3", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/security-checker.git", - "reference": "a576c01520d9761901f269c4934ba55448be4a54" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/a576c01520d9761901f269c4934ba55448be4a54", - "reference": "a576c01520d9761901f269c4934ba55448be4a54", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/console": "^2.8|^3.4|^4.2|^5.0", - "symfony/http-client": "^4.3|^5.0", - "symfony/mime": "^4.3|^5.0", - "symfony/polyfill-ctype": "^1.11" - }, - "bin": [ - "security-checker" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.0-dev" - } - }, - "autoload": { - "psr-4": { - "SensioLabs\\Security\\": "SensioLabs/Security" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien.potencier@gmail.com" - } - ], - "description": "A security checker for your composer.lock", - "support": { - "issues": "https://github.com/sensiolabs/security-checker/issues", - "source": "https://github.com/sensiolabs/security-checker/tree/master" + "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v5.6.1" }, - "abandoned": "https://github.com/fabpot/local-php-security-checker", - "time": "2019-11-01T13:20:14+00:00" + "time": "2020-08-25T19:10:18+00:00" }, { "name": "simplesamlphp/saml2", @@ -3548,40 +4134,45 @@ }, { "name": "stof/doctrine-extensions-bundle", - "version": "v1.3.0", + "version": "v1.7.1", "source": { "type": "git", "url": "https://github.com/stof/StofDoctrineExtensionsBundle.git", - "reference": "46db71ec7ffee9122eca3cdddd4ef8d84bae269c" + "reference": "fa650e60e174afa06c09e28a54fb1854af04c7fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stof/StofDoctrineExtensionsBundle/zipball/46db71ec7ffee9122eca3cdddd4ef8d84bae269c", - "reference": "46db71ec7ffee9122eca3cdddd4ef8d84bae269c", + "url": "https://api.github.com/repos/stof/StofDoctrineExtensionsBundle/zipball/fa650e60e174afa06c09e28a54fb1854af04c7fe", + "reference": "fa650e60e174afa06c09e28a54fb1854af04c7fe", "shasum": "" }, "require": { - "gedmo/doctrine-extensions": "^2.3.4", - "php": ">=5.3.2", - "symfony/framework-bundle": "~2.7|~3.2|~4.0" + "gedmo/doctrine-extensions": "^2.3.4 || ^3.0.0", + "php": "^7.1.3 || ^8.0", + "symfony/config": "^4.4 || ^5.2 || ^6.0", + "symfony/dependency-injection": "^4.4 || ^5.2 || ^6.0", + "symfony/event-dispatcher": "^4.4 || ^5.2 || ^6.0", + "symfony/http-kernel": "^4.4 || ^5.2 || ^6.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.0", - "symfony/security-bundle": "^2.7 || ^3.2 || ^4.0" + "symfony/mime": "^4.4 || ^5.2 || ^6.0", + "symfony/phpunit-bridge": "^v5.2.4 || ^6.0", + "symfony/security-core": "^4.4 || ^5.2 || ^6.0" }, "suggest": { "doctrine/doctrine-bundle": "to use the ORM extensions", - "doctrine/mongodb-odm-bundle": "to use the MongoDB ODM extensions" + "doctrine/mongodb-odm-bundle": "to use the MongoDB ODM extensions", + "symfony/mime": "To use the Mime component integration for Uploadable" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { "psr-4": { - "Stof\\DoctrineExtensionsBundle\\": "" + "Stof\\DoctrineExtensionsBundle\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3594,7 +4185,7 @@ "email": "stof@notk.org" } ], - "description": "Integration of the gedmo/doctrine-extensions with Symfony2", + "description": "Integration of the gedmo/doctrine-extensions with Symfony", "homepage": "https://github.com/stof/StofDoctrineExtensionsBundle", "keywords": [ "behaviors", @@ -3611,43 +4202,45 @@ ], "support": { "issues": "https://github.com/stof/StofDoctrineExtensionsBundle/issues", - "source": "https://github.com/stof/StofDoctrineExtensionsBundle/tree/v1.3.0" + "source": "https://github.com/stof/StofDoctrineExtensionsBundle/tree/v1.7.1" }, - "time": "2017-12-24T16:06:50+00:00" + "time": "2022-09-30T11:52:24+00:00" }, { "name": "surfnet/stepup-saml-bundle", - "version": "4.1.11", + "version": "4.4.1", "source": { "type": "git", "url": "https://github.com/OpenConext/Stepup-saml-bundle.git", - "reference": "2fa2d44e5a005c2044b7898d9624648a4850b129" + "reference": "07be27ec720fb61fc90a11c02e1778f08655cd0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenConext/Stepup-saml-bundle/zipball/2fa2d44e5a005c2044b7898d9624648a4850b129", - "reference": "2fa2d44e5a005c2044b7898d9624648a4850b129", + "url": "https://api.github.com/repos/OpenConext/Stepup-saml-bundle/zipball/07be27ec720fb61fc90a11c02e1778f08655cd0f", + "reference": "07be27ec720fb61fc90a11c02e1778f08655cd0f", "shasum": "" }, "require": { + "ext-dom": "*", "ext-openssl": "*", - "php": ">=5.6,<8.0-dev", + "php": ">=7.2,<8.0-dev", "robrichards/xmlseclibs": "^3.0.4", "simplesamlphp/saml2": "3.2.*", - "symfony/dependency-injection": "^3.4.26 || ^4.3", - "symfony/framework-bundle": "^3.4.26 || ^4.3", - "symfony/templating": "^3.4 || ^4.3" + "symfony/dependency-injection": "^4.4", + "symfony/framework-bundle": "^4.4", + "symfony/templating": "^4.4", + "twig/twig": "^2" }, "require-dev": { + "jasny/phpunit-xsdvalidation": "^1.0", "mockery/mockery": "~0.9", "phpmd/phpmd": "^2.6", "phpunit/phpunit": "^5.7", "psr/log": "~1.0", "sebastian/exporter": "~2.0", "sebastian/phpcpd": "^2.0", - "sensiolabs/security-checker": "^5.0", "squizlabs/php_codesniffer": "^3.0", - "symfony/phpunit-bridge": "^4.3" + "symfony/phpunit-bridge": "^4.4" }, "type": "symfony-bundle", "autoload": { @@ -3659,7 +4252,7 @@ "license": [ "Apache-2.0" ], - "description": "A Symfony 3 (with SF 4 support) bundle that integrates the simplesamlphp\\saml2 library with Symfony.", + "description": "A Symfony 4 bundle that integrates the simplesamlphp\\saml2 library with Symfony.", "keywords": [ "SAML2", "saml", @@ -3669,40 +4262,42 @@ ], "support": { "issues": "https://github.com/OpenConext/Stepup-saml-bundle/issues", - "source": "https://github.com/OpenConext/Stepup-saml-bundle/tree/master" + "source": "https://github.com/OpenConext/Stepup-saml-bundle/tree/4.4.1" }, - "time": "2020-03-17T13:59:34+00:00" + "time": "2022-05-10T08:37:04+00:00" }, { - "name": "swiftmailer/swiftmailer", - "version": "v5.4.12", + "name": "symfony/asset", + "version": "v4.4.46", "source": { "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "181b89f18a90f8925ef805f950d47a7190e9b950" + "url": "https://github.com/symfony/asset.git", + "reference": "6ef0f9f352f90c469e8b363ebc038d81a7198873" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950", - "reference": "181b89f18a90f8925ef805f950d47a7190e9b950", + "url": "https://api.github.com/repos/symfony/asset/zipball/6ef0f9f352f90c469e8b363ebc038d81a7198873", + "reference": "6ef0f9f352f90c469e8b363ebc038d81a7198873", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "mockery/mockery": "~0.9.1", - "symfony/phpunit-bridge": "~3.2" + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/http-kernel": "^3.4|^4.0|^5.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.4-dev" - } + "suggest": { + "symfony/http-foundation": "" }, + "type": "library", "autoload": { - "files": [ - "lib/swift_required.php" + "psr-4": { + "Symfony\\Component\\Asset\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3710,69 +4305,68 @@ "MIT" ], "authors": [ - { - "name": "Chris Corbyn" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", - "keywords": [ - "email", - "mail", - "mailer" - ], + "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/swiftmailer/swiftmailer/issues", - "source": "https://github.com/swiftmailer/swiftmailer/tree/v5.4.12" + "source": "https://github.com/symfony/asset/tree/v4.4.46" }, - "abandoned": "symfony/mailer", - "time": "2018-07-31T09:26:32+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-30T22:05:24+00:00" }, { - "name": "symfony/http-client", - "version": "v4.4.45", + "name": "symfony/browser-kit", + "version": "v4.4.44", "source": { "type": "git", - "url": "https://github.com/symfony/http-client.git", - "reference": "9f9dd96f2ab29eec1a56ad7593c594075e5b368d" + "url": "https://github.com/symfony/browser-kit.git", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/9f9dd96f2ab29eec1a56ad7593c594075e5b368d", - "reference": "9f9dd96f2ab29eec1a56ad7593c594075e5b368d", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", "shasum": "" }, "require": { "php": ">=7.1.3", - "psr/log": "^1|^2|^3", - "symfony/http-client-contracts": "^1.1.10|^2", - "symfony/polyfill-php73": "^1.11", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.0|^2" - }, - "provide": { - "php-http/async-client-implementation": "*", - "php-http/client-implementation": "*", - "psr/http-client-implementation": "1.0", - "symfony/http-client-implementation": "1.1|2.0" + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "guzzlehttp/promises": "^1.4", - "nyholm/psr7": "^1.0", - "php-http/httplug": "^1.0|^2.0", - "psr/http-client": "^1.0", - "symfony/dependency-injection": "^4.3|^5.0", - "symfony/http-kernel": "^4.4.13", - "symfony/process": "^4.2|^5.0" + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/process": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/process": "" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\HttpClient\\": "" + "Symfony\\Component\\BrowserKit\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -3784,18 +4378,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v4.4.45" + "source": "https://github.com/symfony/browser-kit/tree/v4.4.44" }, "funding": [ { @@ -3811,32 +4405,128 @@ "type": "tidelift" } ], - "time": "2022-08-02T07:15:06+00:00" + "time": "2022-07-25T12:56:14+00:00" }, { - "name": "symfony/http-client-contracts", - "version": "v1.1.13", + "name": "symfony/cache", + "version": "v4.4.48", "source": { "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "59f37624a82635962f04c98f31aed122e539a89e" + "url": "https://github.com/symfony/cache.git", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/59f37624a82635962f04c98f31aed122e539a89e", - "reference": "59f37624a82635962f04c98f31aed122e539a89e", + "url": "https://api.github.com/repos/symfony/cache/zipball/3b98ed664887ad197b8ede3da2432787212eb915", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.1.3", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.2|^5.0" }, - "suggest": { - "symfony/http-client-implementation": "" + "conflict": { + "doctrine/dbal": "<2.7", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4|>=5.0", + "symfony/var-dumper": "<4.4" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.1-dev" + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.7|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/var-dumper": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-17T20:21:54+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "suggest": { + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -3845,7 +4535,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Contracts\\HttpClient\\": "" + "Symfony\\Contracts\\Cache\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -3862,7 +4552,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Generic abstractions related to HTTP clients", + "description": "Generic abstractions related to caching", "homepage": "https://symfony.com", "keywords": [ "abstractions", @@ -3873,7 +4563,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v1.1.13" + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2" }, "funding": [ { @@ -3889,40 +4579,46 @@ "type": "tidelift" } ], - "time": "2022-04-11T14:52:04+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { - "name": "symfony/mime", - "version": "v4.4.45", + "name": "symfony/config", + "version": "v4.4.44", "source": { "type": "git", - "url": "https://github.com/symfony/mime.git", - "reference": "44d515bb6add9828efe6a9e176483f6b13b17367" + "url": "https://github.com/symfony/config.git", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/44d515bb6add9828efe6a9e176483f6b13b17367", - "reference": "44d515bb6add9828efe6a9e176483f6b13b17367", + "url": "https://api.github.com/repos/symfony/config/zipball/ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", "shasum": "" }, "require": { "php": ">=7.1.3", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16" + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" }, "conflict": { - "egulias/email-validator": "~3.0.0", - "symfony/mailer": "<4.4" + "symfony/finder": "<3.4" }, "require-dev": { - "egulias/email-validator": "^2.1.10|^3.1", - "symfony/dependency-injection": "^3.4|^4.1|^5.0" + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Mime\\": "" + "Symfony\\Component\\Config\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -3942,14 +4638,100 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Allows manipulating MIME messages", + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", - "keywords": [ - "mime", - "mime-type" + "support": { + "source": "https://github.com/symfony/config/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/console", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "8e70c1cab07ac641b885ce80385b9824a293c623" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/8e70c1cab07ac641b885ce80385b9824a293c623", + "reference": "8e70c1cab07ac641b885ce80385b9824a293c623", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "psr/log": ">=3", + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mime/tree/v4.4.45" + "source": "https://github.com/symfony/console/tree/v4.4.48" }, "funding": [ { @@ -3965,44 +4747,3346 @@ "type": "tidelift" } ], - "time": "2022-08-18T21:14:46+00:00" + "time": "2022-10-26T16:02:45+00:00" }, { - "name": "symfony/monolog-bundle", - "version": "v3.6.0", + "name": "symfony/debug", + "version": "v4.4.44", "source": { "type": "git", - "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940" + "url": "https://github.com/symfony/debug.git", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e495f5c7e4e672ffef4357d4a4d85f010802f940", - "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940", + "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be", "shasum": "" }, "require": { - "monolog/monolog": "~1.22 || ~2.0", - "php": ">=5.6", - "symfony/config": "~3.4 || ~4.0 || ^5.0", - "symfony/dependency-injection": "~3.4.10 || ^4.0.10 || ^5.0", - "symfony/http-kernel": "~3.4 || ~4.0 || ^5.0", - "symfony/monolog-bridge": "~3.4 || ~4.0 || ^5.0" + "php": ">=7.1.3", + "psr/log": "^1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<3.4" }, "require-dev": { - "symfony/console": "~3.4 || ~4.0 || ^5.0", - "symfony/phpunit-bridge": "^4.4 || ^5.0", - "symfony/yaml": "~3.4 || ~4.0 || ^5.0" + "symfony/http-kernel": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "symfony/error-handler", + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/25502a57182ba1e15da0afd64c975cae4d0a1471", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/container": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^4.4.26|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/doctrine-bridge", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/doctrine-bridge.git", + "reference": "8dbbec53714eb512321380d582b45ff7e074a5d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/8dbbec53714eb512321380d582b45ff7e074a5d6", + "reference": "8dbbec53714eb512321380d582b45ff7e074a5d6", + "shasum": "" + }, + "require": { + "doctrine/event-manager": "~1.0", + "doctrine/persistence": "^1.3|^2|^3", + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "doctrine/dbal": "<2.7", + "doctrine/lexer": "<1.1", + "doctrine/orm": "<2.6.3", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/dependency-injection": "<3.4", + "symfony/form": "<4.4", + "symfony/http-kernel": "<4.3.7", + "symfony/messenger": "<4.3", + "symfony/proxy-manager-bridge": "<4.4.19", + "symfony/security-core": "<4.4", + "symfony/validator": "<4.4.2|<5.0.2,>=5.0" + }, + "require-dev": { + "composer/package-versions-deprecated": "^1.8", + "doctrine/annotations": "^1.10.4", + "doctrine/collections": "~1.0", + "doctrine/data-fixtures": "^1.1", + "doctrine/dbal": "^2.7|^3.0", + "doctrine/orm": "^2.6.3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^4.4.41|^5.0.11", + "symfony/http-kernel": "^4.3.7", + "symfony/messenger": "^4.4|^5.0", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/proxy-manager-bridge": "^3.4|^4.0|^5.0", + "symfony/security-core": "^4.4|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/translation": "^3.4|^4.0|^5.0", + "symfony/validator": "^4.4.2|^5.0.2", + "symfony/var-dumper": "^3.4|^4.0|^5.0" + }, + "suggest": { + "doctrine/data-fixtures": "", + "doctrine/dbal": "", + "doctrine/orm": "", + "symfony/form": "", + "symfony/property-info": "", + "symfony/validator": "" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Doctrine\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Doctrine with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/doctrine-bridge/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-14T11:24:01+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4b8daf6c56801e6d664224261cb100b73edc78a5", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "masterminds/html5": "<2.6" + }, + "require-dev": { + "masterminds/html5": "^2.6", + "symfony/css-selector": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases DOM navigation for HTML and XML documents", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-03T12:57:57+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "require-dev": { + "symfony/process": "^3.4.2|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "source": "https://github.com/symfony/dotenv/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/be731658121ef2d8be88f3a1ec938148a9237291", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3", + "symfony/debug": "^4.4.5", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "~3.4|~4.4", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.13", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/expression-language", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/expression-language.git", + "reference": "e4964c7636e19f6008660f450c09121c80c2a7b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/e4964c7636e19f6008660f450c09121c80c2a7b9", + "reference": "e4964c7636e19f6008660f450c09121c80c2a7b9", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/cache": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ExpressionLanguage\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an engine that can compile and evaluate expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/expression-language/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.4.42", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v4.4.42" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-20T08:49:14+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/66bd787edb5e42ff59d3523f623895af05043e4f", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-29T07:35:46+00:00" + }, + { + "name": "symfony/flex", + "version": "v1.19.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/flex.git", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/flex/zipball/ab0453b16029e131c112df1a76e59eb2a47e1f67", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": ">=7.1" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "symfony/dotenv": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Flex\\Flex" + }, + "autoload": { + "psr-4": { + "Symfony\\Flex\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } + ], + "description": "Composer plugin for Symfony", + "support": { + "issues": "https://github.com/symfony/flex/issues", + "source": "https://github.com/symfony/flex/tree/v1.19.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-07T09:39:08+00:00" + }, + { + "name": "symfony/form", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/form.git", + "reference": "e1d137b13e0ec2cb5c5e38debca7a510c6f858c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/form/zipball/e1d137b13e0ec2cb5c5e38debca7a510c6f858c6", + "reference": "e1d137b13e0ec2cb5c5e38debca7a510c6f858c6", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher": "^4.3", + "symfony/intl": "^4.4|^5.0", + "symfony/options-resolver": "~4.3|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/property-access": "^3.4.40|^4.4.8|^5.0.8", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<4.3", + "symfony/dependency-injection": "<3.4", + "symfony/doctrine-bridge": "<3.4", + "symfony/framework-bundle": "<3.4", + "symfony/http-kernel": "<4.4", + "symfony/intl": "<4.3", + "symfony/translation": "<4.2", + "symfony/twig-bridge": "<3.4.5|<4.0.5,>=4.0" + }, + "require-dev": { + "doctrine/collections": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^4.3|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/validator": "^4.4.17|^5.1.9", + "symfony/var-dumper": "^4.3|^5.0" + }, + "suggest": { + "symfony/security-csrf": "For protecting forms against CSRF attacks.", + "symfony/twig-bridge": "For templating with Twig.", + "symfony/validator": "For form validation." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Form\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows to easily create, process and reuse HTML forms", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/form/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-22T05:50:33+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5b8b76e374032b34475ccf8a90c8cef06f49441a", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4.11|~5.0.11|^5.1.3", + "symfony/dependency-injection": "^4.4.38|^5.0.1", + "symfony/error-handler": "^4.4.1|^5.0.1", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/routing": "^4.4.12|^5.1.4" + }, + "conflict": { + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", + "phpdocumentor/type-resolver": "<0.3.0|1.3.*", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.4", + "symfony/browser-kit": "<4.3", + "symfony/console": "<4.4.21", + "symfony/dom-crawler": "<4.3", + "symfony/dotenv": "<4.3.6", + "symfony/form": "<4.3.5", + "symfony/http-client": "<4.4", + "symfony/lock": "<4.4", + "symfony/mailer": "<4.4", + "symfony/messenger": "<4.4", + "symfony/mime": "<4.4", + "symfony/property-info": "<3.4", + "symfony/security-bundle": "<4.4", + "symfony/serializer": "<4.4", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<4.4", + "symfony/twig-bridge": "<4.1.1", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<4.4", + "symfony/web-profiler-bundle": "<4.4", + "symfony/workflow": "<4.3.6" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "doctrine/persistence": "^1.3|^2|^3", + "paragonie/sodium_compat": "^1.8", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/console": "^4.4.42|^5.4.9", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^4.4.30|^5.3.7", + "symfony/dotenv": "^4.3.6|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^4.3.5|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/mailer": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/security-core": "^3.4|^4.4|^5.2", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/security-http": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^4.4|^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^4.3.6|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-04-12T15:48:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/mime": "^4.3|^5.0", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/expression-language": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-12T09:40:54+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a6d5229dd9466e046674baad8449ad92ee24eddd", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/http-foundation": "^4.4.30|^5.3.7", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/console": ">=5", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "twig/twig": "<1.43|<2.13,>=2" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-28T16:49:22+00:00" + }, + { + "name": "symfony/inflector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/inflector.git", + "reference": "66185be61805b1e44a5c4000929e700228d426cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/inflector/zipball/66185be61805b1e44a5c4000929e700228d426cc", + "reference": "66185be61805b1e44a5c4000929e700228d426cc", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Inflector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts words between their singular and plural forms (English only)", + "homepage": "https://symfony.com", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string", + "symfony", + "words" + ], + "support": { + "source": "https://github.com/symfony/inflector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "EnglishInflector from the String component", + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/intl", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/intl.git", + "reference": "f1d0f9d91ab482d33423b788999fbb43c34a9a59" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/intl/zipball/f1d0f9d91ab482d33423b788999fbb43c34a9a59", + "reference": "f1d0f9d91ab482d33423b788999fbb43c34a9a59", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/filesystem": "^3.4|^4.0|^5.0" + }, + "suggest": { + "ext-intl": "to use the component with locales other than \"en\"" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Intl\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Eriksen Costa", + "email": "eriksen.costa@infranology.com.br" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a PHP replacement layer for the C intl extension that includes additional data from the ICU library", + "homepage": "https://symfony.com", + "keywords": [ + "i18n", + "icu", + "internationalization", + "intl", + "l10n", + "localization" + ], + "support": { + "source": "https://github.com/symfony/intl/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/mailer", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "3fe0ba37c541cc0d32456781a1c9563fada2174f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/3fe0ba37c541cc0d32456781a1c9563fada2174f", + "reference": "3fe0ba37c541cc0d32456781a1c9563fada2174f", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3", + "php": ">=7.1.3", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^4.3", + "symfony/mime": "^4.4.21|^5.2.6", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/http-kernel": "<4.4", + "symfony/sendgrid-mailer": "<4.4" + }, + "require-dev": { + "symfony/amazon-mailer": "^4.4|^5.0", + "symfony/google-mailer": "^4.4|^5.0", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/mailchimp-mailer": "^4.4|^5.0", + "symfony/mailgun-mailer": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/postmark-mailer": "^4.4|^5.0", + "symfony/sendgrid-mailer": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-10T16:46:39+00:00" + }, + { + "name": "symfony/maker-bundle", + "version": "v1.39.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/maker-bundle.git", + "reference": "30c8ac13511f6df7bc9ac088f31d7a48ce6433c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/30c8ac13511f6df7bc9ac088f31d7a48ce6433c6", + "reference": "30c8ac13511f6df7bc9ac088f31d7a48ce6433c6", + "shasum": "" + }, + "require": { + "doctrine/inflector": "^1.2|^2.0", + "nikic/php-parser": "^4.11", + "php": ">=7.1.3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/deprecation-contracts": "^2.2|^3", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0" + }, + "require-dev": { + "composer/semver": "^3.0", + "doctrine/doctrine-bundle": "^1.12.3|^2.0", + "doctrine/orm": "^2.3", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^4.4|^5.0|^6.0", + "symfony/polyfill-php80": "^1.16.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/security-core": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0", + "twig/twig": "^2.0|^3.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-main": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MakerBundle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.", + "homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html", + "keywords": [ + "code generator", + "generator", + "scaffold", + "scaffolding" + ], + "support": { + "issues": "https://github.com/symfony/maker-bundle/issues", + "source": "https://github.com/symfony/maker-bundle/tree/v1.39.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-09-13T18:14:36+00:00" + }, + { + "name": "symfony/mime", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "symfony/dependency-injection": "^3.4|^4.1|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/ad09c9980b912e757c4ecd8363cebf3039d1d471", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.25.1", + "php": ">=7.1.3", + "symfony/http-kernel": "^4.3", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/security-core": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Monolog with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/monolog-bridge/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-16T12:12:11+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e495f5c7e4e672ffef4357d4a4d85f010802f940", + "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.22 || ~2.0", + "php": ">=5.6", + "symfony/config": "~3.4 || ~4.0 || ^5.0", + "symfony/dependency-injection": "~3.4.10 || ^4.0.10 || ^5.0", + "symfony/http-kernel": "~3.4 || ~4.0 || ^5.0", + "symfony/monolog-bridge": "~3.4 || ~4.0 || ^5.0" + }, + "require-dev": { + "symfony/console": "~3.4 || ~4.0 || ^5.0", + "symfony/phpunit-bridge": "^4.4 || ^5.0", + "symfony/yaml": "~3.4 || ~4.0 || ^5.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "http://symfony.com", + "keywords": [ + "log", + "logging" + ], + "support": { + "issues": "https://github.com/symfony/monolog-bundle/issues", + "source": "https://github.com/symfony/monolog-bundle/tree/v3.6.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-06T15:12:11+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "583f56160f716dd435f1cd721fd14b548f4bb510" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/583f56160f716dd435f1cd721fd14b548f4bb510", + "reference": "583f56160f716dd435f1cd721fd14b548f4bb510", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/polyfill-apcu", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-apcu.git", + "reference": "6e7f6ed2168779a2b3927e606a9768860a8bdfa0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/6e7f6ed2168779a2b3927e606a9768860a8bdfa0", + "reference": "6e7f6ed2168779a2b3927e606a9768860a8bdfa0", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Apcu\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "apcu", + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-apcu/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-icu", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/a3d9148e2c363588e05abbdd4ee4f971f0a5330c", + "reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance and support of other locales than \"en\"" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Icu\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's ICU-related data and classes", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "icu", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "639084e360537a19f9ee352433b84ce831f3d2da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", + "reference": "639084e360537a19f9ee352433b84ce831f3d2da", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/property-access", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/d49682f6f0764df725c95128213a38f7e0a9f358", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/inflector": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/cache": "^3.4|^4.0|^5.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides functions to read and write from/to an object or array using a simple string notation", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "support": { + "source": "https://github.com/symfony/property-access/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/proxy-manager-bridge", + "version": "v4.4.39", + "source": { + "type": "git", + "url": "https://github.com/symfony/proxy-manager-bridge.git", + "reference": "66c4de1f6fc16371c06762d6b7fafab2308a15a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/66c4de1f6fc16371c06762d6b7fafab2308a15a1", + "reference": "66c4de1f6fc16371c06762d6b7fafab2308a15a1", + "shasum": "" + }, + "require": { + "friendsofphp/proxy-manager-lts": "^1.0.2", + "php": ">=7.1.3", + "symfony/dependency-injection": "^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/config": "^3.4|^4.0|^5.0" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\ProxyManager\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for ProxyManager with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/proxy-manager-bridge/tree/v4.4.39" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T10:38:15+00:00" + }, + { + "name": "symfony/routing", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "psr/log": "^1|^2|^3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^4.4", + "symfony/security-csrf": "^4.2|^5.0", + "symfony/security-guard": "^4.2|^5.0", + "symfony/security-http": "^4.4.5" + }, + "conflict": { + "symfony/browser-kit": "<4.2", + "symfony/console": "<3.4", + "symfony/framework-bundle": "<4.4", + "symfony/ldap": "<4.4", + "symfony/twig-bundle": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.2|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^3.4|^4.0|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/translation": "^3.4|^4.0|^5.0", + "symfony/twig-bridge": "^3.4|^4.0|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SecurityBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-bundle/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-core", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/423ccb332784b236dfe6c5f396d0ac49db57c914", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1|^2", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/ldap": "<4.4", + "symfony/security-guard": "<4.3" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/ldap": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/validator": "^3.4.31|^4.3.4|^5.0" + }, + "suggest": { + "psr/container-implementation": "To instantiate the Security class", + "symfony/event-dispatcher": "", + "symfony/expression-language": "For using the expression voter", + "symfony/http-foundation": "", + "symfony/ldap": "For using LDAP integration", + "symfony/validator": "For using the user password constraint" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Core\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Core Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-core/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-22T05:50:33+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "45c956ef58135091f53732646a0acd28034f02c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/45c956ef58135091f53732646a0acd28034f02c0", + "reference": "45c956ef58135091f53732646a0acd28034f02c0", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^3.4|^4.0|^5.0" + }, + "conflict": { + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/http-foundation": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/http-foundation": "For using the class SessionTokenStorage." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Csrf\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - CSRF Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-csrf/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/security-guard", + "version": "v4.4.46", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-guard.git", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/f199eb1b19db11ce254b891580728c45a7ccacfd", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/security-core": "^3.4.22|^4.2.3|^5.0", + "symfony/security-http": "^4.4.1" }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } + "require-dev": { + "psr/log": "^1|^2|^3" }, + "type": "library", "autoload": { "psr-4": { - "Symfony\\Bundle\\MonologBundle\\": "" + "Symfony\\Component\\Security\\Guard\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -4019,18 +8103,13 @@ }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony MonologBundle", - "homepage": "http://symfony.com", - "keywords": [ - "log", - "logging" - ], + "description": "Symfony Security Component - Guard", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/symfony/monolog-bundle/issues", - "source": "https://github.com/symfony/monolog-bundle/tree/v3.6.0" + "source": "https://github.com/symfony/security-guard/tree/v4.4.46" }, "funding": [ { @@ -4046,42 +8125,51 @@ "type": "tidelift" } ], - "time": "2020-10-06T15:12:11+00:00" + "time": "2022-09-23T06:06:49+00:00" }, { - "name": "symfony/polyfill-apcu", - "version": "v1.26.0", + "name": "symfony/security-http", + "version": "v4.4.48", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-apcu.git", - "reference": "43273a33c46f9d5a08dac76859f63d6814242e81" + "url": "https://github.com/symfony/security-http.git", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/43273a33c46f9d5a08dac76859f63d6814242e81", - "reference": "43273a33c46f9d5a08dac76859f63d6814242e81", + "url": "https://api.github.com/repos/symfony/security-http/zipball/41e7666313f140ac8560f8db64ab54cc7348615a", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1.3", + "symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/security-core": "^4.4.8" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "conflict": { + "symfony/event-dispatcher": ">=5", + "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/security-csrf": "^3.4.11|^4.0.11|^5.0" }, + "suggest": { + "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", + "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" + }, + "type": "library", "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Apcu\\": "" - } + "Symfony\\Component\\Security\\Http\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4089,25 +8177,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions", + "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", - "keywords": [ - "apcu", - "compatibility", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-apcu/tree/v1.26.0" + "source": "https://github.com/symfony/security-http/tree/v4.4.48" }, "funding": [ { @@ -4123,47 +8204,46 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-10-20T10:00:58+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.26.0", + "name": "symfony/service-contracts", + "version": "v2.5.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" }, - "provide": { - "ext-ctype": "*" + "conflict": { + "ext-psr": "<1.1|>=2" }, "suggest": { - "ext-ctype": "For best performance" + "symfony/service-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "2.5-dev" }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" + "Symfony\\Contracts\\Service\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -4172,24 +8252,26 @@ ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for ctype functions", + "description": "Generic abstractions related to writing services", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" }, "funding": [ { @@ -4205,48 +8287,34 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-05-30T19:17:29+00:00" }, { - "name": "symfony/polyfill-intl-icu", - "version": "v1.26.0", + "name": "symfony/stopwatch", + "version": "v4.4.46", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "e407643d610e5f2c8a4b14189150f68934bf5e48" + "url": "https://github.com/symfony/stopwatch.git", + "reference": "757660703fbd139eea0001b759c6c3bf5bc3ea52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e407643d610e5f2c8a4b14189150f68934bf5e48", - "reference": "e407643d610e5f2c8a4b14189150f68934bf5e48", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/757660703fbd139eea0001b759c6c3bf5bc3ea52", + "reference": "757660703fbd139eea0001b759c6c3bf5bc3ea52", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1.3", + "symfony/service-contracts": "^1.0|^2" }, - "suggest": { - "ext-intl": "For best performance and support of other locales than \"en\"" + "require-dev": { + "symfony/polyfill-php72": "~1.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Icu\\": "" + "Symfony\\Component\\Stopwatch\\": "" }, - "classmap": [ - "Resources/stubs" - ], "exclude-from-classmap": [ "/Tests/" ] @@ -4257,26 +8325,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's ICU-related data and classes", + "description": "Provides a way to profile code", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "icu", - "intl", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.26.0" + "source": "https://github.com/symfony/stopwatch/tree/v4.4.46" }, "funding": [ { @@ -4292,47 +8352,40 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-09-28T12:53:24+00:00" }, { - "name": "symfony/polyfill-intl-idn", - "version": "v1.26.0", + "name": "symfony/templating", + "version": "v4.4.44", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + "url": "https://github.com/symfony/templating.git", + "reference": "2bfe94a5ebe0176612186e5f6b6a08a480c9e1f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "url": "https://api.github.com/repos/symfony/templating/zipball/2bfe94a5ebe0176612186e5f6b6a08a480c9e1f9", + "reference": "2bfe94a5ebe0176612186e5f6b6a08a480c9e1f9", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "require-dev": { + "psr/log": "^1|^2|^3" }, "suggest": { - "ext-intl": "For best performance" + "psr/log-implementation": "For using debug logging in loaders" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - } + "Symfony\\Component\\Templating\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4340,30 +8393,18 @@ ], "authors": [ { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "description": "Provides all the tools needed to build any kind of template system", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + "source": "https://github.com/symfony/templating/tree/v4.4.44" }, "funding": [ { @@ -4379,47 +8420,60 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-06-27T13:16:42+00:00" }, { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.26.0", + "name": "symfony/translation", + "version": "v4.4.47", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + "url": "https://github.com/symfony/translation.git", + "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "url": "https://api.github.com/repos/symfony/translation/zipball/45036b1d53accc48fe9bab71ccd86d57eba0dd94", + "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<3.4", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "symfony/translation-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/finder": "~2.8|~3.0|~4.0|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { - "ext-intl": "For best performance" + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + "Symfony\\Component\\Translation\\": "" }, - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4428,26 +8482,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", + "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + "source": "https://github.com/symfony/translation/tree/v4.4.47" }, "funding": [ { @@ -4463,47 +8509,41 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-10-03T15:15:11+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.26.0", + "name": "symfony/translation-contracts", + "version": "v2.5.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" + "php": ">=7.2.5" }, "suggest": { - "ext-mbstring": "For best performance" + "symfony/translation-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "2.5-dev" }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" + "Symfony\\Contracts\\Translation\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -4520,17 +8560,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Generic abstractions related to translation", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2" }, "funding": [ { @@ -4546,34 +8587,89 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-06-27T16:58:25+00:00" }, { - "name": "symfony/polyfill-php56", - "version": "v1.20.0", + "name": "symfony/twig-bridge", + "version": "v4.4.45", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675" + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "7d6e6dbb1c029f4131e6e479ebd535a9a3633481" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675", - "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/7d6e6dbb1c029f4131e6e479ebd535a9a3633481", + "reference": "7d6e6dbb1c029f4131e6e479ebd535a9a3633481", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.43|^2.13|^3.0.4" }, - "type": "metapackage", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" + "conflict": { + "symfony/console": "<3.4", + "symfony/form": "<4.4", + "symfony/http-foundation": "<4.3", + "symfony/translation": "<4.2", + "symfony/workflow": "<4.3" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/form": "^4.4.17", + "symfony/http-foundation": "^4.3|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^4.4|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/security-acl": "^2.8|^3.0", + "symfony/security-core": "^3.0|^4.0|^5.0", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/security-http": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2.1|^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^4.3|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/cssinliner-extra": "^2.12|^3", + "twig/inky-extra": "^2.12|^3", + "twig/markdown-extra": "^2.12|^3" + }, + "suggest": { + "symfony/asset": "For using the AssetExtension", + "symfony/expression-language": "For using the ExpressionExtension", + "symfony/finder": "", + "symfony/form": "For using the FormExtension", + "symfony/http-kernel": "For using the HttpKernelExtension", + "symfony/routing": "For using the RoutingExtension", + "symfony/security-core": "For using the SecurityExtension", + "symfony/security-csrf": "For using the CsrfExtension", + "symfony/security-http": "For using the LogoutUrlExtension", + "symfony/stopwatch": "For using the StopwatchExtension", + "symfony/templating": "For using the TwigEngine", + "symfony/translation": "For using the TranslationExtension", + "symfony/var-dumper": "For using the DumpExtension", + "symfony/web-link": "For using the WebLinkExtension", + "symfony/yaml": "For using the YamlExtension" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Twig\\": "" }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4581,24 +8677,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-php56/tree/v1.20.0" + "source": "https://github.com/symfony/twig-bridge/tree/v4.4.45" }, "funding": [ { @@ -4614,34 +8704,60 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2022-08-03T09:58:25+00:00" }, { - "name": "symfony/polyfill-php70", - "version": "v1.20.0", + "name": "symfony/twig-bundle", + "version": "v4.4.41", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" + "url": "https://github.com/symfony/twig-bundle.git", + "reference": "164c1edc69f2c7ee337323efc78a8a8a263f45ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/164c1edc69f2c7ee337323efc78a8a8a263f45ff", + "reference": "164c1edc69f2c7ee337323efc78a8a8a263f45ff", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1.3", + "symfony/http-foundation": "^4.3|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/twig-bridge": "^4.4|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" }, - "type": "metapackage", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" + "conflict": { + "symfony/dependency-injection": "<4.1", + "symfony/framework-bundle": "<4.4", + "symfony/translation": "<4.2" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.2.5|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/form": "^3.4|^4.0|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/web-link": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\TwigBundle\\": "" }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4649,24 +8765,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0" + "source": "https://github.com/symfony/twig-bundle/tree/v4.4.41" }, "funding": [ { @@ -4682,42 +8792,78 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2022-04-12T15:19:55+00:00" }, { - "name": "symfony/polyfill-php72", - "version": "v1.26.0", + "name": "symfony/validator", + "version": "v4.4.48", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + "url": "https://github.com/symfony/validator.git", + "reference": "54781a4c41efbd283b779110bf8ae7f263737775" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "url": "https://api.github.com/repos/symfony/validator/zipball/54781a4c41efbd283b779110bf8ae7f263737775", + "reference": "54781a4c41efbd283b779110bf8ae7f263737775", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^1.1|^2" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "conflict": { + "doctrine/lexer": "<1.1", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4", + "symfony/intl": "<4.3", + "symfony/translation": ">=5.0", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "egulias/email-validator": "^2.1.10|^3", + "symfony/cache": "^3.4|^4.0|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/http-foundation": "^4.1|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^4.3|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", + "doctrine/cache": "For using the default cached annotation reader.", + "egulias/email-validator": "Strict (RFC compliant) email validation", + "psr/cache-implementation": "For using the mapping cache.", + "symfony/config": "", + "symfony/expression-language": "For using the Expression validator", + "symfony/http-foundation": "", + "symfony/intl": "", + "symfony/property-access": "For accessing properties within comparison constraints", + "symfony/property-info": "To automatically add NotNull and Type constraints", + "symfony/translation": "For translating validation errors.", + "symfony/yaml": "" }, + "type": "library", "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } + "Symfony\\Component\\Validator\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4725,24 +8871,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "description": "Provides tools to validate values", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + "source": "https://github.com/symfony/validator/tree/v4.4.48" }, "funding": [ { @@ -4758,44 +8898,56 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-10-25T13:54:11+00:00" }, { - "name": "symfony/polyfill-php73", - "version": "v1.26.0", + "name": "symfony/var-dumper", + "version": "v4.4.47", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + "url": "https://github.com/symfony/var-dumper.git", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5", + "symfony/polyfill-php80": "^1.16" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", "autoload": { "files": [ - "bootstrap.php" + "Resources/functions/dump.php" ], "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" + "Symfony\\Component\\VarDumper\\": "" }, - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4812,16 +8964,14 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "debug", + "dump" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + "source": "https://github.com/symfony/var-dumper/tree/v4.4.47" }, "funding": [ { @@ -4837,44 +8987,36 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-10-03T15:15:11+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.26.0", + "name": "symfony/var-exporter", + "version": "v4.4.43", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + "url": "https://github.com/symfony/var-exporter.git", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9" }, + "type": "library", "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Component\\VarExporter\\": "" }, - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4882,10 +9024,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -4895,16 +9033,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Allows exporting any serializable PHP data structure to plain PHP code", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + "source": "https://github.com/symfony/var-exporter/tree/v4.4.43" }, "funding": [ { @@ -4920,43 +9060,51 @@ "type": "tidelift" } ], - "time": "2022-05-10T07:21:04+00:00" + "time": "2022-05-27T11:44:32+00:00" }, { - "name": "symfony/service-contracts", - "version": "v1.1.13", + "name": "symfony/web-profiler-bundle", + "version": "v4.4.47", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "afa00c500c2d6aea6e3b2f4862355f507bc5ebb4" + "url": "https://github.com/symfony/web-profiler-bundle.git", + "reference": "c173202d8ce82fde63ec0953eaffdf065018b8f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/afa00c500c2d6aea6e3b2f4862355f507bc5ebb4", - "reference": "afa00c500c2d6aea6e3b2f4862355f507bc5ebb4", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/c173202d8ce82fde63ec0953eaffdf065018b8f4", + "reference": "c173202d8ce82fde63ec0953eaffdf065018b8f4", "shasum": "" }, "require": { "php": ">=7.1.3", - "psr/container": "^1.0" + "symfony/config": "^4.2|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/routing": "^4.3|^5.0", + "symfony/twig-bundle": "^4.2|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" }, - "suggest": { - "symfony/service-implementation": "" + "conflict": { + "symfony/form": "<4.3", + "symfony/messenger": "<4.2" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.1-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } + "require-dev": { + "symfony/browser-kit": "^4.3|^5.0", + "symfony/console": "^4.3|^5.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0" }, + "type": "symfony-bundle", "autoload": { "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } + "Symfony\\Bundle\\WebProfilerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4964,26 +9112,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Generic abstractions related to writing services", + "description": "Provides a development tool that gives detailed information about the execution of any request", "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v1.1.13" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v4.4.47" }, "funding": [ { @@ -4999,203 +9139,122 @@ "type": "tidelift" } ], - "time": "2022-05-27T14:01:05+00:00" + "time": "2022-09-29T14:10:52+00:00" }, { - "name": "symfony/swiftmailer-bundle", - "version": "v2.6.7", + "name": "symfony/yaml", + "version": "v4.4.45", "source": { "type": "git", - "url": "https://github.com/symfony/swiftmailer-bundle.git", - "reference": "c4808f5169efc05567be983909d00f00521c53ec" + "url": "https://github.com/symfony/yaml.git", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec", - "reference": "c4808f5169efc05567be983909d00f00521c53ec", + "url": "https://api.github.com/repos/symfony/yaml/zipball/aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", "shasum": "" }, "require": { - "php": ">=5.3.2", - "swiftmailer/swiftmailer": "~4.2|~5.0", - "symfony/config": "~2.7|~3.0", - "symfony/dependency-injection": "~2.7|~3.0", - "symfony/http-kernel": "~2.7|~3.0" + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" }, "require-dev": { - "symfony/console": "~2.7|~3.0", - "symfony/framework-bundle": "~2.7|~3.0", - "symfony/phpunit-bridge": "~3.3@dev", - "symfony/yaml": "~2.7|~3.0" + "symfony/console": "^3.4|^4.0|^5.0" }, "suggest": { - "psr/log": "Allows logging" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "2.6-dev" - } + "symfony/console": "For validating YAML files using the lint command" }, + "type": "library", "autoload": { "psr-4": { - "Symfony\\Bundle\\SwiftmailerBundle\\": "" - } + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony SwiftmailerBundle", - "homepage": "http://symfony.com", + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/symfony/swiftmailer-bundle/issues", - "source": "https://github.com/symfony/swiftmailer-bundle/tree/2.6" + "source": "https://github.com/symfony/yaml/tree/v4.4.45" }, - "abandoned": "symfony/mailer", - "time": "2017-10-19T01:06:41+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-02T15:47:23+00:00" }, { - "name": "symfony/symfony", - "version": "v3.4.49", + "name": "twig/extra-bundle", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/symfony.git", - "reference": "ba0e346e3ad11de4a307fe4fa2452a3656dcc17b" + "url": "https://github.com/twigphp/twig-extra-bundle.git", + "reference": "2e58256b0e9fe52f30149347c0547e4633304765" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/symfony/zipball/ba0e346e3ad11de4a307fe4fa2452a3656dcc17b", - "reference": "ba0e346e3ad11de4a307fe4fa2452a3656dcc17b", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/2e58256b0e9fe52f30149347c0547e4633304765", + "reference": "2e58256b0e9fe52f30149347c0547e4633304765", "shasum": "" }, "require": { - "doctrine/common": "~2.4", - "ext-xml": "*", - "fig/link-util": "^1.0", - "php": "^5.5.9|>=7.0.8", - "psr/cache": "~1.0", - "psr/container": "^1.0", - "psr/link": "^1.0", - "psr/log": "~1.0", - "psr/simple-cache": "^1.0", - "symfony/polyfill-apcu": "~1.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php56": "~1.0", - "symfony/polyfill-php70": "~1.6", - "twig/twig": "^1.41|^2.10" - }, - "conflict": { - "monolog/monolog": ">=2", - "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2", - "phpdocumentor/type-resolver": "<0.3.0", - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" - }, - "provide": { - "psr/cache-implementation": "1.0", - "psr/container-implementation": "1.0", - "psr/log-implementation": "1.0", - "psr/simple-cache-implementation": "1.0" - }, - "replace": { - "symfony/asset": "self.version", - "symfony/browser-kit": "self.version", - "symfony/cache": "self.version", - "symfony/class-loader": "self.version", - "symfony/config": "self.version", - "symfony/console": "self.version", - "symfony/css-selector": "self.version", - "symfony/debug": "self.version", - "symfony/debug-bundle": "self.version", - "symfony/dependency-injection": "self.version", - "symfony/doctrine-bridge": "self.version", - "symfony/dom-crawler": "self.version", - "symfony/dotenv": "self.version", - "symfony/event-dispatcher": "self.version", - "symfony/expression-language": "self.version", - "symfony/filesystem": "self.version", - "symfony/finder": "self.version", - "symfony/form": "self.version", - "symfony/framework-bundle": "self.version", - "symfony/http-foundation": "self.version", - "symfony/http-kernel": "self.version", - "symfony/inflector": "self.version", - "symfony/intl": "self.version", - "symfony/ldap": "self.version", - "symfony/lock": "self.version", - "symfony/monolog-bridge": "self.version", - "symfony/options-resolver": "self.version", - "symfony/process": "self.version", - "symfony/property-access": "self.version", - "symfony/property-info": "self.version", - "symfony/proxy-manager-bridge": "self.version", - "symfony/routing": "self.version", - "symfony/security": "self.version", - "symfony/security-bundle": "self.version", - "symfony/security-core": "self.version", - "symfony/security-csrf": "self.version", - "symfony/security-guard": "self.version", - "symfony/security-http": "self.version", - "symfony/serializer": "self.version", - "symfony/stopwatch": "self.version", - "symfony/templating": "self.version", - "symfony/translation": "self.version", - "symfony/twig-bridge": "self.version", - "symfony/twig-bundle": "self.version", - "symfony/validator": "self.version", - "symfony/var-dumper": "self.version", - "symfony/web-link": "self.version", - "symfony/web-profiler-bundle": "self.version", - "symfony/web-server-bundle": "self.version", - "symfony/workflow": "self.version", - "symfony/yaml": "self.version" + "php": ">=7.2.5", + "symfony/framework-bundle": "^4.4|^5.0|^6.0", + "symfony/twig-bundle": "^4.4|^5.0|^6.0", + "twig/twig": "^2.7|^3.0" }, "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/annotations": "~1.0", - "doctrine/cache": "~1.6", - "doctrine/data-fixtures": "^1.1", - "doctrine/dbal": "~2.4", - "doctrine/doctrine-bundle": "~1.4", - "doctrine/orm": "~2.4,>=2.4.5", - "egulias/email-validator": "~1.2,>=1.2.8|~2.0", - "monolog/monolog": "~1.11", - "ocramius/proxy-manager": "~0.4|~1.0|~2.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "predis/predis": "~1.0", - "symfony/phpunit-bridge": "^5.2", - "symfony/security-acl": "~2.8|~3.0" + "league/commonmark": "^1.0|^2.0", + "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0", + "twig/cache-extra": "^3.0", + "twig/cssinliner-extra": "^2.12|^3.0", + "twig/html-extra": "^2.12|^3.0", + "twig/inky-extra": "^2.12|^3.0", + "twig/intl-extra": "^2.12|^3.0", + "twig/markdown-extra": "^2.12|^3.0", + "twig/string-extra": "^2.12|^3.0" }, - "type": "library", + "type": "symfony-bundle", "extra": { - "branch-version": "3.4" + "branch-alias": { + "dev-master": "3.2-dev" + } }, "autoload": { "psr-4": { - "Symfony\\Bundle\\": "src/Symfony/Bundle/", - "Symfony\\Component\\": "src/Symfony/Component/", - "Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/", - "Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/", - "Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/", - "Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/" - }, - "classmap": [ - "src/Symfony/Component/Intl/Resources/stubs" - ], + "Twig\\Extra\\TwigExtraBundle\\": "" + }, "exclude-from-classmap": [ - "**/Tests/" + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5205,64 +9264,61 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" } ], - "description": "The Symfony PHP framework", - "homepage": "https://symfony.com", + "description": "A Symfony bundle for extra Twig extensions", + "homepage": "https://twig.symfony.com", "keywords": [ - "framework" + "bundle", + "extra", + "twig" ], "support": { - "issues": "https://github.com/symfony/symfony/issues", - "source": "https://github.com/symfony/symfony/tree/v3.4.49" + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.4.0" }, "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, { "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "url": "https://tidelift.com/funding/github/packagist/twig/twig", "type": "tidelift" } ], - "time": "2021-05-19T12:07:19+00:00" + "time": "2022-01-04T13:58:53+00:00" }, { "name": "twig/twig", - "version": "v1.43.1", + "version": "v2.15.3", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "2311602f6a208715252febe682fa7c38e56a3373" + "reference": "ab402673db8746cb3a4c46f3869d6253699f614a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/2311602f6a208715252febe682fa7c38e56a3373", - "reference": "2311602f6a208715252febe682fa7c38e56a3373", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/ab402673db8746cb3a4c46f3869d6253699f614a", + "reference": "ab402673db8746cb3a4c46f3869d6253699f614a", "shasum": "" }, "require": { "php": ">=7.1.3", - "symfony/polyfill-ctype": "^1.8" + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.8" }, "require-dev": { "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9" + "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.43-dev" + "dev-master": "2.15-dev" } }, "autoload": { @@ -5301,7 +9357,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v1.43.1" + "source": "https://github.com/twigphp/Twig/tree/v2.15.3" }, "funding": [ { @@ -5313,7 +9369,7 @@ "type": "tidelift" } ], - "time": "2020-08-05T15:05:05+00:00" + "time": "2022-09-28T08:40:08+00:00" }, { "name": "ua-parser/uap-php", @@ -5567,122 +9623,6 @@ "source": "https://github.com/xemlock/htmlpurifier-html5/tree/master" }, "time": "2019-08-07T17:19:21+00:00" - }, - { - "name": "zendframework/zend-code", - "version": "2.6.3", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-code.git", - "reference": "95033f061b083e16cdee60530ec260d7d628b887" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-code/zipball/95033f061b083e16cdee60530ec260d7d628b887", - "reference": "95033f061b083e16cdee60530ec260d7d628b887", - "shasum": "" - }, - "require": { - "php": "^5.5 || 7.0.0 - 7.0.4 || ^7.0.6", - "zendframework/zend-eventmanager": "^2.6 || ^3.0" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "^4.8.21", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "suggest": { - "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", - "zendframework/zend-stdlib": "Zend\\Stdlib component" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.6-dev", - "dev-develop": "2.7-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Code\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "provides facilities to generate arbitrary code using an object oriented interface", - "homepage": "https://github.com/zendframework/zend-code", - "keywords": [ - "code", - "zf2" - ], - "support": { - "issues": "https://github.com/zendframework/zend-code/issues", - "source": "https://github.com/zendframework/zend-code/tree/release-2.6" - }, - "abandoned": "laminas/laminas-code", - "time": "2016-04-20T17:26:42+00:00" - }, - { - "name": "zendframework/zend-eventmanager", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-eventmanager.git", - "reference": "a5e2583a211f73604691586b8406ff7296a946dd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd", - "reference": "a5e2583a211f73604691586b8406ff7296a946dd", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "athletic/athletic": "^0.1", - "container-interop/container-interop": "^1.1.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-stdlib": "^2.7.3 || ^3.0" - }, - "suggest": { - "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", - "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev", - "dev-develop": "3.3-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\EventManager\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Trigger and listen to events within a PHP application", - "homepage": "https://github.com/zendframework/zend-eventmanager", - "keywords": [ - "event", - "eventmanager", - "events", - "zf2" - ], - "support": { - "issues": "https://github.com/zendframework/zend-eventmanager/issues", - "source": "https://github.com/zendframework/zend-eventmanager/tree/master" - }, - "abandoned": "laminas/laminas-eventmanager", - "time": "2018-04-25T15:33:34+00:00" } ], "packages-dev": [ @@ -5752,44 +9692,46 @@ }, { "name": "doctrine/data-fixtures", - "version": "1.3.3", + "version": "1.5.3", "source": { "type": "git", "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "f0ee99c64922fc3f863715232b615c478a61b0a3" + "reference": "ba37bfb776de763c5bf04a36d074cd5f5a083c42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/f0ee99c64922fc3f863715232b615c478a61b0a3", - "reference": "f0ee99c64922fc3f863715232b615c478a61b0a3", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/ba37bfb776de763c5bf04a36d074cd5f5a083c42", + "reference": "ba37bfb776de763c5bf04a36d074cd5f5a083c42", "shasum": "" }, "require": { - "doctrine/common": "~2.2", - "php": "^7.1" + "doctrine/common": "^2.13|^3.0", + "doctrine/persistence": "^1.3.3|^2.0|^3.0", + "php": "^7.2 || ^8.0" }, "conflict": { + "doctrine/dbal": "<2.13", "doctrine/phpcr-odm": "<1.3.0" }, "require-dev": { - "alcaeus/mongo-php-adapter": "^1.1", - "doctrine/dbal": "^2.5.4", - "doctrine/mongodb-odm": "^1.3.0", - "doctrine/orm": "^2.5.4", - "phpunit/phpunit": "^7.0" + "doctrine/coding-standard": "^9.0", + "doctrine/dbal": "^2.13 || ^3.0", + "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", + "doctrine/orm": "^2.7.0", + "ext-sqlite3": "*", + "jangregor/phpstan-prophecy": "^1", + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^8.5 || ^9.5", + "symfony/cache": "^5.0 || ^6.0", + "vimeo/psalm": "^4.10" }, "suggest": { - "alcaeus/mongo-php-adapter": "For using MongoDB ODM with PHP 7", + "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)", "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", "doctrine/orm": "For loading ORM fixtures", "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures" @@ -5806,42 +9748,64 @@ } ], "description": "Data Fixtures for all Doctrine Object Managers", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org", "keywords": [ "database" ], "support": { "issues": "https://github.com/doctrine/data-fixtures/issues", - "source": "https://github.com/doctrine/data-fixtures/tree/1.3" + "source": "https://github.com/doctrine/data-fixtures/tree/1.5.3" }, - "time": "2019-10-24T04:52:28+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdata-fixtures", + "type": "tidelift" + } + ], + "time": "2022-04-19T10:01:44+00:00" }, { "name": "doctrine/doctrine-fixtures-bundle", - "version": "v2.4.1", + "version": "3.4.2", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineFixturesBundle.git", - "reference": "74b8cc70a4a25b774628ee59f4cdf3623a146273" + "reference": "601988c5b46dbd20a0f886f967210aba378a6fd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273", - "reference": "74b8cc70a4a25b774628ee59f4cdf3623a146273", + "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/601988c5b46dbd20a0f886f967210aba378a6fd5", + "reference": "601988c5b46dbd20a0f886f967210aba378a6fd5", "shasum": "" }, "require": { - "doctrine/data-fixtures": "~1.0", - "doctrine/doctrine-bundle": "~1.0", - "php": ">=5.3.2", - "symfony/doctrine-bridge": "~2.7|~3.0|~4.0" + "doctrine/data-fixtures": "^1.3", + "doctrine/doctrine-bundle": "^1.11|^2.0", + "doctrine/orm": "^2.6.0", + "doctrine/persistence": "^1.3.7|^2.0|^3.0", + "php": "^7.1 || ^8.0", + "symfony/config": "^3.4|^4.3|^5.0|^6.0", + "symfony/console": "^3.4|^4.3|^5.0|^6.0", + "symfony/dependency-injection": "^3.4.47|^4.3|^5.0|^6.0", + "symfony/doctrine-bridge": "^3.4|^4.1|^5.0|^6.0", + "symfony/http-kernel": "^3.4|^4.3|^5.0|^6.0" }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "2.4.x-dev" - } + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "^1.4.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "symfony/phpunit-bridge": "^6.0.8", + "vimeo/psalm": "^4.22" }, + "type": "symfony-bundle", "autoload": { "psr-4": { "Doctrine\\Bundle\\FixturesBundle\\": "" @@ -5853,29 +9817,43 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org" + "homepage": "https://www.doctrine-project.org" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony DoctrineFixturesBundle", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org", "keywords": [ "Fixture", "persistence" ], "support": { "issues": "https://github.com/doctrine/DoctrineFixturesBundle/issues", - "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/master" + "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.4.2" }, - "time": "2017-10-30T19:26:42+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-fixtures-bundle", + "type": "tidelift" + } + ], + "time": "2022-04-28T17:58:29+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -6038,16 +10016,16 @@ }, { "name": "mockery/mockery", - "version": "1.3.5", + "version": "1.3.6", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "472fa8ca4e55483d55ee1e73c963718c4393791d" + "reference": "dc206df4fa314a50bbb81cf72239a305c5bbd5c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/472fa8ca4e55483d55ee1e73c963718c4393791d", - "reference": "472fa8ca4e55483d55ee1e73c963718c4393791d", + "url": "https://api.github.com/repos/mockery/mockery/zipball/dc206df4fa314a50bbb81cf72239a305c5bbd5c0", + "reference": "dc206df4fa314a50bbb81cf72239a305c5bbd5c0", "shasum": "" }, "require": { @@ -6101,31 +10079,35 @@ ], "support": { "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.3.5" + "source": "https://github.com/mockery/mockery/tree/1.3.6" }, - "time": "2021-09-13T15:33:03+00:00" + "time": "2022-09-07T15:05:49+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.10.2", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { @@ -6150,7 +10132,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" }, "funding": [ { @@ -6158,20 +10140,20 @@ "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2022-03-03T13:19:32+00:00" }, { "name": "pdepend/pdepend", - "version": "2.11.0", + "version": "2.12.1", "source": { "type": "git", "url": "https://github.com/pdepend/pdepend.git", - "reference": "9141e6f8e1f044aa64aedb0e6894d12618cdcb3e" + "reference": "7a892d56ceafd804b4a2ecc85184640937ce9e84" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/9141e6f8e1f044aa64aedb0e6894d12618cdcb3e", - "reference": "9141e6f8e1f044aa64aedb0e6894d12618cdcb3e", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/7a892d56ceafd804b4a2ecc85184640937ce9e84", + "reference": "7a892d56ceafd804b4a2ecc85184640937ce9e84", "shasum": "" }, "require": { @@ -6207,7 +10189,7 @@ "description": "Official version of pdepend to be handled with Composer", "support": { "issues": "https://github.com/pdepend/pdepend/issues", - "source": "https://github.com/pdepend/pdepend/tree/2.11.0" + "source": "https://github.com/pdepend/pdepend/tree/2.12.1" }, "funding": [ { @@ -6215,7 +10197,7 @@ "type": "tidelift" } ], - "time": "2022-08-29T11:21:12+00:00" + "time": "2022-09-08T19:30:37+00:00" }, { "name": "phar-io/manifest", @@ -7121,16 +11103,16 @@ }, { "name": "sebastian/comparator", - "version": "3.0.3", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dc7ceb4a24aede938c7af2a9ed1de09609ca770", + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770", "shasum": "" }, "require": { @@ -7183,7 +11165,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.5" }, "funding": [ { @@ -7191,7 +11173,7 @@ "type": "github" } ], - "time": "2020-11-30T08:04:30+00:00" + "time": "2022-09-14T12:31:48+00:00" }, { "name": "sebastian/diff", @@ -7324,16 +11306,16 @@ }, { "name": "sebastian/exporter", - "version": "3.1.4", + "version": "3.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db" + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", - "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6", + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6", "shasum": "" }, "require": { @@ -7389,7 +11371,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.4" + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5" }, "funding": [ { @@ -7397,7 +11379,7 @@ "type": "github" } ], - "time": "2021-11-11T13:51:24+00:00" + "time": "2022-09-14T06:00:17+00:00" }, { "name": "sebastian/finder-facade", @@ -7831,65 +11813,6 @@ }, "time": "2016-10-03T07:35:21+00:00" }, - { - "name": "sensio/generator-bundle", - "version": "v3.1.7", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/SensioGeneratorBundle.git", - "reference": "28cbaa244bd0816fd8908b93f90380bcd7b67a65" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65", - "reference": "28cbaa244bd0816fd8908b93f90380bcd7b67a65", - "shasum": "" - }, - "require": { - "symfony/console": "~2.7|~3.0", - "symfony/framework-bundle": "~2.7|~3.0", - "symfony/process": "~2.7|~3.0", - "symfony/yaml": "~2.7|~3.0", - "twig/twig": "^1.28.2|^2.0" - }, - "require-dev": { - "doctrine/orm": "~2.4", - "symfony/doctrine-bridge": "~2.7|~3.0", - "symfony/filesystem": "~2.7|~3.0", - "symfony/phpunit-bridge": "^3.3" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Sensio\\Bundle\\GeneratorBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "This bundle generates code for you", - "support": { - "issues": "https://github.com/sensiolabs/SensioGeneratorBundle/issues", - "source": "https://github.com/sensiolabs/SensioGeneratorBundle/tree/master" - }, - "abandoned": "symfony/maker-bundle", - "time": "2017-12-07T15:36:41+00:00" - }, { "name": "squizlabs/php_codesniffer", "version": "2.9.2", @@ -7973,28 +11896,97 @@ }, "time": "2018-11-07T22:31:41+00:00" }, + { + "name": "symfony/css-selector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, { "name": "symfony/phpunit-bridge", - "version": "v3.4.47", + "version": "v4.4.47", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "120273ad5d03a8deee08ca9260e2598f288f2bac" + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/120273ad5d03a8deee08ca9260e2598f288f2bac", - "reference": "120273ad5d03a8deee08ca9260e2598f288f2bac", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/75857fc94e9cb68e7ab32e7a962750f73ce40396", + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.5.9" }, "conflict": { "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2" }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0" + }, "suggest": { - "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" }, "bin": [ "bin/simple-phpunit" @@ -8031,10 +12023,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony PHPUnit Bridge", + "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v3.4.47" + "source": "https://github.com/symfony/phpunit-bridge/tree/v4.4.47" }, "funding": [ { @@ -8050,7 +12042,7 @@ "type": "tidelift" } ], - "time": "2020-11-13T16:28:59+00:00" + "time": "2022-10-03T15:15:11+00:00" }, { "name": "theseer/fdomdocument", @@ -8158,8 +12150,10 @@ "prefer-lowest": false, "platform": { "php": "7.2.*", + "ext-ctype": "*", "ext-curl": "*", "ext-gd": "*", + "ext-iconv": "*", "ext-json": "*", "ext-mbstring": "*", "ext-mysqli": "*", @@ -8167,8 +12161,5 @@ "ext-xml": "*" }, "platform-dev": [], - "platform-overrides": { - "php": "7.2" - }, "plugin-api-version": "2.3.0" } diff --git a/config/bootstrap.php b/config/bootstrap.php new file mode 100644 index 000000000..55560fb83 --- /dev/null +++ b/config/bootstrap.php @@ -0,0 +1,23 @@ +=1.2) +if (is_array($env = @include dirname(__DIR__).'/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) { + (new Dotenv(false))->populate($env); +} else { + // load all the .env files + (new Dotenv(false))->loadEnv(dirname(__DIR__).'/.env'); +} + +$_SERVER += $_ENV; +$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev'; +$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV']; +$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0'; diff --git a/config/bundles.php b/config/bundles.php new file mode 100644 index 000000000..a27cd765f --- /dev/null +++ b/config/bundles.php @@ -0,0 +1,25 @@ + ['all' => true], + Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], + Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], + Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true], + League\Tactician\Bundle\TacticianBundle::class => ['all' => true], + Lexik\Bundle\TranslationBundle\LexikTranslationBundle::class => ['all' => true], + Nelmio\SecurityBundle\NelmioSecurityBundle::class => ['all' => true], + OpenConext\MonitorBundle\OpenConextMonitorBundle::class => ['all' => true], + Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true], + Stfalcon\Bundle\TinymceBundle\StfalconTinymceBundle::class => ['all' => true], + Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle::class => ['all' => true], + Surfnet\SamlBundle\SurfnetSamlBundle::class => ['all' => true], + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\DashboardBundle::class => ['all' => true], + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\DashboardSamlBundle::class => ['all' => true], + Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], + Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], + Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], + Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], + Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], + Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true], + Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], +]; diff --git a/config/packages/cache.yaml b/config/packages/cache.yaml new file mode 100644 index 000000000..6899b7200 --- /dev/null +++ b/config/packages/cache.yaml @@ -0,0 +1,19 @@ +framework: + cache: + # Unique name of your app: used to compute stable namespaces for cache keys. + #prefix_seed: your_vendor_name/app_name + + # The "app" cache stores to the filesystem by default. + # The data in this cache should persist between deploys. + # Other options include: + + # Redis + #app: cache.adapter.redis + #default_redis_provider: redis://localhost + + # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) + #app: cache.adapter.apcu + + # Namespaced pools use the above "app" backend by default + #pools: + #my.dedicated.cache: null diff --git a/config/packages/dashboard.yaml b/config/packages/dashboard.yaml new file mode 100644 index 000000000..043b5dc25 --- /dev/null +++ b/config/packages/dashboard.yaml @@ -0,0 +1,19 @@ +dashboard: + manage: + test: + connection: + host: "%env(manage_test_host)%" + username: "%env(manage_test_username)%" + password: "%env(manage_test_password)%" + publication_status: "%env(manage_test_publication_status)%" + production: + connection: + host: "%env(manage_prod_host)%" + username: "%env(manage_prod_username)%" + password: "%env(manage_prod_password)%" + publication_status: "%env(manage_prod_publication_status)%" + teams: + connection: + host: "%env(teams_host)%" + username: "%env(teams_username)%" + password: "%env(teams_password)%" diff --git a/config/packages/dashboard_saml.yaml b/config/packages/dashboard_saml.yaml new file mode 100644 index 000000000..d8d8cd608 --- /dev/null +++ b/config/packages/dashboard_saml.yaml @@ -0,0 +1,5 @@ +dashboard_saml: + session_lifetimes: + max_absolute_lifetime: "%env(int:session_max_absolute_lifetime)%" + max_relative_lifetime: "%env(int:session_max_relative_lifetime)%" + administrator_teams: "%env(administrator_teams)%" \ No newline at end of file diff --git a/config/packages/dev/framework.yaml b/config/packages/dev/framework.yaml new file mode 100644 index 000000000..683dd4096 --- /dev/null +++ b/config/packages/dev/framework.yaml @@ -0,0 +1,7 @@ +framework: +# router: +# resource: '%kernel.root_dir%/config/routes_dev.yaml' +# strict_requirements: true + profiler: { only_exceptions: false } + session: + save_path: '/tmp/sp-dashboard-sessions' diff --git a/app/config/config_dev.yml b/config/packages/dev/monolog.yaml similarity index 64% rename from app/config/config_dev.yml rename to config/packages/dev/monolog.yaml index b6f9d0b11..4d707b357 100644 --- a/app/config/config_dev.yml +++ b/config/packages/dev/monolog.yaml @@ -1,16 +1,3 @@ -imports: - - { resource: config.yml } - -framework: - router: - resource: '%kernel.root_dir%/config/routing_dev.yml' - strict_requirements: true - profiler: { only_exceptions: false } - session: - save_path: '/tmp/sp-dashboard-sessions' - -# The monolog configuration below overwrites the in logging.yml that -# is normally used for production. monolog: handlers: prod-signaler: @@ -31,10 +18,3 @@ monolog: handler: logfile level: NOTICE path: "%kernel.logs_dir%/%kernel.environment%.log" - -web_profiler: - toolbar: true - intercept_redirects: false - -swiftmailer: - port: 1025 diff --git a/config/packages/dev/routing.yaml b/config/packages/dev/routing.yaml new file mode 100644 index 000000000..773eac605 --- /dev/null +++ b/config/packages/dev/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: true \ No newline at end of file diff --git a/config/packages/dev/services.yml b/config/packages/dev/services.yml new file mode 100644 index 000000000..974b0136c --- /dev/null +++ b/config/packages/dev/services.yml @@ -0,0 +1,6 @@ +services: + _defaults: + public: true + +parameters: + jira_enable_test_mode: true diff --git a/config/packages/dev/web_profiler.yaml b/config/packages/dev/web_profiler.yaml new file mode 100644 index 000000000..e92166a7f --- /dev/null +++ b/config/packages/dev/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: true + intercept_redirects: false + +framework: + profiler: { only_exceptions: false } diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml new file mode 100644 index 000000000..082763ca6 --- /dev/null +++ b/config/packages/doctrine.yaml @@ -0,0 +1,24 @@ +doctrine: + dbal: + url: '%env(resolve:DATABASE_URL)%' + + # IMPORTANT: You MUST configure your server version, + # either here or in the DATABASE_URL env var (see .env file) + # server_version: '13' + + # only needed for MySQL + # charset: utf8mb4 + #default_table_options: + # collate: utf8mb4_unicode_ci + + orm: + auto_generate_proxy_classes: '%kernel.debug%' + naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware + auto_mapping: true + mappings: + Surfnet\ServiceProviderDashboard: + type: annotation + is_bundle: false + dir: "%kernel.root_dir%/Domain/Entity" + prefix: Surfnet\ServiceProviderDashboard\Domain\Entity + alias: SurfnetServiceProviderDashboard diff --git a/config/packages/doctrine_migrations.yaml b/config/packages/doctrine_migrations.yaml new file mode 100644 index 000000000..4c10f01af --- /dev/null +++ b/config/packages/doctrine_migrations.yaml @@ -0,0 +1,11 @@ +doctrine_migrations: + migrations_paths: + 'Surfnet\ServiceProviderDashboard\Migrations': '%kernel.project_dir%/migrations' + + storage: + table_storage: + table_name: 'migration_versions' + version_column_name: 'SP_Dashboard_migrations' + + organize_migrations: false + diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml new file mode 100644 index 000000000..236ebf265 --- /dev/null +++ b/config/packages/framework.yaml @@ -0,0 +1,14 @@ +framework: + secret: '%env(APP_SECRET)%' + csrf_protection: true + trusted_hosts: ~ + session: + handler_id: Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler + cookie_secure: auto + cookie_samesite: lax + fragments: ~ + http_method_override: true + assets: + json_manifest_path: '%kernel.project_dir%/public/build/manifest.json' + php_errors: + log: true diff --git a/config/packages/league_tactician.yaml b/config/packages/league_tactician.yaml new file mode 100644 index 000000000..08e40b948 --- /dev/null +++ b/config/packages/league_tactician.yaml @@ -0,0 +1,15 @@ +# Library documentation: http://tactician.thephpleague.com/ +# Bundle documentation: https://github.com/thephpleague/tactician-bundle/blob/v1.0/README.md +tactician: + commandbus: + default: + middleware: +# Security middleware - https://github.com/thephpleague/tactician-bundle#security-middleware-tacticianmiddlewaresecurity +# - tactician.middleware.security +# Validator middleware - https://github.com/thephpleague/tactician-bundle/tree/v1.0#validator-middleware-tacticianmiddlewarevalidator +# - tactician.middleware.validator +# Locking middleware - http://tactician.thephpleague.com/plugins/locking-middleware/ +# - tactician.middleware.locking +# Doctrine transactional middleware, requires additional package - https://github.com/thephpleague/tactician-doctrine +# - tactician.middleware.doctrine + - tactician.middleware.command_handler diff --git a/config/packages/lexik_translation.yaml b/config/packages/lexik_translation.yaml new file mode 100644 index 000000000..c23b86b12 --- /dev/null +++ b/config/packages/lexik_translation.yaml @@ -0,0 +1,9 @@ +lexik_translation: + fallback_locale: [en] # (required) default locale(s) to use + managed_locales: [en] # (required) locales that the bundle has to manage + grid_input_type: textarea + grid_toggle_similar: true + resources_registration: + type: all + managed_locales_only: true + base_layout: "Translation/layout.html.twig" diff --git a/config/packages/mailer.yaml b/config/packages/mailer.yaml new file mode 100644 index 000000000..56a650d89 --- /dev/null +++ b/config/packages/mailer.yaml @@ -0,0 +1,3 @@ +framework: + mailer: + dsn: '%env(MAILER_DSN)%' diff --git a/config/packages/nelmio_security.yaml b/config/packages/nelmio_security.yaml new file mode 100644 index 000000000..292bbeb65 --- /dev/null +++ b/config/packages/nelmio_security.yaml @@ -0,0 +1,26 @@ +nelmio_security: + # prevents framing of the entire site + clickjacking: + paths: + '^/.*': DENY + + # disables content type sniffing for script resources + content_type: + nosniff: true + + # forces Microsoft's XSS-Protection with + # its block mode + xss_protection: + enabled: true + mode_block: true + + # Send a full URL in the `Referer` header when performing a same-origin request, + # only send the origin of the document to secure destination (HTTPS->HTTPS), + # and send no header to a less secure destination (HTTPS->HTTP). + # If `strict-origin-when-cross-origin` is not supported, use `no-referrer` policy, + # no referrer information is sent along with requests. + referrer_policy: + enabled: true + policies: + - 'no-referrer' + - 'strict-origin-when-cross-origin' diff --git a/config/packages/prod/deprecations.yaml b/config/packages/prod/deprecations.yaml new file mode 100644 index 000000000..920a06197 --- /dev/null +++ b/config/packages/prod/deprecations.yaml @@ -0,0 +1,8 @@ +# As of Symfony 5.1, deprecations are logged in the dedicated "deprecation" channel when it exists +#monolog: +# channels: [deprecation] +# handlers: +# deprecation: +# type: stream +# channels: [deprecation] +# path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log" diff --git a/config/packages/prod/doctrine.yaml b/config/packages/prod/doctrine.yaml new file mode 100644 index 000000000..084f59a05 --- /dev/null +++ b/config/packages/prod/doctrine.yaml @@ -0,0 +1,20 @@ +doctrine: + orm: + auto_generate_proxy_classes: false + metadata_cache_driver: + type: pool + pool: doctrine.system_cache_pool + query_cache_driver: + type: pool + pool: doctrine.system_cache_pool + result_cache_driver: + type: pool + pool: doctrine.result_cache_pool + +framework: + cache: + pools: + doctrine.result_cache_pool: + adapter: cache.app + doctrine.system_cache_pool: + adapter: cache.system diff --git a/config/packages/prod/monolog.yaml b/config/packages/prod/monolog.yaml new file mode 100644 index 000000000..0723fc876 --- /dev/null +++ b/config/packages/prod/monolog.yaml @@ -0,0 +1,14 @@ +monolog: + handlers: + prod-signaler: + type: fingers_crossed + action_level: ERROR + passthru_level: NOTICE # this means that all message of level NOTICE or higher are always logged + handler: main_syslog + bubble: false # if we handle it, nothing else should + main_syslog: + type: syslog + ident: spdashboard + facility: user + channels: ['!event'] + formatter: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Monolog\Formatter\JsonFormatter diff --git a/config/packages/prod/routing.yaml b/config/packages/prod/routing.yaml new file mode 100644 index 000000000..b3e6a0af2 --- /dev/null +++ b/config/packages/prod/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: null diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml new file mode 100644 index 000000000..7e977620b --- /dev/null +++ b/config/packages/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + utf8: true diff --git a/app/config/security.yml b/config/packages/security.yaml similarity index 92% rename from app/config/security.yml rename to config/packages/security.yaml index d7b200885..96164d333 100644 --- a/app/config/security.yml +++ b/config/packages/security.yaml @@ -1,5 +1,3 @@ -# To get started with security, check out the documentation: -# http://symfony.com/doc/current/security.html security: role_hierarchy: @@ -49,9 +47,9 @@ nelmio_security: external_redirects: abort: true log: true - whitelist: - - '%saml_remote_idp_host%' - - '%logout_redirect_url%' + allow_list: + - '%env(saml_remote_idp_host)%' + - '%env(logout_redirect_url)%' csp: report_logger_service: monolog.logger.security hosts: [] diff --git a/config/packages/sensio_framework_extra.yaml b/config/packages/sensio_framework_extra.yaml new file mode 100644 index 000000000..1821ccc07 --- /dev/null +++ b/config/packages/sensio_framework_extra.yaml @@ -0,0 +1,3 @@ +sensio_framework_extra: + router: + annotations: false diff --git a/config/packages/stfalcon_tinymce.yaml b/config/packages/stfalcon_tinymce.yaml new file mode 100644 index 000000000..0d81f9f37 --- /dev/null +++ b/config/packages/stfalcon_tinymce.yaml @@ -0,0 +1,10 @@ +stfalcon_tinymce: + tinymce_jquery: false + language: "%env(locale)%" + theme: + simple: + theme: "modern" + menubar: false + toolbar: "bold italic underline | styleselect | bullist numlist outdent indent | link" + plugins: + - "autolink lists link contextmenu paste" \ No newline at end of file diff --git a/config/packages/stof_doctrine_extensions.yaml b/config/packages/stof_doctrine_extensions.yaml new file mode 100644 index 000000000..fc2ae8e02 --- /dev/null +++ b/config/packages/stof_doctrine_extensions.yaml @@ -0,0 +1,5 @@ +stof_doctrine_extensions: + default_locale: en_US + orm: + default: + timestampable: true diff --git a/config/packages/surfnet_saml.yaml b/config/packages/surfnet_saml.yaml new file mode 100644 index 000000000..3709c1884 --- /dev/null +++ b/config/packages/surfnet_saml.yaml @@ -0,0 +1,17 @@ +surfnet_saml: + hosted: + service_provider: + enabled: true + assertion_consumer_route: dashboard_saml_consume_assertion + public_key: "%env(resolve:saml_sp_publickey)%" + private_key: "%env(resolve:saml_sp_privatekey)%" + metadata: + entity_id_route: dashboard_saml_metadata + public_key: "%env(resolve:saml_metadata_publickey)%" + private_key: "%env(resolve:saml_metadata_privatekey)%" + remote: + identity_provider: + enabled: true + entity_id: "%env(saml_remote_idp_entity_id)%" + sso_url: "%env(saml_remote_idp_sso_url)%" + certificate: "%env(saml_remote_idp_certificate)%" \ No newline at end of file diff --git a/config/packages/test/framework.yaml b/config/packages/test/framework.yaml new file mode 100644 index 000000000..06662df3c --- /dev/null +++ b/config/packages/test/framework.yaml @@ -0,0 +1,6 @@ +framework: + test: true + session: + storage_id: surfnet.dashboard.session.storage.mock_file + profiler: + collect: false diff --git a/config/packages/test/monolog.yaml b/config/packages/test/monolog.yaml new file mode 100644 index 000000000..c88531b9e --- /dev/null +++ b/config/packages/test/monolog.yaml @@ -0,0 +1,14 @@ +monolog: + handlers: + prod-signaler: + type: fingers_crossed + action_level: ERROR + passthru_level: DEBUG # DEV setting: this means that all message of level DEBUG or higher are always logged + handler: main_logfile + bubble: false + main_logfile: + type: stream + handler: logfile + level: NOTICE + path: "%kernel.logs_dir%/%kernel.environment%.log" + diff --git a/config/packages/test/services.yml b/config/packages/test/services.yml new file mode 100644 index 000000000..974b0136c --- /dev/null +++ b/config/packages/test/services.yml @@ -0,0 +1,6 @@ +services: + _defaults: + public: true + +parameters: + jira_enable_test_mode: true diff --git a/config/packages/test/twig.yaml b/config/packages/test/twig.yaml new file mode 100644 index 000000000..8c6e0b401 --- /dev/null +++ b/config/packages/test/twig.yaml @@ -0,0 +1,2 @@ +twig: + strict_variables: true diff --git a/config/packages/test/validator.yaml b/config/packages/test/validator.yaml new file mode 100644 index 000000000..1e5ab7880 --- /dev/null +++ b/config/packages/test/validator.yaml @@ -0,0 +1,3 @@ +framework: + validation: + not_compromised_password: false diff --git a/config/packages/test/web_profiler.yaml b/config/packages/test/web_profiler.yaml new file mode 100644 index 000000000..03752de21 --- /dev/null +++ b/config/packages/test/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: false + intercept_redirects: false + +framework: + profiler: { collect: false } diff --git a/config/packages/translation.yaml b/config/packages/translation.yaml new file mode 100644 index 000000000..05a2b3d82 --- /dev/null +++ b/config/packages/translation.yaml @@ -0,0 +1,6 @@ +framework: + default_locale: en + translator: + default_path: '%kernel.project_dir%/translations' + fallbacks: + - en diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml new file mode 100644 index 000000000..f34eb139c --- /dev/null +++ b/config/packages/twig.yaml @@ -0,0 +1,7 @@ +twig: + default_path: '%kernel.project_dir%/templates' + paths: + '%kernel.project_dir%/templates': 'Dashboard' + debug: '%kernel.debug%' + strict_variables: '%kernel.debug%' + exception_controller: null diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml new file mode 100644 index 000000000..350786a13 --- /dev/null +++ b/config/packages/validator.yaml @@ -0,0 +1,8 @@ +framework: + validation: + email_validation_mode: html5 + + # Enables validator auto-mapping support. + # For instance, basic validation constraints will be inferred from Doctrine's metadata. + #auto_mapping: + # App\Entity\: [] diff --git a/config/preload.php b/config/preload.php new file mode 100644 index 000000000..064bdcd6a --- /dev/null +++ b/config/preload.php @@ -0,0 +1,9 @@ + { 'Accept': 'application/json', 'Authorization': 'Basic ' + window.btoa("sp-dashboard:secret") }, - body: + body: '' }) .then(response => response.json()) .then(data => { diff --git a/docker/Dockerfile b/docker/Dockerfile index 21fe4fb82..0acfeadb7 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,9 +2,7 @@ FROM ghcr.io/openconext/openconext-containers/openconext-phpfpm-dev:latest AS no COPY . /var/www/html/ WORKDIR /var/www/html/ ENV SYMFONY_ENV=prod -RUN composer install -n --prefer-dist -o --ignore-platform-reqs --no-dev && \ - composer run-script symfony-scripts && \ - bin/console assets:install +RUN composer install -n --prefer-dist -o --ignore-platform-reqs --no-dev FROM node:14 AS js-build COPY . /var/www/html/ @@ -15,8 +13,8 @@ RUN yarn install && \ FROM ghcr.io/openconext/openconext-containers/openconext-httpd:latest AS httpd-build MAINTAINER Bart Geesink (bart.geesink@surf.nl) RUN mkdir -p /var/www/html/ -COPY --from=node-build /var/www/html/web/. /var/www/html/web/ -COPY --from=js-build /var/www/html/web/build/. /var/www/html/web/build/ +COPY --from=node-build /var/www/html/public/. /var/www/html/public/ +COPY --from=js-build /var/www/html/public/build/. /var/www/html/web/public/ COPY ./docker/conf/000-default.conf /usr/local/apache2/conf/ COPY ./docker/conf/httpd.conf /usr/local/apache2/conf/ @@ -25,20 +23,20 @@ EXPOSE 80 CMD ["httpd", "-D", "FOREGROUND"] FROM ghcr.io/openconext/openconext-containers/openconext-phpfpm:latest AS phpfpm-build -COPY --from=node-build /var/www/html/app/. /var/www/html/app/ -COPY --from=node-build /var/www/html/web/. /var/www/html/web/ +COPY --from=node-build /var/www/html/config/. /var/www/html/config/ +COPY --from=node-build /var/www/html/public/. /var/www/html/public/ COPY --from=node-build /var/www/html/vendor/. /var/www/html/vendor/ COPY --from=node-build /var/www/html/var/. /var/www/html/var/ COPY --from=node-build /var/www/html/src/. /var/www/html/src/ COPY --from=node-build /var/www/html/bin/. /var/www/html/bin/ COPY --from=node-build /var/www/html/composer.json /var/www/html/ -COPY --from=js-build /var/www/html/web/build/. /var/www/html/web/build/ +COPY --from=js-build /var/www/html/public/build/. /var/www/html/public/build/ COPY --from=js-build /var/www/html/node_modules/. /var/www/html/node_modules/ LABEL maintainer "Bart Geesink" RUN chown -R www-data /var/www/html/var/cache && \ - chown -R www-data /var/www/html/var/logs && \ + chown -R www-data /var/www/html/var/log && \ chown -R www-data /var/www/html/var/sessions && \ rm -rf /var/www/html/var/cache/prod/ diff --git a/docker/Dockerfiledev b/docker/Dockerfiledev index 6a6edf713..85291a57e 100644 --- a/docker/Dockerfiledev +++ b/docker/Dockerfiledev @@ -9,18 +9,13 @@ CMD ["/usr/local/sbin/start.sh"] FROM ghcr.io/openconext/openconext-containers/openconext-phpfpm-dev:latest AS spdphpfpm WORKDIR /var/www/html/ -COPY --from=composer:1 /usr/bin/composer /usr/local/bin/composer +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer COPY --from=openconext /etc/pki/ca-trust/source/anchors/star.vm.openconext.org.pem /usr/local/share/ca-certificates/star.vm.openconext.org.pem COPY ./conf/10-timezone-openconext.ini /usr/local/etc/php/conf.d/ RUN /usr/sbin/update-ca-certificates && \ rm -rf /tmp/sp-dashboard/ /tmp/sp-dashboard-sessions/ && \ - apk --update --no-cache add yarn autoconf g++ make && \ - docker-php-ext-install mysqli && \ - pecl install -f xdebug && \ - docker-php-ext-enable xdebug && \ - apk del --purge autoconf g++ make - + apk --update --no-cache add yarn CMD ["/usr/local/sbin/php-fpm" , "-F"] FROM ghcr.io/openconext/openconext-containers/openconext-httpd:latest AS spdhttpd diff --git a/docker/conf/000-default-dev.conf b/docker/conf/000-default-dev.conf index c6f936888..10e89c48b 100644 --- a/docker/conf/000-default-dev.conf +++ b/docker/conf/000-default-dev.conf @@ -1,14 +1,15 @@ -DocumentRoot "/var/www/html/web" +DocumentRoot "/var/www/html/public" SetEnvIfNoCase ^Authorization\$ "(.+)" HTTP_AUTHORIZATION=\$1 SetEnv HTTPS on +Mutex posixsem - + AllowOverride None Require all granted Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f - RewriteRule ^(.*)$ app_dev.php/$1 [QSA,L] + RewriteRule ^(.*)$ index.php/$1 [QSA,L] Header always unset X-Content-Security-Policy diff --git a/docker/conf/000-default.conf b/docker/conf/000-default.conf index a8c883f87..5bde26b05 100644 --- a/docker/conf/000-default.conf +++ b/docker/conf/000-default.conf @@ -1,17 +1,17 @@ TraceEnable Off ServerTokens Prod -DocumentRoot "/var/www/html/web" +DocumentRoot "/var/www/html/public" SetEnvIfNoCase ^Authorization\$ "(.+)" HTTP_AUTHORIZATION=\$1 SetEnv HTTPS on - + AllowOverride None Require all granted Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f - RewriteRule ^(.*)$ app.php/$1 [QSA,L] + RewriteRule ^(.*)$ index.php/$1 [QSA,L] Header always unset X-Content-Security-Policy diff --git a/issues.json b/issues.json new file mode 100644 index 000000000..b048973d4 --- /dev/null +++ b/issues.json @@ -0,0 +1 @@ +{"9628d851-abd1-2283-a8f1-a29ba5036174":{"key":"9628d851-abd1-2283-a8f1-a29ba5036174","issueType":"spd-request-change-request-prod","ticketStatus":"To Do"}} \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index c06bc1dce..3eff64455 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,9 +1,9 @@ module.exports = { collectCoverage: false, - coverageDirectory: "app/js/coverage", + coverageDirectory: "assets/js/coverage", collectCoverageFrom: [ - "app/js/**/*.{ts,tsx,js,jsx}", - "!web/build/**", + "assets/js/**/*.{ts,tsx,js,jsx}", + "!public/build/**", "!**/*test.{ts,tsx,js,jsx}", "!node_modules/**" ], diff --git a/var/cache/.gitkeep b/migrations/.gitignore similarity index 100% rename from var/cache/.gitkeep rename to migrations/.gitignore diff --git a/app/DoctrineMigrations/Version20180101010000.php b/migrations/Version20180101010000.php similarity index 90% rename from app/DoctrineMigrations/Version20180101010000.php rename to migrations/Version20180101010000.php index c374417a5..27282d3b5 100644 --- a/app/DoctrineMigrations/Version20180101010000.php +++ b/migrations/Version20180101010000.php @@ -1,9 +1,10 @@ -abortIf( @@ -28,7 +30,7 @@ public function up(Schema $schema) ); // If this migration is run on an existing DB, clear the version table and play the squash migration. - if (count($this->version->getConfiguration()->getMigratedVersions()) > 0) { + if ($this->getMigratedVersions() > 0) { $this->addSql("TRUNCATE migration_versions"); } @@ -54,8 +56,22 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { $this->abortIf(true, 'Drop the database schema to \'down\' this migration.'); } + + /** + * @throws Exception + * @throws \Doctrine\DBAL\Exception + */ + public function getMigratedVersions(): int + { + $select = $this->connection->executeQuery("SELECT COUNT(*) AS number FROM migration_versions"); + $row = $select->fetchAllAssociative(); + if (count($row)) { + return (int)$row[0]['number']; + } + return 0; + } } diff --git a/app/DoctrineMigrations/Version20181107134447.php b/migrations/Version20181107134447.php similarity index 90% rename from app/DoctrineMigrations/Version20181107134447.php rename to migrations/Version20181107134447.php index 26387d544..9364105ed 100644 --- a/app/DoctrineMigrations/Version20181107134447.php +++ b/migrations/Version20181107134447.php @@ -1,9 +1,9 @@ -abortIf( @@ -55,7 +53,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf( diff --git a/app/DoctrineMigrations/Version20181127140634.php b/migrations/Version20181127140634.php similarity index 83% rename from app/DoctrineMigrations/Version20181127140634.php rename to migrations/Version20181127140634.php index a74ac10e9..5b5867b89 100644 --- a/app/DoctrineMigrations/Version20181127140634.php +++ b/migrations/Version20181127140634.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -26,7 +26,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20181206094559.php b/migrations/Version20181206094559.php similarity index 83% rename from app/DoctrineMigrations/Version20181206094559.php rename to migrations/Version20181206094559.php index b90576d81..6f9ca2e78 100644 --- a/app/DoctrineMigrations/Version20181206094559.php +++ b/migrations/Version20181206094559.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -25,7 +25,7 @@ public function up(Schema $schema) * @param Schema $schema * @throws \Doctrine\DBAL\DBALException */ - public function postUp(Schema $schema) + public function postUp(Schema $schema): void { $this->connection->executeUpdate("UPDATE entity SET protocol='saml20'"); } @@ -33,7 +33,7 @@ public function postUp(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20181207104950.php b/migrations/Version20181207104950.php similarity index 81% rename from app/DoctrineMigrations/Version20181207104950.php rename to migrations/Version20181207104950.php index 098586bc0..d1252483d 100644 --- a/app/DoctrineMigrations/Version20181207104950.php +++ b/migrations/Version20181207104950.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20181212155700.php b/migrations/Version20181212155700.php similarity index 81% rename from app/DoctrineMigrations/Version20181212155700.php rename to migrations/Version20181212155700.php index 3f54d3e57..785d43336 100644 --- a/app/DoctrineMigrations/Version20181212155700.php +++ b/migrations/Version20181212155700.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this up() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20190515123111.php b/migrations/Version20190515123111.php similarity index 80% rename from app/DoctrineMigrations/Version20190515123111.php rename to migrations/Version20190515123111.php index 5ea1f6cc8..b129c1c59 100644 --- a/app/DoctrineMigrations/Version20190515123111.php +++ b/migrations/Version20190515123111.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20190605093154.php b/migrations/Version20190605093154.php similarity index 82% rename from app/DoctrineMigrations/Version20190605093154.php rename to migrations/Version20190605093154.php index 378d44a9c..ccf23a195 100644 --- a/app/DoctrineMigrations/Version20190605093154.php +++ b/migrations/Version20190605093154.php @@ -1,9 +1,9 @@ -addSql( sprintf( @@ -36,7 +36,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // Nothing is executed because at this point the state before couldn't be determined } diff --git a/app/DoctrineMigrations/Version20190626084632.php b/migrations/Version20190626084632.php similarity index 83% rename from app/DoctrineMigrations/Version20190626084632.php rename to migrations/Version20190626084632.php index 540a2cff2..0e5eb6b2c 100644 --- a/app/DoctrineMigrations/Version20190626084632.php +++ b/migrations/Version20190626084632.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -25,7 +25,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20190909100159.php b/migrations/Version20190909100159.php similarity index 82% rename from app/DoctrineMigrations/Version20190909100159.php rename to migrations/Version20190909100159.php index 4e73cc9c0..b191beaca 100644 --- a/app/DoctrineMigrations/Version20190909100159.php +++ b/migrations/Version20190909100159.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -26,7 +26,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20200608111455.php b/migrations/Version20200608111455.php similarity index 79% rename from app/DoctrineMigrations/Version20200608111455.php rename to migrations/Version20200608111455.php index dcf754c66..1081194c8 100644 --- a/app/DoctrineMigrations/Version20200608111455.php +++ b/migrations/Version20200608111455.php @@ -1,16 +1,16 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE service ADD institution_id VARCHAR(255) NOT NULL, ADD institution_guid VARCHAR(255) NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20200623063105.php b/migrations/Version20200623063105.php similarity index 82% rename from app/DoctrineMigrations/Version20200623063105.php rename to migrations/Version20200623063105.php index 9ea94301b..f43ed3083 100644 --- a/app/DoctrineMigrations/Version20200623063105.php +++ b/migrations/Version20200623063105.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20210209152257.php b/migrations/Version20210209152257.php similarity index 80% rename from app/DoctrineMigrations/Version20210209152257.php rename to migrations/Version20210209152257.php index f47d6eb87..7a70f9312 100644 --- a/app/DoctrineMigrations/Version20210209152257.php +++ b/migrations/Version20210209152257.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20210211124755.php b/migrations/Version20210211124755.php similarity index 81% rename from app/DoctrineMigrations/Version20210211124755.php rename to migrations/Version20210211124755.php index eaca63481..3fb3b1007 100644 --- a/app/DoctrineMigrations/Version20210211124755.php +++ b/migrations/Version20210211124755.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20210217105058.php b/migrations/Version20210217105058.php similarity index 85% rename from app/DoctrineMigrations/Version20210217105058.php rename to migrations/Version20210217105058.php index 896d8d140..86d04d53d 100644 --- a/app/DoctrineMigrations/Version20210217105058.php +++ b/migrations/Version20210217105058.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20210218132251.php b/migrations/Version20210218132251.php similarity index 95% rename from app/DoctrineMigrations/Version20210218132251.php rename to migrations/Version20210218132251.php index e5a7753a3..49ee76bdc 100644 --- a/app/DoctrineMigrations/Version20210218132251.php +++ b/migrations/Version20210218132251.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20210412092838.php b/migrations/Version20210412092838.php similarity index 80% rename from app/DoctrineMigrations/Version20210412092838.php rename to migrations/Version20210412092838.php index 0e5663730..dfbaf1d8f 100644 --- a/app/DoctrineMigrations/Version20210412092838.php +++ b/migrations/Version20210412092838.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20211013095152.php b/migrations/Version20211013095152.php similarity index 81% rename from app/DoctrineMigrations/Version20211013095152.php rename to migrations/Version20211013095152.php index 1a7493a87..19be103a2 100644 --- a/app/DoctrineMigrations/Version20211013095152.php +++ b/migrations/Version20211013095152.php @@ -1,9 +1,9 @@ -abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -31,7 +31,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->addSql('DROP TABLE `sessions`'); diff --git a/package.json b/package.json index 532c4fdaa..22d1ac4d5 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "jest": "^28", "jest-canvas-mock": "^2.4", "jscpd": "^3.4", + "phpunit-bridge": "symfony/phpunit-bridge", "postcss-scss": "^4.0.4", "sass": "^1.43", "sass-loader": "^13.0", diff --git a/phpunit.xml b/phpunit.xml index 3c438b34b..eb5945bb9 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -5,14 +5,16 @@ xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/5.7/phpunit.xsd" backupGlobals="false" colors="true" - bootstrap="app/autoload.php" + bootstrap="tests/bootstrap.php" beStrictAboutTestsThatDoNotTestAnything="true" failOnRisky="true"> - + + + diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 000000000..5e9089717 --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + tests + + + + + + src + + + + + + + + + + diff --git a/web/favicon.ico b/public/favicon.ico similarity index 100% rename from web/favicon.ico rename to public/favicon.ico diff --git a/web/fonts/FontAwesome.otf b/public/fonts/FontAwesome.otf similarity index 100% rename from web/fonts/FontAwesome.otf rename to public/fonts/FontAwesome.otf diff --git a/web/fonts/Roboto-Bold.ttf b/public/fonts/Roboto-Bold.ttf similarity index 100% rename from web/fonts/Roboto-Bold.ttf rename to public/fonts/Roboto-Bold.ttf diff --git a/web/fonts/Roboto-BoldItalic.ttf b/public/fonts/Roboto-BoldItalic.ttf similarity index 100% rename from web/fonts/Roboto-BoldItalic.ttf rename to public/fonts/Roboto-BoldItalic.ttf diff --git a/web/fonts/Roboto-Italic.ttf b/public/fonts/Roboto-Italic.ttf similarity index 100% rename from web/fonts/Roboto-Italic.ttf rename to public/fonts/Roboto-Italic.ttf diff --git a/web/fonts/Roboto-Regular.ttf b/public/fonts/Roboto-Regular.ttf similarity index 100% rename from web/fonts/Roboto-Regular.ttf rename to public/fonts/Roboto-Regular.ttf diff --git a/web/fonts/RobotoMono-Light.ttf b/public/fonts/RobotoMono-Light.ttf similarity index 100% rename from web/fonts/RobotoMono-Light.ttf rename to public/fonts/RobotoMono-Light.ttf diff --git a/web/fonts/RobotoMono-Regular.ttf b/public/fonts/RobotoMono-Regular.ttf similarity index 100% rename from web/fonts/RobotoMono-Regular.ttf rename to public/fonts/RobotoMono-Regular.ttf diff --git a/web/fonts/fontawesome-webfont.eot b/public/fonts/fontawesome-webfont.eot similarity index 100% rename from web/fonts/fontawesome-webfont.eot rename to public/fonts/fontawesome-webfont.eot diff --git a/web/fonts/fontawesome-webfont.svg b/public/fonts/fontawesome-webfont.svg similarity index 100% rename from web/fonts/fontawesome-webfont.svg rename to public/fonts/fontawesome-webfont.svg diff --git a/web/fonts/fontawesome-webfont.ttf b/public/fonts/fontawesome-webfont.ttf similarity index 100% rename from web/fonts/fontawesome-webfont.ttf rename to public/fonts/fontawesome-webfont.ttf diff --git a/web/fonts/fontawesome-webfont.woff b/public/fonts/fontawesome-webfont.woff similarity index 100% rename from web/fonts/fontawesome-webfont.woff rename to public/fonts/fontawesome-webfont.woff diff --git a/web/fonts/fontawesome-webfont.woff2 b/public/fonts/fontawesome-webfont.woff2 similarity index 100% rename from web/fonts/fontawesome-webfont.woff2 rename to public/fonts/fontawesome-webfont.woff2 diff --git a/web/images/surfconext-logo.png b/public/images/surfconext-logo.png similarity index 100% rename from web/images/surfconext-logo.png rename to public/images/surfconext-logo.png diff --git a/public/index.php b/public/index.php new file mode 100644 index 000000000..fd6224262 --- /dev/null +++ b/public/index.php @@ -0,0 +1,28 @@ +handle($request); +$response->send(); +$kernel->terminate($request, $response); diff --git a/web/robots.txt b/public/robots.txt similarity index 100% rename from web/robots.txt rename to public/robots.txt diff --git a/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/EntityChangeRequestCommandHandler.php b/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/EntityChangeRequestCommandHandler.php index 47975a4d7..a3b75ac8c 100644 --- a/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/EntityChangeRequestCommandHandler.php +++ b/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/EntityChangeRequestCommandHandler.php @@ -26,7 +26,6 @@ use Surfnet\ServiceProviderDashboard\Application\Service\EntityServiceInterface; use Surfnet\ServiceProviderDashboard\Application\Service\MailService; use Surfnet\ServiceProviderDashboard\Application\Service\TicketService; -use Surfnet\ServiceProviderDashboard\Domain\Entity\ManageEntity; use Surfnet\ServiceProviderDashboard\Domain\Repository\EntityChangeRequestRepository; use Surfnet\ServiceProviderDashboard\Infrastructure\HttpClient\Exceptions\RuntimeException\PublishMetadataException; use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface; @@ -87,7 +86,7 @@ public function __construct( string $issueType ) { if (empty($issueType)) { - throw new Exception('Please set "jira_issue_type_entity_change_request" in parameters.yml'); + throw new Exception('Please set "jira_issue_type_entity_change_request" in .env'); } $this->repository = $repository; $this->entityService = $entityService; diff --git a/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/PublishEntityProductionCommandHandler.php b/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/PublishEntityProductionCommandHandler.php index f30ca0f91..9f3bdaf73 100644 --- a/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/PublishEntityProductionCommandHandler.php +++ b/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/PublishEntityProductionCommandHandler.php @@ -88,7 +88,7 @@ public function __construct( string $issueType ) { if (empty($issueType)) { - throw new Exception('Please set "jira_issue_type_publication_request" in parameters.yml'); + throw new Exception('Please set "jira_issue_type_publication_request" in .env'); } $this->publishClient = $publishClient; $this->entityService = $entityService; diff --git a/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/RequestDeletePublishedEntityCommandHandler.php b/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/RequestDeletePublishedEntityCommandHandler.php index 4e62e9ad0..40a9c77a1 100644 --- a/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/RequestDeletePublishedEntityCommandHandler.php +++ b/src/Surfnet/ServiceProviderDashboard/Application/CommandHandler/Entity/RequestDeletePublishedEntityCommandHandler.php @@ -72,7 +72,7 @@ public function __construct( FlashBagInterface $flashBag, LoggerInterface $logger ) { - Assert::stringNotEmpty($issueType, 'Please set "jira_issue_type" in parameters.yml'); + Assert::stringNotEmpty($issueType, 'Please set "jira_issue_type" in .env'); $this->queryClient = $manageProductionQueryClient; $this->ticketService = $ticketService; $this->flashBag = $flashBag; diff --git a/src/Surfnet/ServiceProviderDashboard/Application/Factory/EntityDetailFactory.php b/src/Surfnet/ServiceProviderDashboard/Application/Factory/EntityDetailFactory.php index c75c1be00..e5b1027aa 100644 --- a/src/Surfnet/ServiceProviderDashboard/Application/Factory/EntityDetailFactory.php +++ b/src/Surfnet/ServiceProviderDashboard/Application/Factory/EntityDetailFactory.php @@ -38,6 +38,9 @@ class EntityDetailFactory */ private $playGroundUriProd; + /** + * @var AttributeServiceInterface + */ private $attributeService; public function __construct( diff --git a/src/Surfnet/ServiceProviderDashboard/Application/Service/MailService.php b/src/Surfnet/ServiceProviderDashboard/Application/Service/MailService.php index 1b1582a00..36905fec7 100644 --- a/src/Surfnet/ServiceProviderDashboard/Application/Service/MailService.php +++ b/src/Surfnet/ServiceProviderDashboard/Application/Service/MailService.php @@ -21,7 +21,7 @@ use Exception; use Surfnet\ServiceProviderDashboard\Domain\Entity\ManageEntity; -use Surfnet\ServiceProviderDashboard\Domain\Mailer\Mailer; +use Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Mailer\Mailer; use Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Factory\MailMessageFactory; class MailService diff --git a/src/Surfnet/ServiceProviderDashboard/Application/Service/TicketService.php b/src/Surfnet/ServiceProviderDashboard/Application/Service/TicketService.php index 5f7405c9d..1fdb53379 100644 --- a/src/Surfnet/ServiceProviderDashboard/Application/Service/TicketService.php +++ b/src/Surfnet/ServiceProviderDashboard/Application/Service/TicketService.php @@ -38,9 +38,6 @@ class TicketService implements TicketServiceInterface */ private $logger; - /** - * @param TicketServiceInterface $repository - */ public function __construct(TicketServiceInterface $repository, LoggerInterface $logger) { $this->issueRepository = $repository; diff --git a/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Apis/PublicationStatus.php b/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Apis/PublicationStatus.php index e93f93697..3783eb7f9 100644 --- a/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Apis/PublicationStatus.php +++ b/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Apis/PublicationStatus.php @@ -29,7 +29,7 @@ class PublicationStatus public function __construct(string $status = '') { - Assert::stringNotEmpty($status, 'Please set the publication status in parameters.yml'); + Assert::stringNotEmpty($status, 'Please set the publication status in .env'); $this->status = $status; } diff --git a/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/Connection.php b/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/Connection.php index d8d1135f6..f94db3db4 100644 --- a/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/Connection.php +++ b/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/Connection.php @@ -44,9 +44,9 @@ class Connection */ public function __construct($host, $username, $password) { - Assert::stringNotEmpty($host, 'Please set the manage host in parameters.yml'); - Assert::stringNotEmpty($username, 'Please set the manage username in parameters.yml'); - Assert::stringNotEmpty($password, 'Please set the manage password in parameters.yml'); + Assert::stringNotEmpty($host, 'Please set the manage host in .env'); + Assert::stringNotEmpty($username, 'Please set the manage username in .env'); + Assert::stringNotEmpty($password, 'Please set the manage password in .env'); $this->host = $host; $this->username = $username; diff --git a/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/OidcngEnabled.php b/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/OidcngEnabled.php index 2b89aac8a..179f6f962 100644 --- a/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/OidcngEnabled.php +++ b/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/OidcngEnabled.php @@ -35,7 +35,7 @@ class OidcngEnabled */ public function __construct($enabled = '') { - Assert::boolean($enabled, 'Please set the oidcng enabled config value in parameters.yml'); + Assert::boolean($enabled, 'Please set the oidcng enabled config value in .env'); $this->enabled = $enabled; } diff --git a/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/PublicationStatus.php b/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/PublicationStatus.php index f38b6c82b..641cd4622 100644 --- a/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/PublicationStatus.php +++ b/src/Surfnet/ServiceProviderDashboard/Application/ViewObject/Manage/PublicationStatus.php @@ -32,7 +32,7 @@ class PublicationStatus */ public function __construct($status = '') { - Assert::stringNotEmpty($status, 'Please set the publication status in parameters.yml'); + Assert::stringNotEmpty($status, 'Please set the publication status in .env'); $this->status = $status; } diff --git a/src/Surfnet/ServiceProviderDashboard/Domain/Entity/PrivacyQuestions.php b/src/Surfnet/ServiceProviderDashboard/Domain/Entity/PrivacyQuestions.php index f0f926d83..26dee645f 100644 --- a/src/Surfnet/ServiceProviderDashboard/Domain/Entity/PrivacyQuestions.php +++ b/src/Surfnet/ServiceProviderDashboard/Domain/Entity/PrivacyQuestions.php @@ -33,7 +33,7 @@ class PrivacyQuestions * @var int * * @ORM\Id - * @ORM\Column(type="integer") + * @ORM\Column(type="integer", options={"autoincrement":true}) * @ORM\GeneratedValue(strategy="AUTO") */ private $id; diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityAclController.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityAclController.php index 046f24b86..f681f4d95 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityAclController.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityAclController.php @@ -79,7 +79,6 @@ public function __construct( /** * @Method({"GET", "POST"}) * @Route("/entity/acl/{serviceId}/{id}", name="entity_acl") - * @Template() * * @param Request $request * @param string $serviceId @@ -105,10 +104,10 @@ public function aclAction(Request $request, $serviceId, $id) $viewObject = $this->entityDetailFactory->buildFrom($entity); - return [ + return $this->render('@Dashboard/EntityAcl/acl.html.twig', [ 'form' => $form->createView(), 'entity' => $viewObject, 'isAdmin' => $this->authorizationService->isAdministrator(), - ]; + ]); } } diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityCreateController.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityCreateController.php index 78b244809..cc8aff415 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityCreateController.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityCreateController.php @@ -80,14 +80,13 @@ public function __construct( * name="entity_type" * ) * @Security("has_role('ROLE_USER')") - * @Template("@Dashboard/EntityType/type.html.twig") * * @param Request $request * * @param int $serviceId * @param string $targetEnvironment * @param string $inputId - * @return array|RedirectResponse + * @return RedirectResponse|Response|array */ public function typeAction(Request $request, $serviceId, string $targetEnvironment, string $inputId) { @@ -134,7 +133,7 @@ public function typeAction(Request $request, $serviceId, string $targetEnvironme ]); } - return [ + return $this->render('@Dashboard/EntityType/type.html.twig', [ 'form' => $form->createView(), 'serviceId' => $service->getId(), 'environment' => $targetEnvironment, @@ -143,13 +142,12 @@ public function typeAction(Request $request, $serviceId, string $targetEnvironme 'productionEnabled' => $isProductionEnabled, 'entities' => $entityList->getEntities(), 'manageId' => $formId, - ]; + ]); } /** * @Method({"GET", "POST"}) * @Route("/entity/create/{serviceId}/{type}/{targetEnvironment}", name="entity_add") - * @Template("@Dashboard/EntityEdit/edit.html.twig") * @param Request $request * @param int $serviceId * @param null|string $targetEnvironment @@ -216,10 +214,10 @@ public function createAction(Request $request, $serviceId, $targetEnvironment, $ } } - return [ + return $this->render('@Dashboard/EntityEdit/edit.html.twig', [ 'form' => $form->createView(), 'type' => $type, - ]; + ]); } @@ -234,7 +232,6 @@ public function createAction(Request $request, $serviceId, $targetEnvironment, $ * name="entity_copy" * ) * @Security("has_role('ROLE_USER')") - * @Template("@Dashboard/EntityEdit/edit.html.twig") * * @param int $serviceId * @param null|string $manageId set from the entity_copy route @@ -313,9 +310,9 @@ public function copyAction(Request $request, $serviceId, $manageId, $targetEnvir } } - return [ + return $this->render('@Dashboard/EntityEdit/edit.html.twig', [ 'form' => $form->createView(), 'type' => $entity->getProtocol()->getProtocol(), - ]; + ]); } } diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityDeleteController.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityDeleteController.php index 54eb04a03..c611b6b16 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityDeleteController.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityDeleteController.php @@ -78,7 +78,6 @@ public function __construct( * "environment": "test" * } * ) - * @Template("@Dashboard/EntityDelete/delete.html.twig") * @Security("has_role('ROLE_USER')") * @param Request $request * @@ -125,12 +124,12 @@ public function deletePublishedAction(Request $request, $serviceId, $manageId, $ return $this->redirectToRoute('service_overview'); } - return [ + return $this->render('@Dashboard/EntityDelete/delete.html.twig', [ 'form' => $form->createView(), 'environment' => $environment, 'status' => $excludeFromPush === "1" ? Constants::STATE_PUBLICATION_REQUESTED : Constants::STATE_PUBLISHED, 'entityName' => $nameEn, - ]; + ]); } /** @@ -143,7 +142,6 @@ public function deletePublishedAction(Request $request, $serviceId, $manageId, $ * "environment": "production" * } * ) - * @Template("@Dashboard/EntityDelete/delete.html.twig") * @Security("has_role('ROLE_USER')") * * @param Request $request @@ -187,11 +185,11 @@ public function deleteRequestAction(Request $request, $serviceId, $manageId, $en return $this->redirectToRoute('service_overview'); } - return [ + return $this->render('@Dashboard/EntityDelete/delete.html.twig', [ 'form' => $form->createView(), 'environment' => $environment, 'status' => Constants::STATE_PUBLISHED, 'entityName' => $nameEn, - ]; + ]); } } diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityDetailController.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityDetailController.php index 57509bdb2..4919c0b18 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityDetailController.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityDetailController.php @@ -58,7 +58,6 @@ public function __construct( * @Method("GET") * @Route("/entity/detail/{serviceId}/{id}/{manageTarget}", name="entity_detail", defaults={"manageTarget" = false}) * @Security("has_role('ROLE_USER')") - * @Template("@Dashboard/EntityDetail/detail.html.twig") * * @return \Symfony\Component\HttpFoundation\RedirectResponse|array */ @@ -73,9 +72,9 @@ public function detailAction(string $id, int $serviceId, string $manageTarget) } $viewObject = $this->entityDetailFactory->buildFrom($entity); - return [ + return $this->render('@Dashboard/EntityDetail/detail.html.twig', [ 'entity' => $viewObject, 'isAdmin' => $this->isGranted('ROLE_ADMINISTRATOR'), - ]; + ]); } } diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityEditController.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityEditController.php index 099bf9434..5edc708af 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityEditController.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityEditController.php @@ -49,7 +49,6 @@ public static function getSubscribedEvents() /** * @Method({"GET", "POST"}) * @Route("/entity/edit/{environment}/{manageId}/{serviceId}", name="entity_edit") - * @Template() * * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response * @SuppressWarnings(PHPMD.CyclomaticComplexity) @@ -119,10 +118,10 @@ public function editAction(Request $request, string $environment, string $manage } } - return [ + return $this->render('@Dashboard/EntityEdit/edit.html.twig', [ 'form' => $form->createView(), 'type' => $entity->getProtocol()->getProtocol(), - ]; + ]); } /** diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityPublishedController.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityPublishedController.php index cbd345a2c..0e8055bb1 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityPublishedController.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/EntityPublishedController.php @@ -34,7 +34,6 @@ class EntityPublishedController extends Controller * @Route("/entity/published/production", name="entity_published_production") * @Route("/entity/published/test", name="entity_published_test") * @Security("has_role('ROLE_USER')") - * @Template() */ public function publishedAction() { @@ -67,7 +66,6 @@ public function publishedAction() * @Method("GET") * @Route("/entity/change-request", name="entity_change_request") * @Security("has_role('ROLE_USER')") - * @Template() */ public function changeRequestAction() { @@ -87,7 +85,6 @@ public function changeRequestAction() * * @Method("GET") * @Security("has_role('ROLE_USER')") - * @Template() */ public function oidcConfirmationModalAction() { @@ -99,9 +96,9 @@ public function oidcConfirmationModalAction() $viewObject = EntityOidcConfirmation::fromEntity($entity); - return [ + return $this->render('@Dashboard/EntityPublished/oidcConfirmationModal.html.twig', [ 'entity' => $viewObject, 'environment' => $entity->getEnvironment(), - ]; + ]); } } diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/ServiceController.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/ServiceController.php index 3d6ce645b..bb8f1fd72 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/ServiceController.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/ServiceController.php @@ -98,6 +98,11 @@ class ServiceController extends Controller */ private $defaultStemName; + /** + * @param LoggerInterface $logger + */ + private $logger; + public function __construct( CommandBus $commandBus, AuthorizationService $authorizationService, @@ -106,6 +111,7 @@ public function __construct( RouterInterface $router, EntityService $entityService, QueryTeamsRepository $queryClient, + LoggerInterface $logger, string $defaultStemName ) { $this->commandBus = $commandBus; @@ -116,13 +122,13 @@ public function __construct( $this->entityService = $entityService; $this->queryClient = $queryClient; $this->defaultStemName = $defaultStemName; + $this->logger = $logger; } /** * @Method({"GET"}) * @Route("/", name="service_overview") * @Security("has_role('ROLE_USER')") - * @Template() */ public function overviewAction() { @@ -152,7 +158,7 @@ public function overviewAction() /** @var ManageEntity $publishedEntity */ $publishedEntity = $this->get('session')->get('published.entity.clone'); - return $this->render('DashboardBundle:Service:overview.html.twig', [ + return $this->render('@Dashboard/Service/overview.html.twig', [ 'services' => $serviceList, 'isAdmin' => false, 'publishedEntity' => $publishedEntity, @@ -165,15 +171,12 @@ public function overviewAction() * @Method({"GET", "POST"}) * @Route("/service/create", name="service_add") * @Security("has_role('ROLE_ADMINISTRATOR')") - * @Template() * * @return RedirectResponse|Response */ public function createAction(Request $request) { $this->get('session')->getFlashBag()->clear(); - /** @var LoggerInterface $logger */ - $logger = $this->get('logger'); $command = new CreateServiceCommand(); $form = $this->createForm(CreateServiceType::class, $command); @@ -182,7 +185,7 @@ public function createAction(Request $request) if ($form->isSubmitted()) { if ($form->isValid()) { - $logger->info(sprintf('Save new Service, service was created by: %s', '@todo'), (array) $command); + $this->logger->info(sprintf('Save new Service, service was created by: %s', '@todo'), (array) $command); try { $this->commandBus->handle($command); @@ -194,7 +197,7 @@ public function createAction(Request $request) } } - return $this->render('DashboardBundle:Service:create.html.twig', array( + return $this->render('@Dashboard/Service/create.html.twig', array( 'form' => $form->createView(), )); } @@ -203,7 +206,6 @@ public function createAction(Request $request) * @Method({"GET", "POST"}) * @Route("/service/{serviceId}/edit", name="service_edit") * @Security("has_role('ROLE_ADMINISTRATOR')") - * @Template() * * @return RedirectResponse|Response */ @@ -212,8 +214,6 @@ public function editAction(Request $request, int $serviceId) $service = $this->authorizationService->changeActiveService($serviceId); $this->get('session')->getFlashBag()->clear(); - /** @var LoggerInterface $logger */ - $logger = $this->get('logger'); $command = new EditServiceCommand( $service->getId(), @@ -238,12 +238,12 @@ public function editAction(Request $request, int $serviceId) // On delete, forward to the service delete confirmation page. if ($this->isDeleteAction($form)) { - $logger->info('Forwarding to the delete confirmation page'); + $this->logger->info('Forwarding to the delete confirmation page'); return $this->redirectToRoute('service_delete', ['serviceId' => $serviceId]); } if ($form->isSubmitted() && $form->isValid()) { - $logger->info(sprintf('Service was edited by: "%s"', '@todo'), (array)$command); + $this->logger->info(sprintf('Service was edited by: "%s"', '@todo'), (array)$command); try { $this->commandBus->handle($command); $this->get('session')->getFlashBag()->add('info', 'service.edit.flash.success'); @@ -255,7 +255,7 @@ public function editAction(Request $request, int $serviceId) } } - return $this->render('DashboardBundle:Service:edit.html.twig', array( + return $this->render('@Dashboard/Service/edit.html.twig', array( 'form' => $form->createView(), )); } @@ -264,7 +264,6 @@ public function editAction(Request $request, int $serviceId) * @Method({"GET", "POST"}) * @Route("/service/{serviceId}/delete", name="service_delete") * @Security("has_role('ROLE_ADMINISTRATOR')") - * @Template() * * @param Request $request * @param $serviceId @@ -308,11 +307,11 @@ public function deleteAction(Request $request, $serviceId) return $this->redirectToRoute('service_overview'); } - return [ + return $this->render('@Dashboard/Service/delete.html.twig', [ 'form' => $form->createView(), 'serviceName' => $service->getName(), 'entityList' => $this->entityService->getEntityListForService($service), - ]; + ]); } /** @@ -339,7 +338,6 @@ public function selectAction(Request $request) * @Method({"GET"}) * @Route("/service/{serviceId}", name="service_admin_overview") * @Security("has_role('ROLE_ADMINISTRATOR')") - * @Template("@Dashboard/Service/overview.html.twig") */ public function adminOverviewAction($serviceId) { @@ -353,7 +351,7 @@ public function adminOverviewAction($serviceId) /** @var ManageEntity $publishedEntity */ $publishedEntity = $this->get('session')->get('published.entity.clone'); - return $this->render('DashboardBundle:Service:overview.html.twig', [ + return $this->render('@Dashboard/Service/overview.html.twig', [ 'services' => $serviceList, 'isAdmin' => true, 'showOidcPopup' => $this->showOidcPopup($publishedEntity), diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/SiteNoticeController.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/SiteNoticeController.php index d05a5a40d..7f45c0586 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/SiteNoticeController.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/SiteNoticeController.php @@ -19,8 +19,6 @@ namespace Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; @@ -45,7 +43,6 @@ public function __construct(string $noticeDate) * session and in cookies. * * @Method("GET") - * @Template() */ public function showGlobalSiteNoticeAction(Request $request) { @@ -53,10 +50,10 @@ public function showGlobalSiteNoticeAction(Request $request) $cookie = $request->cookies->get($cookieString); $hasBeenClosed = (bool) $cookie; - return [ + return $this->render('@Dashboard/SiteNotice/showGlobalSiteNotice.html.twig', [ 'cookieString' => $cookieString, 'date' => $this->noticeDate, 'hasBeenClosed' => $hasBeenClosed, - ]; + ]); } } diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/TeamsController.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/TeamsController.php index 982aaa32a..a3022c069 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/TeamsController.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Controller/TeamsController.php @@ -105,7 +105,7 @@ public function manageTeamAction(int $serviceId): Response $teamInfo['serviceId'] = $serviceId; - return $this->render('DashboardBundle:Teams:manage.html.twig', $teamInfo); + return $this->render('@Dashboard/Teams/manage.html.twig', $teamInfo); } /** diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DataFixtures/ORM/WebTestFixtures.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DataFixtures/ORM/WebTestFixtures.php index baf2be65f..1c7f2d760 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DataFixtures/ORM/WebTestFixtures.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DataFixtures/ORM/WebTestFixtures.php @@ -19,7 +19,7 @@ namespace Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\DataFixtures\ORM; use Doctrine\Bundle\FixturesBundle\Fixture; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; use Ramsey\Uuid\Uuid; use Surfnet\ServiceProviderDashboard\Domain\Entity\PrivacyQuestions; use Surfnet\ServiceProviderDashboard\Domain\Entity\Service; @@ -35,6 +35,7 @@ public function load(ObjectManager $manager) $service = $this->createService('Ibuildings B.V.', 'urn:collab:org:ibuildings.nl'); $service->setProductionEntitiesEnabled(true); $service->setPrivacyQuestionsEnabled(true); + $service->setClientCredentialClientsEnabled(true); $manager->persist($service); // Service Ibuildings B.V. also has privacy questions diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DependencyInjection/Compiler/IssueRepositoryCompilerPass.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DependencyInjection/Compiler/IssueRepositoryCompilerPass.php index 7de382810..b7099cf6e 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DependencyInjection/Compiler/IssueRepositoryCompilerPass.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DependencyInjection/Compiler/IssueRepositoryCompilerPass.php @@ -40,13 +40,13 @@ class IssueRepositoryCompilerPass implements CompilerPassInterface */ public function process(ContainerBuilder $container) { - $hasParameter = $container->hasParameter(self::ENABLE_TEST_MODE_FEATURE_FLAG); - $hasDefinition = $container->hasDefinition(self::JIRA_REPOSITORY_ISSUE_SERVICE); + $hasParameter = $container->getParameter(self::ENABLE_TEST_MODE_FEATURE_FLAG); + $hasDefinition = $container->getDefinition(self::JIRA_REPOSITORY_ISSUE_SERVICE); if (!$hasParameter || !$hasDefinition) { return; } - $isTestModeEnabled = (bool) $container->getParameter(self::ENABLE_TEST_MODE_FEATURE_FLAG); + $isTestModeEnabled = (bool) $hasParameter; if ($isTestModeEnabled) { $this->configureServiceInTestMode($container); @@ -66,10 +66,10 @@ private function configureService(ContainerBuilder $container) $service->setArguments([ $container->getDefinition(JiraServiceFactory::class), $container->getDefinition(IssueFieldFactory::class), - $container->getParameter('jira_issue_project_key'), - $container->getParameter('jira_issue_type'), - $container->getParameter('jira_issue_manageid_fieldname'), - $container->getParameter('jira_issue_manageid_field_label'), + $container->getParameter('env(jira_issue_project_key)'), + $container->getParameter('env(jira_issue_type)'), + $container->getParameter('env(jira_issue_manageid_fieldname)'), + $container->getParameter('env(jira_issue_manageid_field_label)') ]); } @@ -82,7 +82,7 @@ private function configureServiceInTestMode(ContainerBuilder $container) $service = $container->getDefinition(self::JIRA_REPOSITORY_ISSUE_SERVICE); $service->setClass(DevelopmentIssueRepository::class); $service->setArguments([ - $container->getParameter('jira_test_mode_storage_path') + $container->getParameter('env(jira_test_mode_storage_path)') ]); } } diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DependencyInjection/DashboardExtension.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DependencyInjection/DashboardExtension.php index 68621998b..88db90cf9 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DependencyInjection/DashboardExtension.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/DependencyInjection/DashboardExtension.php @@ -46,7 +46,7 @@ public function load(array $configs, ContainerBuilder $container) $rootDir = $serviceContainer->getParameter('kernel.root_dir'); if ($environment === 'test') { - $loader->load($rootDir.'/../tests/webtests/Resources/config/services.yml'); + $loader->load($rootDir.'/../../../tests/webtests/Resources/config/services.yml'); } foreach ($config['manage'] as $environment => $manageConfig) { @@ -57,7 +57,7 @@ public function load(array $configs, ContainerBuilder $container) } /** - * Creates a manage config aggregate based on the configuration in config.yml. + * Creates a manage config aggregate based on the configuration. * * Each environment will get a separate service named: * diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Factory/EntityTypeFactory.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Factory/EntityTypeFactory.php index 4cb795753..8b4fac838 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Factory/EntityTypeFactory.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Factory/EntityTypeFactory.php @@ -32,6 +32,7 @@ use Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\SamlEntityType; use Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Factory\SaveCommandFactoryInterface; use Symfony\Component\Form\FormFactory; +use Symfony\Component\Form\FormFactoryInterface; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) @@ -54,7 +55,7 @@ class EntityTypeFactory private $attributeService; public function __construct( - FormFactory $formFactory, + FormFactoryInterface $formFactory, SaveCommandFactoryInterface $saveCommandFactory, AttributeServiceInterface $attributeService ) { diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Factory/MailMessageFactory.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Factory/MailMessageFactory.php index 84b29508b..f0799be46 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Factory/MailMessageFactory.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Factory/MailMessageFactory.php @@ -20,15 +20,15 @@ use Exception; use Surfnet\ServiceProviderDashboard\Domain\Entity\ManageEntity; -use Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Mailer\Message; -use Symfony\Component\Templating\EngineInterface; +use Symfony\Bridge\Twig\Mime\TemplatedEmail; use Symfony\Component\Translation\TranslatorInterface; +use Twig\Environment as TwigEnvironment; /** * The mail message factory builds mail messages. These messages are set with a translatable title and their message * is based on a twig template. * - * The sender and receiver can be configured in the parameters.yml + * The sender and receiver can be configured in the .env */ class MailMessageFactory { @@ -53,7 +53,7 @@ class MailMessageFactory private $translator; /** - * @var EngineInterface + * @var TwigEnvironment */ private $templating; @@ -62,14 +62,14 @@ class MailMessageFactory * @param string $receiver * @param string $noReply * @param TranslatorInterface $translator - * @param EngineInterface $templating + * @param TwigEnvironment $templating */ public function __construct( - $sender, - $receiver, - $noReply, + string $sender, + string $receiver, + string $noReply, TranslatorInterface $translator, - EngineInterface $templating + TwigEnvironment $templating ) { $this->sender = $sender; $this->receiver = $receiver; @@ -78,10 +78,10 @@ public function __construct( $this->templating = $templating; } - public function buildJiraIssueFailedMessage(Exception $exception, ManageEntity $entity) + public function buildJiraIssueFailedMessage(Exception $exception, ManageEntity $entity): TemplatedEmail { $message = $this->createNewMessage(); - $message->setSubject($this->translator->trans('mail.jira.publish_production_failed.subject')); + $message->subject($this->translator->trans('mail.jira.publish_production_failed.subject')); $template = $this->renderView( '@Dashboard/Mail/jiraPublicationFailed.html.twig', @@ -92,23 +92,21 @@ public function buildJiraIssueFailedMessage(Exception $exception, ManageEntity $ ] ); - $message->setBody($template, 'text/html'); + $message->htmlTemplate($template); return $message; } - private function createNewMessage() + private function createNewMessage(): TemplatedEmail { - $message = Message::newInstance(); - - $headers = $message->getHeaders(); + $email = new TemplatedEmail(); + $headers = $email->getHeaders(); $headers->addTextHeader('Auto-Submitted', 'auto-generated'); - # TODO: see https://github.com/swiftmailer/swiftmailer/issues/705 - $message->setReturnPath($this->noReply); - $message->setFrom($this->sender); - $message->setTo($this->receiver); + $email->returnPath($this->noReply); + $email->from($this->sender); + $email->to($this->receiver); - return $message; + return $email; } private function renderView($view, array $parameters = array()) diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Mailer/Mailer.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Mailer/Mailer.php index 897965fac..d0ac860c5 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Mailer/Mailer.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Mailer/Mailer.php @@ -18,27 +18,24 @@ namespace Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Mailer; -use Surfnet\ServiceProviderDashboard\Domain\Mailer\Mailer as MailerInterface; -use Surfnet\ServiceProviderDashboard\Domain\Mailer\Message as MessageInterface; -use Swift_Mailer; +use Symfony\Component\Mailer\Envelope; +use Symfony\Component\Mailer\MailerInterface; +use Symfony\Component\Mime\RawMessage; /** - * A very thin wrapper around the Swift_Mailer. + * A very thin wrapper around the Symfony Mailer. */ class Mailer implements MailerInterface { - /** - * @var Swift_Mailer - */ - private $swiftMailer; + private $mailer; - public function __construct(Swift_Mailer $mailer) + public function __construct(MailerInterface $mailer) { - $this->swiftMailer = $mailer; + $this->mailer = $mailer; } - public function send(MessageInterface $message) + public function send(RawMessage $message, Envelope $envelope = null): void { - $this->swiftMailer->send($message); + $this->mailer->send($message); } } diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/config/services.yml b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/config/services.yml index 90aa1bf1c..28e159394 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/config/services.yml +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/config/services.yml @@ -1,572 +1,632 @@ services: - _defaults: - autowire: true - autoconfigure: true - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Controller\: - resource: '../../Controller' - tags: ['controller.service_arguments'] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Security\Voter\: - resource: '../../Security/Voter' - tags: ['security.voter'] - - surfnet.dashboard.command_handler.create_service: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Service\CreateServiceCommandHandler - public: true - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Service\CreateServiceCommand } - arguments: - $prefixPart1: '%team.prefix.default_stem_name%' - $prefixPart2: '%team.prefix.group_name_context%' - - surfnet.dashboard.command_handler.delete_service: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Service\DeleteServiceCommandHandler - public: true - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Service\DeleteServiceCommand } - - surfnet.dashboard.command_handler.delete_published_production_entity: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\DeletePublishedProductionEntityCommandHandler - arguments: - - '@surfnet.manage.client.delete_client.prod_environment' - public: true - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\DeletePublishedProductionEntityCommand } - - surfnet.dashboard.command_handler.delete_published_test_entity: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\DeletePublishedTestEntityCommandHandler - arguments: - - '@surfnet.manage.client.delete_client.test_environment' - public: true - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\DeletePublishedTestEntityCommand } - - surfnet.dashboard.command_handler.request_delete_published_entity: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\RequestDeletePublishedEntityCommandHandler - arguments: - - '@surfnet.manage.client.query_client.prod_environment' - - '%jira_issue_type%' - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\RequestDeletePublishedEntityCommand } - - surfnet.dashboard.command_handler.edit_service: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Service\EditServiceCommandHandler - public: true - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Service\EditServiceCommand } - - surfnet.dashboard.command_handler.load_metadata: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\LoadMetadataCommandHandler - public: true - arguments: - - '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeNameService' - - '@Surfnet\ServiceProviderDashboard\Legacy\Metadata\Fetcher' - - '@Surfnet\ServiceProviderDashboard\Legacy\Metadata\Parser' - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\LoadMetadataCommand } - - surfnet.dashboard.command_handler.privacy_questions: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\PrivacyQuestions\PrivacyQuestionsCommandHandler - public: true - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\PrivacyQuestions\PrivacyQuestionsCommand } - - surfnet.dashboard.command_handler.publish_test_entity: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\PublishEntityTestCommandHandler - arguments: - $publishClient: '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\PublishEntityClient' - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\PublishEntityTestCommand } - - Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\EntityChangeRequestCommandHandler: - arguments: - $repository: '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\EntityChangeRequestClient' - $issueType: '%jira_issue_type_entity_change_request%' - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\EntityChangeRequestCommand } - - surfnet.dashboard.command_handler.publish_production_entity: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\PublishEntityProductionCommandHandler - arguments: - - '@surfnet.manage.client.publish_client.prod_environment' - - '@Surfnet\ServiceProviderDashboard\Application\Service\EntityService' - - '@Surfnet\ServiceProviderDashboard\Application\Service\TicketService' - - '@session.flash_bag' - - '@Surfnet\ServiceProviderDashboard\Application\Service\MailService' - - '@logger' - - '%jira_issue_type_publication_request%' - public: true - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\PublishEntityProductionCommand } - - Surfnet\ServiceProviderDashboard\Application\Service\MailService: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Factory\MailMessageFactory' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Mailer\Mailer' - - surfnet.dashboard.command_handler.push_metadata: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\PushMetadataCommandHandler - arguments: - - '@surfnet.manage.publish_service' - - '@session.flash_bag' - - '@logger' - public: true - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\PushMetadataCommand } - - surfnet.dashboard.command_handler.update_entity_acl: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\UpdateEntityAclCommandHandler - arguments: - $publishClient: '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\PublishEntityClient' - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\UpdateEntityAclCommand } - - - surfnet.dashboard.command_handler.reset_oidc_secret: - class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\ResetOidcSecretCommandHandler - arguments: - $publishEntityClient: '@surfnet.manage.client.publish_client.prod_environment' - public: true - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\ResetOidcSecretCommand } - - surfnet.dashboard.command_handler.reset_service: - class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\CommandHandler\Service\ResetServiceCommandHandler - public: true - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Command\Service\ResetServiceCommand } - - surfnet.dashboard.command_handler.select_service: - class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\CommandHandler\Service\SelectServiceCommandHandler - public: true - tags: - - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Command\Service\SelectServiceCommand } - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Mailer\Mailer: - arguments: ['@mailer'] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Factory\MailMessageFactory: - arguments: - - '%mail_from%' - - '%mail_receiver%' - - '%mail_no_reply%' - - '@translator' - - '@templating' - - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Menu\Builder: - tags: - - { name: knp_menu.menu_builder, method: mainMenu, alias: main } - - Surfnet\ServiceProviderDashboard\Legacy\Metadata\CertificateParser: - class: Surfnet\ServiceProviderDashboard\Legacy\Metadata\CertificateParser - - surfnet.dashboard.metadata.client: - class: GuzzleHttp\Client - - Surfnet\ServiceProviderDashboard\Legacy\Metadata\Fetcher: - arguments: ['@surfnet.dashboard.metadata.client', '@logger', '%metadata_url_timeout%'] - - - Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGeneratorStrategy: - class: Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGeneratorStrategy - - Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGenerator: - class: Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGenerator - tags: - - { name: dashboard.json_generator, identifier: saml20 } - - Surfnet\ServiceProviderDashboard\Application\Metadata\OidcngJsonGenerator: - class: Surfnet\ServiceProviderDashboard\Application\Metadata\OidcngJsonGenerator - tags: - - { name: dashboard.json_generator, identifier: oidcng } - - Surfnet\ServiceProviderDashboard\Application\Metadata\OidcngResourceServerJsonGenerator: - class: Surfnet\ServiceProviderDashboard\Application\Metadata\OidcngResourceServerJsonGenerator - tags: - - { name: dashboard.json_generator, identifier: oauth20_rs } - - Surfnet\ServiceProviderDashboard\Application\Metadata\OauthClientCredentialsClientJsonGenerator: - class: Surfnet\ServiceProviderDashboard\Application\Metadata\OauthClientCredentialsClientJsonGenerator - tags: - - { name: dashboard.json_generator, identifier: oauth20_ccc } - - Surfnet\ServiceProviderDashboard\Legacy\Metadata\Parser: - arguments: - - '@Surfnet\ServiceProviderDashboard\Legacy\Metadata\CertificateParser' - - '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeService' - - '%kernel.root_dir%/Resources' - - '@logger' - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Monolog\Formatter\JsonFormatter: - class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Monolog\Formatter\JsonFormatter - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\ContactRepository: - factory: ['@doctrine', 'getRepository'] - arguments: [Surfnet\ServiceProviderDashboard\Domain\Entity\Contact] - - Surfnet\ServiceProviderDashboard\Legacy\Repository\AttributesMetadataRepository: - arguments: ['%kernel.root_dir%/Resources'] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\AttributeRepository: - arguments: ['%kernel.root_dir%/config/attributes.json'] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\PrivacyQuestionsRepository: - factory: ['@doctrine', 'getRepository'] - arguments: [Surfnet\ServiceProviderDashboard\Domain\Entity\PrivacyQuestions] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\ServiceRepository: - factory: ['@doctrine', 'getRepository'] - arguments: [Surfnet\ServiceProviderDashboard\Domain\Entity\Service] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Service\AuthorizationService: - class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Service\AuthorizationService - arguments: - $manageTestConfig: "@surfnet.manage.configuration.test" - $manageProdConfig: "@surfnet.manage.configuration.production" - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Twig\ServiceSwitcherExtension: - tags: [twig.extension] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Twig\IdentityExtension: - tags: [twig.extension] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Twig\WysiwygExtension: - tags: [twig.extension] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidEntityIdValidator: - tags: - - { name: validator.constraint_validator, alias: valid_entity_id } - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidClientIdValidator: - tags: - - { name: validator.constraint_validator, alias: valid_client_id } - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\UniqueEntityIdValidator: - arguments: - - '@surfnet.manage.query_service' - tags: - - { name: validator.constraint_validator, alias: unique_entity_id } - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\UniqueTeamNameValidator: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\QueryClient' - - '%team.prefix.group_name_context%' - tags: - - { name: validator.constraint_validator, alias: unique_team_name } - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ExistingTeamNameValidator: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\QueryClient' - - '%team.prefix.default_stem_name%' - - '%team.prefix.group_name_context%' - tags: - - { name: validator.constraint_validator, alias: existing_team_name } - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\UrnFormattedTeamNameValidator: - arguments: - - '%team.prefix.default_stem_name%' - - '%team.prefix.group_name_context%' - tags: - - { name: validator.constraint_validator, alias: urn_formatted_team_name } - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\UniqueRedirectUrlsValidator: - tags: - - { name: validator.constraint_validator, alias: unique_redirect_urls } - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidRedirectUrlValidator: - tags: - - { name: validator.constraint_validator, alias: valid_redirect_url } - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidMetadataUrlValidator: - tags: - - { name: validator.constraint_validator, alias: metadata_url } - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidLogoValidator: - arguments: ['@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Service\CurlLogoValidationHelper'] - tags: - - { name: validator.constraint_validator, alias: logo } - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Service\CurlLogoValidationHelper: - arguments: ['@logger'] - - Surfnet\ServiceProviderDashboard\Application\Service\TicketService: - arguments: - - '@surfnet.dashboard.repository.issue' - - Surfnet\ServiceProviderDashboard\Application\Service\EntityMergeService: - arguments: - $oidcPlaygroundUriTest: '%playground_uri_test%' - $oidcPlaygroundUriProd: '%playground_uri_prod%' - - surfnet.dashboard.repository.issue: - - Surfnet\ServiceProviderDashboard\Application\Service\ServiceService: - class: Surfnet\ServiceProviderDashboard\Application\Service\ServiceService - - Surfnet\ServiceProviderDashboard\Application\Service\EntityService: - arguments: - - '@Surfnet\ServiceProviderDashboard\Application\Provider\EntityQueryRepositoryProvider' - - '@Surfnet\ServiceProviderDashboard\Application\Service\TicketService' - - '@Surfnet\ServiceProviderDashboard\Application\Service\ServiceService' - - '@surfnet.manage.configuration.test' - - '@surfnet.manage.configuration.production' - - '@router' - - '@logger' - - '%jira_issue_type%' - - Surfnet\ServiceProviderDashboard\Application\Service\AttributeService: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\AttributeRepository' - - '%locale%' - - Surfnet\ServiceProviderDashboard\Application\Service\AttributeNameService: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\AttributeRepository' - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidAttributeValidator: - arguments: - - '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeService' - tags: - - { name: validator.constraint_validator, alias: valid_attribute } - - Surfnet\ServiceProviderDashboard\Application\Service\LoadEntityService: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient' - - '@surfnet.manage.client.query_client.prod_environment' - - Surfnet\ServiceProviderDashboard\Application\Service\ChangeRequestService: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\EntityChangeRequestClient' - - Surfnet\ServiceProviderDashboard\Application\Service\EntityAclService: - arguments: - - '@surfnet.manage.client.identity_provider_client.test_environment' - - Surfnet\ServiceProviderDashboard\Application\Provider\EntityQueryRepositoryProvider: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient' - - '@surfnet.manage.client.query_client.prod_environment' - - Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\PublishEntityClient: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient' - - '@Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGeneratorStrategy' - - '@surfnet.manage.configuration.test' - - '@logger' - - Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient' - - Surfnet\ServiceProviderDashboard\Application\ViewObject\Manage\ConfigFactory: - class: Surfnet\ServiceProviderDashboard\Application\ViewObject\Manage\ConfigFactory - - Surfnet\ServiceProviderDashboard\Application\ViewObject\Apis\ApiConfigFactory: - class: Surfnet\ServiceProviderDashboard\Application\ViewObject\Apis\ApiConfigFactory - - # For details, see the DashboardExtension. - surfnet.manage.configuration.test: - class: Surfnet\ServiceProviderDashboard\Application\ViewObject\Apis\ApiConfig - - # For details, see the DashboardExtension. - surfnet.manage.configuration.production: - class: Surfnet\ServiceProviderDashboard\Application\ViewObject\Apis\ApiConfig - - # For details, see the DashboardExtension. - surfnet.teams.configuration: - class: Surfnet\ServiceProviderDashboard\Application\ViewObject\Apis\ApiConfig - - surfnet.manage.client.publish_client.prod_environment: - class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\PublishEntityClient - arguments: - - '@surfnet.manage.http.http_client.prod_environment' - - '@Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGeneratorStrategy' - - '@surfnet.manage.configuration.production' - - '@logger' - - surfnet.manage.client.query_client.prod_environment: - class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient - arguments: - - '@surfnet.manage.http.http_client.prod_environment' - - surfnet.manage.query_service: - class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Service\ManageQueryService - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient' - - '@surfnet.manage.client.query_client.prod_environment' - - surfnet.manage.publish_service: - class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Service\ManagePublishService - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\PublishEntityClient' - - '@surfnet.manage.client.publish_client.prod_environment' - - Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient: - arguments: - - '@surfnet.manage.http.guzzle.test_environment' - - '@logger' - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Controller\TeamsController: - arguments: - $defaultStemName: '%team.prefix.default_stem_name%' - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Controller\ServiceController: - arguments: - $defaultStemName: '%team.prefix.default_stem_name%' - - Surfnet\ServiceProviderDashboard\Infrastructure\Teams\TeamsClient: - arguments: - - '@surfnet.teams.http.guzzle' - - '@logger' - - Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\QueryClient: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\TeamsClient' - - Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\PublishEntityClient: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\TeamsClient' - - '@logger' - - Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\DeleteEntityClient: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\TeamsClient' - - surfnet.manage.client.delete_client.test_environment: - class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\DeleteManageEntityClient - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient' - - '@logger' - - surfnet.manage.client.identity_provider_client.test_environment: - class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\IdentityProviderClient - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient' - - '@surfnet.manage.configuration.test' - - surfnet.manage.client.delete_client.prod_environment: - class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\DeleteManageEntityClient - arguments: - - '@surfnet.manage.http.http_client.prod_environment' - - '@logger' - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Factory\ManageClientFactory: - public: false - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Factory\TeamsClientFactory: - public: false - - surfnet.manage.http.guzzle.test_environment: - class: GuzzleHttp\Client - factory: "Surfnet\\ServiceProviderDashboard\\Infrastructure\\DashboardBundle\\Factory\\ManageClientFactory:createClient" - arguments: - - "@surfnet.manage.configuration.test" - - surfnet.teams.http.guzzle: - class: GuzzleHttp\Client - factory: "Surfnet\\ServiceProviderDashboard\\Infrastructure\\DashboardBundle\\Factory\\TeamsClientFactory:createClient" - arguments: - - "@surfnet.teams.configuration" - - surfnet.manage.http.http_client.prod_environment: - class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient - arguments: - - '@surfnet.manage.http.guzzle.prod_environment' - - '@logger' - - 'production' - - Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\EntityChangeRequestClient: - arguments: - $client: '@surfnet.manage.http.http_client.prod_environment' - - surfnet.teams.http.http_client: - class: Surfnet\ServiceProviderDashboard\Infrastructure\Teams\TeamsClient - arguments: - - '@surfnet.teams.http.guzzle' - - '@logger' - - '' - - surfnet.manage.http.guzzle.prod_environment: - class: GuzzleHttp\Client - factory: "Surfnet\\ServiceProviderDashboard\\Infrastructure\\DashboardBundle\\Factory\\ManageClientFactory:createClient" - arguments: - - "@surfnet.manage.configuration.production" - - Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Factory\SaveCommandFactoryInterface: - class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Factory\SaveCommandFactory - arguments: - $oidcPlaygroundUriTest: '%playground_uri_test%' - $oidcPlaygroundUriProd: '%playground_uri_prod%' - - Surfnet\ServiceProviderDashboard\Application\Command\Entity\DeleteCommandFactory: - arguments: - - '%jira_issue_type%' - - Surfnet\ServiceProviderDashboard\Infrastructure\Jira\Factory\IssueFieldFactory: - arguments: - - '%jira_issue_entityid_fieldname%' - - '%jira_issue_manageid_fieldname%' - - '%jira_issue_reporter_fieldname%' - - '%jira_issue_priority%' - - '%jira_issue_project_key%' - - Surfnet\ServiceProviderDashboard\Infrastructure\Jira\Factory\JiraServiceFactory: - arguments: - - '%jira_host%' - - '%jira_username%' - - '%jira_password%' - - '@logger' - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\AclListType: - arguments: - - '@Surfnet\ServiceProviderDashboard\Application\Service\EntityAclService' - tags: ['form.type'] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Service\ServiceSwitcherType: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Service\AuthorizationService' - tags: ['form.type'] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\OidcngEntityType: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\OidcngResourceServerOptionsFactory' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\AttributeTypeFactory' - tags: ['form.type'] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\SamlEntityType: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\AttributeTypeFactory' - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\AttributeTypeFactory: - arguments: - - '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeService' - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\OauthClientCredentialEntityType: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\OidcngResourceServerOptionsFactory' - tags: ['form.type'] - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\OidcngResourceServerOptionsFactory: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient' - - '@surfnet.manage.client.query_client.prod_environment' - - '%manage_test_publication_status%' - - '%manage_prod_publication_status%' - - Surfnet\ServiceProviderDashboard\Application\Factory\EntityDetailFactory: - arguments: - $playGroundUriProd: '%playground_uri_prod%' - $playGroundUriTest: '%playground_uri_test%' - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Twig\GlobalSiteNotice: - tags: [ twig.extension ] - arguments: - - "%global.site_notice.show%" - - "%global.site_notice.allowed.tags%" - - "@translator" - - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Controller\SiteNoticeController: - arguments: - - "%global.site_notice.date%" + _defaults: + autowire: true + autoconfigure: true + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Controller\: + resource: '../../Controller' + tags: ['controller.service_arguments'] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Security\Voter\: + resource: '../../Security/Voter' + tags: ['security.voter'] + + surfnet.dashboard.command_handler.create_service: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Service\CreateServiceCommandHandler + public: true + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Service\CreateServiceCommand } + arguments: + $prefixPart1: '%env(team_prefix_default_stem_name)%' + $prefixPart2: '%env(team_prefix_group_name_context)%' + + surfnet.dashboard.command_handler.delete_service: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Service\DeleteServiceCommandHandler + public: true + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Service\DeleteServiceCommand } + + surfnet.dashboard.command_handler.delete_published_production_entity: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\DeletePublishedProductionEntityCommandHandler + arguments: + - '@surfnet.manage.client.delete_client.prod_environment' + public: true + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\DeletePublishedProductionEntityCommand } + + surfnet.dashboard.command_handler.delete_published_test_entity: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\DeletePublishedTestEntityCommandHandler + arguments: + - '@surfnet.manage.client.delete_client.test_environment' + public: true + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\DeletePublishedTestEntityCommand } + + surfnet.dashboard.command_handler.request_delete_published_entity: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\RequestDeletePublishedEntityCommandHandler + arguments: + - '@surfnet.manage.client.query_client.prod_environment' + - '%jira_issue_type' + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\RequestDeletePublishedEntityCommand } + + surfnet.dashboard.command_handler.edit_service: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Service\EditServiceCommandHandler + public: true + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Service\EditServiceCommand } + + surfnet.dashboard.command_handler.load_metadata: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\LoadMetadataCommandHandler + public: true + arguments: + - '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeNameService' + - '@Surfnet\ServiceProviderDashboard\Legacy\Metadata\Fetcher' + - '@Surfnet\ServiceProviderDashboard\Legacy\Metadata\Parser' + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\LoadMetadataCommand } + + surfnet.dashboard.command_handler.privacy_questions: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\PrivacyQuestions\PrivacyQuestionsCommandHandler + public: true + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\PrivacyQuestions\PrivacyQuestionsCommand } + + surfnet.dashboard.command_handler.publish_test_entity: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\PublishEntityTestCommandHandler + arguments: + $publishClient: '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\PublishEntityClient' + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\PublishEntityTestCommand } + + Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\EntityChangeRequestCommandHandler: + arguments: + $repository: '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\EntityChangeRequestClient' + $issueType: '%env(jira_issue_type_entity_change_request)%' + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\EntityChangeRequestCommand } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Mailer\Mailer: + arguments: [ '@mailer' ] + + Surfnet\ServiceProviderDashboard\Application\Service\MailService: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Factory\MailMessageFactory' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Mailer\Mailer' + + surfnet.dashboard.command_handler.publish_production_entity: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\PublishEntityProductionCommandHandler + arguments: + - '@surfnet.manage.client.publish_client.prod_environment' + - '@Surfnet\ServiceProviderDashboard\Application\Service\EntityService' + - '@Surfnet\ServiceProviderDashboard\Application\Service\TicketService' + - '@session.flash_bag' + - '@Surfnet\ServiceProviderDashboard\Application\Service\MailService' + - '@logger' + - '%env(jira_issue_type_publication_request)%' + public: true + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\PublishEntityProductionCommand } + + surfnet.dashboard.command_handler.push_metadata: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\PushMetadataCommandHandler + arguments: + - '@surfnet.manage.publish_service' + - '@session.flash_bag' + - '@logger' + public: true + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\PushMetadataCommand } + + surfnet.dashboard.command_handler.update_entity_acl: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\UpdateEntityAclCommandHandler + arguments: + $publishClient: '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\PublishEntityClient' + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\UpdateEntityAclCommand } + + + surfnet.dashboard.command_handler.reset_oidc_secret: + class: Surfnet\ServiceProviderDashboard\Application\CommandHandler\Entity\ResetOidcSecretCommandHandler + arguments: + $publishEntityClient: '@surfnet.manage.client.publish_client.prod_environment' + public: true + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\ResetOidcSecretCommand } + + surfnet.dashboard.command_handler.reset_service: + class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\CommandHandler\Service\ResetServiceCommandHandler + public: true + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Command\Service\ResetServiceCommand } + + surfnet.dashboard.command_handler.select_service: + class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\CommandHandler\Service\SelectServiceCommandHandler + public: true + tags: + - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Command\Service\SelectServiceCommand } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Factory\MailMessageFactory: + arguments: + - '%env(mail_from)%' + - '%env(mail_receiver)%' + - '%env(mail_no_reply)%' + - '@translator' + - '@twig' + + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Menu\Builder: + tags: + - { name: knp_menu.menu_builder, method: mainMenu, alias: main } + + Surfnet\ServiceProviderDashboard\Legacy\Metadata\CertificateParser: + class: Surfnet\ServiceProviderDashboard\Legacy\Metadata\CertificateParser + + surfnet.dashboard.metadata.client: + class: GuzzleHttp\Client + + Surfnet\ServiceProviderDashboard\Legacy\Metadata\Fetcher: + arguments: ['@surfnet.dashboard.metadata.client', '@logger', '%env(metadata_url_timeout)%'] + + + Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGeneratorStrategy: + class: Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGeneratorStrategy + + Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGenerator: + class: Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGenerator + tags: + - { name: dashboard.json_generator, identifier: saml20 } + + Surfnet\ServiceProviderDashboard\Application\Metadata\OidcngJsonGenerator: + class: Surfnet\ServiceProviderDashboard\Application\Metadata\OidcngJsonGenerator + tags: + - { name: dashboard.json_generator, identifier: oidcng } + + Surfnet\ServiceProviderDashboard\Application\Metadata\OidcngResourceServerJsonGenerator: + class: Surfnet\ServiceProviderDashboard\Application\Metadata\OidcngResourceServerJsonGenerator + tags: + - { name: dashboard.json_generator, identifier: oauth20_rs } + + Surfnet\ServiceProviderDashboard\Application\Metadata\OauthClientCredentialsClientJsonGenerator: + class: Surfnet\ServiceProviderDashboard\Application\Metadata\OauthClientCredentialsClientJsonGenerator + tags: + - { name: dashboard.json_generator, identifier: oauth20_ccc } + + Surfnet\ServiceProviderDashboard\Legacy\Metadata\Parser: + arguments: + - '@Surfnet\ServiceProviderDashboard\Legacy\Metadata\CertificateParser' + - '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeService' + - '%kernel.project_dir%/assets/Resources' + - '@logger' + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Monolog\Formatter\JsonFormatter: + class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Monolog\Formatter\JsonFormatter + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\ContactRepository: + factory: ['@doctrine', 'getRepository'] + arguments: [Surfnet\ServiceProviderDashboard\Domain\Entity\Contact] + + Surfnet\ServiceProviderDashboard\Legacy\Repository\AttributesMetadataRepository: + arguments: ['%kernel.project_dir%/assets/Resources'] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\AttributeRepository: + arguments: ['%kernel.project_dir%/assets/attributes.json'] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\PrivacyQuestionsRepository: + public: true + factory: ['@doctrine', 'getRepository'] + arguments: [Surfnet\ServiceProviderDashboard\Domain\Entity\PrivacyQuestions] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\ServiceRepository: + public: true + factory: ['@doctrine', 'getRepository'] + arguments: [Surfnet\ServiceProviderDashboard\Domain\Entity\Service] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Service\AuthorizationService: + public: true + class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Service\AuthorizationService + arguments: + $serviceService: '@Surfnet\ServiceProviderDashboard\Application\Service\ServiceService' + $session: '@Symfony\Component\HttpFoundation\Session\SessionInterface' + $tokenStorage: '@security.token_storage' + $manageTestConfig: "@surfnet.manage.configuration.test" + $manageProdConfig: "@surfnet.manage.configuration.production" + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Twig\ServiceSwitcherExtension: + tags: [twig.extension] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Twig\IdentityExtension: + tags: [twig.extension] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Twig\WysiwygExtension: + tags: [twig.extension] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidEntityIdValidator: + tags: + - { name: validator.constraint_validator, alias: valid_entity_id } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidClientIdValidator: + tags: + - { name: validator.constraint_validator, alias: valid_client_id } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\UniqueEntityIdValidator: + arguments: + - '@surfnet.manage.query_service' + tags: + - { name: validator.constraint_validator, alias: unique_entity_id } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\UniqueTeamNameValidator: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\QueryClient' + - '%env(team_prefix_group_name_context)%' + tags: + - { name: validator.constraint_validator, alias: unique_team_name } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ExistingTeamNameValidator: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\QueryClient' + - '%env(team_prefix_default_stem_name)%' + - '%env(team_prefix_group_name_context)%' + tags: + - { name: validator.constraint_validator, alias: existing_team_name } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\UrnFormattedTeamNameValidator: + arguments: + - '%env(team_prefix_default_stem_name)%' + - '%env(team_prefix_group_name_context)%' + tags: + - { name: validator.constraint_validator, alias: urn_formatted_team_name } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\UniqueRedirectUrlsValidator: + tags: + - { name: validator.constraint_validator, alias: unique_redirect_urls } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidRedirectUrlValidator: + tags: + - { name: validator.constraint_validator, alias: valid_redirect_url } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidMetadataUrlValidator: + tags: + - { name: validator.constraint_validator, alias: metadata_url } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidLogoValidator: + arguments: ['@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Service\CurlLogoValidationHelper'] + tags: + - { name: validator.constraint_validator, alias: logo } + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Service\CurlLogoValidationHelper: + arguments: ['@logger'] + + Surfnet\ServiceProviderDashboard\Infrastructure\Jira\Repository\IssueRepository: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Jira\Factory\JiraServiceFactory' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Jira\Factory\IssueFieldFactory' + - '%env(jira_issue_project_key)%' + - '%env(jira_issue_type)%' + - '%env(jira_issue_manageid_fieldname)%' + - '%env(jira_issue_manageid_field_label)%' + + Surfnet\ServiceProviderDashboard\Application\Service\TicketService: + arguments: + - '@surfnet.dashboard.repository.issue' + + Surfnet\ServiceProviderDashboard\Application\Service\EntityMergeService: + arguments: + $oidcPlaygroundUriTest: '%env(playground_uri_test)%' + $oidcPlaygroundUriProd: '%env(playground_uri_prod)%' + + Surfnet\ServiceProviderDashboard\Application\Service\ServiceService: + class: Surfnet\ServiceProviderDashboard\Application\Service\ServiceService + + Surfnet\ServiceProviderDashboard\Application\Service\EntityService: + arguments: + - '@Surfnet\ServiceProviderDashboard\Application\Provider\EntityQueryRepositoryProvider' + - '@Surfnet\ServiceProviderDashboard\Application\Service\TicketService' + - '@Surfnet\ServiceProviderDashboard\Application\Service\ServiceService' + - '@surfnet.manage.configuration.test' + - '@surfnet.manage.configuration.production' + - '@router' + - '@logger' + - '%env(jira_issue_type)%' + + Surfnet\ServiceProviderDashboard\Application\Service\AttributeService: + public: true + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\AttributeRepository' + - '%env(locale)%' + + Surfnet\ServiceProviderDashboard\Application\Service\AttributeNameService: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\AttributeRepository' + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Validator\Constraints\ValidAttributeValidator: + arguments: + - '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeService' + tags: + - { name: validator.constraint_validator, alias: valid_attribute } + + Surfnet\ServiceProviderDashboard\Application\Service\LoadEntityService: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient' + - '@surfnet.manage.client.query_client.prod_environment' + + Surfnet\ServiceProviderDashboard\Application\Service\ChangeRequestService: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\EntityChangeRequestClient' + + Surfnet\ServiceProviderDashboard\Application\Service\EntityAclService: + arguments: + - '@surfnet.manage.client.identity_provider_client.test_environment' + + Surfnet\ServiceProviderDashboard\Application\Provider\EntityQueryRepositoryProvider: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient' + - '@surfnet.manage.client.query_client.prod_environment' + + Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\PublishEntityClient: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient' + - '@Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGeneratorStrategy' + - '@surfnet.manage.configuration.test' + - '@logger' + + Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient' + + Surfnet\ServiceProviderDashboard\Application\ViewObject\Manage\ConfigFactory: + class: Surfnet\ServiceProviderDashboard\Application\ViewObject\Manage\ConfigFactory + + Surfnet\ServiceProviderDashboard\Application\ViewObject\Apis\ApiConfigFactory: + class: Surfnet\ServiceProviderDashboard\Application\ViewObject\Apis\ApiConfigFactory + + # For details, see the DashboardExtension. + surfnet.manage.configuration.test: + class: Surfnet\ServiceProviderDashboard\Application\ViewObject\Apis\ApiConfig + + # For details, see the DashboardExtension. + surfnet.manage.configuration.production: + class: Surfnet\ServiceProviderDashboard\Application\ViewObject\Apis\ApiConfig + + # For details, see the DashboardExtension. + surfnet.teams.configuration: + class: Surfnet\ServiceProviderDashboard\Application\ViewObject\Apis\ApiConfig + + surfnet.manage.client.publish_client.prod_environment: + class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\PublishEntityClient + arguments: + - '@surfnet.manage.http.http_client.prod_environment' + - '@Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGeneratorStrategy' + - '@surfnet.manage.configuration.production' + - '@logger' + + surfnet.manage.client.query_client.prod_environment: + class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient + arguments: + - '@surfnet.manage.http.http_client.prod_environment' + + surfnet.manage.query_service: + class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Service\ManageQueryService + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient' + - '@surfnet.manage.client.query_client.prod_environment' + + surfnet.manage.publish_service: + class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Service\ManagePublishService + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\PublishEntityClient' + - '@surfnet.manage.client.publish_client.prod_environment' + + Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient: + arguments: + - '@surfnet.manage.http.guzzle.test_environment' + - '@logger' + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Controller\TeamsController: + arguments: + $defaultStemName: '%env(team_prefix_default_stem_name)%' + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Controller\ServiceController: + arguments: + $defaultStemName: '%env(team_prefix_default_stem_name)%' + $logger: '@logger' + + Surfnet\ServiceProviderDashboard\Infrastructure\Teams\TeamsClient: + arguments: + - '@surfnet.teams.http.guzzle' + - '@logger' + + Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\QueryClient: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\TeamsClient' + + Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\PublishEntityClient: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\TeamsClient' + - '@logger' + + Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\DeleteEntityClient: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\TeamsClient' + + surfnet.manage.client.delete_client.test_environment: + class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\DeleteManageEntityClient + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient' + - '@logger' + + surfnet.manage.client.identity_provider_client.test_environment: + class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\IdentityProviderClient + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient' + - '@surfnet.manage.configuration.test' + + surfnet.manage.client.delete_client.prod_environment: + class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\DeleteManageEntityClient + arguments: + - '@surfnet.manage.http.http_client.prod_environment' + - '@logger' + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Factory\ManageClientFactory: + public: false + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Factory\TeamsClientFactory: + public: false + + surfnet.manage.http.guzzle.test_environment: + class: GuzzleHttp\Client + factory: "Surfnet\\ServiceProviderDashboard\\Infrastructure\\DashboardBundle\\Factory\\ManageClientFactory:createClient" + arguments: + - "@surfnet.manage.configuration.test" + + surfnet.teams.http.guzzle: + class: GuzzleHttp\Client + factory: "Surfnet\\ServiceProviderDashboard\\Infrastructure\\DashboardBundle\\Factory\\TeamsClientFactory:createClient" + arguments: + - "@surfnet.teams.configuration" + + surfnet.manage.http.http_client.prod_environment: + class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\ManageClient + arguments: + - '@surfnet.manage.http.guzzle.prod_environment' + - '@logger' + - 'production' + + Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\EntityChangeRequestClient: + arguments: + $client: '@surfnet.manage.http.http_client.prod_environment' + + surfnet.teams.http.http_client: + class: Surfnet\ServiceProviderDashboard\Infrastructure\Teams\TeamsClient + arguments: + - '@surfnet.teams.http.guzzle' + - '@logger' + - '' + + surfnet.manage.http.guzzle.prod_environment: + class: GuzzleHttp\Client + factory: "Surfnet\\ServiceProviderDashboard\\Infrastructure\\DashboardBundle\\Factory\\ManageClientFactory:createClient" + arguments: + - "@surfnet.manage.configuration.production" + + Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Factory\SaveCommandFactoryInterface: + class: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Factory\SaveCommandFactory + arguments: + $oidcPlaygroundUriTest: '%env(playground_uri_test)%' + $oidcPlaygroundUriProd: '%env(playground_uri_prod)%' + + Surfnet\ServiceProviderDashboard\Application\Command\Entity\DeleteCommandFactory: + arguments: + - '%env(jira_issue_type)%' + + Surfnet\ServiceProviderDashboard\Infrastructure\Jira\Factory\IssueFieldFactory: + arguments: + - '%env(jira_issue_entityid_fieldname)%' + - '%env(jira_issue_manageid_fieldname)%' + - '%env(jira_issue_reporter_fieldname)%' + - '%env(jira_issue_priority)%' + - '%env(jira_issue_project_key)%' + + Surfnet\ServiceProviderDashboard\Infrastructure\Jira\Factory\JiraServiceFactory: + arguments: + - '%env(jira_host)%' + - '%env(jira_username)%' + - '%env(jira_password)%' + - '@logger' + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\AclListType: + arguments: + - '@Surfnet\ServiceProviderDashboard\Application\Service\EntityAclService' + tags: ['form.type'] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Service\ServiceSwitcherType: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Service\AuthorizationService' + tags: ['form.type'] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\OidcngEntityType: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\OidcngResourceServerOptionsFactory' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\AttributeTypeFactory' + tags: ['form.type'] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\SamlEntityType: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\AttributeTypeFactory' + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\AttributeTypeFactory: + arguments: + - '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeService' + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\OauthClientCredentialEntityType: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\OidcngResourceServerOptionsFactory' + tags: ['form.type'] + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\OidcngResourceServerOptionsFactory: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient' + - '@surfnet.manage.client.query_client.prod_environment' + - '%env(manage_test_publication_status)%' + - '%env(manage_prod_publication_status)%' + + Surfnet\ServiceProviderDashboard\Application\Factory\EntityDetailFactory: + arguments: + - '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeService' + - '%env(playground_uri_test)%' + - '%env(playground_uri_prod)%' + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Twig\GlobalSiteNotice: + tags: [ twig.extension ] + arguments: + - "%env(global_site_notice_show)%" + - "%env(global_site_notice_allowed_tags)%" + - "@translator" + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Controller\SiteNoticeController: + arguments: + - "%env(global_site_notice_date)%" + + Surfnet\ServiceProviderDashboard\Application\Service\EntityServiceInterface: + '@Surfnet\ServiceProviderDashboard\Application\Service\EntityService' + + Surfnet\ServiceProviderDashboard\Domain\Repository\PublishTeamsRepository: + '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\PublishEntityClient' + + Surfnet\ServiceProviderDashboard\Domain\Repository\AttributesMetadataRepository: + '@Surfnet\ServiceProviderDashboard\Legacy\Repository\AttributesMetadataRepository' + + Surfnet\ServiceProviderDashboard\Domain\Repository\ServiceRepository: + '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\ServiceRepository' + + Surfnet\ServiceProviderDashboard\Application\Service\AttributeServiceInterface: + '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeService' + + Surfnet\ServiceProviderDashboard\Domain\Repository\QueryTeamsRepository: + '@Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\QueryClient' + + Surfnet\ServiceProviderDashboard\Domain\Repository\PrivacyQuestionsRepository: + '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\PrivacyQuestionsRepository' + + Surfnet\ServiceProviderDashboard\Application\Service\ServiceStatusService: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\PrivacyQuestionsRepository' + - '@Surfnet\ServiceProviderDashboard\Application\Service\EntityService' + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Factory\EntityTypeFactory: + $saveCommandFactory: '@Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Factory\SaveCommandFactoryInterface' + $attributeService: '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeService' + + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Form\Entity\ProtocolChoiceFactory: + + Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGenerator\ArpGenerator: + - '@Surfnet\ServiceProviderDashboard\Application\Service\AttributeService' + + Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGenerator\PrivacyQuestionsMetadataGenerator: + - '@Surfnet\ServiceProviderDashboard\Legacy\Repository\AttributesMetadataRepository' + + Surfnet\ServiceProviderDashboard\Application\Metadata\JsonGenerator\SpDashboardMetadataGenerator: + - '@Surfnet\ServiceProviderDashboard\Legacy\Repository\AttributesMetadataRepository' + + surfnet.dashboard.repository.issue: + class: ~ diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/translations/messages.en.yml b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/translations/messages.en.yml index 3f29297c5..d3373f738 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/translations/messages.en.yml +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/translations/messages.en.yml @@ -390,12 +390,6 @@ entity.change_request.ticket.description: "h2. Details *Applicant email*: %applicant_email%. *Entity name (en)*: %entity_name%." -entity.change_request.ticket.summary: "Request for changes for %entity_name%" -entity.change_request.ticket.description: "h2. Details -*Applicant name*: %applicant_name% -*Applicant email*: %applicant_email%. -*Entity name (en)*: %entity_name%." - entity.published_production.text.html: "Thanks for publishing \"%entityName%\" to our production environment." entity.published_production.title: "Successfully published the entity to production" entity.published_test.text.html: "Thanks for publishing \"%entityName%\" to our test environment." diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Twig/IdentityExtension.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Twig/IdentityExtension.php index e7b45028c..3f047a8fe 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Twig/IdentityExtension.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Twig/IdentityExtension.php @@ -62,7 +62,7 @@ public function renderIdentity(Twig_Environment $environment) } return $environment->render( - 'DashboardBundle:TwigExtension:identity.html.twig', + 'TwigExtension\\identity.html.twig', [ 'contact' => $contact, ] diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Twig/ServiceSwitcherExtension.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Twig/ServiceSwitcherExtension.php index dfdb7f641..42dda9d82 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Twig/ServiceSwitcherExtension.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Twig/ServiceSwitcherExtension.php @@ -75,7 +75,7 @@ public function render(Twig_Environment $environment) $form = $this->formFactory->create(ServiceSwitcherType::class); return $environment->render( - 'DashboardBundle:TwigExtension:service_switcher.html.twig', + 'TwigExtension\\service_switcher.html.twig', [ 'form' => $form->createView(), ] diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/DependencyInjection/Configuration.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/DependencyInjection/Configuration.php index 23b70ca78..264dba98a 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/DependencyInjection/Configuration.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/DependencyInjection/Configuration.php @@ -45,10 +45,9 @@ public function getConfigTreeBuilder() private function appendSessionConfiguration(NodeBuilder $childNodes) { $childNodes - ->arrayNode('administrator_teams') - ->info('All users in these teams get the administrator role') + ->scalarNode('administrator_teams') + ->info('All users in these teams get the administrator role. Teams is a string containing roles seperated by comma\'s') ->isRequired() - ->scalarPrototype()->end() ->end() ->arrayNode('session_lifetimes') ->isRequired() diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/config/services.yml b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/config/services.yml index 560a4b483..62f1f8de2 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/config/services.yml +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/config/services.yml @@ -1,105 +1,106 @@ services: - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Controller\: - resource: '../../Controller' - tags: ['controller.service_arguments'] + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Controller\: + resource: '../../Controller' + tags: ['controller.service_arguments'] - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Controller\SamlController: - arguments: - - '@logger' - - '@surfnet_saml.metadata_factory' - - '@surfnet_saml.http.post_binding' - - '@surfnet_saml.remote.idp' - - '@surfnet_saml.hosted.service_provider' + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Controller\SamlController: + tags: ['controller.service_arguments'] + arguments: + - '@logger' + - '@surfnet_saml.metadata_factory' + - '@surfnet_saml.http.post_binding' + - '@surfnet_saml.remote.idp' + - '@surfnet_saml.hosted.service_provider' - # Firewall - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Firewall\SamlListener: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\AuthenticatedUserHandler' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\SamlInteractionProvider' - - '@logger' + # Firewall + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Firewall\SamlListener: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\AuthenticatedUserHandler' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\SamlInteractionProvider' + - '@logger' - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Provider\SamlProvider: - arguments: - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\ContactRepository' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\ServiceRepository' - - '@surfnet_saml.saml.attribute_dictionary' - - '@logger' - - '%surfnet.dashboard.security.authentication.administrator_teams%' + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Provider\SamlProvider: + arguments: + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\ContactRepository' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Repository\ServiceRepository' + - '@surfnet_saml.saml.attribute_dictionary' + - '@logger' + - '%surfnet.dashboard.security.authentication.administrator_teams%' - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\SamlInteractionProvider: - arguments: - - '@surfnet_saml.hosted.service_provider' - - '@surfnet_saml.remote.idp' - - '@surfnet_saml.http.redirect_binding' - - '@surfnet_saml.http.post_binding' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\SamlInteractionProvider: + arguments: + - '@surfnet_saml.hosted.service_provider' + - '@surfnet_saml.remote.idp' + - '@surfnet_saml.http.redirect_binding' + - '@surfnet_saml.http.post_binding' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' - # Authentication Handlers - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\AuthenticatedUserHandler: - arguments: - - '@security.token_storage' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionLifetimeGuard' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' - - '@logger' - calls: - - ['setNext', ['@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\ExplicitSessionTimeoutHandler']] + # Authentication Handlers + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\AuthenticatedUserHandler: + arguments: + - '@security.token_storage' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionLifetimeGuard' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' + - '@logger' + calls: + - ['setNext', ['@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\ExplicitSessionTimeoutHandler']] - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\ExplicitSessionTimeoutHandler: - arguments: - - '@security.token_storage' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionLifetimeGuard' - - '@security.logout.handler.session' - - '@security.logout.handler.cookie_clearing.saml_based' - - '@router' - - '@logger' - calls: - - ['setNext', ['@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\InitiateSamlAuthenticationHandler']] + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\ExplicitSessionTimeoutHandler: + arguments: + - '@security.token_storage' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionLifetimeGuard' + - '@security.logout.handler.session' + - '@security.logout.handler.cookie_clearing.saml_based' + - '@router' + - '@logger' + calls: + - ['setNext', ['@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\InitiateSamlAuthenticationHandler']] - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\InitiateSamlAuthenticationHandler: - arguments: - - '@security.token_storage' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\SamlInteractionProvider' - - '@router' - - '@surfnet_saml.logger' - - '@logger' - calls: - - ['setNext', ['@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\ProcessSamlAuthenticationHandler']] + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\InitiateSamlAuthenticationHandler: + arguments: + - '@security.token_storage' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\SamlInteractionProvider' + - '@router' + - '@surfnet_saml.logger' + - '@logger' + calls: + - ['setNext', ['@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\ProcessSamlAuthenticationHandler']] - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\ProcessSamlAuthenticationHandler: - arguments: - - '@security.token_storage' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\SamlInteractionProvider' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' - - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' - - '@security.authentication.manager' - - '@surfnet_saml.logger' - - '@templating' + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Handler\ProcessSamlAuthenticationHandler: + arguments: + - '@security.token_storage' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\SamlInteractionProvider' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' + - '@Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage' + - '@security.authentication.manager' + - '@surfnet_saml.logger' + - '@twig' - # Session - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage: - arguments: - - '@session' + # Session + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionStorage: + arguments: + - '@session' - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionLifetimeGuard: - arguments: - - '@surfnet.dashboard.security.authentication.session.absolute_maximum_lifetime' - - '@surfnet.dashboard.security.authentication.session.relative_maximum_lifetime' + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Authentication\Session\SessionLifetimeGuard: + arguments: + - '@surfnet.dashboard.security.authentication.session.absolute_maximum_lifetime' + - '@surfnet.dashboard.security.authentication.session.relative_maximum_lifetime' - surfnet.dashboard.security.authentication.session.absolute_maximum_lifetime: - class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Value\TimeFrame - factory: [Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Value\TimeFrame, ofSeconds] - arguments: - - '%surfnet.dashboard.security.authentication.session.maximum_absolute_lifetime_in_seconds%' + surfnet.dashboard.security.authentication.session.absolute_maximum_lifetime: + class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Value\TimeFrame + factory: [Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Value\TimeFrame, ofSeconds] + arguments: + - '%surfnet.dashboard.security.authentication.session.maximum_absolute_lifetime_in_seconds%' - surfnet.dashboard.security.authentication.session.relative_maximum_lifetime: - class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Value\TimeFrame - factory: [Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Value\TimeFrame, ofSeconds] - arguments: - - '%surfnet.dashboard.security.authentication.session.maximum_relative_lifetime_in_seconds%' + surfnet.dashboard.security.authentication.session.relative_maximum_lifetime: + class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Value\TimeFrame + factory: [Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Value\TimeFrame, ofSeconds] + arguments: + - '%surfnet.dashboard.security.authentication.session.maximum_relative_lifetime_in_seconds%' - Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Service\IdentityService: - class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Service\IdentityService + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Service\IdentityService: + class: Surfnet\ServiceProviderDashboard\Infrastructure\DashboardSamlBundle\Security\Service\IdentityService diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/translations/messages.en.yml b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/translations/messages.en.yml index 5ffe5d1e0..2d0f2978c 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/translations/messages.en.yml +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/translations/messages.en.yml @@ -4,5 +4,5 @@ saml_authn_failed.button.try_again: "Retry to sign-in" saml_precondition_not_met.title: "Sign in" saml_precondition_not_met.text.precondition_not_met: "You are not authorised to log in." saml_unknown_service.title: Service unknown -saml_unknown_service.no_service.text: You have been granted access to one or more services, but those services are not yet provisioned in the dashboard. You are member of the following teams: +saml_unknown_service.no_service.text: 'You have been granted access to one or more services, but those services are not yet provisioned in the dashboard. You are member of the following teams:' saml_unknown_service.no_teams.text: You have successfully logged in, but you have not been granted access to one or more services. diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Security/Authentication/Handler/ProcessSamlAuthenticationHandler.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Security/Authentication/Handler/ProcessSamlAuthenticationHandler.php index 10ac33fee..962cc96ef 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Security/Authentication/Handler/ProcessSamlAuthenticationHandler.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Security/Authentication/Handler/ProcessSamlAuthenticationHandler.php @@ -35,6 +35,7 @@ use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Security\Core\Exception\AuthenticationException; +use Twig\Environment as TwigEnvironment; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) SamlResponse parsing, validation authentication and error handling @@ -90,7 +91,7 @@ public function __construct( AuthenticatedSessionStateHandler $authenticatedSession, AuthenticationManagerInterface $authenticationManager, SamlAuthenticationLogger $authenticationLogger, - EngineInterface $templating + TwigEnvironment $templating ) { $this->tokenStorage = $tokenStorage; $this->samlInteractionProvider = $samlInteractionProvider; @@ -116,8 +117,8 @@ public function process(GetResponseEvent $event) } catch (AuthnFailedSamlResponseException $exception) { $logger->notice(sprintf('SAML Authentication failed at IdP: "%s"', $exception->getMessage())); $responseBody = $this->templating->render( - 'DashboardSamlBundle:Exception:authnFailed.html.twig', - ['exception' => $exception] + '@Dashboard/Exception/authnFailed.html.twig', + ['exception' => $exception, 'page_title' => 'AuthnFailedSamlResponseException'] ); $event->setResponse(new Response($responseBody, Response::HTTP_UNAUTHORIZED)); @@ -126,8 +127,8 @@ public function process(GetResponseEvent $event) } catch (PreconditionNotMetException $exception) { $logger->notice(sprintf('SAMLResponse precondition not met: "%s"', $exception->getMessage())); $responseBody = $this->templating->render( - 'DashboardSamlBundle:Exception:preconditionNotMet.html.twig', - ['exception' => $exception] + '@Dashboard/Exception/preconditionNotMet.html.twig', + ['exception' => $exception, 'page_title' => 'PreconditionNotMetException'] ); $event->setResponse(new Response($responseBody, Response::HTTP_UNAUTHORIZED)); @@ -161,8 +162,8 @@ public function process(GetResponseEvent $event) return; } catch (UnknownServiceException $exception) { $responseBody = $this->templating->render( - 'DashboardSamlBundle:Exception:unknownService.html.twig', - ['teamNames' => $exception->getTeamNames()] + '@Dashboard/Exception/unknownService.html.twig', + ['teamNames' => $exception->getTeamNames(), 'page_title' => 'UnknownServiceException'] ); $event->setResponse(new Response($responseBody, Response::HTTP_UNAUTHORIZED)); diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Security/Authentication/Provider/SamlProvider.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Security/Authentication/Provider/SamlProvider.php index 133840560..9fa33ae93 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Security/Authentication/Provider/SamlProvider.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Security/Authentication/Provider/SamlProvider.php @@ -70,17 +70,17 @@ public function __construct( ServiceRepository $services, AttributeDictionary $attributeDictionary, LoggerInterface $logger, - array $administratorTeams + string $administratorTeams ) { $this->contacts = $contacts; $this->services = $services; $this->attributeDictionary = $attributeDictionary; $this->logger = $logger; + $this->administratorTeams = explode(',', trim(str_replace('\'', '', $administratorTeams))); Assert::allStringNotEmpty( - $administratorTeams, + $this->administratorTeams, 'All entries in the `administrator_teams` config parameter should be string.' ); - $this->administratorTeams = $administratorTeams; } /** diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/Jira/Factory/IssueFieldFactory.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/Jira/Factory/IssueFieldFactory.php index ff62db614..e10b2a063 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/Jira/Factory/IssueFieldFactory.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/Jira/Factory/IssueFieldFactory.php @@ -65,14 +65,14 @@ public function __construct( ) { Assert::stringNotEmpty( $entityIdFieldName, - 'The entity id field name may not be empty, configure in parameters.yml' + 'The entity id field name may not be empty, configure in .env' ); Assert::stringNotEmpty( $manageIdFieldName, - 'The manage id field name may not be empty, configure in parameters.yml' + 'The manage id field name may not be empty, configure in .env' ); - Assert::stringNotEmpty($priority, 'The priority may not be empty, configure in parameters.yml'); - Assert::stringNotEmpty($projectKey, 'The project key may not be empty, configure in parameters.yml'); + Assert::stringNotEmpty($priority, 'The priority may not be empty, configure in .env'); + Assert::stringNotEmpty($projectKey, 'The project key may not be empty, configure in .env'); $this->entityIdFieldName = $entityIdFieldName; $this->manageIdFieldName = $manageIdFieldName; diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/Jira/Repository/IssueRepository.php b/src/Surfnet/ServiceProviderDashboard/Infrastructure/Jira/Repository/IssueRepository.php index 327fcc033..88608ce29 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/Jira/Repository/IssueRepository.php +++ b/src/Surfnet/ServiceProviderDashboard/Infrastructure/Jira/Repository/IssueRepository.php @@ -76,11 +76,11 @@ public function __construct( $manageIdFieldName, $manageIdFieldLabel ) { - Assert::stringNotEmpty($projectKey, 'Please set "jira_issue_project_key" in parameters.yml'); - Assert::stringNotEmpty($manageIdFieldName, 'Please set "jira_issue_manageid_fieldname" in parameters.yml'); + Assert::stringNotEmpty($projectKey, 'Please set "jira_issue_project_key" in .env'); + Assert::stringNotEmpty($manageIdFieldName, 'Please set "jira_issue_manageid_fieldname" in .env'); Assert::stringNotEmpty( $manageIdFieldLabel, - 'Please set "jira_issue_manageid_field_label" in parameters.yml' + 'Please set "jira_issue_manageid_field_label" in .env' ); $this->jiraFactory = $jiraFactory; diff --git a/src/Surfnet/ServiceProviderDashboard/Kernel.php b/src/Surfnet/ServiceProviderDashboard/Kernel.php new file mode 100644 index 000000000..8abc4d0d4 --- /dev/null +++ b/src/Surfnet/ServiceProviderDashboard/Kernel.php @@ -0,0 +1,72 @@ +getProjectDir().'/config/bundles.php'; + foreach ($contents as $class => $envs) { + if ($envs[$this->environment] ?? $envs['all'] ?? false) { + yield new $class(); + } + } + } + + public function getProjectDir(): string + { + return \dirname(__DIR__ . "/../../../../"); + } + + protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void + { + $container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php')); + $container->setParameter('container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug); + $container->setParameter('container.dumper.inline_factories', true); + $confDir = $this->getProjectDir().'/config'; + + $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{packages}/'.$this->environment.'/*'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob'); + } + + protected function configureRoutes(RouteCollectionBuilder $routes): void + { + $confDir = $this->getProjectDir().'/config'; + + $routes->import($confDir.'/{routes}/'.$this->environment.'/*'.self::CONFIG_EXTS, '/', 'glob'); + $routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob'); + $routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob'); + } +} diff --git a/symfony.lock b/symfony.lock new file mode 100644 index 000000000..214c92237 --- /dev/null +++ b/symfony.lock @@ -0,0 +1,316 @@ +{ + "doctrine/annotations": { + "version": "1.13", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "1.10", + "ref": "64d8583af5ea57b7afa4aba4b159907f3a148b05" + } + }, + "doctrine/doctrine-bundle": { + "version": "1.12", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "1.12", + "ref": "28a0beb09b45a97111e43bb2c0e652aa83d44981" + }, + "files": [ + "config/packages/doctrine.yaml", + "config/packages/prod/doctrine.yaml", + "src/Surfnet/Entity/.gitignore", + "src/Surfnet/Repository/.gitignore" + ] + }, + "doctrine/doctrine-cache-bundle": { + "version": "1.4.0" + }, + "doctrine/doctrine-fixtures-bundle": { + "version": "v2.4.1" + }, + "doctrine/doctrine-migrations-bundle": { + "version": "3.1", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "3.1", + "ref": "1d01ec03c6ecbd67c3375c5478c9a423ae5d6a33" + }, + "files": [ + "config/packages/doctrine_migrations.yaml", + "migrations/.gitignore" + ] + }, + "knplabs/knp-menu-bundle": { + "version": "v2.3.0" + }, + "league/tactician-bundle": { + "version": "1.4", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "main", + "version": "1.0", + "ref": "222c3d39d38378bc6a9790a0b5baf841ba6679b9" + }, + "files": [ + "config/packages/league_tactician.yaml" + ] + }, + "lexik/translation-bundle": { + "version": "v4.4.0" + }, + "nelmio/security-bundle": { + "version": "2.12", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "2.4", + "ref": "65726efb67ff51d89de38195bc0d230fa811f64d" + }, + "files": [ + "config/packages/nelmio_security.yaml" + ] + }, + "openconext/monitor-bundle": { + "version": "2.1.0" + }, + "phpunit/phpunit": { + "version": "7.5", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "4.7", + "ref": "b5b34fa22319ac1f7f6c180b30e160841c154a1e" + }, + "files": [ + ".env.test", + "phpunit.xml.dist", + "tests/bootstrap.php" + ] + }, + "sensio/framework-extra-bundle": { + "version": "5.5", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "5.2", + "ref": "fb7e19da7f013d0d422fa9bce16f5c510e27609b" + }, + "files": [ + "config/packages/sensio_framework_extra.yaml" + ] + }, + "stfalcon/tinymce-bundle": { + "version": "v2.5.0" + }, + "stof/doctrine-extensions-bundle": { + "version": "1.7", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "main", + "version": "1.2", + "ref": "e805aba9eff5372e2d149a9ff56566769e22819d" + }, + "files": [ + "config/packages/stof_doctrine_extensions.yaml" + ] + }, + "surfnet/stepup-saml-bundle": { + "version": "4.2.1" + }, + "symfony/console": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "4.4", + "ref": "fd5340d07d4c90504843b53da41525cf42e31f5c" + }, + "files": [ + "bin/console", + "config/bootstrap.php" + ] + }, + "symfony/flex": { + "version": "1.19", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "1.0", + "ref": "146251ae39e06a95be0fe3d13c807bcf3938b172" + }, + "files": [ + ".env" + ] + }, + "symfony/framework-bundle": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "4.4", + "ref": "24eb45d1355810154890460e6a05c0ca27318fe7" + }, + "files": [ + "config/bootstrap.php", + "config/packages/cache.yaml", + "config/packages/framework.yaml", + "config/packages/test/framework.yaml", + "config/preload.php", + "config/routes/dev/framework.yaml", + "config/services.yaml", + "public/index.php", + "src/Controller/.gitignore", + "src/Kernel.php" + ] + }, + "symfony/mailer": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "4.3", + "ref": "97a61eabb351d7f6cb7702039bcfe07fe9d7e03c" + }, + "files": [ + "config/packages/mailer.yaml" + ] + }, + "symfony/maker-bundle": { + "version": "1.39", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "1.0", + "ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f" + } + }, + "symfony/monolog-bundle": { + "version": "3.6", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "3.3", + "ref": "2120e71a370db3a494b8afcc42d7cfb2cff6f910" + }, + "files": [ + "config/packages/dev/monolog.yaml", + "config/packages/prod/deprecations.yaml", + "config/packages/prod/monolog.yaml", + "config/packages/test/monolog.yaml" + ] + }, + "symfony/phpunit-bridge": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "4.3", + "ref": "0e1b186400de9d4ab83363138b4eb0072c99b2ab" + }, + "files": [ + ".env.test", + "bin/phpunit", + "phpunit.xml.dist", + "tests/bootstrap.php" + ] + }, + "symfony/routing": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "4.2", + "ref": "683dcb08707ba8d41b7e34adb0344bfd68d248a7" + }, + "files": [ + "config/packages/prod/routing.yaml", + "config/packages/routing.yaml", + "config/routes.yaml" + ] + }, + "symfony/security-bundle": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "4.4", + "ref": "7b4408dc203049666fe23fabed23cbadc6d8440f" + }, + "files": [ + "config/packages/security.yaml" + ] + }, + "symfony/swiftmailer-bundle": { + "version": "3.5", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "2.5", + "ref": "f0b2fccdca2dfd97dc2fd5ad216d5e27c4f895ac" + }, + "files": [ + "config/packages/dev/swiftmailer.yaml", + "config/packages/swiftmailer.yaml", + "config/packages/test/swiftmailer.yaml" + ] + }, + "symfony/translation": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "3.3", + "ref": "2ad9d2545bce8ca1a863e50e92141f0b9d87ffcd" + }, + "files": [ + "config/packages/translation.yaml", + "translations/.gitignore" + ] + }, + "symfony/twig-bundle": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "4.4", + "ref": "73baff3f7b3cea12a73812a7cfd2c0924a9e250f" + }, + "files": [ + "config/packages/test/twig.yaml", + "config/packages/twig.yaml", + "templates/base.html.twig" + ] + }, + "symfony/validator": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "4.3", + "ref": "3eb8df139ec05414489d55b97603c5f6ca0c44cb" + }, + "files": [ + "config/packages/test/validator.yaml", + "config/packages/validator.yaml" + ] + }, + "symfony/web-profiler-bundle": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "3.3", + "ref": "6bdfa1a95f6b2e677ab985cd1af2eae35d62e0f6" + }, + "files": [ + "config/packages/dev/web_profiler.yaml", + "config/packages/test/web_profiler.yaml", + "config/routes/dev/web_profiler.yaml" + ] + }, + "twig/extra-bundle": { + "version": "v3.4.0" + } +} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityAcl/acl.html.twig b/templates/EntityAcl/acl.html.twig similarity index 97% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityAcl/acl.html.twig rename to templates/EntityAcl/acl.html.twig index 6762e1ec1..acda17639 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityAcl/acl.html.twig +++ b/templates/EntityAcl/acl.html.twig @@ -1,6 +1,6 @@ {% form_theme form 'form/fields.html.twig' %} -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block body_container %}

            {% block page_heading %}{{ 'entity.acl.title'|trans }}{%endblock%}

            diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/aclAction.html.twig b/templates/EntityActions/aclAction.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/aclAction.html.twig rename to templates/EntityActions/aclAction.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/actionsForDetail.html.twig b/templates/EntityActions/actionsForDetail.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/actionsForDetail.html.twig rename to templates/EntityActions/actionsForDetail.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/actionsForList.html.twig b/templates/EntityActions/actionsForList.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/actionsForList.html.twig rename to templates/EntityActions/actionsForList.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/changeRequestAction.html.twig b/templates/EntityActions/changeRequestAction.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/changeRequestAction.html.twig rename to templates/EntityActions/changeRequestAction.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/cloneAction.html.twig b/templates/EntityActions/cloneAction.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/cloneAction.html.twig rename to templates/EntityActions/cloneAction.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/copyAction.html.twig b/templates/EntityActions/copyAction.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/copyAction.html.twig rename to templates/EntityActions/copyAction.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/deleteAction.html.twig b/templates/EntityActions/deleteAction.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/deleteAction.html.twig rename to templates/EntityActions/deleteAction.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/editAction.html.twig b/templates/EntityActions/editAction.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/editAction.html.twig rename to templates/EntityActions/editAction.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/overviewAction.html.twig b/templates/EntityActions/overviewAction.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/overviewAction.html.twig rename to templates/EntityActions/overviewAction.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/secretResetAction.html.twig b/templates/EntityActions/secretResetAction.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/secretResetAction.html.twig rename to templates/EntityActions/secretResetAction.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/viewAction.html.twig b/templates/EntityActions/viewAction.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityActions/viewAction.html.twig rename to templates/EntityActions/viewAction.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDelete/delete.html.twig b/templates/EntityDelete/delete.html.twig similarity index 94% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDelete/delete.html.twig rename to templates/EntityDelete/delete.html.twig index 698462c93..e797b5631 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDelete/delete.html.twig +++ b/templates/EntityDelete/delete.html.twig @@ -1,6 +1,6 @@ {% form_theme form 'form/fields.html.twig' %} -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block page_heading %}{{ 'entity.delete.title'|trans }}{%endblock%} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detail.html.twig b/templates/EntityDetail/detail.html.twig similarity index 99% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detail.html.twig rename to templates/EntityDetail/detail.html.twig index 00a781be0..62f80a219 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detail.html.twig +++ b/templates/EntityDetail/detail.html.twig @@ -1,5 +1,5 @@ {% set type = entity.protocol %} -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block body_container %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailAttributeField.html.twig b/templates/EntityDetail/detailAttributeField.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailAttributeField.html.twig rename to templates/EntityDetail/detailAttributeField.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailBooleanField.html.twig b/templates/EntityDetail/detailBooleanField.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailBooleanField.html.twig rename to templates/EntityDetail/detailBooleanField.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailContactField.html.twig b/templates/EntityDetail/detailContactField.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailContactField.html.twig rename to templates/EntityDetail/detailContactField.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailFormattedField.html.twig b/templates/EntityDetail/detailFormattedField.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailFormattedField.html.twig rename to templates/EntityDetail/detailFormattedField.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailListField.html.twig b/templates/EntityDetail/detailListField.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailListField.html.twig rename to templates/EntityDetail/detailListField.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailMonospacedTextField.html.twig b/templates/EntityDetail/detailMonospacedTextField.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailMonospacedTextField.html.twig rename to templates/EntityDetail/detailMonospacedTextField.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailResourceServersField.html.twig b/templates/EntityDetail/detailResourceServersField.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailResourceServersField.html.twig rename to templates/EntityDetail/detailResourceServersField.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailTextField.html.twig b/templates/EntityDetail/detailTextField.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityDetail/detailTextField.html.twig rename to templates/EntityDetail/detailTextField.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityEdit/edit.html.twig b/templates/EntityEdit/edit.html.twig similarity index 98% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityEdit/edit.html.twig rename to templates/EntityEdit/edit.html.twig index 304b3fd9b..496c51caf 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityEdit/edit.html.twig +++ b/templates/EntityEdit/edit.html.twig @@ -1,6 +1,6 @@ {% form_theme form 'form/fields.html.twig' %} -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block body_container %}

            {% block page_heading %}{{ 'entity.edit.title'|trans }}{%endblock%}

            diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityModal/addEntityModal.html.twig b/templates/EntityModal/addEntityModal.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityModal/addEntityModal.html.twig rename to templates/EntityModal/addEntityModal.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityModal/secretResetModal.html.twig b/templates/EntityModal/secretResetModal.html.twig similarity index 94% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityModal/secretResetModal.html.twig rename to templates/EntityModal/secretResetModal.html.twig index 4011ba39e..830c75b52 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityModal/secretResetModal.html.twig +++ b/templates/EntityModal/secretResetModal.html.twig @@ -1,4 +1,4 @@ -{% extends '::modal.html.twig' %} +{% extends 'modal.html.twig' %} {% block page_heading %} {{ 'entity.actions.modal.oidc_client_reset.title'|trans }} {% endblock %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/changeRequest.html.twig b/templates/EntityPublished/changeRequest.html.twig similarity index 98% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/changeRequest.html.twig rename to templates/EntityPublished/changeRequest.html.twig index c193d35f0..d50a79e98 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/changeRequest.html.twig +++ b/templates/EntityPublished/changeRequest.html.twig @@ -1,4 +1,4 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block body_container %}

            {% block page_heading %}{{ 'entity.change_request.title'|trans }}{%endblock%}

            diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/changeRequested.html.twig b/templates/EntityPublished/changeRequested.html.twig similarity index 84% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/changeRequested.html.twig rename to templates/EntityPublished/changeRequested.html.twig index fd193c8b2..32ffee87a 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/changeRequested.html.twig +++ b/templates/EntityPublished/changeRequested.html.twig @@ -1,4 +1,4 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block page_heading %}{{ 'entity.change_requested.title'|trans }}{%endblock%} {% block body %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/oidcConfirmationModal.html.twig b/templates/EntityPublished/oidcConfirmationModal.html.twig similarity index 96% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/oidcConfirmationModal.html.twig rename to templates/EntityPublished/oidcConfirmationModal.html.twig index 502fb2f44..c1a42d9f9 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/oidcConfirmationModal.html.twig +++ b/templates/EntityPublished/oidcConfirmationModal.html.twig @@ -1,4 +1,4 @@ -{% extends '::modal.html.twig' %} +{% extends 'modal.html.twig' %} {% block page_heading %} {{ 'entity.list.modal.oidc_confirmation.title'|trans }} {% endblock %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/publishedProduction.html.twig b/templates/EntityPublished/publishedProduction.html.twig similarity index 86% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/publishedProduction.html.twig rename to templates/EntityPublished/publishedProduction.html.twig index 1273e71df..c76c0d99c 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/publishedProduction.html.twig +++ b/templates/EntityPublished/publishedProduction.html.twig @@ -1,4 +1,4 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block page_heading %}{{ 'entity.published_production.title'|trans }}{%endblock%} {% block body %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/publishedTest.html.twig b/templates/EntityPublished/publishedTest.html.twig similarity index 91% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/publishedTest.html.twig rename to templates/EntityPublished/publishedTest.html.twig index 2d2aa1fc3..c084f1919 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityPublished/publishedTest.html.twig +++ b/templates/EntityPublished/publishedTest.html.twig @@ -1,4 +1,4 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block body_container %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityType/type.html.twig b/templates/EntityType/type.html.twig similarity index 93% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityType/type.html.twig rename to templates/EntityType/type.html.twig index acb981f1d..b6bb51221 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/EntityType/type.html.twig +++ b/templates/EntityType/type.html.twig @@ -1,6 +1,6 @@ {% form_theme form 'form/fields.html.twig' %} -{% extends '::modal.html.twig' %} +{% extends 'modal.html.twig' %} {% block page_heading %} {{ 'entity.type.title'|trans }} {% endblock %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/views/Exception/authnFailed.html.twig b/templates/Exception/authnFailed.html.twig similarity index 80% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/views/Exception/authnFailed.html.twig rename to templates/Exception/authnFailed.html.twig index 992d582d6..a11eabb35 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/views/Exception/authnFailed.html.twig +++ b/templates/Exception/authnFailed.html.twig @@ -1,9 +1,9 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block page_heading %}{{ 'saml_authn_failed.title'|trans }}{% endblock %} {% block body %} -

            {{ block('page_title') }}

            +

            {{ page_title }}

            {{ 'saml_authn_failed.text.authn_failed'|trans }}

            diff --git a/app/Resources/TwigBundle/views/Exception/error.html.twig b/templates/Exception/error.html.twig similarity index 100% rename from app/Resources/TwigBundle/views/Exception/error.html.twig rename to templates/Exception/error.html.twig diff --git a/app/Resources/TwigBundle/views/Exception/error403.html.twig b/templates/Exception/error403.html.twig similarity index 100% rename from app/Resources/TwigBundle/views/Exception/error403.html.twig rename to templates/Exception/error403.html.twig diff --git a/app/Resources/TwigBundle/views/Exception/error404.html.twig b/templates/Exception/error404.html.twig similarity index 100% rename from app/Resources/TwigBundle/views/Exception/error404.html.twig rename to templates/Exception/error404.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/views/Exception/preconditionNotMet.html.twig b/templates/Exception/preconditionNotMet.html.twig similarity index 73% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/views/Exception/preconditionNotMet.html.twig rename to templates/Exception/preconditionNotMet.html.twig index 04b8f209f..6136191b3 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/views/Exception/preconditionNotMet.html.twig +++ b/templates/Exception/preconditionNotMet.html.twig @@ -1,9 +1,9 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block page_heading %}{{ 'saml_precondition_not_met.title'|trans }}{% endblock %} {% block body %} -

            {{ block('page_title') }}

            +

            {{ page_title }}

            {{ 'saml_precondition_not_met.text.precondition_not_met'|trans }}

            {% endblock %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/views/Exception/unknownService.html.twig b/templates/Exception/unknownService.html.twig similarity index 89% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/views/Exception/unknownService.html.twig rename to templates/Exception/unknownService.html.twig index 0d6bb8117..eff57650a 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardSamlBundle/Resources/views/Exception/unknownService.html.twig +++ b/templates/Exception/unknownService.html.twig @@ -1,9 +1,9 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block page_heading %}{{ 'saml_unknown_service.title'|trans }}{% endblock %} {% block body %} -

            {{ block('page_title') }}

            +

            {{ page_title }}

            {% if teamNames is not empty %}

            {{ 'saml_unknown_service.no_service.text'|trans }}

            diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/FlashMessage/flashMessages.html.twig b/templates/FlashMessage/flashMessages.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/FlashMessage/flashMessages.html.twig rename to templates/FlashMessage/flashMessages.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Mail/jiraPublicationFailed.html.twig b/templates/Mail/jiraPublicationFailed.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Mail/jiraPublicationFailed.html.twig rename to templates/Mail/jiraPublicationFailed.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Privacy/form.html.twig b/templates/Privacy/form.html.twig similarity index 95% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Privacy/form.html.twig rename to templates/Privacy/form.html.twig index f4985baa9..17b8dc9fb 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Privacy/form.html.twig +++ b/templates/Privacy/form.html.twig @@ -1,6 +1,6 @@ {% form_theme form 'form/fields.html.twig' %} -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block body_container %}

            {% block page_heading %}{{ 'privacy.edit.title'|trans }}{%endblock%}

            diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Privacy/notification.html.twig b/templates/Privacy/notification.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Privacy/notification.html.twig rename to templates/Privacy/notification.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/admin_overview.html.twig b/templates/Service/admin_overview.html.twig similarity index 92% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/admin_overview.html.twig rename to templates/Service/admin_overview.html.twig index 866fbc3dc..7ec70efcf 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/admin_overview.html.twig +++ b/templates/Service/admin_overview.html.twig @@ -1,4 +1,4 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block body_container %}
            diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/base_service.html.twig b/templates/Service/base_service.html.twig similarity index 97% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/base_service.html.twig rename to templates/Service/base_service.html.twig index ef682fe5b..f5a666975 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/base_service.html.twig +++ b/templates/Service/base_service.html.twig @@ -1,6 +1,6 @@ {% form_theme form 'form/fields.html.twig' %} -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block body_container %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/create.html.twig b/templates/Service/create.html.twig similarity index 65% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/create.html.twig rename to templates/Service/create.html.twig index 5325c91a6..9e4caa478 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/create.html.twig +++ b/templates/Service/create.html.twig @@ -1,5 +1,5 @@ {% form_theme form 'form/fields.html.twig' %} -{% extends 'DashboardBundle:Service:base_service.html.twig' %} +{% extends '@Dashboard/Service/base_service.html.twig' %} {% block page_heading %}{{ 'service.create.title'|trans }}{% endblock %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/delete.html.twig b/templates/Service/delete.html.twig similarity index 97% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/delete.html.twig rename to templates/Service/delete.html.twig index a6216c6d7..741a11e4b 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/delete.html.twig +++ b/templates/Service/delete.html.twig @@ -1,6 +1,6 @@ {% form_theme form 'form/fields.html.twig' %} -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block page_heading %}{{ 'service.delete.title'|trans }}{%endblock%} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/edit.html.twig b/templates/Service/edit.html.twig similarity index 65% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/edit.html.twig rename to templates/Service/edit.html.twig index 794d4f7de..7edb46b95 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/edit.html.twig +++ b/templates/Service/edit.html.twig @@ -1,5 +1,5 @@ {% form_theme form 'form/fields.html.twig' %} -{% extends 'DashboardBundle:Service:base_service.html.twig' %} +{% extends '@Dashboard/Service/base_service.html.twig' %} {% block page_heading %}{{ 'service.edit.title'|trans }}{% endblock %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/overview.html.twig b/templates/Service/overview.html.twig similarity index 99% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/overview.html.twig rename to templates/Service/overview.html.twig index 755bd8eb6..738f6664a 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Service/overview.html.twig +++ b/templates/Service/overview.html.twig @@ -1,4 +1,4 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block body_container %}
            @@ -17,7 +17,7 @@ {% for service in services %}
            - {% set shortName = service.name|replace(' ', '-') %} + {% set shortName = service.name|replace({' ': '-'}) %} {% set testId = "add-for-test-" ~ shortName %} {% set productionId = "add-for-production-" ~ shortName %} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/SiteNotice/showGlobalSiteNotice.html.twig b/templates/SiteNotice/showGlobalSiteNotice.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/SiteNotice/showGlobalSiteNotice.html.twig rename to templates/SiteNotice/showGlobalSiteNotice.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/actions.html.twig b/templates/Teams/Table/actions.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/actions.html.twig rename to templates/Teams/Table/actions.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/caption.html.twig b/templates/Teams/Table/caption.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/caption.html.twig rename to templates/Teams/Table/caption.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/email.html.twig b/templates/Teams/Table/email.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/email.html.twig rename to templates/Teams/Table/email.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/header.html.twig b/templates/Teams/Table/header.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/header.html.twig rename to templates/Teams/Table/header.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/name.html.twig b/templates/Teams/Table/name.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/name.html.twig rename to templates/Teams/Table/name.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/role.html.twig b/templates/Teams/Table/role.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/role.html.twig rename to templates/Teams/Table/role.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/roleCell.html.twig b/templates/Teams/Table/roleCell.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/roleCell.html.twig rename to templates/Teams/Table/roleCell.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/status.html.twig b/templates/Teams/Table/status.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/Table/status.html.twig rename to templates/Teams/Table/status.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/flashMessages.html.twig b/templates/Teams/flashMessages.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/flashMessages.html.twig rename to templates/Teams/flashMessages.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/inviteButton.html.twig b/templates/Teams/inviteButton.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/inviteButton.html.twig rename to templates/Teams/inviteButton.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/inviteModal.html.twig b/templates/Teams/inviteModal.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/inviteModal.html.twig rename to templates/Teams/inviteModal.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/manage.html.twig b/templates/Teams/manage.html.twig similarity index 93% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/manage.html.twig rename to templates/Teams/manage.html.twig index ab4323ce8..b5a2a570d 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/manage.html.twig +++ b/templates/Teams/manage.html.twig @@ -1,4 +1,4 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block page_heading %} {{ 'teams.management.title'|trans }} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/teamTable.html.twig b/templates/Teams/teamTable.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/Teams/teamTable.html.twig rename to templates/Teams/teamTable.html.twig diff --git a/app/Resources/views/Translation/layout.html.twig b/templates/Translation/layout.html.twig similarity index 97% rename from app/Resources/views/Translation/layout.html.twig rename to templates/Translation/layout.html.twig index 2ba247672..fb418d8fd 100644 --- a/app/Resources/views/Translation/layout.html.twig +++ b/templates/Translation/layout.html.twig @@ -1,4 +1,4 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block body_container %} {{ tinymce_init({}) }} diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/TwigExtension/identity.html.twig b/templates/TwigExtension/identity.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/TwigExtension/identity.html.twig rename to templates/TwigExtension/identity.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/TwigExtension/service_switcher.html.twig b/templates/TwigExtension/service_switcher.html.twig similarity index 100% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/TwigExtension/service_switcher.html.twig rename to templates/TwigExtension/service_switcher.html.twig diff --git a/app/Resources/views/base.html.twig b/templates/base.html.twig similarity index 100% rename from app/Resources/views/base.html.twig rename to templates/base.html.twig diff --git a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/consumeAssertion.html.twig b/templates/consumeAssertion.html.twig similarity index 52% rename from src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/consumeAssertion.html.twig rename to templates/consumeAssertion.html.twig index 9af2242e0..0179e9e69 100644 --- a/src/Surfnet/ServiceProviderDashboard/Infrastructure/DashboardBundle/Resources/views/consumeAssertion.html.twig +++ b/templates/consumeAssertion.html.twig @@ -1,4 +1,4 @@ -{% extends '::base.html.twig' %} +{% extends 'base.html.twig' %} {% block content %} {% endblock %} diff --git a/app/Resources/views/form/fields.html.twig b/templates/form/fields.html.twig similarity index 100% rename from app/Resources/views/form/fields.html.twig rename to templates/form/fields.html.twig diff --git a/app/Resources/views/modal.html.twig b/templates/modal.html.twig similarity index 100% rename from app/Resources/views/modal.html.twig rename to templates/modal.html.twig diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100644 index 000000000..7b6072c16 --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,29 @@ +bootEnv(dirname(__DIR__).'/.env'); +} diff --git a/tests/integration/Legacy/Metadata/ParserTest.php b/tests/integration/Legacy/Metadata/ParserTest.php index ee6e5e3cc..a39ef11dd 100644 --- a/tests/integration/Legacy/Metadata/ParserTest.php +++ b/tests/integration/Legacy/Metadata/ParserTest.php @@ -43,7 +43,7 @@ public function setup() { $this->logger = m::mock(LoggerInterface::class); - $rootDir = __DIR__.'/../../../../app/Resources/'; + $rootDir = __DIR__ . '/../../../../assets/Resources/'; $attributeRepository = new AttributeRepository(__DIR__ . '/fixture/attributes.json'); $this->parser = new Parser( new CertificateParser(), diff --git a/tests/unit/Application/Metadata/JsonGenerator/PrivacyQuestionsMetadataGeneratorTest.php b/tests/unit/Application/Metadata/JsonGenerator/PrivacyQuestionsMetadataGeneratorTest.php index 13c81df75..209285729 100644 --- a/tests/unit/Application/Metadata/JsonGenerator/PrivacyQuestionsMetadataGeneratorTest.php +++ b/tests/unit/Application/Metadata/JsonGenerator/PrivacyQuestionsMetadataGeneratorTest.php @@ -60,7 +60,7 @@ public function test_it_can_build_privacy_question_metadata() $service->setPrivacyQuestions($privacyQuestions); $entity->setService($service); - $metadataRepository = new AttributesMetadataRepository(__DIR__ . '/../../../../../app/Resources'); + $metadataRepository = new AttributesMetadataRepository(__DIR__ . '/../../../../../assets/Resources'); $factory = new PrivacyQuestionsMetadataGenerator($metadataRepository); @@ -87,7 +87,7 @@ public function test_it_retuns_empty_array_when_disabled() $entity->setService($service); - $metadataRepository = new AttributesMetadataRepository(__DIR__ . '/../../../../../app/Resources'); + $metadataRepository = new AttributesMetadataRepository(__DIR__ . '/../../../../../assets/Resources'); $factory = new PrivacyQuestionsMetadataGenerator($metadataRepository); $metadata = $factory->build($entity); diff --git a/tests/unit/Application/Metadata/JsonGenerator/SpDashboardMetadataGeneratorTest.php b/tests/unit/Application/Metadata/JsonGenerator/SpDashboardMetadataGeneratorTest.php index b0c227aa5..b684be782 100644 --- a/tests/unit/Application/Metadata/JsonGenerator/SpDashboardMetadataGeneratorTest.php +++ b/tests/unit/Application/Metadata/JsonGenerator/SpDashboardMetadataGeneratorTest.php @@ -42,7 +42,7 @@ public function test_it_can_build_sp_dashboard_metadata() $entity->shouldReceive('getMetaData->getCoin')->andReturn($coin); $entity->setService($service); - $metadataRepository = new AttributesMetadataRepository(__DIR__ . '/../../../../../app/Resources'); + $metadataRepository = new AttributesMetadataRepository(__DIR__ . '/../../../../../assets/Resources'); $factory = new SpDashboardMetadataGenerator($metadataRepository); diff --git a/tests/unit/Infrastructure/DashboardBundle/Factory/MailMessageFactoryTest.php b/tests/unit/Infrastructure/DashboardBundle/Factory/MailMessageFactoryTest.php index 15185535a..6d9da6f63 100644 --- a/tests/unit/Infrastructure/DashboardBundle/Factory/MailMessageFactoryTest.php +++ b/tests/unit/Infrastructure/DashboardBundle/Factory/MailMessageFactoryTest.php @@ -23,8 +23,8 @@ use Mockery\Adapter\Phpunit\MockeryTestCase; use Surfnet\ServiceProviderDashboard\Domain\Entity\ManageEntity; use Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Factory\MailMessageFactory; -use Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Mailer\Message; -use Symfony\Component\Templating\EngineInterface; +use Symfony\Bridge\Twig\Mime\TemplatedEmail; +use Twig\Environment as TwigEnvironment; use Symfony\Component\Translation\TranslatorInterface; class MailMessageFactoryTest extends MockeryTestCase @@ -46,7 +46,7 @@ class MailMessageFactoryTest extends MockeryTestCase protected function setUp() { - $this->templateEngine = m::mock(EngineInterface::class); + $this->templateEngine = m::mock(TwigEnvironment::class); $this->translator = m::mock(TranslatorInterface::class); $this->factory = new MailMessageFactory( @@ -61,7 +61,8 @@ protected function setUp() public function test_build_jira_ticket_creation_failed() { $this->translator - ->shouldReceive('trans'); + ->shouldReceive('trans') + ->andReturn(''); $this->templateEngine ->shouldReceive('render'); @@ -84,6 +85,6 @@ public function test_build_jira_ticket_creation_failed() $message = $this->factory->buildJiraIssueFailedMessage($e, $entity); - $this->assertInstanceOf(Message::class, $message); + $this->assertInstanceOf(TemplatedEmail::class, $message); } } diff --git a/tests/unit/Infrastructure/DashboardBundle/Mailer/MailerTest.php b/tests/unit/Infrastructure/DashboardBundle/Mailer/MailerTest.php index 07474a729..68fa8656c 100644 --- a/tests/unit/Infrastructure/DashboardBundle/Mailer/MailerTest.php +++ b/tests/unit/Infrastructure/DashboardBundle/Mailer/MailerTest.php @@ -21,21 +21,21 @@ use Mockery as m; use Mockery\Adapter\Phpunit\MockeryTestCase; use Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Mailer\Mailer; -use Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Mailer\Message; -use Swift_Mailer; +use Symfony\Component\Mailer\MailerInterface; +use Symfony\Component\Mime\RawMessage; class MailerTest extends MockeryTestCase { public function test_sending_of_message_message() { - $message = m::mock(Message::class); + $message = m::mock(RawMessage::class); - $swiftMailer = m::mock(Swift_Mailer::class); - $swiftMailer + $mailer = m::mock(MailerInterface::class); + $mailer ->shouldReceive('send') ->with($message) ->once(); - $mailer = new Mailer($swiftMailer); + $mailer = new Mailer($mailer); $mailer->send($message); } } diff --git a/tests/unit/Infrastructure/DashboardSamlBundle/Security/Authentication/Provider/SamlProviderTest.php b/tests/unit/Infrastructure/DashboardSamlBundle/Security/Authentication/Provider/SamlProviderTest.php index 842fe5698..0c1990f0b 100644 --- a/tests/unit/Infrastructure/DashboardSamlBundle/Security/Authentication/Provider/SamlProviderTest.php +++ b/tests/unit/Infrastructure/DashboardSamlBundle/Security/Authentication/Provider/SamlProviderTest.php @@ -84,7 +84,7 @@ public function test_administrator_teams_validation_rejects_invalid_teams($inval public function test_happy_flow() { - $provider = $this->buildProvider(['urn:collab:foo:team.foobar.com']); + $provider = $this->buildProvider('urn:collab:foo:team.foobar.com'); $nameId = 'urn:collab:foo:team.foobar.com'; $email = 'foo@team.foobar.com'; @@ -144,7 +144,7 @@ public function test_happy_flow() public function test_happy_flow_with_empty_common_name() { - $provider = $this->buildProvider(['urn:collab:foo:team.foobar.com']); + $provider = $this->buildProvider('urn:collab:foo:team.foobar.com'); $nameId = 'urn:collab:foo:team.foobar.com'; $email = 'foo@team.foobar.com'; @@ -206,7 +206,7 @@ public function test_saml_provider_should_reject_empty_mail() $this->expectException(BadCredentialsException::class); $this->expectExceptionMessage('First value of attribute "mail" must be a string, "NULL" given'); - $provider = $this->buildProvider(['urn:collab:foo:team.foobar.com']); + $provider = $this->buildProvider('urn:collab:foo:team.foobar.com'); $nameId = 'urn:collab:foo:team.foobar.com'; @@ -237,20 +237,12 @@ public function test_saml_provider_should_reject_empty_mail() public function provideValidAdminTeams() { - return [ - [['urn:collab:foo:team.foobar.com']], - [['urn:collab:foo:team.foobar.com', 'urn:collab:foo:team.foobar.com']], - ]; + return "urn:collab:foo:team.foobar.com,urn:collab:foo:team.foobar.com,urn:collab:foo:team.foobar.com"; } public function provideInvalidAdminTeams() { - return [ - [['']], - [[345345]], - [[true, false]], - [[['foo', 'bar']]], - ]; + return ",345345,true,false,foo,bar"; } private function buildProvider($administratorTeams) diff --git a/tests/unit/Legacy/Repository/AttributesMetadataRepositoryTest.php b/tests/unit/Legacy/Repository/AttributesMetadataRepositoryTest.php index cb54ab974..49157c7d1 100644 --- a/tests/unit/Legacy/Repository/AttributesMetadataRepositoryTest.php +++ b/tests/unit/Legacy/Repository/AttributesMetadataRepositoryTest.php @@ -31,7 +31,7 @@ class AttributesMetadataRepositoryTest extends MockeryTestCase public function setUp() { - $this->repository = new AttributesMetadataRepository(__DIR__ . '/../../../../app/Resources/'); + $this->repository = new AttributesMetadataRepository(__DIR__ . '/../../../../assets/Resources/'); parent::setUp(); } diff --git a/tests/webtests/EditServiceTest.php b/tests/webtests/EditServiceTest.php index 7aa35cdf5..936eaf7ae 100644 --- a/tests/webtests/EditServiceTest.php +++ b/tests/webtests/EditServiceTest.php @@ -50,7 +50,6 @@ public function test_can_edit_existing_service() ]; $crawler = $this->client->request('GET', '/service/1/edit'); - $form = $crawler ->selectButton('Save') ->form(); diff --git a/tests/webtests/Mailer/FakeMailer.php b/tests/webtests/Mailer/FakeMailer.php index 81698ae45..2e9e7d74d 100644 --- a/tests/webtests/Mailer/FakeMailer.php +++ b/tests/webtests/Mailer/FakeMailer.php @@ -18,8 +18,9 @@ namespace Surfnet\ServiceProviderDashboard\Webtests\Mailer; -use Surfnet\ServiceProviderDashboard\Domain\Mailer\Mailer as MailerInterface; -use Surfnet\ServiceProviderDashboard\Domain\Mailer\Message as MessageInterface; +use Symfony\Component\Mailer\Envelope; +use Symfony\Component\Mailer\MailerInterface; +use Symfony\Component\Mime\RawMessage; /** * Test stand in for the Mailer class from the infrastructure layer. @@ -28,7 +29,7 @@ class FakeMailer implements MailerInterface { private $sent = []; - public function send(MessageInterface $message) + public function send(RawMessage $message, Envelope $envelope = null): void { $this->sent[] = $message; } diff --git a/tests/webtests/Manage/Client/FakeTeamsQueryClient.php b/tests/webtests/Manage/Client/FakeTeamsQueryClient.php index b151e9cec..53882e1ba 100644 --- a/tests/webtests/Manage/Client/FakeTeamsQueryClient.php +++ b/tests/webtests/Manage/Client/FakeTeamsQueryClient.php @@ -33,6 +33,9 @@ public function registerTeam( public function findTeamByUrn(string $urn): ?array { - return $this->data[$urn]; + if (array_key_exists($urn, $this->data)) { + return $this->data[$urn]; + } + return null; } } diff --git a/tests/webtests/Resources/config/services.yml b/tests/webtests/Resources/config/services.yml index 3f4ad8983..e25e28021 100644 --- a/tests/webtests/Resources/config/services.yml +++ b/tests/webtests/Resources/config/services.yml @@ -14,8 +14,12 @@ services: tags: - { name: tactician.handler, command: Surfnet\ServiceProviderDashboard\Application\Command\Entity\PublishEntityProductionCommand } + Surfnet\ServiceProviderDashboard\Webtests\Mailer\FakeMailer: + arguments: ~ + Surfnet\ServiceProviderDashboard\Infrastructure\DashboardBundle\Mailer\Mailer: - class: Surfnet\ServiceProviderDashboard\Webtests\Mailer\FakeMailer + arguments: + - '@Surfnet\ServiceProviderDashboard\Webtests\Mailer\FakeMailer' public: true Surfnet\ServiceProviderDashboard\Legacy\Metadata\Fetcher: @@ -35,37 +39,58 @@ services: Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\QueryClient: class: Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakeQueryClient + public: true surfnet.manage.client.query_client.prod_environment: class: Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakeQueryClient + public: true Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\IdentityProviderClient: class: Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakeIdentityProviderClient + public: true Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\EntityChangeRequestClient: class: Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakeEntityChangeRequestClient + public: true surfnet.manage.client.identity_provider_client.test_environment: class: Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakeIdentityProviderClient + public: true surfnet.manage.client.publish_client.prod_environment: class: Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakePublishEntityClient + public: true Surfnet\ServiceProviderDashboard\Infrastructure\Manage\Client\PublishEntityClient: class: Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakePublishEntityClient + public: true surfnet.manage.client.delete_client.prod_environment: class: Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakeDeleteManageEntityClient + public: true surfnet.manage.client.delete_client.test_environment: class: Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakeDeleteManageEntityClient + public: true Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\QueryClient: class: Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakeTeamsQueryClient + public: true Surfnet\ServiceProviderDashboard\Infrastructure\Teams\Client\PublishEntityClient: class: Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakePublishTeamClient + public: true + Surfnet\ServiceProviderDashboard\Application\Service\TicketService: + arguments: + - '@surfnet.dashboard.repository.issue' + - '@logger' + + surfnet.dashboard.repository.issue: + class: Surfnet\ServiceProviderDashboard\Infrastructure\Jira\Repository\DevelopmentIssueRepository + arguments: + $filePath: '%kernel.project_dir%/issues.json' + public: true # These services are overloaded for functional tests and have been made public to prevent: # diff --git a/tests/webtests/WebTestCase.php b/tests/webtests/WebTestCase.php index 27c2d70f2..7d29bd7dd 100644 --- a/tests/webtests/WebTestCase.php +++ b/tests/webtests/WebTestCase.php @@ -38,7 +38,7 @@ use Surfnet\ServiceProviderDashboard\Webtests\Manage\Client\FakeTeamsQueryClient; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase as SymfonyWebTestCase; use Symfony\Component\BrowserKit\Cookie; -use Symfony\Component\Debug\Debug; +use Symfony\Component\ErrorHandler\Debug; use Symfony\Component\HttpFoundation\RedirectResponse; class WebTestCase extends SymfonyWebTestCase @@ -224,11 +224,14 @@ protected function loadFixtures() $loader->addFixture(new WebTestFixtures); $purger = new ORMPurger($em); + $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); $executor = new ORMExecutor($em, $purger); // The sequence of the Service table is important, purger only removes data, does not reset the // autoincrement sequence. That is explicitly reset with the query below. -// $em->getConnection()->exec("UPDATE SQLITE_SEQUENCE SET SEQ=0 WHERE NAME='service';"); + // Preferably we'de use $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); but that does not seem + // to work with SQLite + $em->getConnection()->exec("UPDATE SQLITE_SEQUENCE SET SEQ=0 WHERE NAME='service';"); $executor->execute($loader->getFixtures()); } diff --git a/var/logs/.gitkeep b/translations/.gitignore similarity index 100% rename from var/logs/.gitkeep rename to translations/.gitignore diff --git a/app/Resources/translations/messages.en.yml b/translations/messages.en.yml similarity index 100% rename from app/Resources/translations/messages.en.yml rename to translations/messages.en.yml diff --git a/web/app.php b/web/app.php deleted file mode 100644 index 878db3600..000000000 --- a/web/app.php +++ /dev/null @@ -1,15 +0,0 @@ -handle($request); -$response->send(); -$kernel->terminate($request, $response); diff --git a/web/app_dev.php b/web/app_dev.php deleted file mode 100644 index a700a37b5..000000000 --- a/web/app_dev.php +++ /dev/null @@ -1,19 +0,0 @@ -handle($request); -$response->send(); -$kernel->terminate($request, $response); diff --git a/web/config.php b/web/config.php deleted file mode 100644 index fd7e17e6b..000000000 --- a/web/config.php +++ /dev/null @@ -1,422 +0,0 @@ -getFailedRequirements(); -$minorProblems = $symfonyRequirements->getFailedRecommendations(); -$hasMajorProblems = (bool) count($majorProblems); -$hasMinorProblems = (bool) count($minorProblems); - -?> - - - - - - Symfony Configuration Checker - - - - - - diff --git a/webpack.config.js b/webpack.config.js index efe0f422b..5b6a21a58 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,11 +1,11 @@ var Encore = require('@symfony/webpack-encore'); Encore - .setOutputPath('web/build/') + .setOutputPath('public/build/') .setPublicPath('/build') .cleanupOutputBeforeBuild() - .addEntry('app', './app/js/application.js') - .addStyleEntry('global', './app/scss/application.scss') + .addEntry('app', './assets/js/application.js') + .addStyleEntry('global', './assets/scss/application.scss') .addLoader({ test: /\.scss$/, loader: 'import-glob-loader' }) .cleanupOutputBeforeBuild() .autoProvidejQuery() diff --git a/yarn.lock b/yarn.lock index 0bc6e2feb..0de5176d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6962,6 +6962,10 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +phpunit-bridge@symfony/phpunit-bridge: + version "0.0.0" + resolved "https://codeload.github.com/symfony/phpunit-bridge/tar.gz/07cf788ac9ae83b59d46599bb5098c3add88c68b" + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"